diff --git a/AUTHORS b/AUTHORS
index a54b0ae..dc8761ffc 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -956,4 +956,5 @@
 Upwork <*@cloud.upwork.com>
 Venture 3 Systems LLC <*@venture3systems.com>
 Vewd Software AS <*@vewd.com>
+Vivaldi Technologies AS <*@vivaldi.com>
 Yandex LLC <*@yandex-team.ru>
diff --git a/DEPS b/DEPS
index 5a84e1e..4541ca6 100644
--- a/DEPS
+++ b/DEPS
@@ -79,11 +79,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': 'c657fa6d44d31b62086a3476447c6b7f38e0e9c0',
+  'skia_revision': 'db1e5c6474c1cd0969006a0c0554f8fdc63c42c8',
   # 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': 'efc0f3d4959b7539bdef12012cb47b3d31c8b9c1',
+  'v8_revision': '687fceb29c60f59673f9368c2e2f41c7eafc1572',
   # 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.
@@ -91,7 +91,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': 'b52fac03f438c0175b091086f9b0d0a6eb409505',
+  'angle_revision': '360098d5c29fb1028e87a0d91749ad5854af0336',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling build tools
   # and whatever else without interference from each other.
@@ -103,7 +103,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling PDFium
   # and whatever else without interference from each other.
-  'pdfium_revision': '0bc02c152bd0c178a5946196e2054a5cdc7650f4',
+  'pdfium_revision': '53f555a619bfa9eed7b80ff3e1f01fd08e174195',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling openmax_dl
   # and whatever else without interference from each other.
@@ -135,7 +135,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling catapult
   # and whatever else without interference from each other.
-  'catapult_revision': '38e8eedc7bb6d8f9fc5890f11ab07c65efadc393',
+  'catapult_revision': '47ca0db0bd967cf7c6f4f5ebffb47b2bd0422a8b',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling libFuzzer
   # and whatever else without interference from each other.
@@ -167,7 +167,7 @@
 
 deps = {
   'src/chrome/browser/resources/media_router/extension/src':
-    Var('chromium_git') + '/media_router.git' + '@' + '8c27673ed823f556ad4fa8dc8c57f437e649c0b8',
+    Var('chromium_git') + '/media_router.git' + '@' + '270eb6c464d5845321fab65c32ac04ded5ae43fc',
 
   'src/buildtools':
     Var('chromium_git') + '/chromium/buildtools.git' + '@' +  Var('buildtools_revision'),
@@ -337,7 +337,7 @@
   },
 
   'src/third_party/depot_tools':
-    Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + '6f83031f3d0e17aa6458276344a660e37b65fd9b',
+    Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + '53a62911658d6c4f830f4d5ead14134def4dffe5',
 
   'src/third_party/devtools-node-modules':
     Var('chromium_git') + '/external/github.com/ChromeDevTools/devtools-node-modules' + '@' + Var('devtools_node_modules_revision'),
diff --git a/WATCHLISTS b/WATCHLISTS
index f82fc08..17a701ce 100644
--- a/WATCHLISTS
+++ b/WATCHLISTS
@@ -1087,6 +1087,10 @@
     'mojo': {
       'filepath': 'mojo',
     },
+    'multidevice': {
+      'filepath': 'components/multidevice/'\
+                  '|chromeos/components/multidevice_setup/',
+    },
     'mus': {
       'filepath': 'services/ui/'\
                   '|mojo/gpu/',
@@ -2109,6 +2113,11 @@
              'darin@chromium.org',
              'qsr+mojo@chromium.org',
              'viettrungluu+watch@chromium.org'],
+    'multidevice': ['jhawkins+watch-multidevice@chromium.org',
+                    'jlklein+watch-multidevice@chromium.org',
+                    'jordynass+watch-multidevice@chromium.org',
+                    'khorimoto+watch-multidevice@chromium.org',
+                    'lesliewatkins+watch-multidevice@chromium.org'],
     'mus': ['rjkroege@chromium.org'],
     'nacl': ['native-client-reviews@googlegroups.com'],
     'native_client_sdk': ['binji+watch@chromium.org',
diff --git a/android_webview/BUILD.gn b/android_webview/BUILD.gn
index 60005999..de83799 100644
--- a/android_webview/BUILD.gn
+++ b/android_webview/BUILD.gn
@@ -11,6 +11,7 @@
 import("//components/spellcheck/spellcheck_build_features.gni")
 import("//tools/grit/repack.gni")
 import("//tools/resources/generate_resource_whitelist.gni")
+import("//tools/v8_context_snapshot/v8_context_snapshot.gni")
 
 declare_args() {
   # Package name of the system_webview_apk target.
@@ -192,8 +193,12 @@
 android_assets("monochrome_webview_assets") {
   deps = [
     "//third_party/icu:icu_assets",
-    "//v8:v8_external_startup_data_assets",
   ]
+  if (use_v8_context_snapshot) {
+    deps += [ "//tools/v8_context_snapshot:v8_context_snapshot_assets" ]
+  } else {
+    deps += [ "//v8:v8_external_startup_data_assets" ]
+  }
   if (android_64bit_target_cpu && build_apk_secondary_abi) {
     deps += [ ":v8_snapshot_secondary_abi_assets" ]
   }
@@ -396,10 +401,16 @@
     assert(android_64bit_target_cpu,
            "32-bit targets shouldn't have secondary abi")
     arch_suffix = "32"
-    renaming_sources = [ "$_secondary_abi_out_dir/snapshot_blob.bin" ]
-    renaming_destinations = [ "snapshot_blob_$arch_suffix.bin" ]
+    if (use_v8_context_snapshot) {
+      renaming_sources = [ "$_secondary_abi_out_dir/v8_context_snapshot.bin" ]
+      renaming_destinations = [ "v8_context_snapshot_$arch_suffix.bin" ]
+    } else {
+      renaming_sources = [ "$_secondary_abi_out_dir/snapshot_blob.bin" ]
+      renaming_destinations = [ "snapshot_blob_$arch_suffix.bin" ]
+    }
     disable_compression = true
     deps = [
+      "//tools/v8_context_snapshot($android_secondary_abi_toolchain)",
       "//v8($android_secondary_abi_toolchain)",
     ]
   }
@@ -679,7 +690,6 @@
     ":generate_aw_strings",
     ":generate_components_strings",
     ":native_jni",
-    "//android_webview:generate_components_strings",
     "//base",
     "//base/third_party/dynamic_annotations:dynamic_annotations",
     "//components/autofill/android:provider",
@@ -762,7 +772,10 @@
     ]
   }
 
-  configs += [ "//v8:external_startup_data" ]
+  configs += [
+    "//tools/v8_context_snapshot:use_v8_context_snapshot",
+    "//v8:external_startup_data",
+  ]
 
   libs = [ "jnigraphics" ]
 }
diff --git a/android_webview/browser/DEPS b/android_webview/browser/DEPS
index b107137..3fdbb71 100644
--- a/android_webview/browser/DEPS
+++ b/android_webview/browser/DEPS
@@ -70,7 +70,7 @@
 
 
   # QuotaStatusCode required by AwQuotaManagerBridge.
-  "+third_party/WebKit/common/quota",
+  "+third_party/WebKit/public/mojom/quota",
   # POD structure required by the find-in-page IPC messages.
   "+third_party/WebKit/public/web/WebFindOptions.h",
   # Interface required for in-process input event handling.
diff --git a/android_webview/browser/aw_permission_manager.cc b/android_webview/browser/aw_permission_manager.cc
index ad3d1f1..8ed03e1 100644
--- a/android_webview/browser/aw_permission_manager.cc
+++ b/android_webview/browser/aw_permission_manager.cc
@@ -327,6 +327,7 @@
       case PermissionType::ACCESSIBILITY_EVENTS:
       case PermissionType::CLIPBOARD_READ:
       case PermissionType::CLIPBOARD_WRITE:
+      case PermissionType::PAYMENT_HANDLER:
         NOTIMPLEMENTED() << "RequestPermissions is not implemented for "
                          << static_cast<int>(permissions[i]);
         pending_request_raw->SetPermissionStatus(permissions[i],
@@ -501,6 +502,7 @@
       case PermissionType::ACCESSIBILITY_EVENTS:
       case PermissionType::CLIPBOARD_READ:
       case PermissionType::CLIPBOARD_WRITE:
+      case PermissionType::PAYMENT_HANDLER:
         NOTIMPLEMENTED() << "CancelPermission not implemented for "
                          << static_cast<int>(permission);
         break;
diff --git a/android_webview/browser/aw_quota_manager_bridge.cc b/android_webview/browser/aw_quota_manager_bridge.cc
index 528d0d5..06aa4a5a 100644
--- a/android_webview/browser/aw_quota_manager_bridge.cc
+++ b/android_webview/browser/aw_quota_manager_bridge.cc
@@ -16,7 +16,7 @@
 #include "content/public/common/content_client.h"
 #include "jni/AwQuotaManagerBridge_jni.h"
 #include "storage/browser/quota/quota_manager.h"
-#include "third_party/WebKit/common/quota/quota_types.mojom.h"
+#include "third_party/WebKit/public/mojom/quota/quota_types.mojom.h"
 #include "url/gurl.h"
 
 using base::android::AttachCurrentThread;
diff --git a/android_webview/glue/java/src/com/android/webview/chromium/CallbackConverter.java b/android_webview/glue/java/src/com/android/webview/chromium/CallbackConverter.java
index 05dce9ad..bec4088a 100644
--- a/android_webview/glue/java/src/com/android/webview/chromium/CallbackConverter.java
+++ b/android_webview/glue/java/src/com/android/webview/chromium/CallbackConverter.java
@@ -8,7 +8,11 @@
 
 import org.chromium.base.Callback;
 
-final class CallbackConverter {
+/**
+ * Utility class for converting a {@link android.webkit.ValueCallback} into a
+ * {@link org.chromium.base.Callback}.
+ */
+public final class CallbackConverter {
     public static <T> Callback<T> fromValueCallback(final ValueCallback<T> valueCallback) {
         return valueCallback == null ? null : result -> valueCallback.onReceiveValue(result);
     }
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 1178d01..d5c49a0 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
@@ -46,8 +46,12 @@
 import org.chromium.base.library_loader.ProcessInitException;
 import org.chromium.net.NetworkChangeNotifier;
 
-class WebViewChromiumAwInit {
-
+/**
+ * Class controlling the Chromium initialization for WebView.
+ * We hold on to most static objects used by WebView here.
+ * This class is shared between the webkit glue layer and the support library glue layer.
+ */
+public class WebViewChromiumAwInit {
     private static final String TAG = "WebViewChromiumAwInit";
 
     private static final String HTTP_AUTH_DATABASE_FILE = "http_auth.db";
@@ -286,10 +290,10 @@
 
     /**
      * Returns the lock used for guarding chromium initialization.
-     * We make this package-public to let higher-level classes use this lock to guard variables
+     * We make this public to let higher-level classes use this lock to guard variables
      * dependent on this class, to avoid introducing new locks (which can cause deadlocks).
      */
-    Object getLock() {
+    public Object getLock() {
         return mLock;
     }
 
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 087e24f..4f432fb 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
@@ -122,7 +122,7 @@
     /**
      * Thread-safe way to get the one and only WebViewChromiumFactoryProvider.
      */
-    public static WebViewChromiumFactoryProvider getSingleton() {
+    static WebViewChromiumFactoryProvider getSingleton() {
         synchronized (sSingletonLock) {
             if (sSingleton == null) {
                 throw new RuntimeException("WebViewChromiumFactoryProvider has not been set!");
diff --git a/android_webview/glue/java/src/com/android/webview/chromium/WebkitToSharedGlueConverter.java b/android_webview/glue/java/src/com/android/webview/chromium/WebkitToSharedGlueConverter.java
index cadf257..0a7745a4 100644
--- a/android_webview/glue/java/src/com/android/webview/chromium/WebkitToSharedGlueConverter.java
+++ b/android_webview/glue/java/src/com/android/webview/chromium/WebkitToSharedGlueConverter.java
@@ -24,4 +24,8 @@
         ContentSettingsAdapter contentSettingsAdapter = (ContentSettingsAdapter) webSettings;
         return contentSettingsAdapter.getAwSettings();
     }
+
+    public static WebViewChromiumAwInit getGlobalAwInit() {
+        return WebViewChromiumFactoryProvider.getSingleton().getAwInit();
+    }
 }
diff --git a/android_webview/java/src/org/chromium/android_webview/AwTracingController.java b/android_webview/java/src/org/chromium/android_webview/AwTracingController.java
index 555b58c..842b9496 100644
--- a/android_webview/java/src/org/chromium/android_webview/AwTracingController.java
+++ b/android_webview/java/src/org/chromium/android_webview/AwTracingController.java
@@ -59,23 +59,11 @@
                     CATEGORIES_FRAME_VIEWER_LIST // CATEGORIES_FRAME_VIEWER
                     ));
 
-    // TODO(timvolodine): remove once glue layer is updated, crbug.com/812289.
-    private AwTracingOutputStream mOutputStream;
-
-    private OutputStream mOutputStreamNew;
+    private OutputStream mOutputStream;
 
     // TODO(timvolodine): consider caching a mIsTracing value for efficiency.
     // boolean mIsTracing;
 
-    /**
-     * Interface for the callbacks to return tracing data.
-     */
-    // TODO(timvolodine): remove once glue layer is updated, crbug.com/812289.
-    public interface AwTracingOutputStream {
-        public void write(byte[] chunk);
-        public void complete();
-    }
-
     public AwTracingController() {
         mNativeAwTracingController = nativeInit();
     }
@@ -91,30 +79,10 @@
         nativeStart(mNativeAwTracingController, categoryFilter, mode);
     }
 
-    // TODO(timvolodine): remove once glue layer is updated, crbug.com/812289.
-    // Start tracing.
-    public boolean start(String categoryFilter, int mode) {
-        if (isTracing()) {
-            return false;
-        }
-
-        boolean result = nativeStart(mNativeAwTracingController, categoryFilter, mode);
-        return result;
-    }
-
-    // TODO(timvolodine): remove once glue layer is updated, crbug.com/812289.
-    // Stop tracing and flush tracing data.
-    public boolean stopAndFlush(@Nullable AwTracingOutputStream outputStream) {
-        if (!isTracing()) return false;
-        mOutputStream = outputStream;
-        nativeStopAndFlush(mNativeAwTracingController);
-        return true;
-    }
-
     // Stop tracing and flush tracing data.
     public boolean stopAndFlush(@Nullable OutputStream outputStream) {
         if (!isTracing()) return false;
-        mOutputStreamNew = outputStream;
+        mOutputStream = outputStream;
         nativeStopAndFlush(mNativeAwTracingController);
         return true;
     }
@@ -152,23 +120,15 @@
 
     @CalledByNative
     private void onTraceDataChunkReceived(byte[] data) throws IOException {
-        // TODO(timvolodine): remove once glue layer is updated, crbug.com/812289.
         if (mOutputStream != null) {
             mOutputStream.write(data);
         }
-        if (mOutputStreamNew != null) {
-            mOutputStreamNew.write(data);
-        }
     }
 
     @CalledByNative
     private void onTraceDataComplete() throws IOException {
-        // TODO(timvolodine): remove once glue layer is updated, crbug.com/812289.
         if (mOutputStream != null) {
-            mOutputStream.complete();
-        }
-        if (mOutputStreamNew != null) {
-            mOutputStreamNew.close();
+            mOutputStream.close();
         }
     }
 
diff --git a/android_webview/lib/aw_main_delegate.cc b/android_webview/lib/aw_main_delegate.cc
index 50d03fa..c8ffcdd 100644
--- a/android_webview/lib/aw_main_delegate.cc
+++ b/android_webview/lib/aw_main_delegate.cc
@@ -34,7 +34,7 @@
 #include "components/crash/content/app/breakpad_linux.h"
 #include "components/crash/core/common/crash_key.h"
 #include "components/safe_browsing/android/safe_browsing_api_handler_bridge.h"
-#include "components/spellcheck/common/spellcheck_features.h"
+#include "components/spellcheck/spellcheck_build_features.h"
 #include "content/public/browser/android/browser_media_player_manager_register.h"
 #include "content/public/browser/browser_main_runner.h"
 #include "content/public/browser/browser_thread.h"
@@ -51,6 +51,10 @@
 #include "ui/base/resource/resource_bundle.h"
 #include "ui/events/gesture_detection/gesture_configuration.h"
 
+#if BUILDFLAG(ENABLE_SPELLCHECK)
+#include "components/spellcheck/common/spellcheck_features.h"
+#endif  // ENABLE_SPELLCHECK
+
 namespace android_webview {
 
 AwMainDelegate::AwMainDelegate() {}
@@ -130,12 +134,19 @@
     base::android::RegisterApkAssetWithFileDescriptorStore(
         content::kV8NativesDataDescriptor,
         gin::V8Initializer::GetNativesFilePath());
+#if defined(USE_V8_CONTEXT_SNAPSHOT)
+    gin::V8Initializer::V8SnapshotFileType file_type =
+        gin::V8Initializer::V8SnapshotFileType::kWithAdditionalContext;
+#else
+    gin::V8Initializer::V8SnapshotFileType file_type =
+        gin::V8Initializer::V8SnapshotFileType::kDefault;
+#endif
     base::android::RegisterApkAssetWithFileDescriptorStore(
         content::kV8Snapshot32DataDescriptor,
-        gin::V8Initializer::GetSnapshotFilePath(true));
+        gin::V8Initializer::GetSnapshotFilePath(true, file_type));
     base::android::RegisterApkAssetWithFileDescriptorStore(
         content::kV8Snapshot64DataDescriptor,
-        gin::V8Initializer::GetSnapshotFilePath(false));
+        gin::V8Initializer::GetSnapshotFilePath(false, file_type));
   }
 #endif  // V8_USE_EXTERNAL_STARTUP_DATA
 
@@ -144,8 +155,10 @@
     cl->AppendSwitch(switches::kInProcessGPU);
   }
 
+#if BUILDFLAG(ENABLE_SPELLCHECK)
   CommandLineHelper::AddEnabledFeature(
       *cl, spellcheck::kAndroidSpellCheckerNonLowEnd.name);
+#endif  // ENABLE_SPELLCHECK
 
   CommandLineHelper::AddDisabledFeature(*cl, features::kWebPayments.name);
 
diff --git a/android_webview/renderer/aw_content_renderer_client.cc b/android_webview/renderer/aw_content_renderer_client.cc
index c1eed5e..ed918de 100644
--- a/android_webview/renderer/aw_content_renderer_client.cc
+++ b/android_webview/renderer/aw_content_renderer_client.cc
@@ -27,7 +27,6 @@
 #include "base/strings/utf_string_conversions.h"
 #include "components/printing/renderer/print_render_frame_helper.h"
 #include "components/safe_browsing/renderer/websocket_sb_handshake_throttle.h"
-#include "components/spellcheck/spellcheck_build_features.h"
 #include "components/supervised_user_error_page/gin_wrapper.h"
 #include "components/supervised_user_error_page/supervised_user_error_page_android.h"
 #include "components/visitedlink/renderer/visitedlink_slave.h"
diff --git a/android_webview/support_library/boundary_interfaces/BUILD.gn b/android_webview/support_library/boundary_interfaces/BUILD.gn
index 378e626..6f08b1d9 100644
--- a/android_webview/support_library/boundary_interfaces/BUILD.gn
+++ b/android_webview/support_library/boundary_interfaces/BUILD.gn
@@ -8,6 +8,7 @@
 android_library("boundary_interface_java") {
   java_files = [
     "src/org/chromium/support_lib_boundary/BoundaryInterfaceReflectionUtil.java",
+    "src/org/chromium/support_lib_boundary/StaticsBoundaryInterface.java",
     "src/org/chromium/support_lib_boundary/VisualStateCallbackBoundaryInterface.java",
     "src/org/chromium/support_lib_boundary/WebSettingsBoundaryInterface.java",
     "src/org/chromium/support_lib_boundary/WebViewProviderBoundaryInterface.java",
diff --git a/android_webview/support_library/boundary_interfaces/src/org/chromium/support_lib_boundary/StaticsBoundaryInterface.java b/android_webview/support_library/boundary_interfaces/src/org/chromium/support_lib_boundary/StaticsBoundaryInterface.java
new file mode 100644
index 0000000..d60a60dd
--- /dev/null
+++ b/android_webview/support_library/boundary_interfaces/src/org/chromium/support_lib_boundary/StaticsBoundaryInterface.java
@@ -0,0 +1,20 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.support_lib_boundary;
+
+import android.content.Context;
+import android.net.Uri;
+import android.webkit.ValueCallback;
+
+import java.util.List;
+
+/**
+ * Boundary interface for WebViewFactoryProvider.Statics.
+ */
+public interface StaticsBoundaryInterface {
+    void initSafeBrowsing(Context context, ValueCallback<Boolean> callback);
+    void setSafeBrowsingWhitelist(List<String> hosts, ValueCallback<Boolean> callback);
+    Uri getSafeBrowsingPrivacyPolicyUrl();
+}
diff --git a/android_webview/support_library/boundary_interfaces/src/org/chromium/support_lib_boundary/WebViewProviderFactoryBoundaryInterface.java b/android_webview/support_library/boundary_interfaces/src/org/chromium/support_lib_boundary/WebViewProviderFactoryBoundaryInterface.java
index 21bd49c5..e868f7a 100644
--- a/android_webview/support_library/boundary_interfaces/src/org/chromium/support_lib_boundary/WebViewProviderFactoryBoundaryInterface.java
+++ b/android_webview/support_library/boundary_interfaces/src/org/chromium/support_lib_boundary/WebViewProviderFactoryBoundaryInterface.java
@@ -13,4 +13,5 @@
 public interface WebViewProviderFactoryBoundaryInterface {
     /* SupportLibraryWebViewChromium */ InvocationHandler createWebView(WebView webview);
     /* SupportLibWebkitToCompatConverter */ InvocationHandler getWebkitToCompatConverter();
+    /* StaticsAdapter */ InvocationHandler getStatics();
 }
diff --git a/android_webview/support_library/java/src/org/chromium/support_lib_glue/SupportLibWebViewChromiumFactory.java b/android_webview/support_library/java/src/org/chromium/support_lib_glue/SupportLibWebViewChromiumFactory.java
index 1b205642..cfccc39b 100644
--- a/android_webview/support_library/java/src/org/chromium/support_lib_glue/SupportLibWebViewChromiumFactory.java
+++ b/android_webview/support_library/java/src/org/chromium/support_lib_glue/SupportLibWebViewChromiumFactory.java
@@ -4,14 +4,22 @@
 
 package org.chromium.support_lib_glue;
 
+import android.content.Context;
+import android.net.Uri;
+import android.webkit.ValueCallback;
 import android.webkit.WebView;
 
+import com.android.webview.chromium.CallbackConverter;
+import com.android.webview.chromium.SharedStatics;
+import com.android.webview.chromium.WebViewChromiumAwInit;
 import com.android.webview.chromium.WebkitToSharedGlueConverter;
 
 import org.chromium.support_lib_boundary.BoundaryInterfaceReflectionUtil;
+import org.chromium.support_lib_boundary.StaticsBoundaryInterface;
 import org.chromium.support_lib_boundary.WebViewProviderFactoryBoundaryInterface;
 
 import java.lang.reflect.InvocationHandler;
+import java.util.List;
 
 /**
  * Support library glue version of WebViewChromiumFactoryProvider.
@@ -19,10 +27,15 @@
 class SupportLibWebViewChromiumFactory implements WebViewProviderFactoryBoundaryInterface {
     // SupportLibWebkitToCompatConverterAdapter
     private final InvocationHandler mCompatConverterAdapter;
+    private final WebViewChromiumAwInit mAwInit;
+
+    // Initialization guarded by mAwInit.getLock()
+    private InvocationHandler mStatics;
 
     public SupportLibWebViewChromiumFactory() {
         mCompatConverterAdapter = BoundaryInterfaceReflectionUtil.createInvocationHandlerFor(
                 new SupportLibWebkitToCompatConverterAdapter());
+        mAwInit = WebkitToSharedGlueConverter.getGlobalAwInit();
     }
 
     @Override
@@ -36,4 +49,40 @@
     public InvocationHandler getWebkitToCompatConverter() {
         return mCompatConverterAdapter;
     }
+
+    private static class StaticsAdapter implements StaticsBoundaryInterface {
+        private SharedStatics mSharedStatics;
+
+        public StaticsAdapter(SharedStatics sharedStatics) {
+            mSharedStatics = sharedStatics;
+        }
+
+        @Override
+        public void initSafeBrowsing(Context context, ValueCallback<Boolean> callback) {
+            mSharedStatics.initSafeBrowsing(context, CallbackConverter.fromValueCallback(callback));
+        }
+
+        @Override
+        public void setSafeBrowsingWhitelist(List<String> hosts, ValueCallback<Boolean> callback) {
+            mSharedStatics.setSafeBrowsingWhitelist(
+                    hosts, CallbackConverter.fromValueCallback(callback));
+        }
+
+        @Override
+        public Uri getSafeBrowsingPrivacyPolicyUrl() {
+            return mSharedStatics.getSafeBrowsingPrivacyPolicyUrl();
+        }
+    }
+
+    @Override
+    public InvocationHandler getStatics() {
+        synchronized (mAwInit.getLock()) {
+            if (mStatics == null) {
+                mStatics = BoundaryInterfaceReflectionUtil.createInvocationHandlerFor(
+                        new StaticsAdapter(
+                                WebkitToSharedGlueConverter.getGlobalAwInit().getStatics()));
+            }
+        }
+        return mStatics;
+    }
 }
diff --git a/android_webview/test/BUILD.gn b/android_webview/test/BUILD.gn
index e360a62..67096d0 100644
--- a/android_webview/test/BUILD.gn
+++ b/android_webview/test/BUILD.gn
@@ -5,6 +5,7 @@
 import("//build/config/android/rules.gni")
 import("//device/vr/features/features.gni")
 import("//testing/test.gni")
+import("//tools/v8_context_snapshot/v8_context_snapshot.gni")
 
 # Mark all targets as test only.
 testonly = true
@@ -70,8 +71,8 @@
   deps = [
     "//android_webview:pak_file_assets",
     "//third_party/icu:icu_assets",
-    "//v8:v8_external_startup_data_assets",
   ]
+
   sources = [
     "shell/assets/asset_file.html",
     "shell/assets/asset_icon.png",
@@ -91,6 +92,12 @@
     "shell/assets/visual_state_waits_for_js_test.html",
     "shell/assets/webvr_not_functional_test.html",
   ]
+
+  if (use_v8_context_snapshot) {
+    deps += [ "//tools/v8_context_snapshot:v8_context_snapshot_assets" ]
+  } else {
+    deps += [ "//v8:v8_external_startup_data_assets" ]
+  }
 }
 
 shared_library("libstandalonelibwebviewchromium") {
diff --git a/android_webview/tools/apk_merger.py b/android_webview/tools/apk_merger.py
index bfb1dad2..a4bee6e 100755
--- a/android_webview/tools/apk_merger.py
+++ b/android_webview/tools/apk_merger.py
@@ -166,7 +166,10 @@
 def MergeApk(args, tmp_apk, tmp_dir_32, tmp_dir_64):
   # Expected files to copy from 32- to 64-bit APK together with whether to
   # compress within the .apk.
-  expected_files = {'snapshot_blob_32.bin': False}
+  expected_files = {
+      'snapshot_blob_32.bin': False,
+      'v8_context_snapshot_32.bin': False,
+  }
   if args.shared_library:
     expected_files[args.shared_library] = not args.uncompress_shared_libraries
 
diff --git a/ash/BUILD.gn b/ash/BUILD.gn
index e6b503e..4f126d2 100644
--- a/ash/BUILD.gn
+++ b/ash/BUILD.gn
@@ -1066,6 +1066,7 @@
   deps = [
     "//ash/autoclick/common:autoclick",
     "//ash/components/autoclick/public/mojom",
+    "//ash/components/quick_launch/public/mojom",
     "//ash/touch_hud",
     "//base",
     "//base:i18n",
diff --git a/ash/DEPS b/ash/DEPS
index df9a1af..3852f7e 100644
--- a/ash/DEPS
+++ b/ash/DEPS
@@ -44,6 +44,7 @@
 
   # Ash can talk to public interfaces for mini-apps.
   "+ash/components/autoclick/public",
+  "+ash/components/quick_launch/public",
 
   # Ash sits above content. Exceptions live in //ash/content.
   "-content",
diff --git a/ash/accessibility/accessibility_focus_ring_controller.cc b/ash/accessibility/accessibility_focus_ring_controller.cc
index 46b1173..1adcc6ecb 100644
--- a/ash/accessibility/accessibility_focus_ring_controller.cc
+++ b/ash/accessibility/accessibility_focus_ring_controller.cc
@@ -8,6 +8,8 @@
 
 #include <algorithm>
 #include <memory>
+#include <set>
+#include <vector>
 
 #include "ash/accessibility/accessibility_highlight_layer.h"
 #include "ash/accessibility/focus_ring_layer.h"
@@ -96,9 +98,19 @@
 void AccessibilityFocusRingController::SetFocusRing(
     const std::vector<gfx::Rect>& rects,
     AccessibilityFocusRingController::FocusRingBehavior focus_ring_behavior) {
+  std::vector<gfx::Rect> clean_rects(rects);
+  // Remove duplicates
+  if (rects.size() > 1) {
+    std::set<gfx::Rect> rects_set(rects.begin(), rects.end());
+    clean_rects.assign(rects_set.begin(), rects_set.end());
+  }
+  // If there is no change, don't do any work.
+  if (focus_ring_behavior_ == focus_ring_behavior &&
+      clean_rects == focus_rects_)
+    return;
   focus_ring_behavior_ = focus_ring_behavior;
   OnLayerChange(&focus_animation_info_);
-  focus_rects_ = rects;
+  focus_rects_ = clean_rects;
   UpdateFocusRingsFromFocusRects();
   if (focus_ring_observer_for_testing_)
     focus_ring_observer_for_testing_.Run();
diff --git a/ash/ash_strings.grd b/ash/ash_strings.grd
index 3a4ce16..2c09528 100644
--- a/ash/ash_strings.grd
+++ b/ash/ash_strings.grd
@@ -1156,7 +1156,18 @@
       <message name="IDS_ASH_LOGIN_POD_MENU_BUTTON_ACCESSIBLE_NAME" desc="Text to be spoken when the focus is set to the menu button of the user pod on the login screen.">
         Options menu for <ph name="USER_EMAIL_ADDRESS">$1<ex>john.doe@example.com</ex></ph>
       </message>
-
+      <message name="IDS_ASH_LOGIN_POD_MENU_REMOVE_ITEM_ACCESSIBLE_NAME" desc="Text to be spoken when 'Remove user' item is selected on the pod menu.">
+        Remove this user
+      </message>
+      <message name="IDS_ASH_LOGIN_POD_LEGACY_SUPERVISED_USER_REMOVE_WARNING" desc="Text shown as a warning when attempting to remove legacy supervised user.">
+        All files and local data associated with the supervised user will be permanently deleted once this supervised user is removed. Visited websites and settings for this supervised user may still be visible by the manager at <ph name="MANAGEMENT_URL">$1<ex>www.example.com</ex></ph>.
+      </message>
+      <message name="IDS_ASH_LOGIN_POD_NON_OWNER_USER_REMOVE_WARNING_PART_1" desc="Text shown as a warning when attempting to remove non-owner user. Also see IDS_ASH_LOGIN_POD_NON_OWNER_USER_REMOVE_WARNING_PART_2.">
+        All files and local data associated with this user will be permanently deleted once this user is removed.
+      </message>
+      <message name="IDS_ASH_LOGIN_POD_NON_OWNER_USER_REMOVE_WARNING_PART_2" desc="Text shown as a warning when attempting to remove non-owner user. Also see IDS_ASH_LOGIN_POD_NON_OWNER_USER_REMOVE_WARNING_PART_1.">
+        $1 can still sign in later.
+      </message>
 
       <!-- Multi-profiles intro dialog -->
       <message name="IDS_ASH_MULTIPROFILES_INTRO_HEADLINE" desc="Describes which feature multi-profiles intro dialog presents.">
diff --git a/ash/components/shortcut_viewer/keyboard_shortcut_viewer_metadata.cc b/ash/components/shortcut_viewer/keyboard_shortcut_viewer_metadata.cc
index 12dfa8cdb..6505a13 100644
--- a/ash/components/shortcut_viewer/keyboard_shortcut_viewer_metadata.cc
+++ b/ash/components/shortcut_viewer/keyboard_shortcut_viewer_metadata.cc
@@ -9,6 +9,7 @@
 #include "ash/components/strings/grit/ash_components_strings.h"
 #include "base/logging.h"
 #include "base/macros.h"
+#include "base/no_destructor.h"
 #include "base/strings/utf_string_conversions.h"
 #include "ui/base/l10n/l10n_util.h"
 #include "ui/chromeos/events/keyboard_layout_util.h"
@@ -169,989 +170,984 @@
 }
 
 const std::vector<KeyboardShortcutItem>& GetKeyboardShortcutItemList() {
-  CR_DEFINE_STATIC_LOCAL(
-      std::vector<KeyboardShortcutItem>, item_list,
-      ({
-          {// |categories|
-           {ShortcutCategory::kPopular},
-           IDS_KSV_DESCRIPTION_LOCK_SCREEN,
-           IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_L, ui::EF_COMMAND_DOWN}}},
+  static base::NoDestructor<std::vector<KeyboardShortcutItem>> item_list({
+      {// |categories|
+       {ShortcutCategory::kPopular},
+       IDS_KSV_DESCRIPTION_LOCK_SCREEN,
+       IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_L, ui::EF_COMMAND_DOWN}}},
 
-          {// |categories|
-           {ShortcutCategory::kSystemAndDisplay},
-           IDS_KSV_DESCRIPTION_CHANGE_SCREEN_RESOLUTION,
-           IDS_KSV_SHORTCUT_CHANGE_SCREEN_RESOLUTION,
-           // |accelerator_ids|
-           {},
-           // |shortcut_key_codes|
-           {ui::VKEY_CONTROL, ui::VKEY_UNKNOWN, ui::VKEY_SHIFT,
-            ui::VKEY_UNKNOWN, ui::VKEY_OEM_PLUS, ui::VKEY_OEM_MINUS}},
+      {// |categories|
+       {ShortcutCategory::kSystemAndDisplay},
+       IDS_KSV_DESCRIPTION_CHANGE_SCREEN_RESOLUTION,
+       IDS_KSV_SHORTCUT_CHANGE_SCREEN_RESOLUTION,
+       // |accelerator_ids|
+       {},
+       // |shortcut_key_codes|
+       {ui::VKEY_CONTROL, ui::VKEY_UNKNOWN, ui::VKEY_SHIFT, ui::VKEY_UNKNOWN,
+        ui::VKEY_OEM_PLUS, ui::VKEY_OEM_MINUS}},
 
-          {// |categories|
-           {ShortcutCategory::kTabAndWindow},
-           IDS_KSV_DESCRIPTION_DRAG_LINK_IN_SAME_TAB,
-           IDS_KSV_SHORTCUT_DRAG_LINK_IN_SAME_TAB},
+      {// |categories|
+       {ShortcutCategory::kTabAndWindow},
+       IDS_KSV_DESCRIPTION_DRAG_LINK_IN_SAME_TAB,
+       IDS_KSV_SHORTCUT_DRAG_LINK_IN_SAME_TAB},
 
-          {// |categories|
-           {ShortcutCategory::kTabAndWindow},
-           IDS_KSV_DESCRIPTION_DRAG_LINK_IN_NEW_TAB,
-           IDS_KSV_SHORTCUT_DRAG_LINK_IN_NEW_TAB},
+      {// |categories|
+       {ShortcutCategory::kTabAndWindow},
+       IDS_KSV_DESCRIPTION_DRAG_LINK_IN_NEW_TAB,
+       IDS_KSV_SHORTCUT_DRAG_LINK_IN_NEW_TAB},
 
-          {// |categories|
-           {ShortcutCategory::kAccessibility},
-           IDS_KSV_DESCRIPTION_HIGHLIGHT_NEXT_ITEM_ON_SHELF,
-           IDS_KSV_SHORTCUT_HIGHLIGHT_NEXT_ITEM_ON_SHELF,
-           // |accelerator_ids|
-           {},
-           // |shortcut_key_codes|
-           {ui::VKEY_SHIFT, ui::VKEY_UNKNOWN, ui::VKEY_LMENU, ui::VKEY_UNKNOWN,
-            ui::VKEY_L, ui::VKEY_TAB, ui::VKEY_RIGHT}},
+      {// |categories|
+       {ShortcutCategory::kAccessibility},
+       IDS_KSV_DESCRIPTION_HIGHLIGHT_NEXT_ITEM_ON_SHELF,
+       IDS_KSV_SHORTCUT_HIGHLIGHT_NEXT_ITEM_ON_SHELF,
+       // |accelerator_ids|
+       {},
+       // |shortcut_key_codes|
+       {ui::VKEY_SHIFT, ui::VKEY_UNKNOWN, ui::VKEY_LMENU, ui::VKEY_UNKNOWN,
+        ui::VKEY_L, ui::VKEY_TAB, ui::VKEY_RIGHT}},
 
-          {// |categories|
-           {ShortcutCategory::kPopular, ShortcutCategory::kTabAndWindow},
-           IDS_KSV_DESCRIPTION_CYCLE_BACKWARD_MRU,
-           IDS_KSV_SHORTCUT_CYCLE_BACKWARD_MRU,
-           // |accelerator_ids|
-           {},
-           // |shortcut_key_codes|
-           {ui::VKEY_LMENU, ui::VKEY_UNKNOWN, ui::VKEY_SHIFT, ui::VKEY_TAB}},
+      {// |categories|
+       {ShortcutCategory::kPopular, ShortcutCategory::kTabAndWindow},
+       IDS_KSV_DESCRIPTION_CYCLE_BACKWARD_MRU,
+       IDS_KSV_SHORTCUT_CYCLE_BACKWARD_MRU,
+       // |accelerator_ids|
+       {},
+       // |shortcut_key_codes|
+       {ui::VKEY_LMENU, ui::VKEY_UNKNOWN, ui::VKEY_SHIFT, ui::VKEY_TAB}},
 
-          {// |categories|
-           {ShortcutCategory::kPopular, ShortcutCategory::kTabAndWindow},
-           IDS_KSV_DESCRIPTION_CYCLE_FORWARD_MRU,
-           IDS_KSV_SHORTCUT_CYCLE_FORWARD_MRU,
-           // |accelerator_ids|
-           {},
-           // |shortcut_key_codes|
-           {ui::VKEY_LMENU, ui::VKEY_TAB}},
+      {// |categories|
+       {ShortcutCategory::kPopular, ShortcutCategory::kTabAndWindow},
+       IDS_KSV_DESCRIPTION_CYCLE_FORWARD_MRU,
+       IDS_KSV_SHORTCUT_CYCLE_FORWARD_MRU,
+       // |accelerator_ids|
+       {},
+       // |shortcut_key_codes|
+       {ui::VKEY_LMENU, ui::VKEY_TAB}},
 
-          {// |categories|
-           {ShortcutCategory::kAccessibility},
-           IDS_KSV_DESCRIPTION_FOCUS_SHELF,
-           IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_L, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN}}},
+      {// |categories|
+       {ShortcutCategory::kAccessibility},
+       IDS_KSV_DESCRIPTION_FOCUS_SHELF,
+       IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_L, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN}}},
 
-          {// |categories|
-           {ShortcutCategory::kPageAndBrowser},
-           IDS_KSV_DESCRIPTION_IDC_BOOKMARK_ALL_TABS,
-           IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_D, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN}}},
+      {// |categories|
+       {ShortcutCategory::kPageAndBrowser},
+       IDS_KSV_DESCRIPTION_IDC_BOOKMARK_ALL_TABS,
+       IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_D, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN}}},
 
-          {// |categories|
-           {ShortcutCategory::kPageAndBrowser},
-           IDS_KSV_DESCRIPTION_IDC_BOOKMARK_PAGE,
-           IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_D, ui::EF_CONTROL_DOWN}}},
+      {// |categories|
+       {ShortcutCategory::kPageAndBrowser},
+       IDS_KSV_DESCRIPTION_IDC_BOOKMARK_PAGE,
+       IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_D, ui::EF_CONTROL_DOWN}}},
 
-          {// |categories|
-           {ShortcutCategory::kTabAndWindow},
-           IDS_KSV_DESCRIPTION_IDC_CLOSE_TAB,
-           IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_W, ui::EF_CONTROL_DOWN}}},
+      {// |categories|
+       {ShortcutCategory::kTabAndWindow},
+       IDS_KSV_DESCRIPTION_IDC_CLOSE_TAB,
+       IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_W, ui::EF_CONTROL_DOWN}}},
 
-          {// |categories|
-           {ShortcutCategory::kTabAndWindow},
-           IDS_KSV_DESCRIPTION_IDC_CLOSE_WINDOW,
-           IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_W, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN}}},
+      {// |categories|
+       {ShortcutCategory::kTabAndWindow},
+       IDS_KSV_DESCRIPTION_IDC_CLOSE_WINDOW,
+       IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_W, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN}}},
 
-          {// |categories|
-           {ShortcutCategory::kTextEditing},
-           IDS_KSV_DESCRIPTION_IDC_CONTENT_CONTEXT_SELECTALL,
-           IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
-           // |accelerator_ids|
-           {},
-           // |shortcut_key_codes|
-           {ui::VKEY_CONTROL, ui::VKEY_UNKNOWN, ui::VKEY_A}},
+      {// |categories|
+       {ShortcutCategory::kTextEditing},
+       IDS_KSV_DESCRIPTION_IDC_CONTENT_CONTEXT_SELECTALL,
+       IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
+       // |accelerator_ids|
+       {},
+       // |shortcut_key_codes|
+       {ui::VKEY_CONTROL, ui::VKEY_UNKNOWN, ui::VKEY_A}},
 
-          {// |categories|
-           {ShortcutCategory::kPageAndBrowser},
-           IDS_KSV_DESCRIPTION_IDC_DEV_TOOLS,
-           IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_I, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN}}},
+      {// |categories|
+       {ShortcutCategory::kPageAndBrowser},
+       IDS_KSV_DESCRIPTION_IDC_DEV_TOOLS,
+       IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_I, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN}}},
 
-          {// |categories|
-           {ShortcutCategory::kPageAndBrowser},
-           IDS_KSV_DESCRIPTION_IDC_DEV_TOOLS_CONSOLE,
-           IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_J, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN}}},
+      {// |categories|
+       {ShortcutCategory::kPageAndBrowser},
+       IDS_KSV_DESCRIPTION_IDC_DEV_TOOLS_CONSOLE,
+       IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_J, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN}}},
 
-          {// |categories|
-           {ShortcutCategory::kPageAndBrowser},
-           IDS_KSV_DESCRIPTION_IDC_FIND,
-           IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_F, ui::EF_CONTROL_DOWN}}},
+      {// |categories|
+       {ShortcutCategory::kPageAndBrowser},
+       IDS_KSV_DESCRIPTION_IDC_FIND,
+       IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_F, ui::EF_CONTROL_DOWN}}},
 
-          {// |categories|
-           {ShortcutCategory::kPageAndBrowser},
-           IDS_KSV_DESCRIPTION_IDC_FIND_NEXT,
-           IDS_KSV_SHORTCUT_IDC_FIND_NEXT,
-           // |accelerator_ids|
-           {},
-           // |shortcut_key_codes|
-           {ui::VKEY_CONTROL, ui::VKEY_UNKNOWN, ui::VKEY_G, ui::VKEY_RETURN}},
+      {// |categories|
+       {ShortcutCategory::kPageAndBrowser},
+       IDS_KSV_DESCRIPTION_IDC_FIND_NEXT,
+       IDS_KSV_SHORTCUT_IDC_FIND_NEXT,
+       // |accelerator_ids|
+       {},
+       // |shortcut_key_codes|
+       {ui::VKEY_CONTROL, ui::VKEY_UNKNOWN, ui::VKEY_G, ui::VKEY_RETURN}},
 
-          {// |categories|
-           {ShortcutCategory::kPageAndBrowser},
-           IDS_KSV_DESCRIPTION_IDC_FIND_PREVIOUS,
-           IDS_KSV_SHORTCUT_IDC_FIND_PREVIOUS,
-           // |accelerator_ids|
-           {},
-           // |shortcut_key_codes|
-           {ui::VKEY_CONTROL, ui::VKEY_UNKNOWN, ui::VKEY_SHIFT,
-            ui::VKEY_UNKNOWN, ui::VKEY_G, ui::VKEY_SHIFT, ui::VKEY_UNKNOWN,
-            ui::VKEY_RETURN}},
+      {// |categories|
+       {ShortcutCategory::kPageAndBrowser},
+       IDS_KSV_DESCRIPTION_IDC_FIND_PREVIOUS,
+       IDS_KSV_SHORTCUT_IDC_FIND_PREVIOUS,
+       // |accelerator_ids|
+       {},
+       // |shortcut_key_codes|
+       {ui::VKEY_CONTROL, ui::VKEY_UNKNOWN, ui::VKEY_SHIFT, ui::VKEY_UNKNOWN,
+        ui::VKEY_G, ui::VKEY_SHIFT, ui::VKEY_UNKNOWN, ui::VKEY_RETURN}},
 
-          {// |categories|
-           {ShortcutCategory::kAccessibility},
-           IDS_KSV_DESCRIPTION_IDC_FOCUS_BOOKMARKS,
-           IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_B, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN}}},
+      {// |categories|
+       {ShortcutCategory::kAccessibility},
+       IDS_KSV_DESCRIPTION_IDC_FOCUS_BOOKMARKS,
+       IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_B, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN}}},
 
-          {// |categories|
-           {ShortcutCategory::kPopular, ShortcutCategory::kTextEditing},
-           IDS_KSV_DESCRIPTION_IDC_FOCUS_LOCATION,
-           IDS_KSV_SHORTCUT_IDC_FOCUS_LOCATION,
-           // |accelerator_ids|
-           {},
-           // |shortcut_key_codes|
-           {ui::VKEY_CONTROL, ui::VKEY_UNKNOWN, ui::VKEY_L, ui::VKEY_LMENU,
-            ui::VKEY_UNKNOWN, ui::VKEY_D}},
+      {// |categories|
+       {ShortcutCategory::kPopular, ShortcutCategory::kTextEditing},
+       IDS_KSV_DESCRIPTION_IDC_FOCUS_LOCATION,
+       IDS_KSV_SHORTCUT_IDC_FOCUS_LOCATION,
+       // |accelerator_ids|
+       {},
+       // |shortcut_key_codes|
+       {ui::VKEY_CONTROL, ui::VKEY_UNKNOWN, ui::VKEY_L, ui::VKEY_LMENU,
+        ui::VKEY_UNKNOWN, ui::VKEY_D}},
 
-          {// |categories|
-           {ShortcutCategory::kPopular, ShortcutCategory::kPageAndBrowser},
-           IDS_KSV_DESCRIPTION_IDC_FOCUS_SEARCH,
-           IDS_KSV_SHORTCUT_IDC_FOCUS_SEARCH,
-           // |accelerator_ids|
-           {},
-           // |shortcut_key_codes|
-           {ui::VKEY_CONTROL, ui::VKEY_UNKNOWN, ui::VKEY_K, ui::VKEY_E}},
+      {// |categories|
+       {ShortcutCategory::kPopular, ShortcutCategory::kPageAndBrowser},
+       IDS_KSV_DESCRIPTION_IDC_FOCUS_SEARCH,
+       IDS_KSV_SHORTCUT_IDC_FOCUS_SEARCH,
+       // |accelerator_ids|
+       {},
+       // |shortcut_key_codes|
+       {ui::VKEY_CONTROL, ui::VKEY_UNKNOWN, ui::VKEY_K, ui::VKEY_E}},
 
-          {// |categories|
-           {ShortcutCategory::kAccessibility},
-           IDS_KSV_DESCRIPTION_IDC_FOCUS_TOOLBAR,
-           IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_T, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN}}},
+      {// |categories|
+       {ShortcutCategory::kAccessibility},
+       IDS_KSV_DESCRIPTION_IDC_FOCUS_TOOLBAR,
+       IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_T, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN}}},
 
-          {// |categories|
-           {ShortcutCategory::kTextEditing},
-           IDS_KSV_DESCRIPTION_KEYBOARD_BRIGHTNESS_DOWN,
-           IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_BRIGHTNESS_DOWN, ui::EF_ALT_DOWN}}},
+      {// |categories|
+       {ShortcutCategory::kTextEditing},
+       IDS_KSV_DESCRIPTION_KEYBOARD_BRIGHTNESS_DOWN,
+       IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_BRIGHTNESS_DOWN, ui::EF_ALT_DOWN}}},
 
-          {// |categories|
-           {ShortcutCategory::kTextEditing},
-           IDS_KSV_DESCRIPTION_KEYBOARD_BRIGHTNESS_UP,
-           IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_BRIGHTNESS_UP, ui::EF_ALT_DOWN}}},
+      {// |categories|
+       {ShortcutCategory::kTextEditing},
+       IDS_KSV_DESCRIPTION_KEYBOARD_BRIGHTNESS_UP,
+       IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_BRIGHTNESS_UP, ui::EF_ALT_DOWN}}},
 
-          {// |categories|
-           {ShortcutCategory::kSystemAndDisplay},
-           IDS_KSV_DESCRIPTION_LAUNCH_LAST_APP,
-           IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_9, ui::EF_ALT_DOWN}}},
+      {// |categories|
+       {ShortcutCategory::kSystemAndDisplay},
+       IDS_KSV_DESCRIPTION_LAUNCH_LAST_APP,
+       IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_9, ui::EF_ALT_DOWN}}},
 
-          {// |categories|
-           {ShortcutCategory::kPopular, ShortcutCategory::kTabAndWindow},
-           IDS_KSV_DESCRIPTION_NEW_TAB,
-           IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_T, ui::EF_CONTROL_DOWN}}},
+      {// |categories|
+       {ShortcutCategory::kPopular, ShortcutCategory::kTabAndWindow},
+       IDS_KSV_DESCRIPTION_NEW_TAB,
+       IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_T, ui::EF_CONTROL_DOWN}}},
 
-          {// |categories|
-           {ShortcutCategory::kPopular, ShortcutCategory::kTabAndWindow},
-           IDS_KSV_DESCRIPTION_NEW_WINDOW,
-           IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_N, ui::EF_CONTROL_DOWN}}},
+      {// |categories|
+       {ShortcutCategory::kPopular, ShortcutCategory::kTabAndWindow},
+       IDS_KSV_DESCRIPTION_NEW_WINDOW,
+       IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_N, ui::EF_CONTROL_DOWN}}},
 
-          {// |categories|
-           {ShortcutCategory::kTabAndWindow},
-           IDS_KSV_DESCRIPTION_IDC_NEW_INCOGNITO_WINDOW,
-           IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_N, ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN}}},
+      {// |categories|
+       {ShortcutCategory::kTabAndWindow},
+       IDS_KSV_DESCRIPTION_IDC_NEW_INCOGNITO_WINDOW,
+       IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_N, ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN}}},
 
-          {// |categories|
-           {ShortcutCategory::kTabAndWindow},
-           IDS_KSV_DESCRIPTION_IDC_OPEN_FILE,
-           IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_O, ui::EF_CONTROL_DOWN}}},
+      {// |categories|
+       {ShortcutCategory::kTabAndWindow},
+       IDS_KSV_DESCRIPTION_IDC_OPEN_FILE,
+       IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_O, ui::EF_CONTROL_DOWN}}},
 
-          {// |categories|
-           {ShortcutCategory::kPageAndBrowser},
-           IDS_KSV_DESCRIPTION_IDC_PRINT,
-           IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_P, ui::EF_CONTROL_DOWN}}},
+      {// |categories|
+       {ShortcutCategory::kPageAndBrowser},
+       IDS_KSV_DESCRIPTION_IDC_PRINT,
+       IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_P, ui::EF_CONTROL_DOWN}}},
 
-          {// |categories|
-           {ShortcutCategory::kPageAndBrowser},
-           IDS_KSV_DESCRIPTION_IDC_RELOAD,
-           IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_R, ui::EF_CONTROL_DOWN}}},
+      {// |categories|
+       {ShortcutCategory::kPageAndBrowser},
+       IDS_KSV_DESCRIPTION_IDC_RELOAD,
+       IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_R, ui::EF_CONTROL_DOWN}}},
 
-          {// |categories|
-           {ShortcutCategory::kPageAndBrowser},
-           IDS_KSV_DESCRIPTION_IDC_RELOAD_BYPASSING_CACHE,
-           IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_R, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN}}},
+      {// |categories|
+       {ShortcutCategory::kPageAndBrowser},
+       IDS_KSV_DESCRIPTION_IDC_RELOAD_BYPASSING_CACHE,
+       IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_R, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN}}},
 
-          {// |categories|
-           {ShortcutCategory::kTabAndWindow},
-           IDS_KSV_DESCRIPTION_IDC_RESTORE_TAB,
-           IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_T, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN}}},
+      {// |categories|
+       {ShortcutCategory::kTabAndWindow},
+       IDS_KSV_DESCRIPTION_IDC_RESTORE_TAB,
+       IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_T, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN}}},
 
-          {// |categories|
-           {ShortcutCategory::kPageAndBrowser},
-           IDS_KSV_DESCRIPTION_IDC_SAVE_PAGE,
-           IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_S, ui::EF_CONTROL_DOWN}}},
+      {// |categories|
+       {ShortcutCategory::kPageAndBrowser},
+       IDS_KSV_DESCRIPTION_IDC_SAVE_PAGE,
+       IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_S, ui::EF_CONTROL_DOWN}}},
 
-          {// |categories|
-           {ShortcutCategory::kTabAndWindow},
-           IDS_KSV_DESCRIPTION_IDC_SELECT_LAST_TAB,
-           IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_9, ui::EF_CONTROL_DOWN}}},
+      {// |categories|
+       {ShortcutCategory::kTabAndWindow},
+       IDS_KSV_DESCRIPTION_IDC_SELECT_LAST_TAB,
+       IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_9, ui::EF_CONTROL_DOWN}}},
 
-          {// |categories|
-           {ShortcutCategory::kPopular},
-           IDS_KSV_DESCRIPTION_IDC_SELECT_NEXT_TAB,
-           IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_TAB, ui::EF_CONTROL_DOWN}}},
+      {// |categories|
+       {ShortcutCategory::kPopular},
+       IDS_KSV_DESCRIPTION_IDC_SELECT_NEXT_TAB,
+       IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_TAB, ui::EF_CONTROL_DOWN}}},
 
-          {// |categories|
-           {ShortcutCategory::kPopular},
-           IDS_KSV_DESCRIPTION_IDC_SELECT_PREVIOUS_TAB,
-           IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_TAB, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN}}},
+      {// |categories|
+       {ShortcutCategory::kPopular},
+       IDS_KSV_DESCRIPTION_IDC_SELECT_PREVIOUS_TAB,
+       IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_TAB, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN}}},
 
-          {// |categories|
-           {ShortcutCategory::kPageAndBrowser},
-           IDS_KSV_DESCRIPTION_IDC_SHOW_BOOKMARK_BAR,
-           IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_B, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN}}},
+      {// |categories|
+       {ShortcutCategory::kPageAndBrowser},
+       IDS_KSV_DESCRIPTION_IDC_SHOW_BOOKMARK_BAR,
+       IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_B, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN}}},
 
-          {// |categories|
-           {ShortcutCategory::kPageAndBrowser},
-           IDS_KSV_DESCRIPTION_IDC_SHOW_HISTORY,
-           IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_H, ui::EF_CONTROL_DOWN}}},
+      {// |categories|
+       {ShortcutCategory::kPageAndBrowser},
+       IDS_KSV_DESCRIPTION_IDC_SHOW_HISTORY,
+       IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_H, ui::EF_CONTROL_DOWN}}},
 
-          {// |categories|
-           {ShortcutCategory::kPageAndBrowser},
-           IDS_KSV_DESCRIPTION_IDC_STOP,
-           IDS_KSV_SHORTCUT_ONE_KEY,
-           // |accelerator_ids|
-           {},
-           // |shortcut_key_codes|
-           {ui::VKEY_ESCAPE}},
+      {// |categories|
+       {ShortcutCategory::kPageAndBrowser},
+       IDS_KSV_DESCRIPTION_IDC_STOP,
+       IDS_KSV_SHORTCUT_ONE_KEY,
+       // |accelerator_ids|
+       {},
+       // |shortcut_key_codes|
+       {ui::VKEY_ESCAPE}},
 
-          {// |categories|
-           {ShortcutCategory::kPageAndBrowser},
-           IDS_KSV_DESCRIPTION_IDC_VIEW_SOURCE,
-           IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_U, ui::EF_CONTROL_DOWN}}},
+      {// |categories|
+       {ShortcutCategory::kPageAndBrowser},
+       IDS_KSV_DESCRIPTION_IDC_VIEW_SOURCE,
+       IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_U, ui::EF_CONTROL_DOWN}}},
 
-          {// |categories|
-           {ShortcutCategory::kPageAndBrowser},
-           IDS_KSV_DESCRIPTION_IDC_ZOOM_MINUS,
-           IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_OEM_MINUS, ui::EF_CONTROL_DOWN}}},
+      {// |categories|
+       {ShortcutCategory::kPageAndBrowser},
+       IDS_KSV_DESCRIPTION_IDC_ZOOM_MINUS,
+       IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_OEM_MINUS, ui::EF_CONTROL_DOWN}}},
 
-          {// |categories|
-           {ShortcutCategory::kPageAndBrowser},
-           IDS_KSV_DESCRIPTION_IDC_ZOOM_NORMAL,
-           IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_0, ui::EF_CONTROL_DOWN}}},
+      {// |categories|
+       {ShortcutCategory::kPageAndBrowser},
+       IDS_KSV_DESCRIPTION_IDC_ZOOM_NORMAL,
+       IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_0, ui::EF_CONTROL_DOWN}}},
 
-          {// |categories|
-           {ShortcutCategory::kPageAndBrowser},
-           IDS_KSV_DESCRIPTION_IDC_ZOOM_PLUS,
-           IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_OEM_PLUS, ui::EF_CONTROL_DOWN}}},
+      {// |categories|
+       {ShortcutCategory::kPageAndBrowser},
+       IDS_KSV_DESCRIPTION_IDC_ZOOM_PLUS,
+       IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_OEM_PLUS, ui::EF_CONTROL_DOWN}}},
 
-          {// |categories|
-           {ShortcutCategory::kTextEditing},
-           IDS_KSV_DESCRIPTION_NEXT_IME,
-           IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_SPACE, ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN}}},
+      {// |categories|
+       {ShortcutCategory::kTextEditing},
+       IDS_KSV_DESCRIPTION_NEXT_IME,
+       IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_SPACE, ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN}}},
 
-          {// |categories|
-           {ShortcutCategory::kSystemAndDisplay},
-           IDS_KSV_DESCRIPTION_OPEN_FILE_MANAGER,
-           IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_M, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN}}},
+      {// |categories|
+       {ShortcutCategory::kSystemAndDisplay},
+       IDS_KSV_DESCRIPTION_OPEN_FILE_MANAGER,
+       IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_M, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN}}},
 
-          {// |categories|
-           {ShortcutCategory::kTextEditing},
-           IDS_KSV_DESCRIPTION_PREVIOUS_IME,
-           IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_SPACE, ui::EF_CONTROL_DOWN}}},
+      {// |categories|
+       {ShortcutCategory::kTextEditing},
+       IDS_KSV_DESCRIPTION_PREVIOUS_IME,
+       IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_SPACE, ui::EF_CONTROL_DOWN}}},
 
-          {// |categories|
-           {ShortcutCategory::kSystemAndDisplay},
-           IDS_KSV_DESCRIPTION_ROTATE_SCREEN,
-           IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_BROWSER_REFRESH,
-             ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN}}},
+      {// |categories|
+       {ShortcutCategory::kSystemAndDisplay},
+       IDS_KSV_DESCRIPTION_ROTATE_SCREEN,
+       IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_BROWSER_REFRESH, ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN}}},
 
-          {// |categories|
-           {ShortcutCategory::kSystemAndDisplay},
-           IDS_KSV_DESCRIPTION_SCALE_UI_RESET,
-           IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_0, ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN}}},
+      {// |categories|
+       {ShortcutCategory::kSystemAndDisplay},
+       IDS_KSV_DESCRIPTION_SCALE_UI_RESET,
+       IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_0, ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN}}},
 
-          {// |categories|
-           {ShortcutCategory::kSystemAndDisplay},
-           IDS_KSV_DESCRIPTION_SWITCH_TO_NEXT_USER,
-           IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_OEM_PERIOD, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN}}},
+      {// |categories|
+       {ShortcutCategory::kSystemAndDisplay},
+       IDS_KSV_DESCRIPTION_SWITCH_TO_NEXT_USER,
+       IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_OEM_PERIOD, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN}}},
 
-          {// |categories|
-           {ShortcutCategory::kSystemAndDisplay},
-           IDS_KSV_DESCRIPTION_SWITCH_TO_PREVIOUS_USER,
-           IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_OEM_COMMA, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN}}},
+      {// |categories|
+       {ShortcutCategory::kSystemAndDisplay},
+       IDS_KSV_DESCRIPTION_SWITCH_TO_PREVIOUS_USER,
+       IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_OEM_COMMA, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN}}},
 
-          {// |categories|
-           {ShortcutCategory::kPopular},
-           IDS_KSV_DESCRIPTION_TAKE_PARTIAL_SCREENSHOT,
-           IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_MEDIA_LAUNCH_APP1,
-             ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN}}},
+      {// |categories|
+       {ShortcutCategory::kPopular},
+       IDS_KSV_DESCRIPTION_TAKE_PARTIAL_SCREENSHOT,
+       IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN}}},
 
-          {// |categories|
-           {ShortcutCategory::kPopular},
-           IDS_KSV_DESCRIPTION_TAKE_SCREENSHOT,
-           IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_CONTROL_DOWN}}},
+      {// |categories|
+       {ShortcutCategory::kPopular},
+       IDS_KSV_DESCRIPTION_TAKE_SCREENSHOT,
+       IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_CONTROL_DOWN}}},
 
-          {// |categories|
-           {ShortcutCategory::kPopular, ShortcutCategory::kTextEditing},
-           IDS_KSV_DESCRIPTION_TOGGLE_CAPS_LOCK,
-           IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_LWIN, ui::EF_ALT_DOWN}}},
+      {// |categories|
+       {ShortcutCategory::kPopular, ShortcutCategory::kTextEditing},
+       IDS_KSV_DESCRIPTION_TOGGLE_CAPS_LOCK,
+       IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_LWIN, ui::EF_ALT_DOWN}}},
 
-          {// |categories|
-           {ShortcutCategory::kAccessibility},
-           IDS_KSV_DESCRIPTION_TOGGLE_HIGH_CONTRAST,
-           IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_H, ui::EF_COMMAND_DOWN | ui::EF_CONTROL_DOWN}}},
+      {// |categories|
+       {ShortcutCategory::kAccessibility},
+       IDS_KSV_DESCRIPTION_TOGGLE_HIGH_CONTRAST,
+       IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_H, ui::EF_COMMAND_DOWN | ui::EF_CONTROL_DOWN}}},
 
-          {// |categories|
-           {ShortcutCategory::kSystemAndDisplay},
-           IDS_KSV_DESCRIPTION_TOGGLE_MESSAGE_CENTER_BUBBLE,
-           IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_N, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN}}},
+      {// |categories|
+       {ShortcutCategory::kSystemAndDisplay},
+       IDS_KSV_DESCRIPTION_TOGGLE_MESSAGE_CENTER_BUBBLE,
+       IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_N, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN}}},
 
-          {// |categories|
-           {ShortcutCategory::kPopular},
-           IDS_KSV_DESCRIPTION_TOGGLE_OVERVIEW,
-           IDS_KSV_SHORTCUT_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_NONE}}},
+      {// |categories|
+       {ShortcutCategory::kPopular},
+       IDS_KSV_DESCRIPTION_TOGGLE_OVERVIEW,
+       IDS_KSV_SHORTCUT_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_NONE}}},
 
-          {// |categories|
-           {ShortcutCategory::kAccessibility},
-           IDS_KSV_DESCRIPTION_TOGGLE_SPOKEN_FEEDBACK,
-           IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_Z, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN}}},
+      {// |categories|
+       {ShortcutCategory::kAccessibility},
+       IDS_KSV_DESCRIPTION_TOGGLE_SPOKEN_FEEDBACK,
+       IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_Z, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN}}},
 
-          {// |categories|
-           {ShortcutCategory::kSystemAndDisplay},
-           IDS_KSV_DESCRIPTION_TOGGLE_SYSTEM_TRAY_BUBBLE,
-           IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_S, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN}}},
+      {// |categories|
+       {ShortcutCategory::kSystemAndDisplay},
+       IDS_KSV_DESCRIPTION_TOGGLE_SYSTEM_TRAY_BUBBLE,
+       IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_S, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN}}},
 
-          {// |categories|
-           {ShortcutCategory::kTabAndWindow},
-           IDS_KSV_DESCRIPTION_WINDOW_CYCLE_SNAP_LEFT,
-           IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_OEM_4, ui::EF_ALT_DOWN}}},
+      {// |categories|
+       {ShortcutCategory::kTabAndWindow},
+       IDS_KSV_DESCRIPTION_WINDOW_CYCLE_SNAP_LEFT,
+       IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_OEM_4, ui::EF_ALT_DOWN}}},
 
-          {// |categories|
-           {ShortcutCategory::kTabAndWindow},
-           IDS_KSV_DESCRIPTION_WINDOW_CYCLE_SNAP_RIGHT,
-           IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_OEM_6, ui::EF_ALT_DOWN}}},
+      {// |categories|
+       {ShortcutCategory::kTabAndWindow},
+       IDS_KSV_DESCRIPTION_WINDOW_CYCLE_SNAP_RIGHT,
+       IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_OEM_6, ui::EF_ALT_DOWN}}},
 
-          {// |categories|
-           {ShortcutCategory::kPopular, ShortcutCategory::kTextEditing},
-           IDS_KSV_DESCRIPTION_COPY,
-           IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
-           // |accelerator_ids|
-           {},
-           // |shortcut_key_codes|
-           {ui::VKEY_CONTROL, ui::VKEY_UNKNOWN, ui::VKEY_C}},
+      {// |categories|
+       {ShortcutCategory::kPopular, ShortcutCategory::kTextEditing},
+       IDS_KSV_DESCRIPTION_COPY,
+       IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
+       // |accelerator_ids|
+       {},
+       // |shortcut_key_codes|
+       {ui::VKEY_CONTROL, ui::VKEY_UNKNOWN, ui::VKEY_C}},
 
-          {// |categories|
-           {ShortcutCategory::kPopular, ShortcutCategory::kTextEditing},
-           IDS_KSV_DESCRIPTION_PASTE,
-           IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
-           // |accelerator_ids|
-           {},
-           // |shortcut_key_codes|
-           {ui::VKEY_CONTROL, ui::VKEY_UNKNOWN, ui::VKEY_V}},
+      {// |categories|
+       {ShortcutCategory::kPopular, ShortcutCategory::kTextEditing},
+       IDS_KSV_DESCRIPTION_PASTE,
+       IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
+       // |accelerator_ids|
+       {},
+       // |shortcut_key_codes|
+       {ui::VKEY_CONTROL, ui::VKEY_UNKNOWN, ui::VKEY_V}},
 
-          {// |categories|
-           {ShortcutCategory::kPopular},
-           IDS_KSV_DESCRIPTION_SELECT_NUMBERED_TAB,
-           IDS_KSV_SHORTCUT_SELECT_NUMBERED_TAB,
-           // |accelerator_ids|
-           {},
-           // |shortcut_key_codes|
-           {ui::VKEY_CONTROL, ui::VKEY_UNKNOWN}},
+      {// |categories|
+       {ShortcutCategory::kPopular},
+       IDS_KSV_DESCRIPTION_SELECT_NUMBERED_TAB,
+       IDS_KSV_SHORTCUT_SELECT_NUMBERED_TAB,
+       // |accelerator_ids|
+       {},
+       // |shortcut_key_codes|
+       {ui::VKEY_CONTROL, ui::VKEY_UNKNOWN}},
 
-          {// |categories|
-           {ShortcutCategory::kPopular, ShortcutCategory::kPageAndBrowser},
-           IDS_KSV_DESCRIPTION_IDC_RELOAD,
-           IDS_KSV_SHORTCUT_ONE_KEY,
-           // |accelerator_ids|
-           {},
-           // |shortcut_key_codes|
-           {ui::VKEY_BROWSER_REFRESH}},
+      {// |categories|
+       {ShortcutCategory::kPopular, ShortcutCategory::kPageAndBrowser},
+       IDS_KSV_DESCRIPTION_IDC_RELOAD,
+       IDS_KSV_SHORTCUT_ONE_KEY,
+       // |accelerator_ids|
+       {},
+       // |shortcut_key_codes|
+       {ui::VKEY_BROWSER_REFRESH}},
 
-          {// |categories|
-           {ShortcutCategory::kPopular},
-           IDS_KSV_DESCRIPTION_KEYBOARD_SHORTCUT_HELPER,
-           IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_OEM_2, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN}}},
+      {// |categories|
+       {ShortcutCategory::kPopular},
+       IDS_KSV_DESCRIPTION_KEYBOARD_SHORTCUT_HELPER,
+       IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_OEM_2, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN}}},
 
-          {// |categories|
-           {ShortcutCategory::kTabAndWindow},
-           IDS_KSV_DESCRIPTION_OPEN_LINK_IN_TAB_BACKGROUND,
-           IDS_KSV_SHORTCUT_OPEN_LINK_IN_TAB_BACKGROUND,
-           // |accelerator_ids|
-           {},
-           // |shortcut_key_codes|
-           {ui::VKEY_CONTROL}},
+      {// |categories|
+       {ShortcutCategory::kTabAndWindow},
+       IDS_KSV_DESCRIPTION_OPEN_LINK_IN_TAB_BACKGROUND,
+       IDS_KSV_SHORTCUT_OPEN_LINK_IN_TAB_BACKGROUND,
+       // |accelerator_ids|
+       {},
+       // |shortcut_key_codes|
+       {ui::VKEY_CONTROL}},
 
-          {// |categories|
-           {ShortcutCategory::kTabAndWindow},
-           IDS_KSV_DESCRIPTION_OPEN_LINK_IN_TAB,
-           IDS_KSV_SHORTCUT_OPEN_LINK_IN_TAB,
-           // |accelerator_ids|
-           {},
-           // |shortcut_key_codes|
-           {ui::VKEY_CONTROL, ui::VKEY_UNKNOWN, ui::VKEY_SHIFT}},
+      {// |categories|
+       {ShortcutCategory::kTabAndWindow},
+       IDS_KSV_DESCRIPTION_OPEN_LINK_IN_TAB,
+       IDS_KSV_SHORTCUT_OPEN_LINK_IN_TAB,
+       // |accelerator_ids|
+       {},
+       // |shortcut_key_codes|
+       {ui::VKEY_CONTROL, ui::VKEY_UNKNOWN, ui::VKEY_SHIFT}},
 
-          {// |categories|
-           {ShortcutCategory::kTabAndWindow},
-           IDS_KSV_DESCRIPTION_OPEN_LINK_IN_WINDOW,
-           IDS_KSV_SHORTCUT_OPEN_LINK_IN_WINDOW,
-           // |accelerator_ids|
-           {},
-           // |shortcut_key_codes|
-           {ui::VKEY_SHIFT}},
+      {// |categories|
+       {ShortcutCategory::kTabAndWindow},
+       IDS_KSV_DESCRIPTION_OPEN_LINK_IN_WINDOW,
+       IDS_KSV_SHORTCUT_OPEN_LINK_IN_WINDOW,
+       // |accelerator_ids|
+       {},
+       // |shortcut_key_codes|
+       {ui::VKEY_SHIFT}},
 
-          {// |categories|
-           {ShortcutCategory::kTabAndWindow},
-           IDS_KSV_DESCRIPTION_OPEN_PAGE_IN_NEW_TAB,
-           IDS_KSV_SHORTCUT_OPEN_PAGE_IN_NEW_TAB,
-           // |accelerator_ids|
-           {},
-           // |shortcut_key_codes|
-           {ui::VKEY_LMENU, ui::VKEY_UNKNOWN, ui::VKEY_RETURN}},
+      {// |categories|
+       {ShortcutCategory::kTabAndWindow},
+       IDS_KSV_DESCRIPTION_OPEN_PAGE_IN_NEW_TAB,
+       IDS_KSV_SHORTCUT_OPEN_PAGE_IN_NEW_TAB,
+       // |accelerator_ids|
+       {},
+       // |shortcut_key_codes|
+       {ui::VKEY_LMENU, ui::VKEY_UNKNOWN, ui::VKEY_RETURN}},
 
-          {// |categories|
-           {ShortcutCategory::kTabAndWindow},
-           IDS_KSV_DESCRIPTION_STOP_DRAG_TAB,
-           IDS_KSV_SHORTCUT_STOP_DRAG_TAB,
-           // |accelerator_ids|
-           {{ui::VKEY_ESCAPE, ui::EF_NONE}}},
+      {// |categories|
+       {ShortcutCategory::kTabAndWindow},
+       IDS_KSV_DESCRIPTION_STOP_DRAG_TAB,
+       IDS_KSV_SHORTCUT_STOP_DRAG_TAB,
+       // |accelerator_ids|
+       {{ui::VKEY_ESCAPE, ui::EF_NONE}}},
 
-          {// |categories|
-           {ShortcutCategory::kPageAndBrowser},
-           IDS_KSV_DESCRIPTION_PAGE_UP,
-           IDS_KSV_SHORTCUT_PAGE_UP,
-           // |accelerator_ids|
-           {},
-           // |shortcut_key_codes|
-           {ui::VKEY_LMENU, ui::VKEY_COMMAND, ui::VKEY_UNKNOWN, ui::VKEY_UP}},
+      {// |categories|
+       {ShortcutCategory::kPageAndBrowser},
+       IDS_KSV_DESCRIPTION_PAGE_UP,
+       IDS_KSV_SHORTCUT_PAGE_UP,
+       // |accelerator_ids|
+       {},
+       // |shortcut_key_codes|
+       {ui::VKEY_LMENU, ui::VKEY_COMMAND, ui::VKEY_UNKNOWN, ui::VKEY_UP}},
 
-          {// |categories|
-           {ShortcutCategory::kPageAndBrowser},
-           IDS_KSV_DESCRIPTION_PAGE_DOWN,
-           IDS_KSV_SHORTCUT_PAGE_DOWN,
-           // |accelerator_ids|
-           {},
-           // |shortcut_key_codes|
-           {ui::VKEY_LWIN, ui::VKEY_COMMAND, ui::VKEY_UNKNOWN, ui::VKEY_DOWN}},
+      {// |categories|
+       {ShortcutCategory::kPageAndBrowser},
+       IDS_KSV_DESCRIPTION_PAGE_DOWN,
+       IDS_KSV_SHORTCUT_PAGE_DOWN,
+       // |accelerator_ids|
+       {},
+       // |shortcut_key_codes|
+       {ui::VKEY_LWIN, ui::VKEY_COMMAND, ui::VKEY_UNKNOWN, ui::VKEY_DOWN}},
 
-          {// |categories|
-           {ShortcutCategory::kPageAndBrowser},
-           IDS_KSV_DESCRIPTION_SCROLL_DOWN_PAGE,
-           IDS_KSV_SHORTCUT_ONE_KEY,
-           // |accelerator_ids|
-           {},
-           // |shortcut_key_codes|
-           {ui::VKEY_SPACE}},
+      {// |categories|
+       {ShortcutCategory::kPageAndBrowser},
+       IDS_KSV_DESCRIPTION_SCROLL_DOWN_PAGE,
+       IDS_KSV_SHORTCUT_ONE_KEY,
+       // |accelerator_ids|
+       {},
+       // |shortcut_key_codes|
+       {ui::VKEY_SPACE}},
 
-          {// |categories|
-           {ShortcutCategory::kPageAndBrowser},
-           IDS_KSV_DESCRIPTION_GO_TO_TOP,
-           IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
-           // |accelerator_ids|
-           {},
-           // |shortcut_key_codes|
-           {ui::VKEY_CONTROL, ui::VKEY_UNKNOWN, ui::VKEY_LMENU,
-            ui::VKEY_UNKNOWN, ui::VKEY_UP}},
+      {// |categories|
+       {ShortcutCategory::kPageAndBrowser},
+       IDS_KSV_DESCRIPTION_GO_TO_TOP,
+       IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
+       // |accelerator_ids|
+       {},
+       // |shortcut_key_codes|
+       {ui::VKEY_CONTROL, ui::VKEY_UNKNOWN, ui::VKEY_LMENU, ui::VKEY_UNKNOWN,
+        ui::VKEY_UP}},
 
-          {// |categories|
-           {ShortcutCategory::kPageAndBrowser},
-           IDS_KSV_DESCRIPTION_GO_TO_BOTTOM,
-           IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
-           // |accelerator_ids|
-           {},
-           // |shortcut_key_codes|
-           {ui::VKEY_CONTROL, ui::VKEY_UNKNOWN, ui::VKEY_LMENU,
-            ui::VKEY_UNKNOWN, ui::VKEY_DOWN}},
+      {// |categories|
+       {ShortcutCategory::kPageAndBrowser},
+       IDS_KSV_DESCRIPTION_GO_TO_BOTTOM,
+       IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
+       // |accelerator_ids|
+       {},
+       // |shortcut_key_codes|
+       {ui::VKEY_CONTROL, ui::VKEY_UNKNOWN, ui::VKEY_LMENU, ui::VKEY_UNKNOWN,
+        ui::VKEY_DOWN}},
 
-          {// |categories|
-           {ShortcutCategory::kPageAndBrowser},
-           IDS_KSV_DESCRIPTION_RIGHT_CLICK,
-           IDS_KSV_SHORTCUT_RIGHT_CLICK,
-           // |accelerator_ids|
-           {},
-           // |shortcut_key_codes|
-           {ui::VKEY_LMENU}},
+      {// |categories|
+       {ShortcutCategory::kPageAndBrowser},
+       IDS_KSV_DESCRIPTION_RIGHT_CLICK,
+       IDS_KSV_SHORTCUT_RIGHT_CLICK,
+       // |accelerator_ids|
+       {},
+       // |shortcut_key_codes|
+       {ui::VKEY_LMENU}},
 
-          {// |categories|
-           {ShortcutCategory::kPageAndBrowser},
-           IDS_KSV_DESCRIPTION_SAVE_LINK_AS_BOOKMARK,
-           IDS_KSV_SHORTCUT_SAVE_LINK_AS_BOOKMARK,
-           // |accelerator_ids|
-           {}},
+      {// |categories|
+       {ShortcutCategory::kPageAndBrowser},
+       IDS_KSV_DESCRIPTION_SAVE_LINK_AS_BOOKMARK,
+       IDS_KSV_SHORTCUT_SAVE_LINK_AS_BOOKMARK,
+       // |accelerator_ids|
+       {}},
 
-          {// |categories|
-           {ShortcutCategory::kPageAndBrowser},
-           IDS_KSV_DESCRIPTION_AUTO_COMPLETE,
-           IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
-           // |accelerator_ids|
-           {},
-           // |shortcut_key_codes|
-           {ui::VKEY_CONTROL, ui::VKEY_UNKNOWN, ui::VKEY_RETURN}},
+      {// |categories|
+       {ShortcutCategory::kPageAndBrowser},
+       IDS_KSV_DESCRIPTION_AUTO_COMPLETE,
+       IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
+       // |accelerator_ids|
+       {},
+       // |shortcut_key_codes|
+       {ui::VKEY_CONTROL, ui::VKEY_UNKNOWN, ui::VKEY_RETURN}},
 
-          {// |categories|
-           {ShortcutCategory::kPageAndBrowser},
-           IDS_KSV_DESCRIPTION_OPEN_DOWNLOADS_PAGE,
-           IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_J, ui::EF_CONTROL_DOWN}}},
+      {// |categories|
+       {ShortcutCategory::kPageAndBrowser},
+       IDS_KSV_DESCRIPTION_OPEN_DOWNLOADS_PAGE,
+       IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_J, ui::EF_CONTROL_DOWN}}},
 
-          {// |categories|
-           {ShortcutCategory::kSystemAndDisplay},
-           IDS_KSV_DESCRIPTION_OPEN_FILE,
-           IDS_KSV_SHORTCUT_OPEN_FILE,
-           // |accelerator_ids|
-           {},
-           // |shortcut_key_codes|
-           {ui::VKEY_SPACE}},
+      {// |categories|
+       {ShortcutCategory::kSystemAndDisplay},
+       IDS_KSV_DESCRIPTION_OPEN_FILE,
+       IDS_KSV_SHORTCUT_OPEN_FILE,
+       // |accelerator_ids|
+       {},
+       // |shortcut_key_codes|
+       {ui::VKEY_SPACE}},
 
-          {// |categories|
-           {ShortcutCategory::kSystemAndDisplay},
-           IDS_KSV_DESCRIPTION_DISPLAY_HIDDEN_FILES,
-           IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
-           // |accelerator_ids|
-           {},
-           // |shortcut_key_codes|
-           {ui::VKEY_CONTROL, ui::VKEY_UNKNOWN, ui::VKEY_OEM_PERIOD}},
+      {// |categories|
+       {ShortcutCategory::kSystemAndDisplay},
+       IDS_KSV_DESCRIPTION_DISPLAY_HIDDEN_FILES,
+       IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
+       // |accelerator_ids|
+       {},
+       // |shortcut_key_codes|
+       {ui::VKEY_CONTROL, ui::VKEY_UNKNOWN, ui::VKEY_OEM_PERIOD}},
 
-          {// |categories|
-           {ShortcutCategory::kSystemAndDisplay},
-           IDS_KSV_DESCRIPTION_LAUNCH_NUMBERED_APP,
-           IDS_KSV_SHORTCUT_LAUNCH_NUMBERED_APP,
-           // |accelerator_ids|
-           {},
-           // |shortcut_key_codes|
-           {ui::VKEY_LMENU, ui::VKEY_UNKNOWN}},
+      {// |categories|
+       {ShortcutCategory::kSystemAndDisplay},
+       IDS_KSV_DESCRIPTION_LAUNCH_NUMBERED_APP,
+       IDS_KSV_SHORTCUT_LAUNCH_NUMBERED_APP,
+       // |accelerator_ids|
+       {},
+       // |shortcut_key_codes|
+       {ui::VKEY_LMENU, ui::VKEY_UNKNOWN}},
 
-          {// |categories|
-           {ShortcutCategory::kSystemAndDisplay},
-           IDS_KSV_DESCRIPTION_USE_F_KEYS,
-           IDS_KSV_SHORTCUT_USE_F_KEYS,
-           // |accelerator_ids|
-           {},
-           // |shortcut_key_codes|
-           {ui::VKEY_COMMAND, ui::VKEY_UNKNOWN}},
+      {// |categories|
+       {ShortcutCategory::kSystemAndDisplay},
+       IDS_KSV_DESCRIPTION_USE_F_KEYS,
+       IDS_KSV_SHORTCUT_USE_F_KEYS,
+       // |accelerator_ids|
+       {},
+       // |shortcut_key_codes|
+       {ui::VKEY_COMMAND, ui::VKEY_UNKNOWN}},
 
-          {// |categories|
-           {ShortcutCategory::kTextEditing},
-           IDS_KSV_DESCRIPTION_SELECT_ADDRESS_BAR,
-           IDS_KSV_SHORTCUT_SELECT_ADDRESS_BAR,
-           // |accelerator_ids|
-           {},
-           // |shortcut_key_codes|
-           {ui::VKEY_CONTROL, ui::VKEY_UNKNOWN, ui::VKEY_L, ui::VKEY_LMENU,
-            ui::VKEY_UNKNOWN, ui::VKEY_D}},
+      {// |categories|
+       {ShortcutCategory::kTextEditing},
+       IDS_KSV_DESCRIPTION_SELECT_ADDRESS_BAR,
+       IDS_KSV_SHORTCUT_SELECT_ADDRESS_BAR,
+       // |accelerator_ids|
+       {},
+       // |shortcut_key_codes|
+       {ui::VKEY_CONTROL, ui::VKEY_UNKNOWN, ui::VKEY_L, ui::VKEY_LMENU,
+        ui::VKEY_UNKNOWN, ui::VKEY_D}},
 
-          {// |categories|
-           {ShortcutCategory::kTextEditing},
-           IDS_KSV_DESCRIPTION_SELECT_NEXT_WORD,
-           IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
-           // |accelerator_ids|
-           {},
-           // |shortcut_key_codes|
-           {ui::VKEY_CONTROL, ui::VKEY_UNKNOWN, ui::VKEY_SHIFT,
-            ui::VKEY_UNKNOWN, ui::VKEY_RIGHT}},
+      {// |categories|
+       {ShortcutCategory::kTextEditing},
+       IDS_KSV_DESCRIPTION_SELECT_NEXT_WORD,
+       IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
+       // |accelerator_ids|
+       {},
+       // |shortcut_key_codes|
+       {ui::VKEY_CONTROL, ui::VKEY_UNKNOWN, ui::VKEY_SHIFT, ui::VKEY_UNKNOWN,
+        ui::VKEY_RIGHT}},
 
-          {// |categories|
-           {ShortcutCategory::kTextEditing},
-           IDS_KSV_DESCRIPTION_SELECT_TEXT_TO_END_OF_LINE,
-           IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
-           // |accelerator_ids|
-           {},
-           // |shortcut_key_codes|
-           {ui::VKEY_SHIFT, ui::VKEY_UNKNOWN, ui::VKEY_COMMAND,
-            ui::VKEY_UNKNOWN, ui::VKEY_RIGHT}},
+      {// |categories|
+       {ShortcutCategory::kTextEditing},
+       IDS_KSV_DESCRIPTION_SELECT_TEXT_TO_END_OF_LINE,
+       IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
+       // |accelerator_ids|
+       {},
+       // |shortcut_key_codes|
+       {ui::VKEY_SHIFT, ui::VKEY_UNKNOWN, ui::VKEY_COMMAND, ui::VKEY_UNKNOWN,
+        ui::VKEY_RIGHT}},
 
-          {// |categories|
-           {ShortcutCategory::kTextEditing},
-           IDS_KSV_DESCRIPTION_SELECT_TEXT_TO_BEGINNING,
-           IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
-           // |accelerator_ids|
-           {},
-           // |shortcut_key_codes|
-           {ui::VKEY_SHIFT, ui::VKEY_UNKNOWN, ui::VKEY_COMMAND,
-            ui::VKEY_UNKNOWN, ui::VKEY_LEFT}},
+      {// |categories|
+       {ShortcutCategory::kTextEditing},
+       IDS_KSV_DESCRIPTION_SELECT_TEXT_TO_BEGINNING,
+       IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
+       // |accelerator_ids|
+       {},
+       // |shortcut_key_codes|
+       {ui::VKEY_SHIFT, ui::VKEY_UNKNOWN, ui::VKEY_COMMAND, ui::VKEY_UNKNOWN,
+        ui::VKEY_LEFT}},
 
-          {// |categories|
-           {ShortcutCategory::kTextEditing},
-           IDS_KSV_DESCRIPTION_SELECT_PREVIOUS_WORD,
-           IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
-           // |accelerator_ids|
-           {},
-           // |shortcut_key_codes|
-           {ui::VKEY_CONTROL, ui::VKEY_UNKNOWN, ui::VKEY_SHIFT,
-            ui::VKEY_UNKNOWN, ui::VKEY_LEFT}},
+      {// |categories|
+       {ShortcutCategory::kTextEditing},
+       IDS_KSV_DESCRIPTION_SELECT_PREVIOUS_WORD,
+       IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
+       // |accelerator_ids|
+       {},
+       // |shortcut_key_codes|
+       {ui::VKEY_CONTROL, ui::VKEY_UNKNOWN, ui::VKEY_SHIFT, ui::VKEY_UNKNOWN,
+        ui::VKEY_LEFT}},
 
-          {// |categories|
-           {ShortcutCategory::kTextEditing},
-           IDS_KSV_DESCRIPTION_MOVE_TO_END_OF_WORD,
-           IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
-           // |accelerator_ids|
-           {},
-           // |shortcut_key_codes|
-           {ui::VKEY_CONTROL, ui::VKEY_UNKNOWN, ui::VKEY_RIGHT}},
+      {// |categories|
+       {ShortcutCategory::kTextEditing},
+       IDS_KSV_DESCRIPTION_MOVE_TO_END_OF_WORD,
+       IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
+       // |accelerator_ids|
+       {},
+       // |shortcut_key_codes|
+       {ui::VKEY_CONTROL, ui::VKEY_UNKNOWN, ui::VKEY_RIGHT}},
 
-          {// |categories|
-           {ShortcutCategory::kTextEditing},
-           IDS_KSV_DESCRIPTION_MOVE_TO_START_OF_PREVIOUS_WORD,
-           IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
-           // |accelerator_ids|
-           {},
-           // |shortcut_key_codes|
-           {ui::VKEY_CONTROL, ui::VKEY_UNKNOWN, ui::VKEY_LEFT}},
+      {// |categories|
+       {ShortcutCategory::kTextEditing},
+       IDS_KSV_DESCRIPTION_MOVE_TO_START_OF_PREVIOUS_WORD,
+       IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
+       // |accelerator_ids|
+       {},
+       // |shortcut_key_codes|
+       {ui::VKEY_CONTROL, ui::VKEY_UNKNOWN, ui::VKEY_LEFT}},
 
-          {// |categories|
-           {ShortcutCategory::kTextEditing},
-           IDS_KSV_DESCRIPTION_GO_TO_END_OF_DOCUMENT,
-           IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
-           // |accelerator_ids|
-           {},
-           // |shortcut_key_codes|
-           {ui::VKEY_CONTROL, ui::VKEY_UNKNOWN, ui::VKEY_COMMAND,
-            ui::VKEY_UNKNOWN, ui::VKEY_RIGHT}},
+      {// |categories|
+       {ShortcutCategory::kTextEditing},
+       IDS_KSV_DESCRIPTION_GO_TO_END_OF_DOCUMENT,
+       IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
+       // |accelerator_ids|
+       {},
+       // |shortcut_key_codes|
+       {ui::VKEY_CONTROL, ui::VKEY_UNKNOWN, ui::VKEY_COMMAND, ui::VKEY_UNKNOWN,
+        ui::VKEY_RIGHT}},
 
-          {// |categories|
-           {ShortcutCategory::kTextEditing},
-           IDS_KSV_DESCRIPTION_GO_TO_BEGINNING_OF_DOCUMENT,
-           IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
-           // |accelerator_ids|
-           {},
-           // |shortcut_key_codes|
-           {ui::VKEY_CONTROL, ui::VKEY_UNKNOWN, ui::VKEY_COMMAND,
-            ui::VKEY_UNKNOWN, ui::VKEY_LEFT}},
+      {// |categories|
+       {ShortcutCategory::kTextEditing},
+       IDS_KSV_DESCRIPTION_GO_TO_BEGINNING_OF_DOCUMENT,
+       IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
+       // |accelerator_ids|
+       {},
+       // |shortcut_key_codes|
+       {ui::VKEY_CONTROL, ui::VKEY_UNKNOWN, ui::VKEY_COMMAND, ui::VKEY_UNKNOWN,
+        ui::VKEY_LEFT}},
 
-          {// |categories|
-           {ShortcutCategory::kTextEditing},
-           IDS_KSV_DESCRIPTION_PASTE_CONTENT_AS_TEXT,
-           IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
-           // |accelerator_ids|
-           {},
-           // |shortcut_key_codes|
-           {ui::VKEY_CONTROL, ui::VKEY_UNKNOWN, ui::VKEY_SHIFT,
-            ui::VKEY_UNKNOWN, ui::VKEY_V}},
+      {// |categories|
+       {ShortcutCategory::kTextEditing},
+       IDS_KSV_DESCRIPTION_PASTE_CONTENT_AS_TEXT,
+       IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
+       // |accelerator_ids|
+       {},
+       // |shortcut_key_codes|
+       {ui::VKEY_CONTROL, ui::VKEY_UNKNOWN, ui::VKEY_SHIFT, ui::VKEY_UNKNOWN,
+        ui::VKEY_V}},
 
-          {// |categories|
-           {ShortcutCategory::kTextEditing},
-           IDS_KSV_DESCRIPTION_CUT,
-           IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
-           // |accelerator_ids|
-           {},
-           // |shortcut_key_codes|
-           {ui::VKEY_CONTROL, ui::VKEY_UNKNOWN, ui::VKEY_X}},
+      {// |categories|
+       {ShortcutCategory::kTextEditing},
+       IDS_KSV_DESCRIPTION_CUT,
+       IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
+       // |accelerator_ids|
+       {},
+       // |shortcut_key_codes|
+       {ui::VKEY_CONTROL, ui::VKEY_UNKNOWN, ui::VKEY_X}},
 
-          {// |categories|
-           {ShortcutCategory::kTextEditing},
-           IDS_KSV_DESCRIPTION_DELETE_PREVIOUS_WORD,
-           IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
-           // |accelerator_ids|
-           {},
-           // |shortcut_key_codes|
-           {ui::VKEY_CONTROL, ui::VKEY_UNKNOWN, ui::VKEY_BACK}},
+      {// |categories|
+       {ShortcutCategory::kTextEditing},
+       IDS_KSV_DESCRIPTION_DELETE_PREVIOUS_WORD,
+       IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
+       // |accelerator_ids|
+       {},
+       // |shortcut_key_codes|
+       {ui::VKEY_CONTROL, ui::VKEY_UNKNOWN, ui::VKEY_BACK}},
 
-          {// |categories|
-           {ShortcutCategory::kTextEditing},
-           IDS_KSV_DESCRIPTION_DELETE_NEXT_WORD,
-           IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
-           // |accelerator_ids|
-           {},
-           // |shortcut_key_codes|
-           {ui::VKEY_LMENU, ui::VKEY_UNKNOWN, ui::VKEY_BACK}},
+      {// |categories|
+       {ShortcutCategory::kTextEditing},
+       IDS_KSV_DESCRIPTION_DELETE_NEXT_WORD,
+       IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
+       // |accelerator_ids|
+       {},
+       // |shortcut_key_codes|
+       {ui::VKEY_LMENU, ui::VKEY_UNKNOWN, ui::VKEY_BACK}},
 
-          {// |categories|
-           {ShortcutCategory::kTextEditing},
-           IDS_KSV_DESCRIPTION_UNDO,
-           IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
-           // |accelerator_ids|
-           {},
-           // |shortcut_key_codes|
-           {ui::VKEY_CONTROL, ui::VKEY_UNKNOWN, ui::VKEY_Z}},
+      {// |categories|
+       {ShortcutCategory::kTextEditing},
+       IDS_KSV_DESCRIPTION_UNDO,
+       IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
+       // |accelerator_ids|
+       {},
+       // |shortcut_key_codes|
+       {ui::VKEY_CONTROL, ui::VKEY_UNKNOWN, ui::VKEY_Z}},
 
-          {// |categories|
-           {ShortcutCategory::kTextEditing},
-           IDS_KSV_DESCRIPTION_REDO,
-           IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
-           // |accelerator_ids|
-           {},
-           // |shortcut_key_codes|
-           {ui::VKEY_CONTROL, ui::VKEY_UNKNOWN, ui::VKEY_SHIFT,
-            ui::VKEY_UNKNOWN, ui::VKEY_Z}},
+      {// |categories|
+       {ShortcutCategory::kTextEditing},
+       IDS_KSV_DESCRIPTION_REDO,
+       IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
+       // |accelerator_ids|
+       {},
+       // |shortcut_key_codes|
+       {ui::VKEY_CONTROL, ui::VKEY_UNKNOWN, ui::VKEY_SHIFT, ui::VKEY_UNKNOWN,
+        ui::VKEY_Z}},
 
-          {// |categories|
-           {ShortcutCategory::kAccessibility},
-           IDS_KSV_DESCRIPTION_HIGHLIGHT_PREVIOUS_ITEM_ON_SHELF,
-           IDS_KSV_SHORTCUT_HIGHLIGHT_PREVIOUS_ITEM_ON_SHELF,
-           // |accelerator_ids|
-           {},
-           // |shortcut_key_codes|
-           {ui::VKEY_SHIFT, ui::VKEY_UNKNOWN, ui::VKEY_LMENU, ui::VKEY_UNKNOWN,
-            ui::VKEY_L, ui::VKEY_SHIFT, ui::VKEY_UNKNOWN, ui::VKEY_TAB,
-            ui::VKEY_LEFT}},
+      {// |categories|
+       {ShortcutCategory::kAccessibility},
+       IDS_KSV_DESCRIPTION_HIGHLIGHT_PREVIOUS_ITEM_ON_SHELF,
+       IDS_KSV_SHORTCUT_HIGHLIGHT_PREVIOUS_ITEM_ON_SHELF,
+       // |accelerator_ids|
+       {},
+       // |shortcut_key_codes|
+       {ui::VKEY_SHIFT, ui::VKEY_UNKNOWN, ui::VKEY_LMENU, ui::VKEY_UNKNOWN,
+        ui::VKEY_L, ui::VKEY_SHIFT, ui::VKEY_UNKNOWN, ui::VKEY_TAB,
+        ui::VKEY_LEFT}},
 
-          {// |categories|
-           {ShortcutCategory::kAccessibility},
-           IDS_KSV_DESCRIPTION_OPEN_HIGHLIGHTED_ITEM_ON_SHELF,
-           IDS_KSV_SHORTCUT_OPEN_HIGHLIGHTED_ITEM_ON_SHELF,
-           // |accelerator_ids|
-           {},
-           // |shortcut_key_codes|
-           {ui::VKEY_SHIFT, ui::VKEY_UNKNOWN, ui::VKEY_LMENU, ui::VKEY_UNKNOWN,
-            ui::VKEY_L, ui::VKEY_SPACE, ui::VKEY_RETURN}},
+      {// |categories|
+       {ShortcutCategory::kAccessibility},
+       IDS_KSV_DESCRIPTION_OPEN_HIGHLIGHTED_ITEM_ON_SHELF,
+       IDS_KSV_SHORTCUT_OPEN_HIGHLIGHTED_ITEM_ON_SHELF,
+       // |accelerator_ids|
+       {},
+       // |shortcut_key_codes|
+       {ui::VKEY_SHIFT, ui::VKEY_UNKNOWN, ui::VKEY_LMENU, ui::VKEY_UNKNOWN,
+        ui::VKEY_L, ui::VKEY_SPACE, ui::VKEY_RETURN}},
 
-          {// |categories|
-           {ShortcutCategory::kAccessibility},
-           IDS_KSV_DESCRIPTION_REMOVE_HIGHLIGHT_ON_SHELF,
-           IDS_KSV_SHORTCUT_REMOVE_HIGHLIGHT_ON_SHELF,
-           // |accelerator_ids|
-           {},
-           // |shortcut_key_codes|
-           {ui::VKEY_SHIFT, ui::VKEY_UNKNOWN, ui::VKEY_LMENU, ui::VKEY_UNKNOWN,
-            ui::VKEY_L, ui::VKEY_ESCAPE}},
+      {// |categories|
+       {ShortcutCategory::kAccessibility},
+       IDS_KSV_DESCRIPTION_REMOVE_HIGHLIGHT_ON_SHELF,
+       IDS_KSV_SHORTCUT_REMOVE_HIGHLIGHT_ON_SHELF,
+       // |accelerator_ids|
+       {},
+       // |shortcut_key_codes|
+       {ui::VKEY_SHIFT, ui::VKEY_UNKNOWN, ui::VKEY_LMENU, ui::VKEY_UNKNOWN,
+        ui::VKEY_L, ui::VKEY_ESCAPE}},
 
-          {// |categories|
-           {ShortcutCategory::kAccessibility},
-           IDS_KSV_DESCRIPTION_SWITCH_FOCUS,
-           IDS_KSV_SHORTCUT_SWITCH_FOCUS,
-           // |accelerator_ids|
-           {},
-           // |shortcut_key_codes|
-           {ui::VKEY_CONTROL, ui::VKEY_UNKNOWN, ui::VKEY_LEFT, ui::VKEY_CONTROL,
-            ui::VKEY_UNKNOWN, ui::VKEY_RIGHT}},
+      {// |categories|
+       {ShortcutCategory::kAccessibility},
+       IDS_KSV_DESCRIPTION_SWITCH_FOCUS,
+       IDS_KSV_SHORTCUT_SWITCH_FOCUS,
+       // |accelerator_ids|
+       {},
+       // |shortcut_key_codes|
+       {ui::VKEY_CONTROL, ui::VKEY_UNKNOWN, ui::VKEY_LEFT, ui::VKEY_CONTROL,
+        ui::VKEY_UNKNOWN, ui::VKEY_RIGHT}},
 
-          {// |categories|
-           {ShortcutCategory::kAccessibility},
-           IDS_KSV_DESCRIPTION_OPEN_RIGHT_CLICK_MENU_FOR_HIGHLIGHTED_ITEM,
-           IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
-           // |accelerator_ids|
-           {},
-           // |shortcut_key_codes|
-           {ui::VKEY_SHIFT, ui::VKEY_UNKNOWN, ui::VKEY_COMMAND,
-            ui::VKEY_UNKNOWN, ui::VKEY_VOLUME_UP}},
+      {// |categories|
+       {ShortcutCategory::kAccessibility},
+       IDS_KSV_DESCRIPTION_OPEN_RIGHT_CLICK_MENU_FOR_HIGHLIGHTED_ITEM,
+       IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
+       // |accelerator_ids|
+       {},
+       // |shortcut_key_codes|
+       {ui::VKEY_SHIFT, ui::VKEY_UNKNOWN, ui::VKEY_COMMAND, ui::VKEY_UNKNOWN,
+        ui::VKEY_VOLUME_UP}},
 
-          {// |categories|
-           {ShortcutCategory::kSystemAndDisplay},
-           IDS_KSV_DESCRIPTION_TOGGLE_MIRROR_MODE,
-           IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_MEDIA_LAUNCH_APP2, ui::EF_CONTROL_DOWN}}},
+      {// |categories|
+       {ShortcutCategory::kSystemAndDisplay},
+       IDS_KSV_DESCRIPTION_TOGGLE_MIRROR_MODE,
+       IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_MEDIA_LAUNCH_APP2, ui::EF_CONTROL_DOWN}}},
 
-          {// |categories|
-           {ShortcutCategory::kSystemAndDisplay},
-           IDS_KSV_DESCRIPTION_SWAP_PRIMARY_DISPLAY,
-           IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_MEDIA_LAUNCH_APP2, ui::EF_ALT_DOWN}}},
+      {// |categories|
+       {ShortcutCategory::kSystemAndDisplay},
+       IDS_KSV_DESCRIPTION_SWAP_PRIMARY_DISPLAY,
+       IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_MEDIA_LAUNCH_APP2, ui::EF_ALT_DOWN}}},
 
-          {// |categories|
-           {ShortcutCategory::kSystemAndDisplay},
-           IDS_KSV_DESCRIPTION_BRIGHTNESS_DOWN,
-           IDS_KSV_SHORTCUT_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_BRIGHTNESS_DOWN, ui::EF_NONE}}},
+      {// |categories|
+       {ShortcutCategory::kSystemAndDisplay},
+       IDS_KSV_DESCRIPTION_BRIGHTNESS_DOWN,
+       IDS_KSV_SHORTCUT_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_BRIGHTNESS_DOWN, ui::EF_NONE}}},
 
-          {// |categories|
-           {ShortcutCategory::kSystemAndDisplay},
-           IDS_KSV_DESCRIPTION_BRIGHTNESS_UP,
-           IDS_KSV_SHORTCUT_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_BRIGHTNESS_UP, ui::EF_NONE}}},
+      {// |categories|
+       {ShortcutCategory::kSystemAndDisplay},
+       IDS_KSV_DESCRIPTION_BRIGHTNESS_UP,
+       IDS_KSV_SHORTCUT_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_BRIGHTNESS_UP, ui::EF_NONE}}},
 
-          {// |categories|
-           {ShortcutCategory::kSystemAndDisplay},
-           IDS_KSV_DESCRIPTION_MAGNIFY_SCREEN_ZOOM_OUT,
-           IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_BRIGHTNESS_DOWN, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN}}},
+      {// |categories|
+       {ShortcutCategory::kSystemAndDisplay},
+       IDS_KSV_DESCRIPTION_MAGNIFY_SCREEN_ZOOM_OUT,
+       IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_BRIGHTNESS_DOWN, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN}}},
 
-          {// |categories|
-           {ShortcutCategory::kSystemAndDisplay},
-           IDS_KSV_DESCRIPTION_MAGNIFY_SCREEN_ZOOM_IN,
-           IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_BRIGHTNESS_UP, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN}}},
+      {// |categories|
+       {ShortcutCategory::kSystemAndDisplay},
+       IDS_KSV_DESCRIPTION_MAGNIFY_SCREEN_ZOOM_IN,
+       IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_BRIGHTNESS_UP, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN}}},
 
-          {// |categories|
-           {ShortcutCategory::kSystemAndDisplay},
-           IDS_KSV_DESCRIPTION_VOLUME_MUTE,
-           IDS_KSV_SHORTCUT_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_VOLUME_MUTE, ui::EF_NONE}}},
+      {// |categories|
+       {ShortcutCategory::kSystemAndDisplay},
+       IDS_KSV_DESCRIPTION_VOLUME_MUTE,
+       IDS_KSV_SHORTCUT_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_VOLUME_MUTE, ui::EF_NONE}}},
 
-          {// |categories|
-           {ShortcutCategory::kSystemAndDisplay},
-           IDS_KSV_DESCRIPTION_VOLUME_DOWN,
-           IDS_KSV_SHORTCUT_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_VOLUME_DOWN, ui::EF_NONE}}},
+      {// |categories|
+       {ShortcutCategory::kSystemAndDisplay},
+       IDS_KSV_DESCRIPTION_VOLUME_DOWN,
+       IDS_KSV_SHORTCUT_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_VOLUME_DOWN, ui::EF_NONE}}},
 
-          {// |categories|
-           {ShortcutCategory::kSystemAndDisplay},
-           IDS_KSV_DESCRIPTION_VOLUME_UP,
-           IDS_KSV_SHORTCUT_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_VOLUME_UP, ui::EF_NONE}}},
+      {// |categories|
+       {ShortcutCategory::kSystemAndDisplay},
+       IDS_KSV_DESCRIPTION_VOLUME_UP,
+       IDS_KSV_SHORTCUT_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_VOLUME_UP, ui::EF_NONE}}},
 
-          {// |categories|
-           {ShortcutCategory::kSystemAndDisplay},
-           IDS_KSV_DESCRIPTION_SHOW_TASK_MANAGER,
-           IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_ESCAPE, ui::EF_COMMAND_DOWN}}},
+      {// |categories|
+       {ShortcutCategory::kSystemAndDisplay},
+       IDS_KSV_DESCRIPTION_SHOW_TASK_MANAGER,
+       IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_ESCAPE, ui::EF_COMMAND_DOWN}}},
 
-          {// |categories|
-           {ShortcutCategory::kTabAndWindow},
-           IDS_KSV_DESCRIPTION_TOGGLE_FULLSCREEN,
-           IDS_KSV_SHORTCUT_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_MEDIA_LAUNCH_APP2, ui::EF_NONE}}},
+      {// |categories|
+       {ShortcutCategory::kTabAndWindow},
+       IDS_KSV_DESCRIPTION_TOGGLE_FULLSCREEN,
+       IDS_KSV_SHORTCUT_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_MEDIA_LAUNCH_APP2, ui::EF_NONE}}},
 
-          {// |categories|
-           {ShortcutCategory::kTabAndWindow},
-           IDS_KSV_DESCRIPTION_WINDOW_MINIMIZE,
-           IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_OEM_MINUS, ui::EF_ALT_DOWN}}},
+      {// |categories|
+       {ShortcutCategory::kTabAndWindow},
+       IDS_KSV_DESCRIPTION_WINDOW_MINIMIZE,
+       IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_OEM_MINUS, ui::EF_ALT_DOWN}}},
 
-          {// |categories|
-           {ShortcutCategory::kPageAndBrowser},
-           IDS_KSV_DESCRIPTION_FOCUS_NEXT_PANE,
-           IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_BROWSER_FORWARD, ui::EF_CONTROL_DOWN}}},
+      {// |categories|
+       {ShortcutCategory::kPageAndBrowser},
+       IDS_KSV_DESCRIPTION_FOCUS_NEXT_PANE,
+       IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_BROWSER_FORWARD, ui::EF_CONTROL_DOWN}}},
 
-          {// |categories|
-           {ShortcutCategory::kPageAndBrowser},
-           IDS_KSV_DESCRIPTION_FOCUS_PREVIOUS_PANE,
-           IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_BROWSER_BACK, ui::EF_CONTROL_DOWN}}},
+      {// |categories|
+       {ShortcutCategory::kPageAndBrowser},
+       IDS_KSV_DESCRIPTION_FOCUS_PREVIOUS_PANE,
+       IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_BROWSER_BACK, ui::EF_CONTROL_DOWN}}},
 
-          {// |categories|
-           {ShortcutCategory::kTabAndWindow},
-           IDS_KSV_DESCRIPTION_MOVE_WINDOW_TO_ABOVE_DISPLAY,
-           IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_UP, ui::EF_COMMAND_DOWN | ui::EF_ALT_DOWN}}},
+      {// |categories|
+       {ShortcutCategory::kTabAndWindow},
+       IDS_KSV_DESCRIPTION_MOVE_WINDOW_TO_ABOVE_DISPLAY,
+       IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_UP, ui::EF_COMMAND_DOWN | ui::EF_ALT_DOWN}}},
 
-          {// |categories|
-           {ShortcutCategory::kTabAndWindow},
-           IDS_KSV_DESCRIPTION_MOVE_WINDOW_TO_BELOW_DISPLAY,
-           IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_DOWN, ui::EF_COMMAND_DOWN | ui::EF_ALT_DOWN}}},
+      {// |categories|
+       {ShortcutCategory::kTabAndWindow},
+       IDS_KSV_DESCRIPTION_MOVE_WINDOW_TO_BELOW_DISPLAY,
+       IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_DOWN, ui::EF_COMMAND_DOWN | ui::EF_ALT_DOWN}}},
 
-          {// |categories|
-           {ShortcutCategory::kTabAndWindow},
-           IDS_KSV_DESCRIPTION_MOVE_WINDOW_TO_LEFT_DISPLAY,
-           IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_LEFT, ui::EF_COMMAND_DOWN | ui::EF_ALT_DOWN}}},
+      {// |categories|
+       {ShortcutCategory::kTabAndWindow},
+       IDS_KSV_DESCRIPTION_MOVE_WINDOW_TO_LEFT_DISPLAY,
+       IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_LEFT, ui::EF_COMMAND_DOWN | ui::EF_ALT_DOWN}}},
 
-          {// |categories|
-           {ShortcutCategory::kTabAndWindow},
-           IDS_KSV_DESCRIPTION_MOVE_WINDOW_TO_RIGHT_DISPLAY,
-           IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
-           // |accelerator_ids|
-           {{ui::VKEY_RIGHT, ui::EF_COMMAND_DOWN | ui::EF_ALT_DOWN}}},
-      }));
+      {// |categories|
+       {ShortcutCategory::kTabAndWindow},
+       IDS_KSV_DESCRIPTION_MOVE_WINDOW_TO_RIGHT_DISPLAY,
+       IDS_KSV_SHORTCUT_TWO_MODIFIERS_ONE_KEY,
+       // |accelerator_ids|
+       {{ui::VKEY_RIGHT, ui::EF_COMMAND_DOWN | ui::EF_ALT_DOWN}}},
+  });
 
-  CR_DEFINE_STATIC_LOCAL(bool, is_initialized, (false));
+  static bool is_initialized = false;
   // If the item's |shortcut_key_codes| is empty, we need to dynamically
   // populate the keycodes with |accelerator_ids| to construct the shortcut
   // string.
   if (!is_initialized) {
     is_initialized = true;
-    for (auto& item : item_list) {
+    for (auto& item : *item_list) {
       if (item.shortcut_key_codes.empty() && !item.accelerator_ids.empty()) {
         // Only use the first |accelerator_id| because the modifiers are the
         // same even if it is a grouped accelerators.
@@ -1181,7 +1177,7 @@
     }
   }
 
-  return item_list;
+  return *item_list;
 }
 
 }  // namespace keyboard_shortcut_viewer
diff --git a/ash/login/ui/hover_notifier.h b/ash/login/ui/hover_notifier.h
index e92999d..8a9619e 100644
--- a/ash/login/ui/hover_notifier.h
+++ b/ash/login/ui/hover_notifier.h
@@ -17,6 +17,7 @@
 namespace ash {
 
 // Runs a callback whenever a view has gained or lost mouse hover.
+// TODO(jdufault): see if we can replace this class with views::MouseWatcher.
 class HoverNotifier : public ui::EventHandler {
  public:
   using OnHover = base::RepeatingCallback<void(bool has_hover)>;
diff --git a/ash/login/ui/login_base_bubble_view.cc b/ash/login/ui/login_base_bubble_view.cc
index 63bb9a3..92f8f46 100644
--- a/ash/login/ui/login_base_bubble_view.cc
+++ b/ash/login/ui/login_base_bubble_view.cc
@@ -9,9 +9,6 @@
 namespace ash {
 namespace {
 
-// Spacing between the child view inside the bubble view.
-constexpr int kBubbleBetweenChildSpacing = 6;
-
 // Total width of the bubble view.
 constexpr int kBubbleTotalWidthDp = 178;
 
@@ -28,9 +25,6 @@
 
 LoginBaseBubbleView::LoginBaseBubbleView(views::View* anchor_view)
     : BubbleDialogDelegateView(anchor_view, views::BubbleBorder::NONE) {
-  SetLayoutManager(std::make_unique<views::BoxLayout>(
-      views::BoxLayout::kVertical, gfx::Insets(), kBubbleBetweenChildSpacing));
-
   set_margins(gfx::Insets(kBubbleTopMarginDp, kBubbleHorizontalMarginDp,
                           kBubbleBottomMarginDp, kBubbleHorizontalMarginDp));
   set_color(SK_ColorBLACK);
@@ -49,7 +43,7 @@
 }
 
 gfx::Size LoginBaseBubbleView::CalculatePreferredSize() const {
-  gfx::Size size = views::View::CalculatePreferredSize();
+  gfx::Size size = views::BubbleDialogDelegateView::CalculatePreferredSize();
   size.set_width(kBubbleTotalWidthDp);
   return size;
 }
diff --git a/ash/login/ui/login_base_bubble_view.h b/ash/login/ui/login_base_bubble_view.h
index 0194323b..bc6e71f0 100644
--- a/ash/login/ui/login_base_bubble_view.h
+++ b/ash/login/ui/login_base_bubble_view.h
@@ -20,10 +20,10 @@
   // views::BubbleDialogDelegateView:
   int GetDialogButtons() const override;
 
- private:
   // views::View:
   gfx::Size CalculatePreferredSize() const override;
 
+ private:
   DISALLOW_COPY_AND_ASSIGN(LoginBaseBubbleView);
 };
 
diff --git a/ash/login/ui/login_bubble.cc b/ash/login/ui/login_bubble.cc
index d933634..e0f1674f 100644
--- a/ash/login/ui/login_bubble.cc
+++ b/ash/login/ui/login_bubble.cc
@@ -4,35 +4,67 @@
 
 #include "ash/login/ui/login_bubble.h"
 
+#include "ash/ash_constants.h"
+#include "ash/focus_cycler.h"
+#include "ash/login/ui/layout_util.h"
+#include "ash/login/ui/lock_screen.h"
+#include "ash/login/ui/lock_window.h"
 #include "ash/login/ui/login_button.h"
+#include "ash/login/ui/non_accessible_view.h"
 #include "ash/resources/vector_icons/vector_icons.h"
 #include "ash/shell.h"
+#include "ash/strings/grit/ash_strings.h"
+#include "base/strings/utf_string_conversions.h"
 #include "ui/accessibility/ax_node_data.h"
+#include "ui/base/l10n/l10n_util.h"
 #include "ui/compositor/layer_animator.h"
 #include "ui/compositor/scoped_layer_animation_settings.h"
 #include "ui/gfx/font.h"
 #include "ui/gfx/paint_vector_icon.h"
+#include "ui/views/controls/button/md_text_button.h"
 #include "ui/views/controls/image_view.h"
 #include "ui/views/controls/label.h"
+#include "ui/views/controls/separator.h"
 #include "ui/views/controls/styled_label.h"
 #include "ui/views/focus/focus_manager.h"
 #include "ui/views/layout/box_layout.h"
+#include "ui/views/layout/fill_layout.h"
 #include "ui/wm/core/coordinate_conversion.h"
 
 namespace ash {
 namespace {
 
+constexpr char kLegacySupervisedUserManagementDisplayURL[] =
+    "www.chrome.com/manage";
+
+// Spacing between the child view inside the bubble view.
+constexpr int kBubbleBetweenChildSpacingDp = 6;
+
 // The size of the alert icon in the error bubble.
 constexpr int kAlertIconSizeDp = 20;
 
-// Vertical spacing between the anchor view and error bubble.
-constexpr int kAnchorViewErrorBubbleVerticalSpacingDp = 48;
-
 // An alpha value for the sub message in the user menu.
 constexpr SkAlpha kSubMessageColorAlpha = 0x89;
 
+// Color of the "Remove user" text.
+constexpr SkColor kRemoveUserInitialColor = SkColorSetRGB(0x7B, 0xAA, 0xF7);
+constexpr SkColor kRemoveUserConfirmColor = SkColorSetRGB(0xE6, 0x7C, 0x73);
+
+// Margin/inset of the entries for the user menu.
+constexpr int kUserMenuMarginWidth = 14;
+constexpr int kUserMenuMarginHeight = 18;
+// Distance above/below the separator.
+constexpr int kUserMenuMarginAroundSeparatorDp = 18;
+// Distance between labels.
+constexpr int kUserMenuVerticalDistanceBetweenLabelsDp = 18;
+// Margin around remove user button.
+constexpr int kUserMenuMarginAroundRemoveUserButtonDp = 4;
+
+// Vertical spacing between the anchor view and error bubble.
+constexpr int kAnchorViewErrorBubbleVerticalSpacingDp = 48;
+
 // Horizontal spacing with the anchor view.
-constexpr int kAnchorViewHorizontalSpacingDp = 105;
+constexpr int kAnchorViewUserMenuHorizontalSpacingDp = 98;
 
 // Vertical spacing between the anchor view and user menu.
 constexpr int kAnchorViewUserMenuVerticalSpacingDp = 4;
@@ -56,12 +88,15 @@
  public:
   LoginErrorBubbleView(views::StyledLabel* label, views::View* anchor_view)
       : LoginBaseBubbleView(anchor_view) {
+    SetLayoutManager(std::make_unique<views::BoxLayout>(
+        views::BoxLayout::kVertical, gfx::Insets(),
+        kBubbleBetweenChildSpacingDp));
     set_anchor_view_insets(
         gfx::Insets(kAnchorViewErrorBubbleVerticalSpacingDp, 0));
 
-    views::View* alert_view = new views::View();
-    alert_view->SetLayoutManager(std::make_unique<views::BoxLayout>(
-        views::BoxLayout::kHorizontal, gfx::Insets()));
+    auto* alert_view = new NonAccessibleView("AlertIconContainer");
+    alert_view->SetLayoutManager(
+        std::make_unique<views::BoxLayout>(views::BoxLayout::kHorizontal));
     views::ImageView* alert_icon = new views::ImageView();
     alert_icon->SetPreferredSize(gfx::Size(kAlertIconSizeDp, kAlertIconSizeDp));
     alert_icon->SetImage(
@@ -85,30 +120,207 @@
   DISALLOW_COPY_AND_ASSIGN(LoginErrorBubbleView);
 };
 
-class LoginUserMenuView : public LoginBaseBubbleView {
+// A button that holds a child view.
+class ButtonWithContent : public views::Button {
  public:
-  LoginUserMenuView(const base::string16& message,
-                    const base::string16& sub_message,
-                    views::View* anchor_view,
-                    bool show_remove_user)
-      : LoginBaseBubbleView(anchor_view) {
-    views::Label* label = CreateLabel(message, SK_ColorWHITE);
-    views::Label* sub_label = CreateLabel(
-        sub_message, SkColorSetA(SK_ColorWHITE, kSubMessageColorAlpha));
-    AddChildView(label);
-    AddChildView(sub_label);
-    set_anchor_view_insets(gfx::Insets(kAnchorViewUserMenuVerticalSpacingDp,
-                                       kAnchorViewHorizontalSpacingDp));
+  ButtonWithContent(views::ButtonListener* listener, views::View* content)
+      : views::Button(listener) {
+    SetLayoutManager(std::make_unique<views::FillLayout>());
+    AddChildView(content);
 
-    // TODO: Show remove user in the menu in login screen.
+    // Increase the size of the button so that the focus is not rendered next to
+    // the text.
+    SetBorder(views::CreateEmptyBorder(
+        gfx::Insets(kUserMenuMarginAroundRemoveUserButtonDp,
+                    kUserMenuMarginAroundRemoveUserButtonDp)));
+    SetFocusPainter(views::Painter::CreateSolidFocusPainter(
+        kFocusBorderColor, kFocusBorderThickness, gfx::InsetsF()));
+  }
+
+  ~ButtonWithContent() override = default;
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(ButtonWithContent);
+};
+
+class LoginUserMenuView : public LoginBaseBubbleView,
+                          public views::ButtonListener {
+ public:
+  LoginUserMenuView(LoginBubble* bubble,
+                    const base::string16& username,
+                    const base::string16& email,
+                    user_manager::UserType type,
+                    bool is_owner,
+                    views::View* anchor_view,
+                    bool show_remove_user,
+                    base::OnceClosure do_remove_user)
+      : LoginBaseBubbleView(anchor_view),
+        bubble_(bubble),
+        do_remove_user_(std::move(do_remove_user)) {
+    // This view has content the user can interact with if the remove user
+    // button is displayed.
+    set_can_activate(show_remove_user);
+
+    set_anchor_view_insets(gfx::Insets(kAnchorViewUserMenuVerticalSpacingDp,
+                                       kAnchorViewUserMenuHorizontalSpacingDp));
+
+    // LoginUserMenuView does not use the parent margins. Further, because the
+    // splitter spans the entire view set_margins cannot be used.
+    set_margins(gfx::Insets());
+    // The bottom margin is less the margin around the remove user button, which
+    // is always visible.
+    gfx::Insets margins(
+        kUserMenuMarginHeight, kUserMenuMarginWidth,
+        kUserMenuMarginHeight - kUserMenuMarginAroundRemoveUserButtonDp,
+        kUserMenuMarginWidth);
+    auto create_and_add_horizontal_margin_container = [&]() {
+      auto* container = new NonAccessibleView("MarginContainer");
+      container->SetLayoutManager(std::make_unique<views::BoxLayout>(
+          views::BoxLayout::kVertical,
+          gfx::Insets(0, margins.left(), 0, margins.right())));
+      AddChildView(container);
+      return container;
+    };
+
+    // Add vertical whitespace.
+    auto add_space = [](views::View* root, int amount) {
+      auto* spacer = new NonAccessibleView("Whitespace");
+      spacer->SetPreferredSize(gfx::Size(1, amount));
+      root->AddChildView(spacer);
+    };
+
+    SetLayoutManager(std::make_unique<views::BoxLayout>(
+        views::BoxLayout::kVertical,
+        gfx::Insets(margins.top(), 0, margins.bottom(), 0)));
+
+    // User information.
+    {
+      base::string16 display_username =
+          is_owner ? l10n_util::GetStringFUTF16(IDS_ASH_LOGIN_POD_OWNER_USER,
+                                                username)
+                   : username;
+
+      views::View* container = create_and_add_horizontal_margin_container();
+      container->AddChildView(CreateLabel(display_username, SK_ColorWHITE));
+      add_space(container, kBubbleBetweenChildSpacingDp);
+      container->AddChildView(CreateLabel(
+          email, SkColorSetA(SK_ColorWHITE, kSubMessageColorAlpha)));
+    }
+
+    // Remove user.
+    if (show_remove_user) {
+      DCHECK(!is_owner);
+
+      // Add separator.
+      add_space(this, kUserMenuMarginAroundSeparatorDp);
+      auto* separator = new views::Separator();
+      separator->SetColor(SkColorSetA(SK_ColorWHITE, 0x2B));
+      AddChildView(separator);
+      // The space below the separator is less the margin around remove user;
+      // this is readded if showing confirmation.
+      add_space(this, kUserMenuMarginAroundSeparatorDp -
+                          kUserMenuMarginAroundRemoveUserButtonDp);
+
+      auto make_label = [this](const base::string16& text) {
+        views::Label* label = CreateLabel(text, SK_ColorWHITE);
+        label->SetMultiLine(true);
+        // Make sure to set a maximum label width, otherwise text wrapping will
+        // significantly increase width and layout may not work correctly if
+        // the input string is very long.
+        label->SetMaximumWidth(GetPreferredSize().width());
+        return label;
+      };
+
+      remove_user_confirm_data_ = create_and_add_horizontal_margin_container();
+      remove_user_confirm_data_->SetVisible(false);
+      base::string16 part1 = l10n_util::GetStringUTF16(
+          IDS_ASH_LOGIN_POD_NON_OWNER_USER_REMOVE_WARNING_PART_1);
+      if (type == user_manager::UserType::USER_TYPE_SUPERVISED) {
+        part1 = l10n_util::GetStringFUTF16(
+            IDS_ASH_LOGIN_POD_LEGACY_SUPERVISED_USER_REMOVE_WARNING,
+            base::UTF8ToUTF16(ash::kLegacySupervisedUserManagementDisplayURL));
+      }
+
+      // Account for margin that was removed below the separator for the add
+      // user button.
+      add_space(remove_user_confirm_data_,
+                kUserMenuMarginAroundRemoveUserButtonDp);
+      remove_user_confirm_data_->AddChildView(make_label(part1));
+      add_space(remove_user_confirm_data_,
+                kUserMenuVerticalDistanceBetweenLabelsDp);
+      remove_user_confirm_data_->AddChildView(
+          make_label(l10n_util::GetStringFUTF16(
+              IDS_ASH_LOGIN_POD_NON_OWNER_USER_REMOVE_WARNING_PART_2, email)));
+      // Reduce margin since the remove user button comes next.
+      add_space(remove_user_confirm_data_,
+                kUserMenuVerticalDistanceBetweenLabelsDp -
+                    kUserMenuMarginAroundRemoveUserButtonDp);
+
+      auto* container = create_and_add_horizontal_margin_container();
+      remove_user_label_ =
+          CreateLabel(l10n_util::GetStringUTF16(
+                          IDS_ASH_LOGIN_POD_MENU_REMOVE_ITEM_ACCESSIBLE_NAME),
+                      kRemoveUserInitialColor);
+      remove_user_button_ = new ButtonWithContent(this, remove_user_label_);
+      remove_user_button_->SetFocusBehavior(views::View::FocusBehavior::ALWAYS);
+      remove_user_button_->set_id(
+          LoginBubble::kUserMenuRemoveUserButtonIdForTest);
+      container->AddChildView(remove_user_button_);
+    }
+
+    // The user menu is focusable so that the we can detect when to refocus the
+    // lock window from tab navigation, otherwise focus will be trapped inside
+    // of the bubble.
+    SetFocusBehavior(views::View::FocusBehavior::ALWAYS);
   }
 
   ~LoginUserMenuView() override = default;
 
   // views::View:
   const char* GetClassName() const override { return "LoginUserMenuView"; }
+  gfx::Size CalculatePreferredSize() const override {
+    gfx::Size size = LoginBaseBubbleView::CalculatePreferredSize();
+    // We don't use margins() directly which means that we need to account for
+    // the margin width here. Margin height is accounted for by the layout code.
+    size.Enlarge(kUserMenuMarginWidth, 0);
+    return size;
+  }
+  void OnFocus() override {
+    // This view has no actual interesting contents to focus, so immediately
+    // forward to the button.
+    remove_user_button_->RequestFocus();
+  }
+  void AboutToRequestFocusFromTabTraversal(bool reverse) override {
+    // Redirect the focus event to the lock screen.
+    Shell::Get()->focus_cycler()->FocusWidget(LockScreen::Get()->window());
+    LockScreen::Get()->window()->GetFocusManager()->AdvanceFocus(reverse);
+  }
+
+  // views::ButtonListener:
+  void ButtonPressed(views::Button* sender, const ui::Event& event) override {
+    // Show confirmation warning. The user has to click the button again before
+    // we actually allow the exit.
+    if (!remove_user_confirm_data_->visible()) {
+      remove_user_confirm_data_->SetVisible(true);
+      remove_user_label_->SetEnabledColor(kRemoveUserConfirmColor);
+      SizeToContents();
+      GetWidget()->SetSize(size());
+      Layout();
+      return;
+    }
+
+    if (do_remove_user_)
+      std::move(do_remove_user_).Run();
+    bubble_->Close();
+  }
 
  private:
+  LoginBubble* bubble_ = nullptr;
+  base::OnceClosure do_remove_user_;
+  views::View* remove_user_confirm_data_ = nullptr;
+  views::Label* remove_user_label_ = nullptr;
+  ButtonWithContent* remove_user_button_ = nullptr;
+
   DISALLOW_COPY_AND_ASSIGN(LoginUserMenuView);
 };
 
@@ -116,6 +328,8 @@
  public:
   LoginTooltipView(const base::string16& message, views::View* anchor_view)
       : LoginBaseBubbleView(anchor_view) {
+    SetLayoutManager(
+        std::make_unique<views::BoxLayout>(views::BoxLayout::kVertical));
     views::Label* text = CreateLabel(message, SK_ColorWHITE);
     text->SetMultiLine(true);
     AddChildView(text);
@@ -132,6 +346,9 @@
 
 }  // namespace
 
+// static
+const int LoginBubble::kUserMenuRemoveUserButtonIdForTest = 1;
+
 LoginBubble::LoginBubble() {
   Shell::Get()->AddPreTargetHandler(this);
 }
@@ -153,18 +370,29 @@
   Show();
 }
 
-void LoginBubble::ShowUserMenu(const base::string16& message,
-                               const base::string16& sub_message,
+void LoginBubble::ShowUserMenu(const base::string16& username,
+                               const base::string16& email,
+                               user_manager::UserType type,
+                               bool is_owner,
                                views::View* anchor_view,
                                LoginButton* bubble_opener,
-                               bool show_remove_user) {
+                               bool show_remove_user,
+                               base::OnceClosure do_remove_user) {
   if (bubble_view_)
     CloseImmediately();
 
   bubble_opener_ = bubble_opener;
-  bubble_view_ = new LoginUserMenuView(message, sub_message, anchor_view,
-                                       show_remove_user);
+  bubble_view_ =
+      new LoginUserMenuView(this, username, email, type, is_owner, anchor_view,
+                            show_remove_user, std::move(do_remove_user));
+  bool had_focus = bubble_opener_->HasFocus();
+
   Show();
+
+  if (had_focus) {
+    // Try to focus the bubble view only if the tooltip was focused.
+    bubble_view_->RequestFocus();
+  }
 }
 
 void LoginBubble::ShowTooltip(const base::string16& message,
@@ -215,6 +443,10 @@
   if (bubble_opener_ && bubble_opener_->HasFocus())
     return;
 
+  // If |bubble_view_| is interactive do not close it.
+  if (bubble_view_->GetWidget()->IsActive())
+    return;
+
   Close();
 }
 
diff --git a/ash/login/ui/login_bubble.h b/ash/login/ui/login_bubble.h
index fef0505..b756dab1 100644
--- a/ash/login/ui/login_bubble.h
+++ b/ash/login/ui/login_bubble.h
@@ -8,6 +8,7 @@
 #include "ash/ash_export.h"
 #include "ash/login/ui/login_base_bubble_view.h"
 #include "base/strings/string16.h"
+#include "components/user_manager/user_type.h"
 #include "ui/compositor/layer_animation_observer.h"
 #include "ui/views/view.h"
 #include "ui/views/widget/widget_observer.h"
@@ -26,6 +27,8 @@
                                public ui::EventHandler,
                                public ui::LayerAnimationObserver {
  public:
+  static const int kUserMenuRemoveUserButtonIdForTest;
+
   LoginBubble();
   ~LoginBubble() override;
 
@@ -38,11 +41,14 @@
   // |bubble_opener| is a view that could open/close the bubble.
   // |show_remove_user| indicate whether or not we show the
   // "Remove this user" action.
-  void ShowUserMenu(const base::string16& message,
-                    const base::string16& sub_message,
+  void ShowUserMenu(const base::string16& username,
+                    const base::string16& email,
+                    user_manager::UserType type,
+                    bool is_owner,
                     views::View* anchor_view,
                     LoginButton* bubble_opener,
-                    bool show_remove_user);
+                    bool show_remove_user,
+                    base::OnceClosure do_remove_user);
 
   // Shows a tooltip.
   void ShowTooltip(const base::string16& message, views::View* anchor_view);
diff --git a/ash/login/ui/login_bubble_unittest.cc b/ash/login/ui/login_bubble_unittest.cc
index ef47c25..980a3c76 100644
--- a/ash/login/ui/login_bubble_unittest.cc
+++ b/ash/login/ui/login_bubble_unittest.cc
@@ -66,6 +66,14 @@
     LoginTestBase::TearDown();
   }
 
+  void ShowUserMenu(base::OnceClosure on_remove) {
+    bool show_remove_user = !on_remove.is_null();
+    bubble_->ShowUserMenu(
+        base::string16() /*username*/, base::string16() /*email*/,
+        user_manager::UserType::USER_TYPE_REGULAR, false /*is_owner*/,
+        container_, bubble_opener_, show_remove_user, std::move(on_remove));
+  }
+
   // Owned by test widget view hierarchy.
   views::View* container_ = nullptr;
   // Owned by test widget view hierarchy.
@@ -83,8 +91,7 @@
 
 // Verifies the base bubble settings.
 TEST_F(LoginBubbleTest, BaseBubbleSettings) {
-  bubble_->ShowUserMenu(base::string16(), base::string16(), container_,
-                        bubble_opener_, false /*show_remove_user*/);
+  bubble_->ShowTooltip(base::string16(), bubble_opener_);
   EXPECT_TRUE(bubble_->IsVisible());
 
   LoginBaseBubbleView* bubble_view = bubble_->bubble_view_for_test();
@@ -108,8 +115,7 @@
   EXPECT_FALSE(bubble_->IsVisible());
 
   // Verifies that key event on the bubble opener view won't close the bubble.
-  bubble_->ShowUserMenu(base::string16(), base::string16(), container_,
-                        bubble_opener_, false /*show_remove_user*/);
+  ShowUserMenu(base::OnceClosure());
   EXPECT_TRUE(bubble_->IsVisible());
   bubble_opener_->RequestFocus();
   generator.PressKey(ui::KeyboardCode::VKEY_A, ui::EF_NONE);
@@ -132,8 +138,7 @@
   EXPECT_FALSE(bubble_->IsVisible());
 
   // Verifies that mouse event on the bubble opener view won't close the bubble.
-  bubble_->ShowUserMenu(base::string16(), base::string16(), container_,
-                        bubble_opener_, false /*show_remove_user*/);
+  ShowUserMenu(base::OnceClosure());
   EXPECT_TRUE(bubble_->IsVisible());
   generator.MoveMouseTo(bubble_opener_->GetBoundsInScreen().CenterPoint());
   generator.ClickLeftButton();
@@ -162,8 +167,7 @@
 
   // Verifies that gesture event on the bubble opener view won't close the
   // bubble.
-  bubble_->ShowUserMenu(base::string16(), base::string16(), container_,
-                        bubble_opener_, false /*show_remove_user*/);
+  ShowUserMenu(base::OnceClosure());
   EXPECT_TRUE(bubble_->IsVisible());
   generator.GestureTapAt(bubble_opener_->GetBoundsInScreen().CenterPoint());
   EXPECT_TRUE(bubble_->IsVisible());
@@ -185,8 +189,7 @@
             views::InkDropHostView::InkDropMode::ON);
 
   // Show the bubble to activate the ripple effect.
-  bubble_->ShowUserMenu(base::string16(), base::string16(), container_,
-                        bubble_opener_, false /*show_remove_user*/);
+  ShowUserMenu(base::OnceClosure());
   EXPECT_TRUE(bubble_->IsVisible());
   EXPECT_TRUE(ink_drop_api.HasInkDrop());
   EXPECT_EQ(ink_drop_api.GetInkDrop()->GetTargetInkDropState(),
@@ -206,4 +209,31 @@
   EXPECT_FALSE(ink_drop_api.GetInkDrop()->IsHighlightFadingInOrVisible());
 }
 
+// Verifies that clicking remove user requires two clicks before firing the
+// callback.
+TEST_F(LoginBubbleTest, RemoveUserRequiresTwoActivations) {
+  // Show the user menu.
+  bool remove_called = false;
+  ShowUserMenu(base::BindOnce(
+      [](bool* remove_called) { *remove_called = true; }, &remove_called));
+  EXPECT_TRUE(bubble_->IsVisible());
+
+  // Focus the remove user button.
+  views::View* remove_user_button =
+      bubble_->bubble_view_for_test()->GetViewByID(
+          LoginBubble::kUserMenuRemoveUserButtonIdForTest);
+  remove_user_button->RequestFocus();
+  EXPECT_TRUE(remove_user_button->HasFocus());
+
+  // Click it twice. Verify only the second click fires the callback.
+  auto click = [&]() {
+    EXPECT_TRUE(remove_user_button->HasFocus());
+    GetEventGenerator().PressKey(ui::KeyboardCode::VKEY_RETURN, 0);
+  };
+  EXPECT_NO_FATAL_FAILURE(click());
+  EXPECT_FALSE(remove_called);
+  EXPECT_NO_FATAL_FAILURE(click());
+  EXPECT_TRUE(remove_called);
+}
+
 }  // namespace ash
diff --git a/ash/login/ui/login_user_view.cc b/ash/login/ui/login_user_view.cc
index 3e8df7d..b9c86d3c 100644
--- a/ash/login/ui/login_user_view.cc
+++ b/ash/login/ui/login_user_view.cc
@@ -405,17 +405,13 @@
   if (sender == user_dropdown_) {
     DCHECK(user_dropdown_);
     if (!user_menu_->IsVisible()) {
-      base::string16 display_name =
-          base::UTF8ToUTF16(current_user_->basic_user_info->display_name);
-
       user_menu_->ShowUserMenu(
-          current_user_->is_device_owner
-              ? l10n_util::GetStringFUTF16(IDS_ASH_LOGIN_POD_OWNER_USER,
-                                           display_name)
-              : display_name,
+          base::UTF8ToUTF16(current_user_->basic_user_info->display_name),
           base::UTF8ToUTF16(current_user_->basic_user_info->display_email),
+          current_user_->basic_user_info->type, current_user_->is_device_owner,
           user_dropdown_ /*anchor_view*/, user_dropdown_ /*bubble_opener*/,
-          false /*show_remove_user*/);
+          current_user_->can_remove /*show_remove_user*/,
+          base::OnceClosure() /*do_remove_user*/);
     } else {
       user_menu_->Close();
     }
diff --git a/ash/manifest.json b/ash/manifest.json
index 9379699..87605d5 100644
--- a/ash/manifest.json
+++ b/ash/manifest.json
@@ -56,6 +56,7 @@
         "ash_pref_connector": [ "pref_connector" ],
         "catalog": [ "directory" ],
         "local_state": [ "pref_client" ],
+        "quick_launch_app": [ "mash:launchable" ],
         "ui": [ "display_dev", "window_manager", "video_detector" ],
         "touch_hud_app": [ "mash:launchable" ],
         "data_decoder": [ "image_decoder" ]
diff --git a/ash/root_window_controller.cc b/ash/root_window_controller.cc
index cf3169f90..0f67238 100644
--- a/ash/root_window_controller.cc
+++ b/ash/root_window_controller.cc
@@ -628,6 +628,11 @@
                           views::MENU_ANCHOR_TOPLEFT, source_type);
 }
 
+void RootWindowController::HideContextMenu() {
+  if (menu_runner_)
+    menu_runner_->Cancel();
+}
+
 void RootWindowController::UpdateAfterLoginStatusChange(LoginStatus status) {
   StatusAreaWidget* status_area_widget =
       shelf_->shelf_widget()->status_area_widget();
diff --git a/ash/root_window_controller.h b/ash/root_window_controller.h
index 4722400..ca51a83 100644
--- a/ash/root_window_controller.h
+++ b/ash/root_window_controller.h
@@ -230,11 +230,15 @@
   // Shows a context menu at the |location_in_screen|.
   void ShowContextMenu(const gfx::Point& location_in_screen,
                        ui::MenuSourceType source_type);
+  void HideContextMenu();
 
   // Called when the login status changes after login (such as lock/unlock).
   void UpdateAfterLoginStatusChange(LoginStatus status);
 
  private:
+  FRIEND_TEST_ALL_PREFIXES(RootWindowControllerTest,
+                           ContextMenuDisappearsInTabletMode);
+
   // TODO(sky): remove this. Temporary during ash-mus unification.
   // http://crbug.com/671246.
   friend class WindowManager;
diff --git a/ash/root_window_controller_unittest.cc b/ash/root_window_controller_unittest.cc
index f7e5f1b..53b1ad1 100644
--- a/ash/root_window_controller_unittest.cc
+++ b/ash/root_window_controller_unittest.cc
@@ -12,6 +12,7 @@
 #include "ash/shell.h"
 #include "ash/test/ash_test_base.h"
 #include "ash/wm/system_modal_container_layout_manager.h"
+#include "ash/wm/tablet_mode/tablet_mode_controller.h"
 #include "ash/wm/window_properties.h"
 #include "ash/wm/window_state.h"
 #include "ash/wm/window_util.h"
@@ -637,6 +638,35 @@
   delete window2;
 }
 
+// Verify that the context menu gets hidden when entering or exiting tablet
+// mode.
+TEST_F(RootWindowControllerTest, ContextMenuDisappearsInTabletMode) {
+  RootWindowController* controller = Shell::GetPrimaryRootWindowController();
+
+  // Open context menu.
+  ui::test::EventGenerator generator(controller->GetRootWindow());
+  generator.PressRightButton();
+  generator.ReleaseRightButton();
+  EXPECT_TRUE(controller->menu_model_);
+  EXPECT_TRUE(controller->menu_runner_);
+
+  // Verify menu closes on entering tablet mode.
+  Shell::Get()->tablet_mode_controller()->EnableTabletModeWindowManager(true);
+  EXPECT_FALSE(controller->menu_model_);
+  EXPECT_FALSE(controller->menu_runner_);
+
+  // Open context menu.
+  generator.PressRightButton();
+  generator.ReleaseRightButton();
+  EXPECT_TRUE(controller->menu_model_);
+  EXPECT_TRUE(controller->menu_runner_);
+
+  // Verify menu closes on exiting tablet mode.
+  Shell::Get()->tablet_mode_controller()->EnableTabletModeWindowManager(false);
+  EXPECT_FALSE(controller->menu_model_);
+  EXPECT_FALSE(controller->menu_runner_);
+}
+
 class VirtualKeyboardRootWindowControllerTest
     : public RootWindowControllerTest {
  public:
diff --git a/ash/system/flag_warning/flag_warning_tray.cc b/ash/system/flag_warning/flag_warning_tray.cc
index 065812a..ee1114a 100644
--- a/ash/system/flag_warning/flag_warning_tray.cc
+++ b/ash/system/flag_warning/flag_warning_tray.cc
@@ -6,15 +6,19 @@
 
 #include <memory>
 
+#include "ash/components/quick_launch/public/mojom/constants.mojom.h"
 #include "ash/public/cpp/ash_typography.h"
 #include "ash/public/cpp/config.h"
 #include "ash/resources/vector_icons/vector_icons.h"
 #include "ash/shelf/shelf.h"
 #include "ash/shell.h"
+#include "ash/shell_delegate.h"
 #include "ash/system/tray/tray_constants.h"
 #include "ash/system/tray/tray_container.h"
 #include "base/logging.h"
 #include "base/strings/utf_string_conversions.h"
+#include "mash/public/mojom/launchable.mojom.h"
+#include "services/service_manager/public/cpp/connector.h"
 #include "ui/accessibility/ax_node_data.h"
 #include "ui/gfx/color_palette.h"
 #include "ui/gfx/geometry/size.h"
@@ -64,8 +68,11 @@
                                     const ui::Event& event) {
   DCHECK_EQ(button_, sender);
 
-  // TODO(jamescook): Use NewWindowController to open about:flags. This will
-  // require a new mojo interface to chrome.
+  // Open the quick launch mojo mini-app to demonstrate that mini-apps work.
+  mash::mojom::LaunchablePtr launchable;
+  Shell::Get()->shell_delegate()->GetShellConnector()->BindInterface(
+      quick_launch::mojom::kServiceName, &launchable);
+  launchable->Launch(mash::mojom::kWindow, mash::mojom::LaunchMode::DEFAULT);
 }
 
 void FlagWarningTray::GetAccessibleNodeData(ui::AXNodeData* node_data) {
diff --git a/ash/wm/overview/window_selector.cc b/ash/wm/overview/window_selector.cc
index 601507c..4d8228e 100644
--- a/ash/wm/overview/window_selector.cc
+++ b/ash/wm/overview/window_selector.cc
@@ -554,9 +554,6 @@
   window_drag_controller_.reset(new OverviewWindowDragController(this));
   window_drag_controller_->InitiateDrag(item, location_in_screen);
 
-  if (!IsNewOverviewUi())
-    return;
-
   for (std::unique_ptr<WindowGrid>& grid : grid_list_)
     grid->OnSelectorItemDragStarted(item);
 }
@@ -574,9 +571,6 @@
   DCHECK_EQ(item, window_drag_controller_->item());
   window_drag_controller_->CompleteDrag(location_in_screen);
 
-  if (!IsNewOverviewUi())
-    return;
-
   for (std::unique_ptr<WindowGrid>& grid : grid_list_)
     grid->OnSelectorItemDragEnded();
 }
diff --git a/ash/wm/overview/window_selector_item.cc b/ash/wm/overview/window_selector_item.cc
index e5fa653..1b763d2 100644
--- a/ash/wm/overview/window_selector_item.cc
+++ b/ash/wm/overview/window_selector_item.cc
@@ -515,10 +515,12 @@
   gfx::Rect backdrop_bounds() const { return backdrop_bounds_; }
 
   void SetCloseButtonVisibility(bool visible) {
+    DCHECK(close_button_->layer());
     AnimateLayerOpacity(close_button_->layer(), visible);
   }
 
   void SetTitleLabelVisibility(bool visible) {
+    DCHECK(background_->layer());
     AnimateLayerOpacity(background_->layer(), visible);
   }
 
@@ -789,12 +791,16 @@
 }
 
 void WindowSelectorItem::OnSelectorItemDragStarted(WindowSelectorItem* item) {
+  if (!IsNewOverviewUi())
+    return;
   caption_container_view_->SetCloseButtonVisibility(false);
   if (item == this)
     caption_container_view_->SetTitleLabelVisibility(false);
 }
 
 void WindowSelectorItem::OnSelectorItemDragEnded() {
+  if (!IsNewOverviewUi())
+    return;
   caption_container_view_->SetCloseButtonVisibility(true);
   caption_container_view_->SetTitleLabelVisibility(true);
 }
@@ -937,6 +943,7 @@
 
 void WindowSelectorItem::ResetDraggedWindowGesture() {
   OnSelectorItemDragEnded();
+
   if (tap_down_event_on_title_)
     return;
 
diff --git a/ash/wm/overview/window_selector_unittest.cc b/ash/wm/overview/window_selector_unittest.cc
index 3a4900f..71a36e9 100644
--- a/ash/wm/overview/window_selector_unittest.cc
+++ b/ash/wm/overview/window_selector_unittest.cc
@@ -41,6 +41,7 @@
 #include "base/command_line.h"
 #include "base/memory/ptr_util.h"
 #include "base/run_loop.h"
+#include "base/stl_util.h"
 #include "base/strings/string_number_conversions.h"
 #include "base/strings/utf_string_conversions.h"
 #include "base/test/user_action_tester.h"
@@ -3594,8 +3595,7 @@
   std::vector<aura::Window*> window_list =
       window_selector_controller()->GetWindowsListInOverviewGridsForTesting();
   EXPECT_EQ(2u, window_list.size());
-  EXPECT_TRUE(std::find(window_list.begin(), window_list.end(),
-                        window1.get()) == window_list.end());
+  EXPECT_FALSE(base::ContainsValue(window_list, window1.get()));
   EXPECT_TRUE(wm::IsActiveWindow(window1.get()));
 
   // Drag the divider to the left edge.
@@ -3611,8 +3611,7 @@
   window_list =
       window_selector_controller()->GetWindowsListInOverviewGridsForTesting();
   EXPECT_EQ(3u, window_list.size());
-  EXPECT_TRUE(std::find(window_list.begin(), window_list.end(),
-                        window1.get()) != window_list.end());
+  EXPECT_TRUE(base::ContainsValue(window_list, window1.get()));
   EXPECT_FALSE(wm::IsActiveWindow(window1.get()));
 }
 
diff --git a/ash/wm/panels/panel_layout_manager_unittest.cc b/ash/wm/panels/panel_layout_manager_unittest.cc
index 27d3890..769cf68 100644
--- a/ash/wm/panels/panel_layout_manager_unittest.cc
+++ b/ash/wm/panels/panel_layout_manager_unittest.cc
@@ -26,6 +26,7 @@
 #include "base/compiler_specific.h"
 #include "base/i18n/rtl.h"
 #include "base/run_loop.h"
+#include "base/stl_util.h"
 #include "base/strings/string_number_conversions.h"
 #include "ui/aura/client/aura_constants.h"
 #include "ui/aura/test/test_windows.h"
@@ -813,15 +814,9 @@
   aura::Window::Windows switchable_window_list =
       Shell::Get()->mru_window_tracker()->BuildMruWindowList();
   EXPECT_EQ(3u, switchable_window_list.size());
-  EXPECT_NE(switchable_window_list.end(),
-            std::find(switchable_window_list.begin(),
-                      switchable_window_list.end(), w1.get()));
-  EXPECT_NE(switchable_window_list.end(),
-            std::find(switchable_window_list.begin(),
-                      switchable_window_list.end(), w2.get()));
-  EXPECT_NE(switchable_window_list.end(),
-            std::find(switchable_window_list.begin(),
-                      switchable_window_list.end(), w3.get()));
+  EXPECT_TRUE(base::ContainsValue(switchable_window_list, w1.get()));
+  EXPECT_TRUE(base::ContainsValue(switchable_window_list, w2.get()));
+  EXPECT_TRUE(base::ContainsValue(switchable_window_list, w3.get()));
 
   SetShelfVisibilityState(Shell::GetPrimaryRootWindow(), SHELF_VISIBLE);
   RunAllPendingInMessageLoop();
diff --git a/ash/wm/splitview/split_view_controller.cc b/ash/wm/splitview/split_view_controller.cc
index 9a5a4d4..4a142b52 100644
--- a/ash/wm/splitview/split_view_controller.cc
+++ b/ash/wm/splitview/split_view_controller.cc
@@ -31,6 +31,7 @@
 #include "base/metrics/histogram_macros.h"
 #include "base/metrics/user_metrics.h"
 #include "base/optional.h"
+#include "base/stl_util.h"
 #include "ui/aura/client/aura_constants.h"
 #include "ui/aura/window.h"
 #include "ui/aura/window_delegate.h"
@@ -531,10 +532,11 @@
   }
 
   // Only window in MRU list can be snapped.
-  aura::Window::Windows windows =
-      Shell::Get()->mru_window_tracker()->BuildMruWindowList();
-  if (std::find(windows.begin(), windows.end(), gained_active) == windows.end())
+  if (!base::ContainsValue(
+          Shell::Get()->mru_window_tracker()->BuildMruWindowList(),
+          gained_active)) {
     return;
+  }
 
   // Snap the window on the non-default side of the screen if split view mode
   // is active.
diff --git a/ash/wm/splitview/split_view_controller_unittest.cc b/ash/wm/splitview/split_view_controller_unittest.cc
index 7f407c2..42d9cd6 100644
--- a/ash/wm/splitview/split_view_controller_unittest.cc
+++ b/ash/wm/splitview/split_view_controller_unittest.cc
@@ -19,6 +19,7 @@
 #include "ash/wm/window_state.h"
 #include "ash/wm/window_util.h"
 #include "ash/wm/wm_event.h"
+#include "base/stl_util.h"
 #include "services/ui/public/interfaces/window_manager_constants.mojom.h"
 #include "ui/aura/client/aura_constants.h"
 #include "ui/aura/test/test_window_delegate.h"
@@ -418,10 +419,9 @@
   ToggleOverview();
   EXPECT_EQ(split_view_controller()->state(),
             SplitViewController::LEFT_SNAPPED);
-  std::vector<aura::Window*> windows = GetWindowsInOverviewGrids();
-  auto iter = std::find(windows.begin(), windows.end(),
-                        split_view_controller()->GetDefaultSnappedWindow());
-  EXPECT_TRUE(iter == windows.end());
+  EXPECT_FALSE(
+      base::ContainsValue(GetWindowsInOverviewGrids(),
+                          split_view_controller()->GetDefaultSnappedWindow()));
 }
 
 // Tests that the split divider was created when the split view mode is active
diff --git a/ash/wm/splitview/split_view_divider.cc b/ash/wm/splitview/split_view_divider.cc
index 7b96ea2..b7bad07 100644
--- a/ash/wm/splitview/split_view_divider.cc
+++ b/ash/wm/splitview/split_view_divider.cc
@@ -11,6 +11,7 @@
 #include "ash/shell.h"
 #include "ash/wm/splitview/split_view_controller.h"
 #include "ash/wm/window_util.h"
+#include "base/stl_util.h"
 #include "ui/aura/scoped_window_targeter.h"
 #include "ui/aura/window_targeter.h"
 #include "ui/compositor/layer.h"
@@ -266,9 +267,7 @@
 }
 
 void SplitViewDivider::AddObservedWindow(aura::Window* window) {
-  auto iter =
-      std::find(observed_windows_.begin(), observed_windows_.end(), window);
-  if (iter == observed_windows_.end()) {
+  if (!base::ContainsValue(observed_windows_, window)) {
     window->AddObserver(this);
     observed_windows_.push_back(window);
   }
@@ -290,9 +289,7 @@
 void SplitViewDivider::OnWindowActivated(ActivationReason reason,
                                          aura::Window* gained_active,
                                          aura::Window* lost_active) {
-  auto iter = std::find(observed_windows_.begin(), observed_windows_.end(),
-                        gained_active);
-  if (iter != observed_windows_.end()) {
+  if (base::ContainsValue(observed_windows_, gained_active)) {
     divider_widget_->SetAlwaysOnTop(true);
   } else {
     divider_widget_->SetAlwaysOnTop(false);
diff --git a/ash/wm/tablet_mode/tablet_mode_controller.cc b/ash/wm/tablet_mode/tablet_mode_controller.cc
index 21625844..5c1174c 100644
--- a/ash/wm/tablet_mode/tablet_mode_controller.cc
+++ b/ash/wm/tablet_mode/tablet_mode_controller.cc
@@ -7,6 +7,7 @@
 #include <utility>
 
 #include "ash/public/cpp/ash_switches.h"
+#include "ash/root_window_controller.h"
 #include "ash/shell.h"
 #include "ash/shell_delegate.h"
 #include "ash/wm/tablet_mode/scoped_disable_internal_mouse_and_keyboard.h"
@@ -170,6 +171,12 @@
   if (should_enable == is_enabled)
     return;
 
+  // Hide the context menu on entering tablet mode to prevent users from
+  // accessing forbidden options. Hide the context menu on exiting tablet mode
+  // to match behaviors.
+  for (auto* root_window : Shell::Get()->GetAllRootWindows())
+    RootWindowController::ForWindow(root_window)->HideContextMenu();
+
   if (should_enable) {
     tablet_mode_window_manager_.reset(new TabletModeWindowManager());
     base::RecordAction(base::UserMetricsAction("Touchview_Enabled"));
diff --git a/ash/wm/workspace/workspace_event_handler_unittest.cc b/ash/wm/workspace/workspace_event_handler_unittest.cc
index c1c4e3c..e58e3ed 100644
--- a/ash/wm/workspace/workspace_event_handler_unittest.cc
+++ b/ash/wm/workspace/workspace_event_handler_unittest.cc
@@ -12,6 +12,7 @@
 #include "ash/wm/wm_event.h"
 #include "ash/wm/workspace_controller.h"
 #include "ash/wm/workspace_controller_test_api.h"
+#include "base/stl_util.h"
 #include "base/threading/thread_task_runner_handle.h"
 #include "services/ui/public/interfaces/window_manager_constants.mojom.h"
 #include "ui/aura/client/aura_constants.h"
@@ -76,8 +77,7 @@
   ~WindowPropertyObserver() override { window_->RemoveObserver(this); }
 
   bool DidPropertyChange(const void* property) const {
-    return std::find(properties_changed_.begin(), properties_changed_.end(),
-                     property) != properties_changed_.end();
+    return base::ContainsValue(properties_changed_, property);
   }
 
  private:
diff --git a/base/android/java/src/org/chromium/base/BuildInfo.java b/base/android/java/src/org/chromium/base/BuildInfo.java
index d60b50e..5c2a062 100644
--- a/base/android/java/src/org/chromium/base/BuildInfo.java
+++ b/base/android/java/src/org/chromium/base/BuildInfo.java
@@ -132,20 +132,7 @@
 
     // The markers Begin:BuildCompat and End:BuildCompat delimit code
     // that is autogenerated from Android sources.
-    // Begin:BuildCompat OMR1,P
-
-    /**
-     * Checks if the device is running on a pre-release version of Android O MR1 or newer.
-     * <p>
-     * @return {@code true} if O MR1 APIs are available for use, {@code false} otherwise
-     * @deprecated Android O MR1 is a finalized release and this method is no longer necessary. It
-     *             will be removed in a future release of the Support Library. Instead, use
-     *             {@code Build.SDK_INT >= Build.VERSION_CODES#O_MR1}.
-     */
-    @Deprecated
-    public static boolean isAtLeastOMR1() {
-        return VERSION.SDK_INT >= 27;
-    }
+    // Begin:BuildCompat P
 
     /**
      * Checks if the device is running on a pre-release version of Android P or newer.
@@ -161,14 +148,6 @@
     }
 
     /**
-     * Checks if the application targets at least released SDK OMR1
-     */
-    @Deprecated
-    public static boolean targetsAtLeastOMR1() {
-        return ContextUtils.getApplicationContext().getApplicationInfo().targetSdkVersion >= 27;
-    }
-
-    /**
      * Checks if the application targets pre-release SDK P
      */
     public static boolean targetsAtLeastP() {
diff --git a/base/task/OWNERS b/base/task/OWNERS
new file mode 100644
index 0000000..0f3ad5e
--- /dev/null
+++ b/base/task/OWNERS
@@ -0,0 +1,6 @@
+fdoray@chromium.org
+gab@chromium.org
+robliao@chromium.org
+
+# TEAM: scheduler-dev@chromium.org
+# COMPONENT: Internals>TaskScheduler
diff --git a/base/task/README.md b/base/task/README.md
new file mode 100644
index 0000000..0db116a
--- /dev/null
+++ b/base/task/README.md
@@ -0,0 +1,12 @@
+This directory has the following layout (WIP):
+- base/task/: public APIs for posting tasks and managing task queues.
+- base/task/task_scheduler/: implementation of the TaskScheduler.
+- base/task/sequence_manager/: implementation of the SequenceManager.
+
+Apart from embedders explicitly managing a TaskScheduler and/or SequenceManager
+instance(s) for their process/threads, the vast majority of users should only
+need APIs in base/task/.
+
+Documentation:
+- [Threading and tasks](https://chromium.googlesource.com/chromium/src/+/lkcr/docs/threading_and_tasks.md)
+- [Callbacks](https://chromium.googlesource.com/chromium/src/+/lkcr/docs/callback.md)
diff --git a/base/task/sequence_manager/OWNERS b/base/task/sequence_manager/OWNERS
new file mode 100644
index 0000000..ac6eae86
--- /dev/null
+++ b/base/task/sequence_manager/OWNERS
@@ -0,0 +1,6 @@
+altimin@chromium.org
+alexclarke@chromium.org
+skyostil@chromium.org
+
+# TEAM: scheduler-dev@chromium.org
+# Component: Blink>Scheduling
diff --git a/base/task/task_scheduler/OWNERS b/base/task/task_scheduler/OWNERS
new file mode 100644
index 0000000..0f3ad5e
--- /dev/null
+++ b/base/task/task_scheduler/OWNERS
@@ -0,0 +1,6 @@
+fdoray@chromium.org
+gab@chromium.org
+robliao@chromium.org
+
+# TEAM: scheduler-dev@chromium.org
+# COMPONENT: Internals>TaskScheduler
diff --git a/base/trace_event/memory_dump_manager.cc b/base/trace_event/memory_dump_manager.cc
index 9692671..5984b56 100644
--- a/base/trace_event/memory_dump_manager.cc
+++ b/base/trace_event/memory_dump_manager.cc
@@ -50,7 +50,7 @@
 const char* const kTraceEventArgNames[] = {"dumps"};
 const unsigned char kTraceEventArgTypes[] = {TRACE_VALUE_TYPE_CONVERTABLE};
 
-MemoryDumpManager* g_instance_for_testing = nullptr;
+MemoryDumpManager* g_memory_dump_manager_for_testing = nullptr;
 
 // Temporary (until peak detector and scheduler are moved outside of here)
 // trampoline function to match the |request_dump_function| passed to Initialize
@@ -162,8 +162,8 @@
 
 // static
 MemoryDumpManager* MemoryDumpManager::GetInstance() {
-  if (g_instance_for_testing)
-    return g_instance_for_testing;
+  if (g_memory_dump_manager_for_testing)
+    return g_memory_dump_manager_for_testing;
 
   return Singleton<MemoryDumpManager,
                    LeakySingletonTraits<MemoryDumpManager>>::get();
@@ -172,9 +172,9 @@
 // static
 std::unique_ptr<MemoryDumpManager>
 MemoryDumpManager::CreateInstanceForTesting() {
-  DCHECK(!g_instance_for_testing);
+  DCHECK(!g_memory_dump_manager_for_testing);
   std::unique_ptr<MemoryDumpManager> instance(new MemoryDumpManager());
-  g_instance_for_testing = instance.get();
+  g_memory_dump_manager_for_testing = instance.get();
   return instance;
 }
 
@@ -197,7 +197,7 @@
   }
   AutoLock lock(lock_);
   dump_thread_.reset();
-  g_instance_for_testing = nullptr;
+  g_memory_dump_manager_for_testing = nullptr;
 }
 
 // static
diff --git a/base/trace_event/trace_log.cc b/base/trace_event/trace_log.cc
index 63da7f9..718383b0 100644
--- a/base/trace_event/trace_log.cc
+++ b/base/trace_event/trace_log.cc
@@ -74,7 +74,7 @@
 const size_t kTraceEventBufferSizeInBytes = 100 * 1024;
 const int kThreadFlushTimeoutMs = 3000;
 
-TraceLog* g_instance_for_testing = nullptr;
+TraceLog* g_trace_log_for_testing = nullptr;
 
 #define MAX_TRACE_EVENT_FILTERS 32
 
@@ -335,11 +335,11 @@
 
 // static
 void TraceLog::ResetForTesting() {
-  if (!g_instance_for_testing)
+  if (!g_trace_log_for_testing)
     return;
   CategoryRegistry::ResetForTesting();
-  g_instance_for_testing->~TraceLog();
-  new (g_instance_for_testing) TraceLog;
+  g_trace_log_for_testing->~TraceLog();
+  new (g_trace_log_for_testing) TraceLog;
 }
 
 TraceLog::TraceLog()
@@ -376,7 +376,7 @@
 
   MemoryDumpManager::GetInstance()->RegisterDumpProvider(this, "TraceLog",
                                                          nullptr);
-  g_instance_for_testing = this;
+  g_trace_log_for_testing = this;
 }
 
 TraceLog::~TraceLog() = default;
diff --git a/base/win/windows_version.h b/base/win/windows_version.h
index 6b9870e..d5aee20 100644
--- a/base/win/windows_version.h
+++ b/base/win/windows_version.h
@@ -25,7 +25,7 @@
 // This enum is used in metrics histograms, so they shouldn't be reordered or
 // removed. New values can be added before VERSION_WIN_LAST.
 enum Version {
-  VERSION_PRE_XP = 0,       // Not supported.
+  VERSION_PRE_XP = 0,  // Not supported.
   VERSION_XP = 1,
   VERSION_SERVER_2003 = 2,  // Also includes XP Pro x64 and Server 2003 R2.
   VERSION_VISTA = 3,        // Also includes Windows Server 2008.
@@ -37,8 +37,9 @@
   VERSION_WIN10_RS1 = 9,    // Redstone 1: Version 1607, Build 14393.
   VERSION_WIN10_RS2 = 10,   // Redstone 2: Version 1703, Build 15063.
   VERSION_WIN10_RS3 = 11,   // Redstone 3: Version 1709, Build 16299.
-  // On edit, update tools\metrics\histograms\enums.xml "WindowsVersion".
-  VERSION_WIN_LAST,         // Indicates error condition.
+  // On edit, update tools\metrics\histograms\enums.xml "WindowsVersion" and
+  // "GpuBlacklistFeatureTestResultsWindows2".
+  VERSION_WIN_LAST,  // Indicates error condition.
 };
 
 // A rough bucketing of the available types of versions of Windows. This is used
diff --git a/build/config/compiler/compiler.gni b/build/config/compiler/compiler.gni
index b995045..5fb5a3c 100644
--- a/build/config/compiler/compiler.gni
+++ b/build/config/compiler/compiler.gni
@@ -54,20 +54,6 @@
   # Windows build.
   use_incremental_wpo = false
 
-  # Root directory that will store the MSVC link repro. This should only be
-  # used for debugging purposes on the builders where a MSVC linker flakyness
-  # has been observed. The targets for which a link repro should be generated
-  # should add somethink like this to their configuration:
-  #   if (linkrepro_root_dir != "") {
-  #     ldflags = ["/LINKREPRO:" + linkrepro_root_dir + "/" + target_name]
-  #   }
-  #
-  # Note that doing a link repro uses a lot of disk space and slows down the
-  # build, so this shouldn't be enabled on too many targets.
-  #
-  # See crbug.com/669854.
-  linkrepro_root_dir = ""
-
   # Whether or not we should use position independent code.
   use_pic = true
 
diff --git a/build/config/fuchsia/package.gni b/build/config/fuchsia/package.gni
index c6f36f5..36effa6 100644
--- a/build/config/fuchsia/package.gni
+++ b/build/config/fuchsia/package.gni
@@ -20,7 +20,6 @@
   _runtime_deps_file = "$_pkg_out_dir/${pkg.package_name}.runtime_deps"
   _manifest_file = "$_pkg_out_dir/${pkg.package_name}.archive_manifest"
   _archive_file = "$_pkg_out_dir/${pkg.package_name}.far"
-  _write_archive_target = "${pkg.package_name}__write_archive"
   _write_manifest_target = "${pkg.package_name}__write_manifest"
 
   # Generates a manifest file based on the GN runtime deps
@@ -58,7 +57,7 @@
 
   # Packages an executable target and its dependencies into a Fuchsia archive
   # file (.far).
-  action(_write_archive_target) {
+  action(target_name) {
     forward_variables_from(invoker, [ "testonly" ])
 
     far_tool_path = "//third_party/fuchsia-sdk/tools/far"
@@ -83,11 +82,4 @@
       "--manifest=" + rebase_path(_manifest_file),
     ]
   }
-
-  group(target_name) {
-    forward_variables_from(invoker, [ "testonly" ])
-    deps = [
-      ":$_write_archive_target",
-    ]
-  }
 }
diff --git a/build/config/linux/pkg-config.py b/build/config/linux/pkg-config.py
index 5ef7322..a3339f8e 100755
--- a/build/config/linux/pkg-config.py
+++ b/build/config/linux/pkg-config.py
@@ -224,7 +224,8 @@
   # Output a GN array, the first one is the cflags, the second are the libs. The
   # JSON formatter prints GN compatible lists when everything is a list of
   # strings.
-  print json.dumps([includes, cflags, libs, lib_dirs, ldflags])
+  cflags += map(lambda dir: "-isystem" + dir, includes)
+  print json.dumps([cflags, libs, lib_dirs, ldflags])
   return 0
 
 
diff --git a/build/config/linux/pkg_config.gni b/build/config/linux/pkg_config.gni
index 7358f8e..8f95457e 100644
--- a/build/config/linux/pkg_config.gni
+++ b/build/config/linux/pkg_config.gni
@@ -101,13 +101,12 @@
     }
 
     pkgresult = exec_script(pkg_config_script, args, "value")
-    include_dirs = pkgresult[0]
-    cflags = pkgresult[1]
+    cflags = pkgresult[0]
 
     if (!defined(invoker.ignore_libs) || !invoker.ignore_libs) {
-      libs = pkgresult[2]
-      lib_dirs = pkgresult[3]
-      ldflags = pkgresult[4]
+      libs = pkgresult[1]
+      lib_dirs = pkgresult[2]
+      ldflags = pkgresult[3]
     }
 
     forward_variables_from(invoker,
diff --git a/build/fuchsia/runner_v2/boot_data.py b/build/fuchsia/runner_v2/boot_data.py
index aff7aba3..215cfbb9 100644
--- a/build/fuchsia/runner_v2/boot_data.py
+++ b/build/fuchsia/runner_v2/boot_data.py
@@ -29,6 +29,7 @@
 
 def _TargetCpuToSdkBinPath(target_arch):
   """Returns the path to the kernel & bootfs .bin files for |target_cpu|."""
+
   return os.path.join(common.SDK_ROOT, 'target', target_arch)
 
 
@@ -62,45 +63,69 @@
         _SSH_CONFIG_TEMPLATE.format(identity=id_key_path,
                                     known_hosts=known_hosts_path))
 
+  if os.path.exists(known_hosts_path):
+    os.remove(known_hosts_path)
+
   return (
       ssh_config_path,
-      (('data/ssh/ssh_host_ed25519_key', host_key_path),
-       ('data/ssh/ssh_host_ed25519_key.pub', host_pubkey_path),
-       ('data/ssh/authorized_keys', id_pubkey_path))
+      (('ssh/ssh_host_ed25519_key', host_key_path),
+       ('ssh/ssh_host_ed25519_key.pub', host_pubkey_path),
+       ('ssh/authorized_keys', id_pubkey_path))
   )
 
 
-def GetKernelPath(target_arch):
-  return os.path.join(_TargetCpuToSdkBinPath(target_arch), 'zircon.bin')
+def GetTargetFile(target_arch, filename):
+  """Computes a path to |filename| in the Fuchsia target directory specific to
+  |target_arch|."""
+
+  return os.path.join(_TargetCpuToSdkBinPath(target_arch), filename)
 
 
 def GetSSHConfigPath(output_dir):
   return output_dir + '/ssh_config'
 
 
-def CreateBootdata(output_dir, target_arch):
-  """Creates a bootdata image ready for SSH remote access.
+def ConfigureDataFVM(output_dir, sparse):
+  """Builds the FVM image for the persistent /data volume and prepopulates it
+  with SSH keys.
 
-  Returns a path to the bootdata.bin file."""
+  output_dir: Path to the output directory which will contain the FVM file.
+  sparse: If true, then a netboot-friendly sparse file will be generated.
 
-  base_boot_data = os.path.join(
-      _TargetCpuToSdkBinPath(target_arch), 'bootdata.bin')
-  ssh_config, ssh_data = _ProvisionSSH(output_dir)
-  ssh_manifest = tempfile.NamedTemporaryFile(delete=False)
-  for key, val in ssh_data:
-    ssh_manifest.write("%s=%s\n" % (key, val))
-  ssh_manifest.close()
-  mkbootfs_path = os.path.join(common.SDK_ROOT, 'tools', 'mkbootfs')
-  bootfs_path = output_dir + '/image.bootfs'
-  args = [mkbootfs_path, '-o', bootfs_path,
-          '--target=boot', base_boot_data,
-          '--target=system', ssh_manifest.name]
+  Returns the path to the new FVM file."""
 
-  logging.debug(' '.join(args))
-  subprocess.check_call(args)
-  os.remove(ssh_manifest.name)
+  logging.debug('Building persistent data FVM file.')
+  data_file = os.path.join(output_dir, 'data.minfs.bin')
+  try:
+    # Build up the minfs partition data and install keys into it.
+    ssh_config, ssh_data = _ProvisionSSH(output_dir)
+    manifest = tempfile.NamedTemporaryFile()
+    for dest, src in ssh_data:
+      manifest.write('%s=%s\n' % (dest, src))
+    manifest.flush()
+    minfs_path = os.path.join(common.SDK_ROOT, 'tools', 'minfs')
+    subprocess.check_call([minfs_path, '%s@10m' % data_file, 'create'])
+    subprocess.check_call([minfs_path, data_file, 'manifest', manifest.name])
 
-  return bootfs_path
+    # Wrap the minfs partition in a FVM container.
+    fvm_path = os.path.join(common.SDK_ROOT, 'tools', 'fvm')
+    fvm_output_path = os.path.join(output_dir, 'fvm.data.blk')
+    if os.path.exists(fvm_output_path):
+      os.remove(fvm_output_path)
+
+    if sparse:
+      cmd = [fvm_path, fvm_output_path, 'sparse', '--compress', 'lz4',
+             '--data', data_file]
+    else:
+      cmd = [fvm_path, fvm_output_path, 'create', '--data', data_file]
+
+    logging.debug(' '.join(cmd))
+
+    subprocess.check_call(cmd)
+    return fvm_output_path
+
+  finally:
+    os.remove(data_file)
 
 
 def GetNodeName(output_dir):
diff --git a/build/fuchsia/runner_v2/device_target.py b/build/fuchsia/runner_v2/device_target.py
index f6eb42f4..25b1116 100644
--- a/build/fuchsia/runner_v2/device_target.py
+++ b/build/fuchsia/runner_v2/device_target.py
@@ -66,12 +66,23 @@
 
       logging.info('Netbooting Fuchsia. ' +
                    'Please ensure that your device is in bootloader mode.')
-      boot_data_path = boot_data.CreateBootdata(
-          self._output_dir, self._GetTargetSdkArch())
       bootserver_path = os.path.join(common.SDK_ROOT, 'tools', 'bootserver')
-      bootserver_command = [bootserver_path, '-1',
-                            boot_data.GetKernelPath(self._GetTargetSdkArch()),
-                            boot_data_path, '--'] + \
+      data_fvm_path = boot_data.ConfigureDataFVM(self._output_dir, True)
+      bootserver_command = [bootserver_path,
+                            '-1',
+                            '--efi',
+                            boot_data.GetTargetFile(self._GetTargetSdkArch(),
+                                                    'local.esp.blk'),
+                            '--fvm',
+                            boot_data.GetTargetFile(self._GetTargetSdkArch(),
+                                                    'fvm.sparse.blk'),
+                            '--fvm',
+                            data_fvm_path,
+                            boot_data.GetTargetFile(self._GetTargetSdkArch(),
+                                                    'zircon.bin'),
+                            boot_data.GetTargetFile(self._GetTargetSdkArch(),
+                                                    'bootdata-blobstore.bin'),
+                            '--'] + \
                             boot_data.GetKernelArgs(self._output_dir)
       logging.debug(' '.join(bootserver_command))
       subprocess.check_call(bootserver_command)
diff --git a/build/fuchsia/runner_v2/qemu_target.py b/build/fuchsia/runner_v2/qemu_target.py
index 38a65ec..1a12f687 100644
--- a/build/fuchsia/runner_v2/qemu_target.py
+++ b/build/fuchsia/runner_v2/qemu_target.py
@@ -51,8 +51,6 @@
       self.Shutdown()
 
   def Start(self):
-    boot_data_path = boot_data.CreateBootdata(
-        self._output_dir, self._GetTargetSdkArch())
     qemu_path = os.path.join(
         common.SDK_ROOT, 'qemu', 'bin',
         'qemu-system-' + self._GetTargetSdkArch())
@@ -61,10 +59,23 @@
     qemu_command = [qemu_path,
         '-m', str(self._ram_size_mb),
         '-nographic',
-        '-kernel', boot_data.GetKernelPath(self._GetTargetSdkArch()),
-        '-initrd', boot_data_path,
+        '-kernel', boot_data.GetTargetFile(self._GetTargetSdkArch(),
+                                           'zircon.bin'),
+        '-initrd', boot_data.GetTargetFile(self._GetTargetSdkArch(),
+                                           'bootdata-blobstore.bin'),
         '-smp', '4',
 
+        # Attach the blobstore and data volumes.
+        '-drive', 'file=%s,format=qcow2,if=none,id=data' %
+            self._MakeQcowDisk(
+                boot_data.GetTargetFile(self._GetTargetSdkArch(),
+                                        'fvm.blk')),
+        '-drive', 'file=%s,format=qcow2,if=none,id=blobstore' %
+            self._MakeQcowDisk(boot_data.ConfigureDataFVM(self._output_dir,
+                                                          False)),
+        '-device', 'virtio-blk-pci,drive=data',
+        '-device', 'virtio-blk-pci,drive=blobstore',
+
         # Use stdio for the guest OS only; don't attach the QEMU interactive
         # monitor.
         '-serial', 'stdio',
@@ -132,3 +143,14 @@
 
   def _GetSshConfigPath(self):
     return boot_data.GetSSHConfigPath(self._output_dir)
+
+  def _MakeQcowDisk(self, disk_path):
+    """Creates a QEMU copy-on-write version of |disk_path| in the output
+    directory."""
+
+    qimg_path = os.path.join(common.SDK_ROOT, 'qemu', 'bin', 'qemu-img')
+    output_path = os.path.join(self._output_dir,
+                               os.path.basename(disk_path) + '.qcow2')
+    subprocess.check_call([qimg_path, 'create', '-q', '-f', 'qcow2',
+                           '-b', disk_path, output_path])
+    return output_path
diff --git a/build/fuchsia/runner_v2/target.py b/build/fuchsia/runner_v2/target.py
index e1deb22..31f98b4 100644
--- a/build/fuchsia/runner_v2/target.py
+++ b/build/fuchsia/runner_v2/target.py
@@ -143,7 +143,7 @@
         return True
       time.sleep(_ATTACH_RETRY_INTERVAL)
     sys.stderr.write(' timeout limit reached.\n')
-    raise FuchsiaTargetException('Couldn\'t connect to QEMU using SSH.')
+    raise FuchsiaTargetException('Couldn\'t connect using SSH.')
 
   def _GetSshConfigPath(self, path):
     raise NotImplementedError
diff --git a/build/toolchain/win/BUILD.gn b/build/toolchain/win/BUILD.gn
index e0f6fdf..53f767a0 100644
--- a/build/toolchain/win/BUILD.gn
+++ b/build/toolchain/win/BUILD.gn
@@ -314,16 +314,6 @@
         command = "$shellprefix $python_path $tool_wrapper_path delete-file $pdbname && $command"
       }
 
-      if (linkrepro_root_dir != "") {
-        # Create the directory that will receive the link repro for this target
-        # if needed. Note that this will create one directory per link target
-        # even if this target doesn't generate a link repro. This is necessary
-        # because the linker doesn't generate the directory specified to the
-        # /LINKREPRO flag if it doesn't exist.
-        linkrepro_dir = "$linkrepro_root_dir\\{{target_output_name}}"
-        command = "$shellprefix mkdir $linkrepro_dir && $command"
-      }
-
       default_output_extension = ".exe"
       default_output_dir = "{{root_out_dir}}"
       description = "LINK {{output}}"
diff --git a/cc/tiles/gpu_image_decode_cache.cc b/cc/tiles/gpu_image_decode_cache.cc
index 97b242c..fda7a4dfc 100644
--- a/cc/tiles/gpu_image_decode_cache.cc
+++ b/cc/tiles/gpu_image_decode_cache.cc
@@ -1514,17 +1514,10 @@
   }
 
   size_t data_size = image_info.computeMinByteSize();
-  // |is_bitmap_backed| specifies whether the image has pixel data which can
-  // directly be used for the upload. This will be the case for non-lazy images
-  // used at the original scale. In these cases, we don't internally cache any
-  // cpu component for the image.
-  // However, if the image will be scaled, we consider it a lazy image and cache
-  // the scaled result in discardable memory.
-  const bool is_bitmap_backed =
-      !draw_image.paint_image().IsLazyGenerated() && mip_level == 0;
-  return base::WrapRefCounted(new ImageData(
-      mode, data_size, draw_image.target_color_space(),
-      CalculateDesiredFilterQuality(draw_image), mip_level, is_bitmap_backed));
+  return base::WrapRefCounted(
+      new ImageData(mode, data_size, draw_image.target_color_space(),
+                    CalculateDesiredFilterQuality(draw_image), mip_level,
+                    !draw_image.paint_image().IsLazyGenerated()));
 }
 
 void GpuImageDecodeCache::DeleteImage(ImageData* image_data) {
diff --git a/cc/tiles/gpu_image_decode_cache_unittest.cc b/cc/tiles/gpu_image_decode_cache_unittest.cc
index 52395c49..d0046c72 100644
--- a/cc/tiles/gpu_image_decode_cache_unittest.cc
+++ b/cc/tiles/gpu_image_decode_cache_unittest.cc
@@ -2210,7 +2210,7 @@
   cache->UnrefImage(draw_image);
 }
 
-TEST_P(GpuImageDecodeCacheTest, NonLazyImageUploadNoScale) {
+TEST_P(GpuImageDecodeCacheTest, NonLazyImageUpload) {
   auto cache = CreateCache();
   bool is_decomposable = true;
   SkFilterQuality quality = kHigh_SkFilterQuality;
@@ -2226,33 +2226,6 @@
   EXPECT_TRUE(decoded_draw_image.image());
   EXPECT_TRUE(decoded_draw_image.is_budgeted());
   cache->DrawWithImageFinished(draw_image, decoded_draw_image);
-  // For non-lazy images used at the original scale, no cpu component should be
-  // cached
-  EXPECT_FALSE(cache->GetSWImageDecodeForTesting(draw_image));
-}
-
-TEST_P(GpuImageDecodeCacheTest, NonLazyImageUploadDownscaled) {
-  auto cache = CreateCache();
-  bool is_decomposable = true;
-  SkFilterQuality quality = kHigh_SkFilterQuality;
-
-  PaintImage image = CreateBitmapImage(gfx::Size(10, 10));
-  DrawImage draw_image(image, SkIRect::MakeWH(image.width(), image.height()),
-                       quality,
-                       CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable),
-                       PaintImage::kDefaultFrameIndex, DefaultColorSpace());
-  viz::ContextProvider::ScopedContextLock context_lock(context_provider());
-  DecodedDrawImage decoded_draw_image =
-      EnsureImageBacked(cache->GetDecodedImageForDraw(draw_image));
-  EXPECT_TRUE(decoded_draw_image.image());
-  EXPECT_TRUE(decoded_draw_image.is_budgeted());
-  cache->DrawWithImageFinished(draw_image, decoded_draw_image);
-  // For non-lazy images which are downscaled, the scaled image should be
-  // cached.
-  auto sw_image = cache->GetSWImageDecodeForTesting(draw_image);
-  EXPECT_TRUE(sw_image);
-  EXPECT_EQ(sw_image->width(), 5);
-  EXPECT_EQ(sw_image->height(), 5);
 }
 
 INSTANTIATE_TEST_CASE_P(
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
index 4dad904f..d9f719a 100644
--- a/chrome/android/BUILD.gn
+++ b/chrome/android/BUILD.gn
@@ -16,6 +16,7 @@
 import("//third_party/icu/config.gni")
 import("//third_party/protobuf/proto_library.gni")
 import("//tools/resources/generate_resource_whitelist.gni")
+import("//tools/v8_context_snapshot/v8_context_snapshot.gni")
 import("channel.gni")
 import("java_sources.gni")
 import("static_initializers.gni")
@@ -695,8 +696,12 @@
   deps = [
     "//chrome/android/webapk/libs/runtime_library:runtime_library_assets",
     "//third_party/icu:icu_assets",
-    "//v8:v8_external_startup_data_assets",
   ]
+  if (use_v8_context_snapshot) {
+    deps += [ "//tools/v8_context_snapshot:v8_context_snapshot_assets" ]
+  } else {
+    deps += [ "//v8:v8_external_startup_data_assets" ]
+  }
 }
 
 android_assets("chrome_public_pak_assets") {
diff --git a/chrome/android/java/res/color/app_menu_button_tint.xml b/chrome/android/java/res/color/app_menu_button_tint.xml
deleted file mode 100644
index 49255ac..0000000
--- a/chrome/android/java/res/color/app_menu_button_tint.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright 2017 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.
--->
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:state_enabled="false" android:color="@color/google_grey_300" />
-    <item android:color="@color/light_normal_color"/>
-</selector>
diff --git a/chrome/android/java/res/layout/icon_row_menu_footer.xml b/chrome/android/java/res/layout/icon_row_menu_footer.xml
deleted file mode 100644
index 92db4c2..0000000
--- a/chrome/android/java/res/layout/icon_row_menu_footer.xml
+++ /dev/null
@@ -1,58 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright 2017 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.
--->
-<org.chromium.chrome.browser.appmenu.AppMenuIconRowFooter
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:chrome="http://schemas.android.com/apk/res-auto"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:orientation="vertical" >
-
-    <View style="@style/Divider" />
-
-    <!-- TODO(twellington): find a way to merge this with icon_row_menu_item.xml -->
-    <LinearLayout
-        android:layout_width="match_parent"
-        android:layout_height="?android:attr/listPreferredItemHeightSmall"
-        android:orientation="horizontal"
-        android:id="@+id/menu_items" >
-
-        <org.chromium.chrome.browser.widget.TintedImageButton
-            android:id="@+id/forward_menu_id"
-            style="@style/OverflowMenuButton"
-            android:src="@drawable/btn_forward"
-            android:contentDescription="@string/accessibility_menu_forward"
-            chrome:chrometint="@color/app_menu_button_tint" />
-
-        <org.chromium.chrome.browser.widget.TintedImageButton
-            android:id="@+id/bookmark_this_page_id"
-            style="@style/OverflowMenuButton"
-            android:src="@drawable/btn_star"
-            android:contentDescription="@string/accessibility_menu_bookmark"
-            chrome:chrometint="@color/app_menu_button_tint" />
-
-        <org.chromium.chrome.browser.widget.TintedImageButton
-            android:id="@+id/offline_page_id"
-            style="@style/OverflowMenuButton"
-            android:src="@drawable/ic_file_download_white_24dp"
-            android:contentDescription="@string/download_page"
-            chrome:chrometint="@color/app_menu_button_tint" />
-
-        <org.chromium.chrome.browser.widget.TintedImageButton
-            android:id="@+id/info_menu_id"
-            style="@style/OverflowMenuButton"
-            android:src="@drawable/btn_info"
-            android:contentDescription="@string/accessibility_menu_info"
-            chrome:chrometint="@color/app_menu_button_tint" />
-
-        <org.chromium.chrome.browser.widget.TintedImageButton
-            android:id="@+id/reload_menu_id"
-            style="@style/OverflowMenuButton"
-            android:src="@drawable/btn_reload_stop"
-            android:contentDescription="@string/accessibility_btn_refresh"
-            chrome:chrometint="@color/app_menu_button_tint" />
-    </LinearLayout>
-</org.chromium.chrome.browser.appmenu.AppMenuIconRowFooter>
\ No newline at end of file
diff --git a/chrome/android/java/res/layout/offline_download_header.xml b/chrome/android/java/res/layout/offline_download_header.xml
index 1c090578..bfdeb4e5 100644
--- a/chrome/android/java/res/layout/offline_download_header.xml
+++ b/chrome/android/java/res/layout/offline_download_header.xml
@@ -37,10 +37,12 @@
                     android:layout_weight="1"
                     android:text="@string/download_manager_offline_header_title" />
 
+                <!-- TODO(shaktisahu) : Add it back on when UX is determined. -->
                 <TextView
                     android:id="@+id/new_badge"
                     style="@style/DownloadNewBadgeStyle"
-                    android:layout_weight="0" />
+                    android:layout_weight="0"
+                    android:visibility="gone" />
 
                 <ImageView
                     android:id="@+id/expand_icon"
diff --git a/chrome/android/java/res_vr/OWNERS b/chrome/android/java/res_vr/OWNERS
index 65d6873..460c9e34 100644
--- a/chrome/android/java/res_vr/OWNERS
+++ b/chrome/android/java/res_vr/OWNERS
@@ -1,4 +1,3 @@
-set noparent
-file://chrome/android/java/res/OWNERS
-# COMPONENT: UI>Browser>Mobile
+file://chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VR_JAVA_OWNERS
+# COMPONENT: UI>Browser>VR
 # OS: Android
diff --git a/chrome/android/java/res_vr/drawable-nodpi/daydream_icon_background.dd.png b/chrome/android/java/res_vr/drawable-nodpi/daydream_icon_background.dd.png
index 74cd6ed..b1aa33c 100644
--- a/chrome/android/java/res_vr/drawable-nodpi/daydream_icon_background.dd.png
+++ b/chrome/android/java/res_vr/drawable-nodpi/daydream_icon_background.dd.png
Binary files differ
diff --git a/chrome/android/java/res_vr/drawable-nodpi/daydream_icon_foreground.dd.png b/chrome/android/java/res_vr/drawable-nodpi/daydream_icon_foreground.dd.png
index de5b721..c5f6889 100644
--- a/chrome/android/java/res_vr/drawable-nodpi/daydream_icon_foreground.dd.png
+++ b/chrome/android/java/res_vr/drawable-nodpi/daydream_icon_foreground.dd.png
Binary files differ
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
index f1647644..791c7dca 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
@@ -1618,9 +1618,8 @@
             private ChromeHomeIphMenuHeader mChromeHomeIphMenuHeader;
 
             private boolean showDataSaverFooter() {
-                return getBottomSheet() == null
-                        && DataReductionProxySettings.getInstance()
-                                   .shouldUseDataReductionMainMenuItem();
+                return DataReductionProxySettings.getInstance()
+                        .shouldUseDataReductionMainMenuItem();
             }
 
             @Override
@@ -1635,11 +1634,6 @@
 
             @Override
             public int getFooterResourceId() {
-                if (getBottomSheet() != null
-                        && getAppMenuPropertiesDelegate().shouldShowPageMenu()) {
-                    return R.layout.icon_row_menu_footer;
-                }
-
                 return showDataSaverFooter() ? R.layout.data_reduction_main_menu_item : 0;
             }
 
@@ -1649,15 +1643,6 @@
                 if (getBottomSheet() == null) return null;
 
                 boolean isPageMenu = getAppMenuPropertiesDelegate().shouldShowPageMenu();
-                LayoutInflater inflater = LayoutInflater.from(ChromeTabbedActivity.this);
-
-                Tracker tracker = TrackerFactory.getTrackerForProfile(Profile.getLastUsedProfile());
-                if (!tracker.wouldTriggerHelpUI(FeatureConstants.CHROME_HOME_MENU_HEADER_FEATURE)) {
-                    return DataReductionProxySettings.getInstance()
-                                    .shouldUseDataReductionMainMenuItem()
-                            ? inflater.inflate(R.layout.data_reduction_main_menu_item, null)
-                            : null;
-                }
 
                 // Return early if the conditions aren't right to show the Chrome Home IPH menu
                 // header.
@@ -1667,6 +1652,9 @@
                     return null;
                 }
 
+                LayoutInflater inflater = LayoutInflater.from(ChromeTabbedActivity.this);
+                Tracker tracker = TrackerFactory.getTrackerForProfile(Profile.getLastUsedProfile());
+
                 // Show the Chrome Home menu header if the Tracker allows it.
                 if (tracker.shouldTriggerHelpUI(FeatureConstants.CHROME_HOME_MENU_HEADER_FEATURE)) {
                     mChromeHomeIphMenuHeader = (ChromeHomeIphMenuHeader) inflater.inflate(
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuHandler.java
index 29b9739c..0f5ea549 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuHandler.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuHandler.java
@@ -172,7 +172,6 @@
         mAppMenu.show(wrapper, anchorView, isByPermanentButton, rotation, appRect, pt.y,
                 footerResourceId, headerView, mHighlightMenuId);
         mAppMenuDragHelper.onShow(startDragging);
-        mDelegate.onShow(mAppMenu);
         setMenuHighlight(null);
         RecordUserAction.record("MobileMenuShow");
         return true;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuIconRowFooter.java b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuIconRowFooter.java
deleted file mode 100644
index 7489e4e2..0000000
--- a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuIconRowFooter.java
+++ /dev/null
@@ -1,164 +0,0 @@
-// Copyright 2017 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.appmenu;
-
-import android.content.Context;
-import android.content.res.Resources;
-import android.util.AttributeSet;
-import android.view.View;
-import android.widget.LinearLayout;
-
-import org.chromium.base.ApiCompatibilityUtils;
-import org.chromium.chrome.R;
-import org.chromium.chrome.browser.ChromeActivity;
-import org.chromium.chrome.browser.bookmarks.BookmarkBridge;
-import org.chromium.chrome.browser.download.DownloadUtils;
-import org.chromium.chrome.browser.tab.Tab;
-import org.chromium.chrome.browser.util.AccessibilityUtil;
-import org.chromium.chrome.browser.widget.TintedImageButton;
-
-/**
- * A {@link LinearLayout} that displays a horizontal row of icons for page actions.
- */
-public class AppMenuIconRowFooter
-        extends LinearLayout implements View.OnClickListener, View.OnLongClickListener {
-    private ChromeActivity mActivity;
-    private AppMenu mAppMenu;
-
-    private TintedImageButton mForwardButton;
-    private TintedImageButton mBookmarkButton;
-    private TintedImageButton mDownloadButton;
-    private TintedImageButton mPageInfoButton;
-    private TintedImageButton mReloadButton;
-
-    public AppMenuIconRowFooter(Context context, AttributeSet attrs) {
-        super(context, attrs);
-    }
-
-    @Override
-    protected void onFinishInflate() {
-        super.onFinishInflate();
-        mForwardButton = (TintedImageButton) findViewById(R.id.forward_menu_id);
-        mForwardButton.setOnClickListener(this);
-        mForwardButton.setOnLongClickListener(this);
-
-        mBookmarkButton = (TintedImageButton) findViewById(R.id.bookmark_this_page_id);
-        mBookmarkButton.setOnClickListener(this);
-        mBookmarkButton.setOnLongClickListener(this);
-
-        mDownloadButton = (TintedImageButton) findViewById(R.id.offline_page_id);
-        mDownloadButton.setOnClickListener(this);
-        mDownloadButton.setOnLongClickListener(this);
-
-        mPageInfoButton = (TintedImageButton) findViewById(R.id.info_menu_id);
-        mPageInfoButton.setOnClickListener(this);
-        mPageInfoButton.setOnLongClickListener(this);
-
-        mReloadButton = (TintedImageButton) findViewById(R.id.reload_menu_id);
-        mReloadButton.setOnClickListener(this);
-        mReloadButton.setOnLongClickListener(this);
-    }
-
-    /**
-     * Initializes the icons, setting enabled state, drawables, and content descriptions.
-     * @param activity The {@link ChromeActivity} displaying the menu.
-     * @param appMenu The {@link AppMenu} that contains the icon row.
-     * @param bookmarkBridge The {@link BookmarkBridge} used to retrieve information about
-     *                       bookmarks.
-     */
-    public void initialize(
-            ChromeActivity activity, AppMenu appMenu, BookmarkBridge bookmarkBridge) {
-        mActivity = activity;
-        mAppMenu = appMenu;
-        Tab currentTab = mActivity.getActivityTab();
-
-        mForwardButton.setEnabled(currentTab.canGoForward());
-
-        updateBookmarkMenuItem(bookmarkBridge, currentTab);
-
-        mDownloadButton.setEnabled(DownloadUtils.isAllowedToDownloadPage(currentTab));
-
-        mReloadButton.setImageResource(R.drawable.btn_reload_stop);
-        loadingStateChanged(currentTab.isLoading());
-    }
-
-    @Override
-    public void onClick(View v) {
-        mActivity.onMenuOrKeyboardAction(v.getId(), true);
-        mAppMenu.dismiss();
-    }
-
-    @Override
-    public boolean onLongClick(View v) {
-        String description = null;
-        Context context = getContext();
-        Resources resources = context.getResources();
-        final int itemId = v.getId();
-
-        if (itemId == R.id.forward_menu_id) {
-            description = resources.getString(R.string.menu_forward);
-        } else if (itemId == R.id.bookmark_this_page_id) {
-            description = resources.getString(R.string.menu_bookmark);
-        } else if (itemId == R.id.offline_page_id) {
-            description = resources.getString(R.string.menu_download);
-        } else if (itemId == R.id.info_menu_id) {
-            description = resources.getString(R.string.menu_page_info);
-        } else if (itemId == R.id.reload_menu_id) {
-            description = (mReloadButton.getDrawable().getLevel()
-                                  == resources.getInteger(R.integer.reload_button_level_reload))
-                    ? resources.getString(R.string.menu_refresh)
-                    : resources.getString(R.string.menu_stop_refresh);
-        }
-        return AccessibilityUtil.showAccessibilityToast(context, v, description);
-    }
-
-    /**
-     * Called when the current tab's load state  has changed.
-     * @param isLoading Whether the tab is currently loading.
-     */
-    public void loadingStateChanged(boolean isLoading) {
-        mReloadButton.getDrawable().setLevel(isLoading
-                        ? getResources().getInteger(R.integer.reload_button_level_stop)
-                        : getResources().getInteger(R.integer.reload_button_level_reload));
-        mReloadButton.setContentDescription(isLoading
-                        ? mActivity.getString(R.string.accessibility_btn_stop_loading)
-                        : mActivity.getString(R.string.accessibility_btn_refresh));
-    }
-
-    private void updateBookmarkMenuItem(BookmarkBridge bookmarkBridge, Tab currentTab) {
-        mBookmarkButton.setEnabled(bookmarkBridge.isEditBookmarksEnabled());
-
-        if (currentTab.getBookmarkId() != Tab.INVALID_BOOKMARK_ID) {
-            mBookmarkButton.setImageResource(R.drawable.btn_star_filled);
-            mBookmarkButton.setContentDescription(mActivity.getString(R.string.edit_bookmark));
-            mBookmarkButton.setTint(ApiCompatibilityUtils.getColorStateList(
-                    getResources(), R.color.blue_mode_tint));
-        } else {
-            mBookmarkButton.setImageResource(R.drawable.btn_star);
-            mBookmarkButton.setContentDescription(
-                    mActivity.getString(R.string.accessibility_menu_bookmark));
-        }
-    }
-
-    TintedImageButton getForwardButtonForTests() {
-        return mForwardButton;
-    }
-
-    TintedImageButton getBookmarkButtonForTests() {
-        return mBookmarkButton;
-    }
-
-    TintedImageButton getDownloadButtonForTests() {
-        return mDownloadButton;
-    }
-
-    TintedImageButton getPageInfoButtonForTests() {
-        return mPageInfoButton;
-    }
-
-    TintedImageButton getReloadButtonForTests() {
-        return mReloadButton;
-    }
-}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegate.java
index 83a9040..a936e1cb 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegate.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegate.java
@@ -73,9 +73,6 @@
 
     protected BookmarkBridge mBookmarkBridge;
 
-    @Nullable
-    private AppMenuIconRowFooter mAppMenuIconRowFooter;
-
     public AppMenuPropertiesDelegate(ChromeActivity activity) {
         mActivity = activity;
     }
@@ -260,21 +257,6 @@
     }
 
     /**
-     * Called after the menu has been shown to finish initializing views.
-     * @param menu The {@link AppMenu} that was shown.
-     */
-    public void onShow(final AppMenu menu) {
-        View footerView = menu.getFooterView();
-        if (!(footerView instanceof AppMenuIconRowFooter)) {
-            mAppMenuIconRowFooter = null;
-            return;
-        }
-
-        mAppMenuIconRowFooter = (AppMenuIconRowFooter) footerView;
-        mAppMenuIconRowFooter.initialize(mActivity, menu, mBookmarkBridge);
-    }
-
-    /**
      * Sets the visibility and labels of the "Add to Home screen" and "Open WebAPK" menu items.
      */
     protected void prepareAddToHomescreenMenuItem(
@@ -326,8 +308,6 @@
                             : resources.getInteger(R.integer.reload_button_level_reload));
             mReloadMenuItem.setTitle(isLoading
                     ? R.string.accessibility_btn_stop_loading : R.string.accessibility_btn_refresh);
-        } else if (mAppMenuIconRowFooter != null) {
-            mAppMenuIconRowFooter.loadingStateChanged(isLoading);
         }
     }
 
@@ -336,7 +316,6 @@
      */
     public void onMenuDismissed() {
         mReloadMenuItem = null;
-        mAppMenuIconRowFooter = null;
     }
 
     // Set enabled to be |enable| for all MenuItems with |id| in |menu|.
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabObserver.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabObserver.java
index 9fb680f..e04f3a87 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabObserver.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabObserver.java
@@ -224,7 +224,7 @@
         if (tab.getWebContents() == null) return;
 
         tab.getWebContents().getContentBitmapAsync(
-                mContentBitmapWidth, mContentBitmapHeight, (Bitmap bitmap, int response) -> {
+                mContentBitmapWidth, mContentBitmapHeight, (Bitmap bitmap) -> {
                     if (TextUtils.isEmpty(tab.getTitle()) && bitmap == null) return;
                     mCustomTabsConnection.sendNavigationInfo(
                             mSession, tab.getUrl(), tab.getTitle(), bitmap);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadActivity.java
index 80fc5e50..00e8cbb9 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadActivity.java
@@ -10,6 +10,7 @@
 import org.chromium.base.VisibleForTesting;
 import org.chromium.chrome.browser.IntentHandler;
 import org.chromium.chrome.browser.SnackbarActivity;
+import org.chromium.chrome.browser.UrlConstants;
 import org.chromium.chrome.browser.download.items.OfflineContentAggregatorNotificationBridgeUiFactory;
 import org.chromium.chrome.browser.download.ui.DownloadFilter;
 import org.chromium.chrome.browser.download.ui.DownloadManagerUi;
@@ -48,8 +49,7 @@
         // Loads offline pages and prefetch downloads.
         OfflineContentAggregatorNotificationBridgeUiFactory.instance();
         boolean isOffTheRecord = DownloadUtils.shouldShowOffTheRecordDownloads(getIntent());
-        String downloadHomeUrl =
-                IntentUtils.safeGetStringExtra(getIntent(), DownloadUtils.EXTRA_DOWNLOAD_HOME_URL);
+        boolean showPrefetchContent = DownloadUtils.shouldShowPrefetchContent(getIntent());
         ComponentName parentComponent = IntentUtils.safeGetParcelableExtra(
                 getIntent(), IntentHandler.EXTRA_PARENT_COMPONENT);
         mDownloadManagerUi = new DownloadManagerUi(
@@ -57,7 +57,9 @@
         setContentView(mDownloadManagerUi.getView());
         mIsOffTheRecord = isOffTheRecord;
         mDownloadManagerUi.addObserver(mUiObserver);
-        mDownloadManagerUi.updateForUrl(downloadHomeUrl);
+        // Call updateForUrl() to align with how DownloadPage interacts with DownloadManagerUi.
+        mDownloadManagerUi.updateForUrl(UrlConstants.DOWNLOADS_URL);
+        if (showPrefetchContent) mDownloadManagerUi.expandPrefetchSection();
     }
 
     @Override
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadBroadcastManager.java b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadBroadcastManager.java
index a4fe29014..bf76db6 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadBroadcastManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadBroadcastManager.java
@@ -12,6 +12,7 @@
 import static org.chromium.chrome.browser.download.DownloadNotificationService2.ACTION_DOWNLOAD_RESUME;
 import static org.chromium.chrome.browser.download.DownloadNotificationService2.EXTRA_DOWNLOAD_CONTENTID_ID;
 import static org.chromium.chrome.browser.download.DownloadNotificationService2.EXTRA_DOWNLOAD_CONTENTID_NAMESPACE;
+import static org.chromium.chrome.browser.download.DownloadNotificationService2.EXTRA_DOWNLOAD_STATE_AT_CANCEL;
 import static org.chromium.chrome.browser.download.DownloadNotificationService2.EXTRA_IS_OFF_THE_RECORD;
 import static org.chromium.chrome.browser.download.DownloadNotificationService2.clearResumptionAttemptLeft;
 
@@ -224,6 +225,9 @@
         // Handle all remaining actions.
         switch (action) {
             case ACTION_DOWNLOAD_CANCEL:
+                DownloadNotificationUmaHelper.recordStateAtCancelHistogram(
+                        LegacyHelpers.isLegacyDownload(id),
+                        intent.getIntExtra(EXTRA_DOWNLOAD_STATE_AT_CANCEL, -1));
                 downloadServiceDelegate.cancelDownload(id, isOffTheRecord);
                 break;
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadManagerService.java b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadManagerService.java
index d6d51c1..8484f68a 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadManagerService.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadManagerService.java
@@ -1419,16 +1419,43 @@
             Intent intent = DownloadNotificationService.buildActionIntent(mContext, action,
                     LegacyHelpers.buildLegacyContentId(false, downloadItem.getId()),
                     downloadItem.getDownloadInfo().isOffTheRecord());
+            addCancelExtra(intent, downloadItem);
             mContext.sendBroadcast(intent);
         } else {
             Intent intent = DownloadNotificationFactory.buildActionIntent(mContext, action,
                     LegacyHelpers.buildLegacyContentId(false, downloadItem.getId()),
                     downloadItem.getDownloadInfo().isOffTheRecord());
+            addCancelExtra(intent, downloadItem);
             mContext.startService(intent);
         }
     }
 
     /**
+     * Add an Intent extra for StateAtCancel UMA to know the state of a request prior to a
+     * user-initated cancel.
+     * @param intent The Intent associated with the download action.
+     * @param downloadItem The download associated with download action.
+     */
+    private void addCancelExtra(Intent intent, DownloadItem downloadItem) {
+        if (intent.getAction().equals(DownloadNotificationService2.ACTION_DOWNLOAD_CANCEL)) {
+            int state;
+            if (DownloadUtils.isDownloadPaused(downloadItem)) {
+                state = DownloadNotificationUmaHelper.StateAtCancel.PAUSED;
+            } else if (DownloadUtils.isDownloadPending(downloadItem)) {
+                if (downloadItem.getDownloadInfo().getPendingState()
+                        == PendingState.PENDING_NETWORK) {
+                    state = DownloadNotificationUmaHelper.StateAtCancel.PENDING_NETWORK;
+                } else {
+                    state = DownloadNotificationUmaHelper.StateAtCancel.PENDING_ANOTHER_DOWNLOAD;
+                }
+            } else {
+                state = DownloadNotificationUmaHelper.StateAtCancel.DOWNLOADING;
+            }
+            intent.putExtra(DownloadNotificationService2.EXTRA_DOWNLOAD_STATE_AT_CANCEL, state);
+        }
+    }
+
+    /**
      * Checks if the files associated with any downloads have been removed by an external action.
      * @param isOffTheRecord Whether or not to check downloads for the off the record profile.
      */
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadNotificationFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadNotificationFactory.java
index 28ac7b6..b1c3082 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadNotificationFactory.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadNotificationFactory.java
@@ -14,6 +14,7 @@
 import static org.chromium.chrome.browser.download.DownloadNotificationService2.EXTRA_DOWNLOAD_CONTENTID_ID;
 import static org.chromium.chrome.browser.download.DownloadNotificationService2.EXTRA_DOWNLOAD_CONTENTID_NAMESPACE;
 import static org.chromium.chrome.browser.download.DownloadNotificationService2.EXTRA_DOWNLOAD_FILE_PATH;
+import static org.chromium.chrome.browser.download.DownloadNotificationService2.EXTRA_DOWNLOAD_STATE_AT_CANCEL;
 import static org.chromium.chrome.browser.download.DownloadNotificationService2.EXTRA_IS_OFF_THE_RECORD;
 import static org.chromium.chrome.browser.download.DownloadNotificationService2.EXTRA_IS_SUPPORTED_MIME_TYPE;
 import static org.chromium.chrome.browser.download.DownloadNotificationService2.EXTRA_NOTIFICATION_BUNDLE_ICON_ID;
@@ -36,6 +37,7 @@
 import org.chromium.chrome.browser.notifications.channels.ChannelDefinitions;
 import org.chromium.components.offline_items_collection.ContentId;
 import org.chromium.components.offline_items_collection.LegacyHelpers;
+import org.chromium.components.offline_items_collection.PendingState;
 
 /**
  * Creates and updates notifications related to downloads.
@@ -102,6 +104,21 @@
                         downloadUpdate.getContentId(), downloadUpdate.getIsOffTheRecord());
                 Intent cancelIntent = buildActionIntent(context, ACTION_DOWNLOAD_CANCEL,
                         downloadUpdate.getContentId(), downloadUpdate.getIsOffTheRecord());
+                switch (downloadUpdate.getPendingState()) {
+                    case PendingState.NOT_PENDING:
+                        cancelIntent.putExtra(EXTRA_DOWNLOAD_STATE_AT_CANCEL,
+                                DownloadNotificationUmaHelper.StateAtCancel.DOWNLOADING);
+                        break;
+                    case PendingState.PENDING_NETWORK:
+                        cancelIntent.putExtra(EXTRA_DOWNLOAD_STATE_AT_CANCEL,
+                                DownloadNotificationUmaHelper.StateAtCancel.PENDING_NETWORK);
+                        break;
+                    case PendingState.PENDING_ANOTHER_DOWNLOAD:
+                        cancelIntent.putExtra(EXTRA_DOWNLOAD_STATE_AT_CANCEL,
+                                DownloadNotificationUmaHelper.StateAtCancel
+                                        .PENDING_ANOTHER_DOWNLOAD);
+                        break;
+                }
 
                 builder.setOngoing(true)
                         .setPriority(Notification.PRIORITY_HIGH)
@@ -152,6 +169,8 @@
                         downloadUpdate.getContentId(), downloadUpdate.getIsOffTheRecord());
                 cancelIntent = buildActionIntent(context, ACTION_DOWNLOAD_CANCEL,
                         downloadUpdate.getContentId(), downloadUpdate.getIsOffTheRecord());
+                cancelIntent.putExtra(EXTRA_DOWNLOAD_STATE_AT_CANCEL,
+                        DownloadNotificationUmaHelper.StateAtCancel.PAUSED);
 
                 builder.setAutoCancel(false)
                         .setLargeIcon(downloadUpdate.getIcon())
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadNotificationService2.java b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadNotificationService2.java
index f067761..49f6d1a 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadNotificationService2.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadNotificationService2.java
@@ -55,6 +55,9 @@
     static final String EXTRA_IS_SUPPORTED_MIME_TYPE = "IsSupportedMimeType";
     static final String EXTRA_IS_OFF_THE_RECORD =
             "org.chromium.chrome.browser.download.IS_OFF_THE_RECORD";
+    // Used to propagate request state information for OfflineItems.StateAtCancel UMA.
+    static final String EXTRA_DOWNLOAD_STATE_AT_CANCEL =
+            "org.chromium.chrome.browser.download.OfflineItemsStateAtCancel";
 
     public static final String ACTION_DOWNLOAD_CANCEL =
             "org.chromium.chrome.browser.download.DOWNLOAD_CANCEL";
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadNotificationUmaHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadNotificationUmaHelper.java
index 5636a54..56bf200 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadNotificationUmaHelper.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadNotificationUmaHelper.java
@@ -21,6 +21,16 @@
  * Helper to track necessary stats in UMA related to downloads notifications.
  */
 public final class DownloadNotificationUmaHelper {
+    // The state of a download or offline page request at user-initiated cancel.
+    // Keep in sync with enum OfflineItemsStateAtCancel in enums.xml.
+    static class StateAtCancel {
+        static final int DOWNLOADING = 0;
+        static final int PAUSED = 1;
+        static final int PENDING_NETWORK = 2;
+        static final int PENDING_ANOTHER_DOWNLOAD = 3;
+        static final int MAX = 4;
+    }
+
     // NOTE: Keep these lists/classes in sync with DownloadNotification[...] in enums.xml.
     static class ForegroundLifecycle {
         static final int START = 0; // Initial startForeground.
@@ -119,4 +129,21 @@
         RecordHistogram.recordEnumeratedHistogram(
                 "Android.DownloadManager.NotificationLaunch", launchType, LaunchType.MAX);
     }
+
+    /**
+     * Records the state of a request at user-initiated cancel.
+     * @param isDownload True if the request is a download, false if it is an offline page.
+     * @param state State of a request when cancelled (e.g. downloading, paused).
+     */
+    static void recordStateAtCancelHistogram(boolean isDownload, int state) {
+        if (state == -1) return;
+        if (!LibraryLoader.isInitialized()) return;
+        if (isDownload) {
+            RecordHistogram.recordEnumeratedHistogram(
+                    "Android.OfflineItems.StateAtCancel.Downloads", state, StateAtCancel.MAX);
+        } else {
+            RecordHistogram.recordEnumeratedHistogram(
+                    "Android.OfflineItems.StateAtCancel.OfflinePages", state, StateAtCancel.MAX);
+        }
+    }
 }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java
index f8a6c1c..2c098e2 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java
@@ -91,9 +91,8 @@
 
     private static final String EXTRA_IS_OFF_THE_RECORD =
             "org.chromium.chrome.browser.download.IS_OFF_THE_RECORD";
-    public static final String EXTRA_DOWNLOAD_HOME_URL =
-            "org.chromium.chrome.browser.download.DOWNLOAD_HOME_URL";
-    public static final String SHOW_PREFETCHED_CONTENT = "ShowPrefetchedContent";
+    public static final String EXTRA_SHOW_PREFETCHED_CONTENT =
+            "org.chromium.chrome.browser.download.SHOW_PREFETCHED_CONTENT";
 
     @VisibleForTesting
     static final long SECONDS_PER_MINUTE = TimeUnit.MINUTES.toSeconds(1);
@@ -143,11 +142,10 @@
         }
 
         Context appContext = ContextUtils.getApplicationContext();
-        String downloadHomeUrl = buildDownloadHomeUrl(showPrefetchedContent);
 
         if (DeviceFormFactor.isTablet()) {
             // Download Home shows up as a tab on tablets.
-            LoadUrlParams params = new LoadUrlParams(downloadHomeUrl);
+            LoadUrlParams params = new LoadUrlParams(UrlConstants.DOWNLOADS_URL);
             if (tab == null || !tab.isInitialized()) {
                 // Open a new tab, which pops Chrome into the foreground.
                 TabDelegate delegate = new TabDelegate(false);
@@ -168,8 +166,8 @@
             // Download Home shows up as a new Activity on phones.
             Intent intent = new Intent();
             intent.setClass(appContext, DownloadActivity.class);
+            intent.putExtra(EXTRA_SHOW_PREFETCHED_CONTENT, showPrefetchedContent);
             if (tab != null) intent.putExtra(EXTRA_IS_OFF_THE_RECORD, tab.isIncognito());
-            intent.putExtra(EXTRA_DOWNLOAD_HOME_URL, downloadHomeUrl);
             if (activity == null) {
                 // Stands alone in its own task.
                 intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
@@ -202,15 +200,11 @@
     }
 
     /**
-     * Helper method to build the URL for downloads home. The URL can be leveraged for passing extra
-     * parameters to download home.
-     * @return The URL for download home.
+     * @return Whether or not the prefetched content section should be expanded on launch of the
+     * DownloadActivity.
      */
-    private static String buildDownloadHomeUrl(boolean showPrefetchedContent) {
-        Uri.Builder builder = Uri.parse(UrlConstants.DOWNLOADS_URL).buildUpon();
-        builder.appendQueryParameter(
-                SHOW_PREFETCHED_CONTENT, Boolean.toString(showPrefetchedContent));
-        return builder.build().toString();
+    public static boolean shouldShowPrefetchContent(Intent intent) {
+        return IntentUtils.safeGetBooleanExtra(intent, EXTRA_SHOW_PREFETCHED_CONTENT, false);
     }
 
     /**
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/ui/DownloadManagerUi.java b/chrome/android/java/src/org/chromium/chrome/browser/download/ui/DownloadManagerUi.java
index a5ce72c..9a824ab 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/download/ui/DownloadManagerUi.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/download/ui/DownloadManagerUi.java
@@ -7,7 +7,6 @@
 import android.app.Activity;
 import android.content.ComponentName;
 import android.content.Intent;
-import android.net.Uri;
 import android.os.AsyncTask;
 import android.os.Handler;
 import android.support.annotation.IntDef;
@@ -15,7 +14,6 @@
 import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;
 import android.support.v7.widget.Toolbar.OnMenuItemClickListener;
-import android.text.TextUtils;
 import android.view.LayoutInflater;
 import android.view.MenuItem;
 import android.view.ViewGroup;
@@ -346,20 +344,19 @@
      * Sets the download manager to the state that the url represents.
      */
     public void updateForUrl(String url) {
-        if (TextUtils.isEmpty(url)) return;
-        Uri uri = Uri.parse(url);
-        boolean showPrefetchedContent =
-                uri.getBooleanQueryParameter(DownloadUtils.SHOW_PREFETCHED_CONTENT, false);
-        if (showPrefetchedContent) {
-            new Handler().postDelayed(() -> {
-                mHistoryAdapter.setPrefetchSectionExpanded(true);
-            }, PREFETCH_BUNDLE_OPEN_DELAY_MS);
-        }
-
         int filter = DownloadFilter.getFilterFromUrl(url);
         onFilterChanged(filter);
     }
 
+    /**
+     * Performs an animated expansion of the prefetch section.
+     */
+    public void expandPrefetchSection() {
+        new Handler().postDelayed(() -> {
+            mHistoryAdapter.setPrefetchSectionExpanded(true);
+        }, PREFETCH_BUNDLE_OPEN_DELAY_MS);
+    }
+
     @Override
     public boolean onMenuItemClick(MenuItem item) {
         if (item.getItemId() == R.id.close_menu_id && mIsSeparateActivity) {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/ui/OfflineGroupHeaderView.java b/chrome/android/java/src/org/chromium/chrome/browser/download/ui/OfflineGroupHeaderView.java
index 2ef9136..eefdecf 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/download/ui/OfflineGroupHeaderView.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/download/ui/OfflineGroupHeaderView.java
@@ -10,7 +10,6 @@
 import android.text.format.DateUtils;
 import android.text.format.Formatter;
 import android.util.AttributeSet;
-import android.view.View;
 import android.widget.ImageView;
 import android.widget.TextView;
 
@@ -44,7 +43,6 @@
     private TextView mDescriptionTextView;
     private ImageView mExpandImage;
     private TintedImageView mIconImageView;
-    private View mNewBadgeView;
 
     public OfflineGroupHeaderView(Context context, AttributeSet attrs) {
         super(context, attrs);
@@ -69,7 +67,6 @@
         mIconImageView = (TintedImageView) findViewById(R.id.icon_view);
         mDescriptionTextView = (TextView) findViewById(R.id.description);
         mExpandImage = (ImageView) findViewById(R.id.expand_icon);
-        mNewBadgeView = findViewById(R.id.new_badge);
     }
 
     /**
@@ -112,7 +109,6 @@
         updateExpandIcon(header.isExpanded());
         setChecked(mSelectionDelegate.isHeaderSelected(header));
         updateCheckIcon(isChecked());
-        mNewBadgeView.setVisibility(header.shouldShowRecentBadge() ? View.VISIBLE : View.GONE);
     }
 
     private void updateExpandIcon(boolean expanded) {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java
index f1f9e75f..f9539a98 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java
@@ -40,6 +40,7 @@
 import org.chromium.chrome.browser.snackbar.Snackbar;
 import org.chromium.chrome.browser.snackbar.SnackbarManager;
 import org.chromium.chrome.browser.snackbar.SnackbarManager.SnackbarController;
+import org.chromium.chrome.browser.tabmodel.TabCreatorManager.TabCreator;
 import org.chromium.chrome.browser.tabmodel.TabModel.TabLaunchType;
 import org.chromium.chrome.browser.util.IntentUtils;
 import org.chromium.chrome.browser.widget.selection.SelectableBottomSheetContent.SelectableBottomSheetContentManager;
@@ -301,9 +302,10 @@
 
         ChromeActivity activity = (ChromeActivity) mActivity;
         if (createNewTab) {
-            activity.getTabCreator(isIncognito)
-                    .createNewTab(new LoadUrlParams(url), TabLaunchType.FROM_LINK,
-                            activity.getActivityTab());
+            TabCreator tabCreator = (isIncognito == null) ? activity.getCurrentTabCreator()
+                                                          : activity.getTabCreator(isIncognito);
+            tabCreator.createNewTab(
+                    new LoadUrlParams(url), TabLaunchType.FROM_LINK, activity.getActivityTab());
         } else {
             activity.getActivityTab().loadUrl(new LoadUrlParams(url));
         }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarLayout.java
index 3ee1e72..8346ffdb 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarLayout.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarLayout.java
@@ -2090,6 +2090,13 @@
         return !mToolbarDataProvider.isDisplayingQueryTerms();
     }
 
+    @Override
+    @UrlBar.ScrollType
+    public int getScrollType() {
+        return mToolbarDataProvider.isDisplayingQueryTerms() ? UrlBar.SCROLL_TO_BEGINNING
+                                                             : UrlBar.SCROLL_TO_TLD;
+    }
+
     /**
      * @return Returns the original url of the page.
      */
@@ -2698,9 +2705,9 @@
     }
 
     /**
-     * Scroll to ensure the TLD is visible.
+     * Scroll to ensure the TLD is visible, if necessary.
      */
     public void scrollUrlBarToTld() {
-        mUrlBar.scrollToTLD();
+        if (getScrollType() == UrlBar.SCROLL_TO_TLD) mUrlBar.scrollToTLD();
     }
 }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/UrlBar.java b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/UrlBar.java
index d942567e..32f6b5d7 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/UrlBar.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/UrlBar.java
@@ -15,6 +15,7 @@
 import android.os.Build;
 import android.os.StrictMode;
 import android.os.SystemClock;
+import android.support.annotation.IntDef;
 import android.support.annotation.Nullable;
 import android.support.v4.text.BidiFormatter;
 import android.text.Editable;
@@ -97,7 +98,7 @@
     private MotionEvent mSuppressedTouchDownEvent;
     private boolean mAllowFocus = true;
 
-    private boolean mPendingScrollTLD;
+    private boolean mPendingScroll;
     private int mPreviousWidth;
     private String mPreviousTldScrollText;
     private int mPreviousTldScrollViewWidth;
@@ -127,6 +128,14 @@
     /** The location of this view on the last ACTION_DOWN event. */
     private float mDownEventViewTop;
 
+    /** What scrolling action should be taken after the URL bar text changes. **/
+    @IntDef({NO_SCROLL, SCROLL_TO_TLD, SCROLL_TO_BEGINNING})
+    public @interface ScrollType {}
+
+    public static final int NO_SCROLL = 0;
+    public static final int SCROLL_TO_TLD = 1;
+    public static final int SCROLL_TO_BEGINNING = 2;
+
     /**
      * Implement this to get updates when the direction of the text in the URL bar changes.
      * E.g. If the user is typing a URL, then erases it and starts typing a query in Arabic,
@@ -176,6 +185,12 @@
          * @return Whether or not we should force LTR text on the URL bar when unfocused.
          */
         boolean shouldForceLTR();
+
+        /**
+         * @return What scrolling action should be performed after the URL text is modified.
+         */
+        @ScrollType
+        int getScrollType();
     }
 
     public UrlBar(Context context, AttributeSet attrs) {
@@ -314,7 +329,7 @@
 
         if (focused) {
             StartupMetrics.getInstance().recordFocusedOmnibox();
-            mPendingScrollTLD = false;
+            mPendingScroll = false;
         }
 
         fixupTextDirection();
@@ -658,22 +673,42 @@
         setText(displayText);
 
         boolean textChanged = !TextUtils.equals(previousText, getEditableText());
-        if (textChanged && !isFocused()) scrollToTLD();
+        if (textChanged && !isFocused()) scrollDisplayText();
         return textChanged;
     }
 
-    /**
-     * Scroll to ensure the TLD is visible.
-     */
-    public void scrollToTLD() {
+    public void scrollDisplayText() {
         if (isLayoutRequested()) {
-            mPendingScrollTLD = true;
+            if (mUrlBarDelegate.getScrollType() == NO_SCROLL) return;
+            mPendingScroll = true;
         } else {
-            scrollToTLDInternal();
+            scrollDisplayTextInternal();
         }
     }
 
-    private void scrollToTLDInternal() {
+    public void scrollDisplayTextInternal() {
+        switch (mUrlBarDelegate.getScrollType()) {
+            case SCROLL_TO_TLD:
+                scrollToTLD();
+                break;
+            case SCROLL_TO_BEGINNING:
+                scrollToBeginning();
+                break;
+            default:
+                break;
+        }
+    }
+
+    private void scrollToBeginning() {
+        int scrollX = 0;
+        if (BidiFormatter.getInstance().isRtl(getTextWithAutocomplete())) {
+            int textWidth = (int) getLayout().getPaint().measureText(getTextWithAutocomplete());
+            scrollX = textWidth - getMeasuredWidth();
+        }
+        scrollTo(scrollX, getScrollY());
+    }
+
+    public void scrollToTLD() {
         if (mFocused) return;
 
         // Ensure any selection from the focus state is cleared.
@@ -757,11 +792,11 @@
     protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
         super.onLayout(changed, left, top, right, bottom);
 
-        if (mPendingScrollTLD) {
-            scrollToTLDInternal();
-            mPendingScrollTLD = false;
+        if (mPendingScroll) {
+            scrollDisplayTextInternal();
+            mPendingScroll = false;
         } else if (mPreviousWidth != (right - left)) {
-            scrollToTLDInternal();
+            scrollDisplayTextInternal();
             mPreviousWidth = right - left;
         }
     }
@@ -771,7 +806,7 @@
         // TextView internally attempts to keep the selection visible, but in the unfocused state
         // this class ensures that the TLD is visible.
         if (!mFocused) return false;
-        assert !mPendingScrollTLD;
+        assert !mPendingScroll;
 
         return super.bringPointIntoView(offset);
     }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/payments/ServiceWorkerPaymentAppBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/payments/ServiceWorkerPaymentAppBridge.java
index 452634c6..339534d 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/payments/ServiceWorkerPaymentAppBridge.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/payments/ServiceWorkerPaymentAppBridge.java
@@ -14,6 +14,7 @@
 import org.chromium.base.ThreadUtils;
 import org.chromium.base.VisibleForTesting;
 import org.chromium.base.annotations.CalledByNative;
+import org.chromium.base.annotations.JNIAdditionalImport;
 import org.chromium.chrome.browser.ChromeActivity;
 import org.chromium.chrome.browser.ChromeFeatureList;
 import org.chromium.content_public.browser.WebContents;
@@ -31,6 +32,7 @@
 /**
  * Native bridge for interacting with service worker based payment apps.
  */
+@JNIAdditionalImport({PaymentInstrument.class, PaymentAppFactory.class})
 public class ServiceWorkerPaymentAppBridge implements PaymentAppFactory.PaymentAppFactoryAddition {
     private static final String TAG = "SWPaymentApp";
     private static boolean sCanMakePaymentForTesting;
@@ -299,7 +301,7 @@
     private static void onPaymentAppCreated(long registrationId, String scope,
             @Nullable String name, @Nullable String userHint, String origin, @Nullable Bitmap icon,
             String[] methodNameArray, Object[] capabilities, String[] preferredRelatedApplications,
-            WebContents webContents, Object callback) {
+            WebContents webContents, PaymentAppFactory.PaymentAppCreatedCallback callback) {
         ThreadUtils.assertOnUiThread();
 
         Context context = ChromeActivity.fromWebContents(webContents);
@@ -309,18 +311,17 @@
             Log.e(TAG, "%s service worker scope is not a valid URI", scope);
             return;
         }
-        ((PaymentAppFactory.PaymentAppCreatedCallback) callback)
-                .onPaymentAppCreated(new ServiceWorkerPaymentApp(webContents, registrationId,
-                        scopeUri, name, userHint, origin,
-                        icon == null ? null : new BitmapDrawable(context.getResources(), icon),
-                        methodNameArray, (ServiceWorkerPaymentApp.Capabilities[]) capabilities,
-                        preferredRelatedApplications));
+        callback.onPaymentAppCreated(new ServiceWorkerPaymentApp(webContents, registrationId,
+                scopeUri, name, userHint, origin,
+                icon == null ? null : new BitmapDrawable(context.getResources(), icon),
+                methodNameArray, (ServiceWorkerPaymentApp.Capabilities[]) capabilities,
+                preferredRelatedApplications));
     }
 
     @CalledByNative
     private static void onInstallablePaymentAppCreated(@Nullable String name, String swUrl,
             String scope, boolean useCache, @Nullable Bitmap icon, String methodName,
-            WebContents webContents, Object callback) {
+            WebContents webContents, PaymentAppFactory.PaymentAppCreatedCallback callback) {
         ThreadUtils.assertOnUiThread();
 
         Context context = ChromeActivity.fromWebContents(webContents);
@@ -335,19 +336,18 @@
             Log.e(TAG, "%s service worker scope is not a valid URI", scope);
             return;
         }
-        ((PaymentAppFactory.PaymentAppCreatedCallback) callback)
-                .onPaymentAppCreated(new ServiceWorkerPaymentApp(webContents, name,
-                        scopeUri.getScheme() + "://" + scopeUri.getHost(), swUri, scopeUri,
-                        useCache,
-                        icon == null ? null : new BitmapDrawable(context.getResources(), icon),
-                        methodName));
+        callback.onPaymentAppCreated(new ServiceWorkerPaymentApp(webContents, name,
+                scopeUri.getScheme() + "://" + scopeUri.getHost(), swUri, scopeUri, useCache,
+                icon == null ? null : new BitmapDrawable(context.getResources(), icon),
+                methodName));
     }
 
     @CalledByNative
-    private static void onAllPaymentAppsCreated(Object callback) {
+    private static void onAllPaymentAppsCreated(
+            PaymentAppFactory.PaymentAppCreatedCallback callback) {
         ThreadUtils.assertOnUiThread();
 
-        ((PaymentAppFactory.PaymentAppCreatedCallback) callback).onAllPaymentAppsCreated();
+        callback.onAllPaymentAppsCreated();
     }
 
     @CalledByNative
@@ -380,81 +380,55 @@
     }
 
     @CalledByNative
-    private static void onPaymentAppInvoked(
-            Object callback, String methodName, String stringifiedDetails) {
+    private static void onPaymentAppInvoked(PaymentInstrument.InstrumentDetailsCallback callback,
+            String methodName, String stringifiedDetails) {
         ThreadUtils.assertOnUiThread();
 
         if (TextUtils.isEmpty(methodName) || TextUtils.isEmpty(stringifiedDetails)) {
-            ((PaymentInstrument.InstrumentDetailsCallback) callback).onInstrumentDetailsError();
+            callback.onInstrumentDetailsError();
         } else {
-            ((PaymentInstrument.InstrumentDetailsCallback) callback)
-                    .onInstrumentDetailsReady(methodName, stringifiedDetails);
+            callback.onInstrumentDetailsReady(methodName, stringifiedDetails);
         }
     }
 
     @CalledByNative
-    private static void onPaymentAppAborted(Object callback, boolean result) {
+    private static void onPaymentAppAborted(
+            PaymentInstrument.AbortCallback callback, boolean result) {
         ThreadUtils.assertOnUiThread();
 
-        ((PaymentInstrument.AbortCallback) callback).onInstrumentAbortResult(result);
+        callback.onInstrumentAbortResult(result);
     }
 
     @CalledByNative
-    private static void onCanMakePayment(Object callback, boolean canMakePayment) {
+    private static void onCanMakePayment(CanMakePaymentCallback callback, boolean canMakePayment) {
         ThreadUtils.assertOnUiThread();
-        assert callback instanceof CanMakePaymentCallback;
 
-        ((CanMakePaymentCallback) callback).onCanMakePaymentResponse(canMakePayment);
+        callback.onCanMakePaymentResponse(canMakePayment);
     }
 
-    /*
-     * TODO(tommyt): crbug.com/505554. Change the |callback| parameter below to
-     * be of type PaymentInstrument.InstrumentDetailsCallback, once this JNI bug
-     * has been resolved.
-     */
-    private static native void nativeGetAllPaymentApps(
-            WebContents webContents, PaymentMethodData[] methodData, Object callback);
+    private static native void nativeGetAllPaymentApps(WebContents webContents,
+            PaymentMethodData[] methodData, PaymentAppFactory.PaymentAppCreatedCallback callback);
 
     private static native void nativeHasServiceWorkerPaymentApps(
             HasServiceWorkerPaymentAppsCallback callback);
     private static native void nativeGetServiceWorkerPaymentAppsInfo(
             GetServiceWorkerPaymentAppsInfoCallback callback);
 
-    /*
-     * TODO(tommyt): crbug.com/505554. Change the |callback| parameter below to
-     * be of type PaymentInstrument.InstrumentDetailsCallback, once this JNI bug
-     * has been resolved.
-     */
     private static native void nativeInvokePaymentApp(WebContents webContents, long registrationId,
             String topLevelOrigin, String paymentRequestOrigin, String paymentRequestId,
             PaymentMethodData[] methodData, PaymentItem total, PaymentDetailsModifier[] modifiers,
-            Object callback);
+            PaymentInstrument.InstrumentDetailsCallback callback);
 
-    /*
-     * TODO(tommyt): crbug.com/505554. Change the |callback| parameter below to
-     * be of type PaymentInstrument.InstrumentDetailsCallback, once this JNI bug
-     * has been resolved.
-     */
     private static native void nativeInstallAndInvokePaymentApp(WebContents webContents,
             String topLevelOrigin, String paymentRequestOrigin, String paymentRequestId,
             PaymentMethodData[] methodData, PaymentItem total, PaymentDetailsModifier[] modifiers,
-            Object callback, String appName, String swUrl, String scope, boolean useCache,
-            String[] methodNames);
+            PaymentInstrument.InstrumentDetailsCallback callback, String appName, String swUrl,
+            String scope, boolean useCache, String[] methodNames);
 
-    /*
-     * TODO(tommyt): crbug.com/505554. Change the |callback| parameter below to
-     * be of type PaymentInstrument.InstrumentDetailsCallback, once this JNI bug
-     * has been resolved.
-     */
     private static native void nativeAbortPaymentApp(
-            WebContents webContents, long registrationId, Object callback);
+            WebContents webContents, long registrationId, PaymentInstrument.AbortCallback callback);
 
-    /*
-     * TODO(zino): crbug.com/505554. Change the |callback| parameter below to
-     * be of type PaymentInstrument.InstrumentDetailsCallback, once this JNI bug
-     * has been resolved.
-     */
     private static native void nativeCanMakePayment(WebContents webContents, long registrationId,
             String topLevelOrigin, String paymentRequestOrigin, PaymentMethodData[] methodData,
-            PaymentDetailsModifier[] modifiers, Object callback);
+            PaymentDetailsModifier[] modifiers, CanMakePaymentCallback callback);
 }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/languages/LanguageListBaseAdapter.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/languages/LanguageListBaseAdapter.java
index a10fdce..c2673df 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/languages/LanguageListBaseAdapter.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/languages/LanguageListBaseAdapter.java
@@ -24,7 +24,6 @@
 
 import org.chromium.base.ApiCompatibilityUtils;
 import org.chromium.chrome.R;
-import org.chromium.chrome.browser.preferences.PrefServiceBridge;
 import org.chromium.chrome.browser.widget.ListMenuButton;
 import org.chromium.chrome.browser.widget.TintedImageView;
 
@@ -239,13 +238,8 @@
 
                     // Commit the postion change for the dragged language when it's dropped.
                     if (mDraggedLanguage != null) {
-                        int offset = viewHolder.getAdapterPosition() - mDraggedLanguage.first;
-                        if (offset != 0) {
-                            PrefServiceBridge.getInstance().moveAcceptLanguage(
-                                    mDraggedLanguage.second, offset);
-                            LanguagesManager.recordAction(
-                                    LanguagesManager.ACTION_LANGUAGE_LIST_REORDERED);
-                        }
+                        LanguagesManager.getInstance().moveLanguagePosition(mDraggedLanguage.second,
+                                viewHolder.getAdapterPosition() - mDraggedLanguage.first, false);
                         mDraggedLanguage = null;
                     }
 
@@ -292,4 +286,11 @@
         mDragEnabled = false;
         if (mItemTouchHelper != null) mItemTouchHelper.attachToRecyclerView(null);
     }
+
+    /**
+     * Returns whether the drag & drop is enabled.
+     */
+    boolean isDragEnabled() {
+        return mDragEnabled;
+    }
 }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/languages/LanguageListPreference.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/languages/LanguageListPreference.java
index 3ac5c061..d10c4c6 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/languages/LanguageListPreference.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/languages/LanguageListPreference.java
@@ -62,8 +62,27 @@
                                 info.isSupported()));
                     }
 
+                    int languageCount = getItemCount();
                     // Enable "Remove" option if there are multiple accept languages.
-                    menuItems.add(new Item(mContext, R.string.remove, getItemCount() > 1));
+                    menuItems.add(new Item(mContext, R.string.remove, languageCount > 1));
+
+                    // Add some appropriate options for moving the language when the list is not
+                    // draggable. E.g. in the accessibility mode.
+                    if (!isDragEnabled()) {
+                        // Add "Move to top" and "Move up" menu when it's not the first one.
+                        if (position > 0) {
+                            menuItems.add(new Item(
+                                    mContext, R.string.languages_item_option_move_to_top, true));
+                            menuItems.add(new Item(
+                                    mContext, R.string.languages_item_option_move_up, true));
+                        }
+
+                        // Add "Move down" menu when it's not the last one.
+                        if (position < (languageCount - 1)) {
+                            menuItems.add(new Item(
+                                    mContext, R.string.languages_item_option_move_down, true));
+                        }
+                    }
 
                     return menuItems.toArray(new Item[menuItems.size()]);
                 }
@@ -82,6 +101,15 @@
                     } else if (item.getTextId() == R.string.remove) {
                         LanguagesManager.getInstance().removeFromAcceptLanguages(info.getCode());
                         LanguagesManager.recordAction(LanguagesManager.ACTION_LANGUAGE_REMOVED);
+                    } else if (item.getTextId() == R.string.languages_item_option_move_up) {
+                        LanguagesManager.getInstance().moveLanguagePosition(
+                                info.getCode(), -1, true);
+                    } else if (item.getTextId() == R.string.languages_item_option_move_down) {
+                        LanguagesManager.getInstance().moveLanguagePosition(
+                                info.getCode(), 1, true);
+                    } else if (item.getTextId() == R.string.languages_item_option_move_to_top) {
+                        LanguagesManager.getInstance().moveLanguagePosition(
+                                info.getCode(), -position, true);
                     }
                 }
             });
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/languages/LanguagesManager.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/languages/LanguagesManager.java
index 1de69f1c..03ecaa52b 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/languages/LanguagesManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/languages/LanguagesManager.java
@@ -140,6 +140,21 @@
     }
 
     /**
+     * Move a language's position in the user's accept languages list.
+     * @param code The language code to move.
+     * @param offset The offset from the original position.
+     *               Negative value means up and positive value means down.
+     * @param reload  Whether to reload the language list.
+     */
+    public void moveLanguagePosition(String code, int offset, boolean reload) {
+        if (offset == 0) return;
+
+        PrefServiceBridge.getInstance().moveAcceptLanguage(code, offset);
+        recordAction(ACTION_LANGUAGE_LIST_REORDERED);
+        if (reload) notifyAcceptLanguageObserver();
+    }
+
+    /**
      * Get the static instance of ChromePreferenceManager if it exists else create it.
      * @return the LanguagesManager singleton.
      */
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/share/ShareMenuActionHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/share/ShareMenuActionHandler.java
index 7f8180f..d8f38b75 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/share/ShareMenuActionHandler.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/share/ShareMenuActionHandler.java
@@ -21,7 +21,6 @@
 import org.chromium.components.ui_metrics.CanonicalURLResult;
 import org.chromium.content_public.browser.ContentBitmapCallback;
 import org.chromium.content_public.browser.WebContents;
-import org.chromium.content_public.browser.readback_types.ReadbackResponse;
 import org.chromium.net.GURLUtils;
 
 import java.util.ArrayList;
@@ -201,14 +200,13 @@
         if (blockingUri == null) return;
 
         // Start screenshot capture and notify the provider when it is ready.
-        ContentBitmapCallback callback = (bitmap, response) -> ShareHelper.saveScreenshotToDisk(
-                bitmap, mainActivity,
-                result -> {
-                    // Unblock the file once it is saved to disk.
-                    ChromeFileProvider.notifyFileReady(blockingUri, result);
-                });
+        ContentBitmapCallback callback =
+                (bitmap) -> ShareHelper.saveScreenshotToDisk(bitmap, mainActivity, result -> {
+            // Unblock the file once it is saved to disk.
+            ChromeFileProvider.notifyFileReady(blockingUri, result);
+        });
         if (sScreenshotCaptureSkippedForTesting) {
-            callback.onFinishGetBitmap(null, ReadbackResponse.SURFACE_UNAVAILABLE);
+            callback.onFinishGetBitmap(null);
         } else {
             webContents.getContentBitmapAsync(0, 0, callback);
         }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/CustomTabToolbar.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/CustomTabToolbar.java
index 1bc97f6..c7445da 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/CustomTabToolbar.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/CustomTabToolbar.java
@@ -707,6 +707,12 @@
     }
 
     @Override
+    @UrlBar.ScrollType
+    public int getScrollType() {
+        return UrlBar.SCROLL_TO_TLD;
+    }
+
+    @Override
     public void setUrlBarFocus(boolean shouldBeFocused) {}
 
     @Override
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VrShellDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VrShellDelegate.java
index 282a0e8..790000d 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VrShellDelegate.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VrShellDelegate.java
@@ -1045,8 +1045,10 @@
                 return;
             }
             instance.onAutopresentIntent();
-        } else if (ChromeFeatureList.isEnabled(ChromeFeatureList.VR_LAUNCH_INTENT)
-                && isVrShellEnabled(instance.mVrSupportLevel)) {
+        } else if (isVrShellEnabled(instance.mVrSupportLevel)
+                && (ChromeFeatureList.isEnabled(ChromeFeatureList.VR_LAUNCH_INTENT)
+                           || ChromeFeatureList.isEnabled(
+                                      ChromeFeatureList.VR_ICON_IN_DAYDREAM_HOME))) {
             if (DEBUG_LOGS) Log.i(TAG, "onNewIntentWithNative: vr");
             instance.onVrIntent();
         } else {
@@ -1284,7 +1286,9 @@
         if (DEBUG_LOGS) Log.e(TAG, "canceling startup animation");
         mCancellingEntryAnimation = true;
         Bundle options = ActivityOptions.makeCustomAnimation(mActivity, 0, 0).toBundle();
-        mActivity.startActivity(new Intent(mActivity, VrCancelAnimationActivity.class), options);
+        mActivity.startActivity(mVrDaydreamApi.setupVrIntent(
+                                        new Intent(mActivity, VrCancelAnimationActivity.class)),
+                options);
         mNeedsAnimationCancel = false;
         return true;
     }
diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/android/java/strings/android_chrome_strings.grd
index 1361e0fb..7f1dda5 100644
--- a/chrome/android/java/strings/android_chrome_strings.grd
+++ b/chrome/android/java/strings/android_chrome_strings.grd
@@ -998,6 +998,15 @@
       <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_ITEM_OPTION_MOVE_UP" desc="Option in language item menu. User can click the 'Move up' option to move the language up in the list of languages. [CHAR-LIMIT=32]">
+        Move up
+      </message>
+      <message name="IDS_LANGUAGES_ITEM_OPTION_MOVE_DOWN" desc="Option in language item menu. User can click the 'Move down' option to move the language down in the list of languages. [CHAR-LIMIT=32]">
+        Move down
+      </message>
+      <message name="IDS_LANGUAGES_ITEM_OPTION_MOVE_TO_TOP" desc="Option in language item menu. User can click the 'Move to top' option to move the language up to the top of the list of languages. [CHAR-LIMIT=32]">
+        Move to top
+      </message>
 
       <!-- Location preferences -->
       <message name="IDS_WEBSITE_SETTINGS_DEVICE_LOCATION" desc="Title for Location settings, which control which websites can access your location." meaning="Geolocation">
@@ -2191,7 +2200,7 @@
         Popular pages from Chrome
       </message>
       <message name="IDS_DOWNLOAD_MANAGER_OFFLINE_HEADER_DESCRIPTION" desc="Text containing the offline pages description.">
-        <ph name="FILE_SIZE">%1$s<ex>1.56 MB</ex></ph> - Pages updated <ph name="TIME_SINCE_UPDATE">%2$s<ex>4 minutes ago</ex></ph>
+        <ph name="FILE_SIZE">%1$s<ex>1.56 MB</ex></ph> - Updated <ph name="TIME_SINCE_UPDATE">%2$s<ex>4 minutes ago</ex></ph>
       </message>
       <message name="IDS_DOWNLOAD_MANAGER_LIST_ITEM_DESCRIPTION" desc="Text containing the download list item description.">
         <ph name="FILE_SIZE">%1$s<ex>1.56 MB</ex></ph> - <ph name="DESCRIPTION">%2$s<ex>www.example.com</ex></ph>
diff --git a/chrome/android/java_sources.gni b/chrome/android/java_sources.gni
index 8a28a00..b4792db 100644
--- a/chrome/android/java_sources.gni
+++ b/chrome/android/java_sources.gni
@@ -81,7 +81,6 @@
   "java/src/org/chromium/chrome/browser/appmenu/AppMenuDragHelper.java",
   "java/src/org/chromium/chrome/browser/appmenu/AppMenuHandler.java",
   "java/src/org/chromium/chrome/browser/appmenu/AppMenuItemIcon.java",
-  "java/src/org/chromium/chrome/browser/appmenu/AppMenuIconRowFooter.java",
   "java/src/org/chromium/chrome/browser/appmenu/AppMenuObserver.java",
   "java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegate.java",
   "java/src/org/chromium/chrome/browser/autofill/AutofillKeyboardAccessoryBridge.java",
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/download/DownloadActivityTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/download/DownloadActivityTest.java
index 24e903d..ffe68663 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/download/DownloadActivityTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/download/DownloadActivityTest.java
@@ -32,7 +32,6 @@
 import org.chromium.base.test.util.Restriction;
 import org.chromium.base.test.util.RetryOnFailure;
 import org.chromium.chrome.R;
-import org.chromium.chrome.browser.UrlConstants;
 import org.chromium.chrome.browser.download.ui.DownloadHistoryAdapter;
 import org.chromium.chrome.browser.download.ui.DownloadHistoryItemViewHolder;
 import org.chromium.chrome.browser.download.ui.DownloadHistoryItemWrapper;
@@ -721,7 +720,6 @@
         // Start the activity up.
         Intent intent = new Intent();
         intent.setClass(InstrumentationRegistry.getTargetContext(), DownloadActivity.class);
-        intent.putExtra(DownloadUtils.EXTRA_DOWNLOAD_HOME_URL, UrlConstants.DOWNLOADS_URL);
         intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
         return mActivityTestRule.launchActivity(intent);
     }
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/metrics/UkmIncognitoTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/metrics/UkmIncognitoTest.java
index a7909bf..233d396 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/metrics/UkmIncognitoTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/metrics/UkmIncognitoTest.java
@@ -4,6 +4,7 @@
 
 package org.chromium.chrome.browser.metrics;
 
+import android.support.test.InstrumentationRegistry;
 import android.support.test.filters.SmallTest;
 
 import org.junit.Assert;
@@ -12,12 +13,14 @@
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
+import org.chromium.base.ThreadUtils;
 import org.chromium.base.test.util.CommandLineFlags;
 import org.chromium.base.test.util.RetryOnFailure;
 import org.chromium.chrome.browser.ChromeSwitches;
 import org.chromium.chrome.browser.tab.Tab;
 import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
 import org.chromium.chrome.test.ChromeTabbedActivityTestRule;
+import org.chromium.chrome.test.util.ChromeTabUtils;
 import org.chromium.content.browser.test.util.JavaScriptUtils;
 import org.chromium.ui.base.PageTransition;
 
@@ -38,24 +41,105 @@
         mActivityTestRule.startMainActivityOnBlankPage();
     }
 
-    public String getUkmState(Tab normalTab) throws Exception {
+    public String getElementContent(Tab normalTab, String elementId) throws Exception {
         mActivityTestRule.loadUrlInTab(
                 DEBUG_PAGE, PageTransition.TYPED | PageTransition.FROM_ADDRESS_BAR, normalTab);
         return JavaScriptUtils.executeJavaScriptAndWaitForResult(
                 normalTab.getContentViewCore().getWebContents(),
-                "document.getElementById('state').textContent");
+                "document.getElementById('" + elementId + "').textContent");
+    }
+
+    public boolean isUkmEnabled(Tab normalTab) throws Exception {
+        String state = getElementContent(normalTab, "state");
+        Assert.assertTrue(
+                "UKM state: " + state, state.equals("\"True\"") || state.equals("\"False\""));
+        return state.equals("\"True\"");
+    }
+
+    public String getUkmClientId(Tab normalTab) throws Exception {
+        return getElementContent(normalTab, "clientid");
+    }
+
+    /**
+     * Closes the current tab.
+     * @param incognito Whether to close an incognito or non-incognito tab.
+     */
+    protected void closeCurrentTab(final boolean incognito) throws InterruptedException {
+        ThreadUtils.runOnUiThreadBlocking(new Runnable() {
+            @Override
+            public void run() {
+                mActivityTestRule.getActivity().getTabModelSelector().selectModel(incognito);
+            }
+        });
+        ChromeTabUtils.closeCurrentTab(
+                InstrumentationRegistry.getInstrumentation(), mActivityTestRule.getActivity());
+    }
+
+    protected void closeRegularTab() throws InterruptedException {
+        closeCurrentTab(false);
+    }
+
+    protected void closeIncognitoTab() throws InterruptedException {
+        closeCurrentTab(true);
     }
 
     @Test
     @SmallTest
     @RetryOnFailure
-    public void testUkmIncognito() throws Exception {
+    public void testRegularPlusIncognitoCheck() throws Exception {
+        // Keep in sync with UkmBrowserTest.RegularPlusIncognitoCheck in
+        // chrome/browser/metrics/ukm_browsertest.cc.
         Tab normalTab = mActivityTestRule.getActivity().getActivityTab();
 
-        Assert.assertEquals("UKM State:", "\"True\"", getUkmState(normalTab));
+        Assert.assertTrue("UKM Enabled:", isUkmEnabled(normalTab));
+
+        String clientId = getUkmClientId(normalTab);
+        Assert.assertFalse("Non empty client id: " + clientId, clientId.isEmpty());
 
         mActivityTestRule.newIncognitoTabFromMenu();
 
-        Assert.assertEquals("UKM State:", "\"False\"", getUkmState(normalTab));
+        Assert.assertFalse("UKM Enabled:", isUkmEnabled(normalTab));
+
+        // Opening another regular tab mustn't enable UKM.
+        ChromeTabUtils.newTabFromMenu(
+                InstrumentationRegistry.getInstrumentation(), mActivityTestRule.getActivity());
+        Assert.assertFalse("UKM Enabled:", isUkmEnabled(normalTab));
+
+        // Opening and closing another Incognito tab mustn't enable UKM.
+        mActivityTestRule.newIncognitoTabFromMenu();
+        closeIncognitoTab();
+        Assert.assertFalse("UKM Enabled:", isUkmEnabled(normalTab));
+
+        closeRegularTab();
+        Assert.assertFalse("UKM Enabled:", isUkmEnabled(normalTab));
+
+        closeIncognitoTab();
+        Assert.assertTrue("UKM Enabled:", isUkmEnabled(normalTab));
+
+        // Client ID should not have been reset.
+        Assert.assertEquals("Client id:", clientId, getUkmClientId(normalTab));
+    }
+
+    @Test
+    @SmallTest
+    @RetryOnFailure
+    public void testIncognitoPlusRegularCheck() throws Exception {
+        // Keep in sync with UkmBrowserTest.IncognitoPlusRegularCheck in
+        // chrome/browser/metrics/ukm_browsertest.cc.
+
+        // Start by closing all tabs.
+        ChromeTabUtils.closeAllTabs(
+                InstrumentationRegistry.getInstrumentation(), mActivityTestRule.getActivity());
+
+        mActivityTestRule.newIncognitoTabFromMenu();
+
+        ChromeTabUtils.newTabFromMenu(
+                InstrumentationRegistry.getInstrumentation(), mActivityTestRule.getActivity());
+        Tab normalTab = mActivityTestRule.getActivity().getActivityTab();
+
+        Assert.assertFalse("UKM Enabled:", isUkmEnabled(normalTab));
+
+        closeIncognitoTab();
+        Assert.assertTrue("UKM Enabled:", isUkmEnabled(normalTab));
     }
 }
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/preferences/datareduction/DataReductionPromoUtilsTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/preferences/datareduction/DataReductionPromoUtilsTest.java
index d3e7379..df02c48 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/preferences/datareduction/DataReductionPromoUtilsTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/preferences/datareduction/DataReductionPromoUtilsTest.java
@@ -65,8 +65,12 @@
     testCanShowPromos() throws Throwable {
         if (DataReductionProxySettings.getInstance().isDataReductionProxyManaged()) return;
         Assert.assertFalse(DataReductionProxySettings.getInstance().isDataReductionProxyEnabled());
-        Assert.assertTrue(FieldTrialList.findFullName("DataCompressionProxyPromoVisibility")
-                                  .equals("Enabled"));
+
+        // In some unknown cases, the force-fieldtrials flag may not be effective. This may possibly
+        // be because this test runs on UiThread.
+        if (!FieldTrialList.findFullName("DataCompressionProxyPromoVisibility").equals("Enabled")) {
+            return;
+        }
         Assert.assertTrue(
                 DataReductionProxySettings.getInstance().isDataReductionProxyPromoAllowed());
         Assert.assertTrue(DataReductionPromoUtils.canShowPromos());
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/widget/ImageViewTinterTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/widget/ImageViewTinterTest.java
index 19afb240..1b184cb 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/widget/ImageViewTinterTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/widget/ImageViewTinterTest.java
@@ -67,10 +67,9 @@
     @SmallTest
     public void testTintedImageButton_attributeParsingExplicitTint() throws Exception {
         // The tint was explicitly set to a color.
-        int color = ApiCompatibilityUtils.getColor(
-                mContext.getResources(), R.color.app_menu_button_tint);
+        int color = ApiCompatibilityUtils.getColor(mContext.getResources(), R.color.dark_mode_tint);
         TintedImageButton colorTint =
-                createImageView(R.layout.icon_row_menu_footer, R.id.forward_menu_id);
+                createImageView(R.layout.search_toolbar, R.id.clear_text_button);
         Assert.assertNotNull(colorTint.getColorFilter());
         Assert.assertTrue(checkIfTintWasApplied(colorTint, color));
     }
@@ -90,8 +89,8 @@
     public void testTintedImageButton_attributeParsingNullTint() throws Exception {
         // The tint is explicitly set to null in the XML.  An image resource needs to be set here
         // because the layout doesn't define one by default.
-        int color = ApiCompatibilityUtils.getColor(
-                mContext.getResources(), R.color.app_menu_button_tint);
+        int color =
+                ApiCompatibilityUtils.getColor(mContext.getResources(), R.color.blue_when_enabled);
         TintedImageButton nullTint = createImageView(R.layout.title_button_menu_item, R.id.button);
         Assert.assertNull(nullTint.getColorFilter());
         nullTint.setImageResource(R.drawable.plus);
diff --git a/chrome/android/profiles/newest.txt b/chrome/android/profiles/newest.txt
index d4ad760..6adb6eb4 100644
--- a/chrome/android/profiles/newest.txt
+++ b/chrome/android/profiles/newest.txt
@@ -1 +1 @@
-chromeos-chrome-amd64-66.0.3355.0_rc-r1.afdo.bz2
\ No newline at end of file
+chromeos-chrome-amd64-66.0.3356.0_rc-r1.afdo.bz2
\ No newline at end of file
diff --git a/chrome/app/BUILD.gn b/chrome/app/BUILD.gn
index 033094b..10a4a6ac 100644
--- a/chrome/app/BUILD.gn
+++ b/chrome/app/BUILD.gn
@@ -4,6 +4,7 @@
 
 import("//build/config/ui.gni")
 import("//chrome/common/features.gni")
+import("//chromeos/assistant/assistant.gni")
 import("//components/nacl/features.gni")
 import("//ppapi/features/features.gni")
 import("//printing/features/features.gni")
@@ -457,6 +458,9 @@
     "//services/identity:manifest",
     "//services/preferences:manifest",
   ]
+  if (enable_cros_assistant) {
+    packaged_services += [ "//chromeos/services/assistant:manifest" ]
+  }
 }
 
 service_manifest("chrome_test_browser_overlay") {
diff --git a/chrome/app/chromium_strings.grd b/chrome/app/chromium_strings.grd
index 6b7e20cd..068d12b 100644
--- a/chrome/app/chromium_strings.grd
+++ b/chrome/app/chromium_strings.grd
@@ -661,6 +661,14 @@
         Chromium
       </message>
 
+      <!-- DICE sign-in promo strings -->
+      <message name="IDS_PROFILES_DICE_SIGNIN_PROMO" desc="Text describing the benefits of signing in and turning on Sync.">
+        Sign in to sync and personalize Chromium across your devices
+      </message>
+      <message name="IDS_PROFILES_DICE_SYNC_PROMO" desc="Text describing the benefits of turning on Sync.">
+        Sync and personalize Chromium across your devices
+      </message>
+
       <!-- Tutorial card in the avatar menu bubble -->
       <message name="IDS_PROFILES_CONFIRM_SIGNIN_TUTORIAL_TITLE" desc="The title of the tutorial card in the avatar menu bubble view shown when a user signs in to Chromium.">
         You're now signed in to Chromium
@@ -1228,6 +1236,41 @@
           Go to Chromium notification settings
         </message>
       </if>
+      <!-- Relaunch notification bubble and dialog. -->
+      <if expr="not is_android and not chromeos">
+        <message name="IDS_RELAUNCH_RECOMMENDED_TITLE" desc="The title of a dialog that tells users that a browser relaunch is recommended for an update available for some number of days.">
+          {0, plural,
+           =0 {A Chromium update is available}
+           =1 {A Chromium update is available}
+           other {A Chromium update has been available for # days}}
+        </message>
+        <message name="IDS_RELAUNCH_RECOMMENDED_BODY" desc="The body text of a dialog that tells users that a browser relaunch is recommended for an update.">
+          Your administrator asks that you relaunch Chromium to apply this update
+        </message>
+        <message name="IDS_RELAUNCH_REQUIRED_TITLE_DAYS" desc="The title of a dialog that tells users the browser must be relaunched within two or more days.">
+          {0, plural,
+           other {Relaunch Chromium within # days}}
+        </message>
+        <message name="IDS_RELAUNCH_REQUIRED_TITLE_HOURS" desc="The title of a dialog that tells users the browser must be relaunched within one or more hours.">
+          {0, plural,
+           =1 {Chromium will relaunch in 1 hour}
+           other {Chromium will relaunch in # hours}}
+        </message>
+        <message name="IDS_RELAUNCH_REQUIRED_TITLE_MINUTES" desc="The title of a dialog that tells users the browser must be relaunched within one or more minutes.">
+          {0, plural,
+           =1 {Chromium will relaunch in 1 minute}
+           other {Chromium will relaunch in # minutes}}
+        </message>
+        <message name="IDS_RELAUNCH_REQUIRED_TITLE_SECONDS" desc="The title of a dialog that tells users the browser must be relaunched within some number of seconds.">
+          {0, plural,
+           =0 {Chromium will relaunch now}
+           =1 {Chromium will relaunch in 1 second}
+           other {Chromium will relaunch in # seconds}}
+        </message>
+        <message name="IDS_RELAUNCH_REQUIRED_BODY" desc="The body text of a dialog that tells users the browser must be relaunched.">
+          Your administrator requires that you relaunch Chromium to apply an update
+        </message>
+      </if>
     </messages>
   </release>
 </grit>
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd
index 7f342391f..b6a0e23 100644
--- a/chrome/app/generated_resources.grd
+++ b/chrome/app/generated_resources.grd
@@ -7390,9 +7390,6 @@
       <message name="IDS_PROFILES_DICE_SIGNIN_FIRST_ACCOUNT_BUTTON_NO_NAME" desc="Button to sign in and turn on Sync for a web account when the name is empty.">
         Sync to your account
       </message>
-      <message name="IDS_PROFILES_DICE_SIGNIN_PROMO" desc="Text describing the benefits of signing in and turning on Sync.">
-        Sign in for a personalized browsing experience, synced across your devices
-      </message>
       <message name="IDS_PROFILES_DICE_SIGNIN_WITH_ANOTHER_ACCOUNT_BUTTON" desc="Button to sign in and turn on Sync with another web account.">
         Sync to another account
       </message>
@@ -7684,7 +7681,7 @@
         To continue, click OK, then click Add Person to create a new profile for your <ph name="DOMAIN">$1<ex>example.com</ex></ph> email address.
       </message>
       <message name="IDS_OLD_PROFILES_DISABLED_REMOVED_OLD_PROFILE" desc="The suggestion that tells the user to delete old profile when the user tries to use an old profile that is disabled by policy">
-        Although you can no longer access your old profile, you can remove it.
+        Although you can no longer access your old profile, you can still remove it.
       </message>
       <if expr="is_android">
         <message name="IDS_SYNC_USER_NAME_IN_USE_ERROR" desc="Mobile: An error message shown when a user tries to sign in to sync using a user name that's already in use by another profile.">
@@ -10955,6 +10952,15 @@
     <message name="IDS_CONFIRM_FILE_UPLOAD_OK_BUTTON" desc="Button title confirming to upload multiple files to the site.">
       Upload
     </message>
+    <!-- Relaunch notification bubble and dialog. -->
+    <if expr="not is_android and not chromeos">
+      <message name="IDS_RELAUNCH_ACCEPT_BUTTON" desc="The text in the accept button of a dialog that causes the browser to be relaunched immediately.">
+        Relaunch now
+      </message>
+      <message name="IDS_RELAUNCH_REQUIRED_CANCEL_BUTTON" desc="The text in the cancel button that dismisses a dialog telling users the browser must be relaunched.">
+        Got it
+      </message>
+    </if>
   </messages>
  </release>
 </grit>
diff --git a/chrome/app/google_chrome_strings.grd b/chrome/app/google_chrome_strings.grd
index 7b0104c..0cc8777 100644
--- a/chrome/app/google_chrome_strings.grd
+++ b/chrome/app/google_chrome_strings.grd
@@ -671,6 +671,14 @@
         Chrome
       </message>
 
+      <!-- DICE sign-in promo strings -->
+      <message name="IDS_PROFILES_DICE_SIGNIN_PROMO" desc="Text describing the benefits of signing in and turning on Sync.">
+        Sign in to sync and personalize Chrome across your devices
+      </message>
+      <message name="IDS_PROFILES_DICE_SYNC_PROMO" desc="Text describing the benefits of turning on Sync.">
+        Sync and personalize Chrome across your devices
+      </message>
+
       <!-- Tutorial card in the avatar menu bubble -->
       <message name="IDS_PROFILES_CONFIRM_SIGNIN_TUTORIAL_TITLE" desc="The title of the tutorial card in the avatar menu bubble view shown when a user signs in to Chrome.">
         You're now signed in to Chrome
@@ -1245,6 +1253,41 @@
           Go to Chrome notification settings
         </message>
       </if>
+      <!-- Relaunch notification bubble and dialog. -->
+      <if expr="not is_android and not chromeos">
+        <message name="IDS_RELAUNCH_RECOMMENDED_TITLE" desc="The title of a dialog that tells users that a browser relaunch is recommended for an update available for some number of days.">
+          {0, plural,
+           =0 {A Chrome update is available}
+           =1 {A Chrome update is available}
+           other {A Chrome update has been available for # days}}
+        </message>
+        <message name="IDS_RELAUNCH_RECOMMENDED_BODY" desc="The body text of a dialog that tells users that a browser relaunch is recommended for an update.">
+          Your administrator asks that you relaunch Chrome to apply this update
+        </message>
+        <message name="IDS_RELAUNCH_REQUIRED_TITLE_DAYS" desc="The title of a dialog that tells users the browser must be relaunched within two or more days.">
+          {0, plural,
+           other {Relaunch Chrome within # days}}
+        </message>
+        <message name="IDS_RELAUNCH_REQUIRED_TITLE_HOURS" desc="The title of a dialog that tells users the browser must be relaunched within one or more hours.">
+          {0, plural,
+           =1 {Chrome will relaunch in 1 hour}
+           other {Chrome will relaunch in # hours}}
+        </message>
+        <message name="IDS_RELAUNCH_REQUIRED_TITLE_MINUTES" desc="The title of a dialog that tells users the browser must be relaunched within one or more minutes.">
+          {0, plural,
+           =1 {Chrome will relaunch in 1 minute}
+           other {Chrome will relaunch in # minutes}}
+        </message>
+        <message name="IDS_RELAUNCH_REQUIRED_TITLE_SECONDS" desc="The title of a dialog that tells users the browser must be relaunched within some number of seconds.">
+          {0, plural,
+           =0 {Chrome will relaunch now}
+           =1 {Chrome will relaunch in 1 second}
+           other {Chrome will relaunch in # seconds}}
+        </message>
+        <message name="IDS_RELAUNCH_REQUIRED_BODY" desc="The body text of a dialog that tells users the browser must be relaunched.">
+          Your administrator requires that you relaunch Chrome to apply an update
+        </message>
+      </if>
     </messages>
   </release>
 </grit>
diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp
index f167bc3..679662fa 100644
--- a/chrome/app/settings_strings.grdp
+++ b/chrome/app/settings_strings.grdp
@@ -191,11 +191,17 @@
     <message name="IDS_SETTINGS_CHROMEVOX_OPTIONS_LABEL" desc="Label for button to open ChromeVox options.">
       Open ChromeVox settings
     </message>
-    <message name="IDS_SETTINGS_SCREEN_MAGNIFIER_LABEL" desc="Label for checkbox which enables the screen magnifier">
-      Enable screen magnifier
+    <message name="IDS_SETTINGS_SCREEN_MAGNIFIER_LABEL" desc="Label for checkbox which enables the fullscreen magnifier">
+      Enable fullscreen magnifier
     </message>
-    <message name="IDS_SETTINGS_SCREEN_MAGNIFIER_ZOOM_LABEL" desc="Label for dropdown menu which contains zoom levels for the screen magnifier">
-      Zoom level:
+    <message name="IDS_SETTINGS_SCREEN_MAGNIFIER_ZOOM_LABEL" desc="Label for dropdown menu which contains zoom levels for the fullscreen magnifier">
+      Fullscreen zoom level:
+    </message>
+    <message name="IDS_SETTINGS_DOCKED_MAGNIFIER_LABEL" desc="Label for checkbox which enables the docked magnifier">
+      Enable docked magnifier
+    </message>
+    <message name="IDS_SETTINGS_DOCKED_MAGNIFIER_ZOOM_LABEL" desc="Label for dropdown menu which contains zoom levels for the docked magnifier">
+      Docked zoom level:
     </message>
     <message name="IDS_SETTINGS_SCREEN_MAGNIFIER_ZOOM_2_X" desc="Desription of a 2x zoom level">
       2x
@@ -2268,9 +2274,6 @@
     <message name="IDS_SETTINGS_RESET_CLEAN_UP_COMPUTER_TRIGGER" desc="Title for an item in the 'Reset and clean up' section of Chrome Settings. 'Clean up' refers to cleaning up harmful software on the user's computer. Imperative.">
       Clean up computer
     </message>
-    <message name="IDS_SETTINGS_RESET_CLEAN_UP_COMPUTER_TRIGGER_DESCRIPTION" desc="Description of an item in Chrome Settings. Imperative.">
-      Find and remove harmful software
-    </message>
   </if>
 
   <!-- Factory Reset / Powerwash -->
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
index 84217628..e25aa77 100644
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -53,7 +53,6 @@
       "netapi32.lib",
       "ndfapi.lib",  # Used by browser/net/net_error_diagnostics_dialog_win.h
       "pdh.lib",  # Used by browser/private_working_set_snapshot.h
-      "msi.lib",  # Used by browser/conflicts/msi_util_win.h
     ]
     ldflags = [
       "/DELAYLOAD:ndfapi.dll",
@@ -309,14 +308,10 @@
     "component_updater/supervised_user_whitelist_installer.h",
     "component_updater/sw_reporter_installer_win.cc",
     "component_updater/sw_reporter_installer_win.h",
-    "component_updater/third_party_module_list_component_installer_win.cc",
-    "component_updater/third_party_module_list_component_installer_win.h",
     "conflicts/enumerate_input_method_editors_win.cc",
     "conflicts/enumerate_input_method_editors_win.h",
     "conflicts/enumerate_shell_extensions_win.cc",
     "conflicts/enumerate_shell_extensions_win.h",
-    "conflicts/installed_programs_win.cc",
-    "conflicts/installed_programs_win.h",
     "conflicts/module_database_observer_win.h",
     "conflicts/module_database_win.cc",
     "conflicts/module_database_win.h",
@@ -328,14 +323,6 @@
     "conflicts/module_info_win.h",
     "conflicts/module_inspector_win.cc",
     "conflicts/module_inspector_win.h",
-    "conflicts/module_list_filter_win.cc",
-    "conflicts/module_list_filter_win.h",
-    "conflicts/module_list_manager_win.cc",
-    "conflicts/module_list_manager_win.h",
-    "conflicts/msi_util_win.cc",
-    "conflicts/msi_util_win.h",
-    "conflicts/problematic_programs_updater_win.cc",
-    "conflicts/problematic_programs_updater_win.h",
     "conflicts/third_party_metrics_recorder_win.cc",
     "conflicts/third_party_metrics_recorder_win.h",
     "consent_auditor/consent_auditor_factory.cc",
@@ -528,8 +515,6 @@
     "google/google_brand_chromeos.cc",
     "google/google_brand_chromeos.h",
     "google/google_update_settings_posix.cc",
-    "google/google_update_win.cc",
-    "google/google_update_win.h",
     "google/google_url_tracker_factory.cc",
     "google/google_url_tracker_factory.h",
     "gpu/gpu_mode_manager.cc",
@@ -994,6 +979,8 @@
     "password_manager/password_store_win.cc",
     "password_manager/password_store_win.h",
     "password_manager/reauth_purpose.h",
+    "payments/payment_handler_permission_context.cc",
+    "payments/payment_handler_permission_context.h",
     "payments/ssl_validity_checker.cc",
     "performance_monitor/performance_monitor.cc",
     "performance_monitor/performance_monitor.h",
@@ -2931,7 +2918,6 @@
     ]
     deps += [
       ":chrome_process_finder",
-      ":conflicts_module_list_proto",
       "//chrome:file_pre_reader",
       "//chrome/chrome_watcher:client",
       "//chrome/common:metrics_constants_util_win",
@@ -2944,7 +2930,6 @@
       "//components/browser_watcher",
       "//components/browser_watcher:browser_watcher_client",
       "//components/browser_watcher:stability_client",
-      "//google_update",
       "//third_party/crashpad/crashpad/client:client",
       "//third_party/iaccessible2",
       "//third_party/isimpledom",
@@ -2963,9 +2948,25 @@
       ]
     }
 
-    if (!is_chrome_branded) {
-      deps -= [ "//google_update" ]
-      sources -= [
+    if (is_chrome_branded) {
+      deps += [
+        ":conflicts_module_list_proto",
+        "//google_update",
+      ]
+      libs += [ "msi.lib" ]
+      sources += [
+        "component_updater/third_party_module_list_component_installer_win.cc",
+        "component_updater/third_party_module_list_component_installer_win.h",
+        "conflicts/installed_programs_win.cc",
+        "conflicts/installed_programs_win.h",
+        "conflicts/module_list_filter_win.cc",
+        "conflicts/module_list_filter_win.h",
+        "conflicts/msi_util_win.cc",
+        "conflicts/msi_util_win.h",
+        "conflicts/problematic_programs_updater_win.cc",
+        "conflicts/problematic_programs_updater_win.h",
+        "conflicts/third_party_conflicts_manager_win.cc",
+        "conflicts/third_party_conflicts_manager_win.h",
         "google/google_update_win.cc",
         "google/google_update_win.h",
       ]
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
index 321101a..3a4e4cf 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -3504,7 +3504,7 @@
 
     {"enable-v8-context-snapshot", flag_descriptions::kV8ContextSnapshotName,
      flag_descriptions::kV8ContextSnapshotDescription,
-     kOsDesktop,  // TODO(peria): Add Android support.
+     kOsMac | kOsWin | kOsLinux | kOsAndroid,
      FEATURE_VALUE_TYPE(features::kV8ContextSnapshot)},
 
 #if defined(OS_CHROMEOS)
diff --git a/chrome/browser/after_startup_task_utils.cc b/chrome/browser/after_startup_task_utils.cc
index f8a1080..a3db0dd 100644
--- a/chrome/browser/after_startup_task_utils.cc
+++ b/chrome/browser/after_startup_task_utils.cc
@@ -25,7 +25,7 @@
 #include "content/public/browser/render_frame_host.h"
 #include "content/public/browser/web_contents.h"
 #include "content/public/browser/web_contents_observer.h"
-#include "third_party/WebKit/common/page/page_visibility_state.mojom.h"
+#include "third_party/WebKit/public/mojom/page/page_visibility_state.mojom.h"
 
 using content::BrowserThread;
 using content::WebContents;
diff --git a/chrome/browser/android/compositor/tab_content_manager.cc b/chrome/browser/android/compositor/tab_content_manager.cc
index c7003b2..be9ef723 100644
--- a/chrome/browser/android/compositor/tab_content_manager.cc
+++ b/chrome/browser/android/compositor/tab_content_manager.cc
@@ -21,7 +21,6 @@
 #include "chrome/browser/android/tab_android.h"
 #include "chrome/browser/android/thumbnail/thumbnail.h"
 #include "content/public/browser/interstitial_page.h"
-#include "content/public/browser/readback_types.h"
 #include "content/public/browser/render_frame_host.h"
 #include "content/public/browser/render_view_host.h"
 #include "content/public/browser/render_widget_host.h"
@@ -57,28 +56,26 @@
         drop_after_readback_(false),
         weak_factory_(this) {
     DCHECK(rwhv);
-    content::ReadbackRequestCallback result_callback =
-        base::Bind(&TabReadbackRequest::OnFinishGetTabThumbnailBitmap,
-                   weak_factory_.GetWeakPtr());
+    auto result_callback =
+        base::BindOnce(&TabReadbackRequest::OnFinishGetTabThumbnailBitmap,
+                       weak_factory_.GetWeakPtr());
 
-    SkColorType color_type = kN32_SkColorType;
     gfx::Size view_size_in_pixels =
         rwhv->GetNativeView()->GetPhysicalBackingSize();
     if (view_size_in_pixels.IsEmpty()) {
-      result_callback.Run(SkBitmap(), content::READBACK_SURFACE_UNAVAILABLE);
+      std::move(result_callback).Run(SkBitmap());
       return;
     }
     gfx::Size thumbnail_size(
         gfx::ScaleToCeiledSize(view_size_in_pixels, thumbnail_scale_));
-    rwhv->CopyFromSurface(gfx::Rect(), thumbnail_size, result_callback,
-                          color_type);
+    rwhv->CopyFromSurface(gfx::Rect(), thumbnail_size,
+                          std::move(result_callback));
   }
 
   virtual ~TabReadbackRequest() {}
 
-  void OnFinishGetTabThumbnailBitmap(const SkBitmap& bitmap,
-                                     content::ReadbackResponse response) {
-    if (response != content::READBACK_SUCCESS || drop_after_readback_) {
+  void OnFinishGetTabThumbnailBitmap(const SkBitmap& bitmap) {
+    if (bitmap.drawsNothing() || drop_after_readback_) {
       end_callback_.Run(0.f, SkBitmap());
       return;
     }
diff --git a/chrome/browser/android/preferences/website_preference_bridge.cc b/chrome/browser/android/preferences/website_preference_bridge.cc
index 4a41ebb3..6ad3f63e 100644
--- a/chrome/browser/android/preferences/website_preference_bridge.cc
+++ b/chrome/browser/android/preferences/website_preference_bridge.cc
@@ -45,7 +45,7 @@
 #include "jni/WebsitePreferenceBridge_jni.h"
 #include "net/base/registry_controlled_domains/registry_controlled_domain.h"
 #include "storage/browser/quota/quota_manager.h"
-#include "third_party/WebKit/common/quota/quota_types.mojom.h"
+#include "third_party/WebKit/public/mojom/quota/quota_types.mojom.h"
 #include "url/origin.h"
 #include "url/url_constants.h"
 
diff --git a/chrome/browser/android/vr/gvr_keyboard_delegate.cc b/chrome/browser/android/vr/gvr_keyboard_delegate.cc
index b65e3e9..bb7eec8 100644
--- a/chrome/browser/android/vr/gvr_keyboard_delegate.cc
+++ b/chrome/browser/android/vr/gvr_keyboard_delegate.cc
@@ -129,6 +129,13 @@
   return gvr_keyboard_supports_selection(gvr_keyboard_);
 }
 
+void GvrKeyboardDelegate::OnTouchStateUpdated(
+    bool is_touching,
+    const gfx::PointF& touch_position) {
+  gvr::Vec2f position = {touch_position.x(), touch_position.y()};
+  gvr_keyboard_update_controller_touch(gvr_keyboard_, is_touching, &position);
+}
+
 void GvrKeyboardDelegate::OnButtonDown(const gfx::PointF& position) {
   gvr_keyboard_update_button_state(
       gvr_keyboard_, gvr::ControllerButton::GVR_CONTROLLER_BUTTON_CLICK, true);
diff --git a/chrome/browser/android/vr/gvr_keyboard_delegate.h b/chrome/browser/android/vr/gvr_keyboard_delegate.h
index f3ee730..8c5457f 100644
--- a/chrome/browser/android/vr/gvr_keyboard_delegate.h
+++ b/chrome/browser/android/vr/gvr_keyboard_delegate.h
@@ -36,6 +36,8 @@
                const gfx::Point3F& ray_target,
                gfx::Point3F* hit_position) override;
   void Draw(const CameraModel& model) override;
+  void OnTouchStateUpdated(bool is_touching,
+                           const gfx::PointF& touch_position) override;
   bool SupportsSelection() override;
   void OnButtonDown(const gfx::PointF& position) override;
   void OnButtonUp(const gfx::PointF& position) override;
diff --git a/chrome/browser/android/vr/gvr_keyboard_shim.cc b/chrome/browser/android/vr/gvr_keyboard_shim.cc
index 7b9f551..e78818d 100644
--- a/chrome/browser/android/vr/gvr_keyboard_shim.cc
+++ b/chrome/browser/android/vr/gvr_keyboard_shim.cc
@@ -14,6 +14,8 @@
 #include "base/logging.h"
 #include "jni/GvrKeyboardLoaderClient_jni.h"
 
+namespace {
+
 // Run CALL macro for every function defined in the API.
 #define FOR_EACH_API_FN                                         \
   CALL(gvr_keyboard_initialize)                                 \
@@ -38,33 +40,43 @@
   CALL(gvr_keyboard_advance_frame)                              \
   CALL(gvr_keyboard_render)                                     \
   CALL(gvr_keyboard_hide)                                       \
-  CALL(gvr_keyboard_destroy)
+  CALL(gvr_keyboard_destroy)                                    \
+  CALL(gvr_keyboard_update_controller_touch)
 
-namespace {
+// The min API version that is guaranteed to exists on the user's device if they
+// have some version of the Daydream keyboard installed.
+constexpr int64_t kMinExpectedApiVersion = 1;
 
-// Declare implementation function pointers.
-#define CALL(fn) decltype(&fn) impl_##fn = nullptr;
-FOR_EACH_API_FN
-#undef CALL
-
-template <typename Fn>
-bool LoadFunction(void* handle, const char* function_name, Fn* fn_out) {
-  void* fn = dlsym(handle, function_name);
-  if (!fn) {
-    LOG(ERROR) << "Failed to load " << function_name
-               << " from GVR keyboard library: " << dlerror();
-    return false;
-  }
-  *fn_out = reinterpret_cast<Fn>(fn);
-  return true;
-}
-
-static void* sdk_handle = nullptr;
+// The version of the Daydream keyboard that supports text selection.
+constexpr int64_t kSelectionSupportApiVersion = 2;
 
 // Infer text selection support by checking for the presence of an unrelated
 // method, added in the same release as selection.
 constexpr char kSelectionSymbol[] = "gvr_keyboard_update_controller_touch";
-static bool supports_selection = false;
+
+#define CALL(fn) decltype(&fn) impl_##fn = nullptr;
+struct KeyboardApi {
+  explicit KeyboardApi(int64_t version) : min_version(version) {}
+
+  // The loaded API version is at least this version.
+  int64_t min_version;
+
+  FOR_EACH_API_FN
+};
+#undef CALL
+
+static void* sdk_handle = nullptr;
+
+static KeyboardApi* keyboard_api = nullptr;
+
+template <typename Fn>
+void LoadFunction(void* handle, const char* function_name, Fn* fn_out) {
+  void* fn = dlsym(handle, function_name);
+  if (!fn)
+    return;
+
+  *fn_out = reinterpret_cast<Fn>(fn);
+}
 
 void CloseSdk() {
   if (!sdk_handle)
@@ -77,7 +89,7 @@
       env, reinterpret_cast<jlong>(sdk_handle));
 
 // Null all the function pointers.
-#define CALL(fn) impl_##fn = nullptr;
+#define CALL(fn) keyboard_api->impl_##fn = nullptr;
   FOR_EACH_API_FN
 #undef CALL
 
@@ -105,31 +117,35 @@
     return false;
   }
 
+  // We currently don't have an API that gives us the actual version of the
+  // keyboard, so we extract the minimum version based on the API methods that
+  // we can dynamically load.
+  int64_t min_api_version = kMinExpectedApiVersion;
+  if (dlsym(sdk_handle, kSelectionSymbol) != nullptr) {
+    min_api_version = kSelectionSupportApiVersion;
+  }
+
   // Load all function pointers from the SDK.
-  bool success = true;
-#define CALL(fn) success &= LoadFunction(sdk_handle, #fn, &impl_##fn);
+  DCHECK(!keyboard_api);
+  keyboard_api = new KeyboardApi(min_api_version);
+
+// Load all function pointers from SDK.
+#define CALL(fn) LoadFunction(sdk_handle, #fn, &keyboard_api->impl_##fn);
   FOR_EACH_API_FN
 #undef CALL
 
-  if (!success) {
-    CloseSdk();
-    return false;
-  }
-
   gvr_keyboard_initialize(env, context_wrapper.obj(),
                           remote_class_loader.obj());
-
-  supports_selection = (dlsym(sdk_handle, kSelectionSymbol) != nullptr);
-
-  return success;
+  return true;
 }
 
+#undef FOR_EACH_API_FN
 }  // namespace
 
 void gvr_keyboard_initialize(JNIEnv* env,
                              jobject app_context,
                              jobject class_loader) {
-  impl_gvr_keyboard_initialize(env, app_context, class_loader);
+  keyboard_api->impl_gvr_keyboard_initialize(env, app_context, class_loader);
 }
 
 gvr_keyboard_context* gvr_keyboard_create(void* closure,
@@ -137,121 +153,135 @@
   if (!LoadSdk(closure, callback)) {
     return nullptr;
   }
-  return impl_gvr_keyboard_create(closure, callback);
+  return keyboard_api->impl_gvr_keyboard_create(closure, callback);
 }
 
 void gvr_keyboard_destroy(gvr_keyboard_context** context) {
-  impl_gvr_keyboard_destroy(context);
+  keyboard_api->impl_gvr_keyboard_destroy(context);
   CloseSdk();
 }
 
 int32_t gvr_keyboard_get_input_mode(gvr_keyboard_context* context) {
-  return impl_gvr_keyboard_get_input_mode(context);
+  return keyboard_api->impl_gvr_keyboard_get_input_mode(context);
 }
 
 void gvr_keyboard_set_input_mode(gvr_keyboard_context* context,
                                  int32_t input_mode) {
-  impl_gvr_keyboard_set_input_mode(context, input_mode);
+  keyboard_api->impl_gvr_keyboard_set_input_mode(context, input_mode);
 }
 
 void gvr_keyboard_get_recommended_world_from_keyboard_matrix(
     float distance_from_eye,
     gvr_mat4f* matrix) {
-  impl_gvr_keyboard_get_recommended_world_from_keyboard_matrix(
+  keyboard_api->impl_gvr_keyboard_get_recommended_world_from_keyboard_matrix(
       distance_from_eye, matrix);
 }
 
 void gvr_keyboard_set_world_from_keyboard_matrix(gvr_keyboard_context* context,
                                                  const gvr_mat4f* matrix) {
-  impl_gvr_keyboard_set_world_from_keyboard_matrix(context, matrix);
+  keyboard_api->impl_gvr_keyboard_set_world_from_keyboard_matrix(context,
+                                                                 matrix);
 }
 
 void gvr_keyboard_show(gvr_keyboard_context* context) {
-  impl_gvr_keyboard_show(context);
+  keyboard_api->impl_gvr_keyboard_show(context);
 }
 
 void gvr_keyboard_update_button_state(gvr_keyboard_context* context,
                                       int32_t button_index,
                                       bool pressed) {
-  impl_gvr_keyboard_update_button_state(context, button_index, pressed);
+  keyboard_api->impl_gvr_keyboard_update_button_state(context, button_index,
+                                                      pressed);
 }
 
 bool gvr_keyboard_update_controller_ray(gvr_keyboard_context* context,
                                         const gvr_vec3f* start,
                                         const gvr_vec3f* end,
                                         gvr_vec3f* hit) {
-  return impl_gvr_keyboard_update_controller_ray(context, start, end, hit);
+  return keyboard_api->impl_gvr_keyboard_update_controller_ray(context, start,
+                                                               end, hit);
+}
+
+void gvr_keyboard_update_controller_touch(gvr_keyboard_context* context,
+                                          bool touched,
+                                          const gvr_vec2f* pos) {
+  if (!keyboard_api->impl_gvr_keyboard_update_controller_touch)
+    return;
+
+  return keyboard_api->impl_gvr_keyboard_update_controller_touch(context,
+                                                                 touched, pos);
 }
 
 char* gvr_keyboard_get_text(gvr_keyboard_context* context) {
-  return impl_gvr_keyboard_get_text(context);
+  return keyboard_api->impl_gvr_keyboard_get_text(context);
 }
 
 void gvr_keyboard_set_text(gvr_keyboard_context* context, const char* text) {
-  return impl_gvr_keyboard_set_text(context, text);
+  return keyboard_api->impl_gvr_keyboard_set_text(context, text);
 }
 
 void gvr_keyboard_get_selection_indices(gvr_keyboard_context* context,
                                         size_t* start,
                                         size_t* end) {
-  impl_gvr_keyboard_get_selection_indices(context, start, end);
+  keyboard_api->impl_gvr_keyboard_get_selection_indices(context, start, end);
 }
 
 void gvr_keyboard_set_selection_indices(gvr_keyboard_context* context,
                                         size_t start,
                                         size_t end) {
-  impl_gvr_keyboard_set_selection_indices(context, start, end);
+  keyboard_api->impl_gvr_keyboard_set_selection_indices(context, start, end);
 }
 
 void gvr_keyboard_get_composing_indices(gvr_keyboard_context* context,
                                         size_t* start,
                                         size_t* end) {
-  impl_gvr_keyboard_get_composing_indices(context, start, end);
+  keyboard_api->impl_gvr_keyboard_get_composing_indices(context, start, end);
 }
 
 void gvr_keyboard_set_composing_indices(gvr_keyboard_context* context,
                                         size_t start,
                                         size_t end) {
-  impl_gvr_keyboard_set_composing_indices(context, start, end);
+  keyboard_api->impl_gvr_keyboard_set_composing_indices(context, start, end);
 }
 
 void gvr_keyboard_set_frame_time(gvr_keyboard_context* context,
                                  const gvr_clock_time_point* time) {
-  impl_gvr_keyboard_set_frame_time(context, time);
+  keyboard_api->impl_gvr_keyboard_set_frame_time(context, time);
 }
 
 void gvr_keyboard_set_eye_from_world_matrix(gvr_keyboard_context* context,
                                             int32_t eye_type,
                                             const gvr_mat4f* matrix) {
-  impl_gvr_keyboard_set_eye_from_world_matrix(context, eye_type, matrix);
+  keyboard_api->impl_gvr_keyboard_set_eye_from_world_matrix(context, eye_type,
+                                                            matrix);
 }
 
 void gvr_keyboard_set_projection_matrix(gvr_keyboard_context* context,
                                         int32_t eye_type,
                                         const gvr_mat4f* projection) {
-  impl_gvr_keyboard_set_projection_matrix(context, eye_type, projection);
+  keyboard_api->impl_gvr_keyboard_set_projection_matrix(context, eye_type,
+                                                        projection);
 }
 
 void gvr_keyboard_set_viewport(gvr_keyboard_context* context,
                                int32_t eye_type,
                                const gvr_recti* viewport) {
-  impl_gvr_keyboard_set_viewport(context, eye_type, viewport);
+  keyboard_api->impl_gvr_keyboard_set_viewport(context, eye_type, viewport);
 }
 
 void gvr_keyboard_advance_frame(gvr_keyboard_context* context) {
-  impl_gvr_keyboard_advance_frame(context);
+  keyboard_api->impl_gvr_keyboard_advance_frame(context);
 }
 
 void gvr_keyboard_render(gvr_keyboard_context* context, int32_t eye_type) {
-  impl_gvr_keyboard_render(context, eye_type);
+  keyboard_api->impl_gvr_keyboard_render(context, eye_type);
 }
 
 void gvr_keyboard_hide(gvr_keyboard_context* context) {
-  impl_gvr_keyboard_hide(context);
+  keyboard_api->impl_gvr_keyboard_hide(context);
 }
 
 bool gvr_keyboard_supports_selection(gvr_keyboard_context* context) {
-  return supports_selection;
+  return keyboard_api->min_version >= kSelectionSupportApiVersion;
 }
 
-#undef FOR_EACH_API_FN
diff --git a/chrome/browser/android/vr/mailbox_to_surface_bridge.cc b/chrome/browser/android/vr/mailbox_to_surface_bridge.cc
index 0347eb8..ad5f5b59 100644
--- a/chrome/browser/android/vr/mailbox_to_surface_bridge.cc
+++ b/chrome/browser/android/vr/mailbox_to_surface_bridge.cc
@@ -137,7 +137,10 @@
 
 namespace vr {
 
-MailboxToSurfaceBridge::MailboxToSurfaceBridge() : weak_ptr_factory_(this) {}
+MailboxToSurfaceBridge::MailboxToSurfaceBridge(base::OnceClosure on_initialized)
+    : on_initialized_(std::move(on_initialized)), weak_ptr_factory_(this) {
+  DVLOG(1) << __FUNCTION__;
+}
 
 MailboxToSurfaceBridge::~MailboxToSurfaceBridge() {
   if (surface_handle_) {
@@ -146,11 +149,24 @@
     tracker->RemoveSurface(surface_handle_);
   }
   DestroyContext();
+  DVLOG(1) << __FUNCTION__;
+}
+
+bool MailboxToSurfaceBridge::IsReady() {
+  return context_provider_ && gl_;
+}
+
+bool MailboxToSurfaceBridge::IsGpuWorkaroundEnabled(int32_t workaround) {
+  DCHECK(IsReady());
+
+  return context_provider_->GetGpuFeatureInfo().IsWorkaroundEnabled(workaround);
 }
 
 void MailboxToSurfaceBridge::OnContextAvailable(
     std::unique_ptr<gl::ScopedJavaSurface> surface,
     scoped_refptr<viz::ContextProvider> provider) {
+  DVLOG(1) << __FUNCTION__;
+
   // Must save a reference to the viz::ContextProvider to keep it alive,
   // otherwise the GL context created from it becomes invalid.
   context_provider_ = std::move(provider);
@@ -168,6 +184,10 @@
     return;
   }
   InitializeRenderer();
+
+  if (on_initialized_) {
+    base::ResetAndReturn(&on_initialized_).Run();
+  }
 }
 
 void MailboxToSurfaceBridge::CreateSurface(
@@ -236,7 +256,7 @@
 }
 
 void MailboxToSurfaceBridge::ResizeSurface(int width, int height) {
-  if (!gl_) {
+  if (!IsReady()) {
     // We're not initialized yet, save the requested size for later.
     needs_resize_ = true;
     resize_width_ = width;
@@ -251,10 +271,10 @@
 
 bool MailboxToSurfaceBridge::CopyMailboxToSurfaceAndSwap(
     const gpu::MailboxHolder& mailbox) {
-  if (!gl_) {
+  if (!IsReady()) {
     // We may not have a context yet, i.e. due to surface initialization
     // being incomplete. This is not an error, but we obviously can't draw
-    // yet.
+    // yet. TODO(klausw): change the caller to defer this until we are ready.
     return false;
   }
 
@@ -350,6 +370,8 @@
 }
 
 void MailboxToSurfaceBridge::DrawQuad(unsigned int texture_handle) {
+  DCHECK(IsReady());
+
   // We're redrawing over the entire viewport, but it's generally more
   // efficient on mobile tiling GPUs to clear anyway as a hint that
   // we're done with the old content. TODO(klausw, https://crbug.com/700389):
diff --git a/chrome/browser/android/vr/mailbox_to_surface_bridge.h b/chrome/browser/android/vr/mailbox_to_surface_bridge.h
index fc844b8..b5e8bb0b 100644
--- a/chrome/browser/android/vr/mailbox_to_surface_bridge.h
+++ b/chrome/browser/android/vr/mailbox_to_surface_bridge.h
@@ -5,6 +5,7 @@
 #ifndef CHROME_BROWSER_ANDROID_VR_MAILBOX_TO_SURFACE_BRIDGE_H_
 #define CHROME_BROWSER_ANDROID_VR_MAILBOX_TO_SURFACE_BRIDGE_H_
 
+#include "base/callback.h"
 #include "base/memory/weak_ptr.h"
 
 namespace gl {
@@ -27,9 +28,17 @@
 
 class MailboxToSurfaceBridge {
  public:
-  MailboxToSurfaceBridge();
+  explicit MailboxToSurfaceBridge(base::OnceClosure on_initialized);
   ~MailboxToSurfaceBridge();
 
+  // Returns true if the GPU process connection is established and ready to use.
+  // Equivalent to waiting for on_initialized to be called.
+  bool IsReady();
+
+  // Checks if a workaround from "gpu/config/gpu_driver_bug_workaround_type.h"
+  // is active. Requires initialization to be complete.
+  bool IsGpuWorkaroundEnabled(int32_t workaround);
+
   void CreateSurface(gl::SurfaceTexture*);
 
   void ResizeSurface(int width, int height);
@@ -49,6 +58,7 @@
   scoped_refptr<viz::ContextProvider> context_provider_;
   gpu::gles2::GLES2Interface* gl_ = nullptr;
   int surface_handle_ = 0;
+  base::OnceClosure on_initialized_;
 
   // Saved state for a pending resize, the dimensions are only
   // valid if needs_resize_ is true.
diff --git a/chrome/browser/android/vr/vr_shell.cc b/chrome/browser/android/vr/vr_shell.cc
index 89624d8..5e5d0daa 100644
--- a/chrome/browser/android/vr/vr_shell.cc
+++ b/chrome/browser/android/vr/vr_shell.cc
@@ -224,7 +224,7 @@
   // tabs. https://crbug.com/684661
   metrics_helper_ = std::make_unique<VrMetricsHelper>(
       GetNonNativePageWebContents(),
-      webvr_mode_ ? Mode::kWebVr : Mode::kVrBrowsingRegular,
+      webvr_mode_ ? Mode::kWebXrVrPresentation : Mode::kVrBrowsingRegular,
       web_vr_autopresentation_expected_);
 }
 
@@ -450,7 +450,8 @@
   if (!webvr_mode_ && !web_vr_autopresentation_expected_) {
     AssetsLoader::GetInstance()->GetMetricsHelper()->OnEnter(Mode::kVrBrowsing);
   } else {
-    AssetsLoader::GetInstance()->GetMetricsHelper()->OnEnter(Mode::kWebVr);
+    AssetsLoader::GetInstance()->GetMetricsHelper()->OnEnter(
+        Mode::kWebXrVrPresentation);
   }
 }
 
diff --git a/chrome/browser/android/vr/vr_shell_gl.cc b/chrome/browser/android/vr/vr_shell_gl.cc
index 31aef53..36183f2 100644
--- a/chrome/browser/android/vr/vr_shell_gl.cc
+++ b/chrome/browser/android/vr/vr_shell_gl.cc
@@ -40,6 +40,7 @@
 #include "device/vr/android/gvr/gvr_delegate.h"
 #include "device/vr/android/gvr/gvr_device.h"
 #include "device/vr/android/gvr/gvr_gamepad_data_provider.h"
+#include "gpu/config/gpu_driver_bug_workaround_type.h"
 #include "third_party/WebKit/public/platform/WebGestureEvent.h"
 #include "ui/gfx/geometry/angle_conversions.h"
 #include "ui/gl/android/scoped_java_surface.h"
@@ -94,6 +95,12 @@
 static constexpr base::TimeDelta kWebVRFenceCheckTimeout =
     base::TimeDelta::FromMicroseconds(2000);
 
+// Polling interval for checking for the WebVR rendering GL fence. Used as
+// an alternative to kWebVRFenceCheckTimeout if the GPU workaround is active.
+// The actual interval may be longer due to PostDelayedTask's resolution.
+static constexpr base::TimeDelta kWebVRFenceCheckPollInterval =
+    base::TimeDelta::FromMicroseconds(500);
+
 static constexpr int kWebVrInitialFrameTimeoutSeconds = 5;
 static constexpr int kWebVrSpinnerTimeoutSeconds = 2;
 
@@ -315,6 +322,7 @@
 
   if (reinitializing && mailbox_bridge_) {
     mailbox_bridge_ = nullptr;
+    mailbox_bridge_ready_ = false;
     CreateOrResizeWebVRSurface(webvr_surface_size_);
   }
 
@@ -323,6 +331,11 @@
     OnVSync(base::TimeTicks::Now());
 }
 
+void VrShellGl::OnGpuProcessConnectionReady() {
+  DVLOG(1) << __FUNCTION__;
+  mailbox_bridge_ready_ = true;
+}
+
 void VrShellGl::CreateOrResizeWebVRSurface(const gfx::Size& size) {
   if (!webvr_surface_texture_) {
     DLOG(ERROR) << "No WebVR surface texture available";
@@ -346,7 +359,11 @@
   if (mailbox_bridge_) {
     mailbox_bridge_->ResizeSurface(size.width(), size.height());
   } else {
-    mailbox_bridge_ = std::make_unique<MailboxToSurfaceBridge>();
+    mailbox_bridge_ready_ = false;
+    mailbox_bridge_ = std::make_unique<MailboxToSurfaceBridge>(
+        base::BindOnce(&VrShellGl::OnGpuProcessConnectionReady,
+                       weak_ptr_factory_.GetWeakPtr()));
+
     mailbox_bridge_->CreateSurface(webvr_surface_texture_.get());
   }
 }
@@ -750,6 +767,9 @@
   controller_model.laser_origin = laser_origin;
   controller_model.handedness = controller_->GetHandedness();
   controller_model.recentered = controller_->GetRecentered();
+  controller_model.touching_touchpad = controller_->IsTouching();
+  controller_model.touchpad_touch_position =
+      gfx::PointF(controller_->TouchPosX(), controller_->TouchPosY());
   controller_model_ = controller_model;
 
   ReticleModel reticle_model;
@@ -1143,16 +1163,35 @@
     int16_t frame_index,
     const gfx::Transform& head_pose,
     std::unique_ptr<gl::GLFenceEGL> fence) {
+  bool use_polling = mailbox_bridge_ready_ &&
+                     mailbox_bridge_->IsGpuWorkaroundEnabled(
+                         gpu::DONT_USE_EGLCLIENTWAITSYNC_WITH_TIMEOUT);
   if (fence) {
-    fence->ClientWaitWithTimeoutNanos(kWebVRFenceCheckTimeout.InMicroseconds() *
-                                      1000);
+    if (!use_polling) {
+      // Use wait-with-timeout to find out as soon as possible when rendering
+      // is complete.
+      fence->ClientWaitWithTimeoutNanos(
+          kWebVRFenceCheckTimeout.InMicroseconds() * 1000);
+    }
     if (!fence->HasCompleted()) {
       webvr_delayed_frame_submit_.Reset(base::BindRepeating(
           &VrShellGl::DrawFrameSubmitWhenReady, base::Unretained(this)));
-      task_runner_->PostTask(
-          FROM_HERE,
-          base::BindOnce(webvr_delayed_frame_submit_.callback(), frame_index,
-                         head_pose, base::Passed(&fence)));
+      if (use_polling) {
+        // Poll the fence status at a short interval. This burns some CPU, but
+        // avoids excessive waiting on devices which don't handle timeouts
+        // correctly. Downside is that the completion status is only detected
+        // with a delay of up to one polling interval.
+        task_runner_->PostDelayedTask(
+            FROM_HERE,
+            base::BindOnce(webvr_delayed_frame_submit_.callback(), frame_index,
+                           head_pose, base::Passed(&fence)),
+            kWebVRFenceCheckPollInterval);
+      } else {
+        task_runner_->PostTask(
+            FROM_HERE,
+            base::BindOnce(webvr_delayed_frame_submit_.callback(), frame_index,
+                           head_pose, base::Passed(&fence)));
+      }
       return;
     }
   }
diff --git a/chrome/browser/android/vr/vr_shell_gl.h b/chrome/browser/android/vr/vr_shell_gl.h
index 872c358..8abb57db 100644
--- a/chrome/browser/android/vr/vr_shell_gl.h
+++ b/chrome/browser/android/vr/vr_shell_gl.h
@@ -137,6 +137,7 @@
   device::mojom::VRDisplayFrameTransportOptionsPtr
   GetWebVrFrameTransportOptions();
   void InitializeRenderer();
+  void OnGpuProcessConnectionReady();
   // Returns true if successfully resized.
   bool ResizeForWebVR(int16_t frame_index);
   void UpdateSamples();
@@ -226,6 +227,7 @@
   int premature_received_frames_ = 0;
   base::queue<uint16_t> pending_frames_;
   std::unique_ptr<MailboxToSurfaceBridge> mailbox_bridge_;
+  bool mailbox_bridge_ready_ = false;
 
   // A fence used to avoid overstuffed GVR buffers in WebVR mode.
   std::unique_ptr<gl::GLFenceEGL> webvr_prev_frame_completion_fence_;
diff --git a/chrome/browser/android/vr/vr_usage_monitor.cc b/chrome/browser/android/vr/vr_usage_monitor.cc
index 6fc74cd..dd0b81bf 100644
--- a/chrome/browser/android/vr/vr_usage_monitor.cc
+++ b/chrome/browser/android/vr/vr_usage_monitor.cc
@@ -11,7 +11,6 @@
 #include "content/public/browser/browser_thread.h"
 #include "content/public/browser/navigation_handle.h"
 #include "content/public/browser/web_contents.h"
-#include "services/metrics/public/cpp/ukm_builders.h"
 
 namespace vr {
 
@@ -119,7 +118,7 @@
       rappor::SampleDomainAndRegistryFromGURL(rappor::GetDefaultService(),
                                               "VR.Video.Browser", origin);
       break;
-    case Mode::kWebVr:
+    case Mode::kWebXrVrPresentation:
       rappor::SampleDomainAndRegistryFromGURL(rappor::GetDefaultService(),
                                               "VR.Video.WebVR", origin);
       break;
@@ -132,19 +131,6 @@
   }
 }
 
-int GetRoundedDurationInSeconds(base::Time start, base::Time end) {
-  base::TimeDelta duration = end - start;
-  if (duration.InHours() > 2) {
-    return duration.InHours() * 3600;
-  } else if (duration.InMinutes() > 10) {
-    return (duration.InMinutes() / 10) * 10 * 60;
-  } else if (duration.InSeconds() > 60) {
-    return duration.InMinutes() * 60;
-  } else {
-    return duration.InSeconds();
-  }
-}
-
 }  // namespace
 
 template <SessionEventName SessionType>
@@ -212,7 +198,7 @@
   if (!is_vr_enabled_) {
     mode = Mode::kNoVr;
   } else if (is_webvr_) {
-    mode = Mode::kWebVr;
+    mode = Mode::kWebXrVrPresentation;
   } else {
     mode =
         is_fullscreen_ ? Mode::kVrBrowsingFullscreen : Mode::kVrBrowsingRegular;
@@ -257,7 +243,7 @@
   // start the new modes
   if (new_mode != Mode::kNoVr) {
     switch (new_mode) {
-      case Mode::kWebVr:
+      case Mode::kWebXrVrPresentation:
         if (started_with_autopresentation_) {
           mode_timer_ = std::make_unique<SessionTimerImpl<MODE_WEBVR_DLA>>(
               kMaximumHeadsetSessionGap, kMinimumHeadsetSessionDuration);
@@ -306,8 +292,8 @@
     SendRapporEnteredMode(origin_, new_mode);
   }
 
-  // stop the old session
-  if (mode_ != Mode::kNoVr && new_mode == Mode::kNoVr) {
+  // If we are switching out of VR, stop all the session timers and record.
+  if (new_mode == Mode::kNoVr) {
     if (num_videos_playing_ > 0)
       session_video_timer_->StopSession(false, switch_time);
 
@@ -320,25 +306,32 @@
     UMA_HISTOGRAM_COUNTS_100("VR.Session.VoiceSearch.StartedCount",
                              num_voice_search_started_);
 
-    ukm::UkmRecorder* ukm_recorder = ukm::UkmRecorder::Get();
-    DCHECK(ukm_recorder);
-    DCHECK(!time_on_page_start_.is_null());
-    DCHECK(time_on_page_start_ <= base::Time::Now());
-
-    // It's possible if the user started a navigation that is incomplete at this
-    // point that this will double log the value. However, in that case the
-    // value should be the same, so whichever lands in the UKM will be fine.
-    // TODO(offenwanger): Add a check to ensure that the value is only submitted
-    // once.
-    ukm::builders::XR_PageSession(last_source_id_)
-        .SetTimeOnPage(
-            GetRoundedDurationInSeconds(time_on_page_start_, base::Time::Now()))
-        .Record(ukm_recorder);
+    // Do not assume page_session_tracker_ is set because it's possible that it
+    // is null if DidStartNavigation has already submitted and cleared
+    // page_session_tracker and DidFinishNavigation has not yet created the new
+    // one.
+    if (page_session_tracker_) {
+      page_session_tracker_->SetSessionEnd(base::Time::Now());
+      page_session_tracker_->ukm_entry()->SetDuration(
+          page_session_tracker_->GetRoundedDurationInSeconds());
+      page_session_tracker_->RecordEntry();
+      page_session_tracker_ = nullptr;
+    }
   }
 
-  // start the new session
-  if (mode_ == Mode::kNoVr && new_mode != Mode::kNoVr) {
-    // we are entering a vr mode from non-vr mode - start the vr session
+  // If we are switching off WebVR presentation, then the presentation session
+  // is done. As above, do not assume presentation_session_track_ is valid.
+  if (mode_ == Mode::kWebXrVrPresentation && presentation_session_tracker_) {
+    presentation_session_tracker_->SetSessionEnd(base::Time::Now());
+    presentation_session_tracker_->ukm_entry()->SetDuration(
+        presentation_session_tracker_->GetRoundedDurationInSeconds());
+    presentation_session_tracker_->RecordEntry();
+    presentation_session_tracker_ = nullptr;
+  }
+
+  // If we are switching from no VR to any kind of VR, start the new VR session
+  // timers.
+  if (mode_ == Mode::kNoVr) {
     session_timer_->StartSession(switch_time);
     num_session_video_playback_ = 0;
     num_session_navigation_ = 0;
@@ -349,21 +342,23 @@
       num_session_video_playback_ = num_videos_playing_;
     }
 
-    ukm::UkmRecorder* ukm_recorder = ukm::UkmRecorder::Get();
-    DCHECK(ukm_recorder);
-
-    last_source_id_ = ukm::GetSourceIdForWebContentsDocument(web_contents());
-    time_on_page_start_ = base::Time::Now();
+    page_session_tracker_ =
+        std::make_unique<SessionTracker<ukm::builders::XR_PageSession>>(
+            std::make_unique<ukm::builders::XR_PageSession>(
+                ukm::GetSourceIdForWebContentsDocument(web_contents())));
   }
 
-  if (new_mode == Mode::kVrBrowsingFullscreen && mode_ != Mode::kNoVr) {
-    ukm::UkmRecorder* ukm_recorder = ukm::UkmRecorder::Get();
-    DCHECK(ukm_recorder);
+  if (new_mode == Mode::kVrBrowsingFullscreen && page_session_tracker_) {
+    page_session_tracker_->ukm_entry()->SetEnteredFullscreen(1);
+  }
 
-    ukm::builders::XR_PageSession(
-        ukm::GetSourceIdForWebContentsDocument(web_contents()))
-        .SetEnteredFullscreen(1)
-        .Record(ukm_recorder);
+  // If we are switching to WebVR presentation, start the new presentation
+  // session.
+  if (new_mode == Mode::kWebXrVrPresentation) {
+    presentation_session_tracker_ = std::make_unique<
+        SessionTracker<ukm::builders::XR_WebXR_PresentationSession>>(
+        std::make_unique<ukm::builders::XR_WebXR_PresentationSession>(
+            ukm::GetSourceIdForWebContentsDocument(web_contents())));
   }
 
   mode_ = new_mode;
@@ -372,7 +367,7 @@
 VrMetricsHelper::VrMetricsHelper(content::WebContents* contents,
                                  Mode initial_mode,
                                  bool started_with_autopresentation)
-    : is_webvr_(initial_mode == Mode::kWebVr),
+    : is_webvr_(initial_mode == Mode::kWebXrVrPresentation),
       is_vr_enabled_(initial_mode != Mode::kNoVr),
       started_with_autopresentation_(started_with_autopresentation) {
   DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
@@ -380,8 +375,6 @@
   num_videos_playing_ = contents->GetCurrentlyPlayingVideoCount();
   is_fullscreen_ = contents->IsFullscreen();
   origin_ = contents->GetLastCommittedURL();
-  last_source_id_ = ukm::GetSourceIdForWebContentsDocument(contents);
-  time_on_page_start_ = base::Time::Now();
 
   Observe(contents);
   if (started_with_autopresentation) {
@@ -446,12 +439,21 @@
 
 void VrMetricsHelper::DidStartNavigation(content::NavigationHandle* handle) {
   if (handle && handle->IsInMainFrame() && !handle->IsSameDocument()) {
-    ukm::UkmRecorder* ukm_recorder = ukm::UkmRecorder::Get();
-    DCHECK(ukm_recorder);
-    ukm::builders::XR_PageSession(last_source_id_)
-        .SetTimeOnPage(
-            GetRoundedDurationInSeconds(time_on_page_start_, base::Time::Now()))
-        .Record(ukm_recorder);
+    if (page_session_tracker_) {
+      page_session_tracker_->SetSessionEnd(base::Time::Now());
+      page_session_tracker_->ukm_entry()->SetDuration(
+          page_session_tracker_->GetRoundedDurationInSeconds());
+      page_session_tracker_->RecordEntry();
+      page_session_tracker_ = nullptr;
+    }
+
+    if (presentation_session_tracker_) {
+      presentation_session_tracker_->SetSessionEnd(base::Time::Now());
+      presentation_session_tracker_->ukm_entry()->SetDuration(
+          presentation_session_tracker_->GetRoundedDurationInSeconds());
+      presentation_session_tracker_->RecordEntry();
+      presentation_session_tracker_ = nullptr;
+    }
   }
 }
 
@@ -471,9 +473,17 @@
     // Get the ukm::SourceId from the handle so that we don't wind up with a
     // wrong ukm::SourceId from this WebContentObserver perhaps executing after
     // another which changes the SourceId.
-    last_source_id_ = ukm::ConvertToSourceId(handle->GetNavigationId(),
-                                             ukm::SourceIdType::NAVIGATION_ID);
-    time_on_page_start_ = base::Time::Now();
+    page_session_tracker_ =
+        std::make_unique<SessionTracker<ukm::builders::XR_PageSession>>(
+            std::make_unique<ukm::builders::XR_PageSession>(
+                ukm::GetSourceIdForWebContentsDocument(web_contents())));
+
+    if (mode_ == Mode::kWebXrVrPresentation) {
+      presentation_session_tracker_ = std::make_unique<
+          SessionTracker<ukm::builders::XR_WebXR_PresentationSession>>(
+          std::make_unique<ukm::builders::XR_WebXR_PresentationSession>(
+              ukm::GetSourceIdForWebContentsDocument(web_contents())));
+    }
 
     num_session_navigation_++;
   }
diff --git a/chrome/browser/android/vr/vr_usage_monitor.h b/chrome/browser/android/vr/vr_usage_monitor.h
index 36bde9f..8002b11 100644
--- a/chrome/browser/android/vr/vr_usage_monitor.h
+++ b/chrome/browser/android/vr/vr_usage_monitor.h
@@ -10,6 +10,7 @@
 #include "base/time/time.h"
 #include "chrome/browser/vr/mode.h"
 #include "content/public/browser/web_contents_observer.h"
+#include "services/metrics/public/cpp/ukm_builders.h"
 #include "services/metrics/public/cpp/ukm_source_id.h"
 
 namespace vr {
@@ -46,6 +47,53 @@
   DISALLOW_COPY_AND_ASSIGN(SessionTimer);
 };
 
+// SessionTracker tracks UKM data for sessions and sends the data upon request.
+template <class T>
+class SessionTracker {
+ public:
+  explicit SessionTracker(std::unique_ptr<T> entry)
+      : ukm_entry_(std::move(entry)),
+        start_time_(base::Time::Now()),
+        stop_time_(base::Time::Now()) {}
+  virtual ~SessionTracker() {}
+  T* ukm_entry() { return ukm_entry_.get(); }
+  void SetSessionEnd(base::Time stop_time) { stop_time_ = stop_time; }
+
+  int GetRoundedDurationInSeconds() {
+    if (start_time_ > stop_time_) {
+      // Return negative one to indicate an invalid value was recorded.
+      return -1;
+    }
+
+    base::TimeDelta duration = stop_time_ - start_time_;
+
+    if (duration.InHours() > 1) {
+      return duration.InHours() * 3600;
+    } else if (duration.InMinutes() > 10) {
+      return (duration.InMinutes() / 10) * 10 * 60;
+    } else if (duration.InSeconds() > 60) {
+      return duration.InMinutes() * 60;
+    } else {
+      return duration.InSeconds();
+    }
+  }
+
+  void RecordEntry() {
+    ukm::UkmRecorder* ukm_recorder = ukm::UkmRecorder::Get();
+    DCHECK(ukm_recorder);
+
+    ukm_entry_->Record(ukm_recorder);
+  }
+
+ protected:
+  std::unique_ptr<T> ukm_entry_;
+
+  base::Time start_time_;
+  base::Time stop_time_;
+
+  DISALLOW_COPY_AND_ASSIGN(SessionTracker);
+};
+
 // This class is not thread-safe and must only be used from the main thread.
 class VrMetricsHelper : public content::WebContentsObserver {
  public:
@@ -79,11 +127,12 @@
   std::unique_ptr<SessionTimer> mode_timer_;
   std::unique_ptr<SessionTimer> session_timer_;
 
-  Mode mode_ = Mode::kNoVr;
+  std::unique_ptr<SessionTracker<ukm::builders::XR_PageSession>>
+      page_session_tracker_;
+  std::unique_ptr<SessionTracker<ukm::builders::XR_WebXR_PresentationSession>>
+      presentation_session_tracker_;
 
-  // The last collected source id
-  ukm::SourceId last_source_id_;
-  base::Time time_on_page_start_;
+  Mode mode_ = Mode::kNoVr;
 
   // state that gets translated into vr_mode:
   bool is_fullscreen_ = false;
diff --git a/chrome/browser/android/vr/vr_usage_monitor_unittest.cc b/chrome/browser/android/vr/vr_usage_monitor_unittest.cc
new file mode 100644
index 0000000..64153cce
--- /dev/null
+++ b/chrome/browser/android/vr/vr_usage_monitor_unittest.cc
@@ -0,0 +1,41 @@
+// Copyright (c) 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/android/vr/vr_usage_monitor.h"
+#include "components/ukm/content/source_url_recorder.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace vr {
+
+class FakeUkmEvent {
+  void Record(ukm::UkmRecorder* recorder) {}
+};
+
+class VRUseageMonitorTest : public testing::Test {
+ public:
+  VRUseageMonitorTest() {}
+  DISALLOW_COPY_AND_ASSIGN(VRUseageMonitorTest);
+};
+
+TEST_F(VRUseageMonitorTest, SessionTrackerGetRoundedDurationInSeconds) {
+  SessionTracker<FakeUkmEvent> tracker(std::make_unique<FakeUkmEvent>());
+  base::Time now = base::Time::Now();
+
+  tracker.SetSessionEnd(now + base::TimeDelta::FromSeconds(8));
+  EXPECT_EQ(tracker.GetRoundedDurationInSeconds(), 8);
+
+  // 3 min and 7 seconds, round down to nearest minute
+  tracker.SetSessionEnd(now + base::TimeDelta::FromSeconds(187));
+  EXPECT_EQ(tracker.GetRoundedDurationInSeconds(), 180);
+
+  // 22 minutes 34 seconds, rounds down to nearest 10 minutes
+  tracker.SetSessionEnd(now + base::TimeDelta::FromSeconds(1254));
+  EXPECT_EQ(tracker.GetRoundedDurationInSeconds(), 1200);
+
+  // 2 hours, 10 minutes, 22 seconds, rounds down nearest hour
+  tracker.SetSessionEnd(now + base::TimeDelta::FromSeconds(7822));
+  EXPECT_EQ(tracker.GetRoundedDurationInSeconds(), 7200);
+}
+
+}  // namespace vr
diff --git a/chrome/browser/autofill/personal_data_manager_factory.cc b/chrome/browser/autofill/personal_data_manager_factory.cc
index 8f0b226..6ded2204 100644
--- a/chrome/browser/autofill/personal_data_manager_factory.cc
+++ b/chrome/browser/autofill/personal_data_manager_factory.cc
@@ -8,14 +8,11 @@
 #include "chrome/browser/browser_process.h"
 #include "chrome/browser/profiles/incognito_helpers.h"
 #include "chrome/browser/profiles/profile.h"
-#include "chrome/browser/signin/account_tracker_service_factory.h"
-#include "chrome/browser/signin/signin_manager_factory.h"
+#include "chrome/browser/signin/identity_manager_factory.h"
 #include "chrome/browser/web_data_service_factory.h"
 #include "components/autofill/core/browser/personal_data_manager.h"
 #include "components/autofill/core/browser/webdata/autofill_webdata_service.h"
 #include "components/keyed_service/content/browser_context_dependency_manager.h"
-#include "components/signin/core/browser/account_tracker_service.h"
-#include "components/signin/core/browser/signin_manager.h"
 
 namespace autofill {
 
@@ -35,8 +32,7 @@
     : BrowserContextKeyedServiceFactory(
         "PersonalDataManager",
         BrowserContextDependencyManager::GetInstance()) {
-  DependsOn(AccountTrackerServiceFactory::GetInstance());
-  DependsOn(SigninManagerFactory::GetInstance());
+  DependsOn(IdentityManagerFactory::GetInstance());
   DependsOn(WebDataServiceFactory::GetInstance());
 }
 
@@ -51,8 +47,7 @@
   service->Init(WebDataServiceFactory::GetAutofillWebDataForProfile(
                     profile, ServiceAccessType::EXPLICIT_ACCESS),
                 profile->GetPrefs(),
-                AccountTrackerServiceFactory::GetForProfile(profile),
-                SigninManagerFactory::GetForProfile(profile),
+                IdentityManagerFactory::GetForProfile(profile),
                 profile->IsOffTheRecord());
   return service;
 }
diff --git a/chrome/browser/browsing_data/browsing_data_quota_helper_impl.h b/chrome/browser/browsing_data/browsing_data_quota_helper_impl.h
index df13833c..a6219b8 100644
--- a/chrome/browser/browsing_data/browsing_data_quota_helper_impl.h
+++ b/chrome/browser/browsing_data/browsing_data_quota_helper_impl.h
@@ -17,7 +17,7 @@
 #include "base/memory/ref_counted.h"
 #include "base/memory/weak_ptr.h"
 #include "chrome/browser/browsing_data/browsing_data_quota_helper.h"
-#include "third_party/WebKit/common/quota/quota_types.mojom.h"
+#include "third_party/WebKit/public/mojom/quota/quota_types.mojom.h"
 
 class GURL;
 
diff --git a/chrome/browser/browsing_data/counters/site_data_counting_helper.h b/chrome/browser/browsing_data/counters/site_data_counting_helper.h
index 3cdf48c..22ebb8a5 100644
--- a/chrome/browser/browsing_data/counters/site_data_counting_helper.h
+++ b/chrome/browser/browsing_data/counters/site_data_counting_helper.h
@@ -9,7 +9,7 @@
 #include "components/content_settings/core/common/content_settings_types.h"
 #include "net/cookies/canonical_cookie.h"
 #include "net/ssl/channel_id_store.h"
-#include "third_party/WebKit/common/quota/quota_types.mojom.h"
+#include "third_party/WebKit/public/mojom/quota/quota_types.mojom.h"
 
 class Profile;
 class BrowsingDataFlashLSOHelper;
diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_browser_main.cc
index 4c7fd97..80b112a 100644
--- a/chrome/browser/chrome_browser_main.cc
+++ b/chrome/browser/chrome_browser_main.cc
@@ -236,7 +236,9 @@
 #include "base/win/win_util.h"
 #include "chrome/browser/chrome_browser_main_win.h"
 #include "chrome/browser/component_updater/sw_reporter_installer_win.h"
+#if defined(GOOGLE_CHROME_BUILD)
 #include "chrome/browser/component_updater/third_party_module_list_component_installer_win.h"
+#endif  // defined(GOOGLE_CHROME_BUILD)
 #include "chrome/browser/downgrade/user_data_downgrade.h"
 #include "chrome/browser/first_run/upgrade_util_win.h"
 #include "chrome/browser/ui/network_profile_bubble.h"
diff --git a/chrome/browser/chrome_browser_main_win.cc b/chrome/browser/chrome_browser_main_win.cc
index ddec2fe..0f5bbab5 100644
--- a/chrome/browser/chrome_browser_main_win.cc
+++ b/chrome/browser/chrome_browser_main_win.cc
@@ -70,8 +70,10 @@
 #include "chrome/installer/util/l10n_string_util.h"
 #include "chrome/installer/util/shell_util.h"
 #include "components/crash/content/app/crash_export_thunks.h"
+#include "components/crash/content/app/dump_hung_process_with_ptype.h"
 #include "components/crash/core/common/crash_key.h"
 #include "content/public/browser/browser_thread.h"
+#include "content/public/browser/render_process_host.h"
 #include "content/public/common/content_switches.h"
 #include "content/public/common/main_function_params.h"
 #include "ui/base/cursor/cursor_loader_win.h"
@@ -96,6 +98,12 @@
   DCHECK(!exception_filter);
 }
 
+// TODO(siggi): Remove once https://crbug.com/806661 is resolved.
+void DumpHungRendererProcessImpl(const base::Process& renderer) {
+  // Use a distinguishing process type for these reports.
+  crash_reporter::DumpHungProcessWithPtype(renderer, "hung-renderer");
+}
+
 // gfx::Font callbacks
 void AdjustUIFont(LOGFONT* logfont) {
   l10n_util::AdjustUIFont(logfont);
@@ -485,6 +493,11 @@
   static crash_reporter::CrashKeyString<32> update_cohort_name("cohort-name");
   update_cohort_name.Set(base::UTF16ToUTF8(details.update_cohort_name()));
 
+  if (details.channel().find(L"canary") == 0) {
+    content::RenderProcessHost::SetHungRendererAnalysisFunction(
+        &DumpHungRendererProcessImpl);
+  }
+
   return ChromeBrowserMainParts::PreCreateThreads();
 }
 
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
index acdddeb..3e8c356 100644
--- a/chrome/browser/chrome_content_browser_client.cc
+++ b/chrome/browser/chrome_content_browser_client.cc
@@ -243,7 +243,7 @@
 #include "services/service_manager/public/mojom/connector.mojom.h"
 #include "services/service_manager/sandbox/sandbox_type.h"
 #include "storage/browser/fileapi/external_mount_points.h"
-#include "third_party/WebKit/common/page/page_visibility_state.mojom.h"
+#include "third_party/WebKit/public/mojom/page/page_visibility_state.mojom.h"
 #include "third_party/WebKit/public/platform/modules/installedapp/installed_app_provider.mojom.h"
 #include "third_party/WebKit/public/platform/modules/webshare/webshare.mojom.h"
 #include "ui/base/l10n/l10n_util.h"
@@ -872,7 +872,7 @@
   registry->RegisterBooleanPref(prefs::kSitePerProcess, false);
   registry->RegisterBooleanPref(prefs::kWebDriverOverridesIncompatiblePolicies,
                                 false);
-#if defined(OS_WIN)
+#if defined(OS_WIN) && defined(GOOGLE_CHROME_BUILD)
   // TODO(chrisha): Move this to chrome/browser/conflicts as we build the
   // logic that responds to this pref.
   registry->RegisterBooleanPref(prefs::kThirdPartyBlockingEnabled, true);
diff --git a/chrome/browser/chrome_content_browser_manifest_overlay.json b/chrome/browser/chrome_content_browser_manifest_overlay.json
index df029b7..b016c054 100644
--- a/chrome/browser/chrome_content_browser_manifest_overlay.json
+++ b/chrome/browser/chrome_content_browser_manifest_overlay.json
@@ -15,7 +15,6 @@
           "mojom::ModuleEventSink",
           "rappor::mojom::RapporRecorder",
           "safe_browsing::mojom::SafeBrowsing",
-          "safe_browsing::mojom::PhishingDetectorClient",
           "translate::mojom::ContentTranslateDriver"
         ],
         "gpu": [
@@ -87,6 +86,7 @@
           "media_router::mojom::MediaRouter",
           "page_load_metrics::mojom::PageLoadMetrics",
           "password_manager::mojom::CredentialManager",
+          "safe_browsing::mojom::PhishingDetectorClient",
           "translate::mojom::ContentTranslateDriver",
 
           // TODO(beng): These should be moved to a separate capability.
diff --git a/chrome/browser/chrome_navigation_browsertest.cc b/chrome/browser/chrome_navigation_browsertest.cc
index 5a986b2c..6df411c 100644
--- a/chrome/browser/chrome_navigation_browsertest.cc
+++ b/chrome/browser/chrome_navigation_browsertest.cc
@@ -6,6 +6,7 @@
 #include "base/run_loop.h"
 #include "base/test/scoped_feature_list.h"
 #include "base/test/test_timeouts.h"
+#include "build/build_config.h"
 #include "chrome/app/chrome_command_ids.h"
 #include "chrome/browser/chrome_notification_types.h"
 #include "chrome/browser/renderer_context_menu/render_view_context_menu_test_util.h"
@@ -936,7 +937,14 @@
 // Note: This test couldn't be a content_browsertests, since there would be
 // not handler defined for the "ftp" protocol in
 // URLRequestJobFactoryImpl::protocol_handler_map_.
-IN_PROC_BROWSER_TEST_F(ChromeNavigationBrowserTest, BlockLegacySubresources) {
+// Flaky on Mac only.  http://crbug.com/816646
+#if defined(OS_MACOSX)
+#define MAYBE_BlockLegacySubresources DISABLED_BlockLegacySubresources
+#else
+#define MAYBE_BlockLegacySubresources BlockLegacySubresources
+#endif
+IN_PROC_BROWSER_TEST_F(ChromeNavigationBrowserTest,
+                       MAYBE_BlockLegacySubresources) {
   net::SpawnedTestServer ftp_server(
       net::SpawnedTestServer::TYPE_FTP,
       base::FilePath(FILE_PATH_LITERAL("chrome/test/data")));
diff --git a/chrome/browser/chrome_quota_permission_context.cc b/chrome/browser/chrome_quota_permission_context.cc
index 7a307c5a..8a86bef 100644
--- a/chrome/browser/chrome_quota_permission_context.cc
+++ b/chrome/browser/chrome_quota_permission_context.cc
@@ -22,7 +22,7 @@
 #include "content/public/browser/browser_thread.h"
 #include "content/public/browser/navigation_details.h"
 #include "content/public/browser/web_contents.h"
-#include "third_party/WebKit/common/quota/quota_types.mojom.h"
+#include "third_party/WebKit/public/mojom/quota/quota_types.mojom.h"
 #include "ui/base/l10n/l10n_util.h"
 #include "url/gurl.h"
 
diff --git a/chrome/browser/chromeos/BUILD.gn b/chrome/browser/chromeos/BUILD.gn
index 184a279f..2ff1117 100644
--- a/chrome/browser/chromeos/BUILD.gn
+++ b/chrome/browser/chromeos/BUILD.gn
@@ -4,6 +4,7 @@
 
 import("//build/config/features.gni")
 import("//build/config/ui.gni")
+import("//chromeos/assistant/assistant.gni")
 import("//extensions/features/features.gni")
 import("//media/media_options.gni")
 import("//printing/features/features.gni")
@@ -67,6 +68,7 @@
     "//chromeos:biod_proto",
     "//chromeos:cryptohome_proto",
     "//chromeos:cryptohome_signkey_proto",
+    "//chromeos/assistant:buildflags",
     "//chromeos/components/tether",
     "//components/arc",
     "//components/browser_sync",
@@ -124,6 +126,7 @@
     "//components/tracing:startup_tracing",
     "//components/ukm/content",
     "//components/user_manager",
+    "//services/identity/public/cpp",
     "//services/metrics/public/cpp:ukm_builders",
     "//services/resource_coordinator/public/cpp:resource_coordinator_cpp",
     "//third_party/fontconfig",
@@ -1233,6 +1236,8 @@
     "policy/android_management_client.h",
     "policy/app_install_event_log.cc",
     "policy/app_install_event_log.h",
+    "policy/app_install_event_log_collector.cc",
+    "policy/app_install_event_log_collector.h",
     "policy/app_install_event_log_manager.cc",
     "policy/app_install_event_log_manager.h",
     "policy/app_install_event_log_manager_wrapper.cc",
@@ -1652,6 +1657,13 @@
     "extensions/wallpaper_private_api.h",
   ]
 
+  if (enable_cros_assistant) {
+    deps += [
+      "//chromeos/services/assistant:lib",
+      "//chromeos/services/assistant/public/mojom",
+    ]
+  }
+
   if (use_cups) {
     sources += [
       "printing/cups_print_job_manager_impl.cc",
diff --git a/chrome/browser/chromeos/arc/accessibility/arc_accessibility_helper_bridge.cc b/chrome/browser/chromeos/arc/accessibility/arc_accessibility_helper_bridge.cc
index a9fd9a0..40a9d2d 100644
--- a/chrome/browser/chromeos/arc/accessibility/arc_accessibility_helper_bridge.cc
+++ b/chrome/browser/chromeos/arc/accessibility/arc_accessibility_helper_bridge.cc
@@ -26,6 +26,7 @@
 namespace {
 
 constexpr int32_t kNoTaskId = -1;
+constexpr int32_t kInvalidTreeId = -1;
 
 exo::Surface* GetArcSurface(const aura::Window* window) {
   if (!window)
@@ -136,14 +137,6 @@
 
 }  // namespace
 
-ArcAccessibilityHelperBridge::CountedAXTree::CountedAXTree(
-    AXTreeSourceArc* ax_tree)
-    : count(1U) {
-  tree.reset(ax_tree);
-}
-
-ArcAccessibilityHelperBridge::CountedAXTree::~CountedAXTree() {}
-
 // static
 ArcAccessibilityHelperBridge*
 ArcAccessibilityHelperBridge::GetForBrowserContext(
@@ -247,12 +240,28 @@
     AXTreeSourceArc* tree_source = nullptr;
     bool is_notification_event = event_data->notification_key.has_value();
     if (is_notification_event) {
-      std::string notification_key = event_data->notification_key.value();
-      bool increment_counter =
-          event_data->event_type ==
-          arc::mojom::AccessibilityEventType::WINDOW_STATE_CHANGED;
-      tree_source =
-          GetOrCreateFromNotificationKey(notification_key, increment_counter);
+      const std::string& notification_key =
+          event_data->notification_key.value();
+
+      // This bridge must receive OnNotificationStateChanged call for the
+      // notification_key before this receives an accessibility event for it.
+      // TODO(yawano): change this to DCHECK once we remove backward
+      //               compatibility logic.
+      if (notification_keys_.find(notification_key) !=
+          notification_keys_.end()) {
+        tree_source = GetFromNotificationKey(notification_key);
+        DCHECK(tree_source);
+      } else {
+        // Backward compatibility logic.
+        // TODO(yawano): remove this once this becomes unnecessary.
+        if (event_data->event_type ==
+            arc::mojom::AccessibilityEventType::WINDOW_STATE_CHANGED) {
+          tree_source = CreateFromNotificationKey(notification_key);
+          backward_compat_notification_keys_[notification_key]++;
+        } else {
+          tree_source = GetFromNotificationKey(notification_key);
+        }
+      }
     } else {
       if (event_data->task_id == kNoTaskId)
         return;
@@ -274,26 +283,13 @@
 
     tree_source->NotifyAccessibilityEvent(event_data.get());
 
-    auto* surface_manager = ArcNotificationSurfaceManager::Get();
-    if (surface_manager && is_notification_event &&
+    ui::AXTreeData tree_data;
+    if (tree_source->GetTreeData(&tree_data) && is_notification_event &&
         event_data->event_type ==
             arc::mojom::AccessibilityEventType::WINDOW_STATE_CHANGED) {
-      std::string notification_key = event_data->notification_key.value();
-      ArcNotificationSurface* surface =
-          surface_manager->GetArcSurface(notification_key);
-
-      ui::AXTreeData tree_data;
-      if (surface && tree_source->GetTreeData(&tree_data)) {
-        surface->SetAXTreeId(tree_data.tree_id);
-
-        // Dispatch ax::mojom::Event::kChildrenChanged to force AXNodeData of
-        // the notification updated. Before AXTreeId is set, its AXNodeData is
-        // populated as a button.
-        if (surface->IsAttached()) {
-          surface->GetAttachedHost()->NotifyAccessibilityEvent(
-              ax::mojom::Event::kChildrenChanged, false);
-        }
-      }
+      DCHECK(event_data->notification_key.has_value());
+      UpdateTreeIdOfNotificationSurface(event_data->notification_key.value(),
+                                        tree_data.tree_id);
     }
 
     return;
@@ -307,6 +303,22 @@
   DispatchFocusChange(event_data.get()->node_data[0].get(), profile_);
 }
 
+void ArcAccessibilityHelperBridge::OnNotificationStateChanged(
+    const std::string& notification_key,
+    arc::mojom::AccessibilityNotificationStateType state) {
+  switch (state) {
+    case arc::mojom::AccessibilityNotificationStateType::SURFACE_CREATED:
+      CreateFromNotificationKey(notification_key);
+      notification_keys_.insert(notification_key);
+      break;
+    case arc::mojom::AccessibilityNotificationStateType::SURFACE_REMOVED:
+      notification_keys_.erase(notification_key);
+      notification_key_to_tree_.erase(notification_key);
+      UpdateTreeIdOfNotificationSurface(notification_key, kInvalidTreeId);
+      break;
+  }
+}
+
 AXTreeSourceArc* ArcAccessibilityHelperBridge::GetOrCreateFromTaskId(
     int32_t task_id) {
   AXTreeSourceArc* tree_source = nullptr;
@@ -320,20 +332,41 @@
   return tree_source;
 }
 
-AXTreeSourceArc* ArcAccessibilityHelperBridge::GetOrCreateFromNotificationKey(
+AXTreeSourceArc* ArcAccessibilityHelperBridge::CreateFromNotificationKey(
+    const std::string& notification_key) {
+  notification_key_to_tree_[notification_key].reset(new AXTreeSourceArc(this));
+  return notification_key_to_tree_[notification_key].get();
+}
+
+AXTreeSourceArc* ArcAccessibilityHelperBridge::GetFromNotificationKey(
+    const std::string& notification_key) {
+  const auto tree_it = notification_key_to_tree_.find(notification_key);
+  if (tree_it == notification_key_to_tree_.end())
+    return nullptr;
+
+  return tree_it->second.get();
+}
+
+void ArcAccessibilityHelperBridge::UpdateTreeIdOfNotificationSurface(
     const std::string& notification_key,
-    bool increment_counter) {
-  auto tree_it = notification_key_to_tree_.find(notification_key);
-  if (tree_it == notification_key_to_tree_.end()) {
-    notification_key_to_tree_[notification_key].reset(
-        new CountedAXTree(new AXTreeSourceArc(this)));
-    return notification_key_to_tree_[notification_key]->tree.get();
+    uint32_t tree_id) {
+  auto* surface_manager = ArcNotificationSurfaceManager::Get();
+  if (!surface_manager)
+    return;
+
+  ArcNotificationSurface* surface =
+      surface_manager->GetArcSurface(notification_key);
+  if (!surface)
+    return;
+
+  surface->SetAXTreeId(tree_id);
+
+  if (surface->IsAttached()) {
+    // Dispatch ax::mojom::Event::kChildrenChanged to force AXNodeData of the
+    // notification updated.
+    surface->GetAttachedHost()->NotifyAccessibilityEvent(
+        ax::mojom::Event::kChildrenChanged, false);
   }
-
-  if (increment_counter)
-    tree_it->second->count++;
-
-  return tree_it->second->tree.get();
 }
 
 AXTreeSourceArc* ArcAccessibilityHelperBridge::GetFromTreeId(
@@ -348,9 +381,9 @@
   for (auto notification_it = notification_key_to_tree_.begin();
        notification_it != notification_key_to_tree_.end(); ++notification_it) {
     ui::AXTreeData tree_data;
-    notification_it->second->tree->GetTreeData(&tree_data);
+    notification_it->second->GetTreeData(&tree_data);
     if (tree_data.tree_id == tree_id)
-      return notification_it->second->tree.get();
+      return notification_it->second.get();
   }
 
   return nullptr;
@@ -516,8 +549,7 @@
     ArcNotificationSurface* surface) {
   const std::string& notification_key = surface->GetNotificationKey();
 
-  AXTreeSourceArc* tree = GetOrCreateFromNotificationKey(
-      notification_key, false /* increment_counter */);
+  auto* const tree = GetFromNotificationKey(notification_key);
   if (!tree)
     return;
 
@@ -542,16 +574,19 @@
 void ArcAccessibilityHelperBridge::OnNotificationSurfaceRemoved(
     ArcNotificationSurface* surface) {
   const std::string& notification_key = surface->GetNotificationKey();
-  auto it = notification_key_to_tree_.find(notification_key);
-  if (it == notification_key_to_tree_.end())
+
+  auto it = backward_compat_notification_keys_.find(notification_key);
+  if (it == backward_compat_notification_keys_.end())
     return;
 
-  it->second->count--;
+  it->second--;
 
-  CHECK(it->second->count >= 0);
+  DCHECK(it->second >= 0);
 
-  if (it->second->count == 0)
+  if (it->second == 0) {
     notification_key_to_tree_.erase(notification_key);
+    backward_compat_notification_keys_.erase(notification_key);
+  }
 }
 
 }  // namespace arc
diff --git a/chrome/browser/chromeos/arc/accessibility/arc_accessibility_helper_bridge.h b/chrome/browser/chromeos/arc/accessibility/arc_accessibility_helper_bridge.h
index cab6c70..25826eeb 100644
--- a/chrome/browser/chromeos/arc/accessibility/arc_accessibility_helper_bridge.h
+++ b/chrome/browser/chromeos/arc/accessibility/arc_accessibility_helper_bridge.h
@@ -43,14 +43,6 @@
       public ArcAppListPrefs::Observer,
       public ArcNotificationSurfaceManager::Observer {
  public:
-  struct CountedAXTree {
-    explicit CountedAXTree(AXTreeSourceArc* ax_tree);
-    ~CountedAXTree();
-
-    uint32_t count;
-    std::unique_ptr<AXTreeSourceArc> tree;
-  };
-
   // Returns singleton instance for the given BrowserContext,
   // or nullptr if the browser |context| is not allowed to use ARC.
   static ArcAccessibilityHelperBridge* GetForBrowserContext(
@@ -78,6 +70,9 @@
       mojom::AccessibilityNodeInfoDataPtr event_source) override;
   void OnAccessibilityEvent(
       mojom::AccessibilityEventDataPtr event_data) override;
+  void OnNotificationStateChanged(
+      const std::string& notification_key,
+      mojom::AccessibilityNotificationStateType state) override;
 
   // AXTreeSourceArc::Delegate overrides.
   void OnAction(const ui::AXActionData& data) const override;
@@ -94,7 +89,7 @@
     return task_id_to_tree_;
   }
 
-  const std::map<std::string, std::unique_ptr<CountedAXTree>>&
+  const std::map<std::string, std::unique_ptr<AXTreeSourceArc>>&
   notification_key_to_tree_for_test() const {
     return notification_key_to_tree_;
   }
@@ -114,22 +109,34 @@
       const chromeos::AccessibilityStatusEventDetails& event_details);
   void UpdateFilterType();
   void UpdateTouchExplorationPassThrough(aura::Window* window);
+  void UpdateTreeIdOfNotificationSurface(const std::string& notification_key,
+                                         uint32_t tree_id);
 
   AXTreeSourceArc* GetOrCreateFromTaskId(int32_t task_id);
-  AXTreeSourceArc* GetOrCreateFromNotificationKey(
-      const std::string& notification_key,
-      bool increment_counter);
+  AXTreeSourceArc* GetFromNotificationKey(const std::string& notification_key);
+  AXTreeSourceArc* CreateFromNotificationKey(
+      const std::string& notification_key);
   AXTreeSourceArc* GetFromTreeId(int32_t tree_id) const;
 
   bool activation_observer_added_ = false;
   Profile* const profile_;
   ArcBridgeService* const arc_bridge_service_;
   std::map<int32_t, std::unique_ptr<AXTreeSourceArc>> task_id_to_tree_;
-  std::map<std::string, std::unique_ptr<CountedAXTree>>
+  std::map<std::string, std::unique_ptr<AXTreeSourceArc>>
       notification_key_to_tree_;
   std::unique_ptr<chromeos::AccessibilityStatusSubscription>
       accessibility_status_subscription_;
 
+  // Map for managing notifications in backward compatible way, creating
+  // notification with WINDOW_STATE_CHANGED event.
+  // Key: notification key
+  // Value: retain counter
+  // TODO(yawano): Remove this after this becomes unnecessary.
+  std::map<std::string, int32_t> backward_compat_notification_keys_;
+
+  // TODO(yawano): Remove this after this becomes unnecessary.
+  std::set<std::string> notification_keys_;
+
   DISALLOW_COPY_AND_ASSIGN(ArcAccessibilityHelperBridge);
 };
 
diff --git a/chrome/browser/chromeos/arc/accessibility/arc_accessibility_helper_bridge_unittest.cc b/chrome/browser/chromeos/arc/accessibility/arc_accessibility_helper_bridge_unittest.cc
index 71f32611a..60af6bb1 100644
--- a/chrome/browser/chromeos/arc/accessibility/arc_accessibility_helper_bridge_unittest.cc
+++ b/chrome/browser/chromeos/arc/accessibility/arc_accessibility_helper_bridge_unittest.cc
@@ -9,6 +9,7 @@
 #include <utility>
 
 #include "base/command_line.h"
+#include "base/observer_list.h"
 #include "chrome/test/base/testing_profile.h"
 #include "chromeos/chromeos_switches.h"
 #include "components/arc/arc_bridge_service.h"
@@ -17,6 +18,7 @@
 #include "content/public/test/test_browser_thread_bundle.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "ui/arc/notification/arc_notification_surface.h"
+#include "ui/arc/notification/arc_notification_surface_manager.h"
 #include "ui/aura/window.h"
 #include "ui/display/display.h"
 #include "ui/display/manager/managed_display_info.h"
@@ -53,6 +55,47 @@
     DISALLOW_COPY_AND_ASSIGN(TestArcAccessibilityHelperBridge);
   };
 
+  class ArcNotificationSurfaceManagerTest
+      : public ArcNotificationSurfaceManager {
+   public:
+    void AddObserver(Observer* observer) override {
+      observers_.AddObserver(observer);
+    };
+
+    void RemoveObserver(Observer* observer) override {
+      observers_.RemoveObserver(observer);
+    };
+
+    ArcNotificationSurface* GetArcSurface(
+        const std::string& notification_key) const override {
+      auto it = surfaces_.find(notification_key);
+      if (it == surfaces_.end())
+        return nullptr;
+
+      return it->second;
+    }
+
+    void AddSurface(ArcNotificationSurface* surface) {
+      surfaces_[surface->GetNotificationKey()] = surface;
+
+      for (auto& observer : observers_) {
+        observer.OnNotificationSurfaceAdded(surface);
+      }
+    }
+
+    void RemoveSurface(ArcNotificationSurface* surface) {
+      surfaces_.erase(surface->GetNotificationKey());
+
+      for (auto& observer : observers_) {
+        observer.OnNotificationSurfaceRemoved(surface);
+      }
+    }
+
+   private:
+    std::map<std::string, ArcNotificationSurface*> surfaces_;
+    base::ObserverList<Observer> observers_;
+  };
+
   class ArcNotificationSurfaceTest : public ArcNotificationSurface {
    public:
     explicit ArcNotificationSurfaceTest(std::string notification_key)
@@ -92,6 +135,8 @@
   void SetUp() override {
     testing_profile_ = std::make_unique<TestingProfile>();
     bridge_service_ = std::make_unique<ArcBridgeService>();
+    arc_notification_surface_manager_ =
+        std::make_unique<ArcNotificationSurfaceManagerTest>();
     accessibility_helper_bridge_ =
         std::make_unique<TestArcAccessibilityHelperBridge>(
             testing_profile_.get(), bridge_service_.get());
@@ -100,6 +145,7 @@
   void TearDown() override {
     accessibility_helper_bridge_->Shutdown();
     accessibility_helper_bridge_.reset();
+    arc_notification_surface_manager_.reset();
     bridge_service_.reset();
     testing_profile_.reset();
   }
@@ -108,6 +154,10 @@
     return accessibility_helper_bridge_.get();
   }
 
+ protected:
+  std::unique_ptr<ArcNotificationSurfaceManagerTest>
+      arc_notification_surface_manager_;
+
  private:
   content::TestBrowserThreadBundle thread_bundle_;
   std::unique_ptr<TestingProfile> testing_profile_;
@@ -197,18 +247,31 @@
 // Accessibility event and surface creation/removal are sent in different
 // channels, mojo and wayland. Order of those events can be changed. This is the
 // case where mojo events arrive earlier than surface creation/removal.
+//
+// mojo: notification 1 created
+// wayland: surface 1 added
+// mojo: notification 1 removed
+// mojo: notification 2 created
+// wayland: surface 1 removed
+// wayland: surface 2 added
+// mojo: notification 2 removed
+// wayland: surface 2 removed
 TEST_F(ArcAccessibilityHelperBridgeTest, NotificationEventArriveFirst) {
   base::CommandLine::ForCurrentProcess()->AppendSwitch(
       chromeos::switches::kEnableChromeVoxArcSupport);
 
   TestArcAccessibilityHelperBridge* helper_bridge =
       accessibility_helper_bridge();
+  arc_notification_surface_manager_->AddObserver(helper_bridge);
 
   const auto& notification_key_to_tree_ =
       helper_bridge->notification_key_to_tree_for_test();
   ASSERT_EQ(0U, notification_key_to_tree_.size());
 
-  // Dispatch an accessibility event for creation of notification.
+  // mojo: notification 1 created
+  helper_bridge->OnNotificationStateChanged(
+      kNotificationKey,
+      arc::mojom::AccessibilityNotificationStateType::SURFACE_CREATED);
   auto event1 = arc::mojom::AccessibilityEventData::New();
   event1->event_type = arc::mojom::AccessibilityEventType::WINDOW_STATE_CHANGED;
   event1->notification_key = base::make_optional<std::string>(kNotificationKey);
@@ -217,42 +280,215 @@
 
   EXPECT_EQ(1U, notification_key_to_tree_.size());
 
-  // Add notification surface for the first event.
+  // wayland: surface 1 added
   ArcNotificationSurfaceTest test_surface(kNotificationKey);
-  helper_bridge->OnNotificationSurfaceAdded(&test_surface);
+  arc_notification_surface_manager_->AddSurface(&test_surface);
 
   // Confirm that axtree id is set to the surface.
   auto it = notification_key_to_tree_.find(kNotificationKey);
   EXPECT_NE(notification_key_to_tree_.end(), it);
-  AXTreeSourceArc* tree = it->second->tree.get();
+  AXTreeSourceArc* tree = it->second.get();
   ui::AXTreeData tree_data;
   tree->GetTreeData(&tree_data);
   EXPECT_EQ(tree_data.tree_id, test_surface.GetAXTreeId());
 
-  // Dispatch second event for notification creation before surface is removed.
+  // mojo: notification 1 removed
+  helper_bridge->OnNotificationStateChanged(
+      kNotificationKey,
+      arc::mojom::AccessibilityNotificationStateType::SURFACE_REMOVED);
+
+  // Ax tree of the surface should be reset as the tree no longer exists.
+  EXPECT_EQ(-1, test_surface.GetAXTreeId());
+
+  EXPECT_EQ(0U, notification_key_to_tree_.size());
+
+  // mojo: notification 2 created
+  helper_bridge->OnNotificationStateChanged(
+      kNotificationKey,
+      arc::mojom::AccessibilityNotificationStateType::SURFACE_CREATED);
+  auto event3 = arc::mojom::AccessibilityEventData::New();
+  event3->event_type = arc::mojom::AccessibilityEventType::WINDOW_STATE_CHANGED;
+  event3->notification_key = base::make_optional<std::string>(kNotificationKey);
+  event3->node_data.push_back(arc::mojom::AccessibilityNodeInfoData::New());
+  helper_bridge->OnAccessibilityEvent(event3.Clone());
+
+  EXPECT_EQ(1U, notification_key_to_tree_.size());
+
+  // Ax tree from the second event is attached to the first surface. This is
+  // expected behavior.
+  auto it2 = notification_key_to_tree_.find(kNotificationKey);
+  EXPECT_NE(notification_key_to_tree_.end(), it2);
+  AXTreeSourceArc* tree2 = it->second.get();
+  ui::AXTreeData tree_data2;
+  tree2->GetTreeData(&tree_data2);
+  EXPECT_EQ(tree_data2.tree_id, test_surface.GetAXTreeId());
+
+  // wayland: surface 1 removed
+  arc_notification_surface_manager_->RemoveSurface(&test_surface);
+
+  // Tree shouldn't be removed as a surface for the second one will come.
+  EXPECT_EQ(1U, notification_key_to_tree_.size());
+
+  // wayland: surface 2 added
+  ArcNotificationSurfaceTest test_surface_2(kNotificationKey);
+  arc_notification_surface_manager_->AddSurface(&test_surface_2);
+
+  EXPECT_EQ(tree_data2.tree_id, test_surface_2.GetAXTreeId());
+
+  // mojo: notification 2 removed
+  helper_bridge->OnNotificationStateChanged(
+      kNotificationKey,
+      arc::mojom::AccessibilityNotificationStateType::SURFACE_REMOVED);
+
+  EXPECT_EQ(0U, notification_key_to_tree_.size());
+
+  // wayland: surface 2 removed
+  arc_notification_surface_manager_->RemoveSurface(&test_surface_2);
+}
+
+// This is the case for testing backward compatibility with creating
+// notification by WINDOW_STATE_CHANGED event.
+//
+// mojo: notification 1 created
+// wayland: surface 1 created
+// mojo: notification 2 created
+// wayland: surface 1 removed
+// wayland: surface 2 created
+// wayland: surface 2 removed
+//
+// wayland: surface 3 created
+// mojo: notification 3 created
+// wayland: surface 3 removed
+TEST_F(ArcAccessibilityHelperBridgeTest, NotificationBackwardCompat) {
+  base::CommandLine::ForCurrentProcess()->AppendSwitch(
+      chromeos::switches::kEnableChromeVoxArcSupport);
+
+  TestArcAccessibilityHelperBridge* helper_bridge =
+      accessibility_helper_bridge();
+  arc_notification_surface_manager_->AddObserver(helper_bridge);
+
+  const auto& notification_key_to_tree_ =
+      helper_bridge->notification_key_to_tree_for_test();
+  ASSERT_EQ(0U, notification_key_to_tree_.size());
+
+  // mojo: notification 1 created
+  auto event1 = arc::mojom::AccessibilityEventData::New();
+  event1->event_type = arc::mojom::AccessibilityEventType::WINDOW_STATE_CHANGED;
+  event1->notification_key = base::make_optional<std::string>(kNotificationKey);
+  event1->node_data.push_back(arc::mojom::AccessibilityNodeInfoData::New());
+  helper_bridge->OnAccessibilityEvent(event1.Clone());
+
+  EXPECT_EQ(1U, notification_key_to_tree_.size());
+
+  // wayland: surface 1 added
+  ArcNotificationSurfaceTest test_surface1(kNotificationKey);
+  arc_notification_surface_manager_->AddSurface(&test_surface1);
+
+  auto it = notification_key_to_tree_.find(kNotificationKey);
+  EXPECT_NE(notification_key_to_tree_.end(), it);
+  AXTreeSourceArc* tree = it->second.get();
+  ui::AXTreeData tree_data;
+  tree->GetTreeData(&tree_data);
+  EXPECT_EQ(tree_data.tree_id, test_surface1.GetAXTreeId());
+
+  // mojo: notification 2 created
   auto event2 = arc::mojom::AccessibilityEventData::New();
   event2->event_type = arc::mojom::AccessibilityEventType::WINDOW_STATE_CHANGED;
   event2->notification_key = base::make_optional<std::string>(kNotificationKey);
   event2->node_data.push_back(arc::mojom::AccessibilityNodeInfoData::New());
   helper_bridge->OnAccessibilityEvent(event2.Clone());
 
+  auto it2 = notification_key_to_tree_.find(kNotificationKey);
+  EXPECT_NE(notification_key_to_tree_.end(), it);
+  AXTreeSourceArc* tree2 = it2->second.get();
+  ui::AXTreeData tree_data2;
+  tree2->GetTreeData(&tree_data2);
+  EXPECT_EQ(tree_data2.tree_id, test_surface1.GetAXTreeId());
+
+  // wayland: surface 1 removed
+  arc_notification_surface_manager_->RemoveSurface(&test_surface1);
+
   EXPECT_EQ(1U, notification_key_to_tree_.size());
 
-  // Remove notification surface for the first event.
-  helper_bridge->OnNotificationSurfaceRemoved(&test_surface);
+  // wayland: surface 2 added
+  ArcNotificationSurfaceTest test_surface2(kNotificationKey);
+  arc_notification_surface_manager_->AddSurface(&test_surface2);
 
-  // Tree shouldn't be removed as a surface for the second event will come.
+  EXPECT_EQ(tree_data2.tree_id, test_surface2.GetAXTreeId());
+
+  // wayland: surface 2 removed
+  arc_notification_surface_manager_->RemoveSurface(&test_surface2);
+
+  EXPECT_EQ(0U, notification_key_to_tree_.size());
+
+  // wayland: surface 3 added
+  ArcNotificationSurfaceTest test_surface3(kNotificationKey);
+  arc_notification_surface_manager_->AddSurface(&test_surface3);
+
+  // mojo: notification 3 created
+  auto event3 = arc::mojom::AccessibilityEventData::New();
+  event3->event_type = arc::mojom::AccessibilityEventType::WINDOW_STATE_CHANGED;
+  event3->notification_key = base::make_optional<std::string>(kNotificationKey);
+  event3->node_data.push_back(arc::mojom::AccessibilityNodeInfoData::New());
+  helper_bridge->OnAccessibilityEvent(event3.Clone());
+
   EXPECT_EQ(1U, notification_key_to_tree_.size());
 
-  // Add notification surface for the second event, and confirm that axtree id
-  // is set.
-  ArcNotificationSurfaceTest test_surface_2(kNotificationKey);
-  helper_bridge->OnNotificationSurfaceAdded(&test_surface_2);
-  EXPECT_EQ(tree_data.tree_id, test_surface_2.GetAXTreeId());
+  auto it3 = notification_key_to_tree_.find(kNotificationKey);
+  EXPECT_NE(notification_key_to_tree_.end(), it3);
+  AXTreeSourceArc* tree3 = it3->second.get();
+  ui::AXTreeData tree_data3;
+  tree3->GetTreeData(&tree_data3);
+  EXPECT_EQ(tree_data3.tree_id, test_surface3.GetAXTreeId());
 
-  // Remove notification surface for the second event, and confirm that tree is
-  // deleted.
-  helper_bridge->OnNotificationSurfaceRemoved(&test_surface_2);
+  // wayland: surface 3 removed
+  arc_notification_surface_manager_->RemoveSurface(&test_surface3);
+
+  EXPECT_EQ(0U, notification_key_to_tree_.size());
+}
+
+// This is the case where surface creation/removal arrive before mojo events.
+//
+// wayland: surface 1 added
+// wayland: surface 1 removed
+// mojo: notification 1 created
+// mojo: notification 1 removed
+TEST_F(ArcAccessibilityHelperBridgeTest, NotificationSurfaceArriveFirst) {
+  base::CommandLine::ForCurrentProcess()->AppendSwitch(
+      chromeos::switches::kEnableChromeVoxArcSupport);
+
+  TestArcAccessibilityHelperBridge* helper_bridge =
+      accessibility_helper_bridge();
+  arc_notification_surface_manager_->AddObserver(helper_bridge);
+
+  const auto& notification_key_to_tree_ =
+      helper_bridge->notification_key_to_tree_for_test();
+  ASSERT_EQ(0U, notification_key_to_tree_.size());
+
+  // wayland: surface 1 added
+  ArcNotificationSurfaceTest test_surface(kNotificationKey);
+  arc_notification_surface_manager_->AddSurface(&test_surface);
+
+  // wayland: surface 1 removed
+  arc_notification_surface_manager_->RemoveSurface(&test_surface);
+
+  // mojo: notification 1 created
+  helper_bridge->OnNotificationStateChanged(
+      kNotificationKey,
+      arc::mojom::AccessibilityNotificationStateType::SURFACE_CREATED);
+  auto event1 = arc::mojom::AccessibilityEventData::New();
+  event1->event_type = arc::mojom::AccessibilityEventType::WINDOW_STATE_CHANGED;
+  event1->notification_key = base::make_optional<std::string>(kNotificationKey);
+  event1->node_data.push_back(arc::mojom::AccessibilityNodeInfoData::New());
+  helper_bridge->OnAccessibilityEvent(event1.Clone());
+
+  EXPECT_EQ(1U, notification_key_to_tree_.size());
+
+  // mojo: notification 2 removed
+  helper_bridge->OnNotificationStateChanged(
+      kNotificationKey,
+      arc::mojom::AccessibilityNotificationStateType::SURFACE_REMOVED);
+
   EXPECT_EQ(0U, notification_key_to_tree_.size());
 }
 
diff --git a/chrome/browser/chromeos/arc/notification/arc_provision_notification_service.cc b/chrome/browser/chromeos/arc/notification/arc_provision_notification_service.cc
index 40c1715c..872ad6ae 100644
--- a/chrome/browser/chromeos/arc/notification/arc_provision_notification_service.cc
+++ b/chrome/browser/chromeos/arc/notification/arc_provision_notification_service.cc
@@ -93,7 +93,7 @@
       gfx::Image(ui::ResourceBundle::GetSharedInstance().GetImageNamed(
           IDR_ARC_PLAY_STORE_OPTIN_IN_PROGRESS_NOTIFICATION)),
       l10n_util::GetStringUTF16(IDS_ARC_NOTIFICATION_DISPLAY_SOURCE), GURL(),
-      notifier_id, optional_fields, nullptr);
+      notifier_id, optional_fields, new message_center::NotificationDelegate());
 
   NotificationDisplayService::GetForProfile(profile)->Display(
       NotificationHandler::Type::TRANSIENT, notification);
diff --git a/chrome/browser/chromeos/login/session/chrome_session_manager.cc b/chrome/browser/chromeos/login/session/chrome_session_manager.cc
index 0e34e1e..5a7d9d84e 100644
--- a/chrome/browser/chromeos/login/session/chrome_session_manager.cc
+++ b/chrome/browser/chromeos/login/session/chrome_session_manager.cc
@@ -27,7 +27,7 @@
 #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h"
 #include "chrome/browser/chromeos/tether/tether_service.h"
 #include "chrome/browser/profiles/profile.h"
-#include "chrome/browser/signin/signin_manager_factory.h"
+#include "chrome/browser/signin/identity_manager_factory.h"
 #include "chrome/browser/ui/ash/ash_util.h"
 #include "chrome/common/chrome_switches.h"
 #include "chrome/common/pref_names.h"
@@ -37,11 +37,11 @@
 #include "chromeos/dbus/session_manager_client.h"
 #include "components/prefs/pref_service.h"
 #include "components/signin/core/account_id/account_id.h"
-#include "components/signin/core/browser/signin_manager.h"
 #include "components/user_manager/user_manager.h"
 #include "components/user_manager/user_names.h"
 #include "content/public/browser/notification_service.h"
 #include "content/public/common/content_switches.h"
+#include "services/identity/public/cpp/identity_manager.h"
 
 namespace chromeos {
 
@@ -148,16 +148,6 @@
   UserSessionManager::GetInstance()->CheckEolStatus(user_profile);
 }
 
-// Starts a user session with stub user. This also happens on a dev machine
-// when running Chrome w/o login flow. See PreEarlyInitialization().
-void StartStubLoginSession(Profile* user_profile,
-                           const std::string& login_user_id) {
-  // For dev machines and stub user emulate as if sync has been initialized.
-  SigninManagerFactory::GetForProfile(user_profile)
-      ->SetAuthenticatedAccountInfo(login_user_id, login_user_id);
-  StartUserSession(user_profile, login_user_id);
-}
-
 }  // namespace
 
 ChromeSessionManager::ChromeSessionManager() {}
@@ -196,8 +186,19 @@
 
   if (!base::SysInfo::IsRunningOnChromeOS() &&
       login_account_id == user_manager::StubAccountId()) {
+    // Start a user session with stub user. This also happens on a dev machine
+    // when running Chrome w/o login flow. See PreEarlyInitialization().
+    // In these contexts, emulate as if sync has been initialized.
     VLOG(1) << "Starting Chrome with stub login.";
-    StartStubLoginSession(profile, login_account_id.GetUserEmail());
+
+    // TODO(https://crbug.com/814787): Change this flow to go through a
+    // mainstream Identity Service API once that API exists. Note that this
+    // might require supplying a valid refresh token here as opposed to an
+    // empty string.
+    std::string login_user_id = login_account_id.GetUserEmail();
+    IdentityManagerFactory::GetForProfile(profile)
+        ->SetPrimaryAccountSynchronously(login_user_id, login_user_id, "");
+    StartUserSession(profile, login_user_id);
     return;
   }
 
diff --git a/chrome/browser/chromeos/login/session/user_session_manager.cc b/chrome/browser/chromeos/login/session/user_session_manager.cc
index e8a04b55..062697d 100644
--- a/chrome/browser/chromeos/login/session/user_session_manager.cc
+++ b/chrome/browser/chromeos/login/session/user_session_manager.cc
@@ -87,6 +87,7 @@
 #include "chrome/common/chrome_switches.h"
 #include "chrome/common/logging_chrome.h"
 #include "chrome/common/pref_names.h"
+#include "chromeos/assistant/buildflags.h"
 #include "chromeos/cert_loader.h"
 #include "chromeos/chromeos_switches.h"
 #include "chromeos/cryptohome/cryptohome_parameters.h"
@@ -118,13 +119,16 @@
 #include "components/user_manager/user_names.h"
 #include "components/user_manager/user_type.h"
 #include "components/version_info/version_info.h"
+#include "content/public/browser/browser_context.h"
 #include "content/public/browser/browser_thread.h"
 #include "content/public/browser/notification_service.h"
 #include "content/public/browser/storage_partition.h"
 #include "content/public/common/content_switches.h"
+#include "content/public/common/service_manager_connection.h"
 #include "extensions/common/features/feature_session_type.h"
 #include "net/cert/sth_distributor.h"
 #include "rlz/features/features.h"
+#include "services/service_manager/public/cpp/connector.h"
 #include "third_party/cros_system_api/switches/chrome_switches.h"
 #include "ui/base/ime/chromeos/input_method_descriptor.h"
 #include "ui/base/ime/chromeos/input_method_manager.h"
@@ -136,6 +140,10 @@
 #include "components/rlz/rlz_tracker.h"
 #endif
 
+#if BUILDFLAG(ENABLE_CROS_ASSISTANT)
+#include "chromeos/services/assistant/public/mojom/constants.mojom.h"
+#endif
+
 namespace chromeos {
 
 namespace {
@@ -1355,6 +1363,11 @@
     policy::AppInstallEventLogManagerWrapper::CreateForProfile(profile);
     arc::ArcServiceLauncher::Get()->OnPrimaryUserProfilePrepared(profile);
 
+#if BUILDFLAG(ENABLE_CROS_ASSISTANT)
+    content::BrowserContext::GetConnectorFor(profile)->StartService(
+        chromeos::assistant::mojom::kServiceName);
+#endif
+
     TetherService* tether_service = TetherService::Get(profile);
     if (tether_service)
       tether_service->StartTetherIfPossible();
diff --git a/chrome/browser/chromeos/policy/app_install_event_log_collector.cc b/chrome/browser/chromeos/policy/app_install_event_log_collector.cc
new file mode 100644
index 0000000..305866b9
--- /dev/null
+++ b/chrome/browser/chromeos/policy/app_install_event_log_collector.cc
@@ -0,0 +1,20 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/chromeos/policy/app_install_event_log_collector.h"
+
+namespace policy {
+
+AppInstallEventLogCollector::AppInstallEventLogCollector(
+    Delegate* delegate,
+    Profile* profile,
+    const std::set<std::string>& pending_packages) {}
+
+AppInstallEventLogCollector::~AppInstallEventLogCollector() = default;
+
+void AppInstallEventLogCollector::OnPendingPackagesChanged(
+    const std::set<std::string>& added,
+    const std::set<std::string>& removed) {}
+
+}  // namespace policy
diff --git a/chrome/browser/chromeos/policy/app_install_event_log_collector.h b/chrome/browser/chromeos/policy/app_install_event_log_collector.h
new file mode 100644
index 0000000..4383546
--- /dev/null
+++ b/chrome/browser/chromeos/policy/app_install_event_log_collector.h
@@ -0,0 +1,60 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_CHROMEOS_POLICY_APP_INSTALL_EVENT_LOG_COLLECTOR_H_
+#define CHROME_BROWSER_CHROMEOS_POLICY_APP_INSTALL_EVENT_LOG_COLLECTOR_H_
+
+#include <memory>
+#include <set>
+#include <string>
+
+#include "base/macros.h"
+
+class Profile;
+
+namespace enterprise_management {
+class AppInstallReportLogEvent;
+}
+namespace policy {
+
+// Listens for and logs events related to app push-installs.
+class AppInstallEventLogCollector {
+ public:
+  // The delegate that events are forwarded to for inclusion in the log.
+  class Delegate {
+   public:
+    // Adds an identical log entry for every app whose push-install is pending.
+    // The |event|'s timestamp is set to the current time if not set yet.
+    virtual void AddForAllPackages(
+        std::unique_ptr<enterprise_management::AppInstallReportLogEvent>
+            event) = 0;
+
+    // Adds a log entry for |package|. The |event|'s timestamp is set to the
+    // current time if not set yet.
+    virtual void Add(
+        const std::string& package,
+        std::unique_ptr<enterprise_management::AppInstallReportLogEvent>
+            event) = 0;
+
+   protected:
+    virtual ~Delegate() = default;
+  };
+
+  // Delegate must outlive |this|.
+  AppInstallEventLogCollector(Delegate* delegate,
+                              Profile* profile,
+                              const std::set<std::string>& pending_packages);
+  ~AppInstallEventLogCollector();
+
+  // Called whenever the list of pending app-install requests changes.
+  void OnPendingPackagesChanged(const std::set<std::string>& added,
+                                const std::set<std::string>& removed);
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(AppInstallEventLogCollector);
+};
+
+}  // namespace policy
+
+#endif  // CHROME_BROWSER_CHROMEOS_POLICY_APP_INSTALL_EVENT_LOG_COLLECTOR_H_
diff --git a/chrome/browser/chromeos/policy/app_install_event_log_manager.cc b/chrome/browser/chromeos/policy/app_install_event_log_manager.cc
index b924029..7e9bc81 100644
--- a/chrome/browser/chromeos/policy/app_install_event_log_manager.cc
+++ b/chrome/browser/chromeos/policy/app_install_event_log_manager.cc
@@ -114,6 +114,9 @@
 
 void AppInstallEventLogManager::Add(const std::set<std::string>& packages,
                                     const em::AppInstallReportLogEvent& event) {
+  if (packages.empty()) {
+    return;
+  }
   base::PostTaskAndReplyWithResult(
       log_task_runner_.get(), FROM_HERE,
       base::BindOnce(&Log::Add, base::Unretained(log_.get()), packages, event),
diff --git a/chrome/browser/chromeos/policy/app_install_event_log_manager_unittest.cc b/chrome/browser/chromeos/policy/app_install_event_log_manager_unittest.cc
index d11bdb2..59cfb09 100644
--- a/chrome/browser/chromeos/policy/app_install_event_log_manager_unittest.cc
+++ b/chrome/browser/chromeos/policy/app_install_event_log_manager_unittest.cc
@@ -170,15 +170,17 @@
     event_.set_timestamp(event_.timestamp() + 1);
   }
 
-  void AddLogEntryForAllApps() {
-    for (const auto& package_name : packages_) {
+  void AddLogEntryForsetOfApps(const std::set<std::string>& packages) {
+    for (const auto& package_name : packages) {
       events_[package_name].push_back(event_);
     }
-    manager_->Add(packages_, event_);
+    manager_->Add(packages, event_);
     FlushNonDelayedTasks();
     event_.set_timestamp(event_.timestamp() + 1);
   }
 
+  void AddLogEntryForAllApps() { AddLogEntryForsetOfApps(packages_); }
+
   void ExpectUploadAndCaptureCallback(
       CloudPolicyClient::StatusCallback* callback) {
     EXPECT_CALL(cloud_policy_client_,
@@ -261,7 +263,7 @@
   DISALLOW_COPY_AND_ASSIGN(AppInstallEventLogManagerTest);
 };
 
-// Create a manager with an empty log. Verify that no upload is scheduled and no
+// Create a manager with an empty log. Verify that no store is scheduled and no
 // upload occurs.
 TEST_F(AppInstallEventLogManagerTest, CreateEmpty) {
   EXPECT_CALL(cloud_policy_client_, UploadAppInstallReport(_, _)).Times(0);
@@ -411,6 +413,20 @@
   EXPECT_FALSE(base::PathExists(log_file_path_));
 }
 
+// Wait twenty minutes. Add an identical log entry for an empty set of apps.
+// Verify that no store is scheduled and no upload occurs.
+TEST_F(AppInstallEventLogManagerTest, AddForZeroApps) {
+  EXPECT_CALL(cloud_policy_client_, UploadAppInstallReport(_, _)).Times(0);
+  CreateManager();
+
+  const base::TimeDelta offset = base::TimeDelta::FromMinutes(20);
+  FastForwardTo(offset);
+  AddLogEntryForsetOfApps({});
+
+  FastForwardUntilNoTasksRemain();
+  EXPECT_FALSE(base::PathExists(log_file_path_));
+}
+
 // Wait twenty minutes. Fill the log for one app until its size exceeds the
 // threshold for expedited upload. Verify that a store is scheduled after five
 // seconds and an upload occurs after fifteen minutes.
diff --git a/chrome/browser/chromeos/policy/app_install_event_logger.cc b/chrome/browser/chromeos/policy/app_install_event_logger.cc
index 6a98e11..cad87a9 100644
--- a/chrome/browser/chromeos/policy/app_install_event_logger.cc
+++ b/chrome/browser/chromeos/policy/app_install_event_logger.cc
@@ -4,15 +4,138 @@
 
 #include "chrome/browser/chromeos/policy/app_install_event_logger.h"
 
+#include <algorithm>
+#include <iterator>
+
+#include "base/json/json_reader.h"
+#include "base/time/time.h"
+#include "base/values.h"
+#include "chrome/browser/chromeos/arc/arc_util.h"
+#include "chrome/browser/policy/profile_policy_connector.h"
+#include "chrome/browser/policy/profile_policy_connector_factory.h"
 #include "chrome/browser/profiles/profile.h"
 #include "components/arc/arc_prefs.h"
+#include "components/policy/core/common/policy_map.h"
+#include "components/policy/core/common/policy_namespace.h"
+#include "components/policy/policy_constants.h"
+#include "components/policy/proto/device_management_backend.pb.h"
 #include "components/pref_registry/pref_registry_syncable.h"
 #include "components/prefs/pref_service.h"
 
+namespace em = enterprise_management;
+
 namespace policy {
 
+namespace {
+
+constexpr int kNonComplianceReasonAppNotInstalled = 5;
+
+std::set<std::string> GetRequestedPackagesFromArcPolicy(
+    const std::string& arc_policy) {
+  std::unique_ptr<base::Value> dict = base::JSONReader::Read(arc_policy);
+  if (!dict || !dict->is_dict()) {
+    return {};
+  }
+
+  const base::Value* const packages =
+      dict->FindKeyOfType("applications", base::Value::Type::LIST);
+  if (!packages) {
+    return {};
+  }
+
+  std::set<std::string> requested_packages;
+  for (const auto& package : packages->GetList()) {
+    if (!package.is_dict()) {
+      continue;
+    }
+    const base::Value* const install_type =
+        package.FindKeyOfType("installType", base::Value::Type::STRING);
+    if (!install_type || install_type->GetString() != "REQUIRED") {
+      continue;
+    }
+    const base::Value* const package_name =
+        package.FindKeyOfType("packageName", base::Value::Type::STRING);
+    if (!package_name || package_name->GetString().empty()) {
+      continue;
+    }
+    requested_packages.insert(package_name->GetString());
+  }
+  return requested_packages;
+}
+
+std::set<std::string> GetRequestedPackagesFromPolicy(
+    const policy::PolicyMap& policy) {
+  const base::Value* const arc_enabled = policy.GetValue(key::kArcEnabled);
+  if (!arc_enabled || !arc_enabled->is_bool() || !arc_enabled->GetBool()) {
+    return {};
+  }
+
+  const base::Value* const arc_policy = policy.GetValue(key::kArcPolicy);
+  if (!arc_policy || !arc_policy->is_string()) {
+    return {};
+  }
+
+  return GetRequestedPackagesFromArcPolicy(arc_policy->GetString());
+}
+
+// Return all elements that are members of |first| but not |second|.
+std::set<std::string> GetDifference(const std::set<std::string>& first,
+                                    const std::set<std::string>& second) {
+  std::set<std::string> difference;
+  std::set_difference(first.begin(), first.end(), second.begin(), second.end(),
+                      std::inserter(difference, difference.end()));
+  return difference;
+}
+
+void EnsureTimestampSet(em::AppInstallReportLogEvent* event) {
+  if (!event->has_timestamp()) {
+    event->set_timestamp(
+        (base::Time::Now() - base::Time::UnixEpoch()).InMicroseconds());
+  }
+}
+
+em::AppInstallReportLogEvent CreateEvent(
+    em::AppInstallReportLogEvent::EventType type) {
+  em::AppInstallReportLogEvent event;
+  EnsureTimestampSet(&event);
+  event.set_event_type(type);
+  return event;
+}
+
+}  // namespace
+
 AppInstallEventLogger::AppInstallEventLogger(Delegate* delegate,
-                                             Profile* profile) {}
+                                             Profile* profile)
+    : delegate_(delegate), profile_(profile) {
+  if (!arc::IsArcAllowedForProfile(profile_)) {
+    delegate_->Add(GetPackagesFromPref(arc::prefs::kArcPushInstallAppsPending),
+                   CreateEvent(em::AppInstallReportLogEvent::CANCELED));
+    Clear(profile_);
+    return;
+  }
+
+  policy::PolicyService* const policy_service =
+      policy::ProfilePolicyConnectorFactory::GetForBrowserContext(profile_)
+          ->policy_service();
+  EvaluatePolicy(policy_service->GetPolicies(policy::PolicyNamespace(
+                     policy::POLICY_DOMAIN_CHROME, std::string())),
+                 true /* initial */);
+
+  observing_ = true;
+  arc::ArcPolicyBridge* bridge =
+      arc::ArcPolicyBridge::GetForBrowserContext(profile_);
+  bridge->AddObserver(this);
+  policy_service->AddObserver(policy::POLICY_DOMAIN_CHROME, this);
+}
+
+AppInstallEventLogger::~AppInstallEventLogger() {
+  if (observing_) {
+    arc::ArcPolicyBridge::GetForBrowserContext(profile_)->RemoveObserver(this);
+    policy::ProfilePolicyConnectorFactory::GetForBrowserContext(profile_)
+        ->policy_service()
+        ->RemoveObserver(policy::POLICY_DOMAIN_CHROME, this);
+  }
+}
 
 // static
 void AppInstallEventLogger::RegisterProfilePrefs(
@@ -27,4 +150,146 @@
   profile->GetPrefs()->ClearPref(arc::prefs::kArcPushInstallAppsPending);
 }
 
+void AppInstallEventLogger::AddForAllPackages(
+    std::unique_ptr<em::AppInstallReportLogEvent> event) {
+  EnsureTimestampSet(event.get());
+  delegate_->Add(GetPackagesFromPref(arc::prefs::kArcPushInstallAppsPending),
+                 *event);
+}
+
+void AppInstallEventLogger::Add(
+    const std::string& package,
+    std::unique_ptr<em::AppInstallReportLogEvent> event) {
+  EnsureTimestampSet(event.get());
+  delegate_->Add({package}, *event);
+}
+
+void AppInstallEventLogger::OnPolicyUpdated(const policy::PolicyNamespace& ns,
+                                            const policy::PolicyMap& previous,
+                                            const policy::PolicyMap& current) {
+  EvaluatePolicy(current, false /* initial */);
+}
+
+void AppInstallEventLogger::OnPolicySent(const std::string& policy) {
+  requested_in_arc_ = GetRequestedPackagesFromArcPolicy(policy);
+}
+
+void AppInstallEventLogger::OnComplianceReportReceived(
+    const base::Value* compliance_report) {
+  const base::Value* const details = compliance_report->FindKeyOfType(
+      "nonComplianceDetails", base::Value::Type::LIST);
+  if (!details) {
+    return;
+  }
+
+  const std::set<std::string> previous_pending =
+      GetPackagesFromPref(arc::prefs::kArcPushInstallAppsPending);
+
+  std::set<std::string> pending_in_arc;
+  for (const auto& detail : details->GetList()) {
+    const base::Value* const reason =
+        detail.FindKeyOfType("nonComplianceReason", base::Value::Type::INTEGER);
+    if (!reason || reason->GetInt() != kNonComplianceReasonAppNotInstalled) {
+      continue;
+    }
+    const base::Value* const app_name =
+        detail.FindKeyOfType("packageName", base::Value::Type::STRING);
+    if (!app_name || app_name->GetString().empty()) {
+      continue;
+    }
+    pending_in_arc.insert(app_name->GetString());
+  }
+  const std::set<std::string> current_pending = GetDifference(
+      previous_pending, GetDifference(requested_in_arc_, pending_in_arc));
+  const std::set<std::string> removed =
+      GetDifference(previous_pending, current_pending);
+  // TODO(bartfab): Add SystemState.
+  delegate_->Add(removed, CreateEvent(em::AppInstallReportLogEvent::SUCCESS));
+
+  if (removed.empty()) {
+    return;
+  }
+
+  SetPref(arc::prefs::kArcPushInstallAppsPending, current_pending);
+
+  if (!current_pending.empty()) {
+    UpdateCollector({} /* added */, removed);
+  } else {
+    StopCollector();
+  }
+}
+
+std::set<std::string> AppInstallEventLogger::GetPackagesFromPref(
+    const std::string& pref_name) const {
+  std::set<std::string> packages;
+  for (const auto& package :
+       profile_->GetPrefs()->GetList(pref_name)->GetList()) {
+    if (!package.is_string()) {
+      continue;
+    }
+    packages.insert(package.GetString());
+  }
+  return packages;
+}
+
+void AppInstallEventLogger::SetPref(const std::string& pref_name,
+                                    const std::set<std::string>& packages) {
+  base::Value value(base::Value::Type::LIST);
+  auto& list = value.GetList();
+  for (const std::string& package : packages) {
+    list.push_back(base::Value(package));
+  }
+  profile_->GetPrefs()->Set(pref_name, value);
+}
+
+void AppInstallEventLogger::UpdateCollector(
+    const std::set<std::string>& added,
+    const std::set<std::string>& removed) {
+  if (!log_collector_) {
+    log_collector_ =
+        std::make_unique<AppInstallEventLogCollector>(this, profile_, added);
+  } else {
+    log_collector_->OnPendingPackagesChanged(added, removed);
+  }
+}
+
+void AppInstallEventLogger::StopCollector() {
+  log_collector_.reset();
+}
+
+void AppInstallEventLogger::EvaluatePolicy(const policy::PolicyMap& policy,
+                                           bool initial) {
+  const std::set<std::string> previous_requested =
+      GetPackagesFromPref(arc::prefs::kArcPushInstallAppsRequested);
+  const std::set<std::string> previous_pending =
+      GetPackagesFromPref(arc::prefs::kArcPushInstallAppsPending);
+
+  const std::set<std::string> current_requested =
+      GetRequestedPackagesFromPolicy(policy);
+
+  const std::set<std::string> added =
+      GetDifference(current_requested, previous_requested);
+  const std::set<std::string> removed =
+      GetDifference(previous_pending, current_requested);
+  // TODO: Add SystemState.
+  delegate_->Add(added,
+                 CreateEvent(em::AppInstallReportLogEvent::SERVER_REQUEST));
+  delegate_->Add(removed, CreateEvent(em::AppInstallReportLogEvent::CANCELED));
+
+  const std::set<std::string> current_pending = GetDifference(
+      current_requested, GetDifference(previous_requested, previous_pending));
+  SetPref(arc::prefs::kArcPushInstallAppsRequested, current_requested);
+  SetPref(arc::prefs::kArcPushInstallAppsPending, current_pending);
+
+  if (!current_pending.empty()) {
+    if (initial) {
+      UpdateCollector(current_pending /* added */, {} /* removed */);
+    } else {
+      UpdateCollector(added, removed);
+    }
+  } else {
+    StopCollector();
+  }
+}
+
 }  // namespace policy
diff --git a/chrome/browser/chromeos/policy/app_install_event_logger.h b/chrome/browser/chromeos/policy/app_install_event_logger.h
index a9d54bd6..e72b3a0 100644
--- a/chrome/browser/chromeos/policy/app_install_event_logger.h
+++ b/chrome/browser/chromeos/policy/app_install_event_logger.h
@@ -5,13 +5,21 @@
 #ifndef CHROME_BROWSER_CHROMEOS_POLICY_APP_INSTALL_EVENT_LOGGER_H_
 #define CHROME_BROWSER_CHROMEOS_POLICY_APP_INSTALL_EVENT_LOGGER_H_
 
+#include <memory>
 #include <set>
 #include <string>
 
 #include "base/macros.h"
+#include "chrome/browser/chromeos/arc/policy/arc_policy_bridge.h"
+#include "chrome/browser/chromeos/policy/app_install_event_log_collector.h"
+#include "components/policy/core/common/policy_service.h"
 
 class Profile;
 
+namespace base {
+class Value;
+}
+
 namespace enterprise_management {
 class AppInstallReportLogEvent;
 }
@@ -22,8 +30,24 @@
 
 namespace policy {
 
-// Listens for and logs events related to app push-installs.
-class AppInstallEventLogger {
+class PolicyMap;
+struct PolicyNamespace;
+
+// Ensures that events relevant to app push-installs are logged. Three types of
+// events are logged directly by this class:
+// * When an app is added to the push-install list in policy, the start of its
+//   push-install process is logged.
+// * When an app disappears from the non-compliance list returned by CloudDPC,
+//   the successful end of its push-install process is logged.
+// * When an app is removed from the push-install list in policy, the end of its
+//   push-install process is logged.
+//
+// Additionally, an |AppInstallEventLogCollector| is instantiated to collect
+// detailed logs of the push-install process whenever there is at least one
+// pending push-install request.
+class AppInstallEventLogger : public AppInstallEventLogCollector::Delegate,
+                              public policy::PolicyService::Observer,
+                              public arc::ArcPolicyBridge::Observer {
  public:
   // The delegate that events are forwarded to for inclusion in the log.
   class Delegate {
@@ -39,15 +63,74 @@
 
   // Delegate must outlive |this|.
   AppInstallEventLogger(Delegate* delegate, Profile* profile);
-  ~AppInstallEventLogger() = default;
+  ~AppInstallEventLogger() override;
 
+  // Registers the prefs used to keep track of push-installs that have been
+  // requested and not yet completed.
   static void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry);
 
   // Clears all data related to app-install event log collection for |profile|.
   // Must not be called while an |AppInstallEventLogger| exists for |profile|.
   static void Clear(Profile* profile);
 
+  // AppInstallEventLogCollector::Delegate:
+  void AddForAllPackages(
+      std::unique_ptr<enterprise_management::AppInstallReportLogEvent> event)
+      override;
+  void Add(const std::string& package,
+           std::unique_ptr<enterprise_management::AppInstallReportLogEvent>
+               event) override;
+
+  // policy::PolicyService::Observer:
+  void OnPolicyUpdated(const policy::PolicyNamespace& ns,
+                       const policy::PolicyMap& previous,
+                       const policy::PolicyMap& current) override;
+
+  // arc::ArcPolicyBridge::Observer:
+  void OnPolicySent(const std::string& policy) override;
+  void OnComplianceReportReceived(
+      const base::Value* compliance_report) override;
+
  private:
+  // Loads a list of packages from a pref.
+  std::set<std::string> GetPackagesFromPref(const std::string& pref_name) const;
+
+  // Stores a list of packages into a pref.
+  void SetPref(const std::string& pref_name,
+               const std::set<std::string>& packages);
+
+  // Informs the existing |log_collector_| that the list of pending app
+  // push-install requests has changed or instantiates a new |log_collector_| if
+  // none exists yet.
+  void UpdateCollector(const std::set<std::string>& added,
+                       const std::set<std::string>& removed);
+
+  // Destroys the |log_collector_|, if it exists.
+  void StopCollector();
+
+  // Extracts the list of app push-install requests from |policy|, logs the
+  // cancellation of any pending push-installs that are no longer in |policy|
+  // and updates the |log_collector_|.
+  void EvaluatePolicy(const policy::PolicyMap& policy, bool initial);
+
+  // The delegate that events are forwarded to for inclusion in the log.
+  Delegate* const delegate_;
+
+  // The profile whose app push-install requests to log.
+  Profile* const profile_;
+
+  // Whether |this| has set itself up as observer of other classes and needs to
+  // remove itself as observer in the destructor.
+  bool observing_ = false;
+
+  // The app push-install requests that were most recently sent to CloudDPC.
+  std::set<std::string> requested_in_arc_;
+
+  // The |AppInstallEventLogCollector| that collects detailed logs of the
+  // push-install process. Non-|nullptr| whenever there are one or more pending
+  // app push-install requests.
+  std::unique_ptr<AppInstallEventLogCollector> log_collector_;
+
   DISALLOW_COPY_AND_ASSIGN(AppInstallEventLogger);
 };
 
diff --git a/chrome/browser/chromeos/power/ml/idle_event_notifier.cc b/chrome/browser/chromeos/power/ml/idle_event_notifier.cc
index 58bf275..d095a25 100644
--- a/chrome/browser/chromeos/power/ml/idle_event_notifier.cc
+++ b/chrome/browser/chromeos/power/ml/idle_event_notifier.cc
@@ -19,6 +19,8 @@
 
 using TimeSinceBoot = base::TimeDelta;
 
+constexpr base::TimeDelta IdleEventNotifier::kIdleDelay;
+
 struct IdleEventNotifier::ActivityDataInternal {
   // Use base::Time here because we later need to convert them to local time
   // since midnight.
@@ -30,6 +32,8 @@
   base::Optional<TimeSinceBoot> earliest_activity_since_boot;
   base::Optional<TimeSinceBoot> last_mouse_since_boot;
   base::Optional<TimeSinceBoot> last_key_since_boot;
+  base::Optional<TimeSinceBoot> video_start_time;
+  base::Optional<TimeSinceBoot> video_end_time;
 };
 
 IdleEventNotifier::ActivityData::ActivityData()
@@ -118,10 +122,18 @@
 
   // SuspendDone is triggered by user opening the lid (or other user
   // activities).
-  if (sleep_duration >= idle_delay_) {
-    internal_data_->last_activity_since_boot = base::TimeDelta();
-    internal_data_->earliest_activity_since_boot = base::nullopt;
+  if (sleep_duration >= kIdleDelay) {
+    ResetTimestampsPerIdleEvent();
+    if (video_playing_) {
+      // This could happen when user closes the lid while video is playing.
+      // If OnVideoActivityEnded is not received before system is suspended, we
+      // could have |video_playing_| = true. If |sleep_duration| < kIdleDelay,
+      // we consider video never stopped. Otherwise, we treat it as a new video
+      // playing session.
+      internal_data_->video_start_time = boot_clock_->GetTimeSinceBoot();
+    }
   }
+
   UpdateActivityData(ActivityType::USER_OTHER);
   ResetIdleDelayTimer();
 }
@@ -141,11 +153,19 @@
 }
 
 void IdleEventNotifier::OnVideoActivityStarted() {
+  if (video_playing_) {
+    NOTREACHED() << "Duplicate start of video activity";
+    return;
+  }
   video_playing_ = true;
   UpdateActivityData(ActivityType::VIDEO);
 }
 
 void IdleEventNotifier::OnVideoActivityEnded() {
+  if (!video_playing_) {
+    NOTREACHED() << "Duplicate end of video activity";
+    return;
+  }
   video_playing_ = false;
   UpdateActivityData(ActivityType::VIDEO);
   ResetIdleDelayTimer();
@@ -189,6 +209,13 @@
         time_since_boot - internal_data.last_key_since_boot.value();
   }
 
+  if (internal_data_->video_start_time && internal_data_->video_end_time) {
+    DCHECK(!video_playing_);
+    data.video_playing_time = internal_data_->video_end_time.value() -
+                              internal_data_->video_start_time.value();
+    data.time_since_video_ended =
+        time_since_boot - internal_data_->video_end_time.value();
+  }
   return data;
 }
 
@@ -201,7 +228,7 @@
   if (idle_delay_timer_.IsRunning()) {
     idle_delay_timer_.AbandonAndStop();
   }
-  idle_delay_timer_.Start(FROM_HERE, idle_delay_, this,
+  idle_delay_timer_.Start(FROM_HERE, kIdleDelay, this,
                           &IdleEventNotifier::OnIdleDelayTimeout);
 }
 
@@ -213,11 +240,7 @@
 
   for (auto& observer : observers_)
     observer.OnIdleEventObserved(data);
-  // Only clears out |last_activity_since_boot| and
-  // |earliest_activity_since_boot because they are used to calculate recent
-  // time active, which should be reset between idle events.
-  internal_data_->last_activity_since_boot = base::TimeDelta();
-  internal_data_->earliest_activity_since_boot = base::nullopt;
+  ResetTimestampsPerIdleEvent();
 }
 
 void IdleEventNotifier::UpdateActivityData(ActivityType type) {
@@ -232,8 +255,19 @@
     internal_data_->earliest_activity_since_boot = time_since_boot;
   }
 
-  if (type == ActivityType::VIDEO)
+  if (type == ActivityType::VIDEO) {
+    if (video_playing_) {
+      if (!internal_data_->video_start_time ||
+          (internal_data_->video_end_time &&
+           (time_since_boot - internal_data_->video_end_time.value() >=
+            kIdleDelay))) {
+        internal_data_->video_start_time = time_since_boot;
+      }
+    } else {
+      internal_data_->video_end_time = time_since_boot;
+    }
     return;
+  }
 
   // All other activity is user-initiated.
   internal_data_->last_user_activity_time = now;
@@ -251,6 +285,14 @@
   }
 }
 
+// Only clears out |last_activity_since_boot| and
+// |earliest_activity_since_boot| because they are used to calculate recent
+// time active, which should be reset between idle events.
+void IdleEventNotifier::ResetTimestampsPerIdleEvent() {
+  internal_data_->last_activity_since_boot = base::TimeDelta();
+  internal_data_->earliest_activity_since_boot = base::nullopt;
+}
+
 }  // namespace ml
 }  // namespace power
 }  // namespace chromeos
diff --git a/chrome/browser/chromeos/power/ml/idle_event_notifier.h b/chrome/browser/chromeos/power/ml/idle_event_notifier.h
index 28982ef..bf24af01 100644
--- a/chrome/browser/chromeos/power/ml/idle_event_notifier.h
+++ b/chrome/browser/chromeos/power/ml/idle_event_notifier.h
@@ -37,12 +37,16 @@
 
 // IdleEventNotifier listens to signals and notifies its observers when an idle
 // event is generated. An idle event is generated when the idle period reaches
-// |idle_delay_|. No further idle events will be generated until user becomes
-// active again, followed by an idle period of |idle_delay_|.
+// kIdleDelay. No further idle events will be generated until user becomes
+// active again, followed by an idle period of kIdleDelay.
 class IdleEventNotifier : public PowerManagerClient::Observer,
                           public ui::UserActivityObserver,
                           public viz::mojom::VideoDetectorObserver {
  public:
+  // An idle event is generated after this idle period.
+  static constexpr base::TimeDelta kIdleDelay =
+      base::TimeDelta::FromSeconds(30);
+
   struct ActivityData {
     ActivityData();
 
@@ -67,6 +71,11 @@
     // event.
     base::Optional<base::TimeDelta> time_since_last_mouse;
     base::Optional<base::TimeDelta> time_since_last_key;
+    // How long recent video has been playing.
+    base::TimeDelta video_playing_time;
+    // Duration from when video ended. It is unset if video did not play
+    // (|video_playing_time| = 0).
+    base::Optional<base::TimeDelta> time_since_video_ended;
   };
 
   class Observer {
@@ -106,9 +115,6 @@
   void OnVideoActivityStarted() override;
   void OnVideoActivityEnded() override;
 
-  const base::TimeDelta& idle_delay() const { return idle_delay_; }
-  void set_idle_delay(const base::TimeDelta& delay) { idle_delay_ = delay; }
-
  private:
   FRIEND_TEST_ALL_PREFIXES(IdleEventNotifierTest, CheckInitialValues);
   friend class IdleEventNotifierTest;
@@ -134,8 +140,10 @@
   // Updates all activity-related timestamps.
   void UpdateActivityData(ActivityType type);
 
-  // An idle event is generated after an idle period of |idle_delay_|.
-  base::TimeDelta idle_delay_ = base::TimeDelta::FromSeconds(30);
+  // Clears timestamps used to calculate |ActivityData::recent_time_active| so
+  // that its duration is recalculated after user is inactive for more than
+  // kIdleDelay or when suspend duration is longer than kIdleDelay.
+  void ResetTimestampsPerIdleEvent();
 
   // It is base::DefaultClock, but will be set to a mock clock for tests.
   std::unique_ptr<base::Clock> clock_;
diff --git a/chrome/browser/chromeos/power/ml/idle_event_notifier_unittest.cc b/chrome/browser/chromeos/power/ml/idle_event_notifier_unittest.cc
index fb00ad1..a8f8e1a 100644
--- a/chrome/browser/chromeos/power/ml/idle_event_notifier_unittest.cc
+++ b/chrome/browser/chromeos/power/ml/idle_event_notifier_unittest.cc
@@ -32,7 +32,9 @@
          x.last_user_activity_time_of_day == y.last_user_activity_time_of_day &&
          x.recent_time_active == y.recent_time_active &&
          x.time_since_last_mouse == y.time_since_last_mouse &&
-         x.time_since_last_key == y.time_since_last_key;
+         x.time_since_last_key == y.time_since_last_key &&
+         x.video_playing_time == y.video_playing_time &&
+         x.time_since_video_ended == y.time_since_video_ended;
 }
 
 base::TimeDelta GetTimeSinceMidnight(base::Time time) {
@@ -224,10 +226,13 @@
   task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(10));
   idle_event_notifier_->SuspendImminent(
       power_manager::SuspendImminent_Reason_LID_CLOSED);
-  idle_event_notifier_->SuspendDone(idle_event_notifier_->idle_delay() / 2);
-  task_runner_->FastForwardBy(idle_event_notifier_->idle_delay() / 2);
-  base::Time now_2 = task_runner_->Now();
+
+  task_runner_->FastForwardBy(IdleEventNotifier::kIdleDelay / 2);
+  idle_event_notifier_->SuspendDone(IdleEventNotifier::kIdleDelay / 2);
+
+  task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(5));
   idle_event_notifier_->PowerChanged(disconnected_power_);
+  base::Time now_2 = task_runner_->Now();
 
   IdleEventNotifier::ActivityData data;
   data.last_activity_day = GetDayOfWeek(now_2);
@@ -245,10 +250,14 @@
   task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(10));
   idle_event_notifier_->SuspendImminent(
       power_manager::SuspendImminent_Reason_LID_CLOSED);
-  idle_event_notifier_->SuspendDone(idle_event_notifier_->idle_delay() +
-                                    base::TimeDelta::FromSeconds(10));
+
+  task_runner_->FastForwardBy(IdleEventNotifier::kIdleDelay +
+                              base::TimeDelta::FromSeconds(10));
   base::Time now_1 = task_runner_->Now();
-  task_runner_->FastForwardBy(idle_event_notifier_->idle_delay() / 2);
+  idle_event_notifier_->SuspendDone(IdleEventNotifier::kIdleDelay +
+                                    base::TimeDelta::FromSeconds(10));
+
+  task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(10));
   base::Time now_2 = task_runner_->Now();
   idle_event_notifier_->PowerChanged(disconnected_power_);
 
@@ -271,7 +280,7 @@
   data.last_activity_time_of_day = time_of_day;
   data.last_user_activity_time_of_day = time_of_day;
   data.recent_time_active = base::TimeDelta();
-  data.time_since_last_key = idle_event_notifier_->idle_delay();
+  data.time_since_last_key = IdleEventNotifier::kIdleDelay;
   FastForwardAndCheckResults(1, data);
 }
 
@@ -287,7 +296,7 @@
   data.last_activity_time_of_day = time_of_day;
   data.last_user_activity_time_of_day = time_of_day;
   data.recent_time_active = base::TimeDelta();
-  data.time_since_last_mouse = idle_event_notifier_->idle_delay();
+  data.time_since_last_mouse = IdleEventNotifier::kIdleDelay;
   FastForwardAndCheckResults(1, data);
 }
 
@@ -325,9 +334,8 @@
   data.last_activity_time_of_day = time_of_day;
   data.last_user_activity_time_of_day = time_of_day;
   data.recent_time_active = now_2 - now_1;
-  data.time_since_last_key = idle_event_notifier_->idle_delay();
-  data.time_since_last_mouse =
-      idle_event_notifier_->idle_delay() + (now_2 - now_1);
+  data.time_since_last_key = IdleEventNotifier::kIdleDelay;
+  data.time_since_last_mouse = IdleEventNotifier::kIdleDelay + (now_2 - now_1);
   FastForwardAndCheckResults(1, data);
 }
 
@@ -375,8 +383,9 @@
   data.last_activity_time_of_day = GetTimeSinceMidnight(now_3);
   data.last_user_activity_time_of_day = GetTimeSinceMidnight(now_2);
   data.recent_time_active = now_3 - now_1;
-  data.time_since_last_mouse =
-      idle_event_notifier_->idle_delay() + now_3 - now_2;
+  data.time_since_last_mouse = IdleEventNotifier::kIdleDelay + now_3 - now_2;
+  data.video_playing_time = now_3 - now_1;
+  data.time_since_video_ended = IdleEventNotifier::kIdleDelay;
   FastForwardAndCheckResults(1, data);
 }
 
@@ -397,9 +406,8 @@
   data_1.last_activity_time_of_day = time_of_day_2;
   data_1.last_user_activity_time_of_day = time_of_day_2;
   data_1.recent_time_active = now_2 - now_1;
-  data_1.time_since_last_key =
-      idle_event_notifier_->idle_delay() + now_2 - now_1;
-  data_1.time_since_last_mouse = idle_event_notifier_->idle_delay();
+  data_1.time_since_last_key = IdleEventNotifier::kIdleDelay + now_2 - now_1;
+  data_1.time_since_last_mouse = IdleEventNotifier::kIdleDelay;
   FastForwardAndCheckResults(1, data_1);
 
   idle_event_notifier_->PowerChanged(ac_power_);
@@ -411,13 +419,163 @@
   data_2.last_activity_time_of_day = time_of_day_3;
   data_2.last_user_activity_time_of_day = time_of_day_3;
   data_2.recent_time_active = base::TimeDelta();
-  data_2.time_since_last_key =
-      idle_event_notifier_->idle_delay() + now_3 - now_1;
-  data_2.time_since_last_mouse =
-      idle_event_notifier_->idle_delay() + now_3 - now_2;
+  data_2.time_since_last_key = IdleEventNotifier::kIdleDelay + now_3 - now_1;
+  data_2.time_since_last_mouse = IdleEventNotifier::kIdleDelay + now_3 - now_2;
   FastForwardAndCheckResults(2, data_2);
 }
 
+TEST_F(IdleEventNotifierTest, TwoConsecutiveVideoPlaying) {
+  // Two video playing sessions with a gap shorter than kIdleDelay. They are
+  // merged into one playing session.
+  base::Time now_1 = task_runner_->Now();
+  idle_event_notifier_->OnVideoActivityStarted();
+
+  task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(2));
+  idle_event_notifier_->OnVideoActivityEnded();
+
+  task_runner_->FastForwardBy(IdleEventNotifier::kIdleDelay / 2);
+  idle_event_notifier_->OnVideoActivityStarted();
+
+  task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(20));
+  base::Time now_2 = task_runner_->Now();
+  idle_event_notifier_->OnVideoActivityEnded();
+
+  task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(10));
+  base::Time now_3 = task_runner_->Now();
+  ui::MouseEvent mouse_event(ui::ET_MOUSE_EXITED, gfx::Point(0, 0),
+                             gfx::Point(0, 0), base::TimeTicks(), 0, 0);
+  idle_event_notifier_->OnUserActivity(&mouse_event);
+
+  IdleEventNotifier::ActivityData data;
+  data.last_activity_day = GetDayOfWeek(now_3);
+  data.last_activity_time_of_day = GetTimeSinceMidnight(now_3);
+  data.last_user_activity_time_of_day = GetTimeSinceMidnight(now_3);
+  data.recent_time_active = now_3 - now_1;
+  data.time_since_last_mouse = IdleEventNotifier::kIdleDelay;
+  data.video_playing_time = now_2 - now_1;
+  data.time_since_video_ended = IdleEventNotifier::kIdleDelay + now_3 - now_2;
+  FastForwardAndCheckResults(1, data);
+}
+
+TEST_F(IdleEventNotifierTest, TwoVideoPlayingFarApartOneIdleEvent) {
+  // Two video playing sessions with a gap larger than kIdleDelay. No idle event
+  // is generated in between because of other user activities, and the last
+  // video session is reported.
+  base::Time now_1 = task_runner_->Now();
+  idle_event_notifier_->OnVideoActivityStarted();
+
+  task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(2));
+  idle_event_notifier_->OnVideoActivityEnded();
+
+  ui::MouseEvent mouse_event(ui::ET_MOUSE_EXITED, gfx::Point(0, 0),
+                             gfx::Point(0, 0), base::TimeTicks(), 0, 0);
+
+  task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(20));
+  idle_event_notifier_->OnUserActivity(&mouse_event);
+  task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(20));
+  idle_event_notifier_->OnUserActivity(&mouse_event);
+
+  base::Time now_2 = task_runner_->Now();
+  idle_event_notifier_->OnVideoActivityStarted();
+  task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(20));
+  base::Time now_3 = task_runner_->Now();
+  idle_event_notifier_->OnVideoActivityEnded();
+
+  IdleEventNotifier::ActivityData data;
+  data.last_activity_day = GetDayOfWeek(now_3);
+  data.last_activity_time_of_day = GetTimeSinceMidnight(now_3);
+  data.last_user_activity_time_of_day = GetTimeSinceMidnight(now_2);
+  data.recent_time_active = now_3 - now_1;
+  data.time_since_last_mouse = IdleEventNotifier::kIdleDelay + now_3 - now_2;
+  data.video_playing_time = now_3 - now_2;
+  data.time_since_video_ended = IdleEventNotifier::kIdleDelay;
+  FastForwardAndCheckResults(1, data);
+}
+
+TEST_F(IdleEventNotifierTest, TwoVideoPlayingFarApartTwoIdleEvents) {
+  // Two video playing sessions with a gap equal to kIdleDelay. An idle event
+  // is generated in between, both video sessions are reported.
+  base::Time now_1 = task_runner_->Now();
+  idle_event_notifier_->OnVideoActivityStarted();
+
+  task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(2));
+  base::Time now_2 = task_runner_->Now();
+  idle_event_notifier_->OnVideoActivityEnded();
+
+  IdleEventNotifier::ActivityData data_1;
+  data_1.last_activity_day = GetDayOfWeek(now_2);
+  data_1.last_activity_time_of_day = GetTimeSinceMidnight(now_2);
+  data_1.recent_time_active = now_2 - now_1;
+  data_1.video_playing_time = now_2 - now_1;
+  data_1.time_since_video_ended = IdleEventNotifier::kIdleDelay;
+  FastForwardAndCheckResults(1, data_1);
+
+  base::Time now_3 = task_runner_->Now();
+  idle_event_notifier_->OnVideoActivityStarted();
+  task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(20));
+  base::Time now_4 = task_runner_->Now();
+  idle_event_notifier_->OnVideoActivityEnded();
+
+  IdleEventNotifier::ActivityData data_2;
+  data_2.last_activity_day = GetDayOfWeek(now_4);
+  data_2.last_activity_time_of_day = GetTimeSinceMidnight(now_4);
+  data_2.recent_time_active = now_4 - now_3;
+  data_2.video_playing_time = now_4 - now_3;
+  data_2.time_since_video_ended = IdleEventNotifier::kIdleDelay;
+  FastForwardAndCheckResults(2, data_2);
+}
+
+TEST_F(IdleEventNotifierTest, VideoPlayingPausedByShortSuspend) {
+  base::Time now_1 = task_runner_->Now();
+  idle_event_notifier_->OnVideoActivityStarted();
+
+  task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(10));
+  idle_event_notifier_->SuspendImminent(
+      power_manager::SuspendImminent_Reason_LID_CLOSED);
+
+  task_runner_->FastForwardBy(IdleEventNotifier::kIdleDelay / 2);
+  base::Time now_2 = task_runner_->Now();
+  idle_event_notifier_->SuspendDone(IdleEventNotifier::kIdleDelay / 2);
+
+  task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(20));
+  base::Time now_3 = task_runner_->Now();
+  idle_event_notifier_->OnVideoActivityEnded();
+
+  IdleEventNotifier::ActivityData data;
+  data.last_activity_day = GetDayOfWeek(now_3);
+  data.last_activity_time_of_day = GetTimeSinceMidnight(now_3);
+  data.last_user_activity_time_of_day = GetTimeSinceMidnight(now_2);
+  data.recent_time_active = now_3 - now_1;
+  data.video_playing_time = now_3 - now_1;
+  data.time_since_video_ended = IdleEventNotifier::kIdleDelay;
+  FastForwardAndCheckResults(1, data);
+}
+
+TEST_F(IdleEventNotifierTest, VideoPlayingPausedByLongSuspend) {
+  idle_event_notifier_->OnVideoActivityStarted();
+
+  task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(10));
+  idle_event_notifier_->SuspendImminent(
+      power_manager::SuspendImminent_Reason_LID_CLOSED);
+
+  task_runner_->FastForwardBy(2 * IdleEventNotifier::kIdleDelay);
+  base::Time now_1 = task_runner_->Now();
+  idle_event_notifier_->SuspendDone(2 * IdleEventNotifier::kIdleDelay);
+
+  task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(20));
+  base::Time now_2 = task_runner_->Now();
+  idle_event_notifier_->OnVideoActivityEnded();
+
+  IdleEventNotifier::ActivityData data;
+  data.last_activity_day = GetDayOfWeek(now_2);
+  data.last_activity_time_of_day = GetTimeSinceMidnight(now_2);
+  data.last_user_activity_time_of_day = GetTimeSinceMidnight(now_1);
+  data.recent_time_active = now_2 - now_1;
+  data.video_playing_time = now_2 - now_1;
+  data.time_since_video_ended = IdleEventNotifier::kIdleDelay;
+  FastForwardAndCheckResults(1, data);
+}
+
 }  // namespace ml
 }  // namespace power
 }  // namespace chromeos
diff --git a/chrome/browser/chromeos/power/ml/user_activity_event.proto b/chrome/browser/chromeos/power/ml/user_activity_event.proto
index 20895070..ccd15ba2 100644
--- a/chrome/browser/chromeos/power/ml/user_activity_event.proto
+++ b/chrome/browser/chromeos/power/ml/user_activity_event.proto
@@ -130,7 +130,14 @@
 
     // Whether network is connected.
     optional bool is_online = 15;
-  }
+
+    // Duration of latest non-stop video playing before the current idle
+    // event. If a video paused/stopped temporarily (i.e. less than
+    // start_delay_sec), we consider it as non-stop.
+    optional int32 video_playing_time_sec = 16;
+    // Duration from the time video ended to the time of idle event.
+    optional int32 time_since_video_ended_sec = 17;
+  }  // next id = 18
 
   optional ModelParams params = 1;
   optional Event event = 2;
diff --git a/chrome/browser/chromeos/power/ml/user_activity_logger.cc b/chrome/browser/chromeos/power/ml/user_activity_logger.cc
index 9336d18..35222a7 100644
--- a/chrome/browser/chromeos/power/ml/user_activity_logger.cc
+++ b/chrome/browser/chromeos/power/ml/user_activity_logger.cc
@@ -238,6 +238,13 @@
         activity_data.time_since_last_key.value().InSeconds());
   }
 
+  features_.set_video_playing_time_sec(
+      activity_data.video_playing_time.InSeconds());
+
+  if (activity_data.time_since_video_ended) {
+    features_.set_time_since_video_ended_sec(
+        activity_data.time_since_video_ended.value().InSeconds());
+  }
 
   // Set device mode.
   if (lid_state_ == chromeos::PowerManagerClient::LidState::CLOSED) {
diff --git a/chrome/browser/chromeos/power/ml/user_activity_logger_delegate_ukm.cc b/chrome/browser/chromeos/power/ml/user_activity_logger_delegate_ukm.cc
index 5ecd7445..9253c11 100644
--- a/chrome/browser/chromeos/power/ml/user_activity_logger_delegate_ukm.cc
+++ b/chrome/browser/chromeos/power/ml/user_activity_logger_delegate_ukm.cc
@@ -3,7 +3,6 @@
 // found in the LICENSE file.
 
 #include <cmath>
-#include <vector>
 
 #include "chrome/browser/chromeos/power/ml/user_activity_event.pb.h"
 #include "chrome/browser/chromeos/power/ml/user_activity_logger_delegate_ukm.h"
@@ -23,6 +22,28 @@
 namespace power {
 namespace ml {
 
+namespace {
+
+constexpr UserActivityLoggerDelegateUkm::Bucket kEventLogDurationBuckets[] = {
+    {60, 1},
+    {300, 10},
+    {600, 20}};
+
+constexpr UserActivityLoggerDelegateUkm::Bucket
+    kRecentVideoPlayingTimeBuckets[] = {{60, 1},
+                                        {1200, 300},
+                                        {3600, 600},
+                                        {18000, 1800}};
+
+constexpr UserActivityLoggerDelegateUkm::Bucket
+    kTimeSinceLastVideoEndedBuckets[] = {{60, 1},
+                                         {600, 60},
+                                         {1200, 300},
+                                         {3600, 600},
+                                         {18000, 1800}};
+
+}  // namespace
+
 // static
 int UserActivityLoggerDelegateUkm::BucketEveryFivePercents(int original_value) {
   DCHECK_GE(original_value, 0);
@@ -31,19 +52,18 @@
 }
 
 int UserActivityLoggerDelegateUkm::ExponentiallyBucketTimestamp(
-    int timestamp_sec) {
+    int timestamp_sec,
+    const Bucket* buckets,
+    size_t num_buckets) {
   DCHECK_GE(timestamp_sec, 0);
-  if (timestamp_sec < 60)
-    return timestamp_sec;
-
-  if (timestamp_sec < 300) {
-    return 10 * (timestamp_sec / 10);
+  DCHECK(buckets);
+  for (size_t i = 0; i < num_buckets; ++i) {
+    const Bucket& bucket = buckets[i];
+    if (timestamp_sec < bucket.boundary_end) {
+      return bucket.rounding * (timestamp_sec / bucket.rounding);
+    }
   }
-
-  if (timestamp_sec < 600) {
-    return 20 * (timestamp_sec / 20);
-  }
-  return 600;
+  return buckets[num_buckets - 1].boundary_end;
 }
 
 UserActivityLoggerDelegateUkm::UserActivityLoggerDelegateUkm()
@@ -118,14 +138,19 @@
   user_activity.SetSequenceId(next_sequence_id_++)
       .SetDeviceMode(event.features().device_mode())
       .SetDeviceType(event.features().device_type())
-      .SetEventLogDuration(
-          ExponentiallyBucketTimestamp(event.event().log_duration_sec()))
+      .SetEventLogDuration(ExponentiallyBucketTimestamp(
+          event.event().log_duration_sec(), kEventLogDurationBuckets,
+          arraysize(kEventLogDurationBuckets)))
       .SetEventReason(event.event().reason())
       .SetEventType(event.event().type())
       .SetLastActivityDay(event.features().last_activity_day())
       .SetLastActivityTime(
           std::floor(event.features().last_activity_time_sec() / 3600))
-      .SetRecentTimeActive(event.features().recent_time_active_sec());
+      .SetRecentTimeActive(event.features().recent_time_active_sec())
+      .SetRecentVideoPlayingTime(ExponentiallyBucketTimestamp(
+          event.features().video_playing_time_sec(),
+          kRecentVideoPlayingTimeBuckets,
+          arraysize(kRecentVideoPlayingTimeBuckets)));
 
   if (event.features().has_on_to_dim_sec()) {
     user_activity.SetScreenDimDelay(event.features().on_to_dim_sec());
@@ -160,6 +185,14 @@
   if (event.features().has_device_management()) {
     user_activity.SetDeviceManagement(event.features().device_management());
   }
+
+  if (event.features().has_time_since_video_ended_sec()) {
+    user_activity.SetTimeSinceLastVideoEnded(ExponentiallyBucketTimestamp(
+        event.features().time_since_video_ended_sec(),
+        kTimeSinceLastVideoEndedBuckets,
+        arraysize(kTimeSinceLastVideoEndedBuckets)));
+  }
+
   user_activity.Record(ukm_recorder_);
 
   for (const std::pair<ukm::SourceId, TabProperty>& kv : source_ids_) {
diff --git a/chrome/browser/chromeos/power/ml/user_activity_logger_delegate_ukm.h b/chrome/browser/chromeos/power/ml/user_activity_logger_delegate_ukm.h
index 8d2f412..a93ea567 100644
--- a/chrome/browser/chromeos/power/ml/user_activity_logger_delegate_ukm.h
+++ b/chrome/browser/chromeos/power/ml/user_activity_logger_delegate_ukm.h
@@ -5,8 +5,6 @@
 #ifndef CHROME_BROWSER_CHROMEOS_POWER_ML_USER_ACTIVITY_LOGGER_DELEGATE_UKM_H_
 #define CHROME_BROWSER_CHROMEOS_POWER_ML_USER_ACTIVITY_LOGGER_DELEGATE_UKM_H_
 
-#include <vector>
-
 #include "base/macros.h"
 #include "chrome/browser/chromeos/power/ml/user_activity_logger_delegate.h"
 #include "chrome/browser/resource_coordinator/tab_metrics_event.pb.h"
@@ -25,13 +23,24 @@
   // |original_value| should be in the range of [0, 100].
   static int BucketEveryFivePercents(int original_value);
 
-  // Bucket |timestamp_sec| such that
-  // 1. if |timestamp_sec| < 60sec, return original value.
-  // 2. if |timestamp_sec| < 5min, bucket to nearest 10sec.
-  // 3. if |timestamp_sec| < 10min, bucket to nearest 20sec.
-  // 4. if |timestamp_sec| >= 10min, cap it at 10min.
-  // In all cases, the returned value is in seconds.
-  static int ExponentiallyBucketTimestamp(int timestamp_sec);
+  // Both |boundary_end| and |rounding| are seconds.
+  struct Bucket {
+    int boundary_end;
+    int rounding;
+  };
+
+  // Bucket |timestamp_sec| using given |buckets|, which is an array of
+  // Bucket and must be sorted in ascending order of
+  // |boundary_end|. An example
+  // of |buckets| is {{60, 1}, {300, 10}, {600, 20}}. This function looks for
+  // the first |boundary_end| > |timestamp_sec| and bucket it to the nearest
+  // |rounding|. If |timestamp_sec| is greater than all |boundary_end|, the
+  // function returns the largest |boundary_end|. Using the above |buckets|
+  // example, the function will return 30 if |timestamp_sec| = 30, and 290 if
+  // |timestamp_sec| = 299.
+  static int ExponentiallyBucketTimestamp(int timestamp_sec,
+                                          const Bucket* buckets,
+                                          size_t num_buckets);
 
   UserActivityLoggerDelegateUkm();
   ~UserActivityLoggerDelegateUkm() override;
diff --git a/chrome/browser/chromeos/power/ml/user_activity_logger_delegate_ukm_unittest.cc b/chrome/browser/chromeos/power/ml/user_activity_logger_delegate_ukm_unittest.cc
index 3c8cb4f1..ef648b13 100644
--- a/chrome/browser/chromeos/power/ml/user_activity_logger_delegate_ukm_unittest.cc
+++ b/chrome/browser/chromeos/power/ml/user_activity_logger_delegate_ukm_unittest.cc
@@ -52,6 +52,8 @@
     features->set_last_activity_time_sec(7300);
     features->set_last_user_activity_time_sec(3800);
     features->set_recent_time_active_sec(10);
+    features->set_video_playing_time_sec(800);
+    features->set_time_since_video_ended_sec(400);
     features->set_on_to_dim_sec(100);
     features->set_dim_to_screen_off_sec(200);
     features->set_time_since_last_mouse_sec(100);
@@ -143,11 +145,13 @@
       {UserActivity::kLastUserActivityTimeName, 1},
       {UserActivity::kOnBatteryName, base::nullopt},
       {UserActivity::kRecentTimeActiveName, 10},
+      {UserActivity::kRecentVideoPlayingTimeName, 600},
       {UserActivity::kScreenDimDelayName, 100},
       {UserActivity::kScreenDimToOffDelayName, 200},
       {UserActivity::kSequenceIdName, 1},
       {UserActivity::kTimeSinceLastKeyName, base::nullopt},
-      {UserActivity::kTimeSinceLastMouseName, 100}};
+      {UserActivity::kTimeSinceLastMouseName, 100},
+      {UserActivity::kTimeSinceLastVideoEndedName, 360}};
 
  private:
   UserActivityLoggerDelegateUkm user_activity_logger_delegate_ukm_;
@@ -167,12 +171,14 @@
 TEST_F(UserActivityLoggerDelegateUkmTest, ExponentiallyBucketTimestamp) {
   const std::vector<int> original_values = {0,   18,  59,  60,  62,  69,  72,
                                             299, 300, 306, 316, 599, 600, 602};
-  const std::vector<int> buckets = {0,   18,  59,  60,  60,  60,  70,
+  constexpr UserActivityLoggerDelegateUkm::Bucket buckets[] = {
+      {60, 1}, {300, 10}, {600, 20}};
+  const std::vector<int> results = {0,   18,  59,  60,  60,  60,  70,
                                     290, 300, 300, 300, 580, 600, 600};
   for (size_t i = 0; i < original_values.size(); ++i) {
-    EXPECT_EQ(buckets[i],
+    EXPECT_EQ(results[i],
               UserActivityLoggerDelegateUkm::ExponentiallyBucketTimestamp(
-                  original_values[i]));
+                  original_values[i], buckets, arraysize(buckets)));
   }
 }
 
diff --git a/chrome/browser/chromeos/power/ml/user_activity_logger_unittest.cc b/chrome/browser/chromeos/power/ml/user_activity_logger_unittest.cc
index fb5c070..33bcf9a 100644
--- a/chrome/browser/chromeos/power/ml/user_activity_logger_unittest.cc
+++ b/chrome/browser/chromeos/power/ml/user_activity_logger_unittest.cc
@@ -448,6 +448,8 @@
   data.last_activity_time_of_day = base::TimeDelta::FromSeconds(100);
   data.recent_time_active = base::TimeDelta::FromSeconds(10);
   data.time_since_last_mouse = base::TimeDelta::FromSeconds(20);
+  data.video_playing_time = base::TimeDelta::FromSeconds(90);
+  data.time_since_video_ended = base::TimeDelta::FromSeconds(2);
 
   ReportIdleEvent(data);
   ReportUserActivity(nullptr);
@@ -466,6 +468,8 @@
   EXPECT_EQ(100, features.last_activity_time_sec());
   EXPECT_EQ(10, features.recent_time_active_sec());
   EXPECT_EQ(20, features.time_since_last_mouse_sec());
+  EXPECT_EQ(90, features.video_playing_time_sec());
+  EXPECT_EQ(2, features.time_since_video_ended_sec());
   EXPECT_FALSE(features.has_last_user_activity_time_sec());
   EXPECT_FALSE(features.has_time_since_last_key_sec());
 }
diff --git a/chrome/browser/chromeos/settings/device_settings_provider.cc b/chrome/browser/chromeos/settings/device_settings_provider.cc
index c4d5c7e..15c48e0 100644
--- a/chrome/browser/chromeos/settings/device_settings_provider.cc
+++ b/chrome/browser/chromeos/settings/device_settings_provider.cc
@@ -645,14 +645,6 @@
           kVirtualMachinesAllowed,
           std::make_unique<base::Value>(container.virtual_machines_allowed()));
     }
-  } else {
-    // If the policy is missing, default to false on enterprise-enrolled
-    // devices.
-    policy::BrowserPolicyConnectorChromeOS* connector =
-        g_browser_process->platform_part()->browser_policy_connector_chromeos();
-    if (connector->IsEnterpriseManaged()) {
-      new_values_cache->SetBoolean(kVirtualMachinesAllowed, false);
-    }
   }
 }
 
diff --git a/chrome/browser/chromeos/upgrade_detector_chromeos.cc b/chrome/browser/chromeos/upgrade_detector_chromeos.cc
index e2190f7b..867f48c 100644
--- a/chrome/browser/chromeos/upgrade_detector_chromeos.cc
+++ b/chrome/browser/chromeos/upgrade_detector_chromeos.cc
@@ -18,7 +18,12 @@
 
 // How long to wait (each cycle) before checking which severity level we should
 // be at. Once we reach the highest severity, the timer will stop.
-const int kNotifyCycleTimeMs = 20 * 60 * 1000;  // 20 minutes.
+constexpr base::TimeDelta kNotifyCycleDelta = base::TimeDelta::FromMinutes(20);
+
+constexpr int kSevereDaysThreshold = 7;
+constexpr int kHighDaysThreshold = 4;
+constexpr int kElevatedDaysThreshold = 2;
+constexpr int kLowDaysThreshold = 0;
 
 }  // namespace
 
@@ -90,6 +95,10 @@
   DBusThreadManager::Get()->GetUpdateEngineClient()->RemoveObserver(this);
 }
 
+base::TimeDelta UpgradeDetectorChromeos::GetHighAnnoyanceLevelDelta() {
+  return base::TimeDelta::FromDays(kHighDaysThreshold - kElevatedDaysThreshold);
+}
+
 void UpgradeDetectorChromeos::UpdateStatusChanged(
     const UpdateEngineClient::Status& status) {
   if (status.status == UpdateEngineClient::UPDATE_STATUS_UPDATED_NEED_REBOOT) {
@@ -113,24 +122,19 @@
 
 void UpgradeDetectorChromeos::NotifyOnUpgrade() {
   base::TimeDelta delta = base::TimeTicks::Now() - upgrade_detected_time();
-  int64_t time_passed = delta.InDays();
-
-  const int kSevereThreshold = 7;
-  const int kHighThreshold = 4;
-  const int kElevatedThreshold = 2;
-  const int kLowThreshold = 0;
+  int64_t days_passed = delta.InDays();
 
   // These if statements must be sorted (highest interval first).
-  if (time_passed >= kSevereThreshold) {
+  if (days_passed >= kSevereDaysThreshold) {
     set_upgrade_notification_stage(UPGRADE_ANNOYANCE_SEVERE);
 
     // We can't get any higher, baby.
     upgrade_notification_timer_.Stop();
-  } else if (time_passed >= kHighThreshold) {
+  } else if (days_passed >= kHighDaysThreshold) {
     set_upgrade_notification_stage(UPGRADE_ANNOYANCE_HIGH);
-  } else if (time_passed >= kElevatedThreshold) {
+  } else if (days_passed >= kElevatedDaysThreshold) {
     set_upgrade_notification_stage(UPGRADE_ANNOYANCE_ELEVATED);
-  } else if (time_passed >= kLowThreshold) {
+  } else if (days_passed >= kLowDaysThreshold) {
     set_upgrade_notification_stage(UPGRADE_ANNOYANCE_LOW);
   } else {
     return;  // Not ready to recommend upgrade.
@@ -152,11 +156,8 @@
   NotifyOnUpgrade();
 
   // Setup timer to to move along the upgrade advisory system.
-  upgrade_notification_timer_.Start(
-      FROM_HERE,
-      base::TimeDelta::FromMilliseconds(kNotifyCycleTimeMs),
-      this,
-      &UpgradeDetectorChromeos::NotifyOnUpgrade);
+  upgrade_notification_timer_.Start(FROM_HERE, kNotifyCycleDelta, this,
+                                    &UpgradeDetectorChromeos::NotifyOnUpgrade);
 }
 
 // static
diff --git a/chrome/browser/chromeos/upgrade_detector_chromeos.h b/chrome/browser/chromeos/upgrade_detector_chromeos.h
index c17abdd..a242ffa6 100644
--- a/chrome/browser/chromeos/upgrade_detector_chromeos.h
+++ b/chrome/browser/chromeos/upgrade_detector_chromeos.h
@@ -32,6 +32,9 @@
   // update engine.
   void Shutdown();
 
+  // UpgradeDetector:
+  base::TimeDelta GetHighAnnoyanceLevelDelta() override;
+
  private:
   friend struct base::DefaultSingletonTraits<UpgradeDetectorChromeos>;
   class ChannelsRequester;
diff --git a/chrome/browser/client_hints/client_hints_browsertest.cc b/chrome/browser/client_hints/client_hints_browsertest.cc
index e92dcdd..06effe2 100644
--- a/chrome/browser/client_hints/client_hints_browsertest.cc
+++ b/chrome/browser/client_hints/client_hints_browsertest.cc
@@ -2,6 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include "base/bind.h"
 #include "base/command_line.h"
 #include "base/run_loop.h"
 #include "base/stl_util.h"
@@ -22,17 +23,73 @@
 #include "content/public/common/content_switches.h"
 #include "content/public/test/browser_test_utils.h"
 #include "content/public/test/test_utils.h"
+#include "content/public/test/url_loader_interceptor.h"
+#include "net/dns/mock_host_resolver.h"
+#include "net/http/http_request_headers.h"
 #include "net/test/embedded_test_server/embedded_test_server.h"
 #include "net/test/embedded_test_server/http_request.h"
+#include "net/test/embedded_test_server/http_response.h"
+#include "net/test/url_request/url_request_mock_data_job.h"
+#include "net/url_request/url_request_context.h"
+#include "net/url_request/url_request_context_getter.h"
+#include "net/url_request/url_request_filter.h"
+#include "net/url_request/url_request_interceptor.h"
+#include "net/url_request/url_request_job.h"
+#include "net/url_request/url_request_test_job.h"
+
+namespace {
+
+// An interceptor that records count of fetches and client hint headers for
+// requests to https://foo.com/non-existing-image.jpg.
+class ThirdPartyRequestInterceptor : public net::URLRequestInterceptor {
+ public:
+  ThirdPartyRequestInterceptor()
+      : request_count_seen_(0u), client_hints_count_seen_(0u) {}
+
+  ~ThirdPartyRequestInterceptor() override = default;
+
+  // net::URLRequestInterceptor implementation
+  net::URLRequestJob* MaybeInterceptRequest(
+      net::URLRequest* request,
+      net::NetworkDelegate* network_delegate) const override {
+    DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
+
+    net::HttpRequestHeaders headers = request->extra_request_headers();
+
+    request_count_seen_++;
+    if (headers.HasHeader("dpr")) {
+      client_hints_count_seen_++;
+    }
+    if (headers.HasHeader("device-memory")) {
+      client_hints_count_seen_++;
+    }
+    return new net::URLRequestMockDataJob(request, network_delegate, "contents",
+                                          1, false);
+  }
+
+  size_t request_count_seen() const { return request_count_seen_; }
+
+  size_t client_hints_count_seen() const { return client_hints_count_seen_; }
+
+ private:
+  mutable size_t request_count_seen_;
+
+  mutable size_t client_hints_count_seen_;
+
+  DISALLOW_COPY_AND_ASSIGN(ThirdPartyRequestInterceptor);
+};
+
+}  // namespace
 
 class ClientHintsBrowserTest : public InProcessBrowserTest {
  public:
   ClientHintsBrowserTest()
       : http_server_(net::EmbeddedTestServer::TYPE_HTTP),
         https_server_(net::EmbeddedTestServer::TYPE_HTTPS),
-        expect_client_hints_(false),
-        expect_client_hints_on_main_frame_only_(false),
-        count_client_hints_headers_seen_(0) {
+        expect_client_hints_on_main_frame_(false),
+        expect_client_hints_on_subresources_(false),
+        count_client_hints_headers_seen_(0),
+        request_interceptor_(nullptr) {
     http_server_.ServeFilesFromSourceDirectory("chrome/test/data/client_hints");
     https_server_.ServeFilesFromSourceDirectory(
         "chrome/test/data/client_hints");
@@ -82,26 +139,39 @@
         "/without_accept_ch_without_lifetime_img_foo_com.html");
     accept_ch_without_lifetime_with_iframe_url_ =
         https_server_.GetURL("/accept_ch_without_lifetime_with_iframe.html");
+    accept_ch_without_lifetime_img_localhost_ =
+        https_server_.GetURL("/accept_ch_without_lifetime_img_localhost.html");
   }
 
   ~ClientHintsBrowserTest() override {}
 
   void SetUpOnMainThread() override {
+    host_resolver()->AddRule("*", "127.0.0.1");
     content::BrowserThread::PostTask(
         content::BrowserThread::IO, FROM_HERE,
         base::BindOnce(&chrome_browser_net::SetUrlRequestMocksEnabled, true));
+
+    request_interceptor_ = new ThirdPartyRequestInterceptor();
+    std::unique_ptr<net::URLRequestInterceptor> owned_interceptor(
+        request_interceptor_);
+    content::BrowserThread::PostTask(
+        content::BrowserThread::IO, FROM_HERE,
+        base::BindOnce(&InstallMockInterceptors,
+                       GURL("https://foo.com/non-existing-image.jpg"),
+                       std::move(owned_interceptor)));
+    base::RunLoop().RunUntilIdle();
   }
 
   void SetUpCommandLine(base::CommandLine* cmd) override {
     cmd->AppendSwitch(switches::kEnableExperimentalWebPlatformFeatures);
   }
 
-  void SetClientHintExpectations(bool expect_client_hints) {
-    expect_client_hints_ = expect_client_hints;
+  void SetClientHintExpectationsOnMainFrame(bool expect_client_hints) {
+    expect_client_hints_on_main_frame_ = expect_client_hints;
   }
 
-  void SetClientHintExpectationsOnMainFrameOnly(bool expect_client_hints) {
-    expect_client_hints_on_main_frame_only_ = expect_client_hints;
+  void SetClientHintExpectationsOnSubresources(bool expect_client_hints) {
+    expect_client_hints_on_subresources_ = expect_client_hints;
   }
 
   const GURL& accept_ch_with_lifetime_http_local_url() const {
@@ -151,34 +221,54 @@
     return accept_ch_without_lifetime_with_iframe_url_;
   }
 
+  // A URL whose response headers includes only Accept-CH header. Navigating to
+  // this URL also fetches two images: One from the localhost, and one from
+  // foo.com.
+  const GURL& accept_ch_without_lifetime_img_localhost() const {
+    return accept_ch_without_lifetime_img_localhost_;
+  }
+
   size_t count_client_hints_headers_seen() const {
     return count_client_hints_headers_seen_;
   }
 
+  size_t third_party_request_count_seen() const {
+    return request_interceptor_->request_count_seen();
+  }
+
+  size_t third_party_client_hints_count_seen() const {
+    return request_interceptor_->client_hints_count_seen();
+  }
+
  private:
+  static void InstallMockInterceptors(
+      const GURL& url,
+      std::unique_ptr<net::URLRequestInterceptor> request_interceptor) {
+    DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
+    chrome_browser_net::SetUrlRequestMocksEnabled(true);
+
+    net::URLRequestFilter::GetInstance()->AddUrlInterceptor(
+        url, std::move(request_interceptor));
+  }
+
   // Called by |https_server_|.
   void MonitorResourceRequest(const net::test_server::HttpRequest& request) {
     bool is_main_frame_navigation =
         request.GetURL().spec().find(".html") != std::string::npos;
 
-    // dpr headers are not attached to the main frame request.
-    if (!expect_client_hints_on_main_frame_only_) {
-      EXPECT_EQ(expect_client_hints_ && !is_main_frame_navigation,
-                base::ContainsKey(request.headers, "dpr"));
-    } else {
-      EXPECT_EQ(expect_client_hints_on_main_frame_only_ &&
-                    is_main_frame_navigation && !is_main_frame_navigation,
-                base::ContainsKey(request.headers, "dpr"));
+    if (is_main_frame_navigation) {
+      // device-memory header is attached to the main frame request.
+      EXPECT_EQ(expect_client_hints_on_main_frame_,
+                base::ContainsKey(request.headers, "device-memory"));
+      // Currently, dpr header is never attached on the main frame request.
+      EXPECT_FALSE(base::ContainsKey(request.headers, "dpr"));
     }
 
-    // When browser side navigation is enabled, device-memory header is attached
-    // to the main frame request.
-    if (!expect_client_hints_on_main_frame_only_) {
-      EXPECT_EQ(expect_client_hints_,
+    if (!is_main_frame_navigation) {
+      EXPECT_EQ(expect_client_hints_on_subresources_,
                 base::ContainsKey(request.headers, "device-memory"));
-    } else {
-      EXPECT_EQ(expect_client_hints_ && is_main_frame_navigation,
-                base::ContainsKey(request.headers, "device-memory"));
+      EXPECT_EQ(expect_client_hints_on_subresources_,
+                base::ContainsKey(request.headers, "dpr"));
     }
 
     if (base::ContainsKey(request.headers, "dpr"))
@@ -198,13 +288,18 @@
   GURL accept_ch_without_lifetime_with_iframe_url_;
   GURL without_accept_ch_without_lifetime_img_foo_com_;
   GURL without_accept_ch_without_lifetime_img_localhost_;
+  GURL accept_ch_without_lifetime_img_localhost_;
 
-  bool expect_client_hints_;
-  // Expect client hints only on the main frame request, and not on
-  // subresources.
-  bool expect_client_hints_on_main_frame_only_;
+  // Expect client hints on all the main frame request.
+  bool expect_client_hints_on_main_frame_;
+  // Expect client hints on all the subresource requests.
+  bool expect_client_hints_on_subresources_;
+
   size_t count_client_hints_headers_seen_;
 
+  // Not owned. May be null.
+  ThirdPartyRequestInterceptor* request_interceptor_;
+
   DISALLOW_COPY_AND_ASSIGN(ClientHintsBrowserTest);
 };
 
@@ -265,7 +360,8 @@
   // Navigating to without_accept_ch_without_lifetime_img_localhost() should
   // attach client hints to the image subresouce contained in that page since
   // the image is located on the same server as the document origin.
-  SetClientHintExpectations(true);
+  SetClientHintExpectationsOnMainFrame(true);
+  SetClientHintExpectationsOnSubresources(true);
   ui_test_utils::NavigateToURL(
       browser(), without_accept_ch_without_lifetime_img_localhost());
   base::RunLoop().RunUntilIdle();
@@ -279,7 +375,6 @@
   // Navigating to without_accept_ch_without_lifetime_img_foo_com() should not
   // attach client hints to the image subresouce contained in that page since
   // the image is located on a different server as the document origin.
-  SetClientHintExpectations(true);
   ui_test_utils::NavigateToURL(
       browser(), without_accept_ch_without_lifetime_img_foo_com());
   base::RunLoop().RunUntilIdle();
@@ -288,6 +383,9 @@
 
   // The device-memory header is attached to the main frame request.
   EXPECT_EQ(4u, count_client_hints_headers_seen());
+  // Requests to third party servers should not have client hints attached.
+  EXPECT_EQ(1u, third_party_request_count_seen());
+  EXPECT_EQ(0u, third_party_client_hints_count_seen());
 }
 
 // Loads a HTTPS webpage that does not request persisting of client hints.
@@ -356,7 +454,8 @@
                               &host_settings);
   EXPECT_EQ(1u, host_settings.size());
 
-  SetClientHintExpectations(true);
+  SetClientHintExpectationsOnMainFrame(true);
+  SetClientHintExpectationsOnSubresources(true);
   ui_test_utils::NavigateToURL(browser(),
                                without_accept_ch_without_lifetime_local_url());
 
@@ -414,7 +513,8 @@
                               &host_settings);
   EXPECT_EQ(1u, host_settings.size());
 
-  SetClientHintExpectations(true);
+  SetClientHintExpectationsOnMainFrame(true);
+  SetClientHintExpectationsOnSubresources(true);
   ui_test_utils::NavigateToURL(browser(),
                                without_accept_ch_without_lifetime_url());
 
@@ -507,7 +607,8 @@
                                       CONTENT_SETTINGS_TYPE_COOKIES,
                                       std::string(), CONTENT_SETTING_ALLOW);
 
-  SetClientHintExpectations(true);
+  SetClientHintExpectationsOnMainFrame(true);
+  SetClientHintExpectationsOnSubresources(true);
   ui_test_utils::NavigateToURL(browser(),
                                without_accept_ch_without_lifetime_url());
   // Two client hints are attached to the image request, and the device-memory
@@ -601,7 +702,8 @@
                                       GURL(), CONTENT_SETTINGS_TYPE_JAVASCRIPT,
                                       std::string(), CONTENT_SETTING_ALLOW);
 
-  SetClientHintExpectations(true);
+  SetClientHintExpectationsOnMainFrame(true);
+  SetClientHintExpectationsOnSubresources(true);
   ui_test_utils::NavigateToURL(browser(),
                                without_accept_ch_without_lifetime_url());
   // Two client hints are attached to the image request, and the device-memory
@@ -613,8 +715,10 @@
       ->ClearSettingsForOneType(CONTENT_SETTINGS_TYPE_JAVASCRIPT);
 }
 
+// Ensure that when the JavaScript is blocked, client hints requested using
+// Accept-CH are still attached to the request headers for subresources.
 IN_PROC_BROWSER_TEST_F(ClientHintsBrowserTest,
-                       ClientHintsNoLifetimeFollowedByNoClientHint) {
+                       ClientHintsNoLifetimeScriptNotAllowed) {
   base::HistogramTester histogram_tester;
   ContentSettingsForOneType host_settings;
 
@@ -623,28 +727,108 @@
                               &host_settings);
   EXPECT_EQ(0u, host_settings.size());
 
-  // Fetching accept_ch_without_lifetime_url() should not persist the request
-  // for client hints.
-  ui_test_utils::NavigateToURL(browser(), accept_ch_without_lifetime_url());
+  // Block the Javascript: Client hints should still be attached.
+  SetClientHintExpectationsOnSubresources(true);
+  HostContentSettingsMapFactory::GetForProfile(browser()->profile())
+      ->SetContentSettingDefaultScope(
+          accept_ch_without_lifetime_img_localhost(), GURL(),
+          CONTENT_SETTINGS_TYPE_JAVASCRIPT, std::string(),
+          CONTENT_SETTING_BLOCK);
+  ui_test_utils::NavigateToURL(browser(),
+                               accept_ch_without_lifetime_img_localhost());
+  EXPECT_EQ(2u, count_client_hints_headers_seen());
+  EXPECT_EQ(1u, third_party_request_count_seen());
+  // Client hints should be attached to third party subresources as well.
+  EXPECT_EQ(2u, third_party_client_hints_count_seen());
 
-  histogram_tester.ExpectTotalCount("ClientHints.UpdateEventCount", 0);
+  // Allow the Javascript.
+  HostContentSettingsMapFactory::GetForProfile(browser()->profile())
+      ->SetContentSettingDefaultScope(
+          accept_ch_without_lifetime_img_localhost(), GURL(),
+          CONTENT_SETTINGS_TYPE_JAVASCRIPT, std::string(),
+          CONTENT_SETTING_ALLOW);
 
-  content::FetchHistogramsFromChildProcesses();
-  SubprocessMetricsProvider::MergeHistogramDeltasForTesting();
+  SetClientHintExpectationsOnSubresources(true);
+  ui_test_utils::NavigateToURL(browser(),
+                               accept_ch_without_lifetime_img_localhost());
+  // Headers are attached to the two image subresources.
+  EXPECT_EQ(4u, count_client_hints_headers_seen());
+  EXPECT_EQ(2u, third_party_request_count_seen());
+  EXPECT_EQ(4u, third_party_client_hints_count_seen());
 
-  histogram_tester.ExpectTotalCount("ClientHints.UpdateSize", 0);
-  histogram_tester.ExpectTotalCount("ClientHints.PersistDuration", 0);
-  base::RunLoop().RunUntilIdle();
+  // Clear settings.
+  HostContentSettingsMapFactory::GetForProfile(browser()->profile())
+      ->ClearSettingsForOneType(CONTENT_SETTINGS_TYPE_JAVASCRIPT);
 
-  // Clients hints preferences should not be persisted.
+  // Block the Javascript again: Client hints should not be attached.
+  SetClientHintExpectationsOnSubresources(true);
+  HostContentSettingsMapFactory::GetForProfile(browser()->profile())
+      ->SetContentSettingDefaultScope(
+          accept_ch_without_lifetime_img_localhost(), GURL(),
+          CONTENT_SETTINGS_TYPE_JAVASCRIPT, std::string(),
+          CONTENT_SETTING_BLOCK);
+  ui_test_utils::NavigateToURL(browser(),
+                               accept_ch_without_lifetime_img_localhost());
+  EXPECT_EQ(6u, count_client_hints_headers_seen());
+  EXPECT_EQ(3u, third_party_request_count_seen());
+  EXPECT_EQ(6u, third_party_client_hints_count_seen());
+}
+
+// Ensure that when the cookies are blocked, client hints requested using
+// Accept-CH are not attached to the request headers.
+IN_PROC_BROWSER_TEST_F(ClientHintsBrowserTest,
+                       ClientHintsNoLifetimeCookiesNotAllowed) {
+  base::HistogramTester histogram_tester;
+  ContentSettingsForOneType host_settings;
+  scoped_refptr<content_settings::CookieSettings> cookie_settings_ =
+      CookieSettingsFactory::GetForProfile(browser()->profile());
+
   HostContentSettingsMapFactory::GetForProfile(browser()->profile())
       ->GetSettingsForOneType(CONTENT_SETTINGS_TYPE_CLIENT_HINTS, std::string(),
                               &host_settings);
   EXPECT_EQ(0u, host_settings.size());
 
-  // Next request should not have client hint headers attached.
+  // Block cookies.
+  HostContentSettingsMapFactory::GetForProfile(browser()->profile())
+      ->SetContentSettingDefaultScope(
+          accept_ch_without_lifetime_img_localhost(), GURL(),
+          CONTENT_SETTINGS_TYPE_COOKIES, std::string(), CONTENT_SETTING_BLOCK);
+  base::RunLoop().RunUntilIdle();
+
   ui_test_utils::NavigateToURL(browser(),
-                               without_accept_ch_without_lifetime_url());
+                               accept_ch_without_lifetime_img_localhost());
+  EXPECT_EQ(0u, count_client_hints_headers_seen());
+  EXPECT_EQ(1u, third_party_request_count_seen());
+  // Client hints are attached to third party subresources since cookies are
+  // blocked only for the forst party origin.
+  EXPECT_EQ(2u, third_party_client_hints_count_seen());
+
+  // Allow cookies.
+  cookie_settings_->SetCookieSetting(accept_ch_without_lifetime_img_localhost(),
+                                     CONTENT_SETTING_ALLOW);
+  base::RunLoop().RunUntilIdle();
+
+  SetClientHintExpectationsOnSubresources(true);
+  ui_test_utils::NavigateToURL(browser(),
+                               accept_ch_without_lifetime_img_localhost());
+  // Headers are attached to the two image subresources.
+  EXPECT_EQ(2u, count_client_hints_headers_seen());
+  EXPECT_EQ(2u, third_party_request_count_seen());
+  EXPECT_EQ(4u, third_party_client_hints_count_seen());
+
+  // Block cookies again.
+  SetClientHintExpectationsOnSubresources(false);
+  HostContentSettingsMapFactory::GetForProfile(browser()->profile())
+      ->SetContentSettingDefaultScope(
+          accept_ch_without_lifetime_img_localhost(), GURL(),
+          CONTENT_SETTINGS_TYPE_COOKIES, std::string(), CONTENT_SETTING_BLOCK);
+  base::RunLoop().RunUntilIdle();
+
+  ui_test_utils::NavigateToURL(browser(),
+                               accept_ch_without_lifetime_img_localhost());
+  EXPECT_EQ(2u, count_client_hints_headers_seen());
+  EXPECT_EQ(3u, third_party_request_count_seen());
+  EXPECT_EQ(6u, third_party_client_hints_count_seen());
 }
 
 // Check the client hints for the given URL in an incognito window.
diff --git a/chrome/browser/component_updater/third_party_module_list_component_installer_win.cc b/chrome/browser/component_updater/third_party_module_list_component_installer_win.cc
index 083e648..75b255e 100644
--- a/chrome/browser/component_updater/third_party_module_list_component_installer_win.cc
+++ b/chrome/browser/component_updater/third_party_module_list_component_installer_win.cc
@@ -45,7 +45,8 @@
 const char kThirdPartyModuleListName[] = "Third Party Module List";
 
 ThirdPartyModuleListComponentInstallerPolicy::
-    ThirdPartyModuleListComponentInstallerPolicy(ModuleListManager* manager)
+    ThirdPartyModuleListComponentInstallerPolicy(
+        ThirdPartyConflictsManager* manager)
     : manager_(manager) {}
 
 ThirdPartyModuleListComponentInstallerPolicy::
@@ -78,10 +79,10 @@
     const base::Version& version,
     const base::FilePath& install_dir,
     std::unique_ptr<base::DictionaryValue> manifest) {
-  // Forward the notification to the ModuleListManager on the current (UI)
-  // thread. The manager is responsible for the work of actually loading the
-  // module list, etc, on background threads.
-  manager_->LoadModuleList(version, GetModuleListPath(install_dir));
+  // Forward the notification to the ThirdPartyConflictsManager on the current
+  // (UI) thread. The manager is responsible for the work of actually loading
+  // the module list, etc, on background threads.
+  manager_->LoadModuleList(GetModuleListPath(install_dir));
 }
 
 bool ThirdPartyModuleListComponentInstallerPolicy::VerifyInstallation(
@@ -95,9 +96,15 @@
 
 base::FilePath
 ThirdPartyModuleListComponentInstallerPolicy::GetRelativeInstallDir() const {
-  // The same path is used for installation and for the registry key to keep
-  // things consistent.
-  return base::FilePath(ModuleListManager::kModuleListRegistryKeyPath);
+  static constexpr wchar_t kRelativeModuleListInstallDir[] =
+      L"ThirdPartyModuleList"
+#ifdef _WIN64
+      "64";
+#else
+      "32";
+#endif
+
+  return base::FilePath(kRelativeModuleListInstallDir);
 }
 
 void ThirdPartyModuleListComponentInstallerPolicy::GetHash(
@@ -134,7 +141,8 @@
   ModuleDatabase* database = ModuleDatabase::GetInstance();
   if (!database)
     return;
-  ModuleListManager* manager = &database->module_list_manager();
+  ThirdPartyConflictsManager* manager =
+      &database->third_party_conflicts_manager();
   auto installer = base::MakeRefCounted<ComponentInstaller>(
       std::make_unique<ThirdPartyModuleListComponentInstallerPolicy>(manager));
   installer->Register(cus, base::OnceClosure());
diff --git a/chrome/browser/component_updater/third_party_module_list_component_installer_win.h b/chrome/browser/component_updater/third_party_module_list_component_installer_win.h
index d8562e6..5ccb855 100644
--- a/chrome/browser/component_updater/third_party_module_list_component_installer_win.h
+++ b/chrome/browser/component_updater/third_party_module_list_component_installer_win.h
@@ -18,7 +18,7 @@
 }  // namespace base
 
 // Will receive notifications about a new module list being available.
-class ModuleListManager;
+class ThirdPartyConflictsManager;
 
 namespace component_updater {
 
@@ -29,14 +29,14 @@
 // chrome/browser/conflicts/proto/module_list.proto
 //
 // Notifications of a new version of the module list are sent to the
-// ModuleListManager.
+// ThirdPartyConflictsManager.
 class ThirdPartyModuleListComponentInstallerPolicy
     : public ComponentInstallerPolicy {
  public:
   // The |manager| will be notified each time a new module list is available,
   // including once every startup when a component is already installed.
   explicit ThirdPartyModuleListComponentInstallerPolicy(
-      ModuleListManager* manager);
+      ThirdPartyConflictsManager* manager);
   ~ThirdPartyModuleListComponentInstallerPolicy() override;
 
  private:
@@ -66,7 +66,7 @@
   // The manager is not owned by this class, so the code creating it is
   // expected to ensure the manager lives as long as this class does. Typically
   // the manager provided will be a global singleton.
-  ModuleListManager* manager_;
+  ThirdPartyConflictsManager* manager_;
 
   DISALLOW_COPY_AND_ASSIGN(ThirdPartyModuleListComponentInstallerPolicy);
 };
diff --git a/chrome/browser/conflicts/module_database_win.cc b/chrome/browser/conflicts/module_database_win.cc
index bc597c80..7bf1887b 100644
--- a/chrome/browser/conflicts/module_database_win.cc
+++ b/chrome/browser/conflicts/module_database_win.cc
@@ -11,9 +11,6 @@
 #include "base/files/file_path.h"
 #include "base/location.h"
 #include "chrome/browser/conflicts/module_database_observer_win.h"
-#include "chrome/browser/conflicts/module_list_filter_win.h"
-#include "chrome/browser/conflicts/problematic_programs_updater_win.h"
-#include "chrome/browser/conflicts/third_party_metrics_recorder_win.h"
 
 namespace {
 
@@ -43,13 +40,16 @@
       has_started_processing_(false),
       shell_extensions_enumerated_(false),
       ime_enumerated_(false),
-      module_list_received_(false),
       // ModuleDatabase owns |module_inspector_|, so it is safe to use
       // base::Unretained().
       module_inspector_(base::Bind(&ModuleDatabase::OnModuleInspected,
                                    base::Unretained(this))),
-      module_list_manager_(this),
-      weak_ptr_factory_(this) {}
+#if defined(GOOGLE_CHROME_BUILD)
+      third_party_conflicts_manager_(this),
+#endif
+      weak_ptr_factory_(this) {
+  AddObserver(&third_party_metrics_);
+}
 
 ModuleDatabase::~ModuleDatabase() {
   if (this == g_module_database_win_instance)
@@ -119,27 +119,6 @@
     OnRegisteredModulesEnumerated();
 }
 
-void ModuleDatabase::OnNewModuleList(const base::Version& version,
-                                     const base::FilePath& path) {
-  // No attempt is made to dynamically reconcile a new module list version. The
-  // next Chrome launch will pick it up.
-  if (module_list_received_)
-    return;
-
-  auto module_list_filter = std::make_unique<ModuleListFilter>();
-  if (!module_list_filter->Initialize(path))
-    return;
-
-  module_list_filter_ = std::move(module_list_filter);
-
-  // Mark the module list as received here so that if Initialize() fails,
-  // another attempt will be made with a newer version.
-  module_list_received_ = true;
-
-  if (installed_programs_.initialized())
-    InitializeProblematicProgramsUpdater();
-}
-
 void ModuleDatabase::OnModuleLoad(content::ProcessType process_type,
                                   const base::FilePath& module_path,
                                   uint32_t module_size,
@@ -262,14 +241,6 @@
 }
 
 void ModuleDatabase::EnterIdleState() {
-  if (!installed_programs_.initialized()) {
-    // ModuleDatabase owns |installed_programs_|, so it is safe to use
-    // base::Unretained().
-    installed_programs_.Initialize(
-        base::BindOnce(&ModuleDatabase::OnInstalledProgramsInitialized,
-                       base::Unretained(this)));
-  }
-
   for (auto& observer : observer_list_)
     observer.OnModuleDatabaseIdle();
 }
@@ -280,22 +251,3 @@
       observer->OnNewModuleFound(module.first, module.second);
   }
 }
-
-void ModuleDatabase::OnInstalledProgramsInitialized() {
-  third_party_metrics_ =
-      std::make_unique<ThirdPartyMetricsRecorder>(installed_programs_);
-  AddObserver(third_party_metrics_.get());
-
-  if (module_list_filter_)
-    InitializeProblematicProgramsUpdater();
-}
-
-void ModuleDatabase::InitializeProblematicProgramsUpdater() {
-  DCHECK(module_list_filter_);
-  DCHECK(installed_programs_.initialized());
-
-  problematic_programs_updater_ = ProblematicProgramsUpdater::MaybeCreate(
-      *module_list_filter_, installed_programs_);
-  if (problematic_programs_updater_)
-    AddObserver(problematic_programs_updater_.get());
-}
diff --git a/chrome/browser/conflicts/module_database_win.h b/chrome/browser/conflicts/module_database_win.h
index 8569353a..d7f836a1 100644
--- a/chrome/browser/conflicts/module_database_win.h
+++ b/chrome/browser/conflicts/module_database_win.h
@@ -14,16 +14,16 @@
 #include "base/sequenced_task_runner.h"
 #include "base/time/time.h"
 #include "base/timer/timer.h"
-#include "chrome/browser/conflicts/installed_programs_win.h"
 #include "chrome/browser/conflicts/module_info_win.h"
 #include "chrome/browser/conflicts/module_inspector_win.h"
-#include "chrome/browser/conflicts/module_list_manager_win.h"
+#include "chrome/browser/conflicts/third_party_metrics_recorder_win.h"
 #include "content/public/common/process_type.h"
 
+#if defined(GOOGLE_CHROME_BUILD)
+#include "chrome/browser/conflicts/third_party_conflicts_manager_win.h"
+#endif
+
 class ModuleDatabaseObserver;
-class ModuleListFilter;
-class ProblematicProgramsUpdater;
-class ThirdPartyMetricsRecorder;
 
 namespace base {
 class FilePath;
@@ -38,7 +38,7 @@
 // This is effectively a singleton, but doesn't use base::Singleton. The intent
 // is for the object to be created when Chrome is single-threaded, and for it
 // be set as the process-wide singleton via SetInstance.
-class ModuleDatabase : ModuleListManager::Observer {
+class ModuleDatabase {
  public:
   // Structures for maintaining information about modules.
   using ModuleMap = std::map<ModuleInfoKey, ModuleInfoData>;
@@ -54,7 +54,7 @@
   // otherwise noted. For calls from other contexts this task runner is used to
   // bounce the call when appropriate.
   explicit ModuleDatabase(scoped_refptr<base::SequencedTaskRunner> task_runner);
-  ~ModuleDatabase() override;
+  ~ModuleDatabase();
 
   // Retrieves the singleton global instance of the ModuleDatabase.
   static ModuleDatabase* GetInstance();
@@ -87,10 +87,6 @@
   // Indicates that all input method editors have been enumerated.
   void OnImeEnumerationFinished();
 
-  // ModuleListManager::Observer:
-  void OnNewModuleList(const base::Version& version,
-                       const base::FilePath& path) override;
-
   // Indicates that a module has been loaded. The data passed to this function
   // is taken as gospel, so if it originates from a remote process it should be
   // independently validated first. (In practice, see ModuleEventSinkImpl for
@@ -118,9 +114,13 @@
   // ModuleDatabase becomes idle ASAP.
   void IncreaseInspectionPriority();
 
-  // Accessor for the module list manager. This is exposed so that the manager
-  // can be wired up to the ThirdPartyModuleListComponentInstaller.
-  ModuleListManager& module_list_manager() { return module_list_manager_; }
+#if defined(GOOGLE_CHROME_BUILD)
+  // Accessor for the third party conflicts manager. This is exposed so that the
+  // manager can be wired up to the ThirdPartyModuleListComponentInstaller.
+  ThirdPartyConflictsManager& third_party_conflicts_manager() {
+    return third_party_conflicts_manager_;
+  }
+#endif
 
  private:
   friend class TestModuleDatabase;
@@ -169,13 +169,6 @@
   // OnNewModuleFound().
   void NotifyLoadedModules(ModuleDatabaseObserver* observer);
 
-  // Called when |installed_programs_| finishes its initialization.
-  void OnInstalledProgramsInitialized();
-
-  // Initializes |problematic_programs_updater_| when both the ModuleListFilter
-  // and the InstalledPrograms are available.
-  void InitializeProblematicProgramsUpdater();
-
   // The task runner to which this object is bound.
   scoped_refptr<base::SequencedTaskRunner> task_runner_;
 
@@ -193,30 +186,18 @@
   // Indicates if all input method editors have been enumerated.
   bool ime_enumerated_;
 
-  // Indicates if the initial Module List has been received.
-  bool module_list_received_;
-
   // Inspects new modules on a blocking task runner.
   ModuleInspector module_inspector_;
 
   // Holds observers.
   base::ObserverList<ModuleDatabaseObserver> observer_list_;
 
-  // Keeps track of where the most recent module list is located on disk, and
-  // provides notifications when this changes.
-  ModuleListManager module_list_manager_;
-
-  // Filters third-party modules against a whitelist and a blacklist.
-  std::unique_ptr<ModuleListFilter> module_list_filter_;
-
-  // Retrieves the list of installed programs.
-  InstalledPrograms installed_programs_;
+#if defined(GOOGLE_CHROME_BUILD)
+  ThirdPartyConflictsManager third_party_conflicts_manager_;
+#endif
 
   // Records metrics on third-party modules.
-  std::unique_ptr<ThirdPartyMetricsRecorder> third_party_metrics_;
-
-  // Maintains the cache of problematic programs.
-  std::unique_ptr<ProblematicProgramsUpdater> problematic_programs_updater_;
+  ThirdPartyMetricsRecorder third_party_metrics_;
 
   // Weak pointer factory for this object. This is used when bouncing
   // incoming events to |task_runner_|.
diff --git a/chrome/browser/conflicts/module_list_manager_win.cc b/chrome/browser/conflicts/module_list_manager_win.cc
deleted file mode 100644
index 2d1f483..0000000
--- a/chrome/browser/conflicts/module_list_manager_win.cc
+++ /dev/null
@@ -1,106 +0,0 @@
-// Copyright 2017 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/conflicts/module_list_manager_win.h"
-
-#include "base/files/file_path.h"
-#include "base/strings/utf_string_conversions.h"
-#include "base/win/registry.h"
-#include "chrome/install_static/install_util.h"
-
-const wchar_t ModuleListManager::kModuleListRegistryKeyPath[] =
-    L"ThirdPartyModuleList"
-#ifdef _WIN64
-    "64";
-#else
-    "32";
-#endif
-
-const wchar_t ModuleListManager::kModuleListPathKeyName[] = L"Path";
-
-const wchar_t ModuleListManager::kModuleListVersionKeyName[] = L"Version";
-
-ModuleListManager::Observer::Observer() = default;
-
-ModuleListManager::Observer::~Observer() = default;
-
-ModuleListManager::ModuleListManager(Observer* observer)
-    : registry_key_root_(GetRegistryPath()), observer_(observer) {
-  // Read the cached path and version.
-  std::wstring path;
-  std::wstring version;
-  base::win::RegKey reg_key(GetRegistryHive(), registry_key_root_.c_str(),
-                            KEY_READ);
-  if (reg_key.Valid() &&
-      reg_key.ReadValue(kModuleListPathKeyName, &path) == ERROR_SUCCESS &&
-      reg_key.ReadValue(kModuleListVersionKeyName, &version)) {
-    base::Version parsed_version(base::WideToUTF8(version));
-    if (parsed_version.IsValid()) {
-      module_list_path_ = base::FilePath(path);
-      module_list_version_ = parsed_version;
-    }
-  }
-}
-
-ModuleListManager::~ModuleListManager() = default;
-
-base::FilePath ModuleListManager::module_list_path() {
-  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  return module_list_path_;
-}
-
-base::Version ModuleListManager::module_list_version() {
-  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  return module_list_version_;
-}
-
-// static
-HKEY ModuleListManager::GetRegistryHive() {
-  return HKEY_CURRENT_USER;
-}
-
-// static
-std::wstring ModuleListManager::GetRegistryPath() {
-  std::wstring path = install_static::GetRegistryPath();
-  path.append(1, '\\');
-  path.append(kModuleListRegistryKeyPath);
-  return path;
-}
-
-void ModuleListManager::LoadModuleList(const base::Version& version,
-                                       const base::FilePath& path) {
-  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  DCHECK(version.IsValid());
-  DCHECK(!path.empty());
-
-  if (path == module_list_path_) {
-    // If the path hasn't changed the version should not have either.
-    DCHECK(version == module_list_version_);
-    return;
-  }
-
-  // If a new list is being provided and it's not more recent, then bail.
-  if (!module_list_path_.empty()) {
-    DCHECK(module_list_version_.IsValid());
-    if (module_list_version_ >= version)
-      return;
-  }
-
-  // Update the path and version.
-  module_list_path_ = path;
-  module_list_version_ = version;
-
-  // Cache the new path and version.
-  base::win::RegKey reg_key(GetRegistryHive(), registry_key_root_.c_str(),
-                            KEY_WRITE);
-  if (reg_key.Valid()) {
-    std::wstring version_wstr = base::UTF8ToWide(version.GetString());
-    reg_key.WriteValue(kModuleListPathKeyName, path.value().c_str());
-    reg_key.WriteValue(kModuleListVersionKeyName, version_wstr.c_str());
-  }
-
-  // Notify the observer if it exists.
-  if (observer_)
-    observer_->OnNewModuleList(version, path);
-}
diff --git a/chrome/browser/conflicts/module_list_manager_win.h b/chrome/browser/conflicts/module_list_manager_win.h
deleted file mode 100644
index 9c84377..0000000
--- a/chrome/browser/conflicts/module_list_manager_win.h
+++ /dev/null
@@ -1,110 +0,0 @@
-// Copyright 2017 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_CONFLICTS_MODULE_LIST_MANAGER_WIN_H_
-#define CHROME_BROWSER_CONFLICTS_MODULE_LIST_MANAGER_WIN_H_
-
-#include <vector>
-
-#include "base/files/file_path.h"
-#include "base/sequence_checker.h"
-#include "base/version.h"
-
-namespace component_updater {
-class ThirdPartyModuleListComponentInstallerPolicy;
-}  // namespace component_updater
-
-// Declares a class that is responsible for knowing the location of the most
-// up-to-date module list (a whitelist of third party modules that are safe for
-// injection).
-//
-// Since the module list can change at runtime (a new component version can be
-// installed) this class provides an observer interface that can notify clients
-// of a new whitelist.
-//
-// This class binds to the sequence on which it is created, and expects
-// callbacks to arrive on that same sequence.
-class ModuleListManager {
- public:
-  // The root of the module list registry information. This is relative to the
-  // root of the installation registry data, as returned by
-  // install_static::InstallDetails::GetClientStateKeyPath.
-  static const wchar_t kModuleListRegistryKeyPath[];
-
-  // The name of the key below registry_key_root_ that stores the path to the
-  // most recent module list, as a string.
-  static const wchar_t kModuleListPathKeyName[];
-
-  // The name of the key below registry_key_root_ that stores the version of the
-  // most recent module list, as a string.
-  static const wchar_t kModuleListVersionKeyName[];
-
-  // An observer of changes to the ModuleListManager. The observer will only
-  // be called if the module list installation location changes after the
-  // observer has been registered.
-  class Observer {
-   public:
-    Observer();
-    virtual ~Observer();
-
-    // This is invoked on the same sequence to which the ModuleListManager is
-    // bound.
-    virtual void OnNewModuleList(const base::Version& version,
-                                 const base::FilePath& path) = 0;
-
-   private:
-    DISALLOW_COPY_AND_ASSIGN(Observer);
-  };
-
-  // Creates a ModuleListManager that notifies |observer| of the arrival of new
-  // module lists. This instance is bound to the task runner it is created on.
-  // All calls to the manager are expected to be received on that task runner,
-  // and all outgoing callbacks will be on the same task runner.
-  explicit ModuleListManager(Observer* observer);
-
-  ~ModuleListManager();
-
-  // Returns the path to the current module list. This is empty if no module
-  // list is available.
-  base::FilePath module_list_path();
-
-  // Returns the version of the current module list. This is empty if no module
-  // list is available.
-  base::Version module_list_version();
-
-  // Generates the registry key where Path and Version information will be
-  // written. Exposed for testing.
-  static HKEY GetRegistryHive();
-  static std::wstring GetRegistryPath();
-
- protected:
-  friend class component_updater::ThirdPartyModuleListComponentInstallerPolicy;
-
-  // Called post-startup with information about the most recently available
-  // module list installation. Can potentially be called again much later when
-  // another (newer) version is installed.
-  void LoadModuleList(const base::Version& version, const base::FilePath& path);
-
- private:
-  friend class ModuleListManagerTest;
-
-  // The hive and path to the registry key where the most recent module list
-  // path information is cached.
-  const std::wstring registry_key_root_;
-
-  SEQUENCE_CHECKER(sequence_checker_);
-
-  // The path and version of the most recently installed module list. This is
-  // retrieved from the registry at creation of ModuleListManager, and
-  // potentially updated at runtime via calls to LoadModuleList.
-  base::FilePath module_list_path_;
-  base::Version module_list_version_;
-
-  // The observer of this object.
-  Observer* const observer_;
-
-  DISALLOW_COPY_AND_ASSIGN(ModuleListManager);
-};
-
-#endif  // CHROME_BROWSER_CONFLICTS_MODULE_LIST_MANAGER_WIN_H_
diff --git a/chrome/browser/conflicts/module_list_manager_win_unittest.cc b/chrome/browser/conflicts/module_list_manager_win_unittest.cc
deleted file mode 100644
index 0ef4c711..0000000
--- a/chrome/browser/conflicts/module_list_manager_win_unittest.cc
+++ /dev/null
@@ -1,139 +0,0 @@
-// Copyright 2017 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/conflicts/module_list_manager_win.h"
-
-#include "base/test/scoped_task_environment.h"
-#include "base/test/test_reg_util_win.h"
-#include "base/win/registry.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace {
-
-class MockObserver : public ModuleListManager::Observer {
- public:
-  MockObserver() : called_(false) {}
-  ~MockObserver() override = default;
-
-  // ModuleListManager::Observer implementation:
-  void OnNewModuleList(const base::Version& version,
-                       const base::FilePath& path) override {
-    called_ = true;
-    version_ = version;
-    path_ = path;
-  }
-
-  bool called() const { return called_; }
-  base::Version version() const { return version_; }
-  base::FilePath path() const { return path_; }
-
- private:
-  bool called_;
-  base::Version version_;
-  base::FilePath path_;
-
-  DISALLOW_COPY_AND_ASSIGN(MockObserver);
-};
-
-}  // namespace
-
-// This is not in the anonymous namespace as it is friends with the class being
-// tested.
-class ModuleListManagerTest : public ::testing::Test {
- public:
-  ModuleListManagerTest() = default;
-  ~ModuleListManagerTest() override = default;
-
-  void SetUp() override {
-    ASSERT_NO_FATAL_FAILURE(
-        registry_override_manager_.OverrideRegistry(HKEY_CURRENT_USER));
-  }
-
-  void NotifyNewModuleList(ModuleListManager* mlm) {
-    // Add an observer.
-    ASSERT_FALSE(observer_.called());
-    ASSERT_FALSE(observer_.version().IsValid());
-    ASSERT_TRUE(observer_.path().empty());
-
-    // Notify the manager of a new module list and expect it to be updated.
-    // Also expect the observer to be called.
-    base::Version version("1.2.3.4");
-    base::FilePath path(L"C:\\foo\\bar.txt");
-    mlm->LoadModuleList(version, path);
-    EXPECT_EQ(version, mlm->module_list_version());
-    EXPECT_EQ(path, mlm->module_list_path());
-    EXPECT_TRUE(observer_.called());
-    EXPECT_EQ(version, observer_.version());
-    EXPECT_EQ(path, observer_.path());
-
-    // Expect the registry to be updated too.
-    base::win::RegKey reg_key(ModuleListManager::GetRegistryHive(),
-                              ModuleListManager::GetRegistryPath().c_str(),
-                              KEY_READ);
-    ASSERT_TRUE(reg_key.Valid());
-    std::wstring s;
-    ASSERT_EQ(ERROR_SUCCESS,
-              reg_key.ReadValue(ModuleListManager::kModuleListPathKeyName, &s));
-    EXPECT_EQ(path.value(), s);
-    ASSERT_EQ(
-        ERROR_SUCCESS,
-        reg_key.ReadValue(ModuleListManager::kModuleListVersionKeyName, &s));
-    EXPECT_EQ(L"1.2.3.4", s);
-  }
-
- protected:
-  MockObserver observer_;
-
- private:
-  base::test::ScopedTaskEnvironment task_environment_;
-  registry_util::RegistryOverrideManager registry_override_manager_;
-
-  DISALLOW_COPY_AND_ASSIGN(ModuleListManagerTest);
-};
-
-TEST_F(ModuleListManagerTest, FindsNoPathInRegistry) {
-  ModuleListManager mlm(&observer_);
-  EXPECT_TRUE(mlm.module_list_path().empty());
-  EXPECT_FALSE(mlm.module_list_version().IsValid());
-
-  ASSERT_NO_FATAL_FAILURE(NotifyNewModuleList(&mlm));
-}
-
-TEST_F(ModuleListManagerTest, FindsInvalidVersionInRegistry) {
-  base::win::RegKey reg_key(ModuleListManager::GetRegistryHive(),
-                            ModuleListManager::GetRegistryPath().c_str(),
-                            KEY_WRITE);
-  ASSERT_TRUE(reg_key.Valid());
-  ASSERT_EQ(ERROR_SUCCESS,
-            reg_key.WriteValue(ModuleListManager::kModuleListPathKeyName,
-                               L"C:\\foo\\bar.txt"));
-  ASSERT_EQ(ERROR_SUCCESS,
-            reg_key.WriteValue(ModuleListManager::kModuleListVersionKeyName,
-                               L"invalid-version-string"));
-
-  ModuleListManager mlm(&observer_);
-  EXPECT_TRUE(mlm.module_list_path().empty());
-  EXPECT_FALSE(mlm.module_list_version().IsValid());
-
-  ASSERT_NO_FATAL_FAILURE(NotifyNewModuleList(&mlm));
-}
-
-TEST_F(ModuleListManagerTest, FindsExistingPathInRegistry) {
-  base::win::RegKey reg_key(ModuleListManager::GetRegistryHive(),
-                            ModuleListManager::GetRegistryPath().c_str(),
-                            KEY_WRITE);
-  ASSERT_TRUE(reg_key.Valid());
-  ASSERT_EQ(ERROR_SUCCESS,
-            reg_key.WriteValue(ModuleListManager::kModuleListPathKeyName,
-                               L"C:\\foo\\bar.txt"));
-  ASSERT_EQ(ERROR_SUCCESS,
-            reg_key.WriteValue(ModuleListManager::kModuleListVersionKeyName,
-                               L"1.0.0.0"));
-
-  ModuleListManager mlm(&observer_);
-  EXPECT_TRUE(mlm.module_list_path().empty());
-  EXPECT_FALSE(mlm.module_list_version().IsValid());
-
-  ASSERT_NO_FATAL_FAILURE(NotifyNewModuleList(&mlm));
-}
diff --git a/chrome/browser/conflicts/problematic_programs_updater_win.cc b/chrome/browser/conflicts/problematic_programs_updater_win.cc
index ae679c9a..a3db533b 100644
--- a/chrome/browser/conflicts/problematic_programs_updater_win.cc
+++ b/chrome/browser/conflicts/problematic_programs_updater_win.cc
@@ -21,8 +21,8 @@
 #include "components/prefs/scoped_user_pref_update.h"
 #include "content/public/browser/browser_thread.h"
 
-const base::Feature kThirdPartyConflictsWarning{
-    "ThirdPartyConflictsWarning", base::FEATURE_ENABLED_BY_DEFAULT};
+const base::Feature kIncompatibleSoftwareWarning{
+    "IncompatibleSoftwareWarning", base::FEATURE_DISABLED_BY_DEFAULT};
 
 // ProblematicProgram ----------------------------------------------------------
 
@@ -59,7 +59,7 @@
 
   std::unique_ptr<ProblematicProgramsUpdater> instance;
 
-  if (base::FeatureList::IsEnabled(kThirdPartyConflictsWarning)) {
+  if (base::FeatureList::IsEnabled(kIncompatibleSoftwareWarning)) {
     instance.reset(
         new ProblematicProgramsUpdater(module_list_filter, installed_programs));
   }
@@ -71,7 +71,7 @@
 bool ProblematicProgramsUpdater::TrimCache() {
   DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
 
-  if (!base::FeatureList::IsEnabled(kThirdPartyConflictsWarning))
+  if (!base::FeatureList::IsEnabled(kIncompatibleSoftwareWarning))
     return false;
 
   std::vector<ProblematicProgram> programs = ConvertToProblematicProgramsVector(
@@ -105,7 +105,7 @@
 bool ProblematicProgramsUpdater::HasCachedPrograms() {
   DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
 
-  if (!base::FeatureList::IsEnabled(kThirdPartyConflictsWarning))
+  if (!base::FeatureList::IsEnabled(kIncompatibleSoftwareWarning))
     return false;
 
   return !g_browser_process->local_state()
@@ -119,21 +119,20 @@
 
   base::Value program_names(base::Value::Type::LIST);
 
-  if (base::FeatureList::IsEnabled(kThirdPartyConflictsWarning)) {
-    std::vector<ProblematicProgram> programs =
-        ConvertToProblematicProgramsVector(
-            *g_browser_process->local_state()
-                 ->FindPreference(prefs::kProblematicPrograms)
-                 ->GetValue());
+  if (!base::FeatureList::IsEnabled(kIncompatibleSoftwareWarning))
+    return program_names;
 
-    for (const auto& program : programs) {
-      base::Value dict(base::Value::Type::DICTIONARY);
-      dict.SetKey("name", base::Value(program.info.name));
-      dict.SetKey("type",
-                  base::Value(program.blacklist_action->message_type()));
-      dict.SetKey("url", base::Value(program.blacklist_action->message_url()));
-      program_names.GetList().push_back(std::move(dict));
-    }
+  std::vector<ProblematicProgram> programs = ConvertToProblematicProgramsVector(
+      *g_browser_process->local_state()
+           ->FindPreference(prefs::kProblematicPrograms)
+           ->GetValue());
+
+  for (const auto& program : programs) {
+    base::Value dict(base::Value::Type::DICTIONARY);
+    dict.SetKey("name", base::Value(program.info.name));
+    dict.SetKey("type", base::Value(program.blacklist_action->message_type()));
+    dict.SetKey("url", base::Value(program.blacklist_action->message_url()));
+    program_names.GetList().push_back(std::move(dict));
   }
 
   return program_names;
diff --git a/chrome/browser/conflicts/problematic_programs_updater_win.h b/chrome/browser/conflicts/problematic_programs_updater_win.h
index 1fcb8adf..e258c12 100644
--- a/chrome/browser/conflicts/problematic_programs_updater_win.h
+++ b/chrome/browser/conflicts/problematic_programs_updater_win.h
@@ -19,8 +19,8 @@
 class ModuleListFilter;
 class PrefRegistrySimple;
 
-// A feature that controls whether Chrome keeps track of problematic programs.
-extern const base::Feature kThirdPartyConflictsWarning;
+// A feature that controls whether Chrome warns about incompatible software.
+extern const base::Feature kIncompatibleSoftwareWarning;
 
 // Maintains a list of problematic programs that are installed on the machine.
 // These programs cause unwanted DLLs to be loaded into Chrome.
@@ -29,9 +29,9 @@
 // file so that it is available at startup, albeit somewhat out-of-date. To
 // remove stale elements from the list, use TrimCache().
 //
-// When kThirdPartyConflictsWarning is disabled, this class always behaves as-if
-// there are no problematic programs on the computer. This makes it safe to use
-// all of the class' static functions unconditionally.
+// When kIncompatibleSoftwareWarning is disabled, this class always behaves
+// as-if there are no problematic programs on the computer. This makes it safe
+// to use all of the class' static functions unconditionally.
 class ProblematicProgramsUpdater : public ModuleDatabaseObserver {
  public:
   ~ProblematicProgramsUpdater() override;
@@ -39,7 +39,7 @@
   static void RegisterLocalStatePrefs(PrefRegistrySimple* registry);
 
   // Creates an instance of the updater. Returns nullptr if the
-  // kThirdPartyConflictsWarning experiment is disabled.
+  // kIncompatibleSoftwareWarning experiment is disabled.
   //
   // |installed_programs| must outlive the lifetime of this class.
   static std::unique_ptr<ProblematicProgramsUpdater> MaybeCreate(
diff --git a/chrome/browser/conflicts/problematic_programs_updater_win_unittest.cc b/chrome/browser/conflicts/problematic_programs_updater_win_unittest.cc
index 58d463b9..3a5d49c 100644
--- a/chrome/browser/conflicts/problematic_programs_updater_win_unittest.cc
+++ b/chrome/browser/conflicts/problematic_programs_updater_win_unittest.cc
@@ -96,7 +96,7 @@
   void SetUp() override {
     ASSERT_NO_FATAL_FAILURE(
         registry_override_manager_.OverrideRegistry(HKEY_CURRENT_USER));
-    scoped_feature_list_.InitAndEnableFeature(kThirdPartyConflictsWarning);
+    scoped_feature_list_.InitAndEnableFeature(kIncompatibleSoftwareWarning);
   }
 
   enum class Option {
diff --git a/chrome/browser/conflicts/proto/module_list.proto b/chrome/browser/conflicts/proto/module_list.proto
index fa39993e0..ae8767e 100644
--- a/chrome/browser/conflicts/proto/module_list.proto
+++ b/chrome/browser/conflicts/proto/module_list.proto
@@ -44,8 +44,7 @@
   // The directory in which the modules are found. This may use environment
   // variables such as %LOCALAPPDATA%, %SYSTEMROOT%, etc. This is case
   // insensitive. If not specified then any path will be accepted. On the
-  // client this actually corresponds to the SHA1 of the case-sensitive
-  // publisher information.
+  // client this actually corresponds to the SHA1 of the case-insensitive path.
   optional string directory = 2;
   optional bytes directory_hash = 5;
 
diff --git a/chrome/browser/conflicts/third_party_conflicts_manager_win.cc b/chrome/browser/conflicts/third_party_conflicts_manager_win.cc
new file mode 100644
index 0000000..434cf648
--- /dev/null
+++ b/chrome/browser/conflicts/third_party_conflicts_manager_win.cc
@@ -0,0 +1,48 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/conflicts/third_party_conflicts_manager_win.h"
+
+#include <utility>
+
+#include "base/bind.h"
+#include "chrome/browser/conflicts/module_database_win.h"
+#include "chrome/browser/conflicts/module_list_filter_win.h"
+#include "chrome/browser/conflicts/problematic_programs_updater_win.h"
+
+ThirdPartyConflictsManager::ThirdPartyConflictsManager(
+    ModuleDatabase* module_database)
+    : module_database_(module_database), module_list_received_(false) {}
+
+ThirdPartyConflictsManager::~ThirdPartyConflictsManager() = default;
+
+void ThirdPartyConflictsManager::LoadModuleList(const base::FilePath& path) {
+  // No attempt is made to dynamically reconcile a new module list version. The
+  // next Chrome launch will pick it up.
+  if (module_list_received_)
+    return;
+
+  auto module_list_filter = std::make_unique<ModuleListFilter>();
+  if (!module_list_filter->Initialize(path))
+    return;
+
+  module_list_filter_ = std::move(module_list_filter);
+
+  // Mark the module list as received here so that if Initialize() fails,
+  // another attempt will be made with a newer version.
+  module_list_received_ = true;
+
+  // ThirdPartyConflictsManager owns |installed_programs_|, so it is safe to use
+  // base::Unretained().
+  installed_programs_.Initialize(base::BindOnce(
+      &ThirdPartyConflictsManager::OnInstalledProgramsInitialized,
+      base::Unretained(this)));
+}
+
+void ThirdPartyConflictsManager::OnInstalledProgramsInitialized() {
+  problematic_programs_updater_ = ProblematicProgramsUpdater::MaybeCreate(
+      *module_list_filter_, installed_programs_);
+  if (problematic_programs_updater_)
+    module_database_->AddObserver(problematic_programs_updater_.get());
+}
diff --git a/chrome/browser/conflicts/third_party_conflicts_manager_win.h b/chrome/browser/conflicts/third_party_conflicts_manager_win.h
new file mode 100644
index 0000000..e28dc69
--- /dev/null
+++ b/chrome/browser/conflicts/third_party_conflicts_manager_win.h
@@ -0,0 +1,53 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_CONFLICTS_THIRD_PARTY_CONFLICTS_MANAGER_WIN_H_
+#define CHROME_BROWSER_CONFLICTS_THIRD_PARTY_CONFLICTS_MANAGER_WIN_H_
+
+#include <memory>
+
+#include "base/macros.h"
+#include "chrome/browser/conflicts/installed_programs_win.h"
+#include "chrome/browser/conflicts/module_database_observer_win.h"
+
+class ModuleDatabase;
+class ModuleListFilter;
+class ProblematicProgramsUpdater;
+
+namespace base {
+class FilePath;
+}
+
+// This class owns all the third-party conflicts-related classes and is
+// responsible for their initialization.
+class ThirdPartyConflictsManager {
+ public:
+  explicit ThirdPartyConflictsManager(ModuleDatabase* module_database);
+  ~ThirdPartyConflictsManager();
+
+  // Gets modules
+  void LoadModuleList(const base::FilePath& path);
+
+ private:
+  // Called when |installed_programs_| finishes its initialization.
+  void OnInstalledProgramsInitialized();
+
+  ModuleDatabase* module_database_;
+
+  // Indicates if the initial Module List has been received.
+  bool module_list_received_;
+
+  // Filters third-party modules against a whitelist and a blacklist.
+  std::unique_ptr<ModuleListFilter> module_list_filter_;
+
+  // Retrieves the list of installed programs.
+  InstalledPrograms installed_programs_;
+
+  // Maintains the cache of problematic programs.
+  std::unique_ptr<ProblematicProgramsUpdater> problematic_programs_updater_;
+
+  DISALLOW_COPY_AND_ASSIGN(ThirdPartyConflictsManager);
+};
+
+#endif  // CHROME_BROWSER_CONFLICTS_THIRD_PARTY_CONFLICTS_MANAGER_WIN_H_
diff --git a/chrome/browser/conflicts/third_party_metrics_recorder_win.cc b/chrome/browser/conflicts/third_party_metrics_recorder_win.cc
index b7be7d9..398ac0c 100644
--- a/chrome/browser/conflicts/third_party_metrics_recorder_win.cc
+++ b/chrome/browser/conflicts/third_party_metrics_recorder_win.cc
@@ -11,7 +11,6 @@
 #include "base/metrics/histogram_macros.h"
 #include "base/strings/string16.h"
 #include "base/strings/string_util.h"
-#include "chrome/browser/conflicts/installed_programs_win.h"
 #include "chrome/browser/conflicts/module_info_win.h"
 
 namespace {
@@ -32,16 +31,9 @@
       base::CompareCase::SENSITIVE);
 }
 
-// Returns true if |module_data| is a third party module.
-bool IsThirdPartyModule(const ModuleInfoData& module_data) {
-  return !IsGoogleModule(module_data) && !IsMicrosoftModule(module_data);
-}
-
 }  // namespace
 
-ThirdPartyMetricsRecorder::ThirdPartyMetricsRecorder(
-    const InstalledPrograms& installed_programs)
-    : installed_programs_(installed_programs) {}
+ThirdPartyMetricsRecorder::ThirdPartyMetricsRecorder() = default;
 
 ThirdPartyMetricsRecorder::~ThirdPartyMetricsRecorder() = default;
 
@@ -71,14 +63,6 @@
       }
     }
   }
-
-  // The uninstallable metric is only recorded for third party metrics.
-  if (IsThirdPartyModule(module_data)) {
-    std::vector<InstalledPrograms::ProgramInfo> programs;
-    bool uninstallable = installed_programs_.GetInstalledPrograms(
-        module_key.module_path, &programs);
-    UMA_HISTOGRAM_BOOLEAN("ThirdPartyModules.Uninstallable", uninstallable);
-  }
 }
 
 void ThirdPartyMetricsRecorder::OnModuleDatabaseIdle() {
diff --git a/chrome/browser/conflicts/third_party_metrics_recorder_win.h b/chrome/browser/conflicts/third_party_metrics_recorder_win.h
index 6ddceb2..779ad61 100644
--- a/chrome/browser/conflicts/third_party_metrics_recorder_win.h
+++ b/chrome/browser/conflicts/third_party_metrics_recorder_win.h
@@ -8,16 +8,13 @@
 #include "base/macros.h"
 #include "chrome/browser/conflicts/module_database_observer_win.h"
 
-class InstalledPrograms;
 struct ModuleInfoData;
 struct ModuleInfoKey;
 
 // Records metrics about third party modules loaded into Chrome.
 class ThirdPartyMetricsRecorder : public ModuleDatabaseObserver {
  public:
-  // |installed_programs| must outlive |this|.
-  explicit ThirdPartyMetricsRecorder(
-      const InstalledPrograms& installed_programs);
+  ThirdPartyMetricsRecorder();
   ~ThirdPartyMetricsRecorder() override;
 
   // ModuleDatabaseObserver:
@@ -26,8 +23,6 @@
   void OnModuleDatabaseIdle() override;
 
  private:
-  const InstalledPrograms& installed_programs_;
-
   // Flag used to avoid sending module counts multiple times.
   bool metrics_emitted_ = false;
 
diff --git a/chrome/browser/devtools/devtools_eye_dropper.cc b/chrome/browser/devtools/devtools_eye_dropper.cc
index 14b8b6e..742b752 100644
--- a/chrome/browser/devtools/devtools_eye_dropper.cc
+++ b/chrome/browser/devtools/devtools_eye_dropper.cc
@@ -95,8 +95,8 @@
   gfx::Size should_be_rendering_size = host_->GetView()->GetViewBounds().size();
   host_->GetView()->CopyFromSurface(
       gfx::Rect(), should_be_rendering_size,
-      base::Bind(&DevToolsEyeDropper::FrameUpdated, weak_factory_.GetWeakPtr()),
-      kN32_SkColorType);
+      base::BindOnce(&DevToolsEyeDropper::FrameUpdated,
+                     weak_factory_.GetWeakPtr()));
 }
 
 void DevToolsEyeDropper::ResetFrame() {
@@ -105,12 +105,11 @@
   last_cursor_y_ = -1;
 }
 
-void DevToolsEyeDropper::FrameUpdated(const SkBitmap& bitmap,
-                                      content::ReadbackResponse response) {
-  if (response == content::READBACK_SUCCESS) {
-    frame_ = bitmap;
-    UpdateCursor();
-  }
+void DevToolsEyeDropper::FrameUpdated(const SkBitmap& bitmap) {
+  if (bitmap.drawsNothing())
+    return;
+  frame_ = bitmap;
+  UpdateCursor();
 }
 
 bool DevToolsEyeDropper::HandleMouseEvent(const blink::WebMouseEvent& event) {
diff --git a/chrome/browser/devtools/devtools_eye_dropper.h b/chrome/browser/devtools/devtools_eye_dropper.h
index 8d92d53c..4956dce 100644
--- a/chrome/browser/devtools/devtools_eye_dropper.h
+++ b/chrome/browser/devtools/devtools_eye_dropper.h
@@ -7,7 +7,6 @@
 
 #include "base/callback.h"
 #include "base/macros.h"
-#include "content/public/browser/readback_types.h"
 #include "content/public/browser/render_widget_host.h"
 #include "content/public/browser/web_contents_observer.h"
 #include "third_party/skia/include/core/SkBitmap.h"
@@ -37,7 +36,7 @@
 
   void UpdateFrame();
   void ResetFrame();
-  void FrameUpdated(const SkBitmap&, content::ReadbackResponse);
+  void FrameUpdated(const SkBitmap&);
   bool HandleMouseEvent(const blink::WebMouseEvent& event);
   void UpdateCursor();
 
diff --git a/chrome/browser/extensions/api/declarative_net_request/declarative_net_request_browsertest.cc b/chrome/browser/extensions/api/declarative_net_request/declarative_net_request_browsertest.cc
index 557862d..7efb7086 100644
--- a/chrome/browser/extensions/api/declarative_net_request/declarative_net_request_browsertest.cc
+++ b/chrome/browser/extensions/api/declarative_net_request/declarative_net_request_browsertest.cc
@@ -47,6 +47,7 @@
 #include "net/dns/mock_host_resolver.h"
 #include "net/test/spawned_test_server/spawned_test_server.h"
 #include "net/test/test_data_directory.h"
+#include "services/network/public/cpp/features.h"
 
 namespace extensions {
 namespace declarative_net_request {
@@ -987,7 +988,12 @@
   ui_test_utils::NavigateToURL(browser(), url);
   EXPECT_EQ(content::PAGE_TYPE_NORMAL, GetPageType());
   EXPECT_TRUE(WasFrameWithScriptLoaded(GetMainFrame()));
-  EXPECT_TRUE(script_monitor.GetAndResetRequestSeen(false));
+
+  // NOTE: When the Network Service is enabled, the RulesetMatcher will not see
+  // network requests if no rulesets are active.
+  EXPECT_TRUE(
+      base::FeatureList::IsEnabled(network::features::kNetworkService) ||
+      script_monitor.GetAndResetRequestSeen(false));
 
   // Another request to |url| should not cause a network request for
   // script.js since it will be served by the renderer's in-memory
@@ -1021,7 +1027,9 @@
   ui_test_utils::NavigateToURL(browser(), url);
   EXPECT_EQ(content::PAGE_TYPE_NORMAL, GetPageType());
   EXPECT_TRUE(WasFrameWithScriptLoaded(GetMainFrame()));
-  EXPECT_TRUE(script_monitor.GetAndResetRequestSeen(false));
+  EXPECT_TRUE(
+      base::FeatureList::IsEnabled(network::features::kNetworkService) ||
+      script_monitor.GetAndResetRequestSeen(false));
 
   // Clear RulesetManager's observer.
   content::BrowserThread::PostTask(
diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chrome/browser/extensions/api/settings_private/prefs_util.cc
index 06c18765..ea8c4d1 100644
--- a/chrome/browser/extensions/api/settings_private/prefs_util.cc
+++ b/chrome/browser/extensions/api/settings_private/prefs_util.cc
@@ -366,6 +366,10 @@
       settings_api::PrefType::PREF_TYPE_NUMBER;
   (*s_whitelist)[ash::prefs::kNightLightCustomEndTime] =
       settings_api::PrefType::PREF_TYPE_NUMBER;
+  (*s_whitelist)[ash::prefs::kDockedMagnifierEnabled] =
+      settings_api::PrefType::PREF_TYPE_BOOLEAN;
+  (*s_whitelist)[ash::prefs::kDockedMagnifierScale] =
+      settings_api::PrefType::PREF_TYPE_NUMBER;
 
   // Input method settings.
   (*s_whitelist)[::prefs::kLanguagePreloadEngines] =
diff --git a/chrome/browser/extensions/api/sync_file_system/sync_file_system_api.h b/chrome/browser/extensions/api/sync_file_system/sync_file_system_api.h
index cb4ad6f..3e792d1 100644
--- a/chrome/browser/extensions/api/sync_file_system/sync_file_system_api.h
+++ b/chrome/browser/extensions/api/sync_file_system/sync_file_system_api.h
@@ -15,7 +15,7 @@
 #include "chrome/browser/sync_file_system/sync_status_code.h"
 #include "chrome/common/extensions/api/sync_file_system.h"
 #include "storage/browser/fileapi/file_system_url.h"
-#include "third_party/WebKit/common/quota/quota_types.mojom.h"
+#include "third_party/WebKit/public/mojom/quota/quota_types.mojom.h"
 
 namespace storage {
 class FileSystemContext;
diff --git a/chrome/browser/extensions/api/tabs/tabs_api.cc b/chrome/browser/extensions/api/tabs/tabs_api.cc
index 22621c0..21b01d8 100644
--- a/chrome/browser/extensions/api/tabs/tabs_api.cc
+++ b/chrome/browser/extensions/api/tabs/tabs_api.cc
@@ -95,9 +95,12 @@
 #include "ui/base/ui_base_types.h"
 
 #if defined(OS_CHROMEOS)
+#include "ash/public/cpp/config.h"
 #include "ash/public/cpp/window_pin_type.h"
 #include "ash/public/cpp/window_properties.h"
 #include "ash/public/interfaces/window_pin_type.mojom.h"
+#include "chrome/browser/chromeos/ash_config.h"
+#include "chrome/browser/ui/ash/chrome_screenshot_grabber.h"
 #include "chrome/browser/ui/browser_command_controller.h"
 #include "content/public/browser/devtools_agent_host.h"
 #include "ui/aura/window.h"
@@ -264,17 +267,23 @@
       APIPermission::kLockWindowFullscreenPrivate);
 }
 
-void SetLockedFullscreenState(Browser* browser, bool enabled) {
+void SetLockedFullscreenState(Browser* browser, bool locked) {
   aura::Window* window = browser->window()->GetNativeWindow();
   // TRUSTED_PINNED is used here because that one locks the window fullscreen
   // without allowing the user to exit (as opposed to regular PINNED).
   window->SetProperty(ash::kWindowPinTypeKey,
-                      enabled ? ash::mojom::WindowPinType::TRUSTED_PINNED
-                              : ash::mojom::WindowPinType::NONE);
+                      locked ? ash::mojom::WindowPinType::TRUSTED_PINNED
+                             : ash::mojom::WindowPinType::NONE);
 
   // Update the set of available browser commands.
   browser->command_controller()->LockedFullscreenStateChanged();
 
+  // Disallow screenshots in locked fullscreen mode.
+  // TODO(isandrk, 816900): ChromeScreenshotGrabber isn't implemented in Mash
+  // yet, remove this conditional when it becomes available.
+  if (chromeos::GetAshConfig() != ash::Config::MASH)
+    ChromeScreenshotGrabber::Get()->set_screenshots_allowed(!locked);
+
   // Reset the clipboard and kill dev tools when entering or exiting locked
   // fullscreen (security concerns).
   ui::Clipboard::GetForCurrentThread()->Clear(ui::CLIPBOARD_TYPE_COPY_PASTE);
@@ -1756,8 +1765,8 @@
 
   return CaptureAsync(
       contents, image_details.get(),
-      base::Bind(&TabsCaptureVisibleTabFunction::CopyFromSurfaceComplete,
-                 this));
+      base::BindOnce(&TabsCaptureVisibleTabFunction::CopyFromSurfaceComplete,
+                     this));
 }
 
 void TabsCaptureVisibleTabFunction::OnCaptureSuccess(const SkBitmap& bitmap) {
@@ -1774,8 +1783,8 @@
 void TabsCaptureVisibleTabFunction::OnCaptureFailure(FailureReason reason) {
   const char* reason_description = "internal error";
   switch (reason) {
-    case FAILURE_REASON_UNKNOWN:
-      reason_description = "unknown error";
+    case FAILURE_REASON_READBACK_FAILED:
+      reason_description = "image readback failed";
       break;
     case FAILURE_REASON_ENCODING_FAILED:
       reason_description = "encoding failed";
diff --git a/chrome/browser/extensions/chrome_extensions_browser_client.cc b/chrome/browser/extensions/chrome_extensions_browser_client.cc
index dcf3fc7..36d4bde 100644
--- a/chrome/browser/extensions/chrome_extensions_browser_client.cc
+++ b/chrome/browser/extensions/chrome_extensions_browser_client.cc
@@ -484,6 +484,21 @@
   return navigation_data->GetExtensionNavigationUIData();
 }
 
+void ChromeExtensionsBrowserClient::GetTabAndWindowIdForWebContents(
+    content::WebContents* web_contents,
+    int* tab_id,
+    int* window_id) {
+  SessionTabHelper* session_tab_helper =
+      SessionTabHelper::FromWebContents(web_contents);
+  if (session_tab_helper) {
+    *tab_id = session_tab_helper->session_id().id();
+    *window_id = session_tab_helper->window_id().id();
+  } else {
+    *tab_id = -1;
+    *window_id = -1;
+  }
+}
+
 KioskDelegate* ChromeExtensionsBrowserClient::GetKioskDelegate() {
   if (!kiosk_delegate_)
     kiosk_delegate_.reset(new ChromeKioskDelegate());
diff --git a/chrome/browser/extensions/chrome_extensions_browser_client.h b/chrome/browser/extensions/chrome_extensions_browser_client.h
index 0ce3da1..49cef1d 100644
--- a/chrome/browser/extensions/chrome_extensions_browser_client.h
+++ b/chrome/browser/extensions/chrome_extensions_browser_client.h
@@ -142,6 +142,9 @@
   bool IsActivityLoggingEnabled(content::BrowserContext* context) override;
   extensions::ExtensionNavigationUIData* GetExtensionNavigationUIData(
       net::URLRequest* request) override;
+  void GetTabAndWindowIdForWebContents(content::WebContents* web_contents,
+                                       int* tab_id,
+                                       int* window_id) override;
   KioskDelegate* GetKioskDelegate() override;
   bool IsLockScreenContext(content::BrowserContext* context) override;
   std::string GetApplicationLocale() override;
diff --git a/chrome/browser/extensions/extension_special_storage_policy.cc b/chrome/browser/extensions/extension_special_storage_policy.cc
index f67c1d5..210841f8 100644
--- a/chrome/browser/extensions/extension_special_storage_policy.cc
+++ b/chrome/browser/extensions/extension_special_storage_policy.cc
@@ -31,7 +31,7 @@
 #include "extensions/common/manifest_handlers/content_capabilities_handler.h"
 #include "extensions/common/permissions/permissions_data.h"
 #include "storage/browser/quota/quota_manager.h"
-#include "third_party/WebKit/common/quota/quota_types.mojom.h"
+#include "third_party/WebKit/public/mojom/quota/quota_types.mojom.h"
 
 using content::BrowserThread;
 using extensions::APIPermission;
diff --git a/chrome/browser/extensions/extension_storage_monitor.cc b/chrome/browser/extensions/extension_storage_monitor.cc
index 7721573..29fae815 100644
--- a/chrome/browser/extensions/extension_storage_monitor.cc
+++ b/chrome/browser/extensions/extension_storage_monitor.cc
@@ -37,7 +37,7 @@
 #include "extensions/common/permissions/permissions_data.h"
 #include "storage/browser/quota/quota_manager.h"
 #include "storage/browser/quota/storage_observer.h"
-#include "third_party/WebKit/common/quota/quota_types.mojom.h"
+#include "third_party/WebKit/public/mojom/quota/quota_types.mojom.h"
 #include "ui/base/l10n/l10n_util.h"
 #include "ui/message_center/public/cpp/message_center_constants.h"
 #include "ui/message_center/public/cpp/notification.h"
diff --git a/chrome/browser/io_thread.cc b/chrome/browser/io_thread.cc
index 9ff9ca9..279bfc8d 100644
--- a/chrome/browser/io_thread.cc
+++ b/chrome/browser/io_thread.cc
@@ -86,7 +86,6 @@
 #include "net/http/http_transaction_factory.h"
 #include "net/net_features.h"
 #include "net/nqe/network_quality_estimator_params.h"
-//#include "net/proxy/proxy_script_fetcher_impl.h"
 #include "net/proxy_resolution/pac_file_fetcher_impl.h"
 #include "net/proxy_resolution/proxy_config_service.h"
 #include "net/proxy_resolution/proxy_service.h"
@@ -284,21 +283,7 @@
   return network_task_runner_;
 }
 
-IOThread::Globals::
-SystemRequestContextLeakChecker::SystemRequestContextLeakChecker(
-    Globals* globals)
-    : globals_(globals) {
-  DCHECK(globals_);
-}
-
-IOThread::Globals::
-SystemRequestContextLeakChecker::~SystemRequestContextLeakChecker() {
-  globals_->system_request_context->AssertNoURLRequests();
-}
-
-IOThread::Globals::Globals()
-    : system_request_context(nullptr),
-      system_request_context_leak_checker(this) {}
+IOThread::Globals::Globals() : system_request_context(nullptr) {}
 
 IOThread::Globals::~Globals() {}
 
diff --git a/chrome/browser/io_thread.h b/chrome/browser/io_thread.h
index 8e3ec06..686caa6 100644
--- a/chrome/browser/io_thread.h
+++ b/chrome/browser/io_thread.h
@@ -130,21 +130,21 @@
 #endif  // defined(OS_ANDROID)
     std::vector<scoped_refptr<const net::CTLogVerifier>> ct_logs;
     std::unique_ptr<net::HttpAuthPreferences> http_auth_preferences;
+
+    std::unique_ptr<net::NetworkQualityEstimator> network_quality_estimator;
+    std::unique_ptr<net::RTTAndThroughputEstimatesObserver>
+        network_quality_observer;
+
     // When the network service is enabled, this holds on to a
     // content::NetworkContext class that owns |system_request_context|.
     std::unique_ptr<network::mojom::NetworkContext> system_network_context;
     // When the network service is disabled, this owns |system_request_context|.
     network::URLRequestContextOwner system_request_context_owner;
     net::URLRequestContext* system_request_context;
-    SystemRequestContextLeakChecker system_request_context_leak_checker;
 #if BUILDFLAG(ENABLE_EXTENSIONS)
     scoped_refptr<extensions::EventRouterForwarder>
         extension_event_router_forwarder;
 #endif
-    std::unique_ptr<net::NetworkQualityEstimator> network_quality_estimator;
-    std::unique_ptr<net::RTTAndThroughputEstimatesObserver>
-        network_quality_observer;
-
     // NetErrorTabHelper uses |dns_probe_service| to send DNS probes when a
     // main frame load fails with a DNS error in order to provide more useful
     // information to the renderer so it can show a more specific error page.
diff --git a/chrome/browser/media/media_engagement_session.cc b/chrome/browser/media/media_engagement_session.cc
index 40e9b4a..fdbd6d5 100644
--- a/chrome/browser/media/media_engagement_session.cc
+++ b/chrome/browser/media/media_engagement_session.cc
@@ -5,8 +5,10 @@
 #include "chrome/browser/media/media_engagement_session.h"
 
 #include "base/metrics/histogram_macros.h"
+#include "chrome/browser/media/media_engagement_preloaded_list.h"
 #include "chrome/browser/media/media_engagement_score.h"
 #include "chrome/browser/media/media_engagement_service.h"
+#include "media/base/media_switches.h"
 #include "services/metrics/public/cpp/ukm_builders.h"
 #include "services/metrics/public/cpp/ukm_entry_builder.h"
 #include "services/metrics/public/cpp/ukm_recorder.h"
@@ -127,6 +129,13 @@
   if (!ukm_recorder)
     return;
 
+  bool is_preloaded = false;
+  if (base::FeatureList::IsEnabled(media::kPreloadMediaEngagementData)) {
+    is_preloaded =
+        MediaEngagementPreloadedList::GetInstance()->CheckOriginIsPresent(
+            origin_);
+  }
+
   MediaEngagementScore score =
       service_->CreateEngagementScore(origin_.GetURL());
   ukm::builders::Media_Engagement_SessionFinished(ukm_source_id_)
@@ -135,6 +144,7 @@
       .SetEngagement_Score(round(score.actual_score() * 100))
       .SetPlaybacks_Delta(significant_playback_recorded_)
       .SetEngagement_IsHigh(score.high_score())
+      .SetEngagement_IsPreloaded(is_preloaded)
       .SetPlayer_Audible_Delta(audible_players_total_)
       .SetPlayer_Audible_Total(score.audible_playbacks())
       .SetPlayer_Significant_Delta(significant_players_total_)
diff --git a/chrome/browser/metrics/ukm_browsertest.cc b/chrome/browser/metrics/ukm_browsertest.cc
index eca4604..f87f300 100644
--- a/chrome/browser/metrics/ukm_browsertest.cc
+++ b/chrome/browser/metrics/ukm_browsertest.cc
@@ -252,6 +252,9 @@
 };
 
 // Make sure that UKM is disabled while an incognito window is open.
+// Keep in sync with UkmIncognitoTest.testRegularPlusIncognitoCheck in
+// chrome/android/javatests/src/org/chromium/chrome/browser/metrics/
+// UkmIncognitoTest.java.
 IN_PROC_BROWSER_TEST_F(UkmBrowserTest, RegularPlusIncognitoCheck) {
   MetricsConsentOverride metrics_consent(true);
 
@@ -288,6 +291,9 @@
 }
 
 // Make sure opening a real window after Incognito doesn't enable UKM.
+// Keep in sync with UkmIncognitoTest.testIncognitoPlusRegularCheck in
+// chrome/android/javatests/src/org/chromium/chrome/browser/metrics/
+// UkmIncognitoTest.java.
 IN_PROC_BROWSER_TEST_F(UkmBrowserTest, IncognitoPlusRegularCheck) {
   MetricsConsentOverride metrics_consent(true);
 
diff --git a/chrome/browser/net/chrome_network_delegate.cc b/chrome/browser/net/chrome_network_delegate.cc
index 623f39b..7500b1f 100644
--- a/chrome/browser/net/chrome_network_delegate.cc
+++ b/chrome/browser/net/chrome_network_delegate.cc
@@ -532,13 +532,24 @@
                                                  origin.GetURL());
 }
 
-bool ChromeNetworkDelegate::OnCanSendReportingReport(
-    const url::Origin& origin) const {
-  if (!cookie_settings_)
-    return true;
+void ChromeNetworkDelegate::OnCanSendReportingReports(
+    std::set<url::Origin> origins,
+    base::OnceCallback<void(std::set<url::Origin>)> result_callback) const {
+  if (!cookie_settings_) {
+    std::move(result_callback).Run(std::move(origins));
+    return;
+  }
 
-  return cookie_settings_->IsCookieAccessAllowed(origin.GetURL(),
-                                                 origin.GetURL());
+  for (auto it = origins.begin(); it != origins.end();) {
+    const auto& origin = *it;
+    if (!cookie_settings_->IsCookieAccessAllowed(origin.GetURL(),
+                                                 origin.GetURL())) {
+      origins.erase(it++);
+    } else {
+      ++it;
+    }
+  }
+  std::move(result_callback).Run(std::move(origins));
 }
 
 bool ChromeNetworkDelegate::OnCanSetReportingClient(
diff --git a/chrome/browser/net/chrome_network_delegate.h b/chrome/browser/net/chrome_network_delegate.h
index 964b589..18c62a1 100644
--- a/chrome/browser/net/chrome_network_delegate.h
+++ b/chrome/browser/net/chrome_network_delegate.h
@@ -8,6 +8,7 @@
 #include <stdint.h>
 
 #include <memory>
+#include <set>
 #include <string>
 
 #include "base/compiler_specific.h"
@@ -189,7 +190,9 @@
       const GURL& target_url,
       const GURL& referrer_url) const override;
   bool OnCanQueueReportingReport(const url::Origin& origin) const override;
-  bool OnCanSendReportingReport(const url::Origin& origin) const override;
+  void OnCanSendReportingReports(std::set<url::Origin> origins,
+                                 base::OnceCallback<void(std::set<url::Origin>)>
+                                     result_callback) const override;
   bool OnCanSetReportingClient(const url::Origin& origin,
                                const GURL& endpoint) const override;
   bool OnCanUseReportingClient(const url::Origin& origin,
diff --git a/chrome/browser/net/network_context_configuration_browsertest.cc b/chrome/browser/net/network_context_configuration_browsertest.cc
index 7a8f50e..a960aa9 100644
--- a/chrome/browser/net/network_context_configuration_browsertest.cc
+++ b/chrome/browser/net/network_context_configuration_browsertest.cc
@@ -37,6 +37,7 @@
 #include "net/base/host_port_pair.h"
 #include "net/base/net_errors.h"
 #include "net/http/http_response_headers.h"
+#include "net/test/embedded_test_server/controllable_http_response.h"
 #include "net/test/embedded_test_server/embedded_test_server.h"
 #include "net/test/embedded_test_server/http_request.h"
 #include "net/test/embedded_test_server/http_response.h"
@@ -56,6 +57,9 @@
 
 const char kCacheRandomPath[] = "/cacherandom";
 
+// Path using a ControllableHttpResponse that's part of the test fixture.
+const char kControllablePath[] = "/controllable";
+
 enum class NetworkServiceState {
   kDisabled,
   kEnabled,
@@ -89,9 +93,10 @@
   };
 
   NetworkContextConfigurationBrowserTest() {
-    embedded_test_server()->RegisterRequestHandler(
-        base::Bind(&NetworkContextConfigurationBrowserTest::HandleCacheRandom));
-    EXPECT_TRUE(embedded_test_server()->Start());
+    // Have to get a port before setting up the command line, but can only set
+    // up the connection listener after there's a main thread, so can't start
+    // the test server here.
+    EXPECT_TRUE(embedded_test_server()->InitializeAndListen());
   }
 
   // Returns a cacheable response (10 hours) that is some random text.
@@ -116,6 +121,13 @@
   }
 
   void SetUpOnMainThread() override {
+    controllable_http_response_ =
+        std::make_unique<net::test_server::ControllableHttpResponse>(
+            embedded_test_server(), kControllablePath);
+    embedded_test_server()->RegisterRequestHandler(base::BindRepeating(
+        &NetworkContextConfigurationBrowserTest::HandleCacheRandom));
+    embedded_test_server()->StartAcceptingConnections();
+
     if (GetParam().network_context_type ==
         NetworkContextType::kIncognitoProfile) {
       incognito_ = CreateIncognitoBrowser();
@@ -123,6 +135,14 @@
     SimulateNetworkServiceCrashIfNecessary();
   }
 
+  void TearDownOnMainThread() override {
+    // Have to destroy this before the main message loop is torn down. Need to
+    // leave the embedded test server up for tests that use
+    // |live_during_shutdown_simple_loader_|. It's safe to destroy the
+    // ControllableHttpResponse before the test server.
+    controllable_http_response_.reset();
+  }
+
   // Returns, as a string, a PAC script that will use the EmbeddedTestServer as
   // a proxy.
   std::string GetPacScript() const {
@@ -251,6 +271,30 @@
     EXPECT_EQ(*simple_loader_helper.response_body(), "Echo");
   }
 
+  // Makes a request that hangs, and will live until browser shutdown.
+  void MakeLongLivedRequestThatHangsUntilShutdown() {
+    std::unique_ptr<network::ResourceRequest> request =
+        std::make_unique<network::ResourceRequest>();
+    request->url = embedded_test_server()->GetURL(kControllablePath);
+    live_during_shutdown_simple_loader_ = network::SimpleURLLoader::Create(
+        std::move(request), TRAFFIC_ANNOTATION_FOR_TESTS);
+    live_during_shutdown_simple_loader_helper_ =
+        std::make_unique<content::SimpleURLLoaderTestHelper>();
+
+    live_during_shutdown_simple_loader_
+        ->DownloadToStringOfUnboundedSizeUntilCrashAndDie(
+            loader_factory(),
+            live_during_shutdown_simple_loader_helper_->GetCallback());
+
+    // Don't actually care about controlling the response, just need to wait
+    // until it sees the request, to make sure that a URLRequest has been
+    // created to potentially leak. Since the |controllable_http_response_| is
+    // not used to send a response to the request, the request just hangs until
+    // the NetworkContext is destroyed (Or the test server is shut down, but the
+    // NetworkContext should be destroyed before that happens, in this test).
+    controllable_http_response_->WaitForRequest();
+  }
+
  private:
   void SimulateNetworkServiceCrashIfNecessary() {
     if (GetParam().network_service_state != NetworkServiceState::kRestarted)
@@ -296,6 +340,14 @@
   Browser* incognito_ = nullptr;
   base::test::ScopedFeatureList feature_list_;
 
+  std::unique_ptr<net::test_server::ControllableHttpResponse>
+      controllable_http_response_;
+
+  // Used in tests that need a live request during browser shutdown.
+  std::unique_ptr<network::SimpleURLLoader> live_during_shutdown_simple_loader_;
+  std::unique_ptr<content::SimpleURLLoaderTestHelper>
+      live_during_shutdown_simple_loader_helper_;
+
   DISALLOW_COPY_AND_ASSIGN(NetworkContextConfigurationBrowserTest);
 };
 
@@ -505,6 +557,12 @@
   TestProxyConfigured();
 }
 
+// This test should not end in an AssertNoURLLRequests CHECK.
+IN_PROC_BROWSER_TEST_P(NetworkContextConfigurationBrowserTest,
+                       ShutdownWithLiveRequest) {
+  MakeLongLivedRequestThatHangsUntilShutdown();
+}
+
 class NetworkContextConfigurationFixedPortBrowserTest
     : public NetworkContextConfigurationBrowserTest {
  public:
diff --git a/chrome/browser/notifications/notification_permission_context.cc b/chrome/browser/notifications/notification_permission_context.cc
index ff8ab10..531d4ec 100644
--- a/chrome/browser/notifications/notification_permission_context.cc
+++ b/chrome/browser/notifications/notification_permission_context.cc
@@ -21,7 +21,7 @@
 #include "content/public/browser/render_frame_host.h"
 #include "content/public/browser/web_contents_observer.h"
 #include "content/public/browser/web_contents_user_data.h"
-#include "third_party/WebKit/common/page/page_visibility_state.mojom.h"
+#include "third_party/WebKit/public/mojom/page/page_visibility_state.mojom.h"
 #include "url/gurl.h"
 
 namespace {
diff --git a/chrome/browser/payments/OWNERS b/chrome/browser/payments/OWNERS
index 9e364d9..6b1ff54 100644
--- a/chrome/browser/payments/OWNERS
+++ b/chrome/browser/payments/OWNERS
@@ -1 +1,3 @@
-file://components/payments/OWNERS
\ No newline at end of file
+file://components/payments/OWNERS
+
+per-file payment_handler*=jinho.bang@samsung.com
diff --git a/chrome/browser/payments/payment_handler_permission_context.cc b/chrome/browser/payments/payment_handler_permission_context.cc
new file mode 100644
index 0000000..296aa57
--- /dev/null
+++ b/chrome/browser/payments/payment_handler_permission_context.cc
@@ -0,0 +1,24 @@
+// Copyright 2017 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/payments/payment_handler_permission_context.h"
+
+#include "components/content_settings/core/common/content_settings_types.h"
+#include "third_party/WebKit/public/mojom/feature_policy/feature_policy.mojom.h"
+
+namespace payments {
+
+PaymentHandlerPermissionContext::PaymentHandlerPermissionContext(
+    Profile* profile)
+    : PermissionContextBase(profile,
+                            CONTENT_SETTINGS_TYPE_PAYMENT_HANDLER,
+                            blink::mojom::FeaturePolicyFeature::kNotFound) {}
+
+PaymentHandlerPermissionContext::~PaymentHandlerPermissionContext() {}
+
+bool PaymentHandlerPermissionContext::IsRestrictedToSecureOrigins() const {
+  return true;
+}
+
+}  // namespace payments
diff --git a/chrome/browser/payments/payment_handler_permission_context.h b/chrome/browser/payments/payment_handler_permission_context.h
new file mode 100644
index 0000000..bdf45dc
--- /dev/null
+++ b/chrome/browser/payments/payment_handler_permission_context.h
@@ -0,0 +1,29 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_PAYMENTS_PAYMENT_HANDLER_PERMISSION_CONTEXT_H_
+#define CHROME_BROWSER_PAYMENTS_PAYMENT_HANDLER_PERMISSION_CONTEXT_H_
+
+#include "base/macros.h"
+#include "chrome/browser/permissions/permission_context_base.h"
+
+class Profile;
+
+namespace payments {
+
+class PaymentHandlerPermissionContext : public PermissionContextBase {
+ public:
+  explicit PaymentHandlerPermissionContext(Profile* profile);
+  ~PaymentHandlerPermissionContext() override;
+
+ private:
+  // PermissionContextBase
+  bool IsRestrictedToSecureOrigins() const override;
+
+  DISALLOW_COPY_AND_ASSIGN(PaymentHandlerPermissionContext);
+};
+
+}  // namespace payments
+
+#endif  // CHROME_BROWSER_PAYMENTS_PAYMENT_HANDLER_PERMISSION_CONTEXT_H_
diff --git a/chrome/browser/payments/payment_handler_permission_context_unittest.cc b/chrome/browser/payments/payment_handler_permission_context_unittest.cc
new file mode 100644
index 0000000..9d8d285
--- /dev/null
+++ b/chrome/browser/payments/payment_handler_permission_context_unittest.cc
@@ -0,0 +1,141 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/payments/payment_handler_permission_context.h"
+
+#include <string>
+
+#include "base/bind.h"
+#include "base/macros.h"
+#include "build/build_config.h"
+#include "chrome/browser/content_settings/host_content_settings_map_factory.h"
+#include "chrome/browser/permissions/permission_request_id.h"
+#include "chrome/test/base/chrome_render_view_host_test_harness.h"
+#include "chrome/test/base/testing_profile.h"
+#include "components/content_settings/core/browser/host_content_settings_map.h"
+#include "components/content_settings/core/common/content_settings.h"
+#include "components/content_settings/core/common/content_settings_types.h"
+#include "content/public/browser/web_contents.h"
+#include "content/public/test/mock_render_process_host.h"
+#include "content/public/test/web_contents_tester.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+#if defined(OS_ANDROID)
+#include "chrome/browser/infobars/infobar_service.h"
+#else
+#include "chrome/browser/permissions/permission_request_manager.h"
+#endif
+
+namespace {
+
+class TestPermissionContext : public payments::PaymentHandlerPermissionContext {
+ public:
+  explicit TestPermissionContext(Profile* profile)
+      : PaymentHandlerPermissionContext(profile),
+        permission_set_(false),
+        permission_granted_(false) {}
+
+  ~TestPermissionContext() override {}
+
+  bool permission_granted() { return permission_granted_; }
+
+  bool permission_set() { return permission_set_; }
+
+  void TrackPermissionDecision(ContentSetting content_setting) {
+    permission_set_ = true;
+    permission_granted_ = content_setting == CONTENT_SETTING_ALLOW;
+  }
+
+ private:
+  bool permission_set_;
+  bool permission_granted_;
+};
+
+}  // anonymous namespace
+
+class PaymentHandlerPermissionContextTests
+    : public ChromeRenderViewHostTestHarness {
+ protected:
+  PaymentHandlerPermissionContextTests() = default;
+
+ private:
+  // ChromeRenderViewHostTestHarness:
+  void SetUp() override {
+    ChromeRenderViewHostTestHarness::SetUp();
+#if defined(OS_ANDROID)
+    InfoBarService::CreateForWebContents(web_contents());
+#else
+    PermissionRequestManager::CreateForWebContents(web_contents());
+#endif
+  }
+
+  DISALLOW_COPY_AND_ASSIGN(PaymentHandlerPermissionContextTests);
+};
+
+// PaymentHandler permission should be denied for insecure origin.
+TEST_F(PaymentHandlerPermissionContextTests, TestInsecureRequestingUrl) {
+  TestPermissionContext permission_context(profile());
+  GURL url("http://www.example.com");
+  content::WebContentsTester::For(web_contents())->NavigateAndCommit(url);
+
+  const PermissionRequestID id(
+      web_contents()->GetMainFrame()->GetProcess()->GetID(),
+      web_contents()->GetMainFrame()->GetRoutingID(), -1);
+  permission_context.RequestPermission(
+      web_contents(), id, url, true,
+      base::Bind(&TestPermissionContext::TrackPermissionDecision,
+                 base::Unretained(&permission_context)));
+
+  EXPECT_TRUE(permission_context.permission_set());
+  EXPECT_FALSE(permission_context.permission_granted());
+
+  ContentSetting setting =
+      HostContentSettingsMapFactory::GetForProfile(profile())
+          ->GetContentSetting(url.GetOrigin(), url.GetOrigin(),
+                              CONTENT_SETTINGS_TYPE_PAYMENT_HANDLER,
+                              std::string());
+  EXPECT_EQ(CONTENT_SETTING_ASK, setting);
+}
+
+// PaymentHandler permission status should be denied for insecure origin.
+TEST_F(PaymentHandlerPermissionContextTests, TestInsecureQueryingUrl) {
+  TestPermissionContext permission_context(profile());
+  GURL insecure_url("http://www.example.com");
+  GURL secure_url("https://www.example.com");
+
+  // Check that there is no saved content settings.
+  EXPECT_EQ(CONTENT_SETTING_ASK,
+            HostContentSettingsMapFactory::GetForProfile(profile())
+                ->GetContentSetting(
+                    insecure_url.GetOrigin(), insecure_url.GetOrigin(),
+                    CONTENT_SETTINGS_TYPE_PAYMENT_HANDLER, std::string()));
+  EXPECT_EQ(CONTENT_SETTING_ASK,
+            HostContentSettingsMapFactory::GetForProfile(profile())
+                ->GetContentSetting(
+                    secure_url.GetOrigin(), insecure_url.GetOrigin(),
+                    CONTENT_SETTINGS_TYPE_PAYMENT_HANDLER, std::string()));
+  EXPECT_EQ(CONTENT_SETTING_ASK,
+            HostContentSettingsMapFactory::GetForProfile(profile())
+                ->GetContentSetting(
+                    insecure_url.GetOrigin(), secure_url.GetOrigin(),
+                    CONTENT_SETTINGS_TYPE_PAYMENT_HANDLER, std::string()));
+
+  EXPECT_EQ(CONTENT_SETTING_BLOCK,
+            permission_context
+                .GetPermissionStatus(nullptr /* render_frame_host */,
+                                     insecure_url, insecure_url)
+                .content_setting);
+
+  EXPECT_EQ(CONTENT_SETTING_BLOCK,
+            permission_context
+                .GetPermissionStatus(nullptr /* render_frame_host */,
+                                     secure_url, insecure_url)
+                .content_setting);
+
+  EXPECT_EQ(CONTENT_SETTING_BLOCK,
+            permission_context
+                .GetPermissionStatus(nullptr /* render_frame_host */,
+                                     insecure_url, secure_url)
+                .content_setting);
+}
diff --git a/chrome/browser/payments/service_worker_payment_app_factory_browsertest.cc b/chrome/browser/payments/service_worker_payment_app_factory_browsertest.cc
index b259352..d49d36c 100644
--- a/chrome/browser/payments/service_worker_payment_app_factory_browsertest.cc
+++ b/chrome/browser/payments/service_worker_payment_app_factory_browsertest.cc
@@ -10,6 +10,7 @@
 #include "base/command_line.h"
 #include "base/run_loop.h"
 #include "base/test/scoped_feature_list.h"
+#include "chrome/browser/permissions/permission_request_manager.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/tabs/tab_strip_model.h"
@@ -56,12 +57,20 @@
     command_line->AppendSwitch(switches::kIgnoreCertificateErrors);
   }
 
+  PermissionRequestManager* GetPermissionRequestManager() {
+    return PermissionRequestManager::FromWebContents(
+        browser()->tab_strip_model()->GetActiveWebContents());
+  }
+
   // Starts the test severs and opens a test page on alicepay.com.
   void SetUpOnMainThread() override {
     ASSERT_TRUE(StartTestServer("alicepay.com", &alicepay_));
     ASSERT_TRUE(StartTestServer("bobpay.com", &bobpay_));
     ASSERT_TRUE(StartTestServer("frankpay.com", &frankpay_));
     ASSERT_TRUE(StartTestServer("georgepay.com", &georgepay_));
+
+    GetPermissionRequestManager()->set_auto_response_for_test(
+        PermissionRequestManager::ACCEPT_ALL);
   }
 
   // Invokes the JavaScript function install(|method_name|) in
diff --git a/chrome/browser/permissions/permission_manager.cc b/chrome/browser/permissions/permission_manager.cc
index a297be1..76ddcb4 100644
--- a/chrome/browser/permissions/permission_manager.cc
+++ b/chrome/browser/permissions/permission_manager.cc
@@ -20,6 +20,7 @@
 #include "chrome/browser/media/midi_sysex_permission_context.h"
 #include "chrome/browser/media/webrtc/media_stream_device_permission_context.h"
 #include "chrome/browser/notifications/notification_permission_context.h"
+#include "chrome/browser/payments/payment_handler_permission_context.h"
 #include "chrome/browser/permissions/permission_context_base.h"
 #include "chrome/browser/permissions/permission_manager_factory.h"
 #include "chrome/browser/permissions/permission_request_id.h"
@@ -117,6 +118,8 @@
       return CONTENT_SETTINGS_TYPE_CLIPBOARD_READ;
     case PermissionType::CLIPBOARD_WRITE:
       return CONTENT_SETTINGS_TYPE_CLIPBOARD_WRITE;
+    case PermissionType::PAYMENT_HANDLER:
+      return CONTENT_SETTINGS_TYPE_PAYMENT_HANDLER;
     case PermissionType::NUM:
       // This will hit the NOTREACHED below.
       break;
@@ -298,6 +301,8 @@
       std::make_unique<ClipboardReadPermissionContext>(profile);
   permission_contexts_[CONTENT_SETTINGS_TYPE_CLIPBOARD_WRITE] =
       std::make_unique<ClipboardWritePermissionContext>(profile);
+  permission_contexts_[CONTENT_SETTINGS_TYPE_PAYMENT_HANDLER] =
+      std::make_unique<payments::PaymentHandlerPermissionContext>(profile);
 }
 
 PermissionManager::~PermissionManager() {
diff --git a/chrome/browser/permissions/permission_request.h b/chrome/browser/permissions/permission_request.h
index b093c8d..61522a7 100644
--- a/chrome/browser/permissions/permission_request.h
+++ b/chrome/browser/permissions/permission_request.h
@@ -44,6 +44,7 @@
   PERMISSION_ACCESSIBILITY_EVENTS = 15,
   PERMISSION_CLIPBOARD_READ = 16,
   PERMISSION_SECURITY_KEY_ATTESTATION = 17,
+  PERMISSION_PAYMENT_HANDLER = 18,
   // NUM must be the last value in the enum.
   NUM
 };
diff --git a/chrome/browser/permissions/permission_request_impl.cc b/chrome/browser/permissions/permission_request_impl.cc
index a716bb8..b6326c9 100644
--- a/chrome/browser/permissions/permission_request_impl.cc
+++ b/chrome/browser/permissions/permission_request_impl.cc
@@ -54,6 +54,9 @@
       return IDR_ANDROID_INFOBAR_ACCESSIBILITY_EVENTS;
     case CONTENT_SETTINGS_TYPE_CLIPBOARD_READ:
       return IDR_ANDROID_INFOBAR_CLIPBOARD;
+    case CONTENT_SETTINGS_TYPE_PAYMENT_HANDLER:
+      // TODO(zino): Should update this icon.
+      return IDR_ANDROID_INFOBAR_WARNING;
     default:
       NOTREACHED();
       return IDR_ANDROID_INFOBAR_WARNING;
@@ -81,6 +84,9 @@
       return vector_icons::kAccessibilityIcon;
     case CONTENT_SETTINGS_TYPE_CLIPBOARD_READ:
       return kContentPasteIcon;
+    case CONTENT_SETTINGS_TYPE_PAYMENT_HANDLER:
+      // TODO(zino): Should update this icon.
+      return kProductIcon;
     default:
       NOTREACHED();
       return kExtensionIcon;
@@ -116,6 +122,10 @@
     case CONTENT_SETTINGS_TYPE_CLIPBOARD_READ:
       message_id = IDS_CLIPBOARD_INFOBAR_TEXT;
       break;
+    case CONTENT_SETTINGS_TYPE_PAYMENT_HANDLER:
+      // TODO(zino): Should update this message.
+      message_id = IDS_CLIPBOARD_INFOBAR_TEXT;
+      break;
     default:
       NOTREACHED();
       return base::string16();
@@ -159,6 +169,10 @@
     case CONTENT_SETTINGS_TYPE_CLIPBOARD_READ:
       message_id = IDS_CLIPBOARD_PERMISSION_FRAGMENT;
       break;
+    case CONTENT_SETTINGS_TYPE_PAYMENT_HANDLER:
+      // TODO(zino): Should update this message.
+      message_id = IDS_CLIPBOARD_PERMISSION_FRAGMENT;
+      break;
     default:
       NOTREACHED();
       return base::string16();
diff --git a/chrome/browser/permissions/permission_uma_util.cc b/chrome/browser/permissions/permission_uma_util.cc
index 7b267fd..fe1288a 100644
--- a/chrome/browser/permissions/permission_uma_util.cc
+++ b/chrome/browser/permissions/permission_uma_util.cc
@@ -100,6 +100,8 @@
       return "ClipboardRead";
     case PermissionRequestType::PERMISSION_SECURITY_KEY_ATTESTATION:
       return "SecurityKeyAttestation";
+    case PermissionRequestType::PERMISSION_PAYMENT_HANDLER:
+      return "PaymentHandler";
     default:
       NOTREACHED();
       return "";
@@ -491,6 +493,10 @@
       UMA_HISTOGRAM_ENUMERATION("Permissions.Action.ClipboardRead", action,
                                 PermissionAction::NUM);
       break;
+    case CONTENT_SETTINGS_TYPE_PAYMENT_HANDLER:
+      UMA_HISTOGRAM_ENUMERATION("Permissions.Action.PaymentHandler", action,
+                                PermissionAction::NUM);
+      break;
     // The user is not prompted for these permissions, thus there is no
     // permission action recorded for them.
     default:
diff --git a/chrome/browser/permissions/permission_util.cc b/chrome/browser/permissions/permission_util.cc
index 17bda92c..e8116fa 100644
--- a/chrome/browser/permissions/permission_util.cc
+++ b/chrome/browser/permissions/permission_util.cc
@@ -48,6 +48,8 @@
       return "ClipboardRead";
     case CONTENT_SETTINGS_TYPE_CLIPBOARD_WRITE:
       return "ClipboardWrite";
+    case CONTENT_SETTINGS_TYPE_PAYMENT_HANDLER:
+      return "PaymentHandler";
     default:
       break;
   }
@@ -82,6 +84,8 @@
       return "ACCESSIBILITY_EVENTS";
     case CONTENT_SETTINGS_TYPE_CLIPBOARD_READ:
       return "CLIPBOARD_READ";
+    case CONTENT_SETTINGS_TYPE_PAYMENT_HANDLER:
+      return "PAYMENT_HANDLER";
     default:
       break;
   }
@@ -109,6 +113,8 @@
       return PermissionRequestType::PERMISSION_ACCESSIBILITY_EVENTS;
     case CONTENT_SETTINGS_TYPE_CLIPBOARD_READ:
       return PermissionRequestType::PERMISSION_CLIPBOARD_READ;
+    case CONTENT_SETTINGS_TYPE_PAYMENT_HANDLER:
+      return PermissionRequestType::PERMISSION_PAYMENT_HANDLER;
     default:
       NOTREACHED();
       return PermissionRequestType::UNKNOWN;
@@ -150,6 +156,8 @@
     *out = PermissionType::ACCESSIBILITY_EVENTS;
   } else if (type == CONTENT_SETTINGS_TYPE_CLIPBOARD_READ) {
     *out = PermissionType::CLIPBOARD_READ;
+  } else if (type == CONTENT_SETTINGS_TYPE_PAYMENT_HANDLER) {
+    *out = PermissionType::PAYMENT_HANDLER;
   } else {
     return false;
   }
@@ -172,6 +180,7 @@
     case CONTENT_SETTINGS_TYPE_SENSORS:
     case CONTENT_SETTINGS_TYPE_ACCESSIBILITY_EVENTS:
     case CONTENT_SETTINGS_TYPE_CLIPBOARD_READ:
+    case CONTENT_SETTINGS_TYPE_PAYMENT_HANDLER:
       return true;
     default:
       return false;
diff --git a/chrome/browser/plugins/plugin_power_saver_browsertest.cc b/chrome/browser/plugins/plugin_power_saver_browsertest.cc
index b41210a..a964ebc 100644
--- a/chrome/browser/plugins/plugin_power_saver_browsertest.cc
+++ b/chrome/browser/plugins/plugin_power_saver_browsertest.cc
@@ -8,6 +8,7 @@
 
 #include "base/command_line.h"
 #include "base/message_loop/message_loop.h"
+#include "base/run_loop.h"
 #include "base/stl_util.h"
 #include "base/strings/string_piece.h"
 #include "base/strings/stringprintf.h"
@@ -28,7 +29,6 @@
 #include "components/policy/core/common/mock_configuration_policy_provider.h"
 #include "components/policy/policy_constants.h"
 #include "components/zoom/zoom_controller.h"
-#include "content/public/browser/readback_types.h"
 #include "content/public/browser/render_frame_host.h"
 #include "content/public/browser/render_view_host.h"
 #include "content/public/browser/render_widget_host.h"
@@ -226,11 +226,10 @@
 void CompareSnapshotToReference(const base::FilePath& reference,
                                 bool* snapshot_matches,
                                 const base::Closure& done_cb,
-                                const SkBitmap& bitmap,
-                                content::ReadbackResponse response) {
+                                const SkBitmap& bitmap) {
   base::ScopedAllowBlockingForTesting allow_blocking;
   DCHECK(snapshot_matches);
-  ASSERT_EQ(content::READBACK_SUCCESS, response);
+  ASSERT_FALSE(bitmap.drawsNothing());
 
   *snapshot_matches = SnapshotMatches(reference, bitmap);
 
@@ -387,13 +386,12 @@
     }
 
     bool snapshot_matches = false;
+    base::RunLoop run_loop;
     rwh->GetView()->CopyFromSurface(
         gfx::Rect(), gfx::Size(),
-        base::Bind(&CompareSnapshotToReference, reference, &snapshot_matches,
-                   base::MessageLoop::QuitWhenIdleClosure()),
-        kN32_SkColorType);
-
-    content::RunMessageLoop();
+        base::BindOnce(&CompareSnapshotToReference, reference,
+                       &snapshot_matches, run_loop.QuitClosure()));
+    run_loop.Run();
 
     return snapshot_matches;
   }
diff --git a/chrome/browser/policy/cloud/component_cloud_policy_browsertest.cc b/chrome/browser/policy/cloud/component_cloud_policy_browsertest.cc
index c1f5e072..4ee8ef8 100644
--- a/chrome/browser/policy/cloud/component_cloud_policy_browsertest.cc
+++ b/chrome/browser/policy/cloud/component_cloud_policy_browsertest.cc
@@ -272,7 +272,13 @@
   EXPECT_TRUE(policy_listener2.WaitUntilSatisfied());
 }
 
-IN_PROC_BROWSER_TEST_F(ComponentCloudPolicyTest, InstallNewExtension) {
+// Flaky on Mac. http://crbug.com/816647
+#if defined(OS_MACOSX)
+#define MAYBE_InstallNewExtension DISABLED_InstallNewExtension
+#else
+#define MAYBE_InstallNewExtension InstallNewExtension
+#endif
+IN_PROC_BROWSER_TEST_F(ComponentCloudPolicyTest, MAYBE_InstallNewExtension) {
   event_listener_->Reply("idle");
   event_listener_.reset();
 
diff --git a/chrome/browser/policy/configuration_policy_handler_list_factory.cc b/chrome/browser/policy/configuration_policy_handler_list_factory.cc
index 8c0f43ce..e1b7db5 100644
--- a/chrome/browser/policy/configuration_policy_handler_list_factory.cc
+++ b/chrome/browser/policy/configuration_policy_handler_list_factory.cc
@@ -761,7 +761,7 @@
     prefs::kAbusiveExperienceInterventionEnforce,
     base::Value::Type::BOOLEAN },
 
-#if defined(OS_WIN)
+#if defined(OS_WIN) && defined(GOOGLE_CHROME_BUILD)
   { key::kThirdPartyBlockingEnabled,
     prefs::kThirdPartyBlockingEnabled,
     base::Value::Type::BOOLEAN },
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
index 495571d..b90fd69f 100644
--- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc
@@ -270,7 +270,9 @@
 #if defined(OS_WIN)
 #include "chrome/browser/apps/app_launch_for_metro_restart_win.h"
 #include "chrome/browser/component_updater/sw_reporter_installer_win.h"
+#if defined(GOOGLE_CHROME_BUILD)
 #include "chrome/browser/conflicts/problematic_programs_updater_win.h"
+#endif  // defined(GOOGLE_CHROME_BUILD)
 #include "chrome/browser/safe_browsing/chrome_cleaner/settings_resetter_win.h"
 #include "chrome/browser/safe_browsing/settings_reset_prompt/settings_reset_prompt_prefs_manager.h"
 #include "chrome/browser/ui/desktop_ios_promotion/desktop_ios_promotion_util.h"
@@ -463,7 +465,9 @@
   component_updater::RegisterPrefsForSwReporter(registry);
   desktop_ios_promotion::RegisterLocalPrefs(registry);
   password_manager::PasswordManager::RegisterLocalPrefs(registry);
+#if defined(GOOGLE_CHROME_BUILD)
   ProblematicProgramsUpdater::RegisterLocalStatePrefs(registry);
+#endif  // defined(GOOGLE_CHROME_BUILD)
 #endif
 
 #if defined(TOOLKIT_VIEWS)
diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/profile_impl.cc
index ec53681..06d2f95 100644
--- a/chrome/browser/profiles/profile_impl.cc
+++ b/chrome/browser/profiles/profile_impl.cc
@@ -143,9 +143,16 @@
 #include "chrome/browser/chromeos/preferences.h"
 #include "chrome/browser/chromeos/profiles/profile_helper.h"
 #include "chrome/browser/chromeos/settings/device_settings_service.h"
+#include "chromeos/assistant/buildflags.h"
 #include "components/session_manager/core/session_manager.h"
 #include "components/user_manager/user.h"
 #include "components/user_manager/user_manager.h"
+
+#if BUILDFLAG(ENABLE_CROS_ASSISTANT)
+#include "chromeos/services/assistant/public/mojom/constants.mojom.h"
+#include "chromeos/services/assistant/service.h"
+#endif
+
 #endif
 
 #if !defined(OS_ANDROID)
@@ -1099,6 +1106,22 @@
     services->insert(std::make_pair(prefs::mojom::kServiceName, info));
   }
 
+#if defined(OS_CHROMEOS)
+#if BUILDFLAG(ENABLE_CROS_ASSISTANT)
+  {
+    service_manager::EmbeddedServiceInfo info;
+    info.factory = base::BindRepeating([] {
+      return std::unique_ptr<service_manager::Service>(
+          std::make_unique<chromeos::assistant::Service>());
+    });
+    info.task_runner = content::BrowserThread::GetTaskRunnerForThread(
+        content::BrowserThread::UI);
+    services->insert(
+        std::make_pair(chromeos::assistant::mojom::kServiceName, info));
+  }
+#endif
+#endif
+
   service_manager::EmbeddedServiceInfo identity_service_info;
 
   // The Identity Service must run on the UI thread.
diff --git a/chrome/browser/push_messaging/push_messaging_browsertest.cc b/chrome/browser/push_messaging/push_messaging_browsertest.cc
index 3b1e148..06a67f8 100644
--- a/chrome/browser/push_messaging/push_messaging_browsertest.cc
+++ b/chrome/browser/push_messaging/push_messaging_browsertest.cc
@@ -596,6 +596,37 @@
             script_result);
 }
 
+IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, SubscribeWithInvalidation) {
+  std::string token1, token2, token3;
+
+  ASSERT_NO_FATAL_FAILURE(SubscribeSuccessfully(true /* use_key */, &token1));
+  ASSERT_FALSE(token1.empty());
+
+  // Repeated calls to |subscribe()| should yield the same token.
+  ASSERT_NO_FATAL_FAILURE(SubscribeSuccessfully(true /* use_key */, &token2));
+  ASSERT_EQ(token1, token2);
+
+  PushMessagingAppIdentifier app_identifier =
+      PushMessagingAppIdentifier::FindByServiceWorker(
+          GetBrowser()->profile(), https_server()->GetURL("/").GetOrigin(),
+          0LL /* service_worker_registration_id */);
+
+  ASSERT_FALSE(app_identifier.is_null());
+  EXPECT_EQ(app_identifier.app_id(), gcm_driver_->last_gettoken_app_id());
+
+  // Delete the InstanceID. This captures two scenarios: either the database was
+  // corrupted, or the subscription was invalidated by the server.
+  ASSERT_NO_FATAL_FAILURE(
+      DeleteInstanceIDAsIfGCMStoreReset(app_identifier.app_id()));
+
+  EXPECT_EQ(app_identifier.app_id(), gcm_driver_->last_deletetoken_app_id());
+
+  // Repeated calls to |subscribe()| will now (silently) result in a new token.
+  ASSERT_NO_FATAL_FAILURE(SubscribeSuccessfully(true /* use_key */, &token3));
+  ASSERT_FALSE(token3.empty());
+  EXPECT_NE(token1, token3);
+}
+
 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, SubscribeWorker) {
   std::string script_result;
 
@@ -990,10 +1021,6 @@
   // Now test that the Service Worker registration IDs and push subscription IDs
   // generated above were persisted to SW storage, by checking that they are
   // unchanged despite requesting them in a different order.
-  // TODO(johnme): Ideally we would restart the browser at this point to check
-  // they were persisted to disk, but that's not currently possible since the
-  // test server uses random port numbers for each test (even PRE_Foo and Foo),
-  // so we wouldn't be able to load the test pages with the same origin.
 
   LoadTestPage("/push_messaging/subscope1/test.html");
   std::string token4;
@@ -1005,13 +1032,13 @@
   std::string token5;
   ASSERT_NO_FATAL_FAILURE(SubscribeSuccessfully(true /* use_key */, &token5));
   EXPECT_EQ(token2, token5);
-  EXPECT_EQ(sw1_identifier.app_id(), gcm_driver_->last_gettoken_app_id());
+  EXPECT_EQ(sw2_identifier.app_id(), gcm_driver_->last_gettoken_app_id());
 
   LoadTestPage();
   std::string token6;
   ASSERT_NO_FATAL_FAILURE(SubscribeSuccessfully(true /* use_key */, &token6));
   EXPECT_EQ(token1, token6);
-  EXPECT_EQ(sw1_identifier.app_id(), gcm_driver_->last_gettoken_app_id());
+  EXPECT_EQ(sw0_identifier.app_id(), gcm_driver_->last_gettoken_app_id());
 }
 
 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, AppHandlerOnlyIfSubscribed) {
@@ -1945,53 +1972,6 @@
   EXPECT_TRUE(app_identifier3.is_null());
 }
 
-IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, InvalidSubscribeUnsubscribes) {
-  std::string script_result;
-
-  std::string token1;
-  ASSERT_NO_FATAL_FAILURE(SubscribeSuccessfully(true /* use_key */, &token1));
-
-  GURL origin = https_server()->GetURL("/").GetOrigin();
-  PushMessagingAppIdentifier app_identifier1 =
-      PushMessagingAppIdentifier::FindByServiceWorker(
-          GetBrowser()->profile(), origin,
-          0LL /* service_worker_registration_id */);
-  ASSERT_FALSE(app_identifier1.is_null());
-
-  ASSERT_NO_FATAL_FAILURE(
-      DeleteInstanceIDAsIfGCMStoreReset(app_identifier1.app_id()));
-
-  // Push messaging should not yet be aware of the InstanceID being deleted.
-  histogram_tester_.ExpectTotalCount("PushMessaging.UnregistrationReason", 0);
-  // We should still be able to look up the app id.
-  PushMessagingAppIdentifier app_identifier2 =
-      PushMessagingAppIdentifier::FindByServiceWorker(
-          GetBrowser()->profile(), origin,
-          0LL /* service_worker_registration_id */);
-  EXPECT_FALSE(app_identifier2.is_null());
-  EXPECT_EQ(app_identifier1.app_id(), app_identifier2.app_id());
-
-  // Now call PushManager.subscribe() again. It should succeed, but with a
-  // *different* token, indicating that it unsubscribed and re-subscribed.
-  std::string token2;
-  ASSERT_NO_FATAL_FAILURE(SubscribeSuccessfully(true /* use_key */, &token2));
-  EXPECT_NE(token1, token2);
-
-  // This should have unsubscribed the original push subscription.
-  histogram_tester_.ExpectUniqueSample(
-      "PushMessaging.UnregistrationReason",
-      static_cast<int>(
-          content::mojom::PushUnregistrationReason::SUBSCRIBE_STORAGE_CORRUPT),
-      1);
-  // Looking up the app id should return a different id.
-  PushMessagingAppIdentifier app_identifier3 =
-      PushMessagingAppIdentifier::FindByServiceWorker(
-          GetBrowser()->profile(), origin,
-          0LL /* service_worker_registration_id */);
-  EXPECT_FALSE(app_identifier3.is_null());
-  EXPECT_NE(app_identifier2.app_id(), app_identifier3.app_id());
-}
-
 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest,
                        GlobalResetPushPermissionUnsubscribes) {
   std::string script_result;
diff --git a/chrome/browser/push_messaging/push_messaging_notification_manager.cc b/chrome/browser/push_messaging/push_messaging_notification_manager.cc
index 36690d1..b7a6ae6 100644
--- a/chrome/browser/push_messaging/push_messaging_notification_manager.cc
+++ b/chrome/browser/push_messaging/push_messaging_notification_manager.cc
@@ -34,7 +34,7 @@
 #include "content/public/common/push_messaging_status.mojom.h"
 #include "content/public/common/url_constants.h"
 #include "net/base/registry_controlled_domains/registry_controlled_domain.h"
-#include "third_party/WebKit/common/page/page_visibility_state.mojom.h"
+#include "third_party/WebKit/public/mojom/page/page_visibility_state.mojom.h"
 #include "third_party/WebKit/public/platform/modules/budget_service/budget_service.mojom.h"
 #include "ui/base/l10n/l10n_util.h"
 #include "url/gurl.h"
diff --git a/chrome/browser/push_messaging/push_messaging_service_impl.cc b/chrome/browser/push_messaging/push_messaging_service_impl.cc
index af9fc37..c90bdb7 100644
--- a/chrome/browser/push_messaging/push_messaging_service_impl.cc
+++ b/chrome/browser/push_messaging/push_messaging_service_impl.cc
@@ -466,8 +466,15 @@
     bool user_gesture,
     const RegisterCallback& callback) {
   PushMessagingAppIdentifier app_identifier =
-      PushMessagingAppIdentifier::Generate(requesting_origin,
-                                           service_worker_registration_id);
+      PushMessagingAppIdentifier::FindByServiceWorker(
+          profile_, requesting_origin, service_worker_registration_id);
+
+  // If there is no existing app identifier for the given Service Worker,
+  // generate a new one. This will create a new subscription on the server.
+  if (app_identifier.is_null()) {
+    app_identifier = PushMessagingAppIdentifier::Generate(
+        requesting_origin, service_worker_registration_id);
+  }
 
   if (push_subscription_count_ + pending_push_subscription_count_ >=
       kMaxRegistrations) {
@@ -507,8 +514,15 @@
     const content::PushSubscriptionOptions& options,
     const RegisterCallback& register_callback) {
   PushMessagingAppIdentifier app_identifier =
-      PushMessagingAppIdentifier::Generate(requesting_origin,
-                                           service_worker_registration_id);
+      PushMessagingAppIdentifier::FindByServiceWorker(
+          profile_, requesting_origin, service_worker_registration_id);
+
+  // If there is no existing app identifier for the given Service Worker,
+  // generate a new one. This will create a new subscription on the server.
+  if (app_identifier.is_null()) {
+    app_identifier = PushMessagingAppIdentifier::Generate(
+        requesting_origin, service_worker_registration_id);
+  }
 
   if (push_subscription_count_ + pending_push_subscription_count_ >=
       kMaxRegistrations) {
diff --git a/chrome/browser/resources/chromeos/login/screen_error_message.js b/chrome/browser/resources/chromeos/login/screen_error_message.js
index 815324b..c04dd3e 100644
--- a/chrome/browser/resources/chromeos/login/screen_error_message.js
+++ b/chrome/browser/resources/chromeos/login/screen_error_message.js
@@ -253,7 +253,7 @@
     },
 
     /**
-     * Event handler that is invoked just before the screen in shown.
+     * Event handler that is invoked just before the screen is shown.
      * @param {Object} data Screen init payload.
      */
     onBeforeShow: function(data) {
@@ -261,6 +261,7 @@
       cr.ui.DropDown.show('offline-networks-list', false);
       $('login-header-bar').signinUIState = SIGNIN_UI_STATE.ERROR;
       this.cancelable = $('pod-row').pods.length;
+      $('error-message-back-button').disabled = !this.cancelable;
     },
 
     /**
diff --git a/chrome/browser/resources/settings/a11y_page/manage_a11y_page.html b/chrome/browser/resources/settings/a11y_page/manage_a11y_page.html
index e5e8f28..59420dc 100644
--- a/chrome/browser/resources/settings/a11y_page/manage_a11y_page.html
+++ b/chrome/browser/resources/settings/a11y_page/manage_a11y_page.html
@@ -73,7 +73,8 @@
     </settings-toggle-button>
     <settings-toggle-button class="continuation"
         pref="{{prefs.settings.a11y.screen_magnifier}}"
-        label="$i18n{screenMagnifierLabel}">
+        label="$i18n{screenMagnifierLabel}"
+        disabled="[[prefs.ash.docked_magnifier.enabled.value]]">
     </settings-toggle-button>
     <div class="settings-box continuation">
       <div class="start sub-item">$i18n{screenMagnifierZoomLabel}</div>
@@ -83,6 +84,21 @@
           disabled="[[!prefs.settings.a11y.screen_magnifier.value]]">
       </settings-dropdown-menu>
     </div>
+    <template is="dom-if" if="[[dockedMagnifierFeatureEnabled_]]" restamp>
+      <settings-toggle-button class="continuation"
+          pref="{{prefs.ash.docked_magnifier.enabled}}"
+          label="$i18n{dockedMagnifierLabel}"
+          disabled="[[prefs.settings.a11y.screen_magnifier.value]]">
+      </settings-toggle-button>
+      <div class="settings-box continuation">
+        <div class="start sub-item">$i18n{dockedMagnifierZoomLabel}</div>
+        <settings-dropdown-menu label="$i18n{dockedMagnifierZoomLabel}"
+            pref="{{prefs.ash.docked_magnifier.scale}}"
+            menu-options="[[screenMagnifierZoomOptions_]]"
+            disabled="[[!prefs.ash.docked_magnifier.enabled.value]]">
+        </settings-dropdown-menu>
+      </div>
+    </template>
     <div class="settings-box two-line" on-click="onDisplayTap_" actionable>
       <div class="start">
         $i18n{displaySettingsTitle}
diff --git a/chrome/browser/resources/settings/a11y_page/manage_a11y_page.js b/chrome/browser/resources/settings/a11y_page/manage_a11y_page.js
index f209ddf4..090a8a7 100644
--- a/chrome/browser/resources/settings/a11y_page/manage_a11y_page.js
+++ b/chrome/browser/resources/settings/a11y_page/manage_a11y_page.js
@@ -78,6 +78,17 @@
       },
     },
 
+    /**
+     * Whether the docked magnifier flag is enabled.
+     * @private {boolean}
+     */
+    dockedMagnifierFeatureEnabled_: {
+      type: Boolean,
+      value: function() {
+        return loadTimeData.getBoolean('dockedMagnifierFeatureEnabled');
+      },
+    },
+
     /** @private */
     isGuest_: {
       type: Boolean,
diff --git a/chrome/browser/resources/settings/compiled_resources2.gyp b/chrome/browser/resources/settings/compiled_resources2.gyp
index 11bf999..645a93b9 100644
--- a/chrome/browser/resources/settings/compiled_resources2.gyp
+++ b/chrome/browser/resources/settings/compiled_resources2.gyp
@@ -80,6 +80,7 @@
         'default_browser_page/compiled_resources2.gyp:*',
         'device_page/compiled_resources2.gyp:*',
         'downloads_page/compiled_resources2.gyp:*',
+        'incompatible_software_page/compiled_resources2.gyp:*',
         'internet_page/compiled_resources2.gyp:*',
         'languages_page/compiled_resources2.gyp:*',
         'on_startup_page/compiled_resources2.gyp:*',
diff --git a/chrome/browser/resources/settings/incompatible_software_page/compiled_resources2.gyp b/chrome/browser/resources/settings/incompatible_software_page/compiled_resources2.gyp
new file mode 100644
index 0000000..d389736
--- /dev/null
+++ b/chrome/browser/resources/settings/incompatible_software_page/compiled_resources2.gyp
@@ -0,0 +1,34 @@
+# Copyright 2018 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+{
+  'targets': [
+    {
+      'target_name': 'incompatible_software_browser_proxy',
+      'dependencies': [
+        '<(DEPTH)/ui/webui/resources/js/compiled_resources2.gyp:cr',
+      ],
+      'includes': ['../../../../../third_party/closure_compiler/compile_js2.gypi'],
+    },
+    {
+      'target_name': 'incompatible_software_page',
+      'dependencies': [
+        '<(DEPTH)/ui/webui/resources/js/compiled_resources2.gyp:cr',
+        '<(DEPTH)/ui/webui/resources/js/compiled_resources2.gyp:i18n_behavior',
+        'incompatible_software_browser_proxy',
+      ],
+      'includes': ['../../../../../third_party/closure_compiler/compile_js2.gypi'],
+    },
+    {
+      'target_name': 'incompatible_software_item',
+      'dependencies': [
+        '<(DEPTH)/ui/webui/resources/js/compiled_resources2.gyp:assert',
+        '<(DEPTH)/ui/webui/resources/js/compiled_resources2.gyp:cr',
+        '<(DEPTH)/ui/webui/resources/js/compiled_resources2.gyp:i18n_behavior',
+        '<(DEPTH)/ui/webui/resources/js/compiled_resources2.gyp:web_ui_listener_behavior',
+        'incompatible_software_browser_proxy',
+      ],
+      'includes': ['../../../../../third_party/closure_compiler/compile_js2.gypi'],
+    },
+  ],
+}
diff --git a/chrome/browser/resources/settings/incompatible_software_page/incompatible_software_browser_proxy.html b/chrome/browser/resources/settings/incompatible_software_page/incompatible_software_browser_proxy.html
new file mode 100644
index 0000000..4aae9a9
--- /dev/null
+++ b/chrome/browser/resources/settings/incompatible_software_page/incompatible_software_browser_proxy.html
@@ -0,0 +1,2 @@
+<link rel="import" href="chrome://resources/html/cr.html">
+<script src="incompatible_software_browser_proxy.js"></script>
diff --git a/chrome/browser/resources/settings/incompatible_software_page/incompatible_software_browser_proxy.js b/chrome/browser/resources/settings/incompatible_software_page/incompatible_software_browser_proxy.js
new file mode 100644
index 0000000..1e7d6cc7
--- /dev/null
+++ b/chrome/browser/resources/settings/incompatible_software_page/incompatible_software_browser_proxy.js
@@ -0,0 +1,81 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+/**
+ * @fileoverview A helper object used from the Incompatible Software section to
+ * interact with the browser.
+ */
+
+cr.exportPath('settings');
+
+/**
+ * All possible actions to take on am incompatible software.
+ *
+ * Must be kept in sync with BlacklistMessageType in
+ * chrome/browser/conflicts/proto/module_list.proto
+ * @readonly
+ * @enum {number}
+ */
+settings.ActionTypes = {
+  UNINSTALL: 0,
+  MORE_INFO: 1,
+  UPGRADE: 2,
+};
+
+/**
+ * @typedef {{
+ *   name: string,
+ *   actionType: {settings.ActionTypes},
+ *   actionUrl: string,
+ * }}
+ */
+settings.IncompatibleSoftware;
+
+cr.define('settings', function() {
+  /** @interface */
+  class IncompatibleSoftwareBrowserProxy {
+    /**
+     * Get the list of incompatible software.
+     * @return {!Promise<!Array<!settings.IncompatibleSoftware>>}
+     */
+    requestIncompatibleSoftwareList() {}
+
+    /**
+     * Launches the Apps & Features page that allows uninstalling 'programName'.
+     * @param {string} programName
+     */
+    startProgramUninstallation(programName) {}
+
+    /**
+     * Opens the specified URL in a new tab.
+     * @param {!string} url
+     */
+    openURL(url) {}
+  }
+
+  /** @implements {settings.IncompatibleSoftwareBrowserProxy} */
+  class IncompatibleSoftwareBrowserProxyImpl {
+    /** @override */
+    requestIncompatibleSoftwareList() {
+      return cr.sendWithPromise('requestIncompatibleSoftwareList');
+    }
+
+    /** @override */
+    startProgramUninstallation(programName) {
+      chrome.send('startProgramUninstallation', [programName]);
+    }
+
+    /** @override */
+    openURL(url) {
+      window.open(url);
+    }
+  }
+
+  cr.addSingletonGetter(IncompatibleSoftwareBrowserProxyImpl);
+
+  return {
+    IncompatibleSoftwareBrowserProxy: IncompatibleSoftwareBrowserProxy,
+    IncompatibleSoftwareBrowserProxyImpl: IncompatibleSoftwareBrowserProxyImpl,
+  };
+});
diff --git a/chrome/browser/resources/settings/incompatible_software_page/incompatible_software_item.html b/chrome/browser/resources/settings/incompatible_software_page/incompatible_software_item.html
new file mode 100644
index 0000000..cfeeab3
--- /dev/null
+++ b/chrome/browser/resources/settings/incompatible_software_page/incompatible_software_item.html
@@ -0,0 +1,25 @@
+<link rel="import" href="chrome://resources/html/polymer.html">
+
+<link rel="import" href="chrome://resources/html/assert.html">
+<link rel="import" href="chrome://resources/html/i18n_behavior.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-button/paper-button.html">
+<link rel="import" href="../settings_shared_css.html">
+<link rel="import" href="incompatible_software_browser_proxy.html">
+
+<dom-module id="incompatible-software-item">
+  <template>
+    <style include="settings-shared">
+      :host {
+        display: block;
+      }
+    </style>
+    <div class="list-item">
+      <div class="start">[[softwareName]]</div>
+      <div class="separator"></div>
+      <paper-button class="primary-button" on-click="onActionTap_">
+        [[getActionName_(actionType)]]
+      </paper-button>
+    </div>
+  </template>
+  <script src="incompatible_software_item.js"></script>
+</dom-module>
diff --git a/chrome/browser/resources/settings/incompatible_software_page/incompatible_software_item.js b/chrome/browser/resources/settings/incompatible_software_page/incompatible_software_item.js
new file mode 100644
index 0000000..2855f8a
--- /dev/null
+++ b/chrome/browser/resources/settings/incompatible_software_page/incompatible_software_item.js
@@ -0,0 +1,103 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+/**
+ * @fileoverview
+ * 'incompatible-software-item' represents one item in a "list-box" of
+ * incompatible software, as defined in
+ * chrome/browser/conflicts/problematic_programs_updater_win.h.
+ * This element contains a button that can be used to remove or update the
+ * incompatible software, depending on the value of the action-type property.
+ *
+ * Example usage:
+ *
+ *   <div class="list-box">
+ *     <incompatible-software-item
+ *       software-name="Google Chrome"
+ *       action-type="1"
+ *       action-url="https://www.google.com/chrome/more-info">
+ *     </incompatible-software-item>
+ *   </div>
+ *
+ * or
+ *
+ *   <div class="list-box">
+ *     <template is="dom-repeat" items="[[softwareList]]" as="software">
+ *       <incompatible-software-item
+ *         software-name="[[software.name]]"
+ *         action-type="[[software.actionType]]"
+ *         action-url="[[software.actionUrl]]">
+ *       </incompatible-software-item>
+ *     </template>
+ *   </div>
+ */
+
+Polymer({
+  is: 'incompatible-software-item',
+
+  behaviors: [I18nBehavior],
+
+  properties: {
+    /**
+     * The name of the software to be displayed. Also used for the UNINSTALL
+     * action, where the name is passed to the startProgramUninstallation()
+     * call.
+     */
+    softwareName: String,
+
+    /**
+     * The type of the action to be taken on this incompatible software. Must be
+     * one of BlacklistMessageType in
+     * chrome/browser/conflicts/proto/module_list.proto.
+     * @type {!settings.ActionTypes}
+     */
+    actionType: Number,
+
+    /**
+     * For the actions MORE_INFO and UPGRADE, this is the URL that must be
+     * opened when the action button is tapped.
+     */
+    actionUrl: String,
+  },
+
+  /** @private {settings.IncompatibleSoftwareBrowserProxy} */
+  browserProxy_: null,
+
+  /** @override */
+  created: function() {
+    this.browserProxy_ =
+        settings.IncompatibleSoftwareBrowserProxyImpl.getInstance();
+  },
+
+  /**
+   * Executes the action for this incompatible software, depending on
+   * actionType.
+   * @private
+   */
+  onActionTap_: function() {
+    if (this.actionType === settings.ActionTypes.UNINSTALL) {
+      this.browserProxy_.startProgramUninstallation(this.softwareName);
+    } else if (
+        this.actionType === settings.ActionTypes.MORE_INFO ||
+        this.actionType === settings.ActionTypes.UPGRADE) {
+      this.browserProxy_.openURL(this.actionUrl);
+    } else {
+      assertNotReached();
+    }
+  },
+
+  /**
+   * @return {string} The label that should be applied to the action button.
+   * @private
+   */
+  getActionName_: function(actionType) {
+    if (actionType === settings.ActionTypes.UNINSTALL)
+      return this.i18n('incompatibleSoftwareRemoveButton');
+    if (actionType === settings.ActionTypes.MORE_INFO)
+      return this.i18n('learnMore');
+    if (actionType === settings.ActionTypes.UPGRADE)
+      return this.i18n('incompatibleSoftwareUpdateButton');
+    assertNotReached();
+  },
+});
diff --git a/chrome/browser/resources/settings/incompatible_software_page/incompatible_software_page.html b/chrome/browser/resources/settings/incompatible_software_page/incompatible_software_page.html
new file mode 100644
index 0000000..b1d4011d
--- /dev/null
+++ b/chrome/browser/resources/settings/incompatible_software_page/incompatible_software_page.html
@@ -0,0 +1,44 @@
+<link rel="import" href="chrome://resources/html/polymer.html">
+
+<link rel="import" href="chrome://resources/cr_elements/cr_expand_button/cr_expand_button.html">
+<link rel="import" href="chrome://resources/html/i18n_behavior.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/iron-icon/iron-icon.html">
+<link rel="import" href="../settings_shared_css.html">
+<link rel="import" href="incompatible_software_item.html">
+<link rel="import" href="incompatible_software_browser_proxy.html">
+
+<dom-module id="settings-incompatible-software-page">
+  <template>
+    <style include="settings-shared"></style>
+    <div class="settings-box first two-line">
+      <iron-icon icon="settings:security"></iron-icon>
+      <div class="middle no-min-width">
+        <div hidden$="[[!hasAdminRights_]]">
+          $i18n{incompatibleSoftwareSubpageSubtitle} $i18nRaw{incompatibleSoftwareSubpageLearnHow}
+        </div>
+        <div hidden$="[[hasAdminRights_]]">
+          $i18n{incompatibleSoftwareSubpageSubtitleNoAdminRights}
+        </div>
+      </div>
+    </div>
+    <div class="settings-box continuation">
+      <div class="secondary">$i18n{incompatibleSoftwareListTitle}</div>
+    </div>
+    <div id="incompatible-software-list" class="list-frame vertical-list">
+      <template is="dom-repeat" items="[[softwareList_]]" as="software">
+        <incompatible-software-item
+            hidden$="[[!hasAdminRights_]]"
+            class="incompatible-software"
+            software-name="[[software.name]]"
+            action-type="[[software.type]]"
+            action-url="[[software.url]]">
+        </incompatible-software-item>
+        <div hidden$="[[hasAdminRights_]]"
+            class="list-item incompatible-software">
+          [[software.name]]
+        </div>
+      </template>
+    </div>
+  </template>
+  <script src="incompatible_software_page.js"></script>
+</dom-module>
diff --git a/chrome/browser/resources/settings/incompatible_software_page/incompatible_software_page.js b/chrome/browser/resources/settings/incompatible_software_page/incompatible_software_page.js
new file mode 100644
index 0000000..cdc25a2
--- /dev/null
+++ b/chrome/browser/resources/settings/incompatible_software_page/incompatible_software_page.js
@@ -0,0 +1,51 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+/**
+ * @fileoverview
+ * 'settings-incompatible-software-page' is the settings subpage containing
+ * the list of incompatible software.
+ *
+ * Example:
+ *
+ *    <iron-animated-pages>
+ *      <settings-incompatible-software-page">
+ *      </settings-incompatible-software-page>
+ *      ... other pages ...
+ *    </iron-animated-pages>
+ */
+
+Polymer({
+  is: 'settings-incompatible-software-page',
+
+  behaviors: [I18nBehavior],
+
+  properties: {
+    /**
+     * Indicates if the current user has administrator rights.
+     * @private
+     */
+    hasAdminRights_: {
+      type: Boolean,
+      value: function() {
+        return loadTimeData.getBoolean('hasAdminRights');
+      },
+    },
+
+    /**
+     * The list of all the incompatible software.
+     * @private {Array<settings.IncompatibleSoftware>}
+     */
+    softwareList_: Array,
+  },
+
+  /** @override */
+  ready: function() {
+    settings.IncompatibleSoftwareBrowserProxyImpl.getInstance()
+        .requestIncompatibleSoftwareList()
+        .then(list => {
+          this.softwareList_ = list;
+        });
+  },
+});
diff --git a/chrome/browser/resources/settings/passwords_and_forms_page/passwords_export_dialog.html b/chrome/browser/resources/settings/passwords_and_forms_page/passwords_export_dialog.html
index b027e77..f8a4a4b9 100644
--- a/chrome/browser/resources/settings/passwords_and_forms_page/passwords_export_dialog.html
+++ b/chrome/browser/resources/settings/passwords_and_forms_page/passwords_export_dialog.html
@@ -25,7 +25,7 @@
       </div>
       <div slot="button-container">
         <paper-button class="secondary-button header-aligned-button"
-            on-click="onCancelButtonTap_">
+            on-click="onCancelButtonTap_" id="cancelButton">
           $i18n{cancel}
         </paper-button>
         <paper-button class="action-button header-aligned-button"
@@ -59,11 +59,11 @@
       </div>
       <div slot="button-container">
         <paper-button class="secondary-button header-aligned-button"
-            on-click="onCancelButtonTap_">
+            on-click="onCancelButtonTap_" id="cancelErrorButton">
           $i18n{cancel}
         </paper-button>
         <paper-button class="action-button header-aligned-button"
-            on-click="onExportTap_">
+            on-click="onExportTap_" id="tryAgainButton">
           $i18n{exportPasswordsTryAgain}
         </paper-button>
       </div>
diff --git a/chrome/browser/resources/settings/reset_page/reset_page.html b/chrome/browser/resources/settings/reset_page/reset_page.html
index 3644c124..a01ac39 100644
--- a/chrome/browser/resources/settings/reset_page/reset_page.html
+++ b/chrome/browser/resources/settings/reset_page/reset_page.html
@@ -17,6 +17,7 @@
 
 <if expr="_google_chrome and is_win">
 <link rel="import" href="../chrome_cleanup_page/chrome_cleanup_page.html">
+<link rel="import" href="../incompatible_software_page/incompatible_software_page.html">
 </if>
 
 <dom-module id="settings-reset-page">
@@ -64,18 +65,26 @@
         <template is="dom-if" if="[[userInitiatedCleanupsEnabled_]]" restamp>
           <div class="settings-box two-line" id="chromeCleanupSubpageTrigger"
               on-click="onChromeCleanupTap_" actionable>
-            <div class="start">
-              $i18n{resetCleanupComputerTrigger}
-              <div class="secondary" id="chromeCleanupSecondary">
-                $i18n{resetCleanupComputerTriggerDescription}
-              </div>
-            </div>
+            <div class="start">$i18n{resetCleanupComputerTrigger}</div>
             <button id="chromeCleanupArrow" is="paper-icon-button-light"
                 class="subpage-arrow"
                 aria-label="$i18n{resetCleanupComputerTrigger}"
                 aria-describedby="chromeCleanupSecondary"></button>
           </div>
         </template>
+        <template is="dom-if" if="[[showIncompatibleSoftware_]]" restamp>
+          <div class="settings-box"
+              id="incompatibleSoftwareSubpageTrigger"
+              on-click="onIncompatibleSoftwareTap_" actionable>
+            <div class="start">
+              $i18n{incompatibleSoftwareResetCardTitle}
+            </div>
+            <button is="paper-icon-button-light"
+                class="subpage-arrow"
+                aria-label="$i18n{incompatibleSoftwareResetCardTitle}"
+                aria-describedby="incompatibleSoftwareSecondary"></button>
+          </div>
+        </template>
 </if>
       </neon-animatable>
 <if expr="_google_chrome and is_win">
@@ -89,6 +98,16 @@
           </settings-subpage>
         </template>
       </template>
+      <template is="dom-if" if="[[showIncompatibleSoftware_]]">
+        <template is="dom-if" route-path="/incompatibleSoftware">
+          <settings-subpage id="incompatibleSoftwareSubpage"
+              associated-control="[[$$('#incompatibleSoftwareSubpageTrigger')]]"
+              page-title="$i18n{incompatibleSoftwareResetCardTitle}">
+            <settings-incompatible-software-page>
+            </settings-incompatible-software-page>
+          </settings-subpage>
+        </template>
+      </template>
 </if>
     </settings-animated-pages>
   </template>
diff --git a/chrome/browser/resources/settings/reset_page/reset_page.js b/chrome/browser/resources/settings/reset_page/reset_page.js
index fb5c222..93e2762 100644
--- a/chrome/browser/resources/settings/reset_page/reset_page.js
+++ b/chrome/browser/resources/settings/reset_page/reset_page.js
@@ -40,6 +40,14 @@
         return loadTimeData.getBoolean('userInitiatedCleanupsEnabled');
       },
     },
+
+    /** @private */
+    showIncompatibleSoftware_: {
+      type: Boolean,
+      value: function() {
+        return loadTimeData.getBoolean('showIncompatibleSoftware');
+      },
+    },
     // </if>
   },
 
@@ -87,9 +95,15 @@
   // </if>
 
   // <if expr="_google_chrome and is_win">
+  /** @private */
   onChromeCleanupTap_: function() {
     settings.navigateTo(settings.routes.CHROME_CLEANUP);
   },
+
+  /** @private */
+  onIncompatibleSoftwareTap_: function() {
+    settings.navigateTo(settings.routes.INCOMPATIBLE_SOFTWARE);
+  },
   // </if>
 
 });
diff --git a/chrome/browser/resources/settings/route.js b/chrome/browser/resources/settings/route.js
index 916397d..279ca6c 100644
--- a/chrome/browser/resources/settings/route.js
+++ b/chrome/browser/resources/settings/route.js
@@ -36,6 +36,7 @@
  *   FONTS: (undefined|!settings.Route),
  *   GOOGLE_ASSISTANT: (undefined|!settings.Route),
  *   IMPORT_DATA: (undefined|!settings.Route),
+ *   INCOMPATIBLE_SOFTWARE: (undefined|!settings.Route),
  *   INPUT_METHODS: (undefined|!settings.Route),
  *   INTERNET: (undefined|!settings.Route),
  *   INTERNET_NETWORKS: (undefined|!settings.Route),
@@ -73,8 +74,8 @@
  *   SITE_SETTINGS_HANDLERS: (undefined|!settings.Route),
  *   SITE_SETTINGS_IMAGES: (undefined|!settings.Route),
  *   SITE_SETTINGS_JAVASCRIPT: (undefined|!settings.Route),
- *   SITE_SETTINGS_SOUND: (undefined|!settings.Route),
  *   SITE_SETTINGS_SENSORS: (undefined|!settings.Route),
+ *   SITE_SETTINGS_SOUND: (undefined|!settings.Route),
  *   SITE_SETTINGS_LOCATION: (undefined|!settings.Route),
  *   SITE_SETTINGS_MICROPHONE: (undefined|!settings.Route),
  *   SITE_SETTINGS_MIDI_DEVICES: (undefined|!settings.Route),
@@ -390,6 +391,10 @@
         if (loadTimeData.getBoolean('userInitiatedCleanupsEnabled')) {
           r.CHROME_CLEANUP = r.RESET.createChild('/cleanup');
         }
+        if (loadTimeData.getBoolean('showIncompatibleSoftware')) {
+          r.INCOMPATIBLE_SOFTWARE =
+              r.RESET.createChild('/incompatibleSoftware');
+        }
         // </if>
       }
     }
diff --git a/chrome/browser/resources/settings/settings_resources.grd b/chrome/browser/resources/settings/settings_resources.grd
index 88b4a07..0335c70 100644
--- a/chrome/browser/resources/settings/settings_resources.grd
+++ b/chrome/browser/resources/settings/settings_resources.grd
@@ -325,6 +325,26 @@
                    file="chrome_cleanup_page/items_to_remove_list.js"
                    type="chrome_html"/>
       </if>
+      <if expr="is_win and _google_chrome">
+        <structure name="IDR_SETTINGS_INCOMPATIBLE_SOFTWARE_PAGE_HTML"
+                   file="incompatible_software_page/incompatible_software_page.html"
+                   type="chrome_html" />
+        <structure name="IDR_SETTINGS_INCOMPATIBLE_SOFTWARE_PAGE_JS"
+                   file="incompatible_software_page/incompatible_software_page.js"
+                   type="chrome_html" />
+        <structure name="IDR_SETTINGS_INCOMPATIBLE_SOFTWARE_BROWSER_PROXY_HTML"
+                   file="incompatible_software_page/incompatible_software_browser_proxy.html"
+                   type="chrome_html" />
+        <structure name="IDR_SETTINGS_INCOMPATIBLE_SOFTWARE_BROWSER_PROXY_JS"
+                   file="incompatible_software_page/incompatible_software_browser_proxy.js"
+                   type="chrome_html" />
+        <structure name="IDR_SETTINGS_INCOMPATIBLE_SOFTWARE_INCOMPATIBLE_SOFTWARE_ITEM_HTML"
+                   file="incompatible_software_page/incompatible_software_item.html"
+                   type="chrome_html" />
+        <structure name="IDR_SETTINGS_INCOMPATIBLE_SOFTWARE_INCOMPATIBLE_SOFTWARE_ITEM_JS"
+                   file="incompatible_software_page/incompatible_software_item.js"
+                   type="chrome_html" />
+      </if>
       <structure name="IDR_SETTINGS_CLEAR_BROWSING_DATA_BROWSER_PROXY_HTML"
                  file="clear_browsing_data_dialog/clear_browsing_data_browser_proxy.html"
                  type="chrome_html" />
diff --git a/chrome/browser/signin/signin_ui_util.cc b/chrome/browser/signin/signin_ui_util.cc
index 269b2372..e4f8d0ba 100644
--- a/chrome/browser/signin/signin_ui_util.cc
+++ b/chrome/browser/signin/signin_ui_util.cc
@@ -5,6 +5,7 @@
 #include "chrome/browser/signin/signin_ui_util.h"
 
 #include "base/metrics/histogram_macros.h"
+#include "base/strings/string_util.h"
 #include "base/strings/sys_string_conversions.h"
 #include "base/strings/utf_string_conversions.h"
 #include "build/build_config.h"
@@ -30,6 +31,7 @@
 #include "components/signin/core/browser/profile_oauth2_token_service.h"
 #include "components/signin/core/browser/signin_manager.h"
 #include "components/user_manager/user_manager.h"
+#include "third_party/re2/src/re2/re2.h"
 #include "ui/gfx/font_list.h"
 #include "ui/gfx/text_elider.h"
 
@@ -182,4 +184,31 @@
 
 #endif  // BUILDFLAG(ENABLE_DICE_SUPPORT)
 
+std::string GetAllowedDomain(std::string signin_pattern) {
+  std::vector<std::string> splitted_signin_pattern = base::SplitString(
+      signin_pattern, "@", base::KEEP_WHITESPACE, base::SPLIT_WANT_ALL);
+
+  // There are more than one '@'s in the pattern.
+  if (splitted_signin_pattern.size() != 2)
+    return std::string();
+
+  std::string domain = splitted_signin_pattern[1];
+
+  // Trims tailing '$' if existed.
+  if (domain.size() > 0 && domain.back() == '$')
+    domain.pop_back();
+
+  // Trims tailing '\E' if existed.
+  if (domain.size() > 1 &&
+      base::EndsWith(domain, "\\E", base::CompareCase::SENSITIVE))
+    domain.erase(domain.size() - 2);
+
+  // Check if there is any special character in the domain. Note that
+  // jsmith@[192.168.2.1] is not supported.
+  if (!re2::RE2::FullMatch(domain, "[a-zA-Z0-9\\-.]+"))
+    return std::string();
+
+  return domain;
+}
+
 }  // namespace signin_ui_util
diff --git a/chrome/browser/signin/signin_ui_util.h b/chrome/browser/signin/signin_ui_util.h
index 8441b74..d90127d 100644
--- a/chrome/browser/signin/signin_ui_util.h
+++ b/chrome/browser/signin/signin_ui_util.h
@@ -59,6 +59,12 @@
 
 #endif
 
+// Returns the domain of the policy value of RestrictSigninToPattern. Returns
+// an empty string if the policy is not set or can not be parsed. The parser
+// only supports the policy value that matches [^@]+@[a-zA-Z0-9\-.]+(\\E)?\$?$.
+// Also, the parser does not validate the policy value.
+std::string GetAllowedDomain(std::string signin_pattern);
+
 }  // namespace signin_ui_util
 
 #endif  // CHROME_BROWSER_SIGNIN_SIGNIN_UI_UTIL_H_
diff --git a/chrome/browser/signin/signin_ui_util_unittest.cc b/chrome/browser/signin/signin_ui_util_unittest.cc
new file mode 100644
index 0000000..2f14bd0
--- /dev/null
+++ b/chrome/browser/signin/signin_ui_util_unittest.cc
@@ -0,0 +1,36 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/signin/signin_ui_util.h"
+
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace signin_ui_util {
+
+class SigninUIUtilTest : public ::testing::Test {};
+
+TEST_F(SigninUIUtilTest, TestGetAllowedDomainWithInvalidPattern) {
+  EXPECT_EQ(std::string(), GetAllowedDomain("email"));
+  EXPECT_EQ(std::string(), GetAllowedDomain("email@a@b"));
+  EXPECT_EQ(std::string(), GetAllowedDomain("email@a[b"));
+  EXPECT_EQ(std::string(), GetAllowedDomain("@$"));
+  EXPECT_EQ(std::string(), GetAllowedDomain("@\\E$"));
+  EXPECT_EQ(std::string(), GetAllowedDomain("@\\E$a"));
+  EXPECT_EQ(std::string(), GetAllowedDomain("email@"));
+  EXPECT_EQ(std::string(), GetAllowedDomain("@"));
+  EXPECT_EQ(std::string(), GetAllowedDomain("example@a.com|example@b.com"));
+  EXPECT_EQ(std::string(), GetAllowedDomain(""));
+}
+
+TEST_F(SigninUIUtilTest, TestGetAllowedDomainWithValidPattern) {
+  EXPECT_EQ("example.com", GetAllowedDomain("email@example.com"));
+  EXPECT_EQ("example.com", GetAllowedDomain("email@example.com\\E"));
+  EXPECT_EQ("example.com", GetAllowedDomain("email@example.com$"));
+  EXPECT_EQ("example.com", GetAllowedDomain("email@example.com\\E$"));
+  EXPECT_EQ("example.com", GetAllowedDomain("*@example.com\\E$"));
+  EXPECT_EQ("example.com", GetAllowedDomain(".*@example.com\\E$"));
+  EXPECT_EQ("example-1.com", GetAllowedDomain("email@example-1.com"));
+}
+
+}  // namespace signin_ui_util
diff --git a/chrome/browser/speech/chrome_speech_recognition_manager_delegate.cc b/chrome/browser/speech/chrome_speech_recognition_manager_delegate.cc
index 4ec9f2c..eb2541a2 100644
--- a/chrome/browser/speech/chrome_speech_recognition_manager_delegate.cc
+++ b/chrome/browser/speech/chrome_speech_recognition_manager_delegate.cc
@@ -32,7 +32,6 @@
 #include "content/public/browser/speech_recognition_session_context.h"
 #include "content/public/browser/web_contents.h"
 #include "content/public/browser/web_contents_observer.h"
-#include "content/public/common/child_process_host.h"
 #include "content/public/common/speech_recognition_error.h"
 #include "content/public/common/speech_recognition_result.h"
 #include "extensions/features/features.h"
@@ -276,13 +275,11 @@
 
   // Make sure that initiators (extensions/web pages) properly set the
   // |render_process_id| field, which is needed later to retrieve the profile.
-  DCHECK_NE(context.render_process_id,
-            content::ChildProcessHost::kInvalidUniqueID);
+  DCHECK_NE(context.render_process_id, 0);
 
   int render_process_id = context.render_process_id;
   int render_view_id = context.render_view_id;
-  if (context.embedder_render_process_id !=
-      content::ChildProcessHost::kInvalidUniqueID) {
+  if (context.embedder_render_process_id) {
     // If this is a request originated from a guest, we need to re-route the
     // permission check through the embedder (app).
     render_process_id = context.embedder_render_process_id;
diff --git a/chrome/browser/ssl/ssl_error_assistant.cc b/chrome/browser/ssl/ssl_error_assistant.cc
index d6725d0b..2ff236a 100644
--- a/chrome/browser/ssl/ssl_error_assistant.cc
+++ b/chrome/browser/ssl/ssl_error_assistant.cc
@@ -36,6 +36,8 @@
     case chrome_browser_ssl::DynamicInterstitial::
         ERR_CERTIFICATE_TRANSPARENCY_REQUIRED:
       return net::CERT_STATUS_CERTIFICATE_TRANSPARENCY_REQUIRED;
+    case chrome_browser_ssl::DynamicInterstitial::ERR_CERT_SYMANTEC_LEGACY:
+      return net::CERT_STATUS_SYMANTEC_LEGACY;
     case chrome_browser_ssl::DynamicInterstitial::ERR_CERT_REVOKED:
       return net::CERT_STATUS_REVOKED;
     case chrome_browser_ssl::DynamicInterstitial::ERR_CERT_INVALID:
diff --git a/chrome/browser/ssl/ssl_error_assistant.proto b/chrome/browser/ssl/ssl_error_assistant.proto
index 17fab459..252745af 100644
--- a/chrome/browser/ssl/ssl_error_assistant.proto
+++ b/chrome/browser/ssl/ssl_error_assistant.proto
@@ -75,6 +75,7 @@
     ERR_CERT_NO_REVOCATION_MECHANISM = 12;
     ERR_CERT_NON_UNIQUE_NAME = 13;
     ERR_CERTIFICATE_TRANSPARENCY_REQUIRED = 14;
+    ERR_CERT_SYMANTEC_LEGACY = 15;
   };
 
   // Sha256 hashes of the certificate's public key. If this field is not
diff --git a/chrome/browser/ssl/ssl_error_handler.cc b/chrome/browser/ssl/ssl_error_handler.cc
index cc2a475..dcd971d9 100644
--- a/chrome/browser/ssl/ssl_error_handler.cc
+++ b/chrome/browser/ssl/ssl_error_handler.cc
@@ -564,6 +564,7 @@
     case net::ERR_CERT_NAME_CONSTRAINT_VIOLATION:
     case net::ERR_CERT_VALIDITY_TOO_LONG:
     case net::ERR_CERTIFICATE_TRANSPARENCY_REQUIRED:
+    case net::ERR_CERT_SYMANTEC_LEGACY:
       return false;
     case net::ERR_CERT_CONTAINS_ERRORS:
     case net::ERR_CERT_REVOKED:
diff --git a/chrome/browser/storage/storage_info_fetcher.h b/chrome/browser/storage/storage_info_fetcher.h
index 89fdce6a..98d4c94a 100644
--- a/chrome/browser/storage/storage_info_fetcher.h
+++ b/chrome/browser/storage/storage_info_fetcher.h
@@ -7,7 +7,7 @@
 
 #include "base/memory/ref_counted.h"
 #include "storage/browser/quota/quota_callbacks.h"
-#include "third_party/WebKit/common/quota/quota_types.mojom.h"
+#include "third_party/WebKit/public/mojom/quota/quota_types.mojom.h"
 
 namespace storage {
 class QuotaManager;
diff --git a/chrome/browser/subresource_filter/chrome_subresource_filter_client.cc b/chrome/browser/subresource_filter/chrome_subresource_filter_client.cc
index bc9d041..faae8d1 100644
--- a/chrome/browser/subresource_filter/chrome_subresource_filter_client.cc
+++ b/chrome/browser/subresource_filter/chrome_subresource_filter_client.cc
@@ -107,13 +107,6 @@
 }
 
 void ChromeSubresourceFilterClient::ShowNotification() {
-  // Do not show the UI if we're forcing activation due to a devtools toggle.
-  // This complicates the meaning of our persistent storage (e.g. our metadata
-  // that assumes showing UI implies site is blacklisted).
-  if (activated_via_devtools_) {
-    LogAction(kActionForcedActivationNoUIResourceBlocked);
-    return;
-  }
   if (did_show_ui_for_navigation_)
     return;
 
diff --git a/chrome/browser/subresource_filter/chrome_subresource_filter_client.h b/chrome/browser/subresource_filter/chrome_subresource_filter_client.h
index 2e72ee8..5d7c1170 100644
--- a/chrome/browser/subresource_filter/chrome_subresource_filter_client.h
+++ b/chrome/browser/subresource_filter/chrome_subresource_filter_client.h
@@ -83,6 +83,7 @@
 
   // Logged when we are forcing activation (e.g. via devtools) and resources
   // have been blocked. Note that in these cases the UI is suppressed.
+  // DEPRECATED: See SubresourceFilter.PageLoad.ForcedActivation.DisallowedLoad.
   kActionForcedActivationNoUIResourceBlocked,
 
   // Logged when a popup is blocked due to subresource filter logic.
diff --git a/chrome/browser/subresource_filter/subresource_filter_unittest.cc b/chrome/browser/subresource_filter/subresource_filter_unittest.cc
index bd485876..3d619357b 100644
--- a/chrome/browser/subresource_filter/subresource_filter_unittest.cc
+++ b/chrome/browser/subresource_filter/subresource_filter_unittest.cc
@@ -208,7 +208,7 @@
   EXPECT_FALSE(GetClient()->did_show_ui_for_navigation());
   EXPECT_EQ(nullptr, GetSettingsManager()->GetSiteMetadata(url));
   histogram_tester.ExpectBucketCount(
-      actions_histogram, kActionForcedActivationNoUIResourceBlocked, 1);
+      "SubresourceFilter.PageLoad.ForcedActivation.DisallowedLoad", true, 1);
 
   // Simulate closing devtools.
   GetClient()->ToggleForceActivationInCurrentWebContents(false);
@@ -220,6 +220,21 @@
                                      kActionForcedActivationEnabled, 1);
 }
 
+TEST_F(SubresourceFilterTest, ToggleOffForceActivation_AfterCommit) {
+  base::HistogramTester histogram_tester;
+  GetClient()->ToggleForceActivationInCurrentWebContents(true);
+  const GURL url("https://example.test/");
+  SimulateNavigateAndCommit(url, main_rfh());
+  GetClient()->ToggleForceActivationInCurrentWebContents(false);
+
+  // Resource should be disallowed, since navigation commit had activation.
+  EXPECT_FALSE(CreateAndNavigateDisallowedSubframe(main_rfh()));
+
+  // UI should not have shown though.
+  histogram_tester.ExpectBucketCount("SubresourceFilter.Actions",
+                                     kActionUIShown, 0);
+}
+
 TEST_F(SubresourceFilterTest, UIShown_LogsRappor) {
   rappor::TestRapporServiceImpl rappor_tester;
   TestingBrowserProcess::GetGlobal()->SetRapporServiceImpl(&rappor_tester);
diff --git a/chrome/browser/sync_file_system/local/canned_syncable_file_system.h b/chrome/browser/sync_file_system/local/canned_syncable_file_system.h
index 1bd3ba2..b2d788d 100644
--- a/chrome/browser/sync_file_system/local/canned_syncable_file_system.h
+++ b/chrome/browser/sync_file_system/local/canned_syncable_file_system.h
@@ -24,7 +24,7 @@
 #include "storage/browser/quota/quota_callbacks.h"
 #include "storage/common/fileapi/file_system_types.h"
 #include "storage/common/fileapi/file_system_util.h"
-#include "third_party/WebKit/common/quota/quota_types.mojom.h"
+#include "third_party/WebKit/public/mojom/quota/quota_types.mojom.h"
 
 namespace base {
 class SingleThreadTaskRunner;
diff --git a/chrome/browser/thumbnails/thumbnail_tab_helper.cc b/chrome/browser/thumbnails/thumbnail_tab_helper.cc
index 243fa32..a574b3a 100644
--- a/chrome/browser/thumbnails/thumbnail_tab_helper.cc
+++ b/chrome/browser/thumbnails/thumbnail_tab_helper.cc
@@ -302,16 +302,14 @@
       &thumbnailing_context_->requested_copy_size);
   copy_from_surface_start_time_ = base::TimeTicks::Now();
   waiting_for_capture_ = true;
-  view->CopyFromSurface(copy_rect, thumbnailing_context_->requested_copy_size,
-                        base::Bind(&ThumbnailTabHelper::ProcessCapturedBitmap,
-                                   weak_factory_.GetWeakPtr(), trigger),
-                        kN32_SkColorType);
+  view->CopyFromSurface(
+      copy_rect, thumbnailing_context_->requested_copy_size,
+      base::BindOnce(&ThumbnailTabHelper::ProcessCapturedBitmap,
+                     weak_factory_.GetWeakPtr(), trigger));
 }
 
-void ThumbnailTabHelper::ProcessCapturedBitmap(
-    TriggerReason trigger,
-    const SkBitmap& bitmap,
-    content::ReadbackResponse response) {
+void ThumbnailTabHelper::ProcessCapturedBitmap(TriggerReason trigger,
+                                               const SkBitmap& bitmap) {
   // If |waiting_for_capture_| is false, that means something happened in the
   // meantime which makes the captured image unsafe to use.
   bool was_canceled = !waiting_for_capture_;
@@ -321,7 +319,7 @@
       base::TimeTicks::Now() - copy_from_surface_start_time_;
   UMA_HISTOGRAM_TIMES("Thumbnails.CopyFromSurfaceTime", copy_from_surface_time);
 
-  if (response == content::READBACK_SUCCESS && !was_canceled) {
+  if (!bitmap.drawsNothing() && !was_canceled) {
     // On success, we must be on the UI thread.
     DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
     // From here on, nothing can fail, so log success.
diff --git a/chrome/browser/thumbnails/thumbnail_tab_helper.h b/chrome/browser/thumbnails/thumbnail_tab_helper.h
index 061d95a3a..4e2f4f31 100644
--- a/chrome/browser/thumbnails/thumbnail_tab_helper.h
+++ b/chrome/browser/thumbnails/thumbnail_tab_helper.h
@@ -11,7 +11,6 @@
 #include "chrome/browser/thumbnails/thumbnailing_context.h"
 #include "content/public/browser/notification_observer.h"
 #include "content/public/browser/notification_registrar.h"
-#include "content/public/browser/readback_types.h"
 #include "content/public/browser/web_contents_observer.h"
 #include "content/public/browser/web_contents_user_data.h"
 #include "ui/base/page_transition_types.h"
@@ -87,9 +86,7 @@
   void StartThumbnailCaptureIfNecessary(TriggerReason trigger);
 
   // Creates a thumbnail from the web contents bitmap.
-  void ProcessCapturedBitmap(TriggerReason trigger,
-                             const SkBitmap& bitmap,
-                             content::ReadbackResponse response);
+  void ProcessCapturedBitmap(TriggerReason trigger, const SkBitmap& bitmap);
 
   // Passes the thumbnail to the thumbnail service.
   void StoreThumbnail(const SkBitmap& thumbnail);
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
index 07181a5..4beebd1 100644
--- a/chrome/browser/ui/BUILD.gn
+++ b/chrome/browser/ui/BUILD.gn
@@ -2194,7 +2194,6 @@
       "views/close_bubble_on_tab_activation_helper.h",
       "views/external_protocol_dialog.cc",
       "views/external_protocol_dialog.h",
-      "views/profiles/avatar_button_style.h",
       "views/profiles/badged_profile_photo.cc",
       "views/profiles/badged_profile_photo.h",
       "views/profiles/dice_accounts_menu.cc",
@@ -2247,14 +2246,11 @@
 
     if (!is_mac || mac_views_browser) {
       sources += [
-        "views/frame/avatar_button_manager.cc",
-        "views/frame/avatar_button_manager.h",
         "views/profiles/avatar_button.cc",
         "views/profiles/avatar_button.h",
         "views/profiles/user_manager_view.cc",
         "views/profiles/user_manager_view.h",
       ]
-      deps += [ "//ui/views:features" ]
     }
 
     if (enable_dice_support) {
@@ -2620,6 +2616,8 @@
       sources += [
         "webui/help/version_updater_win.cc",
         "webui/help/version_updater_win.h",
+        "webui/settings/incompatible_software_handler_win.cc",
+        "webui/settings/incompatible_software_handler_win.h",
       ]
       deps += [ "//google_update" ]
     } else {
@@ -3044,6 +3042,8 @@
         "views/find_bar_host.h",
         "views/find_bar_view.cc",
         "views/find_bar_view.h",
+        "views/frame/avatar_button_manager.cc",
+        "views/frame/avatar_button_manager.h",
         "views/frame/browser_frame.cc",
         "views/frame/browser_frame.h",
         "views/frame/browser_non_client_frame_view.cc",
@@ -3139,6 +3139,7 @@
         "views/passwords/manage_passwords_icon_views.h",
         "views/permission_bubble/chooser_bubble_ui_views.cc",
         "views/permission_bubble/permission_prompt_impl_views.cc",
+        "views/profiles/avatar_button_style.h",
         "views/profiles/profile_indicator_icon.cc",
         "views/profiles/profile_indicator_icon.h",
         "views/proximity_auth/proximity_auth_error_bubble_view.cc",
@@ -3216,6 +3217,8 @@
         "views_mode_controller.h",
       ]
 
+      deps += [ "//ui/views:features" ]
+
       if (is_mac) {
         # This Mac-specific file is being removed in this case because it's only
         # needed when Views isn't used on Mac.
@@ -3314,7 +3317,15 @@
       sources += [
         "views/relaunch_notification/relaunch_notification_controller.cc",
         "views/relaunch_notification/relaunch_notification_controller.h",
+        "views/relaunch_notification/relaunch_recommended_bubble_view.cc",
+        "views/relaunch_notification/relaunch_recommended_bubble_view.h",
       ]
+      if (is_mac) {
+        sources += [
+          "views/relaunch_notification/get_app_menu_anchor_point.h",
+          "views/relaunch_notification/get_app_menu_anchor_point.mm",
+        ]
+      }
     }
   }
 
@@ -3522,6 +3533,10 @@
         "app_list/arc/arc_pai_starter.h",
         "app_list/arc/arc_playstore_app_context_menu.cc",
         "app_list/arc/arc_playstore_app_context_menu.h",
+        "app_list/arc/arc_usb_host_permission_manager.cc",
+        "app_list/arc/arc_usb_host_permission_manager.h",
+        "app_list/arc/arc_usb_host_permission_manager_factory.cc",
+        "app_list/arc/arc_usb_host_permission_manager_factory.h",
         "app_list/arc/arc_vpn_provider_manager.cc",
         "app_list/arc/arc_vpn_provider_manager.h",
         "app_list/arc/arc_vpn_provider_manager_factory.cc",
diff --git a/chrome/browser/ui/app_list/arc/arc_usb_host_permission_manager.cc b/chrome/browser/ui/app_list/arc/arc_usb_host_permission_manager.cc
new file mode 100644
index 0000000..2d9b6ea
--- /dev/null
+++ b/chrome/browser/ui/app_list/arc/arc_usb_host_permission_manager.cc
@@ -0,0 +1,360 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/ui/app_list/arc/arc_usb_host_permission_manager.h"
+
+#include <utility>
+
+#include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/ui/app_list/arc/arc_usb_host_permission_manager_factory.h"
+#include "components/arc/usb/usb_host_bridge.h"
+#include "extensions/browser/api/device_permissions_manager.h"
+
+namespace arc {
+
+namespace {
+
+std::string GetAppIdFromPackageName(const std::string& package_name,
+                                    const ArcAppListPrefs* arc_app_list_prefs) {
+  DCHECK(arc_app_list_prefs);
+
+  // For app icon and app name in UI dialog, find a matching launchable activity
+  // for the requesting package. If there are multiple launchable activities
+  // from the package, use the app icon from first found matching launchable
+  // activity in the permission dialog.
+  std::unordered_set<std::string> app_ids =
+      arc_app_list_prefs->GetAppsForPackage(package_name);
+  return app_ids.empty() ? std::string() : *app_ids.begin();
+}
+
+}  // namespace
+
+// UsbPermissionRequest
+ArcUsbHostPermissionManager::UsbPermissionRequest::UsbPermissionRequest(
+    const std::string& package_name,
+    bool is_scan_request,
+    base::Optional<UsbDeviceEntry> usb_device_entry,
+    base::Optional<ArcUsbHostUiDelegate::RequestPermissionCallback> callback)
+    : package_name_(package_name),
+      is_scan_request_(is_scan_request),
+      usb_device_entry_(std::move(usb_device_entry)),
+      callback_(std::move(callback)) {}
+
+ArcUsbHostPermissionManager::UsbPermissionRequest::UsbPermissionRequest(
+    ArcUsbHostPermissionManager::UsbPermissionRequest&& other) = default;
+
+ArcUsbHostPermissionManager::UsbPermissionRequest&
+ArcUsbHostPermissionManager::UsbPermissionRequest::operator=(
+    ArcUsbHostPermissionManager::UsbPermissionRequest&& other) = default;
+
+ArcUsbHostPermissionManager::UsbPermissionRequest::~UsbPermissionRequest() =
+    default;
+
+void ArcUsbHostPermissionManager::UsbPermissionRequest::Resolve(bool allowed) {
+  if (!callback_)
+    return;
+  base::ResetAndReturn(&*callback_).Run(allowed);
+}
+
+// UsbDeviceEntry
+ArcUsbHostPermissionManager::UsbDeviceEntry::UsbDeviceEntry(
+    const std::string& guid,
+    const base::string16& device_name,
+    const base::string16& serial_number,
+    uint16_t vendor_id,
+    uint16_t product_id)
+    : guid(guid),
+      device_name(device_name),
+      serial_number(serial_number),
+      vendor_id(vendor_id),
+      product_id(product_id) {}
+
+ArcUsbHostPermissionManager::UsbDeviceEntry::UsbDeviceEntry(
+    const ArcUsbHostPermissionManager::UsbDeviceEntry& other) = default;
+
+bool ArcUsbHostPermissionManager::UsbDeviceEntry::Matches(
+    const UsbDeviceEntry& other) const {
+  if (IsPersistent() && other.IsPersistent()) {
+    return serial_number == other.serial_number &&
+           vendor_id == other.vendor_id && product_id == other.product_id;
+  } else {
+    return guid == other.guid;
+  }
+}
+
+// static
+ArcUsbHostPermissionManager* ArcUsbHostPermissionManager::GetForBrowserContext(
+    content::BrowserContext* context) {
+  return ArcUsbHostPermissionManagerFactory::GetForBrowserContext(context);
+}
+
+// static
+ArcUsbHostPermissionManager* ArcUsbHostPermissionManager::Create(
+    content::BrowserContext* context) {
+  ArcAppListPrefs* arc_app_list_prefs = ArcAppListPrefs::Get(context);
+  // TODO(lgcheng): Change this to DCHECK(arc_app_list_prefs) after clear the
+  // browsertest workflow.
+  if (!arc_app_list_prefs)
+    return nullptr;
+
+  ArcUsbHostBridge* arc_usb_host_bridge =
+      ArcUsbHostBridge::GetForBrowserContext(context);
+  if (!arc_usb_host_bridge)
+    return nullptr;
+
+  return new ArcUsbHostPermissionManager(
+      static_cast<Profile*>(context), arc_app_list_prefs, arc_usb_host_bridge);
+}
+
+ArcUsbHostPermissionManager::ArcUsbHostPermissionManager(
+    Profile* profile,
+    ArcAppListPrefs* arc_app_list_prefs,
+    ArcUsbHostBridge* arc_usb_host_bridge)
+    : profile_(profile),
+      arc_app_list_prefs_(arc_app_list_prefs),
+      weak_ptr_factory_(this) {
+  RestorePermissionFromChromePrefs();
+  arc_app_list_prefs_->AddObserver(this);
+  arc_usb_host_bridge->SetUiDelegate(this);
+}
+
+ArcUsbHostPermissionManager::~ArcUsbHostPermissionManager() {
+  arc_app_list_prefs_->RemoveObserver(this);
+}
+
+void ArcUsbHostPermissionManager::RestorePermissionFromChromePrefs() {
+  // TODO(lgcheng): Restores scan devicelist permissions.
+
+  // TODO(lgcheng): Restores persistent device access permissions.
+}
+
+void ArcUsbHostPermissionManager::RequestUsbScanDeviceListPermission(
+    const std::string& package_name,
+    ArcUsbHostUiDelegate::RequestPermissionCallback callback) {
+  if (HasUsbScanDeviceListPermission(package_name)) {
+    std::move(callback).Run(true);
+    return;
+  }
+
+  // Return ASAP to stop app from ANR. If granted, the permission will apply
+  // when next time app tries to get device list.
+  std::move(callback).Run(false);
+  pending_requests_.emplace_back(
+      ArcUsbHostPermissionManager::UsbPermissionRequest(
+          package_name, true /*is_scan_request*/,
+          base::nullopt /*usb_device_entry*/, base::nullopt /*callback*/));
+  MaybeProcessNextPermissionRequest();
+}
+
+void ArcUsbHostPermissionManager::RequestUsbAccessPermission(
+    const std::string& package_name,
+    const std::string& guid,
+    const base::string16& serial_number,
+    const base::string16& manufacturer_string,
+    const base::string16& product_string,
+    uint16_t vendor_id,
+    uint16_t product_id,
+    ArcUsbHostUiDelegate::RequestPermissionCallback callback) {
+  UsbDeviceEntry usb_device_entry(
+      guid,
+      extensions::DevicePermissionsManager::GetPermissionMessage(
+          vendor_id, product_id, manufacturer_string, product_string,
+          serial_number, true /*always_include_manufacturer*/),
+      serial_number, vendor_id, product_id);
+  if (HasUsbAccessPermission(package_name, usb_device_entry)) {
+    std::move(callback).Run(true);
+    return;
+  }
+  pending_requests_.emplace_back(
+      ArcUsbHostPermissionManager::UsbPermissionRequest(
+          package_name, false /*is_scan_request*/, std::move(usb_device_entry),
+          std::move(callback)));
+  MaybeProcessNextPermissionRequest();
+}
+
+bool ArcUsbHostPermissionManager::HasUsbAccessPermission(
+    const std::string& package_name,
+    const std::string& guid,
+    const base::string16& serial_number,
+    uint16_t vendor_id,
+    uint16_t product_id) {
+  UsbDeviceEntry usb_device_entry(guid, base::string16(), serial_number,
+                                  vendor_id, product_id);
+  return HasUsbAccessPermission(package_name, usb_device_entry);
+}
+
+void ArcUsbHostPermissionManager::DeviceRemoved(const std::string& guid) {
+  // Remove pending requests.
+  pending_requests_.erase(
+      std::remove_if(
+          pending_requests_.begin(), pending_requests_.end(),
+          [guid](const UsbPermissionRequest& usb_permission_request) {
+            return !usb_permission_request.is_scan_request() &&
+                   usb_permission_request.usb_device_entry()->guid == guid;
+          }),
+      pending_requests_.end());
+  // Remove runtime permissions.
+  for (auto iter = usb_access_permission_dict_.begin();
+       iter != usb_access_permission_dict_.end();) {
+    auto& usb_device_entry = iter->second;
+    if (!usb_device_entry.IsPersistent() && usb_device_entry.guid == guid)
+      iter = usb_access_permission_dict_.erase(iter);
+    else
+      ++iter;
+  }
+  if (current_requesting_guid_ == guid)
+    current_requesting_guid_.clear();
+}
+
+void ArcUsbHostPermissionManager::OnPackageRemoved(
+    const std::string& package_name,
+    bool uninstalled) {
+  // Remove pending requests.
+  pending_requests_.erase(
+      std::remove_if(
+          pending_requests_.begin(), pending_requests_.end(),
+          [package_name](const UsbPermissionRequest& usb_permission_request) {
+            return usb_permission_request.package_name() == package_name;
+          }),
+      pending_requests_.end());
+  // Remove runtime permissions.
+  usb_scan_devicelist_permission_packages_.erase(package_name);
+  usb_access_permission_dict_.erase(package_name);
+  if (current_requesting_package_ == package_name)
+    current_requesting_package_.clear();
+}
+
+void ArcUsbHostPermissionManager::MaybeProcessNextPermissionRequest() {
+  if (is_permission_dialog_visible_ || pending_requests_.empty())
+    return;
+
+  is_permission_dialog_visible_ = true;
+
+  auto current_request = std::move(pending_requests_.front());
+  pending_requests_.erase(pending_requests_.begin());
+  current_requesting_package_ = current_request.package_name();
+
+  if (current_request.is_scan_request())
+    current_requesting_guid_.clear();
+  else
+    current_requesting_guid_ = current_request.usb_device_entry()->guid;
+
+  auto app_id =
+      GetAppIdFromPackageName(current_requesting_package_, arc_app_list_prefs_);
+  // App is uninstalled during the process.
+  if (app_id.empty()) {
+    OnUsbPermissionReceived(std::move(current_request), false);
+    return;
+  }
+
+  auto app_name = arc_app_list_prefs_->GetApp(app_id)->name;
+
+  if (current_request.is_scan_request()) {
+    if (HasUsbScanDeviceListPermission(current_requesting_package_)) {
+      OnUsbPermissionReceived(std::move(current_request), true);
+    } else {
+      ShowScanDeviceListPermissionDialog(
+          profile_, app_id,
+          base::BindOnce(&ArcUsbHostPermissionManager::OnUsbPermissionReceived,
+                         weak_ptr_factory_.GetWeakPtr(),
+                         std::move(current_request)));
+    }
+  } else {
+    if (HasUsbAccessPermission(current_requesting_package_,
+                               *current_request.usb_device_entry())) {
+      OnUsbPermissionReceived(std::move(current_request), true);
+    } else {
+      ShowAccessPermissionDialog(
+          profile_, app_id, current_request.usb_device_entry()->device_name,
+          base::BindOnce(&ArcUsbHostPermissionManager::OnUsbPermissionReceived,
+                         weak_ptr_factory_.GetWeakPtr(),
+                         std::move(current_request)));
+    }
+  }
+}
+
+bool ArcUsbHostPermissionManager::HasUsbScanDeviceListPermission(
+    const std::string& package_name) const {
+  return usb_scan_devicelist_permission_packages_.count(package_name);
+}
+
+bool ArcUsbHostPermissionManager::HasUsbAccessPermission(
+    const std::string& package_name,
+    const UsbDeviceEntry& usb_device_entry) {
+  auto range = usb_access_permission_dict_.equal_range(package_name);
+  for (auto iter = range.first; iter != range.second; iter++) {
+    if (iter->second.Matches(usb_device_entry))
+      return true;
+  }
+  return false;
+}
+
+void ArcUsbHostPermissionManager::ClearPermissionRequests() {
+  pending_requests_.clear();
+  current_requesting_package_.clear();
+  current_requesting_guid_.clear();
+}
+
+void ArcUsbHostPermissionManager::OnUsbPermissionReceived(
+    UsbPermissionRequest request,
+    bool allowed) {
+  is_permission_dialog_visible_ = false;
+
+  const std::string& package_name = request.package_name();
+
+  // If the package can is uninstalled while user clicks permisison UI dialog.
+  // Ignore current callback as it's outdated.
+  if (package_name != current_requesting_package_) {
+    MaybeProcessNextPermissionRequest();
+    return;
+  }
+
+  // If the USB device is removed while user clicks permission UI dialog.
+  // Ignore current callback as it's outdated.
+  if (!request.is_scan_request() &&
+      request.usb_device_entry()->guid != current_requesting_guid_) {
+    MaybeProcessNextPermissionRequest();
+    return;
+  }
+
+  if (request.is_scan_request()) {
+    UpdateArcUsbScanDeviceListPermission(package_name, allowed);
+  } else {
+    request.Resolve(allowed);
+    UpdateArcUsbAccessPermission(package_name, *request.usb_device_entry(),
+                                 allowed);
+  }
+
+  MaybeProcessNextPermissionRequest();
+}
+
+void ArcUsbHostPermissionManager::UpdateArcUsbScanDeviceListPermission(
+    const std::string& package_name,
+    bool allowed) {
+  // Currently we don't keep denied request. But keep the option open.
+  if (!allowed)
+    return;
+
+  usb_scan_devicelist_permission_packages_.emplace(package_name);
+  // TODO(lgcheng): Update Chrome prefs based result of emplace.
+}
+
+void ArcUsbHostPermissionManager::UpdateArcUsbAccessPermission(
+    const std::string& package_name,
+    const UsbDeviceEntry& usb_device_entry,
+    bool allowed) {
+  // Currently we don't keep denied request. But keep the option open.
+  if (!allowed)
+    return;
+
+  // Record already exists.
+  if (HasUsbAccessPermission(package_name, usb_device_entry))
+    return;
+
+  usb_access_permission_dict_.emplace(
+      std::make_pair(package_name, usb_device_entry));
+  // TODO(lgcheng): Update Chrome prefs if the device entry is persistent.
+}
+
+}  // namespace arc
diff --git a/chrome/browser/ui/app_list/arc/arc_usb_host_permission_manager.h b/chrome/browser/ui/app_list/arc/arc_usb_host_permission_manager.h
new file mode 100644
index 0000000..332a01d
--- /dev/null
+++ b/chrome/browser/ui/app_list/arc/arc_usb_host_permission_manager.h
@@ -0,0 +1,218 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_UI_APP_LIST_ARC_ARC_USB_HOST_PERMISSION_MANAGER_H_
+#define CHROME_BROWSER_UI_APP_LIST_ARC_ARC_USB_HOST_PERMISSION_MANAGER_H_
+
+#include <string>
+#include <unordered_map>
+#include <unordered_set>
+#include <vector>
+
+#include "base/callback.h"
+#include "base/memory/weak_ptr.h"
+#include "base/observer_list.h"
+#include "base/strings/string16.h"
+#include "chrome/browser/ui/app_list/arc/arc_app_list_prefs.h"
+#include "components/arc/usb/usb_host_ui_delegate.h"
+#include "components/keyed_service/core/keyed_service.h"
+
+class Profile;
+
+namespace arc {
+
+class ArcUsbHostBridge;
+
+using ArcUsbConfirmCallback = base::OnceCallback<void(bool)>;
+
+class ArcUsbHostPermissionManager : public ArcAppListPrefs::Observer,
+                                    public ArcUsbHostUiDelegate,
+                                    public KeyedService {
+ public:
+  struct UsbDeviceEntry {
+    UsbDeviceEntry(const std::string& guid,
+                   const base::string16& device_name,
+                   const base::string16& serial_number,
+                   uint16_t vendor_id,
+                   uint16_t product_id);
+    UsbDeviceEntry(const UsbDeviceEntry& other);
+    // Returns if the device entry is considered as persistent. Granted
+    // permission for persistent device will persist when device is
+    // removed.
+    bool IsPersistent() const { return !serial_number.empty(); }
+    // Checks if two device entries matches. If both devices are persistent,
+    // check if their serial_number, vendor_id and product_id matches. Otherwise
+    // check if therr guid matches.
+    bool Matches(const UsbDeviceEntry& other) const;
+
+    // This field can be null if device is persistent and the entry is restored
+    // from Chrome prefs. But it can not be null if the entry is not persistent
+    // or it is owned by UsbPermissionRequest.
+    std::string guid;
+    // Device name which is shown in the permission dialog.
+    base::string16 device_name;
+    // Serial_number of the device. If this field is null if device is
+    // considered as non-persistent.
+    base::string16 serial_number;
+    // Vendor_id of the device.
+    uint16_t vendor_id;
+    // Product id of the device.
+    uint16_t product_id;
+  };
+
+  class UsbPermissionRequest {
+   public:
+    UsbPermissionRequest(
+        const std::string& package_name,
+        bool is_scan_request,
+        base::Optional<UsbDeviceEntry> usb_device_entry,
+        base::Optional<ArcUsbHostUiDelegate::RequestPermissionCallback>
+            callback);
+    UsbPermissionRequest(UsbPermissionRequest&& other);
+    UsbPermissionRequest& operator=(UsbPermissionRequest&& other);
+    ~UsbPermissionRequest();
+
+    const std::string& package_name() const { return package_name_; }
+    bool is_scan_request() const { return is_scan_request_; }
+    const base::Optional<UsbDeviceEntry>& usb_device_entry() const {
+      return usb_device_entry_;
+    }
+
+    // Runs |callback_| with |allowed|.
+    void Resolve(bool allowed);
+
+   private:
+    // Name of the package that is currently requesting permission.
+    std::string package_name_;
+    // True if the this is a scan device list request. Otherwise it's a device
+    // access request. Open to make it a enum if we have more types.
+    bool is_scan_request_;
+    // Device entry of targeting device access request. nullopt if this is a
+    // scan device list request.
+    base::Optional<UsbDeviceEntry> usb_device_entry_;
+    // Callback of the device access reqeust. nullopt if this is a scan device
+    // list request.
+    base::Optional<RequestPermissionCallback> callback_;
+
+    DISALLOW_COPY_AND_ASSIGN(UsbPermissionRequest);
+  };
+
+  ~ArcUsbHostPermissionManager() override;
+  static ArcUsbHostPermissionManager* GetForBrowserContext(
+      content::BrowserContext* context);
+
+  // Shows permission request dialog for scan USB device list.
+  static void ShowScanDeviceListPermissionDialog(
+      Profile* profile,
+      const std::string& app_id,
+      ArcUsbConfirmCallback callback);
+
+  // Shows permission request dialog for targeting device name.
+  static void ShowAccessPermissionDialog(Profile* profile,
+                                         const std::string& app_id,
+                                         const base::string16& device_name,
+                                         ArcUsbConfirmCallback callback);
+
+  // ArcUsbHostUiDelegate:
+  void RequestUsbScanDeviceListPermission(
+      const std::string& package_name,
+      ArcUsbHostUiDelegate::RequestPermissionCallback callback) override;
+  void RequestUsbAccessPermission(
+      const std::string& package_name,
+      const std::string& guid,
+      const base::string16& serial_number,
+      const base::string16& manufacturer_string,
+      const base::string16& product_string,
+      uint16_t vendor_id,
+      uint16_t product_id,
+      ArcUsbHostUiDelegate::RequestPermissionCallback callback) override;
+  bool HasUsbAccessPermission(const std::string& package_name,
+                              const std::string& guid,
+                              const base::string16& serial_number,
+                              uint16_t vendor_id,
+                              uint16_t product_id) override;
+  void DeviceRemoved(const std::string& guid) override;
+  void ClearPermissionRequests() override;
+
+  // ArcAppListPrefs::Observer:
+  void OnPackageRemoved(const std::string& package_name,
+                        bool uninstalled) override;
+
+  const std::vector<UsbPermissionRequest>& GetPendingRequestsForTesting() {
+    return pending_requests_;
+  }
+
+ private:
+  friend class ArcUsbHostPermissionManagerFactory;
+
+  ArcUsbHostPermissionManager(Profile* profile,
+                              ArcAppListPrefs* arc_app_list_prefs,
+                              ArcUsbHostBridge* arc_usb_host_bridge);
+
+  static ArcUsbHostPermissionManager* Create(content::BrowserContext* context);
+
+  // Restores granted permissions. Called in constructor. Device list scan
+  // permission and device access permission for persistent devices will be
+  // restored.
+  void RestorePermissionFromChromePrefs();
+
+  // Tries to process next permission request as when permission dialog is
+  // available.
+  void MaybeProcessNextPermissionRequest();
+
+  bool HasUsbScanDeviceListPermission(const std::string& package_name) const;
+
+  bool HasUsbAccessPermission(const std::string& package_name,
+                              const UsbDeviceEntry& usb_device_entry);
+
+  // Callback for UI permission dialog.
+  void OnUsbPermissionReceived(UsbPermissionRequest request, bool allowed);
+
+  void UpdateArcUsbScanDeviceListPermission(const std::string& package_name,
+                                            bool allowed);
+
+  void UpdateArcUsbAccessPermission(const std::string& package_name,
+                                    const UsbDeviceEntry& usb_device_entry,
+                                    bool accpet);
+
+  std::vector<UsbPermissionRequest> pending_requests_;
+
+  // Package permissions will be removed when package is uninstalled.
+  // Packages that have been granted permission to scan device list. It will
+  // be also stored in Chrome prefs. We may need create UI to revoke this
+  // permission.
+  std::unordered_set<std::string> usb_scan_devicelist_permission_packages_;
+
+  // Package permissions will be removed when package is uninstalled.
+  // Dictory of granted package to devices access permission map.
+  // Permissions granted to persistent devices persist when device is removed
+  // while permissions granted to ephemeral devices will be removed in such
+  // situation.
+  std::unordered_multimap<std::string, UsbDeviceEntry>
+      usb_access_permission_dict_;
+
+  // Package which made the current USB reuqest.
+  std::string current_requesting_package_;
+
+  // Device GUID of targeting device of current USB request. Empty if it's a
+  // scan request.
+  std::string current_requesting_guid_;
+
+  // True if the permission dialog is currently being shown. Any permission
+  // request that occurs while this is true will be queued until after the user
+  // has resolved the current request.
+  bool is_permission_dialog_visible_ = false;
+
+  Profile* const profile_;
+
+  ArcAppListPrefs* const arc_app_list_prefs_;
+
+  base::WeakPtrFactory<ArcUsbHostPermissionManager> weak_ptr_factory_;
+
+  DISALLOW_COPY_AND_ASSIGN(ArcUsbHostPermissionManager);
+};
+
+}  // namespace arc
+
+#endif  // CHROME_BROWSER_UI_APP_LIST_ARC_ARC_USB_HOST_PERMISSION_MANAGER_H_
diff --git a/chrome/browser/ui/app_list/arc/arc_usb_host_permission_manager_factory.cc b/chrome/browser/ui/app_list/arc/arc_usb_host_permission_manager_factory.cc
new file mode 100644
index 0000000..66f3ef6b
--- /dev/null
+++ b/chrome/browser/ui/app_list/arc/arc_usb_host_permission_manager_factory.cc
@@ -0,0 +1,53 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/ui/app_list/arc/arc_usb_host_permission_manager_factory.h"
+
+#include "chrome/browser/profiles/incognito_helpers.h"
+#include "chrome/browser/ui/app_list/arc/arc_app_list_prefs_factory.h"
+#include "chrome/browser/ui/app_list/arc/arc_usb_host_permission_manager.h"
+#include "components/arc/usb/usb_host_bridge.h"
+#include "components/keyed_service/content/browser_context_dependency_manager.h"
+#include "content/public/browser/browser_context.h"
+
+namespace arc {
+
+// static
+ArcUsbHostPermissionManager*
+ArcUsbHostPermissionManagerFactory::GetForBrowserContext(
+    content::BrowserContext* context) {
+  return static_cast<ArcUsbHostPermissionManager*>(
+      GetInstance()->GetServiceForBrowserContext(context, true));
+}
+
+// static
+ArcUsbHostPermissionManagerFactory*
+ArcUsbHostPermissionManagerFactory::GetInstance() {
+  return base::Singleton<ArcUsbHostPermissionManagerFactory>::get();
+}
+
+ArcUsbHostPermissionManagerFactory::ArcUsbHostPermissionManagerFactory()
+    : BrowserContextKeyedServiceFactory(
+          "ArcUsbHostPermissionManager",
+          BrowserContextDependencyManager::GetInstance()) {
+  DependsOn(ArcAppListPrefsFactory::GetInstance());
+  DependsOn(ArcUsbHostBridge::GetFactory());
+}
+
+ArcUsbHostPermissionManagerFactory::~ArcUsbHostPermissionManagerFactory() {}
+
+KeyedService* ArcUsbHostPermissionManagerFactory::BuildServiceInstanceFor(
+    content::BrowserContext* context) const {
+  return ArcUsbHostPermissionManager::Create(context);
+}
+
+content::BrowserContext*
+ArcUsbHostPermissionManagerFactory::GetBrowserContextToUse(
+    content::BrowserContext* context) const {
+  // This matches the logic in ExtensionSyncServiceFactory, which uses the
+  // orginal browser context.
+  return chrome::GetBrowserContextRedirectedInIncognito(context);
+}
+
+}  // namespace arc
diff --git a/chrome/browser/ui/app_list/arc/arc_usb_host_permission_manager_factory.h b/chrome/browser/ui/app_list/arc/arc_usb_host_permission_manager_factory.h
new file mode 100644
index 0000000..721ad7a
--- /dev/null
+++ b/chrome/browser/ui/app_list/arc/arc_usb_host_permission_manager_factory.h
@@ -0,0 +1,43 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_UI_APP_LIST_ARC_ARC_USB_HOST_PERMISSION_MANAGER_FACTORY_H_
+#define CHROME_BROWSER_UI_APP_LIST_ARC_ARC_USB_HOST_PERMISSION_MANAGER_FACTORY_H_
+
+#include <memory>
+
+#include "base/macros.h"
+#include "base/memory/singleton.h"
+#include "components/keyed_service/content/browser_context_keyed_service_factory.h"
+
+namespace arc {
+
+class ArcUsbHostPermissionManager;
+
+class ArcUsbHostPermissionManagerFactory
+    : public BrowserContextKeyedServiceFactory {
+ public:
+  static ArcUsbHostPermissionManager* GetForBrowserContext(
+      content::BrowserContext* context);
+
+  static ArcUsbHostPermissionManagerFactory* GetInstance();
+
+ private:
+  friend struct base::DefaultSingletonTraits<
+      ArcUsbHostPermissionManagerFactory>;
+
+  ArcUsbHostPermissionManagerFactory();
+  ~ArcUsbHostPermissionManagerFactory() override;
+
+  KeyedService* BuildServiceInstanceFor(
+      content::BrowserContext* context) const override;
+  content::BrowserContext* GetBrowserContextToUse(
+      content::BrowserContext* context) const override;
+
+  DISALLOW_COPY_AND_ASSIGN(ArcUsbHostPermissionManagerFactory);
+};
+
+}  // namespace arc
+
+#endif  // CHROME_BROWSER_UI_APP_LIST_ARC_ARC_USB_HOST_PERMISSION_MANAGER_FACTORY_H_
diff --git a/chrome/browser/ui/app_list/search/common/json_response_fetcher.cc b/chrome/browser/ui/app_list/search/common/json_response_fetcher.cc
index e6de1a4..35847c2 100644
--- a/chrome/browser/ui/app_list/search/common/json_response_fetcher.cc
+++ b/chrome/browser/ui/app_list/search/common/json_response_fetcher.cc
@@ -9,11 +9,17 @@
 #include "base/bind.h"
 #include "base/memory/ptr_util.h"
 #include "base/values.h"
+#include "content/public/browser/browser_context.h"
+#include "content/public/browser/browser_thread.h"
+#include "content/public/browser/storage_partition.h"
 #include "content/public/common/service_manager_connection.h"
 #include "net/base/load_flags.h"
+#include "net/traffic_annotation/network_traffic_annotation.h"
 #include "net/url_request/url_fetcher.h"
 #include "net/url_request/url_request_status.h"
 #include "services/data_decoder/public/cpp/safe_json_parser.h"
+#include "services/network/public/cpp/resource_request.h"
+#include "services/network/public/cpp/simple_url_loader.h"
 #include "url/gurl.h"
 
 namespace app_list {
@@ -22,9 +28,9 @@
 
 JSONResponseFetcher::JSONResponseFetcher(
     const Callback& callback,
-    net::URLRequestContextGetter* context_getter)
+    content::BrowserContext* browser_context)
     : callback_(callback),
-      context_getter_(context_getter),
+      browser_context_(browser_context),
       weak_factory_(this) {
   DCHECK(!callback_.is_null());
 }
@@ -34,15 +40,40 @@
 void JSONResponseFetcher::Start(const GURL& query_url) {
   Stop();
 
-  fetcher_ = net::URLFetcher::Create(query_url, net::URLFetcher::GET, this);
-  fetcher_->SetRequestContext(context_getter_);
-  fetcher_->SetLoadFlags(net::LOAD_DO_NOT_SAVE_COOKIES |
-                         net::LOAD_DISABLE_CACHE);
-  fetcher_->Start();
+  net::NetworkTrafficAnnotationTag traffic_annotation =
+      net::DefineNetworkTrafficAnnotation("json_response_fetcher", R"(
+          semantics {
+            sender: "JSON Response Fetcher"
+            description:
+              "Chrome OS downloads data for a web store result."
+            trigger:
+              "When a user initiates a web store search and views results. "
+            data:
+              "JSON data comprising search results. "
+              "No user information is sent."
+            destination: GOOGLE_OWNED_SERVICE
+          }
+          policy {
+            cookies_allowed: NO
+          })");
+  auto resource_request = std::make_unique<network::ResourceRequest>();
+  resource_request->url = query_url;
+  resource_request->load_flags =
+      net::LOAD_DO_NOT_SAVE_COOKIES | net::LOAD_DISABLE_CACHE;
+  simple_loader_ = network::SimpleURLLoader::Create(std::move(resource_request),
+                                                    traffic_annotation);
+  network::mojom::URLLoaderFactory* loader_factory =
+      content::BrowserContext::GetDefaultStoragePartition(browser_context_)
+          ->GetURLLoaderFactoryForBrowserProcess()
+          .get();
+  simple_loader_->DownloadToStringOfUnboundedSizeUntilCrashAndDie(
+      loader_factory,
+      base::BindOnce(&JSONResponseFetcher::OnSimpleLoaderComplete,
+                     base::Unretained(this)));
 }
 
 void JSONResponseFetcher::Stop() {
-  fetcher_.reset();
+  simple_loader_.reset();
   weak_factory_.InvalidateWeakPtrs();
 }
 
@@ -61,25 +92,17 @@
   callback_.Run(std::unique_ptr<base::DictionaryValue>());
 }
 
-void JSONResponseFetcher::OnURLFetchComplete(
-    const net::URLFetcher* source) {
-  CHECK_EQ(fetcher_.get(), source);
-
-  std::unique_ptr<net::URLFetcher> fetcher(std::move(fetcher_));
-
-  if (!fetcher->GetStatus().is_success() ||
-      fetcher->GetResponseCode() != 200) {
+void JSONResponseFetcher::OnSimpleLoaderComplete(
+    std::unique_ptr<std::string> response_body) {
+  if (!response_body) {
     OnJsonParseError(kBadResponse);
     return;
   }
 
-  std::string json_data;
-  fetcher->GetResponseAsString(&json_data);
-
   // The parser will call us back via one of the callbacks.
   data_decoder::SafeJsonParser::Parse(
       content::ServiceManagerConnection::GetForProcess()->GetConnector(),
-      json_data,
+      *response_body,
       base::Bind(&JSONResponseFetcher::OnJsonParseSuccess,
                  weak_factory_.GetWeakPtr()),
       base::Bind(&JSONResponseFetcher::OnJsonParseError,
diff --git a/chrome/browser/ui/app_list/search/common/json_response_fetcher.h b/chrome/browser/ui/app_list/search/common/json_response_fetcher.h
index 3e2e38a..8f2ddc4 100644
--- a/chrome/browser/ui/app_list/search/common/json_response_fetcher.h
+++ b/chrome/browser/ui/app_list/search/common/json_response_fetcher.h
@@ -11,7 +11,6 @@
 #include "base/callback.h"
 #include "base/macros.h"
 #include "base/memory/weak_ptr.h"
-#include "net/url_request/url_fetcher_delegate.h"
 
 class GURL;
 
@@ -20,9 +19,12 @@
 class Value;
 }
 
-namespace net {
-class URLFetcher;
-class URLRequestContextGetter;
+namespace content {
+class BrowserContext;
+}
+
+namespace network {
+class SimpleURLLoader;
 }
 
 namespace app_list {
@@ -31,15 +33,15 @@
 // sandboxed utility process to parse it to a DictionaryValue.
 // TODO(rkc): Add the ability to give control of handling http failures to
 // the consumers of this class.
-class JSONResponseFetcher : public net::URLFetcherDelegate {
+class JSONResponseFetcher {
  public:
   // Callback to pass back the parsed json dictionary returned from the server.
   // Invoked with NULL if there is an error.
   typedef base::Callback<void(std::unique_ptr<base::DictionaryValue>)> Callback;
 
   JSONResponseFetcher(const Callback& callback,
-                      net::URLRequestContextGetter* context_getter);
-  ~JSONResponseFetcher() override;
+                      content::BrowserContext* browser_context);
+  ~JSONResponseFetcher();
 
   // Starts to fetch results for the given |query_url|.
   void Start(const GURL& query_url);
@@ -50,13 +52,12 @@
   void OnJsonParseSuccess(std::unique_ptr<base::Value> parsed_json);
   void OnJsonParseError(const std::string& error);
 
-  // net::URLFetcherDelegate overrides:
-  void OnURLFetchComplete(const net::URLFetcher* source) override;
+  // Invoked from SimpleURLLoader after download is complete.
+  void OnSimpleLoaderComplete(std::unique_ptr<std::string> response_body);
 
   Callback callback_;
-  net::URLRequestContextGetter* context_getter_;
-
-  std::unique_ptr<net::URLFetcher> fetcher_;
+  content::BrowserContext* browser_context_;
+  std::unique_ptr<network::SimpleURLLoader> simple_loader_;
   base::WeakPtrFactory<JSONResponseFetcher> weak_factory_;
 
   DISALLOW_COPY_AND_ASSIGN(JSONResponseFetcher);
diff --git a/chrome/browser/ui/app_list/search/webstore/webstore_provider.cc b/chrome/browser/ui/app_list/search/webstore/webstore_provider.cc
index 87c7c52f..a5868211 100644
--- a/chrome/browser/ui/app_list/search/webstore/webstore_provider.cc
+++ b/chrome/browser/ui/app_list/search/webstore/webstore_provider.cc
@@ -89,7 +89,7 @@
     webstore_search_.reset(new JSONResponseFetcher(
         base::Bind(&WebstoreProvider::OnWebstoreSearchFetched,
                    base::Unretained(this)),
-        profile_->GetRequestContext()));
+        profile_));
   }
 
   query_pending_ = true;
diff --git a/chrome/browser/ui/ash/chrome_screenshot_grabber.cc b/chrome/browser/ui/ash/chrome_screenshot_grabber.cc
index 5ed9407..81fa0f0d 100644
--- a/chrome/browser/ui/ash/chrome_screenshot_grabber.cc
+++ b/chrome/browser/ui/ash/chrome_screenshot_grabber.cc
@@ -259,11 +259,6 @@
   }
 }
 
-bool ScreenshotsDisabled() {
-  return g_browser_process->local_state()->GetBoolean(
-      prefs::kDisableScreenshots);
-}
-
 bool ShouldUse24HourClock() {
   Profile* profile = ProfileManager::GetActiveUserProfile();
   if (profile)
@@ -398,7 +393,7 @@
 }
 
 void ChromeScreenshotGrabber::HandleTakeScreenshotForAllRootWindows() {
-  if (ScreenshotsDisabled()) {
+  if (!ScreenshotsAllowed()) {
     OnScreenshotCompleted(ScreenshotResult::DISABLED, base::FilePath());
     return;
   }
@@ -430,7 +425,7 @@
 void ChromeScreenshotGrabber::HandleTakePartialScreenshot(
     aura::Window* window,
     const gfx::Rect& rect) {
-  if (ScreenshotsDisabled()) {
+  if (!ScreenshotsAllowed()) {
     OnScreenshotCompleted(ScreenshotResult::DISABLED, base::FilePath());
     return;
   }
@@ -444,7 +439,7 @@
 }
 
 void ChromeScreenshotGrabber::HandleTakeWindowScreenshot(aura::Window* window) {
-  if (ScreenshotsDisabled()) {
+  if (!ScreenshotsAllowed()) {
     OnScreenshotCompleted(ScreenshotResult::DISABLED, base::FilePath());
     return;
   }
@@ -472,7 +467,7 @@
     return;
   }
 
-  if (ScreenshotsDisabled()) {
+  if (!ScreenshotsAllowed()) {
     OnScreenshotCompleted(ScreenshotResult::DISABLED, base::FilePath());
     return;
   }
@@ -706,3 +701,14 @@
 Profile* ChromeScreenshotGrabber::GetProfile() {
   return ProfileManager::GetActiveUserProfile();
 }
+
+bool ChromeScreenshotGrabber::ScreenshotsAllowed() const {
+  // Have two ways to disable screenshots:
+  // - local state pref whose value is set from policy;
+  // - simple flag which is set/unset when entering/exiting special modes where
+  // screenshots should be disabled (pref is problematic because it's kept
+  // across reboots, hence if the device crashes it may get stuck with the wrong
+  // value).
+  return screenshots_allowed_ && !g_browser_process->local_state()->GetBoolean(
+      prefs::kDisableScreenshots);
+}
diff --git a/chrome/browser/ui/ash/chrome_screenshot_grabber.h b/chrome/browser/ui/ash/chrome_screenshot_grabber.h
index e505951..75db561 100644
--- a/chrome/browser/ui/ash/chrome_screenshot_grabber.h
+++ b/chrome/browser/ui/ash/chrome_screenshot_grabber.h
@@ -6,6 +6,7 @@
 #define CHROME_BROWSER_UI_ASH_CHROME_SCREENSHOT_GRABBER_H_
 
 #include <memory>
+#include <string>
 
 #include "ash/screenshot_delegate.h"
 #include "base/macros.h"
@@ -70,6 +71,8 @@
                         ui::ScreenshotResult result,
                         scoped_refptr<base::RefCountedMemory> png_data);
 
+  void set_screenshots_allowed(bool value) { screenshots_allowed_ = value; }
+
  private:
   friend class ash::ChromeScreenshotGrabberTest;
   friend class ChromeScreenshotGrabberBrowserTest;
@@ -143,11 +146,16 @@
 
   Profile* GetProfile();
 
+  bool ScreenshotsAllowed() const;
+
   std::unique_ptr<ui::ScreenshotGrabber> screenshot_grabber_;
 
   // Forwards OnScreenshotCompleted() events to a test.
   ChromeScreenshotGrabberTestObserver* test_observer_ = nullptr;
 
+  // Flag used to disallow screenshots, set in some special modes.
+  bool screenshots_allowed_ = true;
+
   base::WeakPtrFactory<ChromeScreenshotGrabber> weak_factory_;
 
   DISALLOW_COPY_AND_ASSIGN(ChromeScreenshotGrabber);
diff --git a/chrome/browser/ui/ash/chrome_screenshot_grabber_browsertest.cc b/chrome/browser/ui/ash/chrome_screenshot_grabber_browsertest.cc
index af5d4af..7696883 100644
--- a/chrome/browser/ui/ash/chrome_screenshot_grabber_browsertest.cc
+++ b/chrome/browser/ui/ash/chrome_screenshot_grabber_browsertest.cc
@@ -118,3 +118,19 @@
   EXPECT_TRUE(clipboard_changed_);
   EXPECT_TRUE(IsImageClipboardAvailable());
 }
+
+IN_PROC_BROWSER_TEST_F(ChromeScreenshotGrabberBrowserTest,
+                       ScreenshotsDisallowed) {
+  ChromeScreenshotGrabber* chrome_screenshot_grabber =
+      ChromeScreenshotGrabber::Get();
+  chrome_screenshot_grabber->set_screenshots_allowed(false);
+  SetTestObserver(chrome_screenshot_grabber, this);
+
+  chrome_screenshot_grabber->HandleTakeWindowScreenshot(
+      ash::Shell::GetPrimaryRootWindow());
+  RunLoop();
+
+  EXPECT_TRUE(notification_added_);
+  EXPECT_TRUE(display_service_->GetNotification(std::string("screenshot")));
+  EXPECT_EQ(ui::ScreenshotResult::DISABLED, screenshot_result_);
+}
diff --git a/chrome/browser/ui/autofill/chrome_autofill_client.cc b/chrome/browser/ui/autofill/chrome_autofill_client.cc
index 0865d0c..e97c23d 100644
--- a/chrome/browser/ui/autofill/chrome_autofill_client.cc
+++ b/chrome/browser/ui/autofill/chrome_autofill_client.cc
@@ -132,7 +132,8 @@
 identity::IdentityManager* ChromeAutofillClient::GetIdentityManager() {
   Profile* profile =
       Profile::FromBrowserContext(web_contents()->GetBrowserContext());
-  return IdentityManagerFactory::GetInstance()->GetForProfile(profile);
+  return IdentityManagerFactory::GetInstance()->GetForProfile(
+      profile->GetOriginalProfile());
 }
 
 IdentityProvider* ChromeAutofillClient::GetIdentityProvider() {
diff --git a/chrome/browser/ui/browser_dialogs.h b/chrome/browser/ui/browser_dialogs.h
index f5fb0c1..3db9ff7 100644
--- a/chrome/browser/ui/browser_dialogs.h
+++ b/chrome/browser/ui/browser_dialogs.h
@@ -268,6 +268,7 @@
   ZOOM = 79,
   LOCK_SCREEN_NOTE_APP_TOAST = 80,
   PWA_CONFIRMATION = 81,
+  RELAUNCH_RECOMMENDED = 82,
   MAX_VALUE
 };
 
diff --git a/chrome/browser/ui/browser_focus_uitest.cc b/chrome/browser/ui/browser_focus_uitest.cc
index 851ff74..57f714e 100644
--- a/chrome/browser/ui/browser_focus_uitest.cc
+++ b/chrome/browser/ui/browser_focus_uitest.cc
@@ -208,7 +208,7 @@
 };
 
 // Flaky on Mac (http://crbug.com/67301).
-#if defined(OS_MACOSX) || defined(OS_CHROMEOS)
+#if defined(OS_MACOSX)
 #define MAYBE_ClickingMovesFocus DISABLED_ClickingMovesFocus
 #else
 // If this flakes, disable and log details in http://crbug.com/523255.
@@ -493,7 +493,7 @@
 }
 
 // Test that find-in-page UI can request focus, even when it is already open.
-#if defined(OS_MACOSX) || defined(OS_CHROMEOS)
+#if defined(OS_MACOSX)
 #define MAYBE_FindFocusTest DISABLED_FindFocusTest
 #else
 // If this flakes, disable and log details in http://crbug.com/523255.
diff --git a/chrome/browser/ui/cocoa/profiles/user_manager_mac.mm b/chrome/browser/ui/cocoa/profiles/user_manager_mac.mm
index 5c51f62..b123fe18 100644
--- a/chrome/browser/ui/cocoa/profiles/user_manager_mac.mm
+++ b/chrome/browser/ui/cocoa/profiles/user_manager_mac.mm
@@ -211,6 +211,10 @@
     webContentsDelegate_.reset(new UserManagerProfileDialogDelegate());
     dialogWebContents_->SetDelegate(webContentsDelegate_.get());
 
+    // Load the url for the WebContents before constrained window creation so
+    // that the dialog can get focus properly.
+    [self show];
+
     base::scoped_nsobject<CustomConstrainedWindowSheet> sheet(
        [[CustomConstrainedWindowSheet alloc]
            initWithCustomWindow:[self window]]);
@@ -224,7 +228,6 @@
     auto closeButton = [window standardWindowButton:NSWindowCloseButton];
     [closeButton setTarget:self];
     [closeButton setAction:@selector(closeButtonClicked:)];
-    [self show];
   }
 
   return self;
diff --git a/chrome/browser/ui/exclusive_access/flash_fullscreen_interactive_browsertest.cc b/chrome/browser/ui/exclusive_access/flash_fullscreen_interactive_browsertest.cc
index 961c19ca..f86d920d 100644
--- a/chrome/browser/ui/exclusive_access/flash_fullscreen_interactive_browsertest.cc
+++ b/chrome/browser/ui/exclusive_access/flash_fullscreen_interactive_browsertest.cc
@@ -7,6 +7,7 @@
 #include "base/location.h"
 #include "base/macros.h"
 #include "base/message_loop/message_loop.h"
+#include "base/run_loop.h"
 #include "base/single_thread_task_runner.h"
 #include "base/threading/thread_task_runner_handle.h"
 #include "base/time/time.h"
@@ -264,14 +265,13 @@
     // Copy and examine the upper-left pixel of the widget and compare it to the
     // |expected_color|.
     bool is_expected_color = false;
+    base::RunLoop run_loop;
     flash_fs_view->CopyFromSurface(
         gfx::Rect(0, 0, 1, 1), gfx::Size(1, 1),
-        base::Bind(
+        base::BindOnce(
             &FlashFullscreenInteractiveBrowserTest::CheckBitmapForFillColor,
-            expected_color, &is_expected_color,
-            base::MessageLoop::QuitWhenIdleClosure()),
-        kN32_SkColorType);
-    content::RunMessageLoop();
+            expected_color, &is_expected_color, run_loop.QuitClosure()));
+    run_loop.Run();
 
     return is_expected_color;
   }
@@ -279,12 +279,9 @@
   static void CheckBitmapForFillColor(SkColor expected_color,
                                       bool* is_expected_color,
                                       const base::Closure& done_cb,
-                                      const SkBitmap& bitmap,
-                                      content::ReadbackResponse response) {
-    if (response == content::READBACK_SUCCESS) {
-      if (bitmap.width() > 0 && bitmap.height() > 0)
-        *is_expected_color = (bitmap.getColor(0, 0) == expected_color);
-    }
+                                      const SkBitmap& bitmap) {
+    if (!bitmap.drawsNothing())
+      *is_expected_color = (bitmap.getColor(0, 0) == expected_color);
     done_cb.Run();
   }
 
diff --git a/chrome/browser/ui/javascript_dialogs/javascript_dialog_tab_helper.cc b/chrome/browser/ui/javascript_dialogs/javascript_dialog_tab_helper.cc
index 6807250..67005889 100644
--- a/chrome/browser/ui/javascript_dialogs/javascript_dialog_tab_helper.cc
+++ b/chrome/browser/ui/javascript_dialogs/javascript_dialog_tab_helper.cc
@@ -43,6 +43,84 @@
 #endif
 }
 
+// The relationship between origins in displayed dialogs.
+//
+// This is used for a UMA histogram. Please never alter existing values, only
+// append new ones.
+//
+// Note that "HTTP" in these enum names refers to a scheme that is either HTTP
+// or HTTPS.
+enum class DialogOriginRelationship {
+  // The dialog was shown by a main frame with a non-HTTP(S) scheme, or by a
+  // frame within a non-HTTP(S) main frame.
+  NON_HTTP_MAIN_FRAME = 1,
+
+  // The dialog was shown by a main frame with an HTTP(S) scheme.
+  HTTP_MAIN_FRAME = 2,
+
+  // The dialog was displayed by an HTTP(S) frame which shared the same origin
+  // as the main frame.
+  HTTP_MAIN_FRAME_HTTP_SAME_ORIGIN_ALERTING_FRAME = 3,
+
+  // The dialog was displayed by an HTTP(S) frame which had a different origin
+  // from the main frame.
+  HTTP_MAIN_FRAME_HTTP_DIFFERENT_ORIGIN_ALERTING_FRAME = 4,
+
+  // The dialog was displayed by a non-HTTP(S) frame whose nearest HTTP(S)
+  // ancestor shared the same origin as the main frame.
+  HTTP_MAIN_FRAME_NON_HTTP_ALERTING_FRAME_SAME_ORIGIN_ANCESTOR = 5,
+
+  // The dialog was displayed by a non-HTTP(S) frame whose nearest HTTP(S)
+  // ancestor was a different origin than the main frame.
+  HTTP_MAIN_FRAME_NON_HTTP_ALERTING_FRAME_DIFFERENT_ORIGIN_ANCESTOR = 6,
+
+  COUNT,
+};
+
+DialogOriginRelationship GetDialogOriginRelationship(
+    content::WebContents* web_contents,
+    content::RenderFrameHost* alerting_frame) {
+  GURL main_frame_url = web_contents->GetURL();
+
+  if (!main_frame_url.SchemeIsHTTPOrHTTPS())
+    return DialogOriginRelationship::NON_HTTP_MAIN_FRAME;
+
+  if (alerting_frame == web_contents->GetMainFrame())
+    return DialogOriginRelationship::HTTP_MAIN_FRAME;
+
+  GURL alerting_frame_url = alerting_frame->GetLastCommittedURL();
+
+  if (alerting_frame_url.SchemeIsHTTPOrHTTPS()) {
+    if (main_frame_url.GetOrigin() == alerting_frame_url.GetOrigin()) {
+      return DialogOriginRelationship::
+          HTTP_MAIN_FRAME_HTTP_SAME_ORIGIN_ALERTING_FRAME;
+    }
+    return DialogOriginRelationship::
+        HTTP_MAIN_FRAME_HTTP_DIFFERENT_ORIGIN_ALERTING_FRAME;
+  }
+
+  // Walk up the tree to find the nearest ancestor frame of the alerting frame
+  // that has an HTTP(S) scheme. Note that this is guaranteed to terminate
+  // because the main frame has an HTTP(S) scheme.
+  content::RenderFrameHost* nearest_http_ancestor_frame =
+      alerting_frame->GetParent();
+  while (!nearest_http_ancestor_frame->GetLastCommittedURL()
+              .SchemeIsHTTPOrHTTPS()) {
+    nearest_http_ancestor_frame = nearest_http_ancestor_frame->GetParent();
+  }
+
+  GURL nearest_http_ancestor_frame_url =
+      nearest_http_ancestor_frame->GetLastCommittedURL();
+
+  if (main_frame_url.GetOrigin() ==
+      nearest_http_ancestor_frame_url.GetOrigin()) {
+    return DialogOriginRelationship::
+        HTTP_MAIN_FRAME_NON_HTTP_ALERTING_FRAME_SAME_ORIGIN_ANCESTOR;
+  }
+  return DialogOriginRelationship::
+      HTTP_MAIN_FRAME_NON_HTTP_ALERTING_FRAME_DIFFERENT_ORIGIN_ANCESTOR;
+}
+
 }  // namespace
 
 enum class JavaScriptDialogTabHelper::DismissalCause {
@@ -57,7 +135,7 @@
   DIALOG_BUTTON_CLICKED = 6,
   TAB_NAVIGATED = 7,
   TAB_SWITCHED_OUT = 8,
-  MAX,
+  COUNT,
 };
 
 JavaScriptDialogTabHelper::JavaScriptDialogTabHelper(
@@ -86,25 +164,39 @@
     const base::string16& default_prompt_text,
     DialogClosedCallback callback,
     bool* did_suppress_message) {
+  DCHECK_EQ(alerting_web_contents,
+            content::WebContents::FromRenderFrameHost(render_frame_host));
+
   GURL alerting_frame_url = render_frame_host->GetLastCommittedURL();
 
   content::WebContents* parent_web_contents =
       WebContentsObserver::web_contents();
+  DialogOriginRelationship origin_relationship =
+      GetDialogOriginRelationship(alerting_web_contents, render_frame_host);
   bool foremost = IsWebContentsForemost(parent_web_contents);
   navigation_metrics::Scheme scheme =
       navigation_metrics::GetScheme(alerting_frame_url);
   switch (dialog_type) {
     case content::JAVASCRIPT_DIALOG_TYPE_ALERT:
+      UMA_HISTOGRAM_ENUMERATION("JSDialogs.OriginRelationship.Alert",
+                                origin_relationship,
+                                DialogOriginRelationship::COUNT);
       UMA_HISTOGRAM_BOOLEAN("JSDialogs.IsForemost.Alert", foremost);
       UMA_HISTOGRAM_ENUMERATION("JSDialogs.Scheme.Alert", scheme,
                                 navigation_metrics::Scheme::COUNT);
       break;
     case content::JAVASCRIPT_DIALOG_TYPE_CONFIRM:
+      UMA_HISTOGRAM_ENUMERATION("JSDialogs.OriginRelationship.Confirm",
+                                origin_relationship,
+                                DialogOriginRelationship::COUNT);
       UMA_HISTOGRAM_BOOLEAN("JSDialogs.IsForemost.Confirm", foremost);
       UMA_HISTOGRAM_ENUMERATION("JSDialogs.Scheme.Confirm", scheme,
                                 navigation_metrics::Scheme::COUNT);
       break;
     case content::JAVASCRIPT_DIALOG_TYPE_PROMPT:
+      UMA_HISTOGRAM_ENUMERATION("JSDialogs.OriginRelationship.Prompt",
+                                origin_relationship,
+                                DialogOriginRelationship::COUNT);
       UMA_HISTOGRAM_BOOLEAN("JSDialogs.IsForemost.Prompt", foremost);
       UMA_HISTOGRAM_ENUMERATION("JSDialogs.Scheme.Prompt", scheme,
                                 navigation_metrics::Scheme::COUNT);
@@ -209,11 +301,19 @@
     content::RenderFrameHost* render_frame_host,
     bool is_reload,
     DialogClosedCallback callback) {
+  DCHECK_EQ(web_contents,
+            content::WebContents::FromRenderFrameHost(render_frame_host));
+
   content::WebContents* parent_web_contents =
       WebContentsObserver::web_contents();
+  DialogOriginRelationship origin_relationship =
+      GetDialogOriginRelationship(web_contents, render_frame_host);
   bool foremost = IsWebContentsForemost(parent_web_contents);
   navigation_metrics::Scheme scheme =
       navigation_metrics::GetScheme(render_frame_host->GetLastCommittedURL());
+  UMA_HISTOGRAM_ENUMERATION("JSDialogs.OriginRelationship.BeforeUnload",
+                            origin_relationship,
+                            DialogOriginRelationship::COUNT);
   UMA_HISTOGRAM_BOOLEAN("JSDialogs.IsForemost.BeforeUnload", foremost);
   UMA_HISTOGRAM_ENUMERATION("JSDialogs.Scheme.BeforeUnload", scheme,
                             navigation_metrics::Scheme::COUNT);
@@ -317,17 +417,17 @@
     case content::JAVASCRIPT_DIALOG_TYPE_ALERT:
       UMA_HISTOGRAM_ENUMERATION("JSDialogs.DismissalCause.Alert",
                                 static_cast<int>(cause),
-                                static_cast<int>(DismissalCause::MAX));
+                                static_cast<int>(DismissalCause::COUNT));
       break;
     case content::JAVASCRIPT_DIALOG_TYPE_CONFIRM:
       UMA_HISTOGRAM_ENUMERATION("JSDialogs.DismissalCause.Confirm",
                                 static_cast<int>(cause),
-                                static_cast<int>(DismissalCause::MAX));
+                                static_cast<int>(DismissalCause::COUNT));
       break;
     case content::JAVASCRIPT_DIALOG_TYPE_PROMPT:
       UMA_HISTOGRAM_ENUMERATION("JSDialogs.DismissalCause.Prompt",
                                 static_cast<int>(cause),
-                                static_cast<int>(DismissalCause::MAX));
+                                static_cast<int>(DismissalCause::COUNT));
       break;
   }
 }
diff --git a/chrome/browser/ui/views/chrome_browser_main_extra_parts_views.cc b/chrome/browser/ui/views/chrome_browser_main_extra_parts_views.cc
index 39de8a6..aab526b 100644
--- a/chrome/browser/ui/views/chrome_browser_main_extra_parts_views.cc
+++ b/chrome/browser/ui/views/chrome_browser_main_extra_parts_views.cc
@@ -7,6 +7,7 @@
 #include <utility>
 
 #include "base/command_line.h"
+#include "build/build_config.h"
 #include "chrome/browser/ui/views/chrome_constrained_window_views_client.h"
 #include "chrome/browser/ui/views/chrome_views_delegate.h"
 #include "chrome/browser/ui/views/harmony/chrome_layout_provider.h"
diff --git a/chrome/browser/ui/views/frame/avatar_button_manager.cc b/chrome/browser/ui/views/frame/avatar_button_manager.cc
index 8beb3d84..3ba2c876 100644
--- a/chrome/browser/ui/views/frame/avatar_button_manager.cc
+++ b/chrome/browser/ui/views/frame/avatar_button_manager.cc
@@ -4,16 +4,25 @@
 
 #include "chrome/browser/ui/views/frame/avatar_button_manager.h"
 
+#if !defined(OS_CHROMEOS)
 #include "chrome/browser/browser_process.h"
 #include "chrome/browser/profiles/profile_manager.h"
 #include "chrome/browser/ui/view_ids.h"
 #include "chrome/browser/ui/views/frame/browser_frame.h"
 #include "chrome/browser/ui/views/frame/browser_view.h"
+#endif  // !defined(OS_CHROMEOS)
 
 AvatarButtonManager::AvatarButtonManager(BrowserNonClientFrameView* frame_view)
-    : frame_view_(frame_view), view_(nullptr) {}
+#if !defined(OS_CHROMEOS)
+    : frame_view_(frame_view)
+#endif  // defined(OS_CHROMEOS)
+{
+}
 
 void AvatarButtonManager::Update(AvatarButtonStyle style) {
+#if defined(OS_CHROMEOS)
+  DCHECK_EQ(style, AvatarButtonStyle::NONE);
+#else
   BrowserView* browser_view = frame_view_->browser_view();
   BrowserFrame* frame = frame_view_->frame();
   Profile* profile = browser_view->browser()->profile();
@@ -21,14 +30,15 @@
   // This should never be called in incognito mode.
   DCHECK(browser_view->IsRegularOrGuestSession());
   ProfileAttributesEntry* unused;
-  if ((browser_view->IsBrowserTypeNormal() &&
-       // Tests may not have a profile manager.
-       g_browser_process->profile_manager() &&
-       g_browser_process->profile_manager()
-           ->GetProfileAttributesStorage()
-           .GetProfileAttributesWithPath(profile->GetPath(), &unused)) ||
-      // Desktop guest shows the avatar button.
-      browser_view->IsIncognito()) {
+  if (style != AvatarButtonStyle::NONE &&
+      ((browser_view->IsBrowserTypeNormal() &&
+        // Tests may not have a profile manager.
+        g_browser_process->profile_manager() &&
+        g_browser_process->profile_manager()
+            ->GetProfileAttributesStorage()
+            .GetProfileAttributesWithPath(profile->GetPath(), &unused)) ||
+       // Desktop guest shows the avatar button.
+       browser_view->IsIncognito())) {
     if (!view_) {
       view_ = new AvatarButton(this, style, profile, this);
       view_->set_id(VIEW_ID_AVATAR_BUTTON);
@@ -40,11 +50,15 @@
     view_ = nullptr;
     frame->GetRootView()->Layout();
   }
+#endif  // defined(OS_CHROMEOS)
 }
 
 void AvatarButtonManager::OnMenuButtonClicked(views::MenuButton* sender,
                                               const gfx::Point& point,
                                               const ui::Event* event) {
+#if defined(OS_CHROMEOS)
+  NOTREACHED();
+#else
   DCHECK_EQ(view_, sender);
   BrowserWindow::AvatarBubbleMode mode =
       BrowserWindow::AVATAR_BUBBLE_MODE_DEFAULT;
@@ -56,4 +70,5 @@
       mode, signin::ManageAccountsParams(),
       signin_metrics::AccessPoint::ACCESS_POINT_AVATAR_BUBBLE_SIGN_IN, false);
   view_->OnAvatarButtonPressed(event);
+#endif  // defined(OS_CHROMEOS)
 }
diff --git a/chrome/browser/ui/views/frame/avatar_button_manager.h b/chrome/browser/ui/views/frame/avatar_button_manager.h
index 432a2a0..27475df 100644
--- a/chrome/browser/ui/views/frame/avatar_button_manager.h
+++ b/chrome/browser/ui/views/frame/avatar_button_manager.h
@@ -29,7 +29,13 @@
   void Update(AvatarButtonStyle style);
 
   // Gets the avatar button as a view::View.
-  views::View* view() const { return view_; }
+  views::View* view() const {
+#if defined(OS_CHROMEOS)
+    return nullptr;
+#else
+    return view_;
+#endif  // defined(OS_CHROMEOS)
+  }
 
   // views::MenuButtonListener:
   void OnMenuButtonClicked(views::MenuButton* source,
@@ -46,11 +52,13 @@
 #endif
 
  private:
+#if !defined(OS_CHROMEOS)
   BrowserNonClientFrameView* frame_view_;  // Weak. Owns |this|.
 
   // Menu button that displays the name of the active or guest profile.
   // May be null and will not be displayed for off the record profiles.
-  AvatarButton* view_;  // Owned by views hierarchy.
+  AvatarButton* view_ = nullptr;  // Owned by views hierarchy.
+#endif                            // !defined(OS_CHROMEOS)
 
 #if BUILDFLAG(ENABLE_NATIVE_WINDOW_NAV_BUTTONS)
   views::NavButtonProvider* nav_button_provider_ = nullptr;
diff --git a/chrome/browser/ui/views/frame/browser_non_client_frame_view.cc b/chrome/browser/ui/views/frame/browser_non_client_frame_view.cc
index 4a5ee84..9f843ea 100644
--- a/chrome/browser/ui/views/frame/browser_non_client_frame_view.cc
+++ b/chrome/browser/ui/views/frame/browser_non_client_frame_view.cc
@@ -29,6 +29,10 @@
 #include "ui/gfx/scoped_canvas.h"
 #include "ui/views/background.h"
 
+#if defined(OS_CHROMEOS)
+#include "chrome/browser/ui/ash/multi_user/multi_user_window_manager.h"
+#endif  // defined(OS_CHROMEOS)
+
 #if defined(OS_WIN)
 #include "chrome/browser/ui/views/frame/taskbar_decorator_win.h"
 #endif
@@ -37,6 +41,7 @@
                                                      BrowserView* browser_view)
     : frame_(frame),
       browser_view_(browser_view),
+      profile_switcher_(this),
       profile_indicator_icon_(nullptr) {
   // The profile manager may by null in tests.
   if (g_browser_process->profile_manager()) {
@@ -78,7 +83,7 @@
 }
 
 views::View* BrowserNonClientFrameView::GetProfileSwitcherView() const {
-  return nullptr;
+  return profile_switcher_.view();
 }
 
 views::View* BrowserNonClientFrameView::GetHostedAppMenuView() {
@@ -156,10 +161,17 @@
   return GetFrameOverlayImage(ShouldPaintAsActive());
 }
 
-void BrowserNonClientFrameView::UpdateProfileIndicatorIcon() {
-  // TODO(afakhry): Unify all platform-specific logic from callers to this
-  // function here. https://crbug.com/815031.
-  const Profile* profile = browser_view()->browser()->profile();
+void BrowserNonClientFrameView::UpdateProfileIcons() {
+  const AvatarButtonStyle avatar_button_style = GetAvatarButtonStyle();
+  if (avatar_button_style != AvatarButtonStyle::NONE &&
+      browser_view()->IsRegularOrGuestSession()) {
+    // Platform supports a profile switcher that will be shown. Skip the rest.
+    profile_switcher_.Update(avatar_button_style);
+    return;
+  }
+
+  Browser* browser = browser_view()->browser();
+  const Profile* profile = browser->profile();
   const bool is_incognito =
       profile->GetProfileType() == Profile::INCOGNITO_PROFILE;
 
@@ -167,9 +179,20 @@
   // frame. It's instead shown in the new tab button. However, we still show an
   // avatar icon for the teleported browser windows between multi-user sessions
   // (Chrome OS only). Note that you can't teleport an incognito window.
-  if (ui::MaterialDesignController::IsTouchOptimizedUiEnabled() && is_incognito)
+  if (is_incognito && ui::MaterialDesignController::IsTouchOptimizedUiEnabled())
     return;
 
+#if defined(OS_CHROMEOS)
+  // Ash and MUS specific.
+  if (!browser->is_type_tabbed() && !browser->is_app())
+    return;
+
+  if (!is_incognito && !MultiUserWindowManager::ShouldShowAvatar(
+                           browser_view()->GetNativeWindow())) {
+    return;
+  }
+#endif  // defined(OS_CHROMEOS)
+
   if (!profile_indicator_icon_) {
     profile_indicator_icon_ = new ProfileIndicatorIcon();
     profile_indicator_icon_->set_id(VIEW_ID_PROFILE_INDICATOR_ICON);
diff --git a/chrome/browser/ui/views/frame/browser_non_client_frame_view.h b/chrome/browser/ui/views/frame/browser_non_client_frame_view.h
index 6833dd838..9c89849 100644
--- a/chrome/browser/ui/views/frame/browser_non_client_frame_view.h
+++ b/chrome/browser/ui/views/frame/browser_non_client_frame_view.h
@@ -6,6 +6,7 @@
 #define CHROME_BROWSER_UI_VIEWS_FRAME_BROWSER_NON_CLIENT_FRAME_VIEW_H_
 
 #include "chrome/browser/profiles/profile_attributes_storage.h"
+#include "chrome/browser/ui/views/frame/avatar_button_manager.h"
 #include "chrome/browser/ui/views/profiles/profile_indicator_icon.h"
 #include "ui/views/window/non_client_view.h"
 
@@ -66,8 +67,9 @@
   // Updates the throbber.
   virtual void UpdateThrobber(bool running) = 0;
 
-  // Returns the profile switcher button, if this frame has any.
-  virtual views::View* GetProfileSwitcherView() const;
+  // Returns the profile switcher button, if this frame has any, nullptr if it
+  // doesn't.
+  views::View* GetProfileSwitcherView() const;
 
   // Returns the hosted app menu, asserts that it is present.
   virtual views::View* GetHostedAppMenuView();
@@ -99,12 +101,12 @@
   gfx::ImageSkia GetFrameImage() const;
   gfx::ImageSkia GetFrameOverlayImage() const;
 
-  // Updates the profile switcher button if one should exist. Otherwise, updates
-  // the icon that indicates incognito (or a teleported window in ChromeOS).
-  virtual void UpdateProfileIcons() = 0;
+  // Returns the style of the profile switcher avatar button.
+  virtual AvatarButtonStyle GetAvatarButtonStyle() const = 0;
 
-  // Updates the icon that indicates incognito/teleportation state.
-  void UpdateProfileIndicatorIcon();
+  // Updates all the profile icons as necessary (profile switcher button, or the
+  // icon that indicates incognito (or a teleported window in ChromeOS)).
+  void UpdateProfileIcons();
 
   void LayoutIncognitoButton();
 
@@ -115,6 +117,8 @@
   bool DoesIntersectRect(const views::View* target,
                          const gfx::Rect& rect) const override;
 
+  AvatarButtonManager* profile_switcher() { return &profile_switcher_; }
+
  private:
   // views::NonClientFrameView:
   void ViewHierarchyChanged(
@@ -141,6 +145,10 @@
   // The BrowserView hosted within this View.
   BrowserView* browser_view_;
 
+  // Wrapper around the in-frame profile switcher. Might not be used on all
+  // platforms.
+  AvatarButtonManager profile_switcher_;
+
   // On desktop, this is used to show an incognito icon. On CrOS, it's also used
   // for teleported windows (in multi-profile mode).
   ProfileIndicatorIcon* profile_indicator_icon_;
diff --git a/chrome/browser/ui/views/frame/browser_non_client_frame_view_ash.cc b/chrome/browser/ui/views/frame/browser_non_client_frame_view_ash.cc
index 0183c1d..b42bb5b 100644
--- a/chrome/browser/ui/views/frame/browser_non_client_frame_view_ash.cc
+++ b/chrome/browser/ui/views/frame/browser_non_client_frame_view_ash.cc
@@ -498,15 +498,9 @@
 // BrowserNonClientFrameViewAsh, protected:
 
 // BrowserNonClientFrameView:
-void BrowserNonClientFrameViewAsh::UpdateProfileIcons() {
-  Browser* browser = browser_view()->browser();
-  if (!browser->is_type_tabbed() && !browser->is_app())
-    return;
-  if ((browser->profile()->GetProfileType() == Profile::INCOGNITO_PROFILE) ||
-      MultiUserWindowManager::ShouldShowAvatar(
-          browser_view()->GetNativeWindow())) {
-    UpdateProfileIndicatorIcon();
-  }
+AvatarButtonStyle BrowserNonClientFrameViewAsh::GetAvatarButtonStyle() const {
+  // Ash doesn't support a profile switcher button.
+  return AvatarButtonStyle::NONE;
 }
 
 ///////////////////////////////////////////////////////////////////////////////
diff --git a/chrome/browser/ui/views/frame/browser_non_client_frame_view_ash.h b/chrome/browser/ui/views/frame/browser_non_client_frame_view_ash.h
index 80ed3f8..e6d956d36 100644
--- a/chrome/browser/ui/views/frame/browser_non_client_frame_view_ash.h
+++ b/chrome/browser/ui/views/frame/browser_non_client_frame_view_ash.h
@@ -88,7 +88,7 @@
 
  protected:
   // BrowserNonClientFrameView:
-  void UpdateProfileIcons() override;
+  AvatarButtonStyle GetAvatarButtonStyle() const override;
 
  private:
   FRIEND_TEST_ALL_PREFIXES(BrowserNonClientFrameViewAshTest,
diff --git a/chrome/browser/ui/views/frame/browser_non_client_frame_view_mac.h b/chrome/browser/ui/views/frame/browser_non_client_frame_view_mac.h
index 2614b743..5d5994d 100644
--- a/chrome/browser/ui/views/frame/browser_non_client_frame_view_mac.h
+++ b/chrome/browser/ui/views/frame/browser_non_client_frame_view_mac.h
@@ -32,7 +32,6 @@
   void UpdateWindowIcon() override;
   void UpdateWindowTitle() override;
   void SizeConstraintsChanged() override;
-  views::View* GetProfileSwitcherView() const override;
 
   // views::View:
   void Layout() override;
@@ -43,11 +42,9 @@
   void OnPaint(gfx::Canvas* canvas) override;
 
   // BrowserNonClientFrameView:
-  void UpdateProfileIcons() override;
+  AvatarButtonStyle GetAvatarButtonStyle() const override;
 
  private:
-  // Wrapper around the in-frame avatar switcher.
-  AvatarButtonManager profile_switcher_;
   void PaintThemedFrame(gfx::Canvas* canvas);
   int GetTabStripRightInset() const;
 
diff --git a/chrome/browser/ui/views/frame/browser_non_client_frame_view_mac.mm b/chrome/browser/ui/views/frame/browser_non_client_frame_view_mac.mm
index 88a5b59f..381e8b5 100644
--- a/chrome/browser/ui/views/frame/browser_non_client_frame_view_mac.mm
+++ b/chrome/browser/ui/views/frame/browser_non_client_frame_view_mac.mm
@@ -29,7 +29,7 @@
 BrowserNonClientFrameViewMac::BrowserNonClientFrameViewMac(
     BrowserFrame* frame,
     BrowserView* browser_view)
-    : BrowserNonClientFrameView(frame, browser_view), profile_switcher_(this) {}
+    : BrowserNonClientFrameView(frame, browser_view) {}
 
 BrowserNonClientFrameViewMac::~BrowserNonClientFrameViewMac() {
 }
@@ -52,8 +52,9 @@
 
 int BrowserNonClientFrameViewMac::GetTabStripRightInset() const {
   int inset = kTabstripRightInset;
-  if (profile_switcher_.view()) {
-    inset += profile_switcher_.view()->GetPreferredSize().width();
+  views::View* profile_switcher_view = GetProfileSwitcherView();
+  if (profile_switcher_view) {
+    inset += profile_switcher_view->GetPreferredSize().width();
   } else if (profile_indicator_icon()) {
     inset += profile_indicator_icon()->bounds().width() + kAvatarIconPadding;
   }
@@ -80,11 +81,12 @@
 }
 
 int BrowserNonClientFrameViewMac::NonClientHitTest(const gfx::Point& point) {
-  if (profile_switcher_.view()) {
+  views::View* profile_switcher_view = GetProfileSwitcherView();
+  if (profile_switcher_view) {
     gfx::Point point_in_switcher(point);
-    views::View::ConvertPointToTarget(this, profile_switcher_.view(),
+    views::View::ConvertPointToTarget(this, profile_switcher_view,
                                       &point_in_switcher);
-    if (profile_switcher_.view()->HitTestPoint(point_in_switcher)) {
+    if (profile_switcher_view->HitTestPoint(point_in_switcher)) {
       return HTCLIENT;
     }
   }
@@ -141,13 +143,14 @@
 
 void BrowserNonClientFrameViewMac::Layout() {
   DCHECK(browser_view());
+  views::View* profile_switcher_view = GetProfileSwitcherView();
   if (profile_indicator_icon() && browser_view()->IsTabStripVisible()) {
     LayoutIncognitoButton();
     // Mac lays out the incognito icon on the right, as the stoplight
     // buttons live in its Windows/Linux location.
     profile_indicator_icon()->SetX(width() - GetTabStripRightInset());
-  } else if (profile_switcher_.view() != nullptr) {
-    gfx::Size button_size = profile_switcher_.view()->GetPreferredSize();
+  } else if (profile_switcher_view != nullptr) {
+    gfx::Size button_size = profile_switcher_view->GetPreferredSize();
     int button_x = width() - GetTabStripRightInset();
     int button_y = 0;
     TabStrip* tabstrip = browser_view()->tabstrip();
@@ -157,23 +160,15 @@
       // Align the switcher's bottom to bottom of the new tab button;
       button_y = new_tab_button_bottom - button_size.height();
     }
-    profile_switcher_.view()->SetBounds(button_x, button_y, button_size.width(),
-                                        button_size.height());
+    profile_switcher_view->SetBounds(button_x, button_y, button_size.width(),
+                                     button_size.height());
   }
   BrowserNonClientFrameView::Layout();
 }
 
-views::View* BrowserNonClientFrameViewMac::GetProfileSwitcherView() const {
-  return profile_switcher_.view();
-}
-
 // BrowserNonClientFrameView:
-void BrowserNonClientFrameViewMac::UpdateProfileIcons() {
-  if (browser_view()->IsRegularOrGuestSession()) {
-    profile_switcher_.Update(AvatarButtonStyle::NATIVE);
-  } else {
-    UpdateProfileIndicatorIcon();
-  }
+AvatarButtonStyle BrowserNonClientFrameViewMac::GetAvatarButtonStyle() const {
+  return AvatarButtonStyle::NATIVE;
 }
 
 ///////////////////////////////////////////////////////////////////////////////
diff --git a/chrome/browser/ui/views/frame/browser_non_client_frame_view_mus.cc b/chrome/browser/ui/views/frame/browser_non_client_frame_view_mus.cc
index 7f72b35..f686243 100644
--- a/chrome/browser/ui/views/frame/browser_non_client_frame_view_mus.cc
+++ b/chrome/browser/ui/views/frame/browser_non_client_frame_view_mus.cc
@@ -90,9 +90,6 @@
     BrowserView* browser_view)
     : BrowserNonClientFrameView(frame, browser_view),
       window_icon_(nullptr),
-#if defined(FRAME_AVATAR_BUTTON)
-      profile_switcher_(this),
-#endif
       tab_strip_(nullptr) {
 }
 
@@ -166,14 +163,6 @@
     window_icon_->Update();
 }
 
-views::View* BrowserNonClientFrameViewMus::GetProfileSwitcherView() const {
-#if defined(FRAME_AVATAR_BUTTON)
-  return profile_switcher_.view();
-#else
-  return nullptr;
-#endif
-}
-
 void BrowserNonClientFrameViewMus::UpdateClientArea() {
   std::vector<gfx::Rect> additional_client_area;
   int top_container_offset = 0;
@@ -259,8 +248,9 @@
   int hit_test = HTCLIENT;
 
 #if defined(FRAME_AVATAR_BUTTON)
-  if (hit_test == HTCAPTION && profile_switcher_.view() &&
-      ConvertedHitTest(this, profile_switcher_.view(), point)) {
+  views::View* profile_switcher_view = GetProfileSwitcherView();
+  if (hit_test == HTCAPTION && profile_switcher_view &&
+      ConvertedHitTest(this, profile_switcher_view, point)) {
     return HTCLIENT;
   }
 #endif
@@ -314,7 +304,7 @@
     LayoutIncognitoButton();
 
 #if defined(FRAME_AVATAR_BUTTON)
-  if (profile_switcher_.view())
+  if (GetProfileSwitcherView())
     LayoutProfileSwitcher();
 #endif
 
@@ -370,24 +360,12 @@
 // BrowserNonClientFrameViewMus, protected:
 
 // BrowserNonClientFrameView:
-void BrowserNonClientFrameViewMus::UpdateProfileIcons() {
+AvatarButtonStyle BrowserNonClientFrameViewMus::GetAvatarButtonStyle() const {
 #if defined(FRAME_AVATAR_BUTTON)
-  if (browser_view()->IsRegularOrGuestSession()) {
-    profile_switcher_.Update(AvatarButtonStyle::NATIVE);
-    return;
-  }
+  return AvatarButtonStyle::NATIVE;
+#else
+  return AvatarButtonStyle::NONE;
 #endif
-  Browser* browser = browser_view()->browser();
-
-  // Similar logic as in BrowserNonClientFrameViewAsh::UpdateProfileIcons (minus
-  // the multi-profile part). That is, no profile indicator for non-tabbed and
-  // non-app browser window, or regular/guest user browser window.
-  if (!browser->is_type_tabbed() && !browser->is_app())
-    return;
-  if (browser_view()->IsRegularOrGuestSession())
-    return;
-
-  UpdateProfileIndicatorIcon();
 }
 
 ///////////////////////////////////////////////////////////////////////////////
@@ -417,9 +395,10 @@
   int right_inset = kTabstripRightSpacing + frame_right_insets;
 
 #if defined(FRAME_AVATAR_BUTTON)
-  if (profile_switcher_.view()) {
-    right_inset += kAvatarButtonOffset +
-                   profile_switcher_.view()->GetPreferredSize().width();
+  views::View* profile_switcher_view = GetProfileSwitcherView();
+  if (profile_switcher_view) {
+    right_inset +=
+        kAvatarButtonOffset + profile_switcher_view->GetPreferredSize().width();
   }
 #endif
 
@@ -435,10 +414,11 @@
 
 void BrowserNonClientFrameViewMus::LayoutProfileSwitcher() {
 #if defined(FRAME_AVATAR_BUTTON)
-  gfx::Size button_size = profile_switcher_.view()->GetPreferredSize();
+  views::View* profile_switcher_view = GetProfileSwitcherView();
+  gfx::Size button_size = profile_switcher_view->GetPreferredSize();
   int button_x = width() - GetTabStripRightInset() + kAvatarButtonOffset;
-  profile_switcher_.view()->SetBounds(button_x, 0, button_size.width(),
-                                      button_size.height());
+  profile_switcher_view->SetBounds(button_x, 0, button_size.width(),
+                                   button_size.height());
 #endif
 }
 
diff --git a/chrome/browser/ui/views/frame/browser_non_client_frame_view_mus.h b/chrome/browser/ui/views/frame/browser_non_client_frame_view_mus.h
index a39f2618..f45458f 100644
--- a/chrome/browser/ui/views/frame/browser_non_client_frame_view_mus.h
+++ b/chrome/browser/ui/views/frame/browser_non_client_frame_view_mus.h
@@ -36,7 +36,6 @@
   int GetTopInset(bool restored) const override;
   int GetThemeBackgroundXInset() const override;
   void UpdateThrobber(bool running) override;
-  views::View* GetProfileSwitcherView() const override;
   void UpdateClientArea() override;
   void UpdateMinimumSize() override;
 
@@ -64,7 +63,7 @@
 
  protected:
   // BrowserNonClientFrameView:
-  void UpdateProfileIcons() override;
+  AvatarButtonStyle GetAvatarButtonStyle() const override;
 
  private:
   // TabStripObserver:
@@ -102,11 +101,6 @@
   // For popups, the window icon.
   TabIconView* window_icon_;
 
-#if !defined(OS_CHROMEOS)
-  // Wrapper around the in-frame avatar switcher.
-  AvatarButtonManager profile_switcher_;
-#endif
-
   TabStrip* tab_strip_;
 
   DISALLOW_COPY_AND_ASSIGN(BrowserNonClientFrameViewMus);
diff --git a/chrome/browser/ui/views/frame/desktop_linux_browser_frame_view.cc b/chrome/browser/ui/views/frame/desktop_linux_browser_frame_view.cc
index d05b3e393..0fb105cd 100644
--- a/chrome/browser/ui/views/frame/desktop_linux_browser_frame_view.cc
+++ b/chrome/browser/ui/views/frame/desktop_linux_browser_frame_view.cc
@@ -15,7 +15,7 @@
     std::unique_ptr<views::NavButtonProvider> nav_button_provider)
     : OpaqueBrowserFrameView(frame, browser_view, layout),
       nav_button_provider_(std::move(nav_button_provider)) {
-  profile_switcher_.set_nav_button_provider(nav_button_provider_.get());
+  profile_switcher()->set_nav_button_provider(nav_button_provider_.get());
 }
 
 DesktopLinuxBrowserFrameView::~DesktopLinuxBrowserFrameView() {}
diff --git a/chrome/browser/ui/views/frame/glass_browser_frame_view.cc b/chrome/browser/ui/views/frame/glass_browser_frame_view.cc
index 2b0752c9..7a861ca 100644
--- a/chrome/browser/ui/views/frame/glass_browser_frame_view.cc
+++ b/chrome/browser/ui/views/frame/glass_browser_frame_view.cc
@@ -87,7 +87,6 @@
     : BrowserNonClientFrameView(frame, browser_view),
       window_icon_(nullptr),
       window_title_(nullptr),
-      profile_switcher_(this),
       minimize_button_(nullptr),
       maximize_button_(nullptr),
       restore_button_(nullptr),
@@ -213,10 +212,6 @@
   return min_size;
 }
 
-views::View* GlassBrowserFrameView::GetProfileSwitcherView() const {
-  return profile_switcher_.view();
-}
-
 void GlassBrowserFrameView::OnBrowserViewInitViewsComplete() {
   if (browser_view()->tabstrip()) {
     DCHECK(!tab_strip_observer_.IsObserving(browser_view()->tabstrip()));
@@ -275,11 +270,13 @@
     return HTNOWHERE;
 
   // See if the point is within the incognito icon or the profile switcher menu.
+  views::View* profile_switcher_view = GetProfileSwitcherView();
   if ((profile_indicator_icon() &&
        profile_indicator_icon()->GetMirroredBounds().Contains(point)) ||
-      (profile_switcher_.view() &&
-       profile_switcher_.view()->GetMirroredBounds().Contains(point)))
+      (profile_switcher_view &&
+       profile_switcher_view->GetMirroredBounds().Contains(point))) {
     return HTCLIENT;
+  }
 
   int frame_component = frame()->client_view()->NonClientHitTest(point);
 
@@ -439,11 +436,8 @@
 // GlassBrowserFrameView, protected:
 
 // BrowserNonClientFrameView:
-void GlassBrowserFrameView::UpdateProfileIcons() {
-  if (browser_view()->IsRegularOrGuestSession())
-    profile_switcher_.Update(AvatarButtonStyle::NATIVE);
-  else
-    UpdateProfileIndicatorIcon();
+AvatarButtonStyle GlassBrowserFrameView::GetAvatarButtonStyle() const {
+  return AvatarButtonStyle::NATIVE;
 }
 
 ///////////////////////////////////////////////////////////////////////////////
@@ -462,9 +456,10 @@
   bool hit_incognito_icon =
       profile_indicator_icon() &&
       profile_indicator_icon()->GetMirroredBounds().Intersects(rect);
+  views::View* profile_switcher_view = GetProfileSwitcherView();
   bool hit_profile_switcher_button =
-      profile_switcher_.view() &&
-      profile_switcher_.view()->GetMirroredBounds().Intersects(rect);
+      profile_switcher_view &&
+      profile_switcher_view->GetMirroredBounds().Intersects(rect);
   return hit_incognito_icon || hit_profile_switcher_button ||
          !frame()->client_view()->bounds().Intersects(rect);
 }
@@ -705,7 +700,7 @@
 void GlassBrowserFrameView::LayoutProfileSwitcher() {
   DCHECK(browser_view()->IsRegularOrGuestSession());
 
-  View* profile_switcher = profile_switcher_.view();
+  View* profile_switcher = GetProfileSwitcherView();
   if (!profile_switcher)
     return;
 
diff --git a/chrome/browser/ui/views/frame/glass_browser_frame_view.h b/chrome/browser/ui/views/frame/glass_browser_frame_view.h
index a77504c9..773406a9 100644
--- a/chrome/browser/ui/views/frame/glass_browser_frame_view.h
+++ b/chrome/browser/ui/views/frame/glass_browser_frame_view.h
@@ -36,7 +36,6 @@
   int GetThemeBackgroundXInset() const override;
   void UpdateThrobber(bool running) override;
   gfx::Size GetMinimumSize() const override;
-  views::View* GetProfileSwitcherView() const override;
   void OnBrowserViewInitViewsComplete() override;
 
   // views::NonClientFrameView:
@@ -76,7 +75,7 @@
   void Layout() override;
 
   // BrowserNonClientFrameView:
-  void UpdateProfileIcons() override;
+  AvatarButtonStyle GetAvatarButtonStyle() const override;
 
  private:
   // views::NonClientFrameView:
@@ -183,9 +182,6 @@
   TabIconView* window_icon_;
   views::Label* window_title_;
 
-  // Wrapper around the in-frame profile switcher.
-  AvatarButtonManager profile_switcher_;
-
   // Custom-drawn caption buttons. Only used when custom-drawing the titlebar.
   Windows10CaptionButton* minimize_button_;
   Windows10CaptionButton* maximize_button_;
diff --git a/chrome/browser/ui/views/frame/opaque_browser_frame_view.cc b/chrome/browser/ui/views/frame/opaque_browser_frame_view.cc
index 8ee17db..af731ef 100644
--- a/chrome/browser/ui/views/frame/opaque_browser_frame_view.cc
+++ b/chrome/browser/ui/views/frame/opaque_browser_frame_view.cc
@@ -65,7 +65,6 @@
     BrowserView* browser_view,
     OpaqueBrowserFrameViewLayout* layout)
     : BrowserNonClientFrameView(frame, browser_view),
-      profile_switcher_(this),
       layout_(layout),
       minimize_button_(nullptr),
       maximize_button_(nullptr),
@@ -174,10 +173,6 @@
   return layout_->GetMinimumSize(width());
 }
 
-views::View* OpaqueBrowserFrameView::GetProfileSwitcherView() const {
-  return profile_switcher_.view();
-}
-
 ///////////////////////////////////////////////////////////////////////////////
 // OpaqueBrowserFrameView, views::NonClientFrameView implementation:
 
@@ -196,8 +191,9 @@
       profile_indicator_icon()->GetMirroredBounds().Contains(point)) {
     return true;
   }
-  if (profile_switcher_.view() &&
-      profile_switcher_.view()->GetMirroredBounds().Contains(point)) {
+  views::View* profile_switcher_view = GetProfileSwitcherView();
+  if (profile_switcher_view &&
+      profile_switcher_view->GetMirroredBounds().Contains(point)) {
     return true;
   }
 
@@ -491,11 +487,8 @@
          platform_observer_->IsUsingSystemTheme();
 }
 
-void OpaqueBrowserFrameView::UpdateProfileIcons() {
-  if (browser_view()->IsRegularOrGuestSession())
-    profile_switcher_.Update(AvatarButtonStyle::THEMED);
-  else
-    UpdateProfileIndicatorIcon();
+AvatarButtonStyle OpaqueBrowserFrameView::GetAvatarButtonStyle() const {
+  return AvatarButtonStyle::THEMED;
 }
 
 void OpaqueBrowserFrameView::MaybeRedrawFrameButtons() {}
diff --git a/chrome/browser/ui/views/frame/opaque_browser_frame_view.h b/chrome/browser/ui/views/frame/opaque_browser_frame_view.h
index e6ca650e..29ceddf7 100644
--- a/chrome/browser/ui/views/frame/opaque_browser_frame_view.h
+++ b/chrome/browser/ui/views/frame/opaque_browser_frame_view.h
@@ -55,7 +55,6 @@
   int GetThemeBackgroundXInset() const override;
   void UpdateThrobber(bool running) override;
   gfx::Size GetMinimumSize() const override;
-  views::View* GetProfileSwitcherView() const override;
 
   // views::NonClientFrameView:
   gfx::Rect GetBoundsForClientView() const override;
@@ -116,7 +115,7 @@
 
   // BrowserNonClientFrameView:
   bool ShouldPaintAsThemed() const override;
-  void UpdateProfileIcons() override;
+  AvatarButtonStyle GetAvatarButtonStyle() const override;
 
   OpaqueBrowserFrameViewLayout* layout() { return layout_; }
 
@@ -124,9 +123,6 @@
   // associated with |{minimize,maximize,restore,close}_button_|.
   virtual void MaybeRedrawFrameButtons();
 
-  // Wrapper around the in-frame avatar switcher.
-  AvatarButtonManager profile_switcher_;
-
  private:
   // Creates, adds and returns a new image button with |this| as its listener.
   // Memory is owned by the caller.
diff --git a/chrome/browser/ui/views/ime_driver/input_method_bridge_chromeos_unittest.cc b/chrome/browser/ui/views/ime_driver/input_method_bridge_chromeos_unittest.cc
index b645730..4f0145c 100644
--- a/chrome/browser/ui/views/ime_driver/input_method_bridge_chromeos_unittest.cc
+++ b/chrome/browser/ui/views/ime_driver/input_method_bridge_chromeos_unittest.cc
@@ -73,9 +73,8 @@
     if (run_loop_)
       run_loop_->Quit();
   }
-  void InsertText(const std::string& text) override {
-    CompositionEvent ev = {CompositionEventType::INSERT_TEXT,
-                           base::UTF8ToUTF16(text), 0};
+  void InsertText(const base::string16& text) override {
+    CompositionEvent ev = {CompositionEventType::INSERT_TEXT, text, 0};
     receieved_event_ = ev;
     if (run_loop_)
       run_loop_->Quit();
diff --git a/chrome/browser/ui/views/ime_driver/remote_text_input_client.cc b/chrome/browser/ui/views/ime_driver/remote_text_input_client.cc
index 9822311f..74ef072 100644
--- a/chrome/browser/ui/views/ime_driver/remote_text_input_client.cc
+++ b/chrome/browser/ui/views/ime_driver/remote_text_input_client.cc
@@ -4,8 +4,6 @@
 
 #include "chrome/browser/ui/views/ime_driver/remote_text_input_client.h"
 
-#include "base/strings/utf_string_conversions.h"
-
 RemoteTextInputClient::RemoteTextInputClient(
     ui::mojom::TextInputClientPtr remote_client,
     ui::TextInputType text_input_type,
@@ -45,7 +43,7 @@
 }
 
 void RemoteTextInputClient::InsertText(const base::string16& text) {
-  remote_client_->InsertText(base::UTF16ToUTF8(text));
+  remote_client_->InsertText(text);
 }
 
 void RemoteTextInputClient::InsertChar(const ui::KeyEvent& event) {
diff --git a/chrome/browser/ui/views/payments/payment_handler_web_flow_view_controller.cc b/chrome/browser/ui/views/payments/payment_handler_web_flow_view_controller.cc
index 5324a58..b8f959a 100644
--- a/chrome/browser/ui/views/payments/payment_handler_web_flow_view_controller.cc
+++ b/chrome/browser/ui/views/payments/payment_handler_web_flow_view_controller.cc
@@ -188,11 +188,14 @@
 void PaymentHandlerWebFlowViewController::ButtonPressed(
     views::Button* sender,
     const ui::Event& event) {
-  if (web_contents() &&
-      sender->tag() ==
-          static_cast<int>(PaymentHandlerWebFlowTags::SITE_SETTINGS_TAG)) {
-    chrome::ShowSiteSettings(dialog()->GetProfile(),
-                             web_contents()->GetLastCommittedURL());
+  if (sender->tag() ==
+      static_cast<int>(PaymentHandlerWebFlowTags::SITE_SETTINGS_TAG)) {
+    if (web_contents()) {
+      chrome::ShowSiteSettings(dialog()->GetProfile(),
+                               web_contents()->GetLastCommittedURL());
+    }
+  } else {
+    PaymentRequestSheetController::ButtonPressed(sender, event);
   }
 }
 
diff --git a/chrome/browser/ui/views/payments/payment_request_payment_app_browsertest.cc b/chrome/browser/ui/views/payments/payment_request_payment_app_browsertest.cc
index 35a05e68..2a9667cb 100644
--- a/chrome/browser/ui/views/payments/payment_request_payment_app_browsertest.cc
+++ b/chrome/browser/ui/views/payments/payment_request_payment_app_browsertest.cc
@@ -3,6 +3,7 @@
 // found in the LICENSE file.
 
 #include "base/macros.h"
+#include "chrome/browser/permissions/permission_request_manager.h"
 #include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/browser/ui/views/payments/payment_request_browsertest_base.h"
@@ -33,6 +34,11 @@
         features::kServiceWorkerPaymentApps);
   }
 
+  PermissionRequestManager* GetPermissionRequestManager() {
+    return PermissionRequestManager::FromWebContents(
+        browser()->tab_strip_model()->GetActiveWebContents());
+  }
+
   // Starts the test severs and opens a test page on alicepay.com.
   void SetUpOnMainThread() override {
     PaymentRequestBrowserTestBase::SetUpOnMainThread();
@@ -40,6 +46,9 @@
     ASSERT_TRUE(StartTestServer("alicepay.com", &alicepay_));
     ASSERT_TRUE(StartTestServer("bobpay.com", &bobpay_));
     ASSERT_TRUE(StartTestServer("frankpay.com", &frankpay_));
+
+    GetPermissionRequestManager()->set_auto_response_for_test(
+        PermissionRequestManager::ACCEPT_ALL);
   }
 
   // Invokes the JavaScript function install(|method_name|) in
diff --git a/chrome/browser/ui/views/profiles/avatar_button.cc b/chrome/browser/ui/views/profiles/avatar_button.cc
index 3d6f0b5f..8f7525d 100644
--- a/chrome/browser/ui/views/profiles/avatar_button.cc
+++ b/chrome/browser/ui/views/profiles/avatar_button.cc
@@ -195,6 +195,7 @@
       profile_observer_(this),
       button_style_(button_style),
       widget_observer_(this) {
+  DCHECK_NE(button_style, AvatarButtonStyle::NONE);
 #if BUILDFLAG(ENABLE_NATIVE_WINDOW_NAV_BUTTONS)
   views::NavButtonProvider* nav_button_provider =
       manager->get_nav_button_provider();
diff --git a/chrome/browser/ui/views/profiles/avatar_button_style.h b/chrome/browser/ui/views/profiles/avatar_button_style.h
index 1f3d6b03..b8a54e8 100644
--- a/chrome/browser/ui/views/profiles/avatar_button_style.h
+++ b/chrome/browser/ui/views/profiles/avatar_button_style.h
@@ -7,6 +7,7 @@
 
 // Different Avatar button styles that can be applied.
 enum class AvatarButtonStyle {
+  NONE,    // No avatar button should be used.
   THEMED,  // Used in a themed browser window.
   NATIVE,  // Used in a native aero or metro window.
 };
diff --git a/chrome/browser/ui/views/profiles/dice_accounts_menu.cc b/chrome/browser/ui/views/profiles/dice_accounts_menu.cc
index e17008e..e7f5846 100644
--- a/chrome/browser/ui/views/profiles/dice_accounts_menu.cc
+++ b/chrome/browser/ui/views/profiles/dice_accounts_menu.cc
@@ -20,6 +20,9 @@
 // Used to identify the "Use another account" button.
 constexpr int kUseAnotherAccountCmdId = std::numeric_limits<int>::max();
 
+// Anchor inset used to position the accounts menu.
+constexpr int kAnchorInset = 8;
+
 // TODO(tangltom): Calculate these values considering the existing menu config
 constexpr int kVerticalImagePadding = 9;
 constexpr int kHorizontalImagePadding = 6;
@@ -86,9 +89,18 @@
   DCHECK(!runner_);
   runner_ = std::make_unique<views::MenuRunner>(
       &menu_, views::MenuRunner::COMBOBOX | views::MenuRunner::ALWAYS_VIEWS);
-  runner_->RunMenuAt(anchor_view->GetWidget(), nullptr,
-                     anchor_view->GetBoundsInScreen(),
-                     views::MENU_ANCHOR_BUBBLE_BELOW, ui::MENU_SOURCE_MOUSE);
+  // Calculate custom anchor bounds to position the menu.
+  // The menu is aligned along the right edge (left edge in RTL mode) of the
+  // anchor, slightly shifted inside by |kAnchorInset| and overlapping
+  // |anchor_view| on the bottom by |kAnchorInset|. |anchor_bounds|' width is
+  // set to 0 so that the menu only is as wide as it needs to be.
+  gfx::Rect anchor_bounds = anchor_view->GetBoundsInScreen();
+  anchor_bounds.Inset(
+      base::i18n::IsRTL() ? kAnchorInset : anchor_bounds.width() - kAnchorInset,
+      kAnchorInset, 0, kAnchorInset);
+  anchor_bounds.set_width(0);
+  runner_->RunMenuAt(anchor_view->GetWidget(), nullptr, anchor_bounds,
+                     views::MENU_ANCHOR_TOPRIGHT, ui::MENU_SOURCE_MOUSE);
 }
 
 DiceAccountsMenu::~DiceAccountsMenu() {}
diff --git a/chrome/browser/ui/views/profiles/profile_chooser_view.cc b/chrome/browser/ui/views/profiles/profile_chooser_view.cc
index 8cd45143..c959618b 100644
--- a/chrome/browser/ui/views/profiles/profile_chooser_view.cc
+++ b/chrome/browser/ui/views/profiles/profile_chooser_view.cc
@@ -1064,8 +1064,10 @@
     promotext_top_spacing = 24;
   }
   // Add the promo text.
-  views::Label* promo = new views::Label(
-      l10n_util::GetStringUTF16(IDS_PROFILES_DICE_SIGNIN_PROMO));
+  bool show_personalized_promo = !dice_sync_promo_accounts_.empty();
+  views::Label* promo = new views::Label(l10n_util::GetStringUTF16(
+      show_personalized_promo ? IDS_PROFILES_DICE_SYNC_PROMO
+                              : IDS_PROFILES_DICE_SIGNIN_PROMO));
   promo->SetMultiLine(true);
   promo->SetHorizontalAlignment(gfx::ALIGN_LEFT);
   promo->SetMaximumWidth(menu_width_ - 2 * kMenuEdgeMargin);
@@ -1081,9 +1083,8 @@
   signin_button_view->SetBorder(
       views::CreateSolidBorder(kMenuEdgeMargin, SK_ColorTRANSPARENT));
 
-  if (dice_sync_promo_accounts_.empty()) {
-    // When there is no signed in web account, create a sign-in button without
-    // account information.
+  if (!show_personalized_promo) {
+    // Create a sign-in button without account information.
     signin_current_profile_button_ = new DiceSigninButton(this);
     signin_button_view->AddChildView(signin_current_profile_button_);
     view->AddChildView(signin_button_view);
diff --git a/chrome/browser/ui/views/relaunch_notification/get_app_menu_anchor_point.h b/chrome/browser/ui/views/relaunch_notification/get_app_menu_anchor_point.h
new file mode 100644
index 0000000..0811df2
--- /dev/null
+++ b/chrome/browser/ui/views/relaunch_notification/get_app_menu_anchor_point.h
@@ -0,0 +1,16 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_UI_VIEWS_RELAUNCH_NOTIFICATION_GET_APP_MENU_ANCHOR_POINT_H_
+#define CHROME_BROWSER_UI_VIEWS_RELAUNCH_NOTIFICATION_GET_APP_MENU_ANCHOR_POINT_H_
+
+#include "ui/gfx/geometry/point.h"
+
+class Browser;
+
+// Returns the point to which bubbles should be anchored for the app menu of
+// |browser|.
+gfx::Point GetAppMenuAnchorPoint(Browser* browser);
+
+#endif  // CHROME_BROWSER_UI_VIEWS_RELAUNCH_NOTIFICATION_GET_APP_MENU_ANCHOR_POINT_H_
diff --git a/chrome/browser/ui/views/relaunch_notification/get_app_menu_anchor_point.mm b/chrome/browser/ui/views/relaunch_notification/get_app_menu_anchor_point.mm
new file mode 100644
index 0000000..261ccda
--- /dev/null
+++ b/chrome/browser/ui/views/relaunch_notification/get_app_menu_anchor_point.mm
@@ -0,0 +1,22 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#import "chrome/browser/ui/views/relaunch_notification/get_app_menu_anchor_point.h"
+
+#import "chrome/browser/ui/browser.h"
+#import "chrome/browser/ui/browser_window.h"
+#import "chrome/browser/ui/cocoa/browser_window_controller.h"
+#import "chrome/browser/ui/cocoa/toolbar/toolbar_controller.h"
+#include "ui/base/cocoa/cocoa_base_utils.h"
+#import "ui/gfx/mac/coordinate_conversion.h"
+
+gfx::Point GetAppMenuAnchorPoint(Browser* browser) {
+  NSWindow* parent_window = browser->window()->GetNativeWindow();
+  BrowserWindowController* bwc =
+      [BrowserWindowController browserWindowControllerForWindow:parent_window];
+  ToolbarController* tbc = [bwc toolbarController];
+  NSPoint ns_point = [tbc appMenuBubblePoint];
+  return gfx::ScreenPointFromNSPoint(
+      ui::ConvertPointFromWindowToScreen(parent_window, ns_point));
+}
diff --git a/chrome/browser/ui/views/relaunch_notification/relaunch_notification_controller.cc b/chrome/browser/ui/views/relaunch_notification/relaunch_notification_controller.cc
index 006e3965..7d89300e 100644
--- a/chrome/browser/ui/views/relaunch_notification/relaunch_notification_controller.cc
+++ b/chrome/browser/ui/views/relaunch_notification/relaunch_notification_controller.cc
@@ -6,9 +6,20 @@
 
 #include "base/bind.h"
 #include "base/logging.h"
+#include "base/metrics/histogram_functions.h"
 #include "chrome/browser/browser_process.h"
+#include "chrome/browser/lifetime/application_lifetime.h"
+#include "chrome/browser/ui/browser.h"
+#include "chrome/browser/ui/browser_list.h"
+#include "chrome/browser/ui/views/relaunch_notification/relaunch_recommended_bubble_view.h"
+#include "chrome/common/buildflags.h"
 #include "chrome/common/pref_names.h"
 #include "components/prefs/pref_service.h"
+#include "ui/views/widget/widget.h"
+
+#if BUILDFLAG(ENABLE_BACKGROUND_MODE)
+#include "chrome/browser/background/background_mode_manager.h"
+#endif  // BUILDFLAG(ENABLE_BACKGROUND_MODE)
 
 namespace {
 
@@ -36,13 +47,49 @@
   return RelaunchNotificationSetting::kChromeMenuOnly;
 }
 
+// The result of an attempt to show a relaunch notification dialog. These values
+// are persisted to logs. Entries should not be renumbered and numeric values
+// should never be reused.
+enum class ShowResult {
+  kShown = 0,
+  kUnknownNotShownReason = 1,
+  kBackgroundModeNoWindows = 2,
+  kCount
+};
+
+// Returns the reason why a dialog was not shown when the conditions were ripe
+// for such.
+ShowResult GetNotShownReason() {
+#if BUILDFLAG(ENABLE_BACKGROUND_MODE)
+  BackgroundModeManager* background_mode_manager =
+      g_browser_process->background_mode_manager();
+  if (background_mode_manager &&
+      background_mode_manager->IsBackgroundWithoutWindows()) {
+    return ShowResult::kBackgroundModeNoWindows;
+  }
+#endif  // BUILDFLAG(ENABLE_BACKGROUND_MODE)
+  return ShowResult::kUnknownNotShownReason;
+}
+
+// Returns the last active tabbed browser.
+Browser* FindLastActiveTabbedBrowser() {
+  BrowserList* browser_list = BrowserList::GetInstance();
+  const auto end = browser_list->end_last_active();
+  for (auto scan = browser_list->begin_last_active(); scan != end; ++scan) {
+    if ((*scan)->is_type_tabbed())
+      return *scan;
+  }
+  return nullptr;
+}
+
 }  // namespace
 
 RelaunchNotificationController::RelaunchNotificationController(
     UpgradeDetector* upgrade_detector)
     : upgrade_detector_(upgrade_detector),
       last_notification_style_(NotificationStyle::kNone),
-      last_level_(UpgradeDetector::UPGRADE_ANNOYANCE_NONE) {
+      last_level_(UpgradeDetector::UPGRADE_ANNOYANCE_NONE),
+      recommended_widget_(nullptr) {
   PrefService* local_state = g_browser_process->local_state();
   if (local_state) {
     pref_change_registrar_.Init(local_state);
@@ -81,9 +128,11 @@
     case UpgradeDetector::UPGRADE_ANNOYANCE_LOW:
     case UpgradeDetector::UPGRADE_ANNOYANCE_ELEVATED:
     case UpgradeDetector::UPGRADE_ANNOYANCE_HIGH:
-    case UpgradeDetector::UPGRADE_ANNOYANCE_SEVERE:
-      ShowRelaunchNotification();
+      ShowRelaunchNotification(current_level);
       break;
+    case UpgradeDetector::UPGRADE_ANNOYANCE_SEVERE:
+      // Severe neither triggers new behavior, nor changes last_level_.
+      return;
     case UpgradeDetector::UPGRADE_ANNOYANCE_CRITICAL:
       // Critical notifications are handled by ToolbarView.
       // TODO(grt): Reconsider this when implementing the relaunch required
@@ -98,6 +147,22 @@
   last_level_ = current_level;
 }
 
+void RelaunchNotificationController::OnWidgetClosing(views::Widget* widget) {
+  widget->RemoveObserver(this);
+
+  if (widget == recommended_widget_)
+    recommended_widget_ = nullptr;
+}
+
+std::string RelaunchNotificationController::GetSuffixedHistogramName(
+    base::StringPiece base_name) {
+  DCHECK_NE(last_notification_style_, NotificationStyle::kNone);
+  return base_name.as_string().append(last_notification_style_ ==
+                                              NotificationStyle::kRecommended
+                                          ? ".Recommneded"
+                                          : ".Required");
+}
+
 void RelaunchNotificationController::HandleCurrentStyle() {
   NotificationStyle notification_style = NotificationStyle::kNone;
 
@@ -151,13 +216,29 @@
   upgrade_detector_->RemoveObserver(this);
 }
 
-void RelaunchNotificationController::ShowRelaunchNotification() {
+void RelaunchNotificationController::ShowRelaunchNotification(
+    UpgradeDetector::UpgradeNotificationAnnoyanceLevel level) {
   DCHECK_NE(last_notification_style_, NotificationStyle::kNone);
 
-  if (last_notification_style_ == NotificationStyle::kRecommended)
+  if (last_notification_style_ == NotificationStyle::kRecommended) {
+    // If this is the final showing (the one at the "high" level), start the
+    // timer to reshow the bubble at each "elevated to high" interval.
+    if (level == UpgradeDetector::UPGRADE_ANNOYANCE_HIGH) {
+      if (!reshow_bubble_timer_.IsRunning()) {
+        reshow_bubble_timer_.Start(
+            FROM_HERE, upgrade_detector_->GetHighAnnoyanceLevelDelta(), this,
+            &RelaunchNotificationController::ShowRelaunchRecommendedBubble);
+      }
+    } else {
+      // Make sure the timer isn't running following a drop down from HIGH to a
+      // lower level.
+      reshow_bubble_timer_.Stop();
+    }
+
     ShowRelaunchRecommendedBubble();
-  else
+  } else {
     ShowRelaunchRequiredDialog();
+  }
 }
 
 void RelaunchNotificationController::CloseRelaunchNotification() {
@@ -169,18 +250,42 @@
     return;
   }
 
-  if (last_notification_style_ == NotificationStyle::kRecommended)
+  if (last_notification_style_ == NotificationStyle::kRecommended) {
+    // Explicit closure cancels repeatedly reshowing the bubble.
+    reshow_bubble_timer_.Stop();
     CloseRelaunchRecommendedBubble();
-  else
+  } else {
     CloseRelaunchRequiredDialog();
+  }
 }
 
 void RelaunchNotificationController::ShowRelaunchRecommendedBubble() {
-  // TODO(grt): implement.
+  static constexpr char kShowResultHistogramPrefix[] =
+      "RelaunchNotification.ShowResult";
+
+  // Nothing to do if the bubble is visible.
+  if (recommended_widget_)
+    return;
+
+  // Show the bubble in the most recently active browser.
+  Browser* browser = FindLastActiveTabbedBrowser();
+  base::UmaHistogramEnumeration(
+      GetSuffixedHistogramName(kShowResultHistogramPrefix),
+      browser ? ShowResult::kShown : GetNotShownReason(), ShowResult::kCount);
+  if (!browser)
+    return;
+
+  recommended_widget_ = RelaunchRecommendedBubbleView::ShowBubble(
+      browser, upgrade_detector_->upgrade_detected_time(),
+      base::BindRepeating(&chrome::AttemptRestart));
+
+  // Monitor the widget so that |recommended_widget_| can be cleared on close.
+  recommended_widget_->AddObserver(this);
 }
 
 void RelaunchNotificationController::CloseRelaunchRecommendedBubble() {
-  // TODO(grt): implement.
+  if (recommended_widget_)
+    recommended_widget_->Close();
 }
 
 void RelaunchNotificationController::ShowRelaunchRequiredDialog() {
diff --git a/chrome/browser/ui/views/relaunch_notification/relaunch_notification_controller.h b/chrome/browser/ui/views/relaunch_notification/relaunch_notification_controller.h
index 8189261..9ec35a7 100644
--- a/chrome/browser/ui/views/relaunch_notification/relaunch_notification_controller.h
+++ b/chrome/browser/ui/views/relaunch_notification/relaunch_notification_controller.h
@@ -5,16 +5,29 @@
 #ifndef CHROME_BROWSER_UI_VIEWS_RELAUNCH_NOTIFICATION_RELAUNCH_NOTIFICATION_CONTROLLER_H_
 #define CHROME_BROWSER_UI_VIEWS_RELAUNCH_NOTIFICATION_RELAUNCH_NOTIFICATION_CONTROLLER_H_
 
+#include <string>
+
 #include "base/macros.h"
+#include "base/strings/string_piece.h"
+#include "base/timer/timer.h"
 #include "chrome/browser/upgrade_detector.h"
 #include "chrome/browser/upgrade_observer.h"
 #include "components/prefs/pref_change_registrar.h"
+#include "ui/views/widget/widget_observer.h"
+
+namespace views {
+class Widget;
+}
 
 // A class that observes changes to the browser.relaunch_notification preference
 // (which is backed by the RelaunchNotification policy setting) and annoyance
 // levels from the UpgradeDetector. An appropriate notification is shown to the
 // user based on the policy setting and current upgrade annoyance level.
-class RelaunchNotificationController : public UpgradeObserver {
+// Notifications are shown at low, elevated, and high annoyance levels (as
+// defined by the UpgradeDetector). In cases where an administrator recommends a
+// relaunch, a bubble for such is repeatedly shown until the user relaunches.
+class RelaunchNotificationController : public UpgradeObserver,
+                                       public views::WidgetObserver {
  public:
   // |upgrade_detector| is expected to be the process-wide detector, and must
   // outlive the controller.
@@ -25,6 +38,9 @@
   // UpgradeObserver:
   void OnUpgradeRecommended() override;
 
+  // views::WidgetObserver:
+  void OnWidgetClosing(views::Widget* widget) override;
+
  private:
   enum class NotificationStyle {
     kNone,         // No notifications are shown.
@@ -32,6 +48,10 @@
     kRequired,     // Relaunches are required.
   };
 
+  // Returns the name of a histogram of |base_name| suffixed with the name of
+  // the current notification style.
+  std::string GetSuffixedHistogramName(base::StringPiece base_name);
+
   // Adjusts to the current notification style as indicated by the
   // browser.relaunch_notification Local State preference.
   void HandleCurrentStyle();
@@ -41,13 +61,19 @@
   void StopObservingUpgrades();
 
   // Shows the proper notification based on the preference setting. Invoked as a
-  // result of a detected change in the UpgradeDetector's annoyance level.
-  void ShowRelaunchNotification();
+  // result of a detected change in the UpgradeDetector's annoyance level to
+  // |level|. In the case where a relaunch is recommended and |level| indicates
+  // that the highest annoyance level has been reached, starts a timer to
+  // repeatedly show the relaunch recommended notification.
+  void ShowRelaunchNotification(
+      UpgradeDetector::UpgradeNotificationAnnoyanceLevel level);
 
   // Closes any previously-shown notifications. This is safe to call if no
   // notifications have been shown. Notifications may be closed by other means
   // (e.g., by the user), so there is no expectation that a previously-shown
-  // notification is still open when this is invoked.
+  // notification is still open when this is invoked. In the case where a
+  // relaunch is recommended, the timer to repeatedly show the relaunch
+  // recommended notification is also stopped.
   void CloseRelaunchNotification();
 
   // The following methods, which are invoked by the controller to show or close
@@ -84,6 +110,14 @@
   // when a notification has been shown.
   UpgradeDetector::UpgradeNotificationAnnoyanceLevel last_level_;
 
+  // The widget hosting the relaunch recommended bubble, or null if the bubble
+  // is not currently shown.
+  views::Widget* recommended_widget_;
+
+  // A repeating timer started once high annoyance level is reached that causes
+  // the relaunch recommended bubble to be reshown.
+  base::RepeatingTimer reshow_bubble_timer_;
+
   DISALLOW_COPY_AND_ASSIGN(RelaunchNotificationController);
 };
 
diff --git a/chrome/browser/ui/views/relaunch_notification/relaunch_notification_controller_unittest.cc b/chrome/browser/ui/views/relaunch_notification/relaunch_notification_controller_unittest.cc
index b12a993..41fd2df 100644
--- a/chrome/browser/ui/views/relaunch_notification/relaunch_notification_controller_unittest.cc
+++ b/chrome/browser/ui/views/relaunch_notification/relaunch_notification_controller_unittest.cc
@@ -7,6 +7,8 @@
 #include <memory>
 
 #include "base/macros.h"
+#include "base/test/scoped_task_environment.h"
+#include "base/time/time.h"
 #include "base/values.h"
 #include "chrome/browser/upgrade_detector.h"
 #include "chrome/common/pref_names.h"
@@ -74,6 +76,10 @@
  public:
   FakeUpgradeDetector() = default;
 
+  base::TimeDelta GetHighAnnoyanceLevelDelta() override {
+    return base::TimeDelta();  // No delay.
+  }
+
   // Sets the annoyance level to |level| and broadcasts the change to all
   // observers.
   void BroadcastLevelChange(UpgradeNotificationAnnoyanceLevel level) {
@@ -92,7 +98,10 @@
 class RelaunchNotificationControllerTest : public ::testing::Test {
  protected:
   RelaunchNotificationControllerTest()
-      : scoped_local_state_(TestingBrowserProcess::GetGlobal()) {}
+      : scoped_task_environment_(
+            base::test::ScopedTaskEnvironment::MainThreadType::DEFAULT,
+            base::test::ScopedTaskEnvironment::ExecutionMode::QUEUED),
+        scoped_local_state_(TestingBrowserProcess::GetGlobal()) {}
   UpgradeDetector* upgrade_detector() { return &upgrade_detector_; }
   FakeUpgradeDetector& fake_upgrade_detector() { return upgrade_detector_; }
 
@@ -103,7 +112,11 @@
         prefs::kRelaunchNotification, std::make_unique<base::Value>(value));
   }
 
+  // Runs tasks until the queues are empty.
+  void RunUntilIdle() { scoped_task_environment_.RunUntilIdle(); }
+
  private:
+  base::test::ScopedTaskEnvironment scoped_task_environment_;
   ScopedTestingLocalState scoped_local_state_;
   FakeUpgradeDetector upgrade_detector_;
 
@@ -174,25 +187,23 @@
   fake_upgrade_detector().BroadcastLevelChange(
       UpgradeDetector::UPGRADE_ANNOYANCE_HIGH);
   ::testing::Mock::VerifyAndClear(&mock_controller_delegate);
-  fake_upgrade_detector().BroadcastLevelChange(
-      UpgradeDetector::UPGRADE_ANNOYANCE_HIGH);
+
+  // The timer should be running to reshow at the detector's delta. Expect this
+  // to happen once, at which point we drop the annoyance to break out of the
+  // loop. Show will be invoked a second time to handle the drop to elevated.
+  EXPECT_CALL(mock_controller_delegate, ShowRelaunchRecommendedBubble())
+      .Times(2)
+      .WillOnce(::testing::InvokeWithoutArgs([this]() {
+        this->fake_upgrade_detector().BroadcastLevelChange(
+            UpgradeDetector::UPGRADE_ANNOYANCE_ELEVATED);
+      }));
+  RunUntilIdle();
   ::testing::Mock::VerifyAndClear(&mock_controller_delegate);
 
-  EXPECT_CALL(mock_controller_delegate, ShowRelaunchRecommendedBubble());
+  // Severe is ignored.
   fake_upgrade_detector().BroadcastLevelChange(
       UpgradeDetector::UPGRADE_ANNOYANCE_SEVERE);
   ::testing::Mock::VerifyAndClear(&mock_controller_delegate);
-  fake_upgrade_detector().BroadcastLevelChange(
-      UpgradeDetector::UPGRADE_ANNOYANCE_SEVERE);
-  ::testing::Mock::VerifyAndClear(&mock_controller_delegate);
-
-  EXPECT_CALL(mock_controller_delegate, ShowRelaunchRecommendedBubble());
-  fake_upgrade_detector().BroadcastLevelChange(
-      UpgradeDetector::UPGRADE_ANNOYANCE_HIGH);
-  ::testing::Mock::VerifyAndClear(&mock_controller_delegate);
-  fake_upgrade_detector().BroadcastLevelChange(
-      UpgradeDetector::UPGRADE_ANNOYANCE_HIGH);
-  ::testing::Mock::VerifyAndClear(&mock_controller_delegate);
 
   // And closed if the level drops back to none.
   EXPECT_CALL(mock_controller_delegate, CloseRelaunchRecommendedBubble());
@@ -244,20 +255,17 @@
       UpgradeDetector::UPGRADE_ANNOYANCE_HIGH);
   ::testing::Mock::VerifyAndClear(&mock_controller_delegate);
 
-  EXPECT_CALL(mock_controller_delegate, ShowRelaunchRequiredDialog());
-  fake_upgrade_detector().BroadcastLevelChange(
-      UpgradeDetector::UPGRADE_ANNOYANCE_SEVERE);
-  ::testing::Mock::VerifyAndClear(&mock_controller_delegate);
+  // Severe is ignored.
   fake_upgrade_detector().BroadcastLevelChange(
       UpgradeDetector::UPGRADE_ANNOYANCE_SEVERE);
   ::testing::Mock::VerifyAndClear(&mock_controller_delegate);
 
   EXPECT_CALL(mock_controller_delegate, ShowRelaunchRequiredDialog());
   fake_upgrade_detector().BroadcastLevelChange(
-      UpgradeDetector::UPGRADE_ANNOYANCE_HIGH);
+      UpgradeDetector::UPGRADE_ANNOYANCE_ELEVATED);
   ::testing::Mock::VerifyAndClear(&mock_controller_delegate);
   fake_upgrade_detector().BroadcastLevelChange(
-      UpgradeDetector::UPGRADE_ANNOYANCE_HIGH);
+      UpgradeDetector::UPGRADE_ANNOYANCE_ELEVATED);
   ::testing::Mock::VerifyAndClear(&mock_controller_delegate);
 
   // And closed if the level drops back to none.
diff --git a/chrome/browser/ui/views/relaunch_notification/relaunch_recommended_bubble_view.cc b/chrome/browser/ui/views/relaunch_notification/relaunch_recommended_bubble_view.cc
new file mode 100644
index 0000000..ef9a9d39
--- /dev/null
+++ b/chrome/browser/ui/views/relaunch_notification/relaunch_recommended_bubble_view.cc
@@ -0,0 +1,216 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/ui/views/relaunch_notification/relaunch_recommended_bubble_view.h"
+
+#include <tuple>
+#include <utility>
+
+#include "base/logging.h"
+#include "base/metrics/user_metrics.h"
+#include "base/metrics/user_metrics_action.h"
+#include "base/time/time.h"
+#include "build/build_config.h"
+#include "chrome/browser/ui/browser_dialogs.h"
+#include "chrome/browser/ui/views/frame/browser_view.h"
+#include "chrome/browser/ui/views/harmony/chrome_layout_provider.h"
+#include "chrome/browser/ui/views/toolbar/app_menu_button.h"
+#include "chrome/browser/ui/views/toolbar/toolbar_view.h"
+#include "chrome/grit/chromium_strings.h"
+#include "chrome/grit/generated_resources.h"
+#include "components/vector_icons/vector_icons.h"
+#include "ui/base/l10n/l10n_util.h"
+#include "ui/base/ui_features.h"
+#include "ui/gfx/color_palette.h"
+#include "ui/gfx/geometry/point.h"
+#include "ui/gfx/paint_vector_icon.h"
+#include "ui/gfx/text_constants.h"
+#include "ui/views/bubble/bubble_border.h"
+#include "ui/views/bubble/bubble_dialog_delegate.h"
+#include "ui/views/bubble/bubble_frame_view.h"
+#include "ui/views/controls/button/button.h"
+#include "ui/views/controls/label.h"
+#include "ui/views/style/typography.h"
+#include "ui/views/widget/widget.h"
+
+#if defined(OS_MACOSX)
+#if BUILDFLAG(MAC_VIEWS_BROWSER)
+#include "chrome/browser/ui/views_mode_controller.h"
+#endif  // BUILDFLAG(MAC_VIEWS_BROWSER)
+#include "chrome/browser/ui/views/relaunch_notification/get_app_menu_anchor_point.h"
+#endif  // defined(OS_MACOSX)
+
+namespace {
+
+// Returns the anchor for |browser|'s app menu, accounting for macOS running
+// with views or Cocoa.
+std::pair<views::Button*, gfx::Point> GetAnchor(Browser* browser) {
+#if defined(OS_MACOSX)
+#if BUILDFLAG(MAC_VIEWS_BROWSER)
+  if (views_mode_controller::IsViewsBrowserCocoa())
+    return std::make_pair(nullptr, GetAppMenuAnchorPoint(browser));
+#else   // BUILDFLAG(MAC_VIEWS_BROWSER)
+  return std::make_pair(nullptr, GetAppMenuAnchorPoint(browser));
+#endif  // BUILDFLAG(MAC_VIEWS_BROWSER)
+#endif  // defined(OS_MACOSX)
+#if !defined(OS_MACOSX) || BUILDFLAG(MAC_VIEWS_BROWSER)
+  return std::make_pair(BrowserView::GetBrowserViewForBrowser(browser)
+                            ->toolbar()
+                            ->app_menu_button(),
+                        gfx::Point());
+#endif  // !defined(OS_MACOSX) || BUILDFLAG(MAC_VIEWS_BROWSER)
+}
+
+}  // namespace
+
+// static
+views::Widget* RelaunchRecommendedBubbleView::ShowBubble(
+    Browser* browser,
+    base::TimeTicks detection_time,
+    base::RepeatingClosure on_accept) {
+  DCHECK(browser);
+
+  views::Button* anchor_button;
+  gfx::Point anchor_point;
+
+  // Anchor the popup to the browser's app menu.
+  std::tie(anchor_button, anchor_point) = GetAnchor(browser);
+  auto* bubble_view = new RelaunchRecommendedBubbleView(
+      anchor_button, anchor_point, detection_time, std::move(on_accept));
+  bubble_view->set_arrow(views::BubbleBorder::TOP_RIGHT);
+
+  views::Widget* bubble_widget =
+      views::BubbleDialogDelegateView::CreateBubble(bubble_view);
+  bubble_view->ShowForReason(AUTOMATIC);
+
+  return bubble_widget;
+}
+
+RelaunchRecommendedBubbleView::~RelaunchRecommendedBubbleView() = default;
+
+bool RelaunchRecommendedBubbleView::Accept() {
+  base::RecordAction(base::UserMetricsAction("RelaunchRecommended_Accept"));
+
+  on_accept_.Run();
+
+  // Keep the bubble open in case shutdown is prevented for some reason so that
+  // the user can try again if needed.
+  return false;
+}
+
+bool RelaunchRecommendedBubbleView::Close() {
+  base::RecordAction(base::UserMetricsAction("RelaunchRecommended_Close"));
+
+  return true;
+}
+
+int RelaunchRecommendedBubbleView::GetDialogButtons() const {
+  return ui::DIALOG_BUTTON_OK;
+}
+
+base::string16 RelaunchRecommendedBubbleView::GetDialogButtonLabel(
+    ui::DialogButton button) const {
+  DCHECK_EQ(button, ui::DIALOG_BUTTON_OK);
+  return l10n_util::GetStringUTF16(IDS_RELAUNCH_ACCEPT_BUTTON);
+}
+
+base::string16 RelaunchRecommendedBubbleView::GetWindowTitle() const {
+  const base::TimeDelta elapsed = base::TimeTicks::Now() - detection_time_;
+  return l10n_util::GetPluralStringFUTF16(IDS_RELAUNCH_RECOMMENDED_TITLE,
+                                          elapsed.InDays());
+}
+
+bool RelaunchRecommendedBubbleView::ShouldShowCloseButton() const {
+  return true;
+}
+
+gfx::ImageSkia RelaunchRecommendedBubbleView::GetWindowIcon() {
+  return gfx::CreateVectorIcon(gfx::IconDescription(
+      vector_icons::kBusinessIcon, 20, gfx::kChromeIconGrey, base::TimeDelta(),
+      gfx::kNoneIcon));
+}
+
+bool RelaunchRecommendedBubbleView::ShouldShowWindowIcon() const {
+  return true;
+}
+
+int RelaunchRecommendedBubbleView::GetHeightForWidth(int width) const {
+  const gfx::Insets insets = GetInsets();
+  return body_label_->GetHeightForWidth(width - insets.width()) +
+         insets.height();
+}
+
+void RelaunchRecommendedBubbleView::Layout() {
+  // Align the body label with the left edge of the bubble's title.
+  // TODO(bsep): Remove this when fixing https://crbug.com/810970.
+  gfx::Point origin;
+  views::View::ConvertPointToWidget(GetBubbleFrameView()->title(), &origin);
+  views::View::ConvertPointFromWidget(this, &origin);
+
+  gfx::Rect bounds = GetContentsBounds();
+  bounds.Inset(origin.x(), 0, 0, 0);
+  body_label_->SetBoundsRect(bounds);
+}
+
+void RelaunchRecommendedBubbleView::Init() {
+  body_label_ =
+      new views::Label(l10n_util::GetStringUTF16(IDS_RELAUNCH_RECOMMENDED_BODY),
+                       views::style::CONTEXT_MESSAGE_BOX_BODY_TEXT);
+  body_label_->SetMultiLine(true);
+  body_label_->SetHorizontalAlignment(gfx::ALIGN_LEFT);
+  AddChildView(body_label_);
+
+  base::RecordAction(base::UserMetricsAction("RelaunchRecommendedShown"));
+
+  // Start the timer for the next time the title neeeds to be updated (e.g.,
+  // from "2 days" to "3 days").
+  ScheduleNextTitleRefresh();
+}
+
+gfx::Size RelaunchRecommendedBubbleView::CalculatePreferredSize() const {
+  const int width = ChromeLayoutProvider::Get()->GetDistanceMetric(
+                        DISTANCE_BUBBLE_PREFERRED_WIDTH) -
+                    margins().width();
+  return gfx::Size(width, GetHeightForWidth(width));
+}
+
+void RelaunchRecommendedBubbleView::VisibilityChanged(
+    views::View* starting_from,
+    bool is_visible) {
+  views::Button* anchor_button = views::Button::AsButton(GetAnchorView());
+  if (anchor_button) {
+    anchor_button->AnimateInkDrop(is_visible ? views::InkDropState::ACTIVATED
+                                             : views::InkDropState::DEACTIVATED,
+                                  nullptr);
+  }
+}
+
+RelaunchRecommendedBubbleView::RelaunchRecommendedBubbleView(
+    views::Button* anchor_button,
+    const gfx::Point& anchor_point,
+    base::TimeTicks detection_time,
+    base::RepeatingClosure on_accept)
+    : LocationBarBubbleDelegateView(anchor_button, anchor_point, nullptr),
+      detection_time_(detection_time),
+      on_accept_(std::move(on_accept)),
+      body_label_(nullptr) {
+  chrome::RecordDialogCreation(chrome::DialogIdentifier::RELAUNCH_RECOMMENDED);
+  set_margins(ChromeLayoutProvider::Get()->GetDialogInsetsForContentType(
+      views::TEXT, views::TEXT));
+}
+
+void RelaunchRecommendedBubbleView::ScheduleNextTitleRefresh() {
+  // Refresh at the next day boundary.
+  const base::TimeDelta elapsed = base::TimeTicks::Now() - detection_time_;
+  const base::TimeDelta delta =
+      base::TimeDelta::FromDays(elapsed.InDays() + 1) - elapsed;
+
+  refresh_timer_.Start(FROM_HERE, delta, this,
+                       &RelaunchRecommendedBubbleView::OnTitleRefresh);
+}
+
+void RelaunchRecommendedBubbleView::OnTitleRefresh() {
+  GetBubbleFrameView()->UpdateWindowTitle();
+  ScheduleNextTitleRefresh();
+}
diff --git a/chrome/browser/ui/views/relaunch_notification/relaunch_recommended_bubble_view.h b/chrome/browser/ui/views/relaunch_notification/relaunch_recommended_bubble_view.h
new file mode 100644
index 0000000..b3b0608
--- /dev/null
+++ b/chrome/browser/ui/views/relaunch_notification/relaunch_recommended_bubble_view.h
@@ -0,0 +1,83 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_UI_VIEWS_RELAUNCH_NOTIFICATION_RELAUNCH_RECOMMENDED_BUBBLE_VIEW_H_
+#define CHROME_BROWSER_UI_VIEWS_RELAUNCH_NOTIFICATION_RELAUNCH_RECOMMENDED_BUBBLE_VIEW_H_
+
+#include "base/callback.h"
+#include "base/macros.h"
+#include "base/time/time.h"
+#include "base/timer/timer.h"
+#include "chrome/browser/ui/views/location_bar/location_bar_bubble_delegate_view.h"
+
+class Browser;
+
+namespace views {
+class Button;
+class Label;
+class Widget;
+}  // namespace views
+
+// A View for the relaunch recommended bubble. This is shown to users to
+// encourage them to relaunch Chrome by the RelaunchNotificationController as
+// dictated by policy settings and upgrade availability.
+class RelaunchRecommendedBubbleView : public LocationBarBubbleDelegateView {
+ public:
+  // Shows the bubble in |browser| for an upgrade that was detected at
+  // |detection_time|. |on_accept| is run if the user accepts the prompt to
+  // restart.
+  static views::Widget* ShowBubble(Browser* browser,
+                                   base::TimeTicks detection_time,
+                                   base::RepeatingClosure on_accept);
+  ~RelaunchRecommendedBubbleView() override;
+
+  // LocationBarBubbleDelegateView:
+  bool Accept() override;
+  bool Close() override;
+  int GetDialogButtons() const override;
+  base::string16 GetDialogButtonLabel(ui::DialogButton button) const override;
+  base::string16 GetWindowTitle() const override;
+  bool ShouldShowCloseButton() const override;
+  gfx::ImageSkia GetWindowIcon() override;
+  bool ShouldShowWindowIcon() const override;
+  int GetHeightForWidth(int width) const override;
+  void Layout() override;
+
+ protected:
+  // LocationBarBubbleDelegateView:
+  void Init() override;
+  gfx::Size CalculatePreferredSize() const override;
+  void VisibilityChanged(views::View* starting_from, bool is_visible) override;
+
+ private:
+  RelaunchRecommendedBubbleView(views::Button* anchor_button,
+                                const gfx::Point& anchor_point,
+                                base::TimeTicks detection_time,
+                                base::RepeatingClosure on_accept);
+
+  // Schedules a timer to fire the next time the title text must be updated; for
+  // example, from "...is available" to "...has been available for 1 day".
+  void ScheduleNextTitleRefresh();
+
+  // Invoked when the timer fires to refresh the title text.
+  void OnTitleRefresh();
+
+  // The tick count at which Chrome noticed that an update was available. This
+  // is used to write the proper string into the dialog's title and to schedule
+  // title refreshes to update said string.
+  const base::TimeTicks detection_time_;
+
+  // A callback run if the user accepts the prompt to relaunch the browser.
+  base::RepeatingClosure on_accept_;
+
+  // The label containing the body text of the bubble.
+  views::Label* body_label_;
+
+  // A timer with which title refreshes are scheduled.
+  base::OneShotTimer refresh_timer_;
+
+  DISALLOW_COPY_AND_ASSIGN(RelaunchRecommendedBubbleView);
+};
+
+#endif  // CHROME_BROWSER_UI_VIEWS_RELAUNCH_NOTIFICATION_RELAUNCH_RECOMMENDED_BUBBLE_VIEW_H_
diff --git a/chrome/browser/ui/views/relaunch_notification/relaunch_recommended_bubble_view_browsertest.cc b/chrome/browser/ui/views/relaunch_notification/relaunch_recommended_bubble_view_browsertest.cc
new file mode 100644
index 0000000..3e9d2b7
--- /dev/null
+++ b/chrome/browser/ui/views/relaunch_notification/relaunch_recommended_bubble_view_browsertest.cc
@@ -0,0 +1,36 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/ui/views/relaunch_notification/relaunch_recommended_bubble_view.h"
+
+#include "base/bind_helpers.h"
+#include "base/macros.h"
+#include "base/time/time.h"
+#include "chrome/browser/ui/test/test_browser_dialog.h"
+
+class RelaunchRecommendedBubbleViewDialogTest : public DialogBrowserTest {
+ protected:
+  RelaunchRecommendedBubbleViewDialogTest() = default;
+
+  void SetUp() override {
+    UseMdOnly();
+    DialogBrowserTest::SetUp();
+  }
+
+  // DialogBrowserTest:
+  void ShowUi(const std::string& name) override {
+    base::TimeTicks detection_time =
+        base::TimeTicks::Now() - base::TimeDelta::FromDays(3);
+    RelaunchRecommendedBubbleView::ShowBubble(browser(), detection_time,
+                                              base::DoNothing());
+  }
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(RelaunchRecommendedBubbleViewDialogTest);
+};
+
+IN_PROC_BROWSER_TEST_F(RelaunchRecommendedBubbleViewDialogTest,
+                       InvokeUi_default) {
+  ShowAndVerifyUi();
+}
diff --git a/chrome/browser/ui/webui/quota_internals/quota_internals_proxy.h b/chrome/browser/ui/webui/quota_internals/quota_internals_proxy.h
index 0c1fc6e..26f5bfd 100644
--- a/chrome/browser/ui/webui/quota_internals/quota_internals_proxy.h
+++ b/chrome/browser/ui/webui/quota_internals/quota_internals_proxy.h
@@ -18,7 +18,7 @@
 #include "base/sequenced_task_runner_helpers.h"
 #include "content/public/browser/browser_thread.h"
 #include "storage/browser/quota/quota_manager.h"
-#include "third_party/WebKit/common/quota/quota_types.mojom.h"
+#include "third_party/WebKit/public/mojom/quota/quota_types.mojom.h"
 
 namespace quota_internals {
 
diff --git a/chrome/browser/ui/webui/quota_internals/quota_internals_types.h b/chrome/browser/ui/webui/quota_internals/quota_internals_types.h
index c9b5c7a..b6a1295 100644
--- a/chrome/browser/ui/webui/quota_internals/quota_internals_types.h
+++ b/chrome/browser/ui/webui/quota_internals/quota_internals_types.h
@@ -12,7 +12,7 @@
 #include <string>
 
 #include "base/time/time.h"
-#include "third_party/WebKit/common/quota/quota_types.mojom.h"
+#include "third_party/WebKit/public/mojom/quota/quota_types.mojom.h"
 #include "url/gurl.h"
 
 namespace base {
diff --git a/chrome/browser/ui/webui/settings/incompatible_software_handler_win.cc b/chrome/browser/ui/webui/settings/incompatible_software_handler_win.cc
new file mode 100644
index 0000000..09754e6
--- /dev/null
+++ b/chrome/browser/ui/webui/settings/incompatible_software_handler_win.cc
@@ -0,0 +1,55 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/ui/webui/settings/incompatible_software_handler_win.h"
+
+#include <string>
+
+#include "base/bind.h"
+#include "base/logging.h"
+#include "base/values.h"
+#include "chrome/browser/conflicts/problematic_programs_updater_win.h"
+#include "chrome/grit/generated_resources.h"
+#include "ui/base/l10n/l10n_util.h"
+
+namespace settings {
+
+IncompatibleSoftwareHandler::IncompatibleSoftwareHandler() = default;
+
+IncompatibleSoftwareHandler::~IncompatibleSoftwareHandler() = default;
+
+void IncompatibleSoftwareHandler::RegisterMessages() {
+  web_ui()->RegisterMessageCallback(
+      "requestIncompatibleSoftwareList",
+      base::BindRepeating(
+          &IncompatibleSoftwareHandler::HandleRequestIncompatibleSoftwareList,
+          base::Unretained(this)));
+  web_ui()->RegisterMessageCallback(
+      "startProgramUninstallation",
+      base::BindRepeating(
+          &IncompatibleSoftwareHandler::HandleStartProgramUninstallation,
+          base::Unretained(this)));
+}
+
+void IncompatibleSoftwareHandler::HandleRequestIncompatibleSoftwareList(
+    const base::ListValue* args) {
+  CHECK_EQ(1u, args->GetList().size());
+  CHECK(ProblematicProgramsUpdater::HasCachedPrograms());
+
+  AllowJavascript();
+
+  const base::Value& callback_id = args->GetList().front();
+  ResolveJavascriptCallback(callback_id,
+                            ProblematicProgramsUpdater::GetCachedPrograms());
+}
+
+void IncompatibleSoftwareHandler::HandleStartProgramUninstallation(
+    const base::ListValue* args) {
+  CHECK_EQ(1u, args->GetList().size());
+
+  // TODO(pmonette): Open the Apps & Settings page with the program name
+  // highlighted.
+}
+
+}  // namespace settings
diff --git a/chrome/browser/ui/webui/settings/incompatible_software_handler_win.h b/chrome/browser/ui/webui/settings/incompatible_software_handler_win.h
new file mode 100644
index 0000000..656a9aa0
--- /dev/null
+++ b/chrome/browser/ui/webui/settings/incompatible_software_handler_win.h
@@ -0,0 +1,40 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_UI_WEBUI_SETTINGS_INCOMPATIBLE_SOFTWARE_HANDLER_WIN_H_
+#define CHROME_BROWSER_UI_WEBUI_SETTINGS_INCOMPATIBLE_SOFTWARE_HANDLER_WIN_H_
+
+#include "base/macros.h"
+#include "chrome/browser/ui/webui/settings/settings_page_ui_handler.h"
+
+namespace base {
+class ListValue;
+}
+
+namespace settings {
+
+// Incompatible Software settings page UI handler.
+class IncompatibleSoftwareHandler : public SettingsPageUIHandler {
+ public:
+  IncompatibleSoftwareHandler();
+  ~IncompatibleSoftwareHandler() override;
+
+  // SettingsPageUIHandler:
+  void RegisterMessages() override;
+  void OnJavascriptAllowed() override {}
+  void OnJavascriptDisallowed() override {}
+
+ private:
+  // Sends the list of incompatible software to the caller via a promise.
+  void HandleRequestIncompatibleSoftwareList(const base::ListValue* args);
+
+  // Initiates the uninstallation of the program passed using |args|.
+  void HandleStartProgramUninstallation(const base::ListValue* args);
+
+  DISALLOW_COPY_AND_ASSIGN(IncompatibleSoftwareHandler);
+};
+
+}  // namespace settings
+
+#endif  // CHROME_BROWSER_UI_WEBUI_SETTINGS_INCOMPATIBLE_SOFTWARE_HANDLER_WIN_H_
diff --git a/chrome/browser/ui/webui/settings/md_settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/md_settings_localized_strings_provider.cc
index f70c7bf..a3dc57c 100644
--- a/chrome/browser/ui/webui/settings/md_settings_localized_strings_provider.cc
+++ b/chrome/browser/ui/webui/settings/md_settings_localized_strings_provider.cc
@@ -182,6 +182,8 @@
     {"chromeVoxOptionsLabel", IDS_SETTINGS_CHROMEVOX_OPTIONS_LABEL},
     {"screenMagnifierLabel", IDS_SETTINGS_SCREEN_MAGNIFIER_LABEL},
     {"screenMagnifierZoomLabel", IDS_SETTINGS_SCREEN_MAGNIFIER_ZOOM_LABEL},
+    {"dockedMagnifierLabel", IDS_SETTINGS_DOCKED_MAGNIFIER_LABEL},
+    {"dockedMagnifierZoomLabel", IDS_SETTINGS_DOCKED_MAGNIFIER_ZOOM_LABEL},
     {"screenMagnifierZoom2x", IDS_SETTINGS_SCREEN_MAGNIFIER_ZOOM_2_X},
     {"screenMagnifierZoom4x", IDS_SETTINGS_SCREEN_MAGNIFIER_ZOOM_4_X},
     {"screenMagnifierZoom6x", IDS_SETTINGS_SCREEN_MAGNIFIER_ZOOM_6_X},
@@ -255,6 +257,9 @@
       "showExperimentalA11yFeatures",
       base::CommandLine::ForCurrentProcess()->HasSwitch(
           chromeos::switches::kEnableExperimentalAccessibilityFeatures));
+
+  html_source->AddBoolean("dockedMagnifierFeatureEnabled",
+                          ash::switches::IsDockedMagnifierEnabled());
 #endif
 }
 
@@ -861,6 +866,31 @@
   html_source->AddString("chromeCleanupDetailsExplanation",
                          cleanup_details_explanation);
 }
+
+void AddIncompatibleSoftwareStrings(content::WebUIDataSource* html_source) {
+  LocalizedString localized_strings[] = {
+      {"incompatibleSoftwareResetCardTitle",
+       IDS_SETTINGS_INCOMPATIBLE_SOFTWARE_RESET_CARD_TITLE},
+      {"incompatibleSoftwareSubpageSubtitle",
+       IDS_SETTINGS_INCOMPATIBLE_SOFTWARE_SUBPAGE_SUBTITLE},
+      {"incompatibleSoftwareSubpageSubtitleNoAdminRights",
+       IDS_SETTINGS_INCOMPATIBLE_SOFTWARE_SUBPAGE_SUBTITLE_NO_ADMIN_RIGHTS},
+      {"incompatibleSoftwareListTitle",
+       IDS_SETTINGS_INCOMPATIBLE_SOFTWARE_LIST_TITLE},
+      {"incompatibleSoftwareRemoveButton",
+       IDS_SETTINGS_INCOMPATIBLE_SOFTWARE_REMOVE_BUTTON},
+      {"incompatibleSoftwareUpdateButton",
+       IDS_SETTINGS_INCOMPATIBLE_SOFTWARE_UPDATE_BUTTON},
+      {"incompatibleSoftwareDone", IDS_SETTINGS_INCOMPATIBLE_SOFTWARE_DONE},
+  };
+  AddLocalizedStringsBulk(html_source, localized_strings,
+                          arraysize(localized_strings));
+  // TODO(pmonette): Add the help URL when available.
+  base::string16 learn_how_text = l10n_util::GetStringFUTF16(
+      IDS_SETTINGS_INCOMPATIBLE_SOFTWARE_SUBPAGE_LEARN_HOW,
+      base::ASCIIToUTF16("chrome://placeholder"));
+  html_source->AddString("incompatibleSoftwareSubpageLearnHow", learn_how_text);
+}
 #endif  // defined(OS_WIN) && defined(GOOGLE_CHROME_BUILD)
 
 void AddResetStrings(content::WebUIDataSource* html_source) {
@@ -895,8 +925,6 @@
 #if defined(OS_WIN) && defined(GOOGLE_CHROME_BUILD)
     {"resetCleanupComputerTrigger",
      IDS_SETTINGS_RESET_CLEAN_UP_COMPUTER_TRIGGER},
-    {"resetCleanupComputerTriggerDescription",
-     IDS_SETTINGS_RESET_CLEAN_UP_COMPUTER_TRIGGER_DESCRIPTION},
 #endif
   };
   AddLocalizedStringsBulk(html_source, localized_strings,
@@ -2283,6 +2311,7 @@
 
 #if defined(OS_WIN) && defined(GOOGLE_CHROME_BUILD)
   AddChromeCleanupStrings(html_source);
+  AddIncompatibleSoftwareStrings(html_source);
 #endif  // defined(OS_WIN) && defined(GOOGLE_CHROME_BUILD)
 
   AddChangePasswordStrings(html_source);
diff --git a/chrome/browser/ui/webui/settings/md_settings_ui.cc b/chrome/browser/ui/webui/settings/md_settings_ui.cc
index 6a6072da..2914877 100644
--- a/chrome/browser/ui/webui/settings/md_settings_ui.cc
+++ b/chrome/browser/ui/webui/settings/md_settings_ui.cc
@@ -54,6 +54,8 @@
 #include "chrome/browser/safe_browsing/chrome_cleaner/srt_field_trial_win.h"
 #include "chrome/browser/ui/webui/settings/chrome_cleanup_handler.h"
 #if defined(GOOGLE_CHROME_BUILD)
+#include "chrome/browser/conflicts/problematic_programs_updater_win.h"
+#include "chrome/browser/ui/webui/settings/incompatible_software_handler_win.h"
 #include "chrome/grit/chrome_unscaled_resources.h"
 #endif
 #endif  // defined(OS_WIN)
@@ -225,6 +227,19 @@
                           userInitiatedCleanupsEnabled);
 #endif  // defined(OS_WIN)
 
+#if defined(OS_WIN) && defined(GOOGLE_CHROME_BUILD)
+  ProblematicProgramsUpdater::TrimCache();
+  bool has_incompatible_software =
+      ProblematicProgramsUpdater::HasCachedPrograms();
+  html_source->AddBoolean("showIncompatibleSoftware",
+                          has_incompatible_software);
+  // TODO(pmonette): Implement a function to determine hasAdminRights.
+  html_source->AddBoolean("hasAdminRights", false);
+
+  if (has_incompatible_software)
+    AddSettingsPageUIHandler(base::MakeUnique<IncompatibleSoftwareHandler>());
+#endif  // OS_WIN && defined(GOOGLE_CHROME_BUILD)
+
   bool password_protection_available = false;
 #if defined(SAFE_BROWSING_DB_LOCAL)
   safe_browsing::ChromePasswordProtectionService* password_protection =
diff --git a/chrome/browser/ui/webui/settings/site_settings_handler.cc b/chrome/browser/ui/webui/settings/site_settings_handler.cc
index 52841b9..c413d85 100644
--- a/chrome/browser/ui/webui/settings/site_settings_handler.cc
+++ b/chrome/browser/ui/webui/settings/site_settings_handler.cc
@@ -46,7 +46,7 @@
 #include "extensions/common/permissions/api_permission.h"
 #include "extensions/common/permissions/permissions_data.h"
 #include "storage/browser/quota/quota_manager.h"
-#include "third_party/WebKit/common/quota/quota_types.mojom.h"
+#include "third_party/WebKit/public/mojom/quota/quota_types.mojom.h"
 #include "ui/base/l10n/l10n_util.h"
 #include "ui/base/text/bytes_formatting.h"
 
diff --git a/chrome/browser/ui/webui/settings/site_settings_handler.h b/chrome/browser/ui/webui/settings/site_settings_handler.h
index 005a682..01be8c4 100644
--- a/chrome/browser/ui/webui/settings/site_settings_handler.h
+++ b/chrome/browser/ui/webui/settings/site_settings_handler.h
@@ -17,7 +17,7 @@
 #include "content/public/browser/notification_observer.h"
 #include "content/public/browser/notification_registrar.h"
 #include "ppapi/features/features.h"
-#include "third_party/WebKit/common/quota/quota_types.mojom.h"
+#include "third_party/WebKit/public/mojom/quota/quota_types.mojom.h"
 
 class HostContentSettingsMap;
 class Profile;
diff --git a/chrome/browser/ui/webui/signin/signin_error_ui.cc b/chrome/browser/ui/webui/signin/signin_error_ui.cc
index 7e2b869..7b1e9041 100644
--- a/chrome/browser/ui/webui/signin/signin_error_ui.cc
+++ b/chrome/browser/ui/webui/signin/signin_error_ui.cc
@@ -11,6 +11,7 @@
 #include "chrome/browser/profiles/profile_attributes_entry.h"
 #include "chrome/browser/profiles/profile_attributes_storage.h"
 #include "chrome/browser/profiles/profile_manager.h"
+#include "chrome/browser/signin/signin_ui_util.h"
 #include "chrome/browser/ui/browser_window.h"
 #include "chrome/browser/ui/user_manager.h"
 #include "chrome/browser/ui/webui/signin/login_ui_service.h"
@@ -19,6 +20,8 @@
 #include "chrome/common/url_constants.h"
 #include "chrome/grit/browser_resources.h"
 #include "chrome/grit/generated_resources.h"
+#include "components/prefs/pref_service.h"
+#include "components/signin/core/browser/signin_pref_names.h"
 #include "components/strings/grit/components_strings.h"
 #include "content/public/browser/web_ui.h"
 #include "content/public/browser/web_ui_data_source.h"
@@ -97,8 +100,21 @@
   if (is_profile_blocked) {
     source->AddLocalizedString("profileBlockedMessage",
                                IDS_OLD_PROFILES_DISABLED_MESSAGE);
-    source->AddLocalizedString("profileBlockedAddPersonSuggestion",
-                               IDS_OLD_PROFILES_DISABLED_ADD_PERSON_SUGGESTION);
+    std::string allowed_domain = signin_ui_util::GetAllowedDomain(
+        g_browser_process->local_state()->GetString(
+            prefs::kGoogleServicesUsernamePattern));
+    if (allowed_domain.empty()) {
+      source->AddLocalizedString(
+          "profileBlockedAddPersonSuggestion",
+          IDS_OLD_PROFILES_DISABLED_ADD_PERSON_SUGGESTION);
+    } else {
+      source->AddString(
+          "profileBlockedAddPersonSuggestion",
+          l10n_util::GetStringFUTF16(
+              IDS_OLD_PROFILES_DISABLED_ADD_PERSON_SUGGESTION_WITH_DOMAIN,
+              base::ASCIIToUTF16(allowed_domain)));
+    }
+
     source->AddLocalizedString("profileBlockedRemoveProfileSuggestion",
                                IDS_OLD_PROFILES_DISABLED_REMOVED_OLD_PROFILE);
   } else if (!is_system_profile &&
diff --git a/chrome/browser/ui/webui/site_settings_helper.cc b/chrome/browser/ui/webui/site_settings_helper.cc
index 36b5ef2..cf47f6894 100644
--- a/chrome/browser/ui/webui/site_settings_helper.cc
+++ b/chrome/browser/ui/webui/site_settings_helper.cc
@@ -75,6 +75,7 @@
     {CONTENT_SETTINGS_TYPE_SOUND, "sound"},
     {CONTENT_SETTINGS_TYPE_CLIPBOARD_READ, "clipboard"},
     {CONTENT_SETTINGS_TYPE_SENSORS, "sensors"},
+    {CONTENT_SETTINGS_TYPE_PAYMENT_HANDLER, "payment-handler"},
 
     // Add new content settings here if a corresponding Javascript string
     // representation for it is not required. Note some exceptions, such as
diff --git a/chrome/browser/upgrade_detector.h b/chrome/browser/upgrade_detector.h
index 3baaf4d..c25ed35 100644
--- a/chrome/browser/upgrade_detector.h
+++ b/chrome/browser/upgrade_detector.h
@@ -94,6 +94,9 @@
     return upgrade_notification_stage_;
   }
 
+  // Returns the delta between "elevated" and "high" annoyance levels.
+  virtual base::TimeDelta GetHighAnnoyanceLevelDelta() = 0;
+
   void AddObserver(UpgradeObserver* observer);
 
   void RemoveObserver(UpgradeObserver* observer);
diff --git a/chrome/browser/upgrade_detector_impl.cc b/chrome/browser/upgrade_detector_impl.cc
index c60594b..e3fb3db3 100644
--- a/chrome/browser/upgrade_detector_impl.cc
+++ b/chrome/browser/upgrade_detector_impl.cc
@@ -302,6 +302,9 @@
   if (upgrade_notification_timer_.IsRunning())
     return;
 
+  // Ensure that the thresholds used by NotifyOnUpgrade have been initialized.
+  InitializeThresholds();
+
   set_upgrade_detected_time(base::TimeTicks::Now());
 
   // Start the repeating timer for notifying the user after a certain period.
@@ -314,6 +317,30 @@
       this, &UpgradeDetectorImpl::NotifyOnUpgrade);
 }
 
+void UpgradeDetectorImpl::InitializeThresholds() {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+  if (!low_threshold_.is_zero())
+    return;
+
+  // Intervals are drastically shortened when test switches are used.
+  const bool is_testing = IsTesting();
+  const base::TimeDelta multiplier = is_testing
+                                         ? base::TimeDelta::FromSeconds(10)
+                                         : base::TimeDelta::FromDays(1);
+  severe_threshold_ = 14 * multiplier;
+  high_threshold_ = 7 * multiplier;
+  elevated_threshold_ = 4 * multiplier;
+
+  if (is_unstable_channel_) {
+    // Canary and dev channels reach "low" annoyance after one hour (one second
+    // in testing) and never advance beyond that.
+    low_threshold_ = is_testing ? base::TimeDelta::FromSeconds(1)
+                                : base::TimeDelta::FromHours(1);
+  } else {
+    low_threshold_ = 2 * multiplier;
+  }
+}
+
 void UpgradeDetectorImpl::CheckForUpgrade() {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   // Interrupt any (unlikely) unfinished execution of DetectUpgradeTask, or at
@@ -410,15 +437,10 @@
       upgrade_available() > UPGRADE_AVAILABLE_REGULAR ||
       critical_experiment_updates_available();
   if (is_unstable_channel_) {
-    // There's only one threat level for unstable channels like dev and
-    // canary, and it hits after one hour. During testing, it hits after one
-    // second.
-    const base::TimeDelta unstable_threshold = IsTesting() ?
-        base::TimeDelta::FromSeconds(1) : base::TimeDelta::FromHours(1);
-
+    // There's only one threat level for dev and canary channels.
     if (is_critical_or_outdated) {
       set_upgrade_notification_stage(UPGRADE_ANNOYANCE_CRITICAL);
-    } else if (time_passed >= unstable_threshold) {
+    } else if (time_passed >= low_threshold_) {
       set_upgrade_notification_stage(UPGRADE_ANNOYANCE_LOW);
 
       // That's as high as it goes.
@@ -427,28 +449,19 @@
       return;  // Not ready to recommend upgrade.
     }
   } else {
-    const base::TimeDelta multiplier = IsTesting() ?
-        base::TimeDelta::FromSeconds(10) : base::TimeDelta::FromDays(1);
-
-    // 14 days when not testing, otherwise 140 seconds.
-    const base::TimeDelta severe_threshold = 14 * multiplier;
-    const base::TimeDelta high_threshold = 7 * multiplier;
-    const base::TimeDelta elevated_threshold = 4 * multiplier;
-    const base::TimeDelta low_threshold = 2 * multiplier;
-
     // These if statements must be sorted (highest interval first).
-    if (time_passed >= severe_threshold || is_critical_or_outdated) {
+    if (time_passed >= severe_threshold_ || is_critical_or_outdated) {
       set_upgrade_notification_stage(
           is_critical_or_outdated ? UPGRADE_ANNOYANCE_CRITICAL :
                                     UPGRADE_ANNOYANCE_SEVERE);
 
       // We can't get any higher, baby.
       upgrade_notification_timer_.Stop();
-    } else if (time_passed >= high_threshold) {
+    } else if (time_passed >= high_threshold_) {
       set_upgrade_notification_stage(UPGRADE_ANNOYANCE_HIGH);
-    } else if (time_passed >= elevated_threshold) {
+    } else if (time_passed >= elevated_threshold_) {
       set_upgrade_notification_stage(UPGRADE_ANNOYANCE_ELEVATED);
-    } else if (time_passed >= low_threshold) {
+    } else if (time_passed >= low_threshold_) {
       set_upgrade_notification_stage(UPGRADE_ANNOYANCE_LOW);
     } else {
       return;  // Not ready to recommend upgrade.
@@ -480,6 +493,12 @@
   return instance;
 }
 
+base::TimeDelta UpgradeDetectorImpl::GetHighAnnoyanceLevelDelta() {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+  InitializeThresholds();
+  return high_threshold_ - elevated_threshold_;
+}
+
 // static
 UpgradeDetector* UpgradeDetector::GetInstance() {
   return UpgradeDetectorImpl::GetInstance();
diff --git a/chrome/browser/upgrade_detector_impl.h b/chrome/browser/upgrade_detector_impl.h
index 9dd374ef..d6d8fff 100644
--- a/chrome/browser/upgrade_detector_impl.h
+++ b/chrome/browser/upgrade_detector_impl.h
@@ -35,6 +35,9 @@
   // Returns the global instance.
   static UpgradeDetectorImpl* GetInstance();
 
+  // UpgradeDetector:
+  base::TimeDelta GetHighAnnoyanceLevelDelta() override;
+
  protected:
   UpgradeDetectorImpl();
 
@@ -66,6 +69,9 @@
   // badging) of the notification.
   void StartUpgradeNotificationTimer();
 
+  // Lazy-initialization for the various threshold deltas (idempotent).
+  void InitializeThresholds();
+
   // Sends out a notification and starts a one shot timer to wait until
   // notifying the user.
   void UpgradeDetected(UpgradeAvailable upgrade_available);
@@ -102,6 +108,13 @@
   // True if auto update is turned on.
   bool is_auto_update_enabled_;
 
+  // The various deltas from detection time to the different annoyance levels;
+  // lazy-initialized by InitializeThresholds.
+  base::TimeDelta severe_threshold_;
+  base::TimeDelta high_threshold_;
+  base::TimeDelta elevated_threshold_;
+  base::TimeDelta low_threshold_;
+
   // The date the binaries were built.
   base::Time build_date_;
 
diff --git a/chrome/browser/vr/elements/keyboard.cc b/chrome/browser/vr/elements/keyboard.cc
index 6d8acc5..b517871 100644
--- a/chrome/browser/vr/elements/keyboard.cc
+++ b/chrome/browser/vr/elements/keyboard.cc
@@ -22,6 +22,14 @@
   UpdateDelegateVisibility();
 }
 
+void Keyboard::OnTouchStateUpdated(bool is_touching,
+                                   const gfx::PointF& touch_position) {
+  if (!delegate_)
+    return;
+
+  delegate_->OnTouchStateUpdated(is_touching, touch_position);
+}
+
 void Keyboard::HitTest(const HitTestRequest& request,
                        HitTestResult* result) const {
   if (!delegate_)
diff --git a/chrome/browser/vr/elements/keyboard.h b/chrome/browser/vr/elements/keyboard.h
index 3752123..3148dca 100644
--- a/chrome/browser/vr/elements/keyboard.h
+++ b/chrome/browser/vr/elements/keyboard.h
@@ -20,6 +20,7 @@
   ~Keyboard() override;
 
   void SetKeyboardDelegate(KeyboardDelegate* keyboard_delegate);
+  void OnTouchStateUpdated(bool is_touching, const gfx::PointF& touch_position);
   void HitTest(const HitTestRequest& request,
                HitTestResult* result) const final;
   void NotifyClientFloatAnimated(float value,
diff --git a/chrome/browser/vr/keyboard_delegate.h b/chrome/browser/vr/keyboard_delegate.h
index 711db4a..a441186 100644
--- a/chrome/browser/vr/keyboard_delegate.h
+++ b/chrome/browser/vr/keyboard_delegate.h
@@ -31,6 +31,8 @@
   virtual void Draw(const CameraModel&) = 0;
   virtual bool SupportsSelection() = 0;
 
+  virtual void OnTouchStateUpdated(bool is_touching,
+                                   const gfx::PointF& touch_position) {}
   virtual void OnHoverEnter(const gfx::PointF& position) {}
   virtual void OnHoverLeave() {}
   virtual void OnMove(const gfx::PointF& position) {}
diff --git a/chrome/browser/vr/metrics_helper.cc b/chrome/browser/vr/metrics_helper.cc
index 371bbf4..68aef064 100644
--- a/chrome/browser/vr/metrics_helper.cc
+++ b/chrome/browser/vr/metrics_helper.cc
@@ -62,7 +62,7 @@
       UMA_HISTOGRAM_ENUMERATION(kStatusVrBrowsing, status,
                                 ComponentStatus::kCount);
       return;
-    case Mode::kWebVr:
+    case Mode::kWebXrVrPresentation:
       UMA_HISTOGRAM_ENUMERATION(kStatusWebVr, status, ComponentStatus::kCount);
       return;
     default:
@@ -77,7 +77,7 @@
       UMA_HISTOGRAM_CUSTOM_TIMES(kLatencyVrBrowsing, latency, kMinLatency,
                                  kMaxLatency, kLatencyBucketCount);
       return;
-    case Mode::kWebVr:
+    case Mode::kWebXrVrPresentation:
       UMA_HISTOGRAM_CUSTOM_TIMES(kLatencyWebVr, latency, kMinLatency,
                                  kMaxLatency, kLatencyBucketCount);
       return;
@@ -100,7 +100,7 @@
           kNetworkConnectionTypeVrBrowsing, type,
           net::NetworkChangeNotifier::ConnectionType::CONNECTION_LAST + 1);
       return;
-    case Mode::kWebVr:
+    case Mode::kWebXrVrPresentation:
       UMA_HISTOGRAM_ENUMERATION(
           kNetworkConnectionTypeWebVr, type,
           net::NetworkChangeNotifier::ConnectionType::CONNECTION_LAST + 1);
@@ -137,7 +137,7 @@
   component_ready_ = true;
   auto now = base::TimeTicks::Now();
   LogLatencyIfWaited(Mode::kVrBrowsing, now);
-  LogLatencyIfWaited(Mode::kWebVr, now);
+  LogLatencyIfWaited(Mode::kWebXrVrPresentation, now);
   OnComponentUpdated(AssetsComponentUpdateStatus::kSuccess, version);
 
   if (!logged_ready_duration_on_component_register_) {
@@ -199,7 +199,7 @@
       return enter_vr_time_;
     case Mode::kVrBrowsing:
       return enter_vr_browsing_time_;
-    case Mode::kWebVr:
+    case Mode::kWebXrVrPresentation:
       return enter_web_vr_time_;
     default:
       NOTIMPLEMENTED();
diff --git a/chrome/browser/vr/mode.h b/chrome/browser/vr/mode.h
index c3d62e0..5c805e2 100644
--- a/chrome/browser/vr/mode.h
+++ b/chrome/browser/vr/mode.h
@@ -16,7 +16,7 @@
   kVrBrowsing,  // Both kVrBrowsingRegular and kVrBrowsingFullscreen.
   kVrBrowsingRegular,
   kVrBrowsingFullscreen,  // Cinema mode.
-  kWebVr,
+  kWebXrVrPresentation,
 };
 
 }  // namespace vr
diff --git a/chrome/browser/vr/model/controller_model.h b/chrome/browser/vr/model/controller_model.h
index 9f99940..3a791ce 100644
--- a/chrome/browser/vr/model/controller_model.h
+++ b/chrome/browser/vr/model/controller_model.h
@@ -27,6 +27,8 @@
   UiInputManager::ButtonState touchpad_button_state = UiInputManager::UP;
   UiInputManager::ButtonState app_button_state = UiInputManager::UP;
   UiInputManager::ButtonState home_button_state = UiInputManager::UP;
+  bool touching_touchpad = false;
+  gfx::PointF touchpad_touch_position;
   float opacity = 1.0f;
   bool quiescent = false;
   bool resting_in_viewport = false;
diff --git a/chrome/browser/vr/ui.cc b/chrome/browser/vr/ui.cc
index 5c9aab1..de9c36b 100644
--- a/chrome/browser/vr/ui.cc
+++ b/chrome/browser/vr/ui.cc
@@ -390,6 +390,9 @@
                         std::unique_ptr<Assets> assets,
                         const base::Version& component_version) {
   if (status != AssetsLoadStatus::kSuccess) {
+    // If we already loaded assets successfully keep using them. Otherwise, show
+    // fallback.
+    model_->background_available = model_->background_loaded;
     return;
   }
 
@@ -402,6 +405,7 @@
                                 std::move(assets->fullscreen_gradient));
 
   ColorScheme::UpdateForComponent(component_version);
+  model_->background_available = true;
   model_->background_loaded = true;
 }
 
diff --git a/chrome/browser/vr/ui_scene_creator.cc b/chrome/browser/vr/ui_scene_creator.cc
index 7f4225d..6b58220 100644
--- a/chrome/browser/vr/ui_scene_creator.cc
+++ b/chrome/browser/vr/ui_scene_creator.cc
@@ -1539,6 +1539,19 @@
   keyboard->SetKeyboardDelegate(keyboard_delegate_);
   keyboard->SetDrawPhase(kPhaseForeground);
   keyboard->SetTranslate(0.0, kKeyboardVerticalOffsetDMM, 0.0);
+  keyboard->AddBinding(std::make_unique<Binding<std::pair<bool, gfx::PointF>>>(
+      VR_BIND_LAMBDA(
+          [](Model* m) {
+            return std::pair<bool, gfx::PointF>(
+                m->controller.touching_touchpad,
+                m->controller.touchpad_touch_position);
+          },
+          base::Unretained(model_)),
+      VR_BIND_LAMBDA(
+          [](Keyboard* keyboard, const std::pair<bool, gfx::PointF>& value) {
+            keyboard->OnTouchStateUpdated(value.first, value.second);
+          },
+          base::Unretained(keyboard.get()))));
   VR_BIND_VISIBILITY(keyboard,
                      model->editing_input || model->editing_web_input);
   scaler->AddChild(std::move(keyboard));
diff --git a/chrome/common/extensions/api/automation.idl b/chrome/common/extensions/api/automation.idl
index ecb7835..4d28d46 100644
--- a/chrome/common/extensions/api/automation.idl
+++ b/chrome/common/extensions/api/automation.idl
@@ -208,6 +208,7 @@
     haspopup,
     horizontal,
     hovered,
+    ignored,
     invisible,
     linked,
     multiline,
diff --git a/chrome/common/pref_names.cc b/chrome/common/pref_names.cc
index 21cd2b2..5fc8d1b 100644
--- a/chrome/common/pref_names.cc
+++ b/chrome/common/pref_names.cc
@@ -2442,6 +2442,7 @@
 // True if the user has dismissed the "desktop to iOS" history page promotion.
 const char kHistoryPageIOSPromoDismissed[] = "history_page_ios_promo_dismissed";
 
+#if defined(GOOGLE_CHROME_BUILD)
 // Acts as a cache to remember problematic programs through restarts. Used for
 // the third-party conflicts warning.
 const char kProblematicPrograms[] = "problematic_programs";
@@ -2449,7 +2450,8 @@
 // A boolean value, controlling whether third party software is allowed to
 // inject into Chrome's processes.
 const char kThirdPartyBlockingEnabled[] = "third_party_blocking_enabled";
-#endif
+#endif  // defined(GOOGLE_CHROME_BUILD)
+#endif  // defined(OS_WIN)
 
 // An integer that keeps track of prompt waves for the settings reset
 // prompt. Users will be prompted to reset settings at most once per prompt wave
diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
index 4b78d8a..7467fb9 100644
--- a/chrome/common/pref_names.h
+++ b/chrome/common/pref_names.h
@@ -868,9 +868,11 @@
 extern const char kNumberHistoryPageIOSPromoShown[];
 extern const char kHistoryPageIOSPromoDismissed[];
 
+#if defined(GOOGLE_CHROME_BUILD)
 extern const char kProblematicPrograms[];
 extern const char kThirdPartyBlockingEnabled[];
-#endif
+#endif  // defined(GOOGLE_CHROME_BUILD)
+#endif  // defined(OS_WIN)
 
 extern const char kSettingsResetPromptPromptWave[];
 extern const char kSettingsResetPromptLastTriggeredForDefaultSearch[];
diff --git a/chrome/installer/setup/setup.rc b/chrome/installer/setup/setup.rc
index 2e8635978..479e835 100644
--- a/chrome/installer/setup/setup.rc
+++ b/chrome/installer/setup/setup.rc
@@ -129,3 +129,12 @@
 /////////////////////////////////////////////////////////////////////////////
 #endif    // not APSTUDIO_INVOKED
 
+/////////////////////////////////////////////////////////////////////////////
+//
+// Resources of the "PATCHERTYPE" type indicate supported patch formats based
+// on their integer resource names.
+//
+#define IDR_PATCHER_TYPE_COURGETTE 1
+
+IDR_PATCHER_TYPE_COURGETTE PATCHERTYPE { 0L }
+
diff --git a/chrome/renderer/DEPS b/chrome/renderer/DEPS
index dfcc5f75..1a88b62b 100644
--- a/chrome/renderer/DEPS
+++ b/chrome/renderer/DEPS
@@ -59,7 +59,7 @@
   "+skia",
   "+storage/common",
   "+third_party/WebKit/public/common",
-  "+third_party/WebKit/common",  # TODO(kinuko): Remove this.
+  "+third_party/WebKit/public/mojom",
   "+third_party/metrics_proto",
   "-components/spellcheck/browser",  # Allow all spellcheck but browser.
 ]
diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer/chrome_content_renderer_client.cc
index 9dcba2b..81d5c0d 100644
--- a/chrome/renderer/chrome_content_renderer_client.cc
+++ b/chrome/renderer/chrome_content_renderer_client.cc
@@ -112,8 +112,8 @@
 #include "services/service_manager/public/cpp/connector.h"
 #include "services/service_manager/public/cpp/interface_provider.h"
 #include "services/service_manager/public/cpp/service_context.h"
-#include "third_party/WebKit/common/page/page_visibility_state.mojom.h"
 #include "third_party/WebKit/public/common/associated_interfaces/associated_interface_provider.h"
+#include "third_party/WebKit/public/mojom/page/page_visibility_state.mojom.h"
 #include "third_party/WebKit/public/platform/URLConversion.h"
 #include "third_party/WebKit/public/platform/WebCache.h"
 #include "third_party/WebKit/public/platform/WebRuntimeFeatures.h"
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn
index 4454692..ad9080e 100644
--- a/chrome/test/BUILD.gn
+++ b/chrome/test/BUILD.gn
@@ -30,6 +30,7 @@
 
 if (is_android) {
   import("//build/config/android/rules.gni")
+  import("//tools/v8_context_snapshot/v8_context_snapshot.gni")
 } else {
   include_js_tests = !(is_asan || is_msan || is_tsan)
 }
@@ -1453,6 +1454,9 @@
           "../browser/ui/views/web_dialog_view_browsertest.cc",
         ]
       }
+      if (!is_chromeos) {
+        sources += [ "../browser/ui/views/relaunch_notification/relaunch_recommended_bubble_view_browsertest.cc" ]
+      }
     }
 
     if (is_linux && !is_component_build) {
@@ -2200,6 +2204,7 @@
     "../browser/android/shortcut_info_unittest.cc",
     "../browser/android/signin/signin_manager_android_unittest.cc",
     "../browser/android/thumbnail/scoped_ptr_expiring_cache_unittest.cc",
+    "../browser/android/vr/vr_usage_monitor_unittest.cc",
     "../browser/android/webapk/webapk_icon_hasher_unittest.cc",
     "../browser/android/webapk/webapk_installer_unittest.cc",
     "../browser/android/webapk/webapk_web_manifest_checker_unittest.cc",
@@ -2250,15 +2255,11 @@
     "../browser/component_updater/sw_reporter_installer_win_unittest.cc",
     "../browser/conflicts/enumerate_input_method_editors_win_unittest.cc",
     "../browser/conflicts/enumerate_shell_extensions_win_unittest.cc",
-    "../browser/conflicts/installed_programs_win_unittest.cc",
     "../browser/conflicts/module_database_win_unittest.cc",
     "../browser/conflicts/module_event_sink_impl_win_unittest.cc",
     "../browser/conflicts/module_info_util_win_unittest.cc",
     "../browser/conflicts/module_info_win_unittest.cc",
     "../browser/conflicts/module_inspector_win_unittest.cc",
-    "../browser/conflicts/module_list_filter_win_unittest.cc",
-    "../browser/conflicts/module_list_manager_win_unittest.cc",
-    "../browser/conflicts/problematic_programs_updater_win_unittest.cc",
     "../browser/content_settings/content_settings_default_provider_unittest.cc",
     "../browser/content_settings/content_settings_mock_observer.cc",
     "../browser/content_settings/content_settings_mock_observer.h",
@@ -2299,7 +2300,6 @@
     "../browser/geolocation/geolocation_permission_context_unittest.cc",
     "../browser/global_keyboard_shortcuts_mac_unittest.mm",
     "../browser/google/google_update_settings_unittest.cc",
-    "../browser/google/google_update_win_unittest.cc",
     "../browser/history/android/android_cache_database_unittest.cc",
     "../browser/history/android/android_history_provider_service_unittest.cc",
     "../browser/history/android/android_provider_backend_unittest.cc",
@@ -2419,6 +2419,7 @@
     "../browser/password_manager/password_store_mac_unittest.cc",
     "../browser/password_manager/password_store_win_unittest.cc",
     "../browser/password_manager/password_store_x_unittest.cc",
+    "../browser/payments/payment_handler_permission_context_unittest.cc",
     "../browser/permissions/chooser_context_base_unittest.cc",
     "../browser/permissions/permission_context_base_feature_policy_unittest.cc",
     "../browser/permissions/permission_context_base_unittest.cc",
@@ -2799,8 +2800,12 @@
       "//components/gcm_driver/instance_id/android:instance_id_driver_java",
       "//components/gcm_driver/instance_id/android:instance_id_driver_test_support_java",
       "//content/public/android:content_java",
-      "//v8:v8_external_startup_data_assets",
     ]
+    if (use_v8_context_snapshot) {
+      deps += [ "//tools/v8_context_snapshot:v8_context_snapshot_assets" ]
+    } else {
+      deps += [ "//v8:v8_external_startup_data_assets" ]
+    }
 
     android_manifest =
         "//chrome/test/android/unit_tests_apk/AndroidManifest.xml"
@@ -4107,8 +4112,13 @@
       "/DELAYLOAD:api-ms-win-core-winrt-string-l1-1-0.dll",
     ]
 
-    if (!is_chrome_branded) {
-      sources -= [ "../browser/google/google_update_win_unittest.cc" ]
+    if (is_chrome_branded) {
+      sources += [
+        "../browser/conflicts/installed_programs_win_unittest.cc",
+        "../browser/conflicts/module_list_filter_win_unittest.cc",
+        "../browser/conflicts/problematic_programs_updater_win_unittest.cc",
+        "../browser/google/google_update_win_unittest.cc",
+      ]
     }
   }
   if (is_android) {
@@ -4125,6 +4135,7 @@
       "../browser/metrics/upgrade_metrics_provider_unittest.cc",
       "../browser/signin/force_signin_verifier_unittest.cc",
       "../browser/signin/signin_global_error_unittest.cc",
+      "../browser/signin/signin_ui_util_unittest.cc",
       "../browser/signin/signin_util_unittest.cc",
       "../browser/ui/webui/signin/signin_create_profile_handler_unittest.cc",
       "../browser/ui/webui/signin/signin_error_handler_unittest.cc",
diff --git a/chrome/test/chromedriver/chrome/devtools_client_impl.cc b/chrome/test/chromedriver/chrome/devtools_client_impl.cc
index 7d624f0..282f01a 100644
--- a/chrome/test/chromedriver/chrome/devtools_client_impl.cc
+++ b/chrome/test/chromedriver/chrome/devtools_client_impl.cc
@@ -89,6 +89,7 @@
                                        const std::string& id)
     : socket_(factory.Run()),
       url_(url),
+      parent_(nullptr),
       crashed_(false),
       id_(id),
       frontend_closer_func_(base::Bind(&FakeCloseFrontends)),
@@ -104,6 +105,7 @@
     const FrontendCloserFunc& frontend_closer_func)
     : socket_(factory.Run()),
       url_(url),
+      parent_(nullptr),
       crashed_(false),
       id_(id),
       frontend_closer_func_(frontend_closer_func),
@@ -112,6 +114,20 @@
       next_id_(1),
       stack_count_(0) {}
 
+DevToolsClientImpl::DevToolsClientImpl(DevToolsClientImpl* parent,
+                                       const std::string& session_id)
+    : parent_(parent),
+      session_id_(session_id),
+      crashed_(false),
+      id_(session_id),
+      frontend_closer_func_(base::BindRepeating(&FakeCloseFrontends)),
+      parser_func_(base::BindRepeating(&internal::ParseInspectorMessage)),
+      unnotified_event_(NULL),
+      next_id_(1),
+      stack_count_(0) {
+  parent->children_[session_id] = this;
+}
+
 DevToolsClientImpl::DevToolsClientImpl(
     const SyncWebSocketFactory& factory,
     const std::string& url,
@@ -120,6 +136,7 @@
     const ParserFunc& parser_func)
     : socket_(factory.Run()),
       url_(url),
+      parent_(nullptr),
       crashed_(false),
       id_(id),
       frontend_closer_func_(frontend_closer_func),
@@ -128,7 +145,10 @@
       next_id_(1),
       stack_count_(0) {}
 
-DevToolsClientImpl::~DevToolsClientImpl() {}
+DevToolsClientImpl::~DevToolsClientImpl() {
+  if (parent_ != nullptr)
+    parent_->children_.erase(session_id_);
+}
 
 void DevToolsClientImpl::SetParserFuncForTesting(
     const ParserFunc& parser_func) {
@@ -147,16 +167,18 @@
   if (stack_count_)
     return Status(kUnknownError, "cannot connect when nested");
 
-  if (socket_->IsConnected())
-    return Status(kOk);
+  if (parent_ == nullptr) {
+    if (socket_->IsConnected())
+      return Status(kOk);
 
-  if (!socket_->Connect(url_)) {
-    // Try to close devtools frontend and then reconnect.
-    Status status = frontend_closer_func_.Run();
-    if (status.IsError())
-      return status;
-    if (!socket_->Connect(url_))
-      return Status(kDisconnected, "unable to connect to renderer");
+    if (!socket_->Connect(url_)) {
+      // Try to close devtools frontend and then reconnect.
+      Status status = frontend_closer_func_.Run();
+      if (status.IsError())
+        return status;
+      if (!socket_->Connect(url_))
+        return Status(kDisconnected, "unable to connect to renderer");
+    }
   }
 
   unnotified_connect_listeners_ = listeners_;
@@ -262,7 +284,7 @@
     bool expect_response,
     bool wait_for_response,
     const Timeout* timeout) {
-  if (!socket_->IsConnected())
+  if (parent_ == nullptr && !socket_->IsConnected())
     return Status(kDisconnected, "not connected to DevTools");
 
   int command_id = next_id_++;
@@ -275,8 +297,17 @@
     VLOG(1) << "DEVTOOLS COMMAND " << method << " (id=" << command_id << ") "
             << FormatValueForDisplay(params);
   }
-  if (!socket_->Send(message))
+  if (parent_ != nullptr) {
+    base::DictionaryValue params2;
+    params2.SetString("sessionId", session_id_);
+    params2.SetString("message", message);
+    Status status = parent_->SendCommandInternal(
+        "Target.sendMessageToTarget", params2, nullptr, true, false, timeout);
+    if (status.IsError())
+      return status;
+  } else if (!socket_->Send(message)) {
     return Status(kDisconnected, "unable to send message to renderer");
+  }
 
   if (expect_response) {
     linked_ptr<ResponseInfo> response_info =
@@ -338,6 +369,9 @@
   if (crashed_)
     return Status(kTabCrashed);
 
+  if (parent_ != nullptr)
+    return parent_->ProcessNextMessage(-1, timeout);
+
   std::string message;
   switch (socket_->ReceiveNextMessage(&message, timeout)) {
     case SyncWebSocket::kOk:
@@ -359,6 +393,11 @@
       break;
   }
 
+  return HandleMessage(expected_id, message);
+}
+
+Status DevToolsClientImpl::HandleMessage(int expected_id,
+                                         const std::string& message) {
   internal::InspectorMessageType type;
   internal::InspectorEvent event;
   internal::InspectorCommandResponse response;
@@ -414,6 +453,23 @@
     if (enable_status.IsError())
       return status;
   }
+  if (event.method == "Target.receivedMessageFromTarget") {
+    std::string session_id;
+    if (!event.params->GetString("sessionId", &session_id))
+      return Status(
+          kUnknownError,
+          "missing sessionId in Target.receivedMessageFromTarget event");
+    if (children_.count(session_id) == 0)
+      return Status(kUnknownError, "unknown sessionId");
+    DevToolsClientImpl* child = children_[session_id];
+    std::string message;
+    if (!event.params->GetString("message", &message))
+      return Status(
+          kUnknownError,
+          "missing message in Target.receivedMessageFromTarget event");
+
+    return child->HandleMessage(-1, message);
+  }
   return Status(kOk);
 }
 
diff --git a/chrome/test/chromedriver/chrome/devtools_client_impl.h b/chrome/test/chromedriver/chrome/devtools_client_impl.h
index bcd66ce1..7057187 100644
--- a/chrome/test/chromedriver/chrome/devtools_client_impl.h
+++ b/chrome/test/chromedriver/chrome/devtools_client_impl.h
@@ -65,6 +65,8 @@
                      const std::string& id,
                      const FrontendCloserFunc& frontend_closer_func);
 
+  DevToolsClientImpl(DevToolsClientImpl* parent, const std::string& session_id);
+
   typedef base::Callback<bool(
       const std::string&,
       int,
@@ -143,6 +145,7 @@
       bool wait_for_response,
       const Timeout* timeout);
   Status ProcessNextMessage(int expected_id, const Timeout& timeout);
+  Status HandleMessage(int expected_id, const std::string& message);
   Status ProcessEvent(const internal::InspectorEvent& event);
   Status ProcessCommandResponse(
       const internal::InspectorCommandResponse& response);
@@ -152,6 +155,9 @@
 
   std::unique_ptr<SyncWebSocket> socket_;
   GURL url_;
+  DevToolsClientImpl* parent_;
+  const std::string session_id_;
+  std::map<std::string, DevToolsClientImpl*> children_;
   bool crashed_;
   const std::string id_;
   FrontendCloserFunc frontend_closer_func_;
diff --git a/chrome/test/chromedriver/chrome/frame_tracker.cc b/chrome/test/chromedriver/chrome/frame_tracker.cc
index 4bcdfb7..214502ec 100644
--- a/chrome/test/chromedriver/chrome/frame_tracker.cc
+++ b/chrome/test/chromedriver/chrome/frame_tracker.cc
@@ -8,10 +8,15 @@
 
 #include "base/json/json_writer.h"
 #include "base/values.h"
+#include "chrome/test/chromedriver/chrome/browser_info.h"
 #include "chrome/test/chromedriver/chrome/devtools_client.h"
 #include "chrome/test/chromedriver/chrome/status.h"
+#include "chrome/test/chromedriver/chrome/web_view_impl.h"
 
-FrameTracker::FrameTracker(DevToolsClient* client) {
+FrameTracker::FrameTracker(DevToolsClient* client,
+                           WebView* web_view,
+                           const BrowserInfo* browser_info)
+    : web_view_(web_view), browser_info_(browser_info) {
   client->AddListener(this);
 }
 
@@ -27,8 +32,45 @@
   return Status(kOk);
 }
 
+WebView* FrameTracker::GetTargetForFrame(const std::string& frame_id) {
+  // Context in the current target, return current target.
+  if (frame_to_context_map_.count(frame_id) != 0)
+    return web_view_;
+  // Child target of the current target, return that child target.
+  if (frame_to_target_map_.count(frame_id) != 0)
+    return frame_to_target_map_[frame_id].get();
+  // Frame unknown, recursively search all child targets.
+  for (auto it = frame_to_target_map_.begin(); it != frame_to_target_map_.end();
+       ++it) {
+    FrameTracker* child = it->second->GetFrameTracker();
+    if (child != nullptr) {
+      WebView* child_result = child->GetTargetForFrame(frame_id);
+      if (child_result != nullptr)
+        return child_result;
+    }
+  }
+  return nullptr;
+}
+
 Status FrameTracker::OnConnected(DevToolsClient* client) {
   frame_to_context_map_.clear();
+  frame_to_target_map_.clear();
+  // Enable target events to allow tracking iframe targets creation.
+  if (browser_info_->major_version == 65) {
+    base::DictionaryValue params;
+    params.SetBoolean("value", true);
+    Status status = client->SendCommand("Target.setAttachToFrames", params);
+    if (status.IsError())
+      return status;
+  }
+  if (browser_info_->major_version >= 65) {
+    base::DictionaryValue params;
+    params.SetBoolean("autoAttach", true);
+    params.SetBoolean("waitForDebuggerOnStart", false);
+    Status status = client->SendCommand("Target.setAutoAttach", params);
+    if (status.IsError())
+      return status;
+  }
   // Enable runtime events to allow tracking execution context creation.
   base::DictionaryValue params;
   Status status = client->SendCommand("Runtime.enable", params);
@@ -107,6 +149,30 @@
     const base::Value* unused_value;
     if (!params.Get("frame.parentId", &unused_value))
       frame_to_context_map_.clear();
+  } else if (method == "Target.attachedToTarget") {
+    std::string type, target_id, session_id;
+    if (!params.GetString("targetInfo.type", &type))
+      return Status(kUnknownError,
+                    "missing target type in Target.attachedToTarget event");
+    if (type == "iframe") {
+      if (!params.GetString("targetInfo.targetId", &target_id))
+        return Status(kUnknownError,
+                      "missing target ID in Target.attachedToTarget event");
+      if (!params.GetString("sessionId", &session_id))
+        return Status(kUnknownError,
+                      "missing session ID in Target.attachedToTarget event");
+      std::unique_ptr<WebView> child(
+          static_cast<WebViewImpl*>(web_view_)->CreateChild(session_id,
+                                                            target_id));
+      frame_to_target_map_[target_id] = std::move(child);
+      frame_to_target_map_[target_id]->ConnectIfNecessary();
+    }
+  } else if (method == "Target.detachedFromTarget") {
+    std::string target_id;
+    if (!params.GetString("targetId", &target_id))
+      return Status(kUnknownError,
+                    "missing target ID in Target.detachedFromTarget event");
+    frame_to_target_map_.erase(target_id);
   }
   return Status(kOk);
 }
diff --git a/chrome/test/chromedriver/chrome/frame_tracker.h b/chrome/test/chromedriver/chrome/frame_tracker.h
index d67929f..41c32547 100644
--- a/chrome/test/chromedriver/chrome/frame_tracker.h
+++ b/chrome/test/chromedriver/chrome/frame_tracker.h
@@ -11,21 +11,26 @@
 #include "base/compiler_specific.h"
 #include "base/macros.h"
 #include "chrome/test/chromedriver/chrome/devtools_event_listener.h"
+#include "chrome/test/chromedriver/chrome/web_view.h"
 
 namespace base {
 class DictionaryValue;
 }
 
+struct BrowserInfo;
 class DevToolsClient;
 class Status;
 
 // Tracks execution context creation.
 class FrameTracker : public DevToolsEventListener {
  public:
-  explicit FrameTracker(DevToolsClient* client);
+  FrameTracker(DevToolsClient* client,
+               WebView* web_view = nullptr,
+               const BrowserInfo* browser_info = nullptr);
   ~FrameTracker() override;
 
   Status GetContextIdForFrame(const std::string& frame_id, int* context_id);
+  WebView* GetTargetForFrame(const std::string& frame_id);
 
   // Overridden from DevToolsEventListener:
   Status OnConnected(DevToolsClient* client) override;
@@ -35,6 +40,9 @@
 
  private:
   std::map<std::string, int> frame_to_context_map_;
+  std::map<std::string, std::unique_ptr<WebView>> frame_to_target_map_;
+  WebView* web_view_;
+  const BrowserInfo* browser_info_;
 
   DISALLOW_COPY_AND_ASSIGN(FrameTracker);
 };
diff --git a/chrome/test/chromedriver/chrome/stub_web_view.cc b/chrome/test/chromedriver/chrome/stub_web_view.cc
index a461fb6..cbd9084c 100644
--- a/chrome/test/chromedriver/chrome/stub_web_view.cc
+++ b/chrome/test/chromedriver/chrome/stub_web_view.cc
@@ -210,3 +210,11 @@
 Status StubWebView::DeleteScreenOrientation() {
   return Status(kOk);
 }
+
+bool StubWebView::IsOOPIF(const std::string& frame_id) {
+  return false;
+}
+
+FrameTracker* StubWebView::GetFrameTracker() const {
+  return nullptr;
+}
diff --git a/chrome/test/chromedriver/chrome/stub_web_view.h b/chrome/test/chromedriver/chrome/stub_web_view.h
index 751a4b3..71a8337 100644
--- a/chrome/test/chromedriver/chrome/stub_web_view.h
+++ b/chrome/test/chromedriver/chrome/stub_web_view.h
@@ -100,6 +100,8 @@
   Status GetScreenOrientation(std::string* orientation) override;
   Status SetScreenOrientation(std::string orientation) override;
   Status DeleteScreenOrientation() override;
+  bool IsOOPIF(const std::string& frame_id) override;
+  FrameTracker* GetFrameTracker() const override;
 
  private:
   std::string id_;
diff --git a/chrome/test/chromedriver/chrome/web_view.h b/chrome/test/chromedriver/chrome/web_view.h
index 64f39a3..81ff7e13 100644
--- a/chrome/test/chromedriver/chrome/web_view.h
+++ b/chrome/test/chromedriver/chrome/web_view.h
@@ -19,6 +19,7 @@
 class Value;
 }
 
+class FrameTracker;
 struct Geoposition;
 class JavaScriptDialogManager;
 struct KeyEvent;
@@ -217,6 +218,10 @@
   virtual Status SetScreenOrientation(std::string orientation) = 0;
 
   virtual Status DeleteScreenOrientation() = 0;
+
+  virtual bool IsOOPIF(const std::string& frame_id) = 0;
+
+  virtual FrameTracker* GetFrameTracker() const = 0;
 };
 
 #endif  // CHROME_TEST_CHROMEDRIVER_CHROME_WEB_VIEW_H_
diff --git a/chrome/test/chromedriver/chrome/web_view_impl.cc b/chrome/test/chromedriver/chrome/web_view_impl.cc
index ea4baf6..a690cf0 100644
--- a/chrome/test/chromedriver/chrome/web_view_impl.cc
+++ b/chrome/test/chromedriver/chrome/web_view_impl.cc
@@ -41,19 +41,25 @@
 
 const int kWaitForNavigationStopSeconds = 10;
 
-Status GetContextIdForFrame(FrameTracker* tracker,
+Status GetContextIdForFrame(WebViewImpl* web_view,
                             const std::string& frame,
                             int* context_id) {
-  if (frame.empty()) {
+  if (frame.empty() || frame == web_view->GetId()) {
     *context_id = 0;
     return Status(kOk);
   }
-  Status status = tracker->GetContextIdForFrame(frame, context_id);
+  Status status =
+      web_view->GetFrameTracker()->GetContextIdForFrame(frame, context_id);
   if (status.IsError())
     return status;
   return Status(kOk);
 }
 
+WebView* GetTargetForFrame(WebViewImpl* web_view, const std::string& frame) {
+  return frame.empty() ? web_view
+                       : web_view->GetFrameTracker()->GetTargetForFrame(frame);
+}
+
 const char* GetAsString(MouseEventType type) {
   switch (type) {
     case kPressedMouseEventType:
@@ -121,25 +127,38 @@
     : id_(id),
       w3c_compliant_(w3c_compliant),
       browser_info_(browser_info),
-      dom_tracker_(new DomTracker(client.get())),
-      frame_tracker_(new FrameTracker(client.get())),
-      dialog_manager_(new JavaScriptDialogManager(client.get(), browser_info)),
+      client_(std::move(client)),
+      dom_tracker_(new DomTracker(client_.get())),
+      frame_tracker_(new FrameTracker(client_.get(), this, browser_info)),
+      dialog_manager_(new JavaScriptDialogManager(client_.get(), browser_info)),
       navigation_tracker_(PageLoadStrategy::Create(page_load_strategy,
-                                                   client.get(),
+                                                   client_.get(),
                                                    browser_info,
                                                    dialog_manager_.get())),
       mobile_emulation_override_manager_(
-          new MobileEmulationOverrideManager(client.get(), device_metrics)),
+          new MobileEmulationOverrideManager(client_.get(), device_metrics)),
       geolocation_override_manager_(
-          new GeolocationOverrideManager(client.get())),
+          new GeolocationOverrideManager(client_.get())),
       network_conditions_override_manager_(
-          new NetworkConditionsOverrideManager(client.get())),
-      heap_snapshot_taker_(new HeapSnapshotTaker(client.get())),
-      debugger_(new DebuggerTracker(client.get())),
-      client_(client.release()) {}
+          new NetworkConditionsOverrideManager(client_.get())),
+      heap_snapshot_taker_(new HeapSnapshotTaker(client_.get())),
+      debugger_(new DebuggerTracker(client_.get())) {}
 
 WebViewImpl::~WebViewImpl() {}
 
+WebView* WebViewImpl::CreateChild(const std::string& session_id,
+                                  const std::string& target_id) const {
+  DevToolsClientImpl* parent_client =
+      static_cast<DevToolsClientImpl*>(client_.get());
+  std::unique_ptr<DevToolsClient> child_client(
+      std::make_unique<DevToolsClientImpl>(parent_client, session_id));
+  return new WebViewImpl(target_id, w3c_compliant_, browser_info_,
+                         std::move(child_client), nullptr,
+                         navigation_tracker_->IsNonBlocking()
+                             ? PageLoadStrategy::kNone
+                             : PageLoadStrategy::kNormal);
+}
+
 std::string WebViewImpl::GetId() {
   return id_;
 }
@@ -276,9 +295,12 @@
 Status WebViewImpl::EvaluateScript(const std::string& frame,
                                    const std::string& expression,
                                    std::unique_ptr<base::Value>* result) {
+  WebView* target = GetTargetForFrame(this, frame);
+  if (target != nullptr && target != this)
+    return target->EvaluateScript(frame, expression, result);
+
   int context_id;
-  Status status = GetContextIdForFrame(frame_tracker_.get(), frame,
-                                       &context_id);
+  Status status = GetContextIdForFrame(this, frame, &context_id);
   if (status.IsError())
     return status;
   return internal::EvaluateScriptAndGetValue(
@@ -329,9 +351,12 @@
                                        const std::string& function,
                                        const base::ListValue& args,
                                        std::string* out_frame) {
+  WebView* target = GetTargetForFrame(this, frame);
+  if (target != nullptr && target != this)
+    return target->GetFrameByFunction(frame, function, args, out_frame);
+
   int context_id;
-  Status status = GetContextIdForFrame(frame_tracker_.get(), frame,
-                                       &context_id);
+  Status status = GetContextIdForFrame(this, frame, &context_id);
   if (status.IsError())
     return status;
   bool found_node;
@@ -348,6 +373,10 @@
 
 Status WebViewImpl::DispatchMouseEvents(const std::list<MouseEvent>& events,
                                         const std::string& frame) {
+  WebView* target = GetTargetForFrame(this, frame);
+  if (target != nullptr && target != this)
+    return target->DispatchMouseEvents(events, frame);
+
   double page_scale_factor = 1.0;
   if (browser_info_->build_no >= 2358 && browser_info_->build_no <= 2430 &&
       (browser_info_->is_android ||
@@ -575,6 +604,10 @@
     const std::string& frame,
     const base::DictionaryValue& element,
     const std::vector<base::FilePath>& files) {
+  WebView* target = GetTargetForFrame(this, frame);
+  if (target != nullptr && target != this)
+    return target->SetFileInputFiles(frame, element, files);
+
   base::ListValue file_list;
   for (size_t i = 0; i < files.size(); ++i) {
     if (!files[i].IsAbsolute()) {
@@ -589,8 +622,7 @@
   }
 
   int context_id;
-  Status status = GetContextIdForFrame(frame_tracker_.get(), frame,
-                                       &context_id);
+  Status status = GetContextIdForFrame(this, frame, &context_id);
   if (status.IsError())
     return status;
   base::ListValue args;
@@ -828,6 +860,15 @@
   return Status(kOk);
 }
 
+bool WebViewImpl::IsOOPIF(const std::string& frame_id) {
+  WebView* target = GetTargetForFrame(this, frame_id);
+  return target != nullptr && frame_id == target->GetId();
+}
+
+FrameTracker* WebViewImpl::GetFrameTracker() const {
+  return frame_tracker_.get();
+}
+
 namespace internal {
 
 Status EvaluateScript(DevToolsClient* client,
diff --git a/chrome/test/chromedriver/chrome/web_view_impl.h b/chrome/test/chromedriver/chrome/web_view_impl.h
index e92c032..dc22b7bc 100644
--- a/chrome/test/chromedriver/chrome/web_view_impl.h
+++ b/chrome/test/chromedriver/chrome/web_view_impl.h
@@ -43,6 +43,8 @@
               const DeviceMetrics* device_metrics,
               std::string page_load_strategy);
   ~WebViewImpl() override;
+  WebView* CreateChild(const std::string& session_id,
+                       const std::string& target_id) const;
 
   // Overridden from WebView:
   std::string GetId() override;
@@ -127,7 +129,8 @@
   Status GetScreenOrientation(std::string* orientation) override;
   Status SetScreenOrientation(std::string orientation) override;
   Status DeleteScreenOrientation() override;
-
+  bool IsOOPIF(const std::string& frame_id) override;
+  FrameTracker* GetFrameTracker() const override;
 
  private:
   Status TraverseHistoryWithJavaScript(int delta);
@@ -147,6 +150,9 @@
   std::string id_;
   bool w3c_compliant_;
   const BrowserInfo* browser_info_;
+  // Many trackers hold pointers to DevToolsClient, so client_ must be declared
+  // before the trackers, to ensured trackers are destructed before client_.
+  std::unique_ptr<DevToolsClient> client_;
   std::unique_ptr<DomTracker> dom_tracker_;
   std::unique_ptr<FrameTracker> frame_tracker_;
   std::unique_ptr<JavaScriptDialogManager> dialog_manager_;
@@ -158,7 +164,6 @@
       network_conditions_override_manager_;
   std::unique_ptr<HeapSnapshotTaker> heap_snapshot_taker_;
   std::unique_ptr<DebuggerTracker> debugger_;
-  std::unique_ptr<DevToolsClient> client_;
 };
 
 namespace internal {
diff --git a/chrome/test/chromedriver/chrome_launcher.cc b/chrome/test/chromedriver/chrome_launcher.cc
index 3e4a186..f3f196b4 100644
--- a/chrome/test/chromedriver/chrome_launcher.cc
+++ b/chrome/test/chromedriver/chrome_launcher.cc
@@ -377,7 +377,9 @@
 
 #if defined(OS_POSIX)
   base::ScopedFD devnull;
-  if (!base::CommandLine::ForCurrentProcess()->HasSwitch("verbose")) {
+  const base::CommandLine* cmd_line = base::CommandLine::ForCurrentProcess();
+  if (!cmd_line->HasSwitch("verbose") &&
+      cmd_line->GetSwitchValueASCII("log-level") != "ALL") {
     // Redirect stderr to /dev/null, so that Chrome log spew doesn't confuse
     // users.
     devnull.reset(HANDLE_EINTR(open("/dev/null", O_WRONLY)));
diff --git a/chrome/test/chromedriver/element_util.cc b/chrome/test/chromedriver/element_util.cc
index 9c01feb..d650e3f 100644
--- a/chrome/test/chromedriver/element_util.cc
+++ b/chrome/test/chromedriver/element_util.cc
@@ -623,8 +623,14 @@
       "  return document.evaluate(xpath, document, null,"
       "      XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;"
       "}";
+  bool has_saved_region_offset = false;
+  WebPoint saved_region_offset;
   for (std::list<FrameInfo>::reverse_iterator rit = session->frames.rbegin();
        rit != session->frames.rend(); ++rit) {
+    if (!has_saved_region_offset && web_view->IsOOPIF(rit->frame_id)) {
+      saved_region_offset = region_offset;
+      has_saved_region_offset = true;
+    }
     base::ListValue args;
     args.AppendString(
         base::StringPrintf("//*[@cd_frame_id_ = '%s']",
@@ -658,6 +664,8 @@
     if (status.IsError())
       return status;
   }
+  if (has_saved_region_offset)
+    region_offset = saved_region_offset;
   *location = region_offset;
   return Status(kOk);
 }
diff --git a/chrome/test/chromedriver/logging.cc b/chrome/test/chromedriver/logging.cc
index 86f52469..032450a7 100644
--- a/chrome/test/chromedriver/logging.cc
+++ b/chrome/test/chromedriver/logging.cc
@@ -253,11 +253,32 @@
       return false;
     }
   }
-  if (cmd_line->HasSwitch("silent"))
-    g_log_level = Log::kOff;
 
-  if (cmd_line->HasSwitch("verbose"))
+  int num_level_switches = 0;
+
+  if (cmd_line->HasSwitch("silent")) {
+    g_log_level = Log::kOff;
+    num_level_switches++;
+  }
+
+  if (cmd_line->HasSwitch("verbose")) {
     g_log_level = Log::kAll;
+    num_level_switches++;
+  }
+
+  if (cmd_line->HasSwitch("log-level")) {
+    if (!WebDriverLog::NameToLevel(cmd_line->GetSwitchValueASCII("log-level"),
+                                   &g_log_level)) {
+      printf("Invalid --log-level value.\n");
+      return false;
+    }
+    num_level_switches++;
+  }
+
+  if (num_level_switches > 1) {
+    printf("Only one of --log-level, --verbose, or --silent is allowed.\n");
+    return false;
+  }
 
   // Turn on VLOG for chromedriver. This is parsed during logging::InitLogging.
   cmd_line->AppendSwitchASCII("vmodule", "*/chrome/test/chromedriver/*=3");
diff --git a/chrome/test/chromedriver/server/chromedriver_server.cc b/chrome/test/chromedriver/server/chromedriver_server.cc
index 1990218..b70b5b5 100644
--- a/chrome/test/chromedriver/server/chromedriver_server.cc
+++ b/chrome/test/chromedriver/server/chromedriver_server.cc
@@ -256,9 +256,11 @@
         "adb-port=PORT", "adb server port",
         "log-path=FILE", "write server log to file instead of stderr, "
             "increases log level to INFO",
-        "verbose", "log verbosely",
+        "log-level=LEVEL", "set log level: ALL, DEBUG, INFO, WARNING, "
+            "SEVERE, OFF",
+        "verbose", "log verbosely (equivalent to --log-level=ALL)",
+        "silent", "log nothing (equivalent to --log-level=OFF)",
         "version", "print the version number and exit",
-        "silent", "log nothing",
         "url-base", "base URL path prefix for commands, e.g. wd/url",
         "port-server", "address of server to contact for reserving a port",
         "whitelisted-ips", "comma-separated whitelist of remote IPv4 addresses "
@@ -321,7 +323,8 @@
     whitelisted_ips = base::SplitString(
         whitelist, ",", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL);
   }
-  if (!cmd_line->HasSwitch("silent")) {
+  if (!cmd_line->HasSwitch("silent") &&
+      cmd_line->GetSwitchValueASCII("log-level") != "OFF") {
     printf("Starting ChromeDriver %s on port %u\n", kChromeDriverVersion, port);
     if (!allow_remote) {
       printf("Only local connections are allowed.\n");
diff --git a/chrome/test/chromedriver/test/run_py_tests.py b/chrome/test/chromedriver/test/run_py_tests.py
index 9f47550..b90c96a 100755
--- a/chrome/test/chromedriver/test/run_py_tests.py
+++ b/chrome/test/chromedriver/test/run_py_tests.py
@@ -73,14 +73,10 @@
     'ChromeDriverTest.testAlertOnNewWindow',
     # https://bugs.chromium.org/p/chromedriver/issues/detail?id=1882
     'PerfTest.testColdExecuteScript',
-    # https://bugs.chromium.org/p/chromedriver/issues/detail?id=1819
-    'ChromeExtensionsCapabilityTest.testIFrameWithExtensionsSource',
     # https://bugs.chromium.org/p/chromedriver/issues/detail?id=2144
     'MobileEmulationCapabilityTest.testClickElement',
     'MobileEmulationCapabilityTest.testNetworkConnectionTypeIsAppliedToAllTabs',
     'MobileEmulationCapabilityTest.testNetworkConnectionTypeIsAppliedToAllTabsImmediately',
-    # https://bugs.chromium.org/p/chromium/issues/detail?id=746266
-    'ChromeDriverSiteIsolation.testCanClickOOPIF',
 ]
 
 _VERSION_SPECIFIC_FILTER = {}
@@ -97,6 +93,10 @@
     'HeadlessInvalidCertificateTest.*',
     # https://bugs.chromium.org/p/chromedriver/issues/detail?id=2025
     'ChromeDriverTest.testDoesntHangOnFragmentNavigation',
+    # https://bugs.chromium.org/p/chromedriver/issues/detail?id=1819
+    'ChromeExtensionsCapabilityTest.testIFrameWithExtensionsSource',
+    # https://bugs.chromium.org/p/chromium/issues/detail?id=746266
+    'ChromeDriverSiteIsolation.testCanClickOOPIF',
 ]
 
 _VERSION_SPECIFIC_FILTER['63'] = [
@@ -106,6 +106,10 @@
     'ChromeDriverTest.testDoesntHangOnFragmentNavigation',
     'ChromeDriverPageLoadTimeoutTest.testHistoryNavigationWithPageLoadTimeout',
     'ChromeDriverPageLoadTimeoutTest.testRefreshWithPageLoadTimeout',
+    # https://bugs.chromium.org/p/chromedriver/issues/detail?id=1819
+    'ChromeExtensionsCapabilityTest.testIFrameWithExtensionsSource',
+    # https://bugs.chromium.org/p/chromium/issues/detail?id=746266
+    'ChromeDriverSiteIsolation.testCanClickOOPIF',
 ]
 
 
@@ -115,6 +119,8 @@
     'ChromeLogPathCapabilityTest.testChromeLogPath',
     # https://bugs.chromium.org/p/chromedriver/issues/detail?id=1945
     'ChromeDriverTest.testWindowFullScreen',
+    # https://bugs.chromium.org/p/chromium/issues/detail?id=746266
+    'ChromeDriverSiteIsolation.testCanClickOOPIF',
 ]
 _OS_SPECIFIC_FILTER['linux'] = [
     # Xvfb doesn't support maximization.
diff --git a/chrome/test/data/client_hints/accept_ch_without_lifetime_img_localhost.html b/chrome/test/data/client_hints/accept_ch_without_lifetime_img_localhost.html
new file mode 100644
index 0000000..883d3085
--- /dev/null
+++ b/chrome/test/data/client_hints/accept_ch_without_lifetime_img_localhost.html
@@ -0,0 +1,8 @@
+<html>
+<link rel="icon" href="data:;base64,=">
+<head></head>
+Empty file which uses link-rel to disable favicon fetches. The corresponding
+.mock-http-headers sets client hints.
+<img src="non-existing-image.jpg"></img>
+<img src="https://foo.com/non-existing-image.jpg"></img>
+</html>
diff --git a/chrome/test/data/client_hints/accept_ch_without_lifetime_img_localhost.html.mock-http-headers b/chrome/test/data/client_hints/accept_ch_without_lifetime_img_localhost.html.mock-http-headers
new file mode 100644
index 0000000..42ffdfff
--- /dev/null
+++ b/chrome/test/data/client_hints/accept_ch_without_lifetime_img_localhost.html.mock-http-headers
@@ -0,0 +1,2 @@
+HTTP/1.1 200 OK
+Accept-CH: dpr,device-memory
\ No newline at end of file
diff --git a/chrome/test/data/policy/policy_test_cases.json b/chrome/test/data/policy/policy_test_cases.json
index 43e768d..926aa33 100644
--- a/chrome/test/data/policy/policy_test_cases.json
+++ b/chrome/test/data/policy/policy_test_cases.json
@@ -917,6 +917,7 @@
 
   "ThirdPartyBlockingEnabled": {
     "os": ["win"],
+    "official_only": true,
     "test_policy": { "ThirdPartyBlockingEnabled": false },
     "pref_mappings": [
       { "pref": "third_party_blocking_enabled",
diff --git a/chrome/test/data/webui/settings/cr_settings_browsertest.js b/chrome/test/data/webui/settings/cr_settings_browsertest.js
index 7903261..56d6906 100644
--- a/chrome/test/data/webui/settings/cr_settings_browsertest.js
+++ b/chrome/test/data/webui/settings/cr_settings_browsertest.js
@@ -608,6 +608,30 @@
   mocha.run();
 });
 
+/**
+ * @constructor
+ * @extends {CrSettingsBrowserTest}
+ */
+function CrSettingsIncompatibleSoftwarePageTest() {}
+
+CrSettingsIncompatibleSoftwarePageTest.prototype = {
+  __proto__: CrSettingsBrowserTest.prototype,
+
+  /** @override */
+  browsePreload:
+      'chrome://settings/incompatible_software_page/incompatible_software_page.html',
+
+  /** @override */
+  extraLibraries: CrSettingsBrowserTest.prototype.extraLibraries.concat([
+    '../test_browser_proxy.js',
+    'incompatible_software_page_test.js',
+  ]),
+};
+
+TEST_F('CrSettingsIncompatibleSoftwarePageTest', 'All', function() {
+  mocha.run();
+});
+
 GEN('#endif  // defined(OS_WIN) and defined(GOOGLE_CHROME_BUILD)');
 
 /**
diff --git a/chrome/test/data/webui/settings/incompatible_software_page_test.js b/chrome/test/data/webui/settings/incompatible_software_page_test.js
new file mode 100644
index 0000000..b7482ab
--- /dev/null
+++ b/chrome/test/data/webui/settings/incompatible_software_page_test.js
@@ -0,0 +1,207 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+/** @implements {settings.IncompatibleSoftwareBrowserProxy} */
+class TestIncompatibleSoftwareBrowserProxy extends TestBrowserProxy {
+  constructor() {
+    super([
+      'requestIncompatibleSoftwareList',
+      'startProgramUninstallation',
+      'openURL',
+    ]);
+
+    /** @private {!Array<!settings.IncompatibleSoftware>} */
+    this.incompatibleSoftware_ = [];
+  }
+
+  /** @override */
+  requestIncompatibleSoftware() {
+    this.methodCalled('requestIncompatibleSoftware');
+    return Promise.resolve(this.incompatibleSoftware_);
+  }
+
+  /** @override */
+  startProgramUninstallation(programName) {
+    this.methodCalled('startProgramUninstallation', programName);
+  }
+
+  /** @override */
+  openURL(url) {
+    this.methodCalled('openURL', url);
+  }
+
+  /**
+   * Sets the list of incompatible software returned by
+   * requestIncompatibleSoftwareList().
+   * @param {!Array<!settings.IncompatibleSoftware>} incompatibleSoftware
+   */
+  setIncompatibleSoftware(incompatibleSoftware) {
+    this.incompatibleSoftware_ = incompatibleSoftware;
+  }
+}
+
+suite('incompatibleSoftwareHandler', function() {
+  let incompatibleSoftwarePage = null;
+
+  /** @type {?TestIncompatibleSoftwareBrowserProxy} */
+  let incompatibleSoftwareBrowserProxy = null;
+
+  const incompatibleSoftware1 = {
+    'name': 'Application 1',
+    'type': 0,
+    'url': '',
+  };
+  const incompatibleSoftware2 = {
+    'name': 'Application 2',
+    'type': 0,
+    'url': '',
+  };
+  const incompatibleSoftware3 = {
+    'name': 'Application 3',
+    'type': 0,
+    'url': '',
+  };
+  const learnMoreIncompatibleSoftware = {
+    'name': 'Update Application',
+    'type': 1,
+    'url': 'chrome://update-url',
+  };
+  const updateIncompatibleSoftware = {
+    'name': 'Update Application',
+    'type': 1,
+    'url': 'chrome://update-url',
+  };
+
+  /**
+   * @param {!Array<settings.IncompatibleSoftware>}
+   */
+  function validateList(incompatibleSoftware) {
+    const list = incompatibleSoftwarePage.shadowRoot.querySelectorAll(
+        '.incompatible-software:not([hidden])');
+
+    assertEquals(list.length, incompatibleSoftware.length);
+  }
+
+  setup(function() {
+    incompatibleSoftwareBrowserProxy = new TestIncompatibleSoftwareBrowserProxy();
+    settings.incompatibleSoftwareBrowserProxyImpl.instance_ =
+        incompatibleSoftwareBrowserProxy;
+  });
+
+  /**
+   * @param {boolean} hasAdminRights
+   * @return {!Promise}
+   */
+  function initPage(hasAdminRights) {
+    incompatibleSoftwareBrowserProxy.reset();
+    PolymerTest.clearBody();
+
+    loadTimeData.overrideValues({
+      hasAdminRights: hasAdminRights,
+    });
+
+    incompatibleSoftwarePage =
+        document.createElement('settings-incompatible-software-page');
+    document.body.appendChild(incompatibleSoftwarePage);
+    return incompatibleSoftwareBrowserProxy
+        .whenCalled('requestIncompatibleSoftwareList')
+        .then(function() {
+          Polymer.dom.flush();
+        });
+  }
+
+  test('openMultipleIncompatibleSoftware', function() {
+    const multipleIncompatibleSoftwareTestList = [
+      incompatibleSoftware1,
+      incompatibleSoftware2,
+      incompatibleSoftware3,
+    ];
+
+    incompatibleSoftwareBrowserProxy.setIncompatibleSoftware(
+        multipleIncompatibleSoftwareTestList);
+
+    return initPage(true).then(function() {
+      validateList(multipleIncompatibleSoftwareTestList);
+    });
+  });
+
+  test('startProgramUninstallation', function() {
+    const singleIncompatibleSoftwareTestList = [
+      incompatibleSoftware1,
+    ];
+
+    incompatibleSoftwareBrowserProxy.setIncompatibleSoftware(
+        singleIncompatibleSoftwareTestList);
+
+    return initPage(true /* hasAdminRights */)
+        .then(function() {
+          validateList(singleIncompatibleSoftwareTestList);
+
+          // Retrieve the incompatible-software-item and tap it. It should be
+          // visible.
+          let item =
+              incompatibleSoftwarePage.$$('.incompatible-software:not([hidden])');
+          item.$$('.primary-button').click();
+
+          return incompatibleSoftwareBrowserProxy.whenCalled(
+              'startProgramUninstallation');
+        })
+        .then(function(programName) {
+          assertEquals(incompatibleSoftware1.name, programName);
+        });
+  });
+
+  test('learnMore', function() {
+    const singleUpdateIncompatibleSoftwareTestList = [
+      learnMoreIncompatibleSoftware,
+    ];
+
+    incompatibleSoftwareBrowserProxy.setIncompatibleSoftware(
+        singleUpdateIncompatibleSoftwareTestList);
+
+    return initPage(true /* hasAdminRights */)
+        .then(function() {
+          validateList(singleUpdateIncompatibleSoftwareTestList);
+
+          // Retrieve the incompatible-software-item and tap it. It should be
+          // visible.
+          let item =
+              incompatibleSoftwarePage.$$('.incompatible-software:not([hidden])');
+          item.$$('.primary-button').click();
+
+          return incompatibleSoftwareBrowserProxy.whenCalled('openURL');
+        })
+        .then(function(url) {
+          assertEquals(updateIncompatibleSoftware.url, url);
+        });
+  });
+
+  test('noAdminRights', function() {
+    const eachTypeIncompatibleSoftwareTestList = [
+      incompatibleSoftware1,
+      learnMoreIncompatibleSoftware,
+      updateIncompatibleSoftware,
+    ];
+
+    incompatibleSoftwareBrowserProxy.setIncompatibleSoftware(
+        eachTypeIncompatibleSoftwareTestList);
+
+    return initPage(false /* hasAdminRights */).then(function() {
+      validateList(eachTypeIncompatibleSoftwareTestList);
+
+      let items = incompatibleSoftwarePage.shadowRoot.querySelectorAll(
+          '.incompatible-software:not([hidden])');
+
+      assertEquals(items.length, 3);
+
+      items.forEach(function(item, index) {
+        // Just the name of the incompatible software is displayed inside a div
+        // node. The <incompatible-software-item> component is not used.
+        item.textContent.includes(
+            eachTypeIncompatibleSoftwareTestList[index].name);
+        assertNotEquals(item.nodeName, 'INCOMPATIBLE-SOFTWARE-ITEM');
+      });
+    });
+  });
+});
diff --git a/chrome/test/data/webui/settings/settings_passwords_section_browsertest.js b/chrome/test/data/webui/settings/settings_passwords_section_browsertest.js
index 0eed6a3..147fee7 100644
--- a/chrome/test/data/webui/settings/settings_passwords_section_browsertest.js
+++ b/chrome/test/data/webui/settings/settings_passwords_section_browsertest.js
@@ -606,6 +606,49 @@
       done();
     });
 
+    // Chrome offers the export option when there are passwords.
+    test('offerExportWhenPasswords', function(done) {
+      const passwordList = [
+        FakeDataMaker.passwordEntry('googoo.com', 'Larry', 1),
+      ];
+      const passwordsSection =
+          createPasswordsSection(passwordManager, passwordList, []);
+
+      validatePasswordList(passwordsSection.$.passwordList, passwordList);
+      assertFalse(passwordsSection.$.menuExportPassword.hidden);
+      done();
+    });
+
+    // Chrome shouldn't offer the option to export passwords if there are no
+    // passwords.
+    test('noExportIfNoPasswords', function(done) {
+      const passwordList = [];
+      const passwordsSection =
+          createPasswordsSection(passwordManager, passwordList, []);
+
+      validatePasswordList(passwordsSection.$.passwordList, passwordList);
+      assertTrue(passwordsSection.$.menuExportPassword.hidden);
+      done();
+    });
+
+    // Test that clicking the Export Passwords menu item opens the export
+    // dialog.
+    test('exportOpen', function(done) {
+      const passwordList = [
+        FakeDataMaker.passwordEntry('googoo.com', 'Larry', 1),
+      ];
+      const passwordsSection =
+          createPasswordsSection(passwordManager, passwordList, []);
+
+      // The export dialog calls requestExportProgressStatus() when opening.
+      passwordManager.requestExportProgressStatus = (callback) => {
+        callback(chrome.passwordsPrivate.ExportProgressStatus.NOT_STARTED);
+        done();
+      };
+      passwordManager.addPasswordsFileExportProgressListener = () => {};
+      MockInteractions.tap(passwordsSection.$.menuExportPassword);
+    });
+
     // Test that tapping "Export passwords..." notifies the browser accordingly
     test('startExport', function(done) {
       const exportDialog = createExportPasswordsDialog(passwordManager);
@@ -665,12 +708,46 @@
         folderName: 'tmp',
       });
 
+      // Test that the error dialog is shown.
       assertTrue(exportDialog.$.dialog_error.open);
+      // Test that the error dialog can be dismissed.
+      MockInteractions.tap(exportDialog.$.cancelErrorButton);
+      assertFalse(exportDialog.$.dialog_error.open);
       done();
 
       mockTimer.uninstall();
     });
 
+    // The error view allows to retry.
+    test('exportFlowErrorRetry', function(done) {
+      const exportDialog = createExportPasswordsDialog(passwordManager);
+      const progressCallback = passwordManager.progressCallback;
+
+      // Use this to freeze the delayed progress bar and avoid flakiness.
+      let mockTimer = new MockTimer();
+      mockTimer.install();
+
+      MockInteractions.tap(exportDialog.$.exportPasswordsButton);
+      progressCallback(
+          {status: chrome.passwordsPrivate.ExportProgressStatus.IN_PROGRESS});
+      progressCallback({
+        status:
+            chrome.passwordsPrivate.ExportProgressStatus.FAILED_WRITE_FAILED,
+        folderName: 'tmp',
+      });
+
+      // Test that the error dialog is shown.
+      assertTrue(exportDialog.$.dialog_error.open);
+      // Test that clicking retry will start a new export.
+      passwordManager.exportPasswords = (callback) => {
+        callback();
+        done();
+      };
+      MockInteractions.tap(exportDialog.$.tryAgainButton);
+
+      mockTimer.uninstall();
+    });
+
     // Test the export flow. If exporting is slow, Chrome should show the
     // in-progress dialog for at least 1000ms.
     test('exportFlowSlow', function(done) {
@@ -712,6 +789,18 @@
 
       mockTimer.uninstall();
     });
+
+    // The export dialog is dismissable.
+    test('exportDismissable', function(done) {
+      const exportDialog = createExportPasswordsDialog(passwordManager);
+
+      assertTrue(exportDialog.$.dialog_start.open);
+      MockInteractions.tap(exportDialog.$.cancelButton);
+      assertFalse(exportDialog.$.dialog_start.open);
+
+      done();
+    });
+
   });
 
   mocha.run();
diff --git a/chrome/tools/build/win/FILES.cfg b/chrome/tools/build/win/FILES.cfg
index ee14e093..7343aee67 100644
--- a/chrome/tools/build/win/FILES.cfg
+++ b/chrome/tools/build/win/FILES.cfg
@@ -657,6 +657,12 @@
     'archive': 'courgette64.exe',
   },
   {
+    'filename': 'zucchini.exe',
+    'buildtype': ['official'],
+    'optional': ['official'],
+    'archive': 'zucchini.exe',
+  },
+  {
     'filename': 'chrome.dll.pdb',
     'buildtype': ['dev', 'official'],
     'archive': 'chrome-win32-syms.zip',
diff --git a/chrome_elf/chrome_elf_x64.def b/chrome_elf/chrome_elf_x64.def
index 0f0d6b8..f4b3dfb 100644
--- a/chrome_elf/chrome_elf_x64.def
+++ b/chrome_elf/chrome_elf_x64.def
@@ -9,6 +9,7 @@
 
   ; From components/crash/content/app/crash_export_stubs.cc
   CrashForException_ExportThunk
+  DumpHungProcessWithPtype_ExportThunk
   GetCrashpadDatabasePath_ExportThunk
   GetCrashReports_ExportThunk
   InjectDumpForHungInput_ExportThunk
diff --git a/chrome_elf/chrome_elf_x86.def b/chrome_elf/chrome_elf_x86.def
index 53a46bb..258af5b 100644
--- a/chrome_elf/chrome_elf_x86.def
+++ b/chrome_elf/chrome_elf_x86.def
@@ -9,6 +9,7 @@
 
   ; From components/crash/content/app/crash_export_stubs.cc
   CrashForException_ExportThunk
+  DumpHungProcessWithPtype_ExportThunk
   GetCrashpadDatabasePath_ExportThunk
   GetCrashReports_ExportThunk
   InjectDumpForHungInput_ExportThunk
diff --git a/chromecast/browser/BUILD.gn b/chromecast/browser/BUILD.gn
index 3eda3d4..f91c10b2 100644
--- a/chromecast/browser/BUILD.gn
+++ b/chromecast/browser/BUILD.gn
@@ -359,6 +359,7 @@
 
   sources = [
     "cast_media_blocker_unittest.cc",
+    "cast_touch_device_manager_unittest.cc",
     "devtools/cast_devtools_manager_delegate_unittest.cc",
   ]
 
@@ -368,6 +369,7 @@
     "//chromecast/base",
     "//content/public/browser",
     "//content/test:test_support",
+    "//ui/events/devices:devices",
     "//ui/gl:test_support",
   ]
 }
diff --git a/chromecast/browser/android/BUILD.gn b/chromecast/browser/android/BUILD.gn
index c912bbdb..117732d 100644
--- a/chromecast/browser/android/BUILD.gn
+++ b/chromecast/browser/android/BUILD.gn
@@ -59,6 +59,10 @@
   java_src_dir = "//chromecast/browser/android/apk/src"
   java_files =
       [ "$java_src_dir/org/chromium/chromecast/shell/CastAudioManager.java" ]
+  deps = [
+    "//base:base_java",
+    "//chromecast/base:base_java",
+  ]
 }
 
 android_library("cast_intents_java") {
@@ -141,6 +145,7 @@
 
 junit_binary("cast_shell_junit_tests") {
   java_files = [
+    "junit/src/org/chromium/chromecast/shell/CastAudioManagerTest.java",
     "junit/src/org/chromium/chromecast/shell/CastWebContentsComponentTest.java",
     "junit/src/org/chromium/chromecast/shell/LocalBroadcastReceiverScopeTest.java",
     "junit/src/org/chromium/chromecast/shell/LogcatElisionUnitTest.java",
diff --git a/chromecast/browser/android/apk/src/org/chromium/chromecast/shell/CastAudioManager.java b/chromecast/browser/android/apk/src/org/chromium/chromecast/shell/CastAudioManager.java
index 79f423c..c366f05 100644
--- a/chromecast/browser/android/apk/src/org/chromium/chromecast/shell/CastAudioManager.java
+++ b/chromecast/browser/android/apk/src/org/chromium/chromecast/shell/CastAudioManager.java
@@ -7,11 +7,17 @@
 import android.content.Context;
 import android.media.AudioManager;
 
+import org.chromium.base.Log;
+import org.chromium.chromecast.base.Controller;
+import org.chromium.chromecast.base.Observable;
+import org.chromium.chromecast.base.Unit;
+
 /**
  * Wrapper for Cast code to use a single AudioManager instance.
  * Muting and unmuting streams must be invoke on the same AudioManager instance.
  */
 public class CastAudioManager {
+    private static final String TAG = "CastAudioManager";
     // TODO(sanfin): This class should encapsulate SDK-dependent implementation details of
     // android.media.AudioManager.
     private static CastAudioManager sInstance = null;
@@ -31,6 +37,43 @@
         mAudioManager = audioManager;
     }
 
+    /**
+     * Requests audio focus whenever the given Observable is activated.
+     *
+     * Returns an Observable that is activated whenever the audio focus is granted.
+     *
+     * TODO(sanfin): Distinguish between transient, ducking, and full audio focus losses.
+     */
+    public Observable<Unit> requestAudioFocusWhen(
+            Observable<?> event, int streamType, int durationHint) {
+        Controller<Unit> audioFocusState = new Controller<>();
+        event.watch(() -> {
+            AudioManager.OnAudioFocusChangeListener listener = (int focusChange) -> {
+                switch (focusChange) {
+                    case AudioManager.AUDIOFOCUS_GAIN:
+                        audioFocusState.set(Unit.unit());
+                        return;
+                    default:
+                        audioFocusState.reset();
+                        return;
+                }
+            };
+            // Request audio focus when the source event is activated.
+            if (requestAudioFocus(listener, streamType, durationHint)
+                    != AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
+                Log.e(TAG, "Failed to get audio focus");
+            }
+            // Abandon audio focus when the source event is deactivated.
+            return () -> {
+                if (abandonAudioFocus(listener) != AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
+                    Log.e(TAG, "Failed to abandon audio focus");
+                }
+                audioFocusState.reset();
+            };
+        });
+        return audioFocusState;
+    }
+
     // TODO(sanfin): Use the AudioFocusRequest version on O and above.
     @SuppressWarnings("deprecation")
     public int requestAudioFocus(
diff --git a/chromecast/browser/android/apk/src/org/chromium/chromecast/shell/CastWebContentsService.java b/chromecast/browser/android/apk/src/org/chromium/chromecast/shell/CastWebContentsService.java
index 658a04b..86239cf 100644
--- a/chromecast/browser/android/apk/src/org/chromium/chromecast/shell/CastWebContentsService.java
+++ b/chromecast/browser/android/apk/src/org/chromium/chromecast/shell/CastWebContentsService.java
@@ -13,6 +13,8 @@
 
 import org.chromium.base.Log;
 import org.chromium.base.annotations.JNINamespace;
+import org.chromium.chromecast.base.Controller;
+import org.chromium.chromecast.base.Unit;
 import org.chromium.components.content_view.ContentView;
 import org.chromium.content_public.browser.ContentViewCore;
 import org.chromium.content_public.browser.WebContents;
@@ -31,6 +33,7 @@
     private static final boolean DEBUG = true;
     private static final int CAST_NOTIFICATION_ID = 100;
 
+    private final Controller<Unit> mLifetimeController = new Controller<>();
     private String mInstanceId;
     private CastAudioManager mAudioManager;
     private WindowAndroid mWindow;
@@ -56,10 +59,7 @@
     public void onDestroy() {
         if (DEBUG) Log.d(TAG, "onDestroy");
 
-        if (mAudioManager.abandonAudioFocus(null) != AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
-            Log.e(TAG, "Failed to abandon audio focus");
-        }
-
+        mLifetimeController.reset();
         super.onDestroy();
     }
 
@@ -74,13 +74,9 @@
         }
 
         mWindow = new WindowAndroid(this);
-        mAudioManager = CastAudioManager.getAudioManager(this);
-
-        if (mAudioManager.requestAudioFocus(
-                    null, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN)
-                != AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
-            Log.e(TAG, "Failed to obtain audio focus");
-        }
+        CastAudioManager.getAudioManager(this).requestAudioFocusWhen(
+                mLifetimeController, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN);
+        mLifetimeController.set(Unit.unit());
     }
 
     @Override
@@ -115,7 +111,7 @@
     private void detachWebContentsIfAny() {
         if (DEBUG) Log.d(TAG, "detachWebContentsIfAny");
 
-        stopForeground(true /*removeNotification*/ );
+        stopForeground(true /*removeNotification*/);
 
         if (mContentView != null) {
             mContentView = null;
diff --git a/chromecast/browser/android/apk/src/org/chromium/chromecast/shell/CastWebContentsSurfaceHelper.java b/chromecast/browser/android/apk/src/org/chromium/chromecast/shell/CastWebContentsSurfaceHelper.java
index fa9abf2..56bfa3fc 100644
--- a/chromecast/browser/android/apk/src/org/chromium/chromecast/shell/CastWebContentsSurfaceHelper.java
+++ b/chromecast/browser/android/apk/src/org/chromium/chromecast/shell/CastWebContentsSurfaceHelper.java
@@ -18,6 +18,7 @@
 import org.chromium.base.Log;
 import org.chromium.base.annotations.JNINamespace;
 import org.chromium.chromecast.base.Controller;
+import org.chromium.chromecast.base.Unit;
 import org.chromium.components.content_view.ContentView;
 import org.chromium.content.browser.ActivityContentVideoViewEmbedder;
 import org.chromium.content.browser.ContentVideoViewEmbedder;
@@ -46,6 +47,7 @@
     private static final int TEARDOWN_GRACE_PERIOD_TIMEOUT_MILLIS = 300;
 
     private final Controller<WebContents> mHasWebContentsState = new Controller<>();
+    private final Controller<Unit> mResumedState = new Controller<>();
     private final Controller<Uri> mHasUriState = new Controller<>();
 
     private final Activity mHostActivity;
@@ -76,6 +78,8 @@
         mCastWebContentsLayout = castWebContentsLayout;
         mHandler = new Handler();
         mAudioManager = CastAudioManager.getAudioManager(getActivity());
+        mAudioManager.requestAudioFocusWhen(
+                mResumedState, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN);
 
         // Receive broadcasts indicating the screen turned off while we have active WebContents.
         mHasWebContentsState.watch(() -> {
@@ -216,11 +220,7 @@
     }
 
     void onPause() {
-        // Release the audio focus. Note that releasing audio focus does not stop audio playback,
-        // it just notifies the framework that this activity has stopped playing audio.
-        if (mAudioManager.abandonAudioFocus(null) != AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
-            Log.e(TAG, "Failed to abandon audio focus");
-        }
+        mResumedState.reset();
 
         if (mContentViewCore != null) {
             mContentViewCore.onPause();
@@ -248,11 +248,8 @@
     }
 
     void onResume() {
-        if (mAudioManager.requestAudioFocus(
-                    null, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN)
-                != AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
-            Log.e(TAG, "Failed to obtain audio focus");
-        }
+        mResumedState.set(Unit.unit());
+
         if (mContentViewCore != null) {
             mContentViewCore.onResume();
         }
diff --git a/chromecast/browser/android/junit/src/org/chromium/chromecast/shell/CastAudioManagerTest.java b/chromecast/browser/android/junit/src/org/chromium/chromecast/shell/CastAudioManagerTest.java
new file mode 100644
index 0000000..3a605f5
--- /dev/null
+++ b/chromecast/browser/android/junit/src/org/chromium/chromecast/shell/CastAudioManagerTest.java
@@ -0,0 +1,131 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.chromecast.shell;
+
+import static org.hamcrest.Matchers.contains;
+import static org.hamcrest.Matchers.emptyIterable;
+import static org.junit.Assert.assertThat;
+
+import android.media.AudioManager;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Shadows;
+import org.robolectric.annotation.Config;
+import org.robolectric.shadows.ShadowAudioManager;
+
+import org.chromium.chromecast.base.Controller;
+import org.chromium.chromecast.base.Observable;
+import org.chromium.chromecast.base.Unit;
+import org.chromium.testing.local.LocalRobolectricTestRunner;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Tests for CastAudioManager.
+ */
+@RunWith(LocalRobolectricTestRunner.class)
+@Config(manifest = Config.NONE)
+public class CastAudioManagerTest {
+    @Test
+    public void testAudioFocusScopeActivatedWhenRequestGranted() {
+        CastAudioManager audioManager =
+                CastAudioManager.getAudioManager(RuntimeEnvironment.application);
+        ShadowAudioManager shadowAudioManager = Shadows.shadowOf(audioManager.getInternal());
+        Controller<Unit> requestAudioFocusState = new Controller<>();
+        List<String> result = new ArrayList<>();
+        Observable<Unit> gotAudioFocusState = audioManager.requestAudioFocusWhen(
+                requestAudioFocusState, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN);
+        gotAudioFocusState.watch(() -> {
+            result.add("Got audio focus");
+            return () -> result.add("Lost audio focus");
+        });
+        requestAudioFocusState.set(Unit.unit());
+        shadowAudioManager.getLastAudioFocusRequest().listener.onAudioFocusChange(
+                AudioManager.AUDIOFOCUS_GAIN);
+        assertThat(result, contains("Got audio focus"));
+    }
+
+    @Test
+    public void testAudioFocusScopeDeactivatedWhenFocusRequestStateIsReset() {
+        CastAudioManager audioManager =
+                CastAudioManager.getAudioManager(RuntimeEnvironment.application);
+        ShadowAudioManager shadowAudioManager = Shadows.shadowOf(audioManager.getInternal());
+        Controller<Unit> requestAudioFocusState = new Controller<>();
+        List<String> result = new ArrayList<>();
+        Observable<Unit> gotAudioFocusState = audioManager.requestAudioFocusWhen(
+                requestAudioFocusState, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN);
+        gotAudioFocusState.watch(() -> {
+            result.add("Got audio focus");
+            return () -> result.add("Lost audio focus");
+        });
+        requestAudioFocusState.set(Unit.unit());
+        shadowAudioManager.getLastAudioFocusRequest().listener.onAudioFocusChange(
+                AudioManager.AUDIOFOCUS_GAIN);
+        requestAudioFocusState.reset();
+        assertThat(result, contains("Got audio focus", "Lost audio focus"));
+    }
+
+    @Test
+    public void testAudioFocusScopeDeactivatedWhenAudioFocusIsLostButRequestStillActive() {
+        CastAudioManager audioManager =
+                CastAudioManager.getAudioManager(RuntimeEnvironment.application);
+        ShadowAudioManager shadowAudioManager = Shadows.shadowOf(audioManager.getInternal());
+        Controller<Unit> requestAudioFocusState = new Controller<>();
+        List<String> result = new ArrayList<>();
+        Observable<Unit> gotAudioFocusState = audioManager.requestAudioFocusWhen(
+                requestAudioFocusState, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN);
+        gotAudioFocusState.watch(() -> {
+            result.add("Got audio focus");
+            return () -> result.add("Lost audio focus");
+        });
+        requestAudioFocusState.set(Unit.unit());
+        AudioManager.OnAudioFocusChangeListener listener =
+                shadowAudioManager.getLastAudioFocusRequest().listener;
+        listener.onAudioFocusChange(AudioManager.AUDIOFOCUS_GAIN);
+        listener.onAudioFocusChange(AudioManager.AUDIOFOCUS_LOSS);
+        assertThat(result, contains("Got audio focus", "Lost audio focus"));
+    }
+
+    @Test
+    public void testAudioFocusScopeReactivatedWhenAudioFocusIsLostAndRegained() {
+        CastAudioManager audioManager =
+                CastAudioManager.getAudioManager(RuntimeEnvironment.application);
+        ShadowAudioManager shadowAudioManager = Shadows.shadowOf(audioManager.getInternal());
+        Controller<Unit> requestAudioFocusState = new Controller<>();
+        List<String> result = new ArrayList<>();
+        Observable<Unit> gotAudioFocusState = audioManager.requestAudioFocusWhen(
+                requestAudioFocusState, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN);
+        gotAudioFocusState.watch(() -> {
+            result.add("Got audio focus");
+            return () -> result.add("Lost audio focus");
+        });
+        requestAudioFocusState.set(Unit.unit());
+        AudioManager.OnAudioFocusChangeListener listener =
+                shadowAudioManager.getLastAudioFocusRequest().listener;
+        listener.onAudioFocusChange(AudioManager.AUDIOFOCUS_GAIN);
+        listener.onAudioFocusChange(AudioManager.AUDIOFOCUS_LOSS);
+        listener.onAudioFocusChange(AudioManager.AUDIOFOCUS_GAIN);
+        assertThat(result, contains("Got audio focus", "Lost audio focus", "Got audio focus"));
+    }
+
+    @Test
+    public void testAudioFocusScopeNotActivatedIfRequestScopeNotActivated() {
+        CastAudioManager audioManager =
+                CastAudioManager.getAudioManager(RuntimeEnvironment.application);
+        ShadowAudioManager shadowAudioManager = Shadows.shadowOf(audioManager.getInternal());
+        Controller<Unit> requestAudioFocusState = new Controller<>();
+        List<String> result = new ArrayList<>();
+        Observable<Unit> gotAudioFocusState = audioManager.requestAudioFocusWhen(
+                requestAudioFocusState, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN);
+        gotAudioFocusState.watch(() -> {
+            result.add("Got audio focus");
+            return () -> result.add("Lost audio focus");
+        });
+        assertThat(result, emptyIterable());
+    }
+}
diff --git a/chromecast/browser/cast_touch_device_manager_unittest.cc b/chromecast/browser/cast_touch_device_manager_unittest.cc
new file mode 100644
index 0000000..e435a12
--- /dev/null
+++ b/chromecast/browser/cast_touch_device_manager_unittest.cc
@@ -0,0 +1,128 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chromecast/browser/cast_touch_device_manager.h"
+#include "testing/gtest/include/gtest/gtest.h"
+#include "ui/events/devices/device_data_manager.h"
+#include "ui/events/devices/device_hotplug_event_observer.h"
+#include "ui/gfx/geometry/rect.h"
+
+namespace {
+
+constexpr int64_t kDisplayId = 1;
+constexpr int kTouchDeviceId = 100;
+
+}  // namespace
+
+class CastTouchDeviceManagerTest : public testing::Test {
+ public:
+  CastTouchDeviceManagerTest() {}
+
+  void SetUp() override {
+    ui::DeviceDataManager::CreateInstance();
+    touch_device_manager_ =
+        std::make_unique<chromecast::shell::CastTouchDeviceManager>();
+  }
+
+  void TearDown() override {
+    touch_device_manager_.reset();
+    ui::DeviceDataManager::DeleteInstance();
+  }
+
+  ui::DeviceHotplugEventObserver* GetHotplugObserver() {
+    return ui::DeviceDataManager::GetInstance();
+  }
+
+ protected:
+  std::unique_ptr<chromecast::shell::CastTouchDeviceManager>
+      touch_device_manager_;
+};
+
+TEST_F(CastTouchDeviceManagerTest, CheckOneToOneMapping) {
+  std::vector<ui::TouchscreenDevice> touchscreens;
+  const gfx::Size display_size = gfx::Size(1280, 720);
+  touch_device_manager_->OnDisplayConfigured(
+      kDisplayId, display::Display::ROTATE_0, gfx::Rect(display_size));
+  touchscreens.push_back(ui::TouchscreenDevice(kTouchDeviceId,
+                                               ui::INPUT_DEVICE_INTERNAL,
+                                               "Touchscreen", display_size, 1));
+  GetHotplugObserver()->OnTouchscreenDevicesUpdated(touchscreens);
+
+  // 1:1 mapping for touch coordinates to display coordinates.
+  {
+    float x = display_size.width(), y = display_size.height();
+    ui::DeviceDataManager::GetInstance()->ApplyTouchTransformer(kTouchDeviceId,
+                                                                &x, &y);
+    EXPECT_EQ(display_size.width(), x);
+    EXPECT_EQ(display_size.height(), y);
+  }
+
+  {
+    float x = display_size.width(), y = 0;
+    ui::DeviceDataManager::GetInstance()->ApplyTouchTransformer(kTouchDeviceId,
+                                                                &x, &y);
+    EXPECT_EQ(display_size.width(), x);
+    EXPECT_EQ(0, y);
+  }
+
+  {
+    float x = 0, y = display_size.height();
+    ui::DeviceDataManager::GetInstance()->ApplyTouchTransformer(kTouchDeviceId,
+                                                                &x, &y);
+    EXPECT_EQ(0, x);
+    EXPECT_EQ(display_size.height(), y);
+  }
+
+  {
+    float x = display_size.width() / 2, y = display_size.height() / 2;
+    ui::DeviceDataManager::GetInstance()->ApplyTouchTransformer(1, &x, &y);
+    EXPECT_EQ(display_size.width() / 2, x);
+    EXPECT_EQ(display_size.height() / 2, y);
+  }
+}
+
+TEST_F(CastTouchDeviceManagerTest, CheckMappingWithLargerTouchscreen) {
+  std::vector<ui::TouchscreenDevice> touchscreens;
+  const gfx::Size display_size = gfx::Size(1280, 720);
+  touch_device_manager_->OnDisplayConfigured(
+      kDisplayId, display::Display::ROTATE_0, gfx::Rect(display_size));
+  touchscreens.push_back(ui::TouchscreenDevice(
+      kTouchDeviceId, ui::INPUT_DEVICE_INTERNAL, "Touchscreen",
+      gfx::ScaleToRoundedSize(display_size, 2, 2), 1));
+  GetHotplugObserver()->OnTouchscreenDevicesUpdated(touchscreens);
+
+  // Touch screen is twice the size, so transformed events will be half the
+  // reported value.
+  {
+    float x = display_size.width(), y = display_size.height();
+    ui::DeviceDataManager::GetInstance()->ApplyTouchTransformer(kTouchDeviceId,
+                                                                &x, &y);
+    EXPECT_EQ(display_size.width() / 2, x);
+    EXPECT_EQ(display_size.height() / 2, y);
+  }
+
+  {
+    float x = display_size.width(), y = 0;
+    ui::DeviceDataManager::GetInstance()->ApplyTouchTransformer(kTouchDeviceId,
+                                                                &x, &y);
+    EXPECT_EQ(display_size.width() / 2, x);
+    EXPECT_EQ(0, y);
+  }
+
+  {
+    float x = 0, y = display_size.height();
+    ui::DeviceDataManager::GetInstance()->ApplyTouchTransformer(kTouchDeviceId,
+                                                                &x, &y);
+    EXPECT_EQ(0, x);
+    EXPECT_EQ(display_size.height() / 2, y);
+  }
+
+  {
+    float x = display_size.width() / 2, y = display_size.height() / 2;
+    ui::DeviceDataManager::GetInstance()->ApplyTouchTransformer(kTouchDeviceId,
+                                                                &x, &y);
+    EXPECT_EQ(display_size.width() / 4, x);
+    EXPECT_EQ(display_size.height() / 4, y);
+  }
+}
diff --git a/chromecast/media/cma/backend/BUILD.gn b/chromecast/media/cma/backend/BUILD.gn
index 7a86f10..0d68567 100644
--- a/chromecast/media/cma/backend/BUILD.gn
+++ b/chromecast/media/cma/backend/BUILD.gn
@@ -117,7 +117,7 @@
   ]
 }
 
-cast_source_set("audio") {
+cast_source_set("for_mixer_audio") {
   sources = [
     "audio_decoder_for_mixer.cc",
     "audio_decoder_for_mixer.h",
@@ -130,8 +130,8 @@
     "filter_group.cc",
     "filter_group.h",
     "media_codec_support_cast_audio.cc",
-    "media_pipeline_backend_audio.cc",
-    "media_pipeline_backend_audio.h",
+    "media_pipeline_backend_for_mixer.cc",
+    "media_pipeline_backend_for_mixer.h",
     "mixer_input.cc",
     "mixer_input.h",
     "post_processing_pipeline.h",
@@ -183,7 +183,7 @@
   ]
 
   deps = [
-    ":audio",
+    ":for_mixer_audio",
     ":public",
     "//base",
     "//base/test:run_all_unittests",
diff --git a/chromecast/media/cma/backend/alsa/BUILD.gn b/chromecast/media/cma/backend/alsa/BUILD.gn
index 0dfbff6..e31d2d8 100644
--- a/chromecast/media/cma/backend/alsa/BUILD.gn
+++ b/chromecast/media/cma/backend/alsa/BUILD.gn
@@ -18,7 +18,7 @@
   deps = [
     "//base",
     "//chromecast/base",
-    "//chromecast/media/cma/backend:audio",
+    "//chromecast/media/cma/backend:for_mixer_audio",
     "//chromecast/public",
     "//chromecast/public/media",
     "//media",
diff --git a/chromecast/media/cma/backend/alsa/cast_media_shlib.cc b/chromecast/media/cma/backend/alsa/cast_media_shlib.cc
index 32fbadb5..4a6e450 100644
--- a/chromecast/media/cma/backend/alsa/cast_media_shlib.cc
+++ b/chromecast/media/cma/backend/alsa/cast_media_shlib.cc
@@ -12,7 +12,7 @@
 #include "base/threading/thread_task_runner_handle.h"
 #include "chromecast/base/init_command_line_shlib.h"
 #include "chromecast/base/task_runner_impl.h"
-#include "chromecast/media/cma/backend/media_pipeline_backend_audio.h"
+#include "chromecast/media/cma/backend/media_pipeline_backend_for_mixer.h"
 #include "chromecast/media/cma/backend/stream_mixer.h"
 #include "chromecast/public/cast_media_shlib.h"
 #include "chromecast/public/graphics_types.h"
@@ -134,7 +134,7 @@
   }
 
   // TODO(cleichner): Implement MediaSyncType in MediaPipelineDeviceAlsa.
-  return new MediaPipelineBackendAudio(params);
+  return new MediaPipelineBackendForMixer(params);
 }
 
 double CastMediaShlib::GetMediaClockRate() {
diff --git a/chromecast/media/cma/backend/android/media_pipeline_backend_android.h b/chromecast/media/cma/backend/android/media_pipeline_backend_android.h
index c4494a4e..eefa23b 100644
--- a/chromecast/media/cma/backend/android/media_pipeline_backend_android.h
+++ b/chromecast/media/cma/backend/android/media_pipeline_backend_android.h
@@ -24,7 +24,7 @@
 class AudioDecoderAndroid;
 class VideoDecoderNull;
 
-// TODO(ckuiper): This class is very similar to MediaPipelineBackendAudio
+// TODO(ckuiper): This class is very similar to MediaPipelineBackendForMixer
 // (alsa/media_pipeline_backend_alsa.h) and should be consolidated into one
 // shared class/file.
 class MediaPipelineBackendAndroid : public MediaPipelineBackend {
diff --git a/chromecast/media/cma/backend/audio_decoder_for_mixer.cc b/chromecast/media/cma/backend/audio_decoder_for_mixer.cc
index 8b7ceb1..6101595 100644
--- a/chromecast/media/cma/backend/audio_decoder_for_mixer.cc
+++ b/chromecast/media/cma/backend/audio_decoder_for_mixer.cc
@@ -16,7 +16,7 @@
 #include "base/trace_event/trace_event.h"
 #include "build/build_config.h"
 #include "chromecast/base/task_runner_impl.h"
-#include "chromecast/media/cma/backend/media_pipeline_backend_audio.h"
+#include "chromecast/media/cma/backend/media_pipeline_backend_for_mixer.h"
 #include "chromecast/media/cma/base/decoder_buffer_adapter.h"
 #include "chromecast/media/cma/base/decoder_buffer_base.h"
 #include "chromecast/public/media/cast_decoder_buffer.h"
@@ -85,7 +85,8 @@
 AudioDecoderForMixer::RateShifterInfo::RateShifterInfo(float playback_rate)
     : rate(playback_rate), input_frames(0), output_frames(0) {}
 
-AudioDecoderForMixer::AudioDecoderForMixer(MediaPipelineBackendAudio* backend)
+AudioDecoderForMixer::AudioDecoderForMixer(
+    MediaPipelineBackendForMixer* backend)
     : backend_(backend),
       task_runner_(backend->GetTaskRunner()),
       delegate_(nullptr),
diff --git a/chromecast/media/cma/backend/audio_decoder_for_mixer.h b/chromecast/media/cma/backend/audio_decoder_for_mixer.h
index 4ddb4fa..d034f81 100644
--- a/chromecast/media/cma/backend/audio_decoder_for_mixer.h
+++ b/chromecast/media/cma/backend/audio_decoder_for_mixer.h
@@ -29,7 +29,7 @@
 namespace chromecast {
 namespace media {
 class DecoderBufferBase;
-class MediaPipelineBackendAudio;
+class MediaPipelineBackendForMixer;
 
 // AudioDecoder implementation that streams decoded stream to the StreamMixer.
 class AudioDecoderForMixer : public MediaPipelineBackend::AudioDecoder,
@@ -37,7 +37,7 @@
  public:
   using BufferStatus = MediaPipelineBackend::BufferStatus;
 
-  explicit AudioDecoderForMixer(MediaPipelineBackendAudio* backend);
+  explicit AudioDecoderForMixer(MediaPipelineBackendForMixer* backend);
   ~AudioDecoderForMixer() override;
 
   void Initialize();
@@ -86,7 +86,7 @@
   bool ShouldStartClock() const;
   void UpdateStatistics(Statistics delta);
 
-  MediaPipelineBackendAudio* const backend_;
+  MediaPipelineBackendForMixer* const backend_;
   const scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
   MediaPipelineBackend::Decoder::Delegate* delegate_;
 
diff --git a/chromecast/media/cma/backend/fuchsia/BUILD.gn b/chromecast/media/cma/backend/fuchsia/BUILD.gn
index b77e6c8..5add6be 100644
--- a/chromecast/media/cma/backend/fuchsia/BUILD.gn
+++ b/chromecast/media/cma/backend/fuchsia/BUILD.gn
@@ -16,7 +16,7 @@
   deps = [
     "//base",
     "//chromecast/base",
-    "//chromecast/media/cma/backend:audio",
+    "//chromecast/media/cma/backend:for_mixer_audio",
     "//chromecast/public",
     "//chromecast/public/media",
     "//media",
diff --git a/chromecast/media/cma/backend/fuchsia/cast_media_shlib_fuchsia.cc b/chromecast/media/cma/backend/fuchsia/cast_media_shlib_fuchsia.cc
index cbf1e049..f89d162f 100644
--- a/chromecast/media/cma/backend/fuchsia/cast_media_shlib_fuchsia.cc
+++ b/chromecast/media/cma/backend/fuchsia/cast_media_shlib_fuchsia.cc
@@ -12,7 +12,7 @@
 #include "base/threading/thread_task_runner_handle.h"
 #include "chromecast/base/init_command_line_shlib.h"
 #include "chromecast/base/task_runner_impl.h"
-#include "chromecast/media/cma/backend/media_pipeline_backend_audio.h"
+#include "chromecast/media/cma/backend/media_pipeline_backend_for_mixer.h"
 #include "chromecast/media/cma/backend/stream_mixer.h"
 #include "chromecast/public/graphics_types.h"
 #include "chromecast/public/media/media_pipeline_device_params.h"
@@ -75,7 +75,7 @@
     g_thread_task_runner_handle = new base::ThreadTaskRunnerHandle(task_runner);
   }
 
-  return new MediaPipelineBackendAudio(params);
+  return new MediaPipelineBackendForMixer(params);
 }
 
 double CastMediaShlib::GetMediaClockRate() {
diff --git a/chromecast/media/cma/backend/media_pipeline_backend_audio.cc b/chromecast/media/cma/backend/media_pipeline_backend_for_mixer.cc
similarity index 68%
rename from chromecast/media/cma/backend/media_pipeline_backend_audio.cc
rename to chromecast/media/cma/backend/media_pipeline_backend_for_mixer.cc
index 38e8286..ec414a28 100644
--- a/chromecast/media/cma/backend/media_pipeline_backend_audio.cc
+++ b/chromecast/media/cma/backend/media_pipeline_backend_for_mixer.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chromecast/media/cma/backend/media_pipeline_backend_audio.h"
+#include "chromecast/media/cma/backend/media_pipeline_backend_for_mixer.h"
 
 #include <limits>
 
@@ -13,14 +13,14 @@
 namespace chromecast {
 namespace media {
 
-MediaPipelineBackendAudio::MediaPipelineBackendAudio(
+MediaPipelineBackendForMixer::MediaPipelineBackendForMixer(
     const MediaPipelineDeviceParams& params)
     : state_(kStateUninitialized), params_(params) {}
 
-MediaPipelineBackendAudio::~MediaPipelineBackendAudio() {}
+MediaPipelineBackendForMixer::~MediaPipelineBackendForMixer() {}
 
-MediaPipelineBackendAudio::AudioDecoder*
-MediaPipelineBackendAudio::CreateAudioDecoder() {
+MediaPipelineBackendForMixer::AudioDecoder*
+MediaPipelineBackendForMixer::CreateAudioDecoder() {
   DCHECK_EQ(kStateUninitialized, state_);
   if (audio_decoder_)
     return nullptr;
@@ -28,8 +28,8 @@
   return audio_decoder_.get();
 }
 
-MediaPipelineBackendAudio::VideoDecoder*
-MediaPipelineBackendAudio::CreateVideoDecoder() {
+MediaPipelineBackendForMixer::VideoDecoder*
+MediaPipelineBackendForMixer::CreateVideoDecoder() {
   DCHECK_EQ(kStateUninitialized, state_);
   if (video_decoder_)
     return nullptr;
@@ -37,7 +37,7 @@
   return video_decoder_.get();
 }
 
-bool MediaPipelineBackendAudio::Initialize() {
+bool MediaPipelineBackendForMixer::Initialize() {
   DCHECK_EQ(kStateUninitialized, state_);
   if (audio_decoder_)
     audio_decoder_->Initialize();
@@ -45,7 +45,7 @@
   return true;
 }
 
-bool MediaPipelineBackendAudio::Start(int64_t start_pts) {
+bool MediaPipelineBackendForMixer::Start(int64_t start_pts) {
   DCHECK_EQ(kStateInitialized, state_);
   if (audio_decoder_ && !audio_decoder_->Start(start_pts))
     return false;
@@ -53,7 +53,7 @@
   return true;
 }
 
-void MediaPipelineBackendAudio::Stop() {
+void MediaPipelineBackendForMixer::Stop() {
   DCHECK(state_ == kStatePlaying || state_ == kStatePaused)
       << "Invalid state " << state_;
   if (audio_decoder_)
@@ -62,7 +62,7 @@
   state_ = kStateInitialized;
 }
 
-bool MediaPipelineBackendAudio::Pause() {
+bool MediaPipelineBackendForMixer::Pause() {
   DCHECK_EQ(kStatePlaying, state_);
   if (audio_decoder_ && !audio_decoder_->Pause())
     return false;
@@ -70,7 +70,7 @@
   return true;
 }
 
-bool MediaPipelineBackendAudio::Resume() {
+bool MediaPipelineBackendForMixer::Resume() {
   DCHECK_EQ(kStatePaused, state_);
   if (audio_decoder_ && !audio_decoder_->Resume())
     return false;
@@ -78,34 +78,34 @@
   return true;
 }
 
-bool MediaPipelineBackendAudio::SetPlaybackRate(float rate) {
+bool MediaPipelineBackendForMixer::SetPlaybackRate(float rate) {
   if (audio_decoder_) {
     return audio_decoder_->SetPlaybackRate(rate);
   }
   return true;
 }
 
-int64_t MediaPipelineBackendAudio::GetCurrentPts() {
+int64_t MediaPipelineBackendForMixer::GetCurrentPts() {
   if (audio_decoder_)
     return audio_decoder_->GetCurrentPts();
   return std::numeric_limits<int64_t>::min();
 }
 
-bool MediaPipelineBackendAudio::Primary() const {
+bool MediaPipelineBackendForMixer::Primary() const {
   return (params_.audio_type !=
           MediaPipelineDeviceParams::kAudioStreamSoundEffects);
 }
 
-std::string MediaPipelineBackendAudio::DeviceId() const {
+std::string MediaPipelineBackendForMixer::DeviceId() const {
   return params_.device_id;
 }
 
-AudioContentType MediaPipelineBackendAudio::ContentType() const {
+AudioContentType MediaPipelineBackendForMixer::ContentType() const {
   return params_.content_type;
 }
 
 const scoped_refptr<base::SingleThreadTaskRunner>&
-MediaPipelineBackendAudio::GetTaskRunner() const {
+MediaPipelineBackendForMixer::GetTaskRunner() const {
   return static_cast<TaskRunnerImpl*>(params_.task_runner)->runner();
 }
 
diff --git a/chromecast/media/cma/backend/media_pipeline_backend_audio.h b/chromecast/media/cma/backend/media_pipeline_backend_for_mixer.h
similarity index 76%
rename from chromecast/media/cma/backend/media_pipeline_backend_audio.h
rename to chromecast/media/cma/backend/media_pipeline_backend_for_mixer.h
index bad65f5..cb907ec 100644
--- a/chromecast/media/cma/backend/media_pipeline_backend_audio.h
+++ b/chromecast/media/cma/backend/media_pipeline_backend_for_mixer.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CHROMECAST_MEDIA_CMA_BACKEND_MEDIA_PIPELINE_BACKEND_AUDIO_H_
-#define CHROMECAST_MEDIA_CMA_BACKEND_MEDIA_PIPELINE_BACKEND_AUDIO_H_
+#ifndef CHROMECAST_MEDIA_CMA_BACKEND_MEDIA_PIPELINE_BACKEND_FOR_MIXER_H_
+#define CHROMECAST_MEDIA_CMA_BACKEND_MEDIA_PIPELINE_BACKEND_FOR_MIXER_H_
 
 #include <memory>
 #include <string>
@@ -26,10 +26,11 @@
 class VideoDecoderNull;
 
 // CMA Backend implementation for audio devices.
-class MediaPipelineBackendAudio : public MediaPipelineBackend {
+class MediaPipelineBackendForMixer : public MediaPipelineBackend {
  public:
-  explicit MediaPipelineBackendAudio(const MediaPipelineDeviceParams& params);
-  ~MediaPipelineBackendAudio() override;
+  explicit MediaPipelineBackendForMixer(
+      const MediaPipelineDeviceParams& params);
+  ~MediaPipelineBackendForMixer() override;
 
   // MediaPipelineBackend implementation:
   AudioDecoder* CreateAudioDecoder() override;
@@ -61,10 +62,10 @@
   std::unique_ptr<VideoDecoderNull> video_decoder_;
   std::unique_ptr<AudioDecoderForMixer> audio_decoder_;
 
-  DISALLOW_COPY_AND_ASSIGN(MediaPipelineBackendAudio);
+  DISALLOW_COPY_AND_ASSIGN(MediaPipelineBackendForMixer);
 };
 
 }  // namespace media
 }  // namespace chromecast
 
-#endif  // CHROMECAST_MEDIA_CMA_BACKEND_MEDIA_PIPELINE_BACKEND_AUDIO_H_
+#endif  // CHROMECAST_MEDIA_CMA_BACKEND_MEDIA_PIPELINE_BACKEND_FOR_MIXER_H_
diff --git a/chromeos/BUILD.gn b/chromeos/BUILD.gn
index ae54787..a56ada7a 100644
--- a/chromeos/BUILD.gn
+++ b/chromeos/BUILD.gn
@@ -184,6 +184,8 @@
     "dbus/fake_easy_unlock_client.h",
     "dbus/fake_gsm_sms_client.cc",
     "dbus/fake_gsm_sms_client.h",
+    "dbus/fake_hammerd_client.cc",
+    "dbus/fake_hammerd_client.h",
     "dbus/fake_image_burner_client.cc",
     "dbus/fake_image_burner_client.h",
     "dbus/fake_image_loader_client.cc",
@@ -224,6 +226,8 @@
     "dbus/fake_virtual_file_provider_client.h",
     "dbus/gsm_sms_client.cc",
     "dbus/gsm_sms_client.h",
+    "dbus/hammerd_client.cc",
+    "dbus/hammerd_client.h",
     "dbus/image_burner_client.cc",
     "dbus/image_burner_client.h",
     "dbus/image_loader_client.cc",
diff --git a/chromeos/CHROMEOS_LKGM b/chromeos/CHROMEOS_LKGM
index a364c30c..5285461 100644
--- a/chromeos/CHROMEOS_LKGM
+++ b/chromeos/CHROMEOS_LKGM
@@ -1 +1 @@
-10436.0.0
\ No newline at end of file
+10442.0.0
\ No newline at end of file
diff --git a/chromeos/components/BUILD.gn b/chromeos/components/BUILD.gn
index 636f4bc..7b111253 100644
--- a/chromeos/components/BUILD.gn
+++ b/chromeos/components/BUILD.gn
@@ -16,6 +16,7 @@
   deps = [
     "//base",
     "//base/test:test_support",
+    "//chromeos/components/multidevice_setup:unit_tests",
     "//chromeos/components/tether:unit_tests",
   ]
 }
diff --git a/chromeos/components/multidevice_setup/BUILD.gn b/chromeos/components/multidevice_setup/BUILD.gn
new file mode 100644
index 0000000..12b843b
--- /dev/null
+++ b/chromeos/components/multidevice_setup/BUILD.gn
@@ -0,0 +1,43 @@
+# Copyright 2018 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+assert(is_chromeos, "Non-ChromeOS builds cannot depend on //chromeos")
+
+static_library("multidevice_setup") {
+  sources = []
+
+  deps = [
+    "//base",
+  ]
+}
+
+static_library("test_support") {
+  testonly = true
+
+  sources = []
+
+  public_deps = [
+    ":multidevice_setup",
+  ]
+
+  deps = [
+    "//base",
+    "//testing/gmock",
+    "//testing/gtest",
+  ]
+}
+
+source_set("unit_tests") {
+  testonly = true
+
+  sources = []
+
+  deps = [
+    ":multidevice_setup",
+    ":test_support",
+    "//base/test:test_support",
+    "//testing/gmock",
+    "//testing/gtest",
+  ]
+}
diff --git a/chromeos/components/multidevice_setup/DEPS b/chromeos/components/multidevice_setup/DEPS
new file mode 100644
index 0000000..48e88750
--- /dev/null
+++ b/chromeos/components/multidevice_setup/DEPS
@@ -0,0 +1,2 @@
+include_rules = [
+]
diff --git a/chromeos/components/multidevice_setup/OWNERS b/chromeos/components/multidevice_setup/OWNERS
new file mode 100644
index 0000000..1d672caa
--- /dev/null
+++ b/chromeos/components/multidevice_setup/OWNERS
@@ -0,0 +1,4 @@
+khorimoto@chromium.org
+jlklein@chromium.org
+
+# COMPONENT: UI>ProximityAuth
diff --git a/chromeos/components/tether/fake_host_scanner.h b/chromeos/components/tether/fake_host_scanner.h
index ff39f6ff..711df25 100644
--- a/chromeos/components/tether/fake_host_scanner.h
+++ b/chromeos/components/tether/fake_host_scanner.h
@@ -19,12 +19,12 @@
 
   size_t num_scans_started() { return num_scans_started_; }
 
-  void StopScan();
   void NotifyScanFinished();
 
   // HostScanner:
   bool IsScanActive() override;
   void StartScan() override;
+  void StopScan() override;
 
  private:
   size_t num_scans_started_ = 0u;
diff --git a/chromeos/components/tether/host_scan_scheduler_impl.cc b/chromeos/components/tether/host_scan_scheduler_impl.cc
index 63fcd72f..ee15198 100644
--- a/chromeos/components/tether/host_scan_scheduler_impl.cc
+++ b/chromeos/components/tether/host_scan_scheduler_impl.cc
@@ -14,6 +14,7 @@
 #include "chromeos/network/network_state.h"
 #include "chromeos/network/network_state_handler.h"
 #include "components/proximity_auth/logging/logging.h"
+#include "components/session_manager/core/session_manager.h"
 
 namespace chromeos {
 
@@ -43,21 +44,26 @@
 
 HostScanSchedulerImpl::HostScanSchedulerImpl(
     NetworkStateHandler* network_state_handler,
-    HostScanner* host_scanner)
+    HostScanner* host_scanner,
+    session_manager::SessionManager* session_manager)
     : network_state_handler_(network_state_handler),
       host_scanner_(host_scanner),
+      session_manager_(session_manager),
       timer_(std::make_unique<base::OneShotTimer>()),
       clock_(std::make_unique<base::DefaultClock>()),
       task_runner_(base::ThreadTaskRunnerHandle::Get()),
+      is_screen_locked_(session_manager_->IsScreenLocked()),
       weak_ptr_factory_(this) {
   network_state_handler_->AddObserver(this, FROM_HERE);
   host_scanner_->AddObserver(this);
+  session_manager_->AddObserver(this);
 }
 
 HostScanSchedulerImpl::~HostScanSchedulerImpl() {
   network_state_handler_->SetTetherScanState(false);
   network_state_handler_->RemoveObserver(this, FROM_HERE);
   host_scanner_->RemoveObserver(this);
+  session_manager_->RemoveObserver(this);
 
   // If the most recent batch of host scans has already been logged, return
   // early.
@@ -108,6 +114,27 @@
                            weak_ptr_factory_.GetWeakPtr()));
 }
 
+void HostScanSchedulerImpl::OnSessionStateChanged() {
+  bool was_screen_locked = is_screen_locked_;
+  is_screen_locked_ = session_manager_->IsScreenLocked();
+
+  if (is_screen_locked_) {
+    // If the screen is now locked, stop any ongoing scan. A scan during the
+    // lock screen could cause bad interactions with EasyUnlock. See
+    // https://crbug.com/763604.
+    // Note: Once the SecureChannel API is in use, the scan will no longer have
+    //       to stop.
+    host_scanner_->StopScan();
+    return;
+  }
+
+  if (!was_screen_locked)
+    return;
+
+  // If the device was just unlocked, start a scan.
+  EnsureScan();
+}
+
 void HostScanSchedulerImpl::SetTestDoubles(
     std::unique_ptr<base::Timer> test_timer,
     std::unique_ptr<base::Clock> test_clock,
diff --git a/chromeos/components/tether/host_scan_scheduler_impl.h b/chromeos/components/tether/host_scan_scheduler_impl.h
index eacb56a..2ca9677 100644
--- a/chromeos/components/tether/host_scan_scheduler_impl.h
+++ b/chromeos/components/tether/host_scan_scheduler_impl.h
@@ -15,11 +15,16 @@
 #include "chromeos/components/tether/host_scan_scheduler.h"
 #include "chromeos/components/tether/host_scanner.h"
 #include "chromeos/network/network_state_handler_observer.h"
+#include "components/session_manager/core/session_manager_observer.h"
 
 namespace base {
 class TaskRunner;
 }  // namespace base
 
+namespace session_manager {
+class SessionManager;
+}  // namespace session_manager
+
 namespace chromeos {
 
 class NetworkStateHandler;
@@ -33,10 +38,12 @@
 //   (3) The scan is explicitly requested via ScheduleScan().
 class HostScanSchedulerImpl : public HostScanScheduler,
                               public NetworkStateHandlerObserver,
-                              public HostScanner::Observer {
+                              public HostScanner::Observer,
+                              public session_manager::SessionManagerObserver {
  public:
   HostScanSchedulerImpl(NetworkStateHandler* network_state_handler,
-                        HostScanner* host_scanner);
+                        HostScanner* host_scanner,
+                        session_manager::SessionManager* session_manager);
   ~HostScanSchedulerImpl() override;
 
   // HostScanScheduler:
@@ -50,6 +57,9 @@
   // HostScanner::Observer:
   void ScanFinished() override;
 
+  // session_manager::SessionManagerObserver:
+  void OnSessionStateChanged() override;
+
  private:
   friend class HostScanSchedulerImplTest;
 
@@ -63,6 +73,7 @@
 
   NetworkStateHandler* network_state_handler_;
   HostScanner* host_scanner_;
+  session_manager::SessionManager* session_manager_;
 
   std::unique_ptr<base::Timer> timer_;
   std::unique_ptr<base::Clock> clock_;
@@ -71,6 +82,8 @@
   base::Time last_scan_batch_start_timestamp_;
   base::Time last_scan_end_timestamp_;
 
+  bool is_screen_locked_;
+
   base::WeakPtrFactory<HostScanSchedulerImpl> weak_ptr_factory_;
 
   DISALLOW_COPY_AND_ASSIGN(HostScanSchedulerImpl);
diff --git a/chromeos/components/tether/host_scan_scheduler_impl_unittest.cc b/chromeos/components/tether/host_scan_scheduler_impl_unittest.cc
index a25bc516..f75d02bc 100644
--- a/chromeos/components/tether/host_scan_scheduler_impl_unittest.cc
+++ b/chromeos/components/tether/host_scan_scheduler_impl_unittest.cc
@@ -23,6 +23,7 @@
 #include "chromeos/network/network_state_test.h"
 #include "chromeos/network/network_type_pattern.h"
 #include "components/cryptauth/cryptauth_device_manager.h"
+#include "components/session_manager/core/session_manager.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
@@ -66,9 +67,11 @@
         NetworkStateHandler::TECHNOLOGY_ENABLED);
 
     fake_host_scanner_ = std::make_unique<FakeHostScanner>();
+    session_manager_ = std::make_unique<session_manager::SessionManager>();
 
     host_scan_scheduler_ = std::make_unique<HostScanSchedulerImpl>(
-        network_state_handler(), fake_host_scanner_.get());
+        network_state_handler(), fake_host_scanner_.get(),
+        session_manager_.get());
 
     mock_timer_ = new base::MockTimer(true /* retain_user_task */,
                                       false /* is_repeating */);
@@ -140,6 +143,12 @@
     return wifi_service_path;
   }
 
+  void SetScreenLockedState(bool is_locked) {
+    session_manager_->SetSessionState(
+        is_locked ? session_manager::SessionState::LOCKED
+                  : session_manager::SessionState::LOGIN_PRIMARY);
+  }
+
   void VerifyScanDuration(size_t expected_num_seconds) {
     histogram_tester_->ExpectTimeBucketCount(
         "InstantTethering.HostScanBatchDuration",
@@ -150,6 +159,7 @@
   std::string ethernet_service_path_;
 
   std::unique_ptr<FakeHostScanner> fake_host_scanner_;
+  std::unique_ptr<session_manager::SessionManager> session_manager_;
 
   base::MockTimer* mock_timer_;
   base::SimpleTestClock* test_clock_;
@@ -177,6 +187,16 @@
   VerifyScanDuration(5u /* expected_num_sections */);
 }
 
+TEST_F(HostScanSchedulerImplTest, ScansWhenDeviceUnlocked) {
+  // Lock the screen. This should not trigger a scan.
+  SetScreenLockedState(true /* is_locked */);
+  EXPECT_EQ(0u, fake_host_scanner_->num_scans_started());
+
+  // Unlock the screen. A scan should start.
+  SetScreenLockedState(false /* is_locked */);
+  EXPECT_EQ(1u, fake_host_scanner_->num_scans_started());
+}
+
 TEST_F(HostScanSchedulerImplTest, ScanRequested) {
   // Begin scanning.
   RequestScan();
diff --git a/chromeos/components/tether/host_scanner.h b/chromeos/components/tether/host_scanner.h
index b2d188d..d8c24db 100644
--- a/chromeos/components/tether/host_scanner.h
+++ b/chromeos/components/tether/host_scanner.h
@@ -32,6 +32,10 @@
   // function is a no-op.
   virtual void StartScan() = 0;
 
+  // Stops a host scan if there is a current scan. If no scan is active, this
+  // function is a no-op.
+  virtual void StopScan() = 0;
+
   void AddObserver(Observer* observer);
   void RemoveObserver(Observer* observer);
 
diff --git a/chromeos/components/tether/host_scanner_impl.cc b/chromeos/components/tether/host_scanner_impl.cc
index a77c9ea..f9aee21 100644
--- a/chromeos/components/tether/host_scanner_impl.cc
+++ b/chromeos/components/tether/host_scanner_impl.cc
@@ -71,6 +71,20 @@
       &HostScannerImpl::OnTetherHostsFetched, weak_ptr_factory_.GetWeakPtr()));
 }
 
+void HostScannerImpl::StopScan() {
+  if (!host_scanner_operation_)
+    return;
+
+  PA_LOG(INFO) << "Host scan has been stopped prematurely.";
+
+  host_scanner_operation_->RemoveObserver(
+      gms_core_notifications_state_tracker_);
+  host_scanner_operation_->RemoveObserver(this);
+  host_scanner_operation_.reset();
+
+  NotifyScanFinished();
+}
+
 void HostScannerImpl::OnTetherHostsFetched(
     const cryptauth::RemoteDeviceList& tether_hosts) {
   is_fetching_hosts_ = false;
diff --git a/chromeos/components/tether/host_scanner_impl.h b/chromeos/components/tether/host_scanner_impl.h
index e97fbbf..7c2e825 100644
--- a/chromeos/components/tether/host_scanner_impl.h
+++ b/chromeos/components/tether/host_scanner_impl.h
@@ -71,6 +71,7 @@
   // HostScanner:
   bool IsScanActive() override;
   void StartScan() override;
+  void StopScan() override;
 
  protected:
   // HostScannerOperation::Observer:
diff --git a/chromeos/components/tether/host_scanner_impl_unittest.cc b/chromeos/components/tether/host_scanner_impl_unittest.cc
index df9c831..c4add8e2 100644
--- a/chromeos/components/tether/host_scanner_impl_unittest.cc
+++ b/chromeos/components/tether/host_scanner_impl_unittest.cc
@@ -600,6 +600,17 @@
       HostScannerImpl::HostScanResultEventType::NO_HOSTS_FOUND, 1);
 }
 
+TEST_F(HostScannerImplTest, StopScan) {
+  host_scanner_->StartScan();
+  EXPECT_TRUE(host_scanner_->IsScanActive());
+  ASSERT_EQ(1u,
+            fake_host_scanner_operation_factory_->created_operations().size());
+  EXPECT_TRUE(host_scanner_->IsScanActive());
+
+  host_scanner_->StopScan();
+  EXPECT_FALSE(host_scanner_->IsScanActive());
+}
+
 TEST_F(HostScannerImplTest, TestScan_ResultsFromSomeDevices) {
   EXPECT_FALSE(host_scanner_->IsScanActive());
   host_scanner_->StartScan();
diff --git a/chromeos/components/tether/synchronous_shutdown_object_container_impl.cc b/chromeos/components/tether/synchronous_shutdown_object_container_impl.cc
index c69835cb..2f89061 100644
--- a/chromeos/components/tether/synchronous_shutdown_object_container_impl.cc
+++ b/chromeos/components/tether/synchronous_shutdown_object_container_impl.cc
@@ -160,7 +160,8 @@
           clock_.get())),
       host_scan_scheduler_(
           std::make_unique<HostScanSchedulerImpl>(network_state_handler_,
-                                                  host_scanner_.get())),
+                                                  host_scanner_.get(),
+                                                  session_manager)),
       host_connection_metrics_logger_(
           std::make_unique<HostConnectionMetricsLogger>()),
       tether_connector_(std::make_unique<TetherConnectorImpl>(
diff --git a/chromeos/dbus/dbus_clients_common.cc b/chromeos/dbus/dbus_clients_common.cc
index 385fa26..442528f 100644
--- a/chromeos/dbus/dbus_clients_common.cc
+++ b/chromeos/dbus/dbus_clients_common.cc
@@ -14,6 +14,7 @@
 #include "chromeos/dbus/fake_cras_audio_client.h"
 #include "chromeos/dbus/fake_cryptohome_client.h"
 #include "chromeos/dbus/fake_gsm_sms_client.h"
+#include "chromeos/dbus/fake_hammerd_client.h"
 #include "chromeos/dbus/fake_modem_messaging_client.h"
 #include "chromeos/dbus/fake_permission_broker_client.h"
 #include "chromeos/dbus/fake_shill_device_client.h"
@@ -25,6 +26,7 @@
 #include "chromeos/dbus/fake_sms_client.h"
 #include "chromeos/dbus/fake_system_clock_client.h"
 #include "chromeos/dbus/gsm_sms_client.h"
+#include "chromeos/dbus/hammerd_client.h"
 #include "chromeos/dbus/modem_messaging_client.h"
 #include "chromeos/dbus/permission_broker_client.h"
 #include "chromeos/dbus/power_manager_client.h"
@@ -87,6 +89,12 @@
     gsm_sms_client_.reset(gsm_sms_client);
   }
 
+  if (use_real_clients) {
+    hammerd_client_ = HammerdClient::Create();
+  } else {
+    hammerd_client_ = std::make_unique<FakeHammerdClient>();
+  }
+
   if (use_real_clients)
     modem_messaging_client_.reset(ModemMessagingClient::Create());
   else
@@ -123,6 +131,7 @@
   cras_audio_client_->Init(system_bus);
   cryptohome_client_->Init(system_bus);
   gsm_sms_client_->Init(system_bus);
+  hammerd_client_->Init(system_bus);
   modem_messaging_client_->Init(system_bus);
   permission_broker_client_->Init(system_bus);
   power_manager_client_->Init(system_bus);
diff --git a/chromeos/dbus/dbus_clients_common.h b/chromeos/dbus/dbus_clients_common.h
index 761c48f..61aa6d0 100644
--- a/chromeos/dbus/dbus_clients_common.h
+++ b/chromeos/dbus/dbus_clients_common.h
@@ -20,6 +20,7 @@
 class CrasAudioClient;
 class CryptohomeClient;
 class GsmSMSClient;
+class HammerdClient;
 class ModemMessagingClient;
 class PermissionBrokerClient;
 class PowerManagerClient;
@@ -53,6 +54,7 @@
   std::unique_ptr<CrasAudioClient> cras_audio_client_;
   std::unique_ptr<CryptohomeClient> cryptohome_client_;
   std::unique_ptr<GsmSMSClient> gsm_sms_client_;
+  std::unique_ptr<HammerdClient> hammerd_client_;
   std::unique_ptr<ModemMessagingClient> modem_messaging_client_;
   std::unique_ptr<ShillDeviceClient> shill_device_client_;
   std::unique_ptr<ShillIPConfigClient> shill_ipconfig_client_;
diff --git a/chromeos/dbus/dbus_thread_manager.cc b/chromeos/dbus/dbus_thread_manager.cc
index 2327ea1..151c2a1d 100644
--- a/chromeos/dbus/dbus_thread_manager.cc
+++ b/chromeos/dbus/dbus_thread_manager.cc
@@ -26,6 +26,7 @@
 #include "chromeos/dbus/debug_daemon_client.h"
 #include "chromeos/dbus/easy_unlock_client.h"
 #include "chromeos/dbus/gsm_sms_client.h"
+#include "chromeos/dbus/hammerd_client.h"
 #include "chromeos/dbus/image_burner_client.h"
 #include "chromeos/dbus/image_loader_client.h"
 #include "chromeos/dbus/lorgnette_manager_client.h"
@@ -193,6 +194,10 @@
   return clients_common_->gsm_sms_client_.get();
 }
 
+HammerdClient* DBusThreadManager::GetHammerdClient() {
+  return clients_common_->hammerd_client_.get();
+}
+
 ImageBurnerClient* DBusThreadManager::GetImageBurnerClient() {
   return clients_browser_ ? clients_browser_->image_burner_client_.get()
                           : nullptr;
@@ -367,6 +372,12 @@
       std::move(client);
 }
 
+void DBusThreadManagerSetter::SetHammerdClient(
+    std::unique_ptr<HammerdClient> client) {
+  DBusThreadManager::Get()->clients_common_->hammerd_client_ =
+      std::move(client);
+}
+
 void DBusThreadManagerSetter::SetShillDeviceClient(
     std::unique_ptr<ShillDeviceClient> client) {
   DBusThreadManager::Get()->clients_common_->shill_device_client_ =
diff --git a/chromeos/dbus/dbus_thread_manager.h b/chromeos/dbus/dbus_thread_manager.h
index 7a544316..eac69a4 100644
--- a/chromeos/dbus/dbus_thread_manager.h
+++ b/chromeos/dbus/dbus_thread_manager.h
@@ -38,6 +38,7 @@
 class DebugDaemonClient;
 class EasyUnlockClient;
 class GsmSMSClient;
+class HammerdClient;
 class ImageBurnerClient;
 class ImageLoaderClient;
 class LorgnetteManagerClient;
@@ -138,6 +139,7 @@
   DebugDaemonClient* GetDebugDaemonClient();
   EasyUnlockClient* GetEasyUnlockClient();
   GsmSMSClient* GetGsmSMSClient();
+  HammerdClient* GetHammerdClient();
   ImageBurnerClient* GetImageBurnerClient();
   ImageLoaderClient* GetImageLoaderClient();
   MediaAnalyticsClient* GetMediaAnalyticsClient();
@@ -197,6 +199,7 @@
   void SetCrosDisksClient(std::unique_ptr<CrosDisksClient> client);
   void SetCryptohomeClient(std::unique_ptr<CryptohomeClient> client);
   void SetDebugDaemonClient(std::unique_ptr<DebugDaemonClient> client);
+  void SetHammerdClient(std::unique_ptr<HammerdClient> client);
   void SetShillDeviceClient(std::unique_ptr<ShillDeviceClient> client);
   void SetShillIPConfigClient(std::unique_ptr<ShillIPConfigClient> client);
   void SetShillManagerClient(std::unique_ptr<ShillManagerClient> client);
diff --git a/chromeos/dbus/fake_hammerd_client.cc b/chromeos/dbus/fake_hammerd_client.cc
new file mode 100644
index 0000000..fff02656
--- /dev/null
+++ b/chromeos/dbus/fake_hammerd_client.cc
@@ -0,0 +1,59 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chromeos/dbus/fake_hammerd_client.h"
+
+namespace chromeos {
+
+FakeHammerdClient::FakeHammerdClient() = default;
+
+FakeHammerdClient::~FakeHammerdClient() = default;
+
+void FakeHammerdClient::Init(dbus::Bus* bus) {}
+
+void FakeHammerdClient::AddObserver(Observer* observer) {
+  observers_.AddObserver(observer);
+}
+
+void FakeHammerdClient::RemoveObserver(Observer* observer) {
+  observers_.RemoveObserver(observer);
+}
+
+void FakeHammerdClient::FireBaseFirmwareNeedUpdateSignal() {
+  for (auto& observer : observers_)
+    observer.BaseFirmwareUpdateNeeded();
+}
+
+void FakeHammerdClient::FireBaseFirmwareUpdateStartedSignal() {
+  for (auto& observer : observers_)
+    observer.BaseFirmwareUpdateStarted();
+}
+
+void FakeHammerdClient::FireBaseFirmwareUpdateSucceededSignal() {
+  for (auto& observer : observers_)
+    observer.BaseFirmwareUpdateSucceeded();
+}
+
+void FakeHammerdClient::FireBaseFirmwareUpdateFailedSignal() {
+  for (auto& observer : observers_)
+    observer.BaseFirmwareUpdateFailed();
+}
+
+void FakeHammerdClient::FirePairChallengeSucceededSignal(
+    const std::vector<uint8_t>& base_id) {
+  for (auto& observer : observers_)
+    observer.PairChallengeSucceeded(base_id);
+}
+
+void FakeHammerdClient::FirePairChallengeFailedSignal() {
+  for (auto& observer : observers_)
+    observer.PairChallengeFailed();
+}
+
+void FakeHammerdClient::FireInvalidBaseConnectedSignal() {
+  for (auto& observer : observers_)
+    observer.InvalidBaseConnected();
+}
+
+}  // namespace chromeos
diff --git a/chromeos/dbus/fake_hammerd_client.h b/chromeos/dbus/fake_hammerd_client.h
new file mode 100644
index 0000000..eed3c2a
--- /dev/null
+++ b/chromeos/dbus/fake_hammerd_client.h
@@ -0,0 +1,44 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROMEOS_DBUS_FAKE_HAMMERD_CLIENT_H_
+#define CHROMEOS_DBUS_FAKE_HAMMERD_CLIENT_H_
+
+#include <vector>
+
+#include "base/macros.h"
+#include "base/observer_list.h"
+#include "chromeos/chromeos_export.h"
+#include "chromeos/dbus/hammerd_client.h"
+
+namespace chromeos {
+
+class CHROMEOS_EXPORT FakeHammerdClient : public HammerdClient {
+ public:
+  FakeHammerdClient();
+  ~FakeHammerdClient() override;
+
+  // HammerdClient:
+  void Init(dbus::Bus* bus) override;
+  void AddObserver(Observer* observer) override;
+  void RemoveObserver(Observer* observer) override;
+
+  // Methods to simulate signals exposed by the hammerd service API.
+  void FireBaseFirmwareNeedUpdateSignal();
+  void FireBaseFirmwareUpdateStartedSignal();
+  void FireBaseFirmwareUpdateSucceededSignal();
+  void FireBaseFirmwareUpdateFailedSignal();
+  void FirePairChallengeSucceededSignal(const std::vector<uint8_t>& base_id);
+  void FirePairChallengeFailedSignal();
+  void FireInvalidBaseConnectedSignal();
+
+ private:
+  base::ObserverList<Observer> observers_;
+
+  DISALLOW_COPY_AND_ASSIGN(FakeHammerdClient);
+};
+
+}  // namespace chromeos
+
+#endif  // CHROMEOS_DBUS_FAKE_HAMMERD_CLIENT_H_
diff --git a/chromeos/dbus/hammerd_client.cc b/chromeos/dbus/hammerd_client.cc
new file mode 100644
index 0000000..8eb16f3c
--- /dev/null
+++ b/chromeos/dbus/hammerd_client.cc
@@ -0,0 +1,164 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chromeos/dbus/hammerd_client.h"
+
+#include <string>
+
+#include "base/bind.h"
+#include "base/logging.h"
+#include "base/macros.h"
+#include "base/memory/weak_ptr.h"
+#include "base/observer_list.h"
+#include "dbus/bus.h"
+#include "dbus/message.h"
+#include "dbus/object_path.h"
+#include "dbus/object_proxy.h"
+#include "third_party/cros_system_api/dbus/hammerd/dbus-constants.h"
+
+namespace chromeos {
+
+namespace {
+
+class HammerdClientImpl : public HammerdClient {
+ public:
+  HammerdClientImpl() = default;
+  ~HammerdClientImpl() override = default;
+
+  // HammerdClient:
+  void Init(dbus::Bus* bus) override {
+    bus_proxy_ =
+        bus->GetObjectProxy(hammerd::kHammerdServiceName,
+                            dbus::ObjectPath(hammerd::kHammerdServicePath));
+
+    const struct {
+      std::string signal_name;
+      dbus::ObjectProxy::SignalCallback signal_handler;
+    } kSignals[] = {
+        {hammerd::kBaseFirmwareNeedUpdateSignal,
+         base::BindRepeating(&HammerdClientImpl::OnBaseFirmwareUpdateNeeded,
+                             weak_ptr_factory_.GetWeakPtr())},
+        {hammerd::kBaseFirmwareUpdateStartedSignal,
+         base::BindRepeating(&HammerdClientImpl::OnBaseFirmwareUpdateStarted,
+                             weak_ptr_factory_.GetWeakPtr())},
+        {hammerd::kBaseFirmwareUpdateSucceededSignal,
+         base::BindRepeating(&HammerdClientImpl::OnBaseFirmwareUpdateSucceeded,
+                             weak_ptr_factory_.GetWeakPtr())},
+        {hammerd::kBaseFirmwareUpdateFailedSignal,
+         base::BindRepeating(&HammerdClientImpl::OnBaseFirmwareUpdateFailed,
+                             weak_ptr_factory_.GetWeakPtr())},
+        {hammerd::kPairChallengeSucceededSignal,
+         base::BindRepeating(&HammerdClientImpl::OnPairChallengeSucceeded,
+                             weak_ptr_factory_.GetWeakPtr())},
+        {hammerd::kPairChallengeFailedSignal,
+         base::BindRepeating(&HammerdClientImpl::OnPairChallengeFailed,
+                             weak_ptr_factory_.GetWeakPtr())},
+        {hammerd::kInvalidBaseConnectedSignal,
+         base::BindRepeating(&HammerdClientImpl::OnInvalidBaseConnected,
+                             weak_ptr_factory_.GetWeakPtr())},
+    };
+
+    for (const auto& signal : kSignals) {
+      bus_proxy_->ConnectToSignal(
+          hammerd::kHammerdInterface, signal.signal_name, signal.signal_handler,
+          base::BindOnce(&HammerdClientImpl::OnSignalConnect,
+                         weak_ptr_factory_.GetWeakPtr()));
+    }
+  }
+  void AddObserver(Observer* observer) override {
+    observers_.AddObserver(observer);
+  }
+  void RemoveObserver(Observer* observer) override {
+    observers_.RemoveObserver(observer);
+  }
+
+ private:
+  void OnSignalConnect(const std::string& interface,
+                       const std::string& signal,
+                       bool succeeded) {
+    LOG_IF(ERROR, !succeeded)
+        << "Connect to " << interface << ":" << signal << " failed.";
+  }
+
+  void OnBaseFirmwareUpdateNeeded(dbus::Signal* signal) {
+    DCHECK_EQ(signal->GetInterface(), hammerd::kHammerdInterface);
+    DCHECK_EQ(signal->GetMember(), hammerd::kBaseFirmwareNeedUpdateSignal);
+
+    for (auto& observer : observers_)
+      observer.BaseFirmwareUpdateNeeded();
+  }
+
+  void OnBaseFirmwareUpdateStarted(dbus::Signal* signal) {
+    DCHECK_EQ(signal->GetInterface(), hammerd::kHammerdInterface);
+    DCHECK_EQ(signal->GetMember(), hammerd::kBaseFirmwareNeedUpdateSignal);
+
+    for (auto& observer : observers_)
+      observer.BaseFirmwareUpdateStarted();
+  }
+
+  void OnBaseFirmwareUpdateSucceeded(dbus::Signal* signal) {
+    DCHECK_EQ(signal->GetInterface(), hammerd::kHammerdInterface);
+    DCHECK_EQ(signal->GetMember(), hammerd::kBaseFirmwareNeedUpdateSignal);
+
+    for (auto& observer : observers_)
+      observer.BaseFirmwareUpdateSucceeded();
+  }
+
+  void OnBaseFirmwareUpdateFailed(dbus::Signal* signal) {
+    DCHECK_EQ(signal->GetInterface(), hammerd::kHammerdInterface);
+    DCHECK_EQ(signal->GetMember(), hammerd::kBaseFirmwareNeedUpdateSignal);
+
+    for (auto& observer : observers_)
+      observer.BaseFirmwareUpdateFailed();
+  }
+
+  void OnPairChallengeSucceeded(dbus::Signal* signal) {
+    DCHECK_EQ(signal->GetInterface(), hammerd::kHammerdInterface);
+    DCHECK_EQ(signal->GetMember(), hammerd::kBaseFirmwareNeedUpdateSignal);
+
+    dbus::MessageReader reader(signal);
+
+    const uint8_t* data = nullptr;
+    size_t length = 0;
+    if (!reader.PopArrayOfBytes(&data, &length))
+      return;
+
+    for (auto& observer : observers_) {
+      observer.PairChallengeSucceeded(
+          std::vector<uint8_t>(data, data + length));
+    }
+  }
+
+  void OnPairChallengeFailed(dbus::Signal* signal) {
+    DCHECK_EQ(signal->GetInterface(), hammerd::kHammerdInterface);
+    DCHECK_EQ(signal->GetMember(), hammerd::kBaseFirmwareNeedUpdateSignal);
+
+    for (auto& observer : observers_)
+      observer.PairChallengeFailed();
+  }
+
+  void OnInvalidBaseConnected(dbus::Signal* signal) {
+    DCHECK_EQ(signal->GetInterface(), hammerd::kHammerdInterface);
+    DCHECK_EQ(signal->GetMember(), hammerd::kBaseFirmwareNeedUpdateSignal);
+
+    for (auto& observer : observers_)
+      observer.InvalidBaseConnected();
+  }
+
+  dbus::ObjectProxy* bus_proxy_ = nullptr;
+  base::ObserverList<Observer> observers_;
+
+  base::WeakPtrFactory<HammerdClientImpl> weak_ptr_factory_{this};
+
+  DISALLOW_COPY_AND_ASSIGN(HammerdClientImpl);
+};
+
+}  // namespace
+
+// static
+std::unique_ptr<HammerdClient> HammerdClient::Create() {
+  return std::make_unique<HammerdClientImpl>();
+}
+
+}  // namespace chromeos
diff --git a/chromeos/dbus/hammerd_client.h b/chromeos/dbus/hammerd_client.h
new file mode 100644
index 0000000..c221528
--- /dev/null
+++ b/chromeos/dbus/hammerd_client.h
@@ -0,0 +1,67 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROMEOS_DBUS_HAMMERD_CLIENT_H_
+#define CHROMEOS_DBUS_HAMMERD_CLIENT_H_
+
+#include <stdint.h>
+
+#include <memory>
+#include <vector>
+
+#include "base/macros.h"
+#include "chromeos/chromeos_export.h"
+#include "chromeos/dbus/dbus_client.h"
+
+namespace chromeos {
+
+// Client for hammerd service - the service that manages pairing and updates for
+// physically connected bases of detachable devices (hammers). The client
+// listens for dbus signals related to:
+//  * the connected base firmware updating state
+//  * the connected base pairing events.
+// The client forwards the received signals to its observers (together with any
+// data extracted from the signal object).
+class CHROMEOS_EXPORT HammerdClient : public DBusClient {
+ public:
+  class Observer {
+   public:
+    virtual ~Observer() {}
+
+    // Base firmware requires an update.
+    virtual void BaseFirmwareUpdateNeeded() = 0;
+
+    // Base firmware has started updating - BaseFirmwareUpdateCompleted() is
+    // expected to be dispatched when the update completes.
+    virtual void BaseFirmwareUpdateStarted() = 0;
+
+    // Base firmware update has completed successfully.
+    virtual void BaseFirmwareUpdateSucceeded() = 0;
+
+    // Base firmware update has failed.
+    virtual void BaseFirmwareUpdateFailed() = 0;
+
+    // A base has been attached, and it was successfully authenticated.
+    // |base_id| - identifies the authenticated base.
+    virtual void PairChallengeSucceeded(
+        const std::vector<uint8_t>& base_id) = 0;
+
+    // A base has been attached, but was not successfully authenticated.
+    virtual void PairChallengeFailed() = 0;
+
+    // An invalid base has been connected.
+    virtual void InvalidBaseConnected() = 0;
+  };
+
+  ~HammerdClient() override = default;
+
+  virtual void AddObserver(Observer* observer) = 0;
+  virtual void RemoveObserver(Observer* observer) = 0;
+
+  static std::unique_ptr<HammerdClient> Create();
+};
+
+}  // namespace chromeos
+
+#endif  // CHROMEOS_DBUS_HAMMERD_CLIENT_H_
diff --git a/chromeos/network/network_connection_handler_impl.cc b/chromeos/network/network_connection_handler_impl.cc
index eb1256bc..1709019 100644
--- a/chromeos/network/network_connection_handler_impl.cc
+++ b/chromeos/network/network_connection_handler_impl.cc
@@ -93,14 +93,14 @@
     provider_properties.GetStringWithoutPathExpansion(
         shill::kOpenVPNUserProperty, &username);
     if (username.empty()) {
-      NET_LOG_EVENT("OpenVPN: No username", service_path);
+      NET_LOG(ERROR) << "OpenVPN: No username for: " << service_path;
       return true;
     }
     bool passphrase_required = false;
     provider_properties.GetBooleanWithoutPathExpansion(
         shill::kPassphraseRequiredProperty, &passphrase_required);
     if (passphrase_required) {
-      NET_LOG_EVENT("OpenVPN: Passphrase Required", service_path);
+      NET_LOG(ERROR) << "OpenVPN: Passphrase Required for: " << service_path;
       return true;
     }
     NET_LOG_EVENT("OpenVPN Is Configured", service_path);
@@ -109,16 +109,16 @@
     provider_properties.GetBooleanWithoutPathExpansion(
         shill::kL2tpIpsecPskRequiredProperty, &passphrase_required);
     if (passphrase_required) {
-      NET_LOG_EVENT("VPN: PSK Required", service_path);
+      NET_LOG(ERROR) << "VPN: PSK Required for: " << service_path;
       return true;
     }
     provider_properties.GetBooleanWithoutPathExpansion(
         shill::kPassphraseRequiredProperty, &passphrase_required);
     if (passphrase_required) {
-      NET_LOG_EVENT("VPN: Passphrase Required", service_path);
+      NET_LOG(ERROR) << "VPN: Passphrase Required for: " << service_path;
       return true;
     }
-    NET_LOG_EVENT("VPN Is Configured", service_path);
+    NET_LOG(EVENT) << "VPN Is Configured: " << service_path;
   }
   return false;
 }
@@ -448,6 +448,7 @@
           shill::kL2tpIpsecClientCertIdProperty, &vpn_client_cert_id);
     }
     if (vpn_provider_type.empty() || vpn_provider_host.empty()) {
+      NET_LOG(ERROR) << "VPN Provider missing for: " << service_path;
       ErrorCallbackForPendingRequest(service_path, kErrorConfigurationRequired);
       return;
     }
@@ -544,7 +545,6 @@
     DCHECK(provider_properties);
     if (VPNRequiresCredentials(service_path, vpn_provider_type,
                                *provider_properties)) {
-      NET_LOG_USER("VPN Requires Credentials", service_path);
       ErrorCallbackForPendingRequest(service_path, kErrorConfigurationRequired);
       return;
     }
@@ -572,6 +572,7 @@
   if (type != shill::kTypeVPN && check_error_state) {
     // For non VPNs, 'Connectable' must be false here, so fail immediately if
     // |check_error_state| is true. (For VPNs 'Connectable' is not reliable).
+    NET_LOG(ERROR) << "Non VPN is unconfigured: " << service_path;
     ErrorCallbackForPendingRequest(service_path, kErrorConfigurationRequired);
     return;
   }
diff --git a/chromeos/services/assistant/BUILD.gn b/chromeos/services/assistant/BUILD.gn
index e342448..78ad33c 100644
--- a/chromeos/services/assistant/BUILD.gn
+++ b/chromeos/services/assistant/BUILD.gn
@@ -19,6 +19,12 @@
 
   deps = [
     "//chromeos",
+    "//chromeos/assistant:buildflags",
+    "//chromeos/services/assistant/public/mojom",
+    "//services/identity/public/mojom",
+  ]
+
+  public_deps = [
     "//mojo/public/cpp/bindings:bindings",
     "//services/service_manager/public/cpp:cpp",
   ]
@@ -66,17 +72,6 @@
   source = "manifest.json"
 }
 
-service("assistant") {
-  sources = [
-    "main.cc",
-  ]
-
-  deps = [
-    ":lib",
-    "//services/service_manager/public/cpp",
-  ]
-}
-
 source_set("tests") {
   testonly = true
   deps = [
diff --git a/chromeos/services/assistant/DEPS b/chromeos/services/assistant/DEPS
index ee19260..3293c37 100644
--- a/chromeos/services/assistant/DEPS
+++ b/chromeos/services/assistant/DEPS
@@ -1,5 +1,7 @@
 include_rules = [
+  "+google_apis/gaia",
   "+libassistant",
   "+mojo/public",
+  "+services/identity/public",
   "+services/service_manager/public",
 ]
diff --git a/chromeos/services/assistant/assistant_manager_service.h b/chromeos/services/assistant/assistant_manager_service.h
index 74eb3f41..694c7dd 100644
--- a/chromeos/services/assistant/assistant_manager_service.h
+++ b/chromeos/services/assistant/assistant_manager_service.h
@@ -14,12 +14,13 @@
 // Interface class that defines all assistant functionalities.
 class AssistantManagerService {
  public:
-  // Start the assistant in the background.  In particular the assistant would
-  // start listening for hotword and respond.
-  virtual void Start() = 0;
-
- protected:
   virtual ~AssistantManagerService() = default;
+
+  // Start the assistant in the background with |token|.
+  virtual void Start(const std::string& access_token) = 0;
+
+  // Set access token for assistant.
+  virtual void SetAccessToken(const std::string& access_token) = 0;
 };
 
 }  // namespace assistant
diff --git a/chromeos/services/assistant/assistant_manager_service_impl.cc b/chromeos/services/assistant/assistant_manager_service_impl.cc
index 1695fff..ceecf21 100644
--- a/chromeos/services/assistant/assistant_manager_service_impl.cc
+++ b/chromeos/services/assistant/assistant_manager_service_impl.cc
@@ -4,8 +4,6 @@
 
 #include "chromeos/services/assistant/assistant_manager_service_impl.h"
 
-#include <memory>
-#include <string>
 #include <utility>
 
 #include "base/logging.h"
@@ -16,10 +14,8 @@
 namespace chromeos {
 namespace assistant {
 
-AssistantManagerServiceImpl::AssistantManagerServiceImpl(
-    AuthTokenProvider* auth_token_provider)
-    : auth_token_provider_(auth_token_provider),
-      platform_api_(kDefaultConfigStr),
+AssistantManagerServiceImpl::AssistantManagerServiceImpl()
+    : platform_api_(kDefaultConfigStr),
       assistant_manager_(
           assistant_client::AssistantManager::Create(&platform_api_,
                                                      kDefaultConfigStr)),
@@ -28,7 +24,7 @@
 
 AssistantManagerServiceImpl::~AssistantManagerServiceImpl() {}
 
-void AssistantManagerServiceImpl::Start() {
+void AssistantManagerServiceImpl::Start(const std::string& access_token) {
   auto* internal_options =
       assistant_manager_internal_->CreateDefaultInternalOptions();
   SetAssistantOptions(internal_options);
@@ -39,16 +35,19 @@
   // By default AssistantManager will not start listening for its hotword until
   // we explicitly set EnableListening() to |true|.
   assistant_manager_->EnableListening(true);
+  SetAccessToken(access_token);
+  assistant_manager_->Start();
+}
 
+void AssistantManagerServiceImpl::SetAccessToken(
+    const std::string& access_token) {
   // Push the |access_token| we got as an argument into AssistantManager before
   // starting to ensure that all server requests will be authenticated once
   // it is started. |user_id| is used to pair a user to their |access_token|,
   // since we do not support multi-user in this example we can set it to a
   // dummy value like "0".
   assistant_manager_->SetAuthTokens({std::pair<std::string, std::string>(
-      /* user_id: */ "0", auth_token_provider_->GetAccessToken())});
-
-  assistant_manager_->Start();
+      /* user_id: */ "0", access_token)});
 }
 
 }  // namespace assistant
diff --git a/chromeos/services/assistant/assistant_manager_service_impl.h b/chromeos/services/assistant/assistant_manager_service_impl.h
index b855c99b..3a01fc0c 100644
--- a/chromeos/services/assistant/assistant_manager_service_impl.h
+++ b/chromeos/services/assistant/assistant_manager_service_impl.h
@@ -25,22 +25,14 @@
 // Implementation of AssistantManagerService based on libassistant.
 class AssistantManagerServiceImpl : public AssistantManagerService {
  public:
-  class AuthTokenProvider {
-   public:
-    virtual const std::string GetAccessToken() = 0;
-
-   protected:
-    virtual ~AuthTokenProvider() = default;
-  };
-
-  explicit AssistantManagerServiceImpl(AuthTokenProvider* auth_token_provider);
+  AssistantManagerServiceImpl();
   ~AssistantManagerServiceImpl() override;
 
   // assistant::AssistantManagerService overrides
-  void Start() override;
+  void Start(const std::string& access_token) override;
+  void SetAccessToken(const std::string& access_token) override;
 
  private:
-  AuthTokenProvider* const auth_token_provider_;
   PlatformApiImpl platform_api_;
   std::unique_ptr<assistant_client::AssistantManager> assistant_manager_;
   assistant_client::AssistantManagerInternal* const assistant_manager_internal_;
diff --git a/chromeos/services/assistant/fake_assistant_manager_service_impl.cc b/chromeos/services/assistant/fake_assistant_manager_service_impl.cc
index 69ea2d4..3086acc 100644
--- a/chromeos/services/assistant/fake_assistant_manager_service_impl.cc
+++ b/chromeos/services/assistant/fake_assistant_manager_service_impl.cc
@@ -11,7 +11,10 @@
 
 FakeAssistantManagerServiceImpl::~FakeAssistantManagerServiceImpl() = default;
 
-void FakeAssistantManagerServiceImpl::Start() {}
+void FakeAssistantManagerServiceImpl::Start(const std::string& access_token) {}
+
+void FakeAssistantManagerServiceImpl::SetAccessToken(
+    const std::string& access_token) {}
 
 }  // namespace assistant
 }  // namespace chromeos
diff --git a/chromeos/services/assistant/fake_assistant_manager_service_impl.h b/chromeos/services/assistant/fake_assistant_manager_service_impl.h
index 290c426..e0a0ef7 100644
--- a/chromeos/services/assistant/fake_assistant_manager_service_impl.h
+++ b/chromeos/services/assistant/fake_assistant_manager_service_impl.h
@@ -22,7 +22,8 @@
   ~FakeAssistantManagerServiceImpl() override;
 
   // assistant::AssistantManagerService overrides
-  void Start() override;
+  void Start(const std::string& access_token) override;
+  void SetAccessToken(const std::string& access_token) override;
 
  private:
   DISALLOW_COPY_AND_ASSIGN(FakeAssistantManagerServiceImpl);
diff --git a/chromeos/services/assistant/main.cc b/chromeos/services/assistant/main.cc
deleted file mode 100644
index f1c9bfb..0000000
--- a/chromeos/services/assistant/main.cc
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright 2018 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "services/service_manager/public/c/main.h"
-#include "chromeos/services/assistant/service.h"
-#include "services/service_manager/public/cpp/service_runner.h"
-
-MojoResult ServiceMain(MojoHandle service_request_handle) {
-  service_manager::ServiceRunner runner(new chromeos::assistant::Service());
-  return runner.Run(service_request_handle);
-}
diff --git a/chromeos/services/assistant/manifest.json b/chromeos/services/assistant/manifest.json
index 034f4231..f81be2b 100644
--- a/chromeos/services/assistant/manifest.json
+++ b/chromeos/services/assistant/manifest.json
@@ -3,7 +3,11 @@
   "display_name": "Assistant Service",
   "interface_provider_specs": {
     "service_manager:connector": {
+      "requires": {
+        "identity": [ "identity_manager" ]
+      },
       "provides": {
+        "assistant": [ "chromeos::assistant::mojom::Assistant" ]
       }
     }
   }
diff --git a/chromeos/services/assistant/public/mojom/BUILD.gn b/chromeos/services/assistant/public/mojom/BUILD.gn
new file mode 100644
index 0000000..18696440
--- /dev/null
+++ b/chromeos/services/assistant/public/mojom/BUILD.gn
@@ -0,0 +1,16 @@
+# Copyright 2018 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//mojo/public/tools/bindings/mojom.gni")
+
+mojom("mojom") {
+  sources = [
+    "constants.mojom",
+  ]
+
+  public_deps = [
+    "//mojo/common:common_custom_types",
+    "//services/identity/public/mojom",
+  ]
+}
diff --git a/third_party/WebKit/common/net/OWNERS b/chromeos/services/assistant/public/mojom/OWNERS
similarity index 100%
copy from third_party/WebKit/common/net/OWNERS
copy to chromeos/services/assistant/public/mojom/OWNERS
diff --git a/chromeos/services/assistant/public/mojom/constants.mojom b/chromeos/services/assistant/public/mojom/constants.mojom
new file mode 100644
index 0000000..01cdfe7
--- /dev/null
+++ b/chromeos/services/assistant/public/mojom/constants.mojom
@@ -0,0 +1,7 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+module chromeos.assistant.mojom;
+
+const string kServiceName = "assistant";
diff --git a/chromeos/services/assistant/service.cc b/chromeos/services/assistant/service.cc
index 6b28835a..1e992a50 100644
--- a/chromeos/services/assistant/service.cc
+++ b/chromeos/services/assistant/service.cc
@@ -4,19 +4,99 @@
 
 #include "chromeos/services/assistant/service.h"
 
+#include <utility>
+
+#include "base/bind.h"
+#include "base/logging.h"
+#include "build/buildflag.h"
+#include "chromeos/assistant/buildflags.h"
+#include "chromeos/services/assistant/assistant_manager_service.h"
+#include "google_apis/gaia/google_service_auth_error.h"
+#include "google_apis/gaia/oauth2_token_service.h"
+#include "services/identity/public/mojom/constants.mojom.h"
+#include "services/service_manager/public/cpp/connector.h"
+#include "services/service_manager/public/cpp/service_context.h"
+
+#if BUILDFLAG(ENABLE_CROS_LIBASSISTANT)
+#include "chromeos/services/assistant/assistant_manager_service_impl.h"
+#else
+#include "chromeos/services/assistant/fake_assistant_manager_service_impl.h"
+#endif
+
 namespace chromeos {
 namespace assistant {
 
-Service::Service() {}
+namespace {
 
-Service::~Service() {}
+constexpr char kScopeAuthGcm[] = "https://www.googleapis.com/auth/gcm";
+constexpr char kScopeAssistant[] =
+    "https://www.googleapis.com/auth/assistant-sdk-prototype";
 
-void Service::OnStart() {}
+}  // namespace
+
+Service::Service() : weak_factory_(this) {}
+
+Service::~Service() = default;
+
+void Service::OnStart() {
+  RequestAccessToken();
+}
 
 void Service::OnBindInterface(
     const service_manager::BindSourceInfo& source_info,
     const std::string& interface_name,
-    mojo::ScopedMessagePipeHandle interface_pipe) {}
+    mojo::ScopedMessagePipeHandle interface_pipe) {
+  registry_.BindInterface(interface_name, std::move(interface_pipe));
+}
+
+void Service::RequestAccessToken() {
+  GetIdentityManager()->GetPrimaryAccountInfo(base::BindOnce(
+      &Service::GetPrimaryAccountInfoCallback, base::Unretained(this)));
+}
+
+identity::mojom::IdentityManager* Service::GetIdentityManager() {
+  if (!identity_manager_) {
+    context()->connector()->BindInterface(
+        identity::mojom::kServiceName, mojo::MakeRequest(&identity_manager_));
+  }
+  return identity_manager_.get();
+}
+
+void Service::GetPrimaryAccountInfoCallback(
+    const base::Optional<AccountInfo>& account_info,
+    const identity::AccountState& account_state) {
+  if (!account_info.has_value() || !account_state.has_refresh_token)
+    return;
+  OAuth2TokenService::ScopeSet scopes;
+  scopes.insert(kScopeAssistant);
+  scopes.insert(kScopeAuthGcm);
+  identity_manager_->GetAccessToken(
+      account_info.value().account_id, scopes, "cros_assistant",
+      base::BindOnce(&Service::GetAccessTokenCallback, base::Unretained(this)));
+}
+
+// TODO: Handle |expiration_time| and token refreshing.
+void Service::GetAccessTokenCallback(const base::Optional<std::string>& token,
+                                     base::Time expiration_time,
+                                     const GoogleServiceAuthError& error) {
+  if (!token.has_value()) {
+    LOG(ERROR) << "Failed to retrieve token, error: " << error.ToString();
+    return;
+  }
+
+  if (!assistant_manager_service_) {
+#if BUILDFLAG(ENABLE_CROS_LIBASSISTANT)
+    assistant_manager_service_ =
+        std::make_unique<AssistantManagerServiceImpl>();
+#else
+    assistant_manager_service_ =
+        std::make_unique<FakeAssistantManagerServiceImpl>();
+#endif
+    assistant_manager_service_->Start(token.value());
+  } else {
+    assistant_manager_service_->SetAccessToken(token.value());
+  }
+}
 
 }  // namespace assistant
 }  // namespace chromeos
diff --git a/chromeos/services/assistant/service.h b/chromeos/services/assistant/service.h
index 4e6d1121..5b9c02ed 100644
--- a/chromeos/services/assistant/service.h
+++ b/chromeos/services/assistant/service.h
@@ -5,14 +5,25 @@
 #ifndef CHROMEOS_SERVICES_ASSISTANT_SERVICE_H_
 #define CHROMEOS_SERVICES_ASSISTANT_SERVICE_H_
 
+#include <memory>
 #include <string>
 
+#include "base/callback.h"
+#include "base/memory/weak_ptr.h"
+#include "base/optional.h"
+#include "base/time/time.h"
 #include "mojo/public/cpp/bindings/binding_set.h"
+#include "services/identity/public/mojom/identity_manager.mojom.h"
+#include "services/service_manager/public/cpp/binder_registry.h"
 #include "services/service_manager/public/cpp/service.h"
 
+class GoogleServiceAuthError;
+
 namespace chromeos {
 namespace assistant {
 
+class AssistantManagerService;
+
 class Service : public service_manager::Service {
  public:
   Service();
@@ -25,6 +36,26 @@
                        const std::string& interface_name,
                        mojo::ScopedMessagePipeHandle interface_pipe) override;
 
+  void RequestAccessToken();
+
+  identity::mojom::IdentityManager* GetIdentityManager();
+
+  void GetPrimaryAccountInfoCallback(
+      const base::Optional<AccountInfo>& account_info,
+      const identity::AccountState& account_state);
+
+  void GetAccessTokenCallback(const base::Optional<std::string>& token,
+                              base::Time expiration_time,
+                              const GoogleServiceAuthError& error);
+
+  service_manager::BinderRegistry registry_;
+
+  identity::mojom::IdentityManagerPtr identity_manager_;
+
+  std::unique_ptr<AssistantManagerService> assistant_manager_service_;
+
+  base::WeakPtrFactory<Service> weak_factory_;
+
   DISALLOW_COPY_AND_ASSIGN(Service);
 };
 
diff --git a/components/BUILD.gn b/components/BUILD.gn
index bad99d8..b39fec5c 100644
--- a/components/BUILD.gn
+++ b/components/BUILD.gn
@@ -14,6 +14,7 @@
 
 if (is_android) {
   import("//build/config/android/rules.gni")
+  import("//tools/v8_context_snapshot/v8_context_snapshot.gni")
 }
 
 if (is_ios) {
@@ -271,8 +272,12 @@
       "//ui/android:ui_java",
       "//ui/base",
       "//ui/gfx",
-      "//v8:v8_external_startup_data_assets",
     ]
+    if (use_v8_context_snapshot) {
+      deps += [ "//tools/v8_context_snapshot:v8_context_snapshot_assets" ]
+    } else {
+      deps += [ "//v8:v8_external_startup_data_assets" ]
+    }
   } else {  # !is_android
     deps += [ "//components/keep_alive_registry:unit_tests" ]
   }
@@ -375,8 +380,12 @@
       ":components_tests_pak",
       "//content/shell:pak",
       "//third_party/icu:icu_assets",
-      "//v8:v8_external_startup_data_assets",
     ]
+    if (use_v8_context_snapshot) {
+      deps += [ "//tools/v8_context_snapshot:v8_context_snapshot_assets" ]
+    } else {
+      deps += [ "//v8:v8_external_startup_data_assets" ]
+    }
   }
 
   android_library("components_browsertests_java") {
diff --git a/components/arc/BUILD.gn b/components/arc/BUILD.gn
index 18faadb..87e09f06 100644
--- a/components/arc/BUILD.gn
+++ b/components/arc/BUILD.gn
@@ -58,6 +58,7 @@
     "timer/create_timer_request.h",
     "usb/usb_host_bridge.cc",
     "usb/usb_host_bridge.h",
+    "usb/usb_host_ui_delegate.h",
     "volume_mounter/arc_volume_mounter_bridge.cc",
     "volume_mounter/arc_volume_mounter_bridge.h",
   ]
diff --git a/components/arc/common/accessibility_helper.mojom b/components/arc/common/accessibility_helper.mojom
index 9e6eebab..4df7fa3 100644
--- a/components/arc/common/accessibility_helper.mojom
+++ b/components/arc/common/accessibility_helper.mojom
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Next MinVersion: 10
+// Next MinVersion: 11
 
 module arc.mojom;
 
@@ -244,6 +244,17 @@
   [MinVersion=2] WHITELISTED_PACKAGE_NAME
 };
 
+[Extensible]
+enum AccessibilityNotificationStateType {
+  // Surface for a notification is created. OnNotificationStateChanged of
+  // SURFACE_CREATED for a notification must be called before
+  // OnAccessibilityEvent of WINDOW_STATE_CHANGED for it is called.
+  SURFACE_CREATED,
+
+  // Surface for a notification is removed.
+  SURFACE_REMOVED,
+};
+
 // AccessibilityEventData is a struct to contain info of
 // AccessibilityEvent in Android.
 // https://developer.android.com/reference/android/view/accessibility/AccessibilityEvent.html
@@ -280,7 +291,7 @@
   [MinVersion=6] int32 window_id;
 };
 
-// Next method ID: 2
+// Next method ID: 3
 interface AccessibilityHelperHost {
   OnAccessibilityEventDeprecated@0(AccessibilityEventType event_type,
                                    AccessibilityNodeInfoData? event_source);
@@ -288,6 +299,11 @@
   // OnAccessibilityEvent is called when a converted Android accessibility event
   // is sent from Android.
   OnAccessibilityEvent@1(AccessibilityEventData event_data);
+
+  // OnNotificationStateChanged is called when state of a notification is
+  // changed, e.g. surface for a notification is created.
+  [MinVersion=10] OnNotificationStateChanged@2(
+      string notification_key, AccessibilityNotificationStateType state);
 };
 
 // Next method ID: 8
diff --git a/components/arc/common/notifications.mojom b/components/arc/common/notifications.mojom
index ce3b9db..165b6069 100644
--- a/components/arc/common/notifications.mojom
+++ b/components/arc/common/notifications.mojom
@@ -81,9 +81,9 @@
   // Title of notification
   string title;
   // DEPRECATED: Mimetype of |icon_data|
-  string deprecated_icon_mimetype;
+  string? deprecated_icon_mimetype;
   // DEPRECATED: Binary data of the icon
-  array<uint8> deprecated_icon_data;
+  array<uint8>? deprecated_icon_data;
   // Priority of notification
   ArcNotificationPriority priority;
   // Timestamp related to the notification
@@ -93,7 +93,7 @@
   // DEPRECATED: The maximum value of progress.
   int32 deprecated_progress_max;
   // DEPRECATED: Action buttons
-  array<DeprecatedArcNotificationButton> deprecated_buttons;
+  array<DeprecatedArcNotificationButton>? deprecated_buttons;
   // Flag if the notification has FLAG_NO_CLEAR.
   [MinVersion=1]
   bool no_clear;
diff --git a/components/arc/usb/usb_host_bridge.cc b/components/arc/usb/usb_host_bridge.cc
index 52d3b55..1a00796 100644
--- a/components/arc/usb/usb_host_bridge.cc
+++ b/components/arc/usb/usb_host_bridge.cc
@@ -4,6 +4,8 @@
 
 #include "components/arc/usb/usb_host_bridge.h"
 
+#include <utility>
+
 #include "base/bind.h"
 #include "base/logging.h"
 #include "base/memory/singleton.h"
@@ -12,6 +14,7 @@
 #include "components/arc/arc_bridge_service.h"
 #include "components/arc/arc_browser_context_keyed_service_factory_base.h"
 #include "components/arc/arc_features.h"
+#include "components/arc/usb/usb_host_ui_delegate.h"
 #include "device/base/device_client.h"
 #include "device/usb/mojo/type_converters.h"
 #include "device/usb/usb_device_handle.h"
@@ -107,6 +110,10 @@
   arc_bridge_service_->usb_host()->SetHost(nullptr);
 }
 
+BrowserContextKeyedServiceFactory* ArcUsbHostBridge::GetFactory() {
+  return ArcUsbHostBridgeFactory::GetInstance();
+}
+
 void ArcUsbHostBridge::RequestPermission(const std::string& guid,
                                          const std::string& package,
                                          bool interactive,
@@ -202,6 +209,9 @@
 
 void ArcUsbHostBridge::OnDeviceRemoved(
     scoped_refptr<device::UsbDevice> device) {
+  if (ui_delegate_)
+    ui_delegate_->DeviceRemoved(device.get()->guid());
+
   mojom::UsbHostInstance* usb_host_instance = ARC_GET_INSTANCE_FOR_METHOD(
       arc_bridge_service_->usb_host(), OnDeviceAdded);
 
@@ -229,6 +239,19 @@
                                      weak_factory_.GetWeakPtr())));
 }
 
+void ArcUsbHostBridge::OnConnectionClosed() {
+  if (ui_delegate_)
+    ui_delegate_->ClearPermissionRequests();
+}
+
+void ArcUsbHostBridge::Shutdown() {
+  ui_delegate_ = nullptr;
+}
+
+void ArcUsbHostBridge::SetUiDelegate(ArcUsbHostUiDelegate* ui_delegate) {
+  ui_delegate_ = ui_delegate;
+}
+
 void ArcUsbHostBridge::OnDeviceChecked(const std::string& guid, bool allowed) {
   if (!base::FeatureList::IsEnabled(arc::kUsbHostFeature)) {
     VLOG(1) << "AndroidUSBHost: feature is disabled; ignoring";
@@ -251,13 +274,31 @@
     const std::string& guid,
     const std::string& package,
     RequestPermissionCallback callback) {
-  // TODO: implement the UI dialog
-  // fail close for now
-  std::move(callback).Run(false);
+  if (!ui_delegate_) {
+    std::move(callback).Run(false);
+    return;
+  }
+
+  if (!usb_service_) {
+    std::move(callback).Run(false);
+    return;
+  }
+
+  scoped_refptr<device::UsbDevice> device = usb_service_->GetDevice(guid);
+  if (!device.get()) {
+    LOG(WARNING) << "Unknown USB device " << guid;
+    std::move(callback).Run(false);
+    return;
+  }
+
+  ui_delegate_->RequestUsbAccessPermission(
+      package, guid, device->serial_number(), device->manufacturer_string(),
+      device->product_string(), device->vendor_id(), device->product_id(),
+      std::move(callback));
 }
 
 bool ArcUsbHostBridge::HasPermissionForDevice(const std::string& guid) {
-  // TODO: implement permission settings
+  // TODO(lgcheng): implement permission settings
   // fail close for now
   return false;
 }
diff --git a/components/arc/usb/usb_host_bridge.h b/components/arc/usb/usb_host_bridge.h
index 97841519..f5490349 100644
--- a/components/arc/usb/usb_host_bridge.h
+++ b/components/arc/usb/usb_host_bridge.h
@@ -9,7 +9,6 @@
 #include <vector>
 
 #include "base/callback_forward.h"
-#include "base/files/scoped_file.h"
 #include "base/macros.h"
 #include "base/scoped_observer.h"
 #include "components/arc/common/usb_host.mojom.h"
@@ -23,9 +22,12 @@
 class BrowserContext;
 }  // namespace content
 
+class BrowserContextKeyedServiceFactory;
+
 namespace arc {
 
 class ArcBridgeService;
+class ArcUsbHostUiDelegate;
 
 // Private implementation of UsbHostHost.
 class ArcUsbHostBridge : public KeyedService,
@@ -43,6 +45,9 @@
                             ArcBridgeService* bridge_service);
   ~ArcUsbHostBridge() override;
 
+  // Returns the factory instance for this class.
+  static BrowserContextKeyedServiceFactory* GetFactory();
+
   // mojom::UsbHostHost overrides:
   void RequestPermission(const std::string& guid,
                          const std::string& package,
@@ -60,6 +65,12 @@
 
   // ConnectionObserver<mojom::UsbHostInstance> overrides:
   void OnConnectionReady() override;
+  void OnConnectionClosed() override;
+
+  // KeyedService overrides:
+  void Shutdown() override;
+
+  void SetUiDelegate(ArcUsbHostUiDelegate* ui_delegate);
 
  private:
   void OnDeviceChecked(const std::string& guid, bool allowed);
@@ -73,6 +84,7 @@
   ScopedObserver<device::UsbService, device::UsbService::Observer>
       usb_observer_;
   device::UsbService* usb_service_;
+  ArcUsbHostUiDelegate* ui_delegate_ = nullptr;
 
   // WeakPtrFactory to use for callbacks.
   base::WeakPtrFactory<ArcUsbHostBridge> weak_factory_;
diff --git a/components/arc/usb/usb_host_ui_delegate.h b/components/arc/usb/usb_host_ui_delegate.h
new file mode 100644
index 0000000..3e9b58f
--- /dev/null
+++ b/components/arc/usb/usb_host_ui_delegate.h
@@ -0,0 +1,58 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENTS_ARC_USB_USB_HOST_UI_DELEGATE_H_
+#define COMPONENTS_ARC_USB_USB_HOST_UI_DELEGATE_H_
+
+#include <string>
+
+#include "base/callback.h"
+#include "base/strings/string16.h"
+
+namespace arc {
+
+class ArcUsbHostUiDelegate {
+ public:
+  using RequestPermissionCallback = base::OnceCallback<void(bool)>;
+  // Requests scan device list permission when app tries to get USB device list.
+  // Since the calling application will block on the callback being resolved, it
+  // should be done as soon as possible to prevent the caller from becoming
+  // non-responsive.
+  virtual void RequestUsbScanDeviceListPermission(
+      const std::string& package_name,
+      RequestPermissionCallback callback) = 0;
+
+  // Requests USB device access permission.
+  virtual void RequestUsbAccessPermission(
+      const std::string& package_name,
+      const std::string& guid,
+      const base::string16& serial_number,
+      const base::string16& manufacturer_string,
+      const base::string16& product_string,
+      uint16_t vendor_id,
+      uint16_t product_id,
+      RequestPermissionCallback callback) = 0;
+
+  // Checks if package have access to USB device.
+  virtual bool HasUsbAccessPermission(const std::string& package_name,
+                                      const std::string& guid,
+                                      const base::string16& serial_number,
+                                      uint16_t vendor_id,
+                                      uint16_t product_id) = 0;
+
+  // Device is detached. Remove pending permission request to the device and
+  // ephemeral device permission if the device is not persistent.
+  virtual void DeviceRemoved(const std::string& guid) = 0;
+
+  // Clears all pending permission requests. Called when USB host instance
+  // connection is closed.
+  virtual void ClearPermissionRequests() = 0;
+
+ protected:
+  ~ArcUsbHostUiDelegate() = default;
+};
+
+}  // namespace arc
+
+#endif  // COMPONENTS_ARC_USB_USB_HOST_UI_DELEGATE_H_
diff --git a/components/autofill/content/common/BUILD.gn b/components/autofill/content/common/BUILD.gn
index 672da72..0b92807 100644
--- a/components/autofill/content/common/BUILD.gn
+++ b/components/autofill/content/common/BUILD.gn
@@ -25,6 +25,7 @@
 
   public_deps = [
     "//mojo/common:common_custom_types",
+    "//mojo/public/mojom/base",
     "//url/mojom:url_mojom_gurl",
     "//url/mojom:url_mojom_origin",
   ]
diff --git a/components/autofill/content/common/autofill_types.mojom b/components/autofill/content/common/autofill_types.mojom
index e46e37a..a595a19 100644
--- a/components/autofill/content/common/autofill_types.mojom
+++ b/components/autofill/content/common/autofill_types.mojom
@@ -6,6 +6,7 @@
 
 import "mojo/common/text_direction.mojom";
 import "mojo/common/time.mojom";
+import "mojo/public/mojom/base/string16.mojom";
 import "url/mojom/origin.mojom";
 import "url/mojom/url.mojom";
 
@@ -101,14 +102,14 @@
 
 // autofill::FormFieldData
 struct FormFieldData {
-  string label;
-  string name;
-  string id;
-  string value;
+  mojo_base.mojom.String16 label;
+  mojo_base.mojom.String16 name;
+  mojo_base.mojom.String16 id;
+  mojo_base.mojom.String16 value;
   string form_control_type;
   string autocomplete_attribute;
-  string placeholder;
-  string css_classes;
+  mojo_base.mojom.String16 placeholder;
+  mojo_base.mojom.String16 css_classes;
   uint32 properties_mask;
 
   uint64 max_length;
@@ -119,15 +120,15 @@
   RoleAttribute role;
   mojo.common.mojom.TextDirection text_direction;
 
-  array<string> option_values;
-  array<string> option_contents;
+  array<mojo_base.mojom.String16> option_values;
+  array<mojo_base.mojom.String16> option_contents;
 
   LabelSource label_source;
 };
 
 // autofill::FormData
 struct FormData {
-  string name;
+  mojo_base.mojom.String16 name;
   // TODO(crbug.com/788181): Either change type to Origin or rename to URL.
   url.mojom.Url origin;
   url.mojom.Url action;
@@ -156,20 +157,19 @@
 
 // autofill::PasswordAndRealm
 struct PasswordAndRealm {
-  string password;
+  mojo_base.mojom.String16 password;
   string realm;
 };
 
-
 // autofill::PasswordFormFillData
 struct PasswordFormFillData {
-  string name;
+  mojo_base.mojom.String16 name;
   url.mojom.Url origin;
   url.mojom.Url action;
   FormFieldData username_field;
   FormFieldData password_field;
   string preferred_realm;
-  map<string, PasswordAndRealm> additional_logins;
+  map<mojo_base.mojom.String16, PasswordAndRealm> additional_logins;
   bool wait_for_username;
   bool is_possible_change_password_form;
 };
@@ -184,8 +184,8 @@
 
 // autofill::PossibleUsernamePair
 struct PossibleUsernamePair {
-  string value;
-  string field_name;
+  mojo_base.mojom.String16 value;
+  mojo_base.mojom.String16 field_name;
 };
 
 // autofill::PasswordForm
@@ -195,21 +195,21 @@
   url.mojom.Url origin_with_path;
   url.mojom.Url action;
   string affiliated_web_realm;
-  string submit_element;
-  string username_element;
+  mojo_base.mojom.String16 submit_element;
+  mojo_base.mojom.String16 username_element;
   bool username_marked_by_site;
-  string username_value;
+  mojo_base.mojom.String16 username_value;
   array<PossibleUsernamePair> other_possible_usernames;
-  array<string> all_possible_passwords;
+  array<mojo_base.mojom.String16> all_possible_passwords;
   bool form_has_autofilled_value;
-  string password_element;
-  string password_value;
+  mojo_base.mojom.String16 password_element;
+  mojo_base.mojom.String16 password_value;
   bool password_value_is_default;
-  string new_password_element;
-  string new_password_value;
+  mojo_base.mojom.String16 new_password_element;
+  mojo_base.mojom.String16 new_password_value;
   bool new_password_value_is_default;
   bool new_password_marked_by_site;
-  string confirmation_password_element;
+  mojo_base.mojom.String16 confirmation_password_element;
   bool preferred;
   mojo.common.mojom.Time date_created;
   mojo.common.mojom.Time date_synced;
@@ -218,7 +218,7 @@
   int32 times_used;
   FormData form_data;
   GenerationUploadStatus generation_upload_status;
-  string display_name;
+  mojo_base.mojom.String16 display_name;
   url.mojom.Url icon_url;
   url.mojom.Origin federation_origin;
   bool skip_zero_click;
diff --git a/components/autofill/content/common/autofill_types_struct_traits.cc b/components/autofill/content/common/autofill_types_struct_traits.cc
index 3fa60aae..aaa587f91 100644
--- a/components/autofill/content/common/autofill_types_struct_traits.cc
+++ b/components/autofill/content/common/autofill_types_struct_traits.cc
@@ -7,6 +7,7 @@
 #include "base/i18n/rtl.h"
 #include "mojo/common/common_custom_types_struct_traits.h"
 #include "mojo/common/time_struct_traits.h"
+#include "mojo/public/cpp/base/string16_mojom_traits.h"
 #include "url/mojom/origin_mojom_traits.h"
 #include "url/mojom/url_gurl_mojom_traits.h"
 
diff --git a/components/autofill/core/browser/autofill_metrics_unittest.cc b/components/autofill/core/browser/autofill_metrics_unittest.cc
index 3fa9e701..2db7c2a5 100644
--- a/components/autofill/core/browser/autofill_metrics_unittest.cc
+++ b/components/autofill/core/browser/autofill_metrics_unittest.cc
@@ -2434,7 +2434,7 @@
   base::HistogramTester histogram_tester;
   personal_data_->SetAutofillEnabled(true);
   personal_data_->Init(autofill_client_.GetDatabase(),
-                       autofill_client_.GetPrefs(), nullptr, nullptr, false);
+                       autofill_client_.GetPrefs(), nullptr, false);
   histogram_tester.ExpectUniqueSample("Autofill.IsEnabled.Startup", true, 1);
 }
 
@@ -2443,7 +2443,7 @@
   base::HistogramTester histogram_tester;
   personal_data_->SetAutofillEnabled(false);
   personal_data_->Init(autofill_client_.GetDatabase(),
-                       autofill_client_.GetPrefs(), nullptr, nullptr, false);
+                       autofill_client_.GetPrefs(), nullptr, false);
   histogram_tester.ExpectUniqueSample("Autofill.IsEnabled.Startup", false, 1);
 }
 
diff --git a/components/autofill/core/browser/form_data_importer_unittest.cc b/components/autofill/core/browser/form_data_importer_unittest.cc
index ea1aaae..f6483214 100644
--- a/components/autofill/core/browser/form_data_importer_unittest.cc
+++ b/components/autofill/core/browser/form_data_importer_unittest.cc
@@ -117,7 +117,7 @@
     personal_data_manager_.reset(new PersonalDataManager("en"));
     personal_data_manager_->Init(
         scoped_refptr<AutofillWebDataService>(autofill_database_service_),
-        prefs_.get(), nullptr, nullptr, is_incognito);
+        prefs_.get(), nullptr, is_incognito);
     personal_data_manager_->AddObserver(&personal_data_observer_);
     personal_data_manager_->OnSyncServiceInitialized(nullptr);
 
diff --git a/components/autofill/core/browser/personal_data_manager.cc b/components/autofill/core/browser/personal_data_manager.cc
index 327f2cb..a3a62f5e 100644
--- a/components/autofill/core/browser/personal_data_manager.cc
+++ b/components/autofill/core/browser/personal_data_manager.cc
@@ -41,12 +41,10 @@
 #include "components/autofill/core/common/autofill_switches.h"
 #include "components/autofill/core/common/autofill_util.h"
 #include "components/prefs/pref_service.h"
-#include "components/signin/core/browser/account_tracker_service.h"
-#include "components/signin/core/browser/signin_manager.h"
-#include "components/signin/core/browser/signin_pref_names.h"
 #include "components/sync/driver/sync_service.h"
 #include "components/variations/variations_associated_data.h"
 #include "components/version_info/version_info.h"
+#include "services/identity/public/cpp/identity_manager.h"
 #include "third_party/libaddressinput/src/cpp/include/libaddressinput/address_data.h"
 #include "third_party/libaddressinput/src/cpp/include/libaddressinput/address_formatter.h"
 
@@ -358,22 +356,20 @@
       pending_server_creditcards_query_(0),
       app_locale_(app_locale),
       pref_service_(nullptr),
-      account_tracker_(nullptr),
+      identity_manager_(nullptr),
       is_off_the_record_(false),
       has_logged_stored_profile_metrics_(false),
       has_logged_stored_credit_card_metrics_(false) {}
 
 void PersonalDataManager::Init(scoped_refptr<AutofillWebDataService> database,
                                PrefService* pref_service,
-                               AccountTrackerService* account_tracker,
-                               SigninManagerBase* signin_manager,
+                               identity::IdentityManager* identity_manager,
                                bool is_off_the_record) {
   CountryNames::SetLocaleString(app_locale_);
 
   database_ = database;
   SetPrefService(pref_service);
-  account_tracker_ = account_tracker;
-  signin_manager_ = signin_manager;
+  identity_manager_ = identity_manager;
   is_off_the_record_ = is_off_the_record;
 
   if (!is_off_the_record_)
@@ -1992,9 +1988,8 @@
 
     // Wallet addresses don't have an email address, use the one from the
     // currently signed-in account.
-    std::string account_id = signin_manager_->GetAuthenticatedAccountId();
     base::string16 email =
-        base::UTF8ToUTF16(account_tracker_->GetAccountInfo(account_id).email);
+        base::UTF8ToUTF16(identity_manager_->GetPrimaryAccountInfo().email);
     if (!email.empty())
       existing_profiles->back().SetRawInfo(EMAIL_ADDRESS, email);
 
diff --git a/components/autofill/core/browser/personal_data_manager.h b/components/autofill/core/browser/personal_data_manager.h
index cc35be6..178de2f 100644
--- a/components/autofill/core/browser/personal_data_manager.h
+++ b/components/autofill/core/browser/personal_data_manager.h
@@ -29,11 +29,9 @@
 #include "components/prefs/pref_member.h"
 #include "components/webdata/common/web_data_service_consumer.h"
 
-class AccountTrackerService;
 class Browser;
 class PrefService;
 class RemoveAutofillTester;
-class SigninManagerBase;
 
 namespace autofill {
 class AutofillInteractiveTest;
@@ -46,6 +44,10 @@
 void SetCreditCards(int, std::vector<autofill::CreditCard>*);
 }  // namespace autofill_helper
 
+namespace identity {
+class IdentityManager;
+}
+
 namespace syncer {
 class SyncService;
 }  // namespace syncer
@@ -72,8 +74,7 @@
   // context.
   void Init(scoped_refptr<AutofillWebDataService> database,
             PrefService* pref_service,
-            AccountTrackerService* account_tracker,
-            SigninManagerBase* signin_manager,
+            identity::IdentityManager* identity_manager,
             bool is_off_the_record);
 
   // Called once the sync service is known to be instantiated. Note that it may
@@ -424,14 +425,6 @@
     database_ = database;
   }
 
-  void set_account_tracker(AccountTrackerService* account_tracker) {
-    account_tracker_ = account_tracker;
-  }
-
-  void set_signin_manager(SigninManagerBase* signin_manager) {
-    signin_manager_ = signin_manager;
-  }
-
   // The backing database that this PersonalDataManager uses.
   scoped_refptr<AutofillWebDataService> database_;
 
@@ -581,12 +574,8 @@
   // The PrefService that this instance uses. Must outlive this instance.
   PrefService* pref_service_;
 
-  // The AccountTrackerService that this instance uses. Must outlive this
-  // instance.
-  AccountTrackerService* account_tracker_;
-
-  // The signin manager that this instance uses. Must outlive this instance.
-  SigninManagerBase* signin_manager_;
+  // The identity manager that this instance uses. Must outlive this instance.
+  identity::IdentityManager* identity_manager_;
 
   // Whether the user is currently operating in an off-the-record context.
   // Default value is false.
diff --git a/components/autofill/core/browser/personal_data_manager_unittest.cc b/components/autofill/core/browser/personal_data_manager_unittest.cc
index 823e27c..b831ac8 100644
--- a/components/autofill/core/browser/personal_data_manager_unittest.cc
+++ b/components/autofill/core/browser/personal_data_manager_unittest.cc
@@ -45,13 +45,10 @@
 #include "components/autofill/core/common/form_data.h"
 #include "components/os_crypt/os_crypt_mocker.h"
 #include "components/prefs/pref_service.h"
-#include "components/signin/core/browser/account_tracker_service.h"
-#include "components/signin/core/browser/fake_signin_manager.h"
-#include "components/signin/core/browser/signin_pref_names.h"
-#include "components/signin/core/browser/test_signin_client.h"
 #include "components/variations/variations_params_manager.h"
 #include "components/webdata/common/web_data_service_base.h"
 #include "components/webdata/common/web_database_service.h"
+#include "services/identity/public/cpp/identity_test_environment.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
@@ -125,8 +122,7 @@
     personal_data_.reset(new PersonalDataManager("en"));
     personal_data_->Init(
         scoped_refptr<AutofillWebDataService>(autofill_database_service_),
-        prefs_.get(), account_tracker_.get(), signin_manager_.get(),
-        is_incognito);
+        prefs_.get(), identity_test_env_.identity_manager(), is_incognito);
     personal_data_->AddObserver(&personal_data_observer_);
     personal_data_->OnSyncServiceInitialized(nullptr);
 
@@ -142,8 +138,7 @@
   }
 
   void EnableWalletCardImport() {
-    signin_manager_->SetAuthenticatedAccountInfo("12345",
-                                                 "syncuser@example.com");
+    identity_test_env_.MakePrimaryAccountAvailable("syncuser@example.com");
     base::CommandLine::ForCurrentProcess()->AppendSwitch(
         switches::kEnableOfferStoreUnmaskedWalletCards);
   }
@@ -252,9 +247,7 @@
   base::ScopedTempDir temp_dir_;
   base::MessageLoopForUI message_loop_;
   std::unique_ptr<PrefService> prefs_;
-  std::unique_ptr<AccountTrackerService> account_tracker_;
-  std::unique_ptr<FakeSigninManagerBase> signin_manager_;
-  std::unique_ptr<TestSigninClient> signin_client_;
+  identity::IdentityTestEnvironment identity_test_env_;
   scoped_refptr<AutofillWebDataService> autofill_database_service_;
   scoped_refptr<WebDatabaseService> web_database_;
   AutofillTable* autofill_table_;  // weak ref
@@ -275,14 +268,6 @@
         new WebDatabaseService(path, base::ThreadTaskRunnerHandle::Get(),
                                base::ThreadTaskRunnerHandle::Get());
 
-    // Set up account tracker.
-    signin_client_.reset(new TestSigninClient(prefs_.get()));
-    account_tracker_.reset(new AccountTrackerService());
-    account_tracker_->Initialize(signin_client_.get());
-    signin_manager_.reset(new FakeSigninManagerBase(signin_client_.get(),
-                                                    account_tracker_.get()));
-    signin_manager_->Initialize(prefs_.get());
-
     // Hacky: hold onto a pointer but pass ownership.
     autofill_table_ = new AutofillTable;
     web_database_->AddTable(std::unique_ptr<WebDatabaseTable>(autofill_table_));
@@ -306,13 +291,6 @@
   void TearDown() override {
     // Order of destruction is important as AutofillManager relies on
     // PersonalDataManager to be around when it gets destroyed.
-    signin_manager_->Shutdown();
-    signin_manager_.reset();
-
-    account_tracker_->Shutdown();
-    account_tracker_.reset();
-    signin_client_.reset();
-
     test::ReenableSystemServices();
     OSCryptMocker::TearDown();
   }
@@ -2960,14 +2938,6 @@
         new WebDatabaseService(path, base::ThreadTaskRunnerHandle::Get(),
                                base::ThreadTaskRunnerHandle::Get());
 
-    // Set up account tracker.
-    signin_client_.reset(new TestSigninClient(prefs_.get()));
-    account_tracker_.reset(new AccountTrackerService());
-    account_tracker_->Initialize(signin_client_.get());
-    signin_manager_.reset(new FakeSigninManagerBase(signin_client_.get(),
-                                                    account_tracker_.get()));
-    signin_manager_->Initialize(prefs_.get());
-
     // Hacky: hold onto a pointer but pass ownership.
     autofill_table_ = new AutofillTable;
     web_database_->AddTable(std::unique_ptr<WebDatabaseTable>(autofill_table_));
@@ -2989,15 +2959,6 @@
   }
 
   void TearDown() override {
-    // Order of destruction is important as AutofillManager relies on
-    // PersonalDataManager to be around when it gets destroyed.
-    signin_manager_->Shutdown();
-    signin_manager_.reset();
-
-    account_tracker_->Shutdown();
-    account_tracker_.reset();
-    signin_client_.reset();
-
     test::DisableSystemServices(prefs_.get());
     OSCryptMocker::TearDown();
   }
diff --git a/components/bookmarks/browser/bookmark_storage.cc b/components/bookmarks/browser/bookmark_storage.cc
index 7f46d13..cf64723 100644
--- a/components/bookmarks/browser/bookmark_storage.cc
+++ b/components/bookmarks/browser/bookmark_storage.cc
@@ -83,8 +83,14 @@
       UMA_HISTOGRAM_TIMES("Bookmarks.DecodeTime",
                           TimeTicks::Now() - start_time);
       int64_t size = 0;
-      if (base::GetFileSize(path, &size))
-        UMA_HISTOGRAM_MEMORY_KB("Bookmarks.FileSize", size);
+      if (base::GetFileSize(path, &size)) {
+        int64_t size_kb = size / 1024;
+        // For 0 bookmarks, file size is 700 bytes (less than 1KB)
+        // Bookmarks file size is not expected to exceed 50000KB (50MB) for most
+        // of the users.
+        UMA_HISTOGRAM_CUSTOM_COUNTS("Bookmarks.FileSize", size_kb, 1, 50000,
+                                    25);
+      }
 
       load_index = true;
     }
diff --git a/components/browser_sync/profile_sync_service_autofill_unittest.cc b/components/browser_sync/profile_sync_service_autofill_unittest.cc
index 20cf1aded..54dd4a7 100644
--- a/components/browser_sync/profile_sync_service_autofill_unittest.cc
+++ b/components/browser_sync/profile_sync_service_autofill_unittest.cc
@@ -433,10 +433,9 @@
     EXPECT_CALL(personal_data_manager(), LoadProfiles());
     EXPECT_CALL(personal_data_manager(), LoadCreditCards());
 
-    personal_data_manager_->Init(
-        web_data_service_, profile_sync_service_bundle()->pref_service(),
-        profile_sync_service_bundle()->account_tracker(),
-        profile_sync_service_bundle()->signin_manager(), false);
+    personal_data_manager_->Init(web_data_service_,
+                                 profile_sync_service_bundle()->pref_service(),
+                                 nullptr, false);
 
     web_data_service_->StartSyncableService();
 
diff --git a/components/browser_watcher/postmortem_report_collector_unittest.cc b/components/browser_watcher/postmortem_report_collector_unittest.cc
index 8d24e84c..eb4a103 100644
--- a/components/browser_watcher/postmortem_report_collector_unittest.cc
+++ b/components/browser_watcher/postmortem_report_collector_unittest.cc
@@ -60,48 +60,6 @@
 const char kVersionNumber[] = "TestVersionNumber";
 const char kChannelName[] = "TestChannel";
 
-// Exposes a public constructor in order to create a dummy database.
-class MockCrashReportDatabase : public CrashReportDatabase {
- public:
-  MockCrashReportDatabase() {}
-  MOCK_METHOD0(GetSettings, Settings*());
-  MOCK_METHOD1(PrepareNewCrashReport,
-               CrashReportDatabase::CrashReportDatabase::OperationStatus(
-                   NewReport** report));
-  MOCK_METHOD2(FinishedWritingCrashReport,
-               CrashReportDatabase::CrashReportDatabase::OperationStatus(
-                   CrashReportDatabase::NewReport* report,
-                   crashpad::UUID* uuid));
-  MOCK_METHOD1(ErrorWritingCrashReport,
-               CrashReportDatabase::CrashReportDatabase::OperationStatus(
-                   NewReport* report));
-  MOCK_METHOD2(LookUpCrashReport,
-               CrashReportDatabase::CrashReportDatabase::OperationStatus(
-                   const UUID& uuid,
-                   Report* report));
-  MOCK_METHOD1(
-      GetPendingReports,
-      CrashReportDatabase::OperationStatus(std::vector<Report>* reports));
-  MOCK_METHOD1(
-      GetCompletedReports,
-      CrashReportDatabase::OperationStatus(std::vector<Report>* reports));
-  MOCK_METHOD2(GetReportForUploading,
-               CrashReportDatabase::OperationStatus(const UUID& uuid,
-                                                    const Report** report));
-  MOCK_METHOD3(RecordUploadAttempt,
-               CrashReportDatabase::OperationStatus(const Report* report,
-                                                    bool successful,
-                                                    const std::string& id));
-  MOCK_METHOD2(SkipReportUpload,
-               CrashReportDatabase::OperationStatus(
-                   const UUID& uuid,
-                   crashpad::Metrics::CrashSkippedReason reason));
-  MOCK_METHOD1(DeleteReport,
-               CrashReportDatabase::OperationStatus(const UUID& uuid));
-  MOCK_METHOD1(RequestUpload,
-               CrashReportDatabase::OperationStatus(const UUID& uuid));
-};
-
 class MockPostmortemReportCollector final : public PostmortemReportCollector {
  public:
   explicit MockPostmortemReportCollector(CrashReportDatabase* crash_database)
@@ -153,9 +111,6 @@
   void SetUpTest(bool system_session_clean,
                  bool expect_write_dump,
                  bool provide_crash_db) {
-    collector_.reset(new MockPostmortemReportCollector(
-        provide_crash_db ? &database_ : nullptr));
-
     // Create a dummy debug file.
     ASSERT_TRUE(temp_dir_.CreateUniqueTempDir());
     debug_file_ = temp_dir_.GetPath().AppendASCII("foo-1.pma");
@@ -165,8 +120,12 @@
     }
     ASSERT_TRUE(base::PathExists(debug_file_));
 
-    if (provide_crash_db)
-      EXPECT_CALL(database_, GetSettings()).Times(1).WillOnce(Return(nullptr));
+    if (provide_crash_db) {
+      database_ = CrashReportDatabase::Initialize(
+          temp_dir_.GetPath().AppendASCII("db"));
+    }
+
+    collector_.reset(new MockPostmortemReportCollector(database_.get()));
 
     // Expect a single collection call.
     StabilityReport report;
@@ -176,28 +135,11 @@
         .Times(1)
         .WillOnce(DoAll(SetArgPointee<1>(report), Return(SUCCESS)));
 
-    if (!expect_write_dump)
-      return;
-
-    // Expect the call to write the proto to a minidump. This involves
-    // requesting a report from the crashpad database, writing the report, then
-    // finalizing it with the database.
-    FilePath minidump_path = temp_dir_.GetPath().AppendASCII("foo-1.dmp");
-    base::File minidump_file(
-        minidump_path, base::File::FLAG_CREATE | base::File::File::FLAG_WRITE);
-    crashpad::UUID new_report_uuid;
-    new_report_uuid.InitializeWithNew();
-    crashpad_report_ = {minidump_file.GetPlatformFile(), new_report_uuid,
-                        minidump_path};
-    EXPECT_CALL(database_, PrepareNewCrashReport(_))
-        .Times(1)
-        .WillOnce(DoAll(SetArgPointee<0>(&crashpad_report_),
-                        Return(CrashReportDatabase::kNoError)));
-
-    EXPECT_CALL(*collector_,
-                WriteReportToMinidump(_, _, _, minidump_file.GetPlatformFile()))
-        .Times(1)
-        .WillOnce(Return(true));
+    if (expect_write_dump) {
+      EXPECT_CALL(*collector_, WriteReportToMinidump(_, _, _, _))
+          .Times(1)
+          .WillOnce(Return(true));
+    }
   }
   void ValidateHistograms(int unclean_cnt, int unclean_system_cnt) {
     histogram_tester_.ExpectBucketCount("ActivityTracker.Collect.Status",
@@ -208,25 +150,25 @@
   void CollectReports(bool is_session_clean, bool provide_crash_db) {
     SetUpTest(is_session_clean, provide_crash_db, provide_crash_db);
 
-    if (provide_crash_db) {
-      EXPECT_CALL(database_, FinishedWritingCrashReport(&crashpad_report_, _))
-          .Times(1)
-          .WillOnce(Return(CrashReportDatabase::kNoError));
-    }
-
     // Run the test.
     std::vector<FilePath> debug_files{debug_file_};
     collector_->Process(debug_files);
     ASSERT_FALSE(base::PathExists(debug_file_));
+
+    if (provide_crash_db) {
+      std::vector<CrashReportDatabase::Report> reports;
+      ASSERT_EQ(CrashReportDatabase::kNoError,
+                database_->GetPendingReports(&reports));
+      EXPECT_EQ(1u, reports.size());
+    }
   }
 
  protected:
   base::HistogramTester histogram_tester_;
   base::ScopedTempDir temp_dir_;
   FilePath debug_file_;
-  MockCrashReportDatabase database_;
+  std::unique_ptr<CrashReportDatabase> database_;
   std::unique_ptr<MockPostmortemReportCollector> collector_;
-  CrashReportDatabase::NewReport crashpad_report_;
 };
 
 TEST_P(PostmortemReportCollectorProcessTest, ProcessCleanSession) {
@@ -286,9 +228,10 @@
   ASSERT_TRUE(PathExists(file_path));
 
   // Validate collection: an empty file cannot suppport an analyzer.
-  MockCrashReportDatabase crash_db;
+  std::unique_ptr<CrashReportDatabase> crash_db(
+      CrashReportDatabase::Initialize(temp_dir.GetPath().AppendASCII("db")));
   PostmortemReportCollector collector(kProductName, kVersionNumber,
-                                      kChannelName, &crash_db, nullptr);
+                                      kChannelName, crash_db.get(), nullptr);
   StabilityReport report;
   ASSERT_EQ(ANALYZER_CREATION_FAILED,
             collector.CollectOneReport(file_path, &report));
@@ -313,9 +256,10 @@
 
   // Validate collection: random content appears as though there is not
   // stability data.
-  MockCrashReportDatabase crash_db;
+  std::unique_ptr<CrashReportDatabase> crash_db(
+      CrashReportDatabase::Initialize(temp_dir.GetPath().AppendASCII("db")));
   PostmortemReportCollector collector(kProductName, kVersionNumber,
-                                      kChannelName, &crash_db, nullptr);
+                                      kChannelName, crash_db.get(), nullptr);
   StabilityReport report;
   ASSERT_NE(SUCCESS, collector.CollectOneReport(file_path, &report));
 }
@@ -363,9 +307,10 @@
               IsSessionUnclean(base::Time::FromInternalValue(12345LL)))
       .Times(1)
       .WillOnce(Return(metrics::SystemSessionAnalyzer::CLEAN));
-  MockCrashReportDatabase crash_db;
+  std::unique_ptr<CrashReportDatabase> crash_db(
+      CrashReportDatabase::Initialize(temp_dir_.GetPath().AppendASCII("db")));
   PostmortemReportCollector collector(kProductName, kVersionNumber,
-                                      kChannelName, &crash_db, &analyzer);
+                                      kChannelName, crash_db.get(), &analyzer);
   StabilityReport report;
   ASSERT_EQ(SUCCESS, collector.CollectOneReport(debug_file_path(), &report));
 
diff --git a/components/certificate_reporting/cert_logger.proto b/components/certificate_reporting/cert_logger.proto
index 998c293..7a06f29 100644
--- a/components/certificate_reporting/cert_logger.proto
+++ b/components/certificate_reporting/cert_logger.proto
@@ -121,6 +121,7 @@
     ERR_CERT_NO_REVOCATION_MECHANISM = 12;
     ERR_CERT_NON_UNIQUE_NAME = 13;
     ERR_CERTIFICATE_TRANSPARENCY_REQUIRED = 14;
+    ERR_CERT_SYMANTEC_LEGACY = 15;
   };
 
   // Certificate errors encountered (if any) when validating this
diff --git a/components/certificate_reporting/error_report.cc b/components/certificate_reporting/error_report.cc
index 2026db8..d8e6474a 100644
--- a/components/certificate_reporting/error_report.cc
+++ b/components/certificate_reporting/error_report.cc
@@ -47,6 +47,7 @@
   COPY_CERT_STATUS(NO_REVOCATION_MECHANISM)
   RENAME_CERT_STATUS(CERTIFICATE_TRANSPARENCY_REQUIRED,
                      CERTIFICATE_TRANSPARENCY_REQUIRED)
+  COPY_CERT_STATUS(SYMANTEC_LEGACY)
 
 #undef RENAME_CERT_STATUS
 #undef COPY_CERT_STATUS
diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc
index 1344770..c19ffd0e 100644
--- a/components/content_settings/core/browser/content_settings_registry.cc
+++ b/components/content_settings/core/browser/content_settings_registry.cc
@@ -344,6 +344,16 @@
            WebsiteSettingsRegistry::DESKTOP |
                WebsiteSettingsRegistry::PLATFORM_ANDROID,
            ContentSettingsInfo::INHERIT_IF_LESS_PERMISSIVE);
+
+  Register(CONTENT_SETTINGS_TYPE_PAYMENT_HANDLER, "payment-handler",
+           CONTENT_SETTING_ASK, WebsiteSettingsInfo::UNSYNCABLE,
+           WhitelistedSchemes(),
+           ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK,
+                         CONTENT_SETTING_ASK),
+           WebsiteSettingsInfo::REQUESTING_ORIGIN_AND_TOP_LEVEL_ORIGIN_SCOPE,
+           WebsiteSettingsRegistry::DESKTOP |
+               WebsiteSettingsRegistry::PLATFORM_ANDROID,
+           ContentSettingsInfo::INHERIT_IF_LESS_PERMISSIVE);
 }
 
 void ContentSettingsRegistry::Register(
diff --git a/components/content_settings/core/common/content_settings.cc b/components/content_settings/core/common/content_settings.cc
index 08a0cae..e03af26 100644
--- a/components/content_settings/core/common/content_settings.cc
+++ b/components/content_settings/core/common/content_settings.cc
@@ -29,7 +29,7 @@
 // content settings type name instead.
 //
 // The array size must be explicit for the static_asserts below.
-constexpr size_t kNumHistogramValues = 36;
+constexpr size_t kNumHistogramValues = 37;
 constexpr HistogramValue kHistogramValue[kNumHistogramValues] = {
     {CONTENT_SETTINGS_TYPE_COOKIES, 0},
     {CONTENT_SETTINGS_TYPE_IMAGES, 1},
@@ -67,6 +67,7 @@
     {CONTENT_SETTINGS_TYPE_CLIPBOARD_READ, 40},
     {CONTENT_SETTINGS_TYPE_CLIPBOARD_WRITE, 41},
     {CONTENT_SETTINGS_TYPE_PLUGINS_DATA, 42},
+    {CONTENT_SETTINGS_TYPE_PAYMENT_HANDLER, 43},
 };
 
 }  // namespace
diff --git a/components/content_settings/core/common/content_settings_types.h b/components/content_settings/core/common/content_settings_types.h
index d6f4d7b..8b894ce 100644
--- a/components/content_settings/core/common/content_settings_types.h
+++ b/components/content_settings/core/common/content_settings_types.h
@@ -104,6 +104,9 @@
   // a site.
   CONTENT_SETTINGS_TYPE_PLUGINS_DATA,
 
+  // Used to store whether to allow a website to install a payment handler.
+  CONTENT_SETTINGS_TYPE_PAYMENT_HANDLER,
+
   CONTENT_SETTINGS_NUM_TYPES,
 };
 
diff --git a/components/crash/content/app/BUILD.gn b/components/crash/content/app/BUILD.gn
index 68e46b7..f8be4ff 100644
--- a/components/crash/content/app/BUILD.gn
+++ b/components/crash/content/app/BUILD.gn
@@ -74,7 +74,19 @@
   }
 
   if (is_win) {
-    deps += [ "//third_party/crashpad/crashpad/handler" ]
+    sources += [
+      "dump_hung_process_with_ptype.cc",
+      "dump_hung_process_with_ptype.h",
+      "minidump_with_crashpad_info.cc",
+      "minidump_with_crashpad_info.h",
+    ]
+
+    deps += [
+      "//third_party/crashpad/crashpad/client",
+      "//third_party/crashpad/crashpad/handler",
+      "//third_party/crashpad/crashpad/minidump",
+      "//third_party/crashpad/crashpad/util",
+    ]
   }
 
   if (is_android) {
diff --git a/components/crash/content/app/crash_export_stubs.cc b/components/crash/content/app/crash_export_stubs.cc
index 995756cb..3ff51649 100644
--- a/components/crash/content/app/crash_export_stubs.cc
+++ b/components/crash/content/app/crash_export_stubs.cc
@@ -35,6 +35,11 @@
   return nullptr;
 }
 
+bool DumpHungProcessWithPtype_ExportThunk(HANDLE process_handle,
+                                          const char* ptype) {
+  return false;
+}
+
 #if defined(ARCH_CPU_X86_64)
 
 void RegisterNonABICompliantCodeRange_ExportThunk(void* start,
diff --git a/components/crash/content/app/crash_export_thunks.cc b/components/crash/content/app/crash_export_thunks.cc
index 68903b26..5a4e3f1 100644
--- a/components/crash/content/app/crash_export_thunks.cc
+++ b/components/crash/content/app/crash_export_thunks.cc
@@ -7,10 +7,12 @@
 #include <algorithm>
 #include <type_traits>
 
+#include "base/process/process.h"
 #include "base/strings/string_piece.h"
 #include "base/strings/utf_string_conversions.h"
 #include "build/build_config.h"
 #include "components/crash/content/app/crashpad.h"
+#include "components/crash/content/app/dump_hung_process_with_ptype.h"
 #include "third_party/crashpad/crashpad/client/crashpad_client.h"
 
 void RequestSingleCrashUpload_ExportThunk(const char* local_id) {
@@ -64,6 +66,13 @@
   return crash_reporter::GetCrashpadDatabasePathImpl();
 }
 
+bool DumpHungProcessWithPtype_ExportThunk(HANDLE process_handle,
+                                          const char* ptype) {
+  base::Process process(process_handle);
+
+  return crash_reporter::DumpHungProcessWithPtypeImpl(process, ptype);
+}
+
 #if defined(ARCH_CPU_X86_64)
 
 void RegisterNonABICompliantCodeRange_ExportThunk(void* start,
diff --git a/components/crash/content/app/crash_export_thunks.h b/components/crash/content/app/crash_export_thunks.h
index 7c5d9d7..e676e8c 100644
--- a/components/crash/content/app/crash_export_thunks.h
+++ b/components/crash/content/app/crash_export_thunks.h
@@ -58,6 +58,11 @@
 // Returns the crashpad database path.
 const wchar_t* GetCrashpadDatabasePath_ExportThunk();
 
+// Immediately dump |process| to a crash dump adorned with |ptype|.
+// Takes ownership of |process|, does not kill nor affect the exit code of
+// |process|.
+bool DumpHungProcessWithPtype_ExportThunk(HANDLE process, const char* ptype);
+
 #if defined(ARCH_CPU_X86_64)
 // V8 support functions.
 void RegisterNonABICompliantCodeRange_ExportThunk(void* start,
diff --git a/components/crash/content/app/dump_hung_process_with_ptype.cc b/components/crash/content/app/dump_hung_process_with_ptype.cc
new file mode 100644
index 0000000..5112ad9
--- /dev/null
+++ b/components/crash/content/app/dump_hung_process_with_ptype.cc
@@ -0,0 +1,56 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/crash/content/app/minidump_with_crashpad_info.h"
+
+#include "base/files/file_util.h"
+#include "components/crash/content/app/crash_export_thunks.h"
+#include "components/crash/content/app/crash_reporter_client.h"
+#include "components/crash/content/app/crashpad.h"
+#include "third_party/crashpad/crashpad/client/crash_report_database.h"
+#include "third_party/crashpad/crashpad/client/crashpad_info.h"
+#include "third_party/crashpad/crashpad/client/settings.h"
+#include "third_party/crashpad/crashpad/minidump/minidump_extensions.h"
+
+namespace crash_reporter {
+
+bool DumpHungProcessWithPtype(const base::Process& process, const char* ptype) {
+  // We need to pass a handle across the export thunk, which takes ownership
+  // of it.
+  HANDLE process_handle = nullptr;
+  if (!::DuplicateHandle(::GetCurrentProcess(), process.Handle(),
+                         ::GetCurrentProcess(), &process_handle, 0, FALSE,
+                         DUPLICATE_SAME_ACCESS)) {
+    return false;
+  }
+
+  return DumpHungProcessWithPtype_ExportThunk(process_handle, ptype);
+}
+
+bool DumpHungProcessWithPtypeImpl(const base::Process& process,
+                                  const char* ptype) {
+  // Get annotations on the crash report to set the product name, version,
+  // channel and so forth to what's appropriate for this process.
+  StringStringMap annotations;
+  internal::GetPlatformCrashpadAnnotations(&annotations);
+
+  // Override the process type, as this is dumping |process| rather than this
+  // process.
+  annotations["ptype"] = ptype;
+
+  uint32_t minidump_type = MiniDumpWithUnloadedModules |
+                           MiniDumpWithProcessThreadData |
+                           MiniDumpWithFullMemoryInfo | MiniDumpWithThreadInfo;
+
+  // Capture more detail for canary and dev channels. The prefix search caters
+  // for the soon to be outdated "-m" suffixed multi-install channels.
+  std::string channel_name = annotations["channel"];
+  if (channel_name.find("canary") == 0 || channel_name.find("dev") == 0)
+    minidump_type |= MiniDumpWithIndirectlyReferencedMemory;
+
+  return DumpAndReportProcess(process, minidump_type, nullptr, annotations,
+                              crash_reporter::GetCrashpadDatabasePath());
+}
+
+}  // namespace crash_reporter
diff --git a/components/crash/content/app/dump_hung_process_with_ptype.h b/components/crash/content/app/dump_hung_process_with_ptype.h
new file mode 100644
index 0000000..8eff4bb5
--- /dev/null
+++ b/components/crash/content/app/dump_hung_process_with_ptype.h
@@ -0,0 +1,23 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENTS_CRASH_CONTENT_APP_DUMP_HUNG_PROCESS_WITH_PTYPE_H_
+#define COMPONENTS_CRASH_CONTENT_APP_DUMP_HUNG_PROCESS_WITH_PTYPE_H_
+
+#include "base/process/process.h"
+
+namespace crash_reporter {
+
+// Captures a crash dump for |process|, which is assumed to be hung, to the
+// crashpad database. Annotates the crash with suitable annotations, plus a
+// "ptype" annotation set to |ptype|.
+bool DumpHungProcessWithPtype(const base::Process& process, const char* ptype);
+
+// Implementation function for the above, hosted inside chrome_elf.dll.
+bool DumpHungProcessWithPtypeImpl(const base::Process& process,
+                                  const char* ptype);
+
+}  // namespace crash_reporter
+
+#endif  // COMPONENTS_CRASH_CONTENT_APP_DUMP_HUNG_PROCESS_WITH_PTYPE_H_
diff --git a/components/crash/content/app/minidump_with_crashpad_info.cc b/components/crash/content/app/minidump_with_crashpad_info.cc
index 9ba75ba..a6ee276 100644
--- a/components/crash/content/app/minidump_with_crashpad_info.cc
+++ b/components/crash/content/app/minidump_with_crashpad_info.cc
@@ -236,7 +236,6 @@
                                        const crashpad::UUID& report_id,
                                        base::File* dump_file) {
   DCHECK(process.IsValid());
-  DCHECK(exc_info);
   DCHECK(dump_file && dump_file->IsValid());
 
   // The CrashpadInfo structure and its associated directory entry are injected
diff --git a/components/gcm_driver/instance_id/fake_gcm_driver_for_instance_id.cc b/components/gcm_driver/instance_id/fake_gcm_driver_for_instance_id.cc
index a0df196b..ae3359d1 100644
--- a/components/gcm_driver/instance_id/fake_gcm_driver_for_instance_id.cc
+++ b/components/gcm_driver/instance_id/fake_gcm_driver_for_instance_id.cc
@@ -9,6 +9,7 @@
 #include "base/rand_util.h"
 #include "base/single_thread_task_runner.h"
 #include "base/strings/string_number_conversions.h"
+#include "base/strings/string_util.h"
 #include "base/threading/thread_task_runner_handle.h"
 #include "components/gcm_driver/gcm_client.h"
 
@@ -93,8 +94,22 @@
     const std::string& authorized_entity,
     const std::string& scope,
     const DeleteTokenCallback& callback) {
-  std::string key = app_id + authorized_entity + scope;
-  tokens_.erase(key);
+  std::string key_prefix = app_id;
+
+  // Calls to InstanceID::DeleteID() will end up deleting the token for a given
+  // |app_id| with both |authorized_entity| and |scope| set to "*", meaning that
+  // all data has to be deleted. Do a prefix search to emulate this behaviour.
+  if (authorized_entity != "*")
+    key_prefix += authorized_entity;
+  if (scope != "*")
+    key_prefix += scope;
+
+  for (auto iter = tokens_.begin(); iter != tokens_.end();) {
+    if (base::StartsWith(iter->first, key_prefix, base::CompareCase::SENSITIVE))
+      iter = tokens_.erase(iter);
+    else
+      iter++;
+  }
 
   last_deletetoken_app_id_ = app_id;
 
diff --git a/components/gcm_driver/registration_info.cc b/components/gcm_driver/registration_info.cc
index dd4faa1..5eddf8c 100644
--- a/components/gcm_driver/registration_info.cc
+++ b/components/gcm_driver/registration_info.cc
@@ -119,7 +119,7 @@
     return false;
   // Note that it's valid for pos_hash to be std::string::npos.
   size_t pos_hash = serialized_value.find(kSerializedValidationTimeSeparator);
-  bool has_timestamp = (pos_hash != std::string::npos);
+  bool has_timestamp = pos_hash != std::string::npos;
 
   std::string senders = serialized_value.substr(0, pos_equals);
   std::string registration_id_str, last_validated_str;
diff --git a/components/multidevice/OWNERS b/components/multidevice/OWNERS
index 88535c42..1d672caa 100644
--- a/components/multidevice/OWNERS
+++ b/components/multidevice/OWNERS
@@ -1,4 +1,4 @@
 khorimoto@chromium.org
-tengs@chromium.org
+jlklein@chromium.org
 
 # COMPONENT: UI>ProximityAuth
diff --git a/components/password_manager/core/browser/export/password_manager_exporter_unittest.cc b/components/password_manager/core/browser/export/password_manager_exporter_unittest.cc
index 3de7778f..9800fbd 100644
--- a/components/password_manager/core/browser/export/password_manager_exporter_unittest.cc
+++ b/components/password_manager/core/browser/export/password_manager_exporter_unittest.cc
@@ -176,6 +176,29 @@
       ExportPasswordsResult::WRITE_FAILED, 1);
 }
 
+// A partial write should be considered a failure and be cleaned up.
+TEST_F(PasswordManagerExporterTest, WriteFileFailedHalfway) {
+  const std::string serialised(
+      password_manager::PasswordCSVWriter::SerializePasswords(password_list_));
+  const std::string destination_folder_name(
+      destination_path_.DirName().BaseName().AsUTF8Unsafe());
+
+  EXPECT_CALL(mock_write_file_, Run(_, _, _))
+      .WillOnce(Return(serialised.size() / 2));
+  EXPECT_CALL(mock_delete_file_, Run(destination_path_, false));
+  EXPECT_CALL(
+      mock_on_progress_,
+      Run(password_manager::ExportProgressStatus::IN_PROGRESS, IsEmpty()));
+  EXPECT_CALL(mock_on_progress_,
+              Run(password_manager::ExportProgressStatus::FAILED_WRITE_FAILED,
+                  StrEq(destination_folder_name)));
+
+  exporter_.PreparePasswordsForExport();
+  exporter_.SetDestination(destination_path_);
+
+  scoped_task_environment_.RunUntilIdle();
+}
+
 // Test that GetProgressStatus() returns the last ExportProgressStatus sent
 // to the callback.
 TEST_F(PasswordManagerExporterTest, GetProgressReturnsLastCallbackStatus) {
diff --git a/components/plugins/renderer/DEPS b/components/plugins/renderer/DEPS
index c9f1d1f..0e11b3f 100644
--- a/components/plugins/renderer/DEPS
+++ b/components/plugins/renderer/DEPS
@@ -7,7 +7,7 @@
   "+content/public/common",
   "+content/public/test",
   "+services/service_manager/public/cpp",
-  "+third_party/WebKit/common/page/page_visibility_state.mojom.h",
+  "+third_party/WebKit/public/mojom/page/page_visibility_state.mojom.h",
   "+third_party/WebKit/public",
   "+third_party/re2",
   "+skia",
diff --git a/components/plugins/renderer/webview_plugin.cc b/components/plugins/renderer/webview_plugin.cc
index 209bdff..2d9e874 100644
--- a/components/plugins/renderer/webview_plugin.cc
+++ b/components/plugins/renderer/webview_plugin.cc
@@ -17,7 +17,7 @@
 #include "content/public/renderer/render_view.h"
 #include "gin/converter.h"
 #include "skia/ext/platform_canvas.h"
-#include "third_party/WebKit/common/page/page_visibility_state.mojom.h"
+#include "third_party/WebKit/public/mojom/page/page_visibility_state.mojom.h"
 #include "third_party/WebKit/public/platform/WebCoalescedInputEvent.h"
 #include "third_party/WebKit/public/platform/WebURL.h"
 #include "third_party/WebKit/public/platform/WebURLResponse.h"
diff --git a/components/printing/renderer/print_render_frame_helper.cc b/components/printing/renderer/print_render_frame_helper.cc
index e1bdfd4..2d81ba90 100644
--- a/components/printing/renderer/print_render_frame_helper.cc
+++ b/components/printing/renderer/print_render_frame_helper.cc
@@ -38,8 +38,8 @@
 #include "printing/metafile_skia_wrapper.h"
 #include "printing/pdf_metafile_skia.h"
 #include "printing/units.h"
-#include "third_party/WebKit/common/page/page_visibility_state.mojom.h"
 #include "third_party/WebKit/public/common/frame/sandbox_flags.h"
+#include "third_party/WebKit/public/mojom/page/page_visibility_state.mojom.h"
 #include "third_party/WebKit/public/platform/Platform.h"
 #include "third_party/WebKit/public/platform/WebDoubleSize.h"
 #include "third_party/WebKit/public/platform/WebSize.h"
diff --git a/components/spellcheck/common/DEPS b/components/spellcheck/common/DEPS
index 1c40d98..9ae30d0 100644
--- a/components/spellcheck/common/DEPS
+++ b/components/spellcheck/common/DEPS
@@ -1,3 +1,4 @@
 include_rules = [
   "+ipc",
+  "+mojo/public",
 ]
diff --git a/components/spellcheck/common/spellcheck.mojom b/components/spellcheck/common/spellcheck.mojom
index 70e946b..f3caeb82 100644
--- a/components/spellcheck/common/spellcheck.mojom
+++ b/components/spellcheck/common/spellcheck.mojom
@@ -85,5 +85,5 @@
   Decoration decoration;
   int32 location;
   int32 length;
-  array<string> replacements;
+  array<mojo_base.mojom.String16> replacements;
 };
diff --git a/components/spellcheck/common/spellcheck_struct_traits.cc b/components/spellcheck/common/spellcheck_struct_traits.cc
index 5b8e5042..2f0c4ef 100644
--- a/components/spellcheck/common/spellcheck_struct_traits.cc
+++ b/components/spellcheck/common/spellcheck_struct_traits.cc
@@ -4,6 +4,8 @@
 
 #include "components/spellcheck/common/spellcheck_struct_traits.h"
 
+#include "mojo/public/cpp/base/string16_mojom_traits.h"
+
 namespace mojo {
 
 spellcheck::mojom::Decoration
diff --git a/components/ssl_errors/error_info.cc b/components/ssl_errors/error_info.cc
index a6bed5c..1ed896c 100644
--- a/components/ssl_errors/error_info.cc
+++ b/components/ssl_errors/error_info.cc
@@ -96,6 +96,7 @@
       }
       break;
     case CERT_AUTHORITY_INVALID:
+    case CERT_SYMANTEC_LEGACY:
       details =
           l10n_util::GetStringFUTF16(IDS_CERT_ERROR_AUTHORITY_INVALID_DETAILS,
                                      UTF8ToUTF16(request_url.host()));
@@ -216,6 +217,8 @@
       return CERT_PINNED_KEY_MISSING;
     case net::ERR_CERTIFICATE_TRANSPARENCY_REQUIRED:
       return CERTIFICATE_TRANSPARENCY_REQUIRED;
+    case net::ERR_CERT_SYMANTEC_LEGACY:
+      return CERT_SYMANTEC_LEGACY;
     default:
       NOTREACHED();
       return UNKNOWN;
@@ -241,6 +244,7 @@
       net::CERT_STATUS_NAME_CONSTRAINT_VIOLATION,
       net::CERT_STATUS_VALIDITY_TOO_LONG,
       net::CERT_STATUS_CERTIFICATE_TRANSPARENCY_REQUIRED,
+      net::CERT_STATUS_SYMANTEC_LEGACY,
   };
 
   const ErrorType kErrorTypes[] = {
@@ -256,6 +260,7 @@
       CERT_NAME_CONSTRAINT_VIOLATION,
       CERT_VALIDITY_TOO_LONG,
       CERTIFICATE_TRANSPARENCY_REQUIRED,
+      CERT_SYMANTEC_LEGACY,
   };
   DCHECK(arraysize(kErrorFlags) == arraysize(kErrorTypes));
 
diff --git a/components/ssl_errors/error_info.h b/components/ssl_errors/error_info.h
index fd7da2d..571a65e 100644
--- a/components/ssl_errors/error_info.h
+++ b/components/ssl_errors/error_info.h
@@ -41,6 +41,7 @@
     CERT_PINNED_KEY_MISSING = 13,
     CERT_VALIDITY_TOO_LONG = 14,
     CERTIFICATE_TRANSPARENCY_REQUIRED = 15,
+    CERT_SYMANTEC_LEGACY = 16,
     END_OF_ENUM
   };
 
diff --git a/components/subresource_filter/content/browser/content_subresource_filter_driver_factory.cc b/components/subresource_filter/content/browser/content_subresource_filter_driver_factory.cc
index ad3d4fae..9a84f384 100644
--- a/components/subresource_filter/content/browser/content_subresource_filter_driver_factory.cc
+++ b/components/subresource_filter/content/browser/content_subresource_filter_driver_factory.cc
@@ -6,6 +6,7 @@
 
 #include <utility>
 
+#include "base/metrics/histogram_macros.h"
 #include "base/rand_util.h"
 #include "base/time/time.h"
 #include "components/subresource_filter/content/browser/page_load_statistics.h"
@@ -126,6 +127,11 @@
 }
 
 void ContentSubresourceFilterDriverFactory::OnFirstSubresourceLoadDisallowed() {
+  if (matched_configuration_.activation_conditions.forced_activation) {
+    UMA_HISTOGRAM_BOOLEAN(
+        "SubresourceFilter.PageLoad.ForcedActivation.DisallowedLoad", true);
+    return;
+  }
   if (activation_options().should_suppress_notifications)
     return;
   // This shouldn't happen normally, but in the rare case that an IPC from a
diff --git a/components/sync_sessions/sessions_sync_manager.cc b/components/sync_sessions/sessions_sync_manager.cc
index e4970c8d..dc0bb8ca 100644
--- a/components/sync_sessions/sessions_sync_manager.cc
+++ b/components/sync_sessions/sessions_sync_manager.cc
@@ -257,11 +257,11 @@
 
     // A copy of the specifics must be made because |current_session| will be
     // updated in place and therefore can't be relied on as the source of truth.
-    sync_pb::SessionHeader header_specifics;
-    header_specifics.CopyFrom(current_session->ToSessionHeaderProto());
-    session_tracker_.ResetSessionTracking(current_machine_tag());
-    PopulateSyncedSessionFromSpecifics(current_machine_tag(), header_specifics,
-                                       base::Time::Now(), current_session);
+    sync_pb::SessionSpecifics specifics;
+    specifics.set_session_tag(current_machine_tag());
+    specifics.mutable_header()->CopyFrom(
+        current_session->ToSessionHeaderProto());
+    UpdateTrackerWithSpecifics(specifics, base::Time::Now(), &session_tracker_);
 
     // The tab entities stored in sync have outdated SessionId values. Go
     // through and update them to the new SessionIds.
@@ -571,24 +571,6 @@
   return !merge_result.error().IsSet();
 }
 
-bool SessionsSyncManager::IsValidSessionHeader(
-    const sync_pb::SessionHeader& header) {
-  // Verify that tab IDs appear only once within a session.
-  // Intended to prevent http://crbug.com/360822.
-  std::set<int> session_tab_ids;
-  for (int i = 0; i < header.window_size(); ++i) {
-    const sync_pb::SessionWindow& window = header.window(i);
-    for (int j = 0; j < window.tab_size(); ++j) {
-      const int tab_id = window.tab(j);
-      bool success = session_tab_ids.insert(tab_id).second;
-      if (!success)
-        return false;
-    }
-  }
-
-  return true;
-}
-
 void SessionsSyncManager::OnLocalTabModified(SyncedTabDelegate* modified_tab) {
   if (!modified_tab->IsBeingDestroyed()) {
     GURL virtual_url =
@@ -699,6 +681,8 @@
     DCHECK(it->sync_data().GetSpecifics().has_session());
     const sync_pb::SessionSpecifics& session =
         it->sync_data().GetSpecifics().session();
+    const base::Time mtime =
+        syncer::SyncDataRemote(it->sync_data()).GetModifiedTime();
     switch (it->change_type()) {
       case syncer::SyncChange::ACTION_DELETE:
         // Deletions are all or nothing (since we only ever delete entire
@@ -738,8 +722,12 @@
           LOG(WARNING) << "Dropping modification to local session.";
           return syncer::SyncError();
         }
-        UpdateTrackerWithSpecifics(
-            session, syncer::SyncDataRemote(it->sync_data()).GetModifiedTime());
+        UpdateTrackerWithSpecifics(session, mtime, &session_tracker_);
+        // If a favicon or favicon urls are present, load the URLs and visit
+        // times into the in-memory favicon cache.
+        if (session.has_tab()) {
+          RefreshFaviconVisitTimesFromForeignTab(session.tab(), mtime);
+        }
         break;
       default:
         NOTREACHED() << "Processing sync changes failed, unknown change type.";
@@ -790,7 +778,14 @@
         new_changes->push_back(tombstone);
     } else if (specifics.session_tag() != current_machine_tag()) {
       if (TagHashFromSpecifics(specifics) == remote.GetClientTagHash()) {
-        UpdateTrackerWithSpecifics(specifics, remote.GetModifiedTime());
+        UpdateTrackerWithSpecifics(specifics, remote.GetModifiedTime(),
+                                   &session_tracker_);
+        // If a favicon or favicon urls are present, load the URLs and visit
+        // times into the in-memory favicon cache.
+        if (specifics.has_tab()) {
+          RefreshFaviconVisitTimesFromForeignTab(specifics.tab(),
+                                                 remote.GetModifiedTime());
+        }
       } else {
         // In the past, like years ago, we believe that some session data was
         // created with bad tag hashes. This causes any change this client makes
@@ -836,7 +831,7 @@
         }
 
         UpdateTrackerWithSpecifics(rewritten_specifics,
-                                   remote.GetModifiedTime());
+                                   remote.GetModifiedTime(), &session_tracker_);
 
         DVLOG(1) << "Loaded local header and rewrote " << session_id_map.size()
                  << " ids.";
@@ -877,8 +872,8 @@
           rewritten_specifics.mutable_tab()->set_tab_id(new_tab_id);
           session_tracker_.ReassociateLocalTab(
               rewritten_specifics.tab_node_id(), new_tab_id);
-          UpdateTrackerWithSpecifics(rewritten_specifics,
-                                     remote.GetModifiedTime());
+          UpdateTrackerWithSpecifics(
+              rewritten_specifics, remote.GetModifiedTime(), &session_tracker_);
         }
       }
     }
@@ -899,90 +894,6 @@
   return found_current_header;
 }
 
-void SessionsSyncManager::UpdateTrackerWithSpecifics(
-    const sync_pb::SessionSpecifics& specifics,
-    const base::Time& modification_time) {
-  std::string session_tag = specifics.session_tag();
-  SyncedSession* session = session_tracker_.GetSession(session_tag);
-  if (specifics.has_header()) {
-    // Read in the header data for this session. Header data is
-    // essentially a collection of windows, each of which has an ordered id list
-    // for their tabs.
-
-    if (!IsValidSessionHeader(specifics.header())) {
-      LOG(WARNING) << "Ignoring session node with invalid header "
-                   << "and tag " << session_tag << ".";
-      return;
-    }
-
-    // Load (or create) the SyncedSession object for this client.
-    const sync_pb::SessionHeader& header = specifics.header();
-
-    // Reset the tab/window tracking for this session (must do this before
-    // we start calling PutWindowInSession and PutTabInWindow so that all
-    // unused tabs/windows get cleared by the CleanupSession(...) call).
-    session_tracker_.ResetSessionTracking(session_tag);
-
-    PopulateSyncedSessionFromSpecifics(session_tag, header, modification_time,
-                                       session);
-
-    // Delete any closed windows and unused tabs as necessary.
-    session_tracker_.CleanupSession(session_tag);
-  } else if (specifics.has_tab()) {
-    const sync_pb::SessionTab& tab_s = specifics.tab();
-    SessionID::id_type tab_id = tab_s.tab_id();
-    DVLOG(1) << "Populating " << session_tag << "'s tab id " << tab_id
-             << " from node " << specifics.tab_node_id();
-
-    // Ensure the tracker is aware of the tab node id. Deleting foreign sessions
-    // requires deleting all relevant tab nodes, and it's easier to track the
-    // tab node ids themselves separately from the tab ids.
-    //
-    // Note that TabIDs are not stable across restarts of a client. Consider
-    // this example with two tabs:
-    //
-    // http://a.com  TabID1 --> NodeIDA
-    // http://b.com  TabID2 --> NodeIDB
-    //
-    // After restart, tab ids are reallocated. e.g, one possibility:
-    // http://a.com TabID2 --> NodeIDA
-    // http://b.com TabID1 --> NodeIDB
-    //
-    // If that happened on a remote client, here we will see an update to
-    // TabID1 with tab_node_id changing from NodeIDA to NodeIDB, and TabID2
-    // with tab_node_id changing from NodeIDB to NodeIDA.
-    //
-    // We can also wind up here if we created this tab as an out-of-order
-    // update to the header node for this session before actually associating
-    // the tab itself, so the tab node id wasn't available at the time and
-    // is currently kInvalidTabNodeID.
-    //
-    // In both cases, we can safely throw it into the set of node ids.
-    session_tracker_.OnTabNodeSeen(session_tag, specifics.tab_node_id());
-    sessions::SessionTab* tab = session_tracker_.GetTab(session_tag, tab_id);
-    if (!tab->timestamp.is_null() && tab->timestamp > modification_time) {
-      DVLOG(1) << "Ignoring " << session_tag << "'s session tab " << tab_id
-               << " with earlier modification time: " << tab->timestamp
-               << " vs " << modification_time;
-      return;
-    }
-
-    // Update SessionTab based on protobuf.
-    tab->SetFromSyncData(tab_s, modification_time);
-
-    // If a favicon or favicon urls are present, load the URLs and visit
-    // times into the in-memory favicon cache.
-    RefreshFaviconVisitTimesFromForeignTab(tab_s, modification_time);
-
-    // Update the last modified time.
-    if (session->modified_time < modification_time)
-      session->modified_time = modification_time;
-  } else {
-    LOG(WARNING) << "Ignoring session node with missing header/tab "
-                 << "fields and tag " << session_tag << ".";
-  }
-}
-
 void SessionsSyncManager::InitializeCurrentMachineTag(
     const std::string& cache_guid) {
   DCHECK(current_machine_tag_.empty());
@@ -999,66 +910,6 @@
   }
 }
 
-void SessionsSyncManager::PopulateSyncedSessionFromSpecifics(
-    const std::string& session_tag,
-    const sync_pb::SessionHeader& header_specifics,
-    base::Time mtime,
-    SyncedSession* synced_session) {
-  if (header_specifics.has_client_name())
-    synced_session->session_name = header_specifics.client_name();
-  if (header_specifics.has_device_type()) {
-    synced_session->device_type = header_specifics.device_type();
-  }
-  synced_session->modified_time =
-      std::max(mtime, synced_session->modified_time);
-
-  // Process all the windows and their tab information.
-  int num_windows = header_specifics.window_size();
-  DVLOG(1) << "Populating " << session_tag << " with " << num_windows
-           << " windows.";
-
-  for (int i = 0; i < num_windows; ++i) {
-    const sync_pb::SessionWindow& window_s = header_specifics.window(i);
-    SessionID::id_type window_id = window_s.window_id();
-    session_tracker_.PutWindowInSession(session_tag, window_id);
-    PopulateSyncedSessionWindowFromSpecifics(
-        session_tag, window_s, synced_session->modified_time,
-        synced_session->windows[window_id].get());
-  }
-}
-
-// static
-void SessionsSyncManager::PopulateSyncedSessionWindowFromSpecifics(
-    const std::string& session_tag,
-    const sync_pb::SessionWindow& specifics,
-    base::Time mtime,
-    SyncedSessionWindow* synced_session_window) {
-  sessions::SessionWindow* session_window =
-      &synced_session_window->wrapped_window;
-  if (specifics.has_window_id())
-    session_window->window_id.set_id(specifics.window_id());
-  if (specifics.has_selected_tab_index())
-    session_window->selected_tab_index = specifics.selected_tab_index();
-  synced_session_window->window_type = specifics.browser_type();
-  if (specifics.has_browser_type()) {
-    if (specifics.browser_type() ==
-        sync_pb::SessionWindow_BrowserType_TYPE_TABBED) {
-      session_window->type = sessions::SessionWindow::TYPE_TABBED;
-    } else {
-      // Note: custom tabs are treated like popup windows on restore, as you can
-      // restore a custom tab on a platform that doesn't support them.
-      session_window->type = sessions::SessionWindow::TYPE_POPUP;
-    }
-  }
-  session_window->timestamp = mtime;
-  session_window->tabs.clear();
-  for (int i = 0; i < specifics.tab_size(); i++) {
-    SessionID::id_type tab_id = specifics.tab(i);
-    session_tracker_.PutTabInWindow(session_tag, session_window->window_id.id(),
-                                    tab_id);
-  }
-}
-
 void SessionsSyncManager::RefreshFaviconVisitTimesFromForeignTab(
     const sync_pb::SessionTab& tab,
     const base::Time& modification_time) {
diff --git a/components/sync_sessions/sessions_sync_manager.h b/components/sync_sessions/sessions_sync_manager.h
index dbf4862..0eb019f 100644
--- a/components/sync_sessions/sessions_sync_manager.h
+++ b/components/sync_sessions/sessions_sync_manager.h
@@ -40,10 +40,8 @@
 }  // namespace syncer
 
 namespace sync_pb {
-class SessionHeader;
 class SessionSpecifics;
 class SessionTab;
-class SessionWindow;
 }  // namespace sync_pb
 
 namespace extensions {
@@ -107,9 +105,6 @@
  private:
   friend class extensions::ExtensionSessionsTest;
   friend class SessionsSyncManagerTest;
-  FRIEND_TEST_ALL_PREFIXES(SessionsSyncManagerTest, PopulateSyncedSession);
-  FRIEND_TEST_ALL_PREFIXES(SessionsSyncManagerTest, PopulateSessionWindow);
-  FRIEND_TEST_ALL_PREFIXES(SessionsSyncManagerTest, ValidTabs);
   FRIEND_TEST_ALL_PREFIXES(SessionsSyncManagerTest, SetSessionTabFromDelegate);
   FRIEND_TEST_ALL_PREFIXES(SessionsSyncManagerTest,
                            SetSessionTabFromDelegateNavigationIndex);
@@ -123,13 +118,10 @@
                            ProcessForeignDeleteTabsWithReusedNodeIds);
   FRIEND_TEST_ALL_PREFIXES(SessionsSyncManagerTest,
                            SaveUnassociatedNodesForReassociation);
-  FRIEND_TEST_ALL_PREFIXES(SessionsSyncManagerTest, MergeDeletesCorruptNode);
   FRIEND_TEST_ALL_PREFIXES(SessionsSyncManagerTest, MergeDeletesBadHash);
   FRIEND_TEST_ALL_PREFIXES(SessionsSyncManagerTest,
                            MergeLocalSessionExistingTabs);
   FRIEND_TEST_ALL_PREFIXES(SessionsSyncManagerTest,
-                           CheckPrerenderedWebContentsSwap);
-  FRIEND_TEST_ALL_PREFIXES(SessionsSyncManagerTest,
                            AssociateWindowsDontReloadTabs);
   FRIEND_TEST_ALL_PREFIXES(SessionsSyncManagerTest, SwappedOutOnRestore);
   FRIEND_TEST_ALL_PREFIXES(SessionsSyncManagerTest,
@@ -137,11 +129,6 @@
 
   void InitializeCurrentMachineTag(const std::string& cache_guid);
 
-  // Load and add window or tab data from synced specifics to our internal
-  // tracking.
-  void UpdateTrackerWithSpecifics(const sync_pb::SessionSpecifics& specifics,
-                                  const base::Time& modification_time);
-
   // Returns true if |sync_data| contained a header node for the current
   // machine, false otherwise. |new_changes| is a link to the SyncChange
   // pipeline that exists in the caller's context. This function will append
@@ -176,22 +163,6 @@
   // Same as above but it also notifies the processor.
   void DeleteForeignSessionFromUI(const std::string& tag);
 
-  // Used to populate a session header from the session specifics header
-  // provided.
-  void PopulateSyncedSessionFromSpecifics(
-      const std::string& session_tag,
-      const sync_pb::SessionHeader& header_specifics,
-      base::Time mtime,
-      SyncedSession* synced_session);
-
-  // Builds |synced_session_window| from the session specifics window
-  // provided and updates the SessionTracker with foreign session data created.
-  void PopulateSyncedSessionWindowFromSpecifics(
-      const std::string& session_tag,
-      const sync_pb::SessionWindow& specifics,
-      base::Time mtime,
-      SyncedSessionWindow* synced_session_window);
-
   // Resync local window information. Updates the local sessions header node
   // with the status of open windows and the order of tabs they contain. Should
   // only be called for changes that affect a window, not a change within a
@@ -258,10 +229,6 @@
   // See |local_tab_pool_out_of_sync_|.
   bool RebuildAssociations();
 
-  // Validates the content of a SessionHeader protobuf.
-  // Returns false if validation fails.
-  static bool IsValidSessionHeader(const sync_pb::SessionHeader& header);
-
   // Calculates the tag hash from a specifics object. Calculating the hash is
   // something we typically want to avoid doing in the model type like this.
   // However, the only place that understands how to generate a tag from the
diff --git a/components/sync_sessions/sessions_sync_manager_unittest.cc b/components/sync_sessions/sessions_sync_manager_unittest.cc
index 000408ef..9beae72 100644
--- a/components/sync_sessions/sessions_sync_manager_unittest.cc
+++ b/components/sync_sessions/sessions_sync_manager_unittest.cc
@@ -1399,10 +1399,11 @@
       helper()->BuildForeignSession(kTag1, tab_list1, &tabs));
 
   // Update associator with the session's meta node, window, and tabs.
-  manager()->UpdateTrackerWithSpecifics(meta, base::Time());
+  UpdateTrackerWithSpecifics(meta, base::Time(), &manager()->session_tracker_);
   for (std::vector<sync_pb::SessionSpecifics>::iterator iter = tabs.begin();
        iter != tabs.end(); ++iter) {
-    manager()->UpdateTrackerWithSpecifics(*iter, base::Time());
+    UpdateTrackerWithSpecifics(*iter, base::Time(),
+                               &manager()->session_tracker_);
   }
   ASSERT_TRUE(manager()->GetOpenTabsUIDelegate()->GetAllForeignSessions(
       &foreign_sessions));
diff --git a/components/sync_sessions/synced_session_tracker.cc b/components/sync_sessions/synced_session_tracker.cc
index c0bdbb5..6d9566e 100644
--- a/components/sync_sessions/synced_session_tracker.cc
+++ b/components/sync_sessions/synced_session_tracker.cc
@@ -4,12 +4,15 @@
 
 #include "components/sync_sessions/synced_session_tracker.h"
 
+#include <algorithm>
 #include <utility>
 
 #include "base/logging.h"
 #include "base/strings/utf_string_conversions.h"
+#include "components/sync/protocol/session_specifics.pb.h"
 #include "components/sync_sessions/sync_sessions_client.h"
 #include "components/sync_sessions/synced_tab_delegate.h"
+
 namespace sync_sessions {
 
 namespace {
@@ -42,6 +45,84 @@
   return false;
 }
 
+// Verify that tab IDs appear only once within a session. Intended to prevent
+// http://crbug.com/360822.
+bool IsValidSessionHeader(const sync_pb::SessionHeader& header) {
+  std::set<int> session_tab_ids;
+  for (int i = 0; i < header.window_size(); ++i) {
+    const sync_pb::SessionWindow& window = header.window(i);
+    for (int j = 0; j < window.tab_size(); ++j) {
+      const int tab_id = window.tab(j);
+      bool success = session_tab_ids.insert(tab_id).second;
+      if (!success)
+        return false;
+    }
+  }
+
+  return true;
+}
+
+void PopulateSyncedSessionWindowFromSpecifics(
+    const std::string& session_tag,
+    const sync_pb::SessionWindow& specifics,
+    base::Time mtime,
+    SyncedSessionWindow* synced_session_window,
+    SyncedSessionTracker* tracker) {
+  sessions::SessionWindow* session_window =
+      &synced_session_window->wrapped_window;
+  if (specifics.has_window_id())
+    session_window->window_id.set_id(specifics.window_id());
+  if (specifics.has_selected_tab_index())
+    session_window->selected_tab_index = specifics.selected_tab_index();
+  synced_session_window->window_type = specifics.browser_type();
+  if (specifics.has_browser_type()) {
+    if (specifics.browser_type() ==
+        sync_pb::SessionWindow_BrowserType_TYPE_TABBED) {
+      session_window->type = sessions::SessionWindow::TYPE_TABBED;
+    } else {
+      // Note: custom tabs are treated like popup windows on restore, as you can
+      // restore a custom tab on a platform that doesn't support them.
+      session_window->type = sessions::SessionWindow::TYPE_POPUP;
+    }
+  }
+  session_window->timestamp = mtime;
+  session_window->tabs.clear();
+  for (int i = 0; i < specifics.tab_size(); i++) {
+    SessionID::id_type tab_id = specifics.tab(i);
+    tracker->PutTabInWindow(session_tag, session_window->window_id.id(),
+                            tab_id);
+  }
+}
+
+void PopulateSyncedSessionFromSpecifics(
+    const std::string& session_tag,
+    const sync_pb::SessionHeader& header_specifics,
+    base::Time mtime,
+    SyncedSession* synced_session,
+    SyncedSessionTracker* tracker) {
+  if (header_specifics.has_client_name())
+    synced_session->session_name = header_specifics.client_name();
+  if (header_specifics.has_device_type()) {
+    synced_session->device_type = header_specifics.device_type();
+  }
+  synced_session->modified_time =
+      std::max(mtime, synced_session->modified_time);
+
+  // Process all the windows and their tab information.
+  int num_windows = header_specifics.window_size();
+  DVLOG(1) << "Populating " << session_tag << " with " << num_windows
+           << " windows.";
+
+  for (int i = 0; i < num_windows; ++i) {
+    const sync_pb::SessionWindow& window_s = header_specifics.window(i);
+    SessionID::id_type window_id = window_s.window_id();
+    tracker->PutWindowInSession(session_tag, window_id);
+    PopulateSyncedSessionWindowFromSpecifics(
+        session_tag, window_s, synced_session->modified_time,
+        synced_session->windows[window_id].get(), tracker);
+  }
+}
+
 }  // namespace
 
 SyncedSessionTracker::SyncedSessionTracker(SyncSessionsClient* sessions_client)
@@ -492,4 +573,84 @@
   local_session_tag_.clear();
 }
 
+void UpdateTrackerWithSpecifics(const sync_pb::SessionSpecifics& specifics,
+                                base::Time modification_time,
+                                SyncedSessionTracker* tracker) {
+  std::string session_tag = specifics.session_tag();
+  SyncedSession* session = tracker->GetSession(session_tag);
+  if (specifics.has_header()) {
+    // Read in the header data for this session. Header data is
+    // essentially a collection of windows, each of which has an ordered id list
+    // for their tabs.
+
+    if (!IsValidSessionHeader(specifics.header())) {
+      LOG(WARNING) << "Ignoring session node with invalid header "
+                   << "and tag " << session_tag << ".";
+      return;
+    }
+
+    // Load (or create) the SyncedSession object for this client.
+    const sync_pb::SessionHeader& header = specifics.header();
+
+    // Reset the tab/window tracking for this session (must do this before
+    // we start calling PutWindowInSession and PutTabInWindow so that all
+    // unused tabs/windows get cleared by the CleanupSession(...) call).
+    tracker->ResetSessionTracking(session_tag);
+
+    PopulateSyncedSessionFromSpecifics(session_tag, header, modification_time,
+                                       session, tracker);
+
+    // Delete any closed windows and unused tabs as necessary.
+    tracker->CleanupSession(session_tag);
+  } else if (specifics.has_tab()) {
+    const sync_pb::SessionTab& tab_s = specifics.tab();
+    SessionID::id_type tab_id = tab_s.tab_id();
+    DVLOG(1) << "Populating " << session_tag << "'s tab id " << tab_id
+             << " from node " << specifics.tab_node_id();
+
+    // Ensure the tracker is aware of the tab node id. Deleting foreign sessions
+    // requires deleting all relevant tab nodes, and it's easier to track the
+    // tab node ids themselves separately from the tab ids.
+    //
+    // Note that TabIDs are not stable across restarts of a client. Consider
+    // this example with two tabs:
+    //
+    // http://a.com  TabID1 --> NodeIDA
+    // http://b.com  TabID2 --> NodeIDB
+    //
+    // After restart, tab ids are reallocated. e.g, one possibility:
+    // http://a.com TabID2 --> NodeIDA
+    // http://b.com TabID1 --> NodeIDB
+    //
+    // If that happened on a remote client, here we will see an update to
+    // TabID1 with tab_node_id changing from NodeIDA to NodeIDB, and TabID2
+    // with tab_node_id changing from NodeIDB to NodeIDA.
+    //
+    // We can also wind up here if we created this tab as an out-of-order
+    // update to the header node for this session before actually associating
+    // the tab itself, so the tab node id wasn't available at the time and
+    // is currently kInvalidTabNodeID.
+    //
+    // In both cases, we can safely throw it into the set of node ids.
+    tracker->OnTabNodeSeen(session_tag, specifics.tab_node_id());
+    sessions::SessionTab* tab = tracker->GetTab(session_tag, tab_id);
+    if (!tab->timestamp.is_null() && tab->timestamp > modification_time) {
+      DVLOG(1) << "Ignoring " << session_tag << "'s session tab " << tab_id
+               << " with earlier modification time: " << tab->timestamp
+               << " vs " << modification_time;
+      return;
+    }
+
+    // Update SessionTab based on protobuf.
+    tab->SetFromSyncData(tab_s, modification_time);
+
+    // Update the last modified time.
+    if (session->modified_time < modification_time)
+      session->modified_time = modification_time;
+  } else {
+    LOG(WARNING) << "Ignoring session node with missing header/tab "
+                 << "fields and tag " << session_tag << ".";
+  }
+}
+
 }  // namespace sync_sessions
diff --git a/components/sync_sessions/synced_session_tracker.h b/components/sync_sessions/synced_session_tracker.h
index a8c9480f..8510dfb 100644
--- a/components/sync_sessions/synced_session_tracker.h
+++ b/components/sync_sessions/synced_session_tracker.h
@@ -19,6 +19,10 @@
 #include "components/sync_sessions/synced_session.h"
 #include "components/sync_sessions/tab_node_pool.h"
 
+namespace sync_pb {
+class SessionSpecifics;
+}
+
 namespace sync_sessions {
 
 class SyncSessionsClient;
@@ -255,6 +259,12 @@
   DISALLOW_COPY_AND_ASSIGN(SyncedSessionTracker);
 };
 
+// Helper function to load and add window or tab data from synced specifics to
+// our internal tracking in SyncedSessionTracker.
+void UpdateTrackerWithSpecifics(const sync_pb::SessionSpecifics& specifics,
+                                base::Time modification_time,
+                                SyncedSessionTracker* tracker);
+
 }  // namespace sync_sessions
 
 #endif  // COMPONENTS_SYNC_SESSIONS_SYNCED_SESSION_TRACKER_H_
diff --git a/components/task_scheduler_util/common/BUILD.gn b/components/task_scheduler_util/common/BUILD.gn
index 94bbb32..ee178bf8 100644
--- a/components/task_scheduler_util/common/BUILD.gn
+++ b/components/task_scheduler_util/common/BUILD.gn
@@ -10,7 +10,6 @@
 
   deps = [
     "//base",
-    "//components/variations",
   ]
 }
 
@@ -22,7 +21,7 @@
   deps = [
     ":common",
     "//base",
-    "//components/variations",
+    "//components/variations:test_support",
     "//testing/gtest",
   ]
 }
diff --git a/components/task_scheduler_util/common/DEPS b/components/task_scheduler_util/common/DEPS
index 80f6f90..be216e98a 100644
--- a/components/task_scheduler_util/common/DEPS
+++ b/components/task_scheduler_util/common/DEPS
@@ -1,3 +1,3 @@
 include_rules = [
-  "+components/variations",
+  "+components/variations/variations_params_manager.h",
 ]
diff --git a/components/task_scheduler_util/common/variations_util.cc b/components/task_scheduler_util/common/variations_util.cc
index a2fffae..21e86db 100644
--- a/components/task_scheduler_util/common/variations_util.cc
+++ b/components/task_scheduler_util/common/variations_util.cc
@@ -4,7 +4,8 @@
 
 #include "components/task_scheduler_util/common/variations_util.h"
 
-#include <memory>
+#include <map>
+#include <string>
 
 #include "base/logging.h"
 #include "base/metrics/field_trial_params.h"
@@ -14,7 +15,6 @@
 #include "base/strings/string_util.h"
 #include "base/task_scheduler/initialization_util.h"
 #include "base/time/time.h"
-#include "components/variations/variations_associated_data.h"
 
 namespace task_scheduler_util {
 
@@ -87,8 +87,11 @@
 }  // namespace
 
 std::unique_ptr<base::TaskScheduler::InitParams> GetTaskSchedulerInitParams(
-    base::StringPiece variation_param_prefix,
-    const std::map<std::string, std::string>& variation_params) {
+    base::StringPiece variation_param_prefix) {
+  std::map<std::string, std::string> variation_params;
+  if (!base::GetFieldTrialParams("BrowserScheduler", &variation_params))
+    return nullptr;
+
   const auto background_worker_pool_params = GetWorkerPoolParams(
       variation_param_prefix, "Background", variation_params);
   const auto background_blocking_worker_pool_params = GetWorkerPoolParams(
@@ -110,14 +113,6 @@
       *foreground_worker_pool_params, *foreground_blocking_worker_pool_params);
 }
 
-std::unique_ptr<base::TaskScheduler::InitParams> GetTaskSchedulerInitParams(
-    base::StringPiece variation_param_prefix) {
-  std::map<std::string, std::string> variation_params;
-  if (!base::GetFieldTrialParams("BrowserScheduler", &variation_params))
-    return nullptr;
-  return GetTaskSchedulerInitParams(variation_param_prefix, variation_params);
-}
-
 std::unique_ptr<base::TaskScheduler::InitParams>
 GetTaskSchedulerInitParamsForBrowser() {
   // Variations params for the browser processes have no prefix.
diff --git a/components/task_scheduler_util/common/variations_util.h b/components/task_scheduler_util/common/variations_util.h
index bd9c90b..991f23c 100644
--- a/components/task_scheduler_util/common/variations_util.h
+++ b/components/task_scheduler_util/common/variations_util.h
@@ -5,25 +5,13 @@
 #ifndef COMPONENTS_TASK_SCHEDULER_UTIL_COMMON_VARIATIONS_UTIL_H_
 #define COMPONENTS_TASK_SCHEDULER_UTIL_COMMON_VARIATIONS_UTIL_H_
 
-#include <map>
 #include <memory>
-#include <string>
 
 #include "base/strings/string_piece.h"
 #include "base/task_scheduler/task_scheduler.h"
 
 namespace task_scheduler_util {
 
-// Builds a TaskScheduler::InitParams from pool descriptors in
-// |variations_params| that are prefixed with |variation_param_prefix|. Returns
-// nullptr on failure.
-//
-// TODO(fdoray): Migrate callers to the overload below and remove this.
-// https://crbug.com/810049
-std::unique_ptr<base::TaskScheduler::InitParams> GetTaskSchedulerInitParams(
-    base::StringPiece variation_param_prefix,
-    const std::map<std::string, std::string>& variation_params);
-
 // Builds a TaskScheduler::InitParams from variations params that are prefixed
 // with |variation_param_prefix| in the BrowserScheduler field trial. Returns
 // nullptr on failure.
diff --git a/components/task_scheduler_util/common/variations_util_unittest.cc b/components/task_scheduler_util/common/variations_util_unittest.cc
index 89e375b..57b50a4 100644
--- a/components/task_scheduler_util/common/variations_util_unittest.cc
+++ b/components/task_scheduler_util/common/variations_util_unittest.cc
@@ -11,7 +11,7 @@
 #include "base/metrics/field_trial.h"
 #include "base/task_scheduler/scheduler_worker_params.h"
 #include "base/task_scheduler/scheduler_worker_pool_params.h"
-#include "components/variations/variations_associated_data.h"
+#include "components/variations/variations_params_manager.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 namespace task_scheduler_util {
@@ -19,17 +19,17 @@
 namespace {
 
 class TaskSchedulerUtilVariationsUtilTest : public testing::Test {
- public:
-  TaskSchedulerUtilVariationsUtilTest() : field_trial_list_(nullptr) {}
-  ~TaskSchedulerUtilVariationsUtilTest() override {
-    // Ensure that the maps are cleared between tests, since they are stored as
-    // process singletons.
-    variations::testing::ClearAllVariationIDs();
-    variations::testing::ClearAllVariationParams();
+ protected:
+  TaskSchedulerUtilVariationsUtilTest() = default;
+
+  void SetVariationParams(
+      const std::map<std::string, std::string>& variation_params) {
+    variation_params_manager_.SetVariationParams("BrowserScheduler",
+                                                 variation_params);
   }
 
  private:
-  base::FieldTrialList field_trial_list_;
+  variations::testing::VariationParamsManager variation_params_manager_;
 
   DISALLOW_COPY_AND_ASSIGN(TaskSchedulerUtilVariationsUtilTest);
 };
@@ -42,8 +42,9 @@
   variation_params["RendererBackgroundBlocking"] = "2;2;1;0;52";
   variation_params["RendererForeground"] = "4;4;1;0;62";
   variation_params["RendererForegroundBlocking"] = "8;8;1;0;72";
+  SetVariationParams(variation_params);
 
-  auto init_params = GetTaskSchedulerInitParams("Renderer", variation_params);
+  auto init_params = GetTaskSchedulerInitParams("Renderer");
   ASSERT_TRUE(init_params);
 
   EXPECT_EQ(1, init_params->background_worker_pool_params.max_threads());
@@ -82,8 +83,7 @@
 }
 
 TEST_F(TaskSchedulerUtilVariationsUtilTest, NoData) {
-  EXPECT_FALSE(GetTaskSchedulerInitParams(
-      "Renderer", std::map<std::string, std::string>()));
+  EXPECT_FALSE(GetTaskSchedulerInitParams("Renderer"));
 }
 
 TEST_F(TaskSchedulerUtilVariationsUtilTest, IncompleteParameters) {
@@ -92,7 +92,8 @@
   variation_params["RendererBackgroundBlocking"] = "2;2;1;0";
   variation_params["RendererForeground"] = "4;4;1;0";
   variation_params["RendererForegroundBlocking"] = "8;8;1;0";
-  EXPECT_FALSE(GetTaskSchedulerInitParams("Renderer", variation_params));
+  SetVariationParams(variation_params);
+  EXPECT_FALSE(GetTaskSchedulerInitParams("Renderer"));
 }
 
 TEST_F(TaskSchedulerUtilVariationsUtilTest, InvalidParametersFormat) {
@@ -101,7 +102,8 @@
   variation_params["RendererBackgroundBlocking"] = "a;b;c;d;e";
   variation_params["RendererForeground"] = "a;b;c;d;e";
   variation_params["RendererForegroundBlocking"] = "a;b;c;d;e";
-  EXPECT_FALSE(GetTaskSchedulerInitParams("Renderer", variation_params));
+  SetVariationParams(variation_params);
+  EXPECT_FALSE(GetTaskSchedulerInitParams("Renderer"));
 }
 
 TEST_F(TaskSchedulerUtilVariationsUtilTest, ZeroMaxThreads) {
@@ -112,7 +114,8 @@
   variation_params["RendererBackgroundBlocking"] = "2;2;1;0;52";
   variation_params["RendererForeground"] = "4;4;1;0;62";
   variation_params["RendererForegroundBlocking"] = "8;8;1;0;72";
-  EXPECT_FALSE(GetTaskSchedulerInitParams("Renderer", variation_params));
+  SetVariationParams(variation_params);
+  EXPECT_FALSE(GetTaskSchedulerInitParams("Renderer"));
 }
 
 TEST_F(TaskSchedulerUtilVariationsUtilTest, NegativeMaxThreads) {
@@ -123,7 +126,8 @@
   variation_params["RendererBackgroundBlocking"] = "2;2;1;0;52";
   variation_params["RendererForeground"] = "4;4;1;0;62";
   variation_params["RendererForegroundBlocking"] = "8;8;1;0;72";
-  EXPECT_FALSE(GetTaskSchedulerInitParams("Renderer", variation_params));
+  SetVariationParams(variation_params);
+  EXPECT_FALSE(GetTaskSchedulerInitParams("Renderer"));
 }
 
 TEST_F(TaskSchedulerUtilVariationsUtilTest, NegativeSuggestedReclaimTime) {
@@ -134,7 +138,8 @@
   variation_params["RendererBackgroundBlocking"] = "2;2;1;0;52";
   variation_params["RendererForeground"] = "4;4;1;0;62";
   variation_params["RendererForegroundBlocking"] = "8;8;1;0;72";
-  EXPECT_FALSE(GetTaskSchedulerInitParams("Renderer", variation_params));
+  SetVariationParams(variation_params);
+  EXPECT_FALSE(GetTaskSchedulerInitParams("Renderer"));
 }
 
 }  // namespace task_scheduler_util
diff --git a/components/translate/content/common/translate.mojom b/components/translate/content/common/translate.mojom
index 77effd6c..0cfb34a 100644
--- a/components/translate/content/common/translate.mojom
+++ b/components/translate/content/common/translate.mojom
@@ -5,6 +5,7 @@
 module translate.mojom;
 
 import "mojo/common/time.mojom";
+import "mojo/public/mojom/base/string16.mojom";
 import "url/mojom/url.mojom";
 
 enum TranslateError {
@@ -31,7 +32,7 @@
   bool has_notranslate;
   string html_root_language;
   string adopted_language;
-  string contents;
+  mojo_base.mojom.String16 contents;
 };
 
 interface Page {
diff --git a/components/translate/content/common/translate_struct_traits.cc b/components/translate/content/common/translate_struct_traits.cc
index 64325c1..49a877a 100644
--- a/components/translate/content/common/translate_struct_traits.cc
+++ b/components/translate/content/common/translate_struct_traits.cc
@@ -5,6 +5,7 @@
 #include "components/translate/content/common/translate_struct_traits.h"
 
 #include "mojo/common/time_struct_traits.h"
+#include "mojo/public/cpp/base/string16_mojom_traits.h"
 #include "url/mojom/url_gurl_mojom_traits.h"
 
 namespace mojo {
diff --git a/components/ukm/debug/ukm_debug_data_extractor.cc b/components/ukm/debug/ukm_debug_data_extractor.cc
index e54e7a3..5377eee 100644
--- a/components/ukm/debug/ukm_debug_data_extractor.cc
+++ b/components/ukm/debug/ukm_debug_data_extractor.cc
@@ -53,7 +53,8 @@
         // 'id' attribute set so tests can extract this element.
         base::StringPrintf("<p>IsEnabled:<span id='state'>%s</span></p>",
                            ukm_service->recording_enabled_ ? "True" : "False"));
-    output.append(base::StringPrintf("<p>ClientId:%" PRIu64 "</p>",
+    output.append(base::StringPrintf("<p>ClientId:<span id='clientid'>%" PRIu64
+                                     "</span></p>",
                                      ukm_service->client_id_));
     output.append(
         base::StringPrintf("<p>SessionId:%d</p>", ukm_service->session_id_));
diff --git a/components/variations/BUILD.gn b/components/variations/BUILD.gn
index ce848d82..910abf9 100644
--- a/components/variations/BUILD.gn
+++ b/components/variations/BUILD.gn
@@ -153,6 +153,7 @@
     "//base/test:test_support",
     "//components/prefs:test_support",
     "//components/variations/field_trial_config:field_trial_config",
+    "//testing/gmock",
     "//testing/gtest",
     "//third_party/zlib/google:compression_utils",
   ]
diff --git a/components/variations/processed_study.cc b/components/variations/processed_study.cc
index 49315438..8af4c593 100644
--- a/components/variations/processed_study.cc
+++ b/components/variations/processed_study.cc
@@ -20,7 +20,7 @@
     const Study& study,
     base::FieldTrial::Probability* total_probability,
     bool* all_assignments_to_one_group,
-    std::string* single_feature_name) {
+    std::vector<std::string>* associated_features) {
   if (study.filter().has_min_version() &&
       !base::Version::IsValidWildcardString(study.filter().min_version())) {
     DVLOG(1) << study.name() << " has invalid min version: "
@@ -97,10 +97,19 @@
     return false;
   }
 
-  if (!has_multiple_features && !single_feature_name_seen.empty())
-    single_feature_name->swap(single_feature_name_seen);
-  else
-    single_feature_name->clear();
+  // Check if this study enables/disables a single feature and uses explicit
+  // activation (i.e. the trial should be activated when queried). If so, ensure
+  // that groups that don't explicitly enable/disable that feature are still
+  // associated with it (i.e. so "Default" group gets reported).
+  //
+  // Note: This checks for ACTIVATION_EXPLICIT, since there is no reason to
+  // have this association with ACTIVATION_AUTO (where the trial starts active),
+  // as well as allowing flexibility to disable this behavior in the future from
+  // the server by introducing a new activation type.
+  if (!has_multiple_features && !single_feature_name_seen.empty() &&
+      study.activation_type() == Study_ActivationType_ACTIVATION_EXPLICIT) {
+    associated_features->push_back(single_feature_name_seen);
+  }
 
   *total_probability = divisor;
   *all_assignments_to_one_group = !multiple_assigned_groups;
@@ -114,11 +123,9 @@
 const char ProcessedStudy::kGenericDefaultExperimentName[] =
     "VariationsDefaultExperiment";
 
-ProcessedStudy::ProcessedStudy()
-    : study_(nullptr),
-      total_probability_(0),
-      all_assignments_to_one_group_(false),
-      is_expired_(false) {}
+ProcessedStudy::ProcessedStudy() {}
+
+ProcessedStudy::ProcessedStudy(const ProcessedStudy& other) = default;
 
 ProcessedStudy::~ProcessedStudy() {
 }
@@ -126,10 +133,10 @@
 bool ProcessedStudy::Init(const Study* study, bool is_expired) {
   base::FieldTrial::Probability total_probability = 0;
   bool all_assignments_to_one_group = false;
-  std::string single_feature_name;
+  std::vector<std::string> associated_features;
   if (!ValidateStudyAndComputeTotalProbability(*study, &total_probability,
                                                &all_assignments_to_one_group,
-                                               &single_feature_name)) {
+                                               &associated_features)) {
     return false;
   }
 
@@ -137,7 +144,7 @@
   is_expired_ = is_expired;
   total_probability_ = total_probability;
   all_assignments_to_one_group_ = all_assignments_to_one_group;
-  single_feature_name_.swap(single_feature_name);
+  associated_features_.swap(associated_features);
   return true;
 }
 
diff --git a/components/variations/processed_study.h b/components/variations/processed_study.h
index e7807f5c..504b5f4 100644
--- a/components/variations/processed_study.h
+++ b/components/variations/processed_study.h
@@ -23,6 +23,7 @@
   static const char kGenericDefaultExperimentName[];
 
   ProcessedStudy();
+  ProcessedStudy(const ProcessedStudy& other);
   ~ProcessedStudy();
 
   bool Init(const Study* study, bool is_expired);
@@ -39,8 +40,8 @@
 
   bool is_expired() const { return is_expired_; }
 
-  const std::string& single_feature_name() const {
-    return single_feature_name_;
+  const std::vector<std::string>& associated_features() const {
+    return associated_features_;
   }
 
   // Gets the index of the experiment with the given |name|. Returns -1 if no
@@ -58,20 +59,22 @@
 
  private:
   // Corresponding Study object. Weak reference.
-  const Study* study_;
+  const Study* study_ = nullptr;
 
   // Computed total group probability for the study.
-  base::FieldTrial::Probability total_probability_;
+  base::FieldTrial::Probability total_probability_ = 0;
 
   // Whether all assignments are to a single group.
-  bool all_assignments_to_one_group_;
+  bool all_assignments_to_one_group_ = false;
 
   // Whether the study is expired.
-  bool is_expired_;
+  bool is_expired_ = false;
 
-  // If the study has groups that enable/disable a single feature, the name of
-  // that feature.
-  std::string single_feature_name_;
+  // A list of feature names associated with this study by default. Studies
+  // might have groups that do not specify any feature associations – this is
+  // often the case for a default group, for example. The features listed here
+  // will be associated with all such groups.
+  std::vector<std::string> associated_features_;
 };
 
 }  // namespace variations
diff --git a/components/variations/variations_seed_processor.cc b/components/variations/variations_seed_processor.cc
index 947bf53..7fff151 100644
--- a/components/variations/variations_seed_processor.cc
+++ b/components/variations/variations_seed_processor.cc
@@ -125,21 +125,13 @@
         base::FeatureList::OVERRIDE_DISABLE_FEATURE, trial);
   }
 
-  // Check if this study enables/disables a single feature and uses explicit
-  // activation (i.e. the trial should be activated when queried). If so, ensure
-  // that groups that don't explicitly enable/disable that feature are still
-  // associated with it (i.e. so "Default" group gets reported).
-  //
-  // Note: This checks for ACTIVATION_EXPLICIT, since there is no reason to
-  // have this association with ACTIVATION_AUTO (where the trial starts active),
-  // as well as allowing flexibility to disable this behavior in the future from
-  // the server by introducing a new activation type.
-  if (!processed_study.single_feature_name().empty() &&
-      study.activation_type() == Study_ActivationType_ACTIVATION_EXPLICIT &&
-      !experiment.has_feature_association()) {
-    feature_list->RegisterFieldTrialOverride(
-        processed_study.single_feature_name(),
-        base::FeatureList::OVERRIDE_USE_DEFAULT, trial);
+  // Associate features for groups that do not specify them manually (e.g.
+  // "Default" group), so that such groups are reported.
+  if (!experiment.has_feature_association()) {
+    for (const auto& feature_name : processed_study.associated_features()) {
+      feature_list->RegisterFieldTrialOverride(
+          feature_name, base::FeatureList::OVERRIDE_USE_DEFAULT, trial);
+    }
   }
 }
 
diff --git a/components/variations/variations_seed_processor_unittest.cc b/components/variations/variations_seed_processor_unittest.cc
index 7979379..b1c4d25 100644
--- a/components/variations/variations_seed_processor_unittest.cc
+++ b/components/variations/variations_seed_processor_unittest.cc
@@ -26,8 +26,12 @@
 #include "components/variations/processed_study.h"
 #include "components/variations/study_filtering.h"
 #include "components/variations/variations_associated_data.h"
+#include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
+using testing::ElementsAre;
+using testing::IsEmpty;
+
 namespace variations {
 namespace {
 
@@ -412,35 +416,37 @@
   EXPECT_TRUE(processed_study.Init(&study, false));
   EXPECT_EQ(400, processed_study.total_probability());
 
-  EXPECT_EQ(std::string(), processed_study.single_feature_name());
+  EXPECT_THAT(processed_study.associated_features(), IsEmpty());
 
   const char kFeature1Name[] = "Feature1";
   const char kFeature2Name[] = "Feature2";
 
   exp1->mutable_feature_association()->add_enable_feature(kFeature1Name);
   EXPECT_TRUE(processed_study.Init(&study, false));
-  EXPECT_EQ(kFeature1Name, processed_study.single_feature_name());
+  EXPECT_THAT(processed_study.associated_features(),
+              ElementsAre(kFeature1Name));
 
   exp1->clear_feature_association();
   exp1->mutable_feature_association()->add_enable_feature(kFeature1Name);
   exp1->mutable_feature_association()->add_enable_feature(kFeature2Name);
   EXPECT_TRUE(processed_study.Init(&study, false));
-  // Since there's multiple different features, |single_feature_name| should be
+  // Since there's multiple different features, |associated_features| should be
   // unset.
-  EXPECT_EQ(std::string(), processed_study.single_feature_name());
+  EXPECT_THAT(processed_study.associated_features(), IsEmpty());
 
   exp1->clear_feature_association();
   exp1->mutable_feature_association()->add_enable_feature(kFeature1Name);
   exp2->mutable_feature_association()->add_enable_feature(kFeature1Name);
   exp3->mutable_feature_association()->add_disable_feature(kFeature1Name);
   EXPECT_TRUE(processed_study.Init(&study, false));
-  EXPECT_EQ(kFeature1Name, processed_study.single_feature_name());
+  EXPECT_THAT(processed_study.associated_features(),
+              ElementsAre(kFeature1Name));
 
-  // Setting a different feature name on exp2 should cause |single_feature_name|
+  // Setting a different feature name on exp2 should cause |associated_features|
   // to be not set.
   exp2->mutable_feature_association()->set_enable_feature(0, kFeature2Name);
   EXPECT_TRUE(processed_study.Init(&study, false));
-  EXPECT_EQ(std::string(), processed_study.single_feature_name());
+  EXPECT_THAT(processed_study.associated_features(), IsEmpty());
 }
 
 TEST_F(VariationsSeedProcessorTest, ProcessedStudyAllAssignmentsToOneGroup) {
diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
index a42de17..f01c64c 100644
--- a/content/browser/BUILD.gn
+++ b/content/browser/BUILD.gn
@@ -1513,6 +1513,8 @@
     "service_worker/service_worker_handle.h",
     "service_worker/service_worker_info.cc",
     "service_worker/service_worker_info.h",
+    "service_worker/service_worker_installed_script_loader.cc",
+    "service_worker/service_worker_installed_script_loader.h",
     "service_worker/service_worker_installed_script_reader.cc",
     "service_worker/service_worker_installed_script_reader.h",
     "service_worker/service_worker_installed_scripts_sender.cc",
@@ -1529,6 +1531,10 @@
     "service_worker/service_worker_navigation_handle.h",
     "service_worker/service_worker_navigation_handle_core.cc",
     "service_worker/service_worker_navigation_handle_core.h",
+    "service_worker/service_worker_navigation_loader.cc",
+    "service_worker/service_worker_navigation_loader.h",
+    "service_worker/service_worker_new_script_loader.cc",
+    "service_worker/service_worker_new_script_loader.h",
     "service_worker/service_worker_process_manager.cc",
     "service_worker/service_worker_process_manager.h",
     "service_worker/service_worker_provider_host.cc",
@@ -1552,10 +1558,8 @@
     "service_worker/service_worker_response_info.h",
     "service_worker/service_worker_script_cache_map.cc",
     "service_worker/service_worker_script_cache_map.h",
-    "service_worker/service_worker_script_url_loader.cc",
-    "service_worker/service_worker_script_url_loader.h",
-    "service_worker/service_worker_script_url_loader_factory.cc",
-    "service_worker/service_worker_script_url_loader_factory.h",
+    "service_worker/service_worker_script_loader_factory.cc",
+    "service_worker/service_worker_script_loader_factory.h",
     "service_worker/service_worker_storage.cc",
     "service_worker/service_worker_storage.h",
     "service_worker/service_worker_type_converters.cc",
@@ -1564,8 +1568,6 @@
     "service_worker/service_worker_unregister_job.h",
     "service_worker/service_worker_url_job_wrapper.cc",
     "service_worker/service_worker_url_job_wrapper.h",
-    "service_worker/service_worker_url_loader_job.cc",
-    "service_worker/service_worker_url_loader_job.h",
     "service_worker/service_worker_url_request_job.cc",
     "service_worker/service_worker_url_request_job.h",
     "service_worker/service_worker_version.cc",
diff --git a/content/browser/accessibility/dump_accessibility_tree_browsertest.cc b/content/browser/accessibility/dump_accessibility_tree_browsertest.cc
index 409b447..4f79d5f 100644
--- a/content/browser/accessibility/dump_accessibility_tree_browsertest.cc
+++ b/content/browser/accessibility/dump_accessibility_tree_browsertest.cc
@@ -1409,10 +1409,7 @@
   RunHtmlTest(FILE_PATH_LITERAL("input-time.html"));
 }
 
-// crbug.com/98976 will cause new elements to be added to the Blink a11y tree
-// Re-baseline after the Blink change goes in
-IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
-                       DISABLED_AccessibilityInputTypes) {
+IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityInputTypes) {
   RunHtmlTest(FILE_PATH_LITERAL("input-types.html"));
 }
 
diff --git a/content/browser/android/content_view_core.cc b/content/browser/android/content_view_core.cc
index bcc62a4..98295d26 100644
--- a/content/browser/android/content_view_core.cc
+++ b/content/browser/android/content_view_core.cc
@@ -708,11 +708,6 @@
   Java_ContentViewCoreImpl_onTouchDown(env, obj, event);
 }
 
-void ContentViewCore::WasResized(JNIEnv* env,
-                                 const JavaParamRef<jobject>& obj) {
-  SendScreenRectsAndResizeWidget();
-}
-
 void ContentViewCore::SetTextTrackSettings(
     JNIEnv* env,
     const JavaParamRef<jobject>& obj,
@@ -742,15 +737,6 @@
   web_contents_->GetMainFrame()->SetTextTrackSettings(params);
 }
 
-bool ContentViewCore::IsFullscreenRequiredForOrientationLock() const {
-  JNIEnv* env = AttachCurrentThread();
-  ScopedJavaLocalRef<jobject> obj = java_ref_.get(env);
-  if (obj.is_null())
-    return true;
-  return Java_ContentViewCoreImpl_isFullscreenRequiredForOrientationLock(env,
-                                                                         obj);
-}
-
 void ContentViewCore::SendOrientationChangeEventInternal() {
   RenderWidgetHostViewAndroid* rwhv = GetRenderWidgetHostViewAndroid();
   if (rwhv)
@@ -765,17 +751,6 @@
   return content::GetContentClient()->UsingSynchronousCompositing();
 }
 
-void ContentViewCore::SetBackgroundOpaque(JNIEnv* env,
-                                          const JavaParamRef<jobject>& jobj,
-                                          jboolean opaque) {
-  if (GetRenderWidgetHostViewAndroid()) {
-    if (opaque)
-      GetRenderWidgetHostViewAndroid()->SetBackgroundColorToDefault();
-    else
-      GetRenderWidgetHostViewAndroid()->SetBackgroundColor(SK_ColorTRANSPARENT);
-  }
-}
-
 void ContentViewCore::HidePopupsAndPreserveSelection() {
   JNIEnv* env = AttachCurrentThread();
   ScopedJavaLocalRef<jobject> obj = java_ref_.get(env);
diff --git a/content/browser/android/content_view_core.h b/content/browser/android/content_view_core.h
index 811cf0dc..37ae62fc 100644
--- a/content/browser/android/content_view_core.h
+++ b/content/browser/android/content_view_core.h
@@ -144,7 +144,6 @@
                    jfloat dipScale);
 
   jint GetBackgroundColor(JNIEnv* env, jobject obj);
-  void WasResized(JNIEnv* env, const base::android::JavaParamRef<jobject>& obj);
 
   void SetTextTrackSettings(
       JNIEnv* env,
@@ -205,8 +204,6 @@
   // the Activity context.
   base::android::ScopedJavaLocalRef<jobject> GetContext() const;
 
-  bool IsFullscreenRequiredForOrientationLock() const;
-
   // --------------------------------------------------------------------------
   // Methods called from native code
   // --------------------------------------------------------------------------
diff --git a/content/browser/appcache/appcache_quota_client.cc b/content/browser/appcache/appcache_quota_client.cc
index 80011b68..5c05e97 100644
--- a/content/browser/appcache/appcache_quota_client.cc
+++ b/content/browser/appcache/appcache_quota_client.cc
@@ -11,7 +11,7 @@
 #include "base/bind.h"
 #include "base/bind_helpers.h"
 #include "content/browser/appcache/appcache_service_impl.h"
-#include "third_party/WebKit/common/quota/quota_types.mojom.h"
+#include "third_party/WebKit/public/mojom/quota/quota_types.mojom.h"
 
 using blink::mojom::StorageType;
 using storage::QuotaClient;
diff --git a/content/browser/appcache/appcache_quota_client.h b/content/browser/appcache/appcache_quota_client.h
index 3086594..095c142f 100644
--- a/content/browser/appcache/appcache_quota_client.h
+++ b/content/browser/appcache/appcache_quota_client.h
@@ -17,7 +17,7 @@
 #include "net/base/completion_callback.h"
 #include "storage/browser/quota/quota_client.h"
 #include "storage/browser/quota/quota_task.h"
-#include "third_party/WebKit/common/quota/quota_types.mojom.h"
+#include "third_party/WebKit/public/mojom/quota/quota_types.mojom.h"
 #include "url/origin.h"
 
 namespace content {
diff --git a/content/browser/appcache/appcache_storage.cc b/content/browser/appcache/appcache_storage.cc
index aa0ac09c..30a61a02 100644
--- a/content/browser/appcache/appcache_storage.cc
+++ b/content/browser/appcache/appcache_storage.cc
@@ -11,7 +11,7 @@
 #include "content/browser/appcache/appcache_service_impl.h"
 #include "storage/browser/quota/quota_client.h"
 #include "storage/browser/quota/quota_manager_proxy.h"
-#include "third_party/WebKit/common/quota/quota_types.mojom.h"
+#include "third_party/WebKit/public/mojom/quota/quota_types.mojom.h"
 
 namespace content {
 
diff --git a/content/browser/appcache/appcache_storage_impl.cc b/content/browser/appcache/appcache_storage_impl.cc
index e205751..407c1a2d 100644
--- a/content/browser/appcache/appcache_storage_impl.cc
+++ b/content/browser/appcache/appcache_storage_impl.cc
@@ -37,7 +37,7 @@
 #include "storage/browser/quota/quota_client.h"
 #include "storage/browser/quota/quota_manager.h"
 #include "storage/browser/quota/quota_manager_proxy.h"
-#include "third_party/WebKit/common/quota/quota_types.mojom.h"
+#include "third_party/WebKit/public/mojom/quota/quota_types.mojom.h"
 
 namespace content {
 
diff --git a/content/browser/browser_plugin/browser_plugin_guest.h b/content/browser/browser_plugin/browser_plugin_guest.h
index 583605d..cd64f60b5 100644
--- a/content/browser/browser_plugin/browser_plugin_guest.h
+++ b/content/browser/browser_plugin/browser_plugin_guest.h
@@ -33,7 +33,6 @@
 #include "content/common/edit_command.h"
 #include "content/public/browser/browser_plugin_guest_delegate.h"
 #include "content/public/browser/guest_host.h"
-#include "content/public/browser/readback_types.h"
 #include "content/public/browser/web_contents_observer.h"
 #include "content/public/common/input_event_ack_state.h"
 #include "content/public/common/screen_info.h"
diff --git a/content/browser/cache_storage/cache_storage.cc b/content/browser/cache_storage/cache_storage.cc
index 0c813f97..ce6a21b 100644
--- a/content/browser/cache_storage/cache_storage.cc
+++ b/content/browser/cache_storage/cache_storage.cc
@@ -40,7 +40,7 @@
 #include "net/url_request/url_request_context_getter.h"
 #include "storage/browser/blob/blob_storage_context.h"
 #include "storage/browser/quota/quota_manager_proxy.h"
-#include "third_party/WebKit/common/quota/quota_types.mojom.h"
+#include "third_party/WebKit/public/mojom/quota/quota_types.mojom.h"
 
 using base::LazyInstance;
 using blink::mojom::CacheStorageError;
diff --git a/content/browser/cache_storage/cache_storage_cache.cc b/content/browser/cache_storage/cache_storage_cache.cc
index edaa5f8..321039f 100644
--- a/content/browser/cache_storage/cache_storage_cache.cc
+++ b/content/browser/cache_storage/cache_storage_cache.cc
@@ -47,7 +47,7 @@
 #include "storage/browser/quota/quota_manager_proxy.h"
 #include "storage/common/blob_storage/blob_handle.h"
 #include "storage/common/storage_histograms.h"
-#include "third_party/WebKit/common/quota/quota_types.mojom.h"
+#include "third_party/WebKit/public/mojom/quota/quota_types.mojom.h"
 
 using blink::mojom::CacheStorageError;
 
diff --git a/content/browser/cache_storage/cache_storage_cache.h b/content/browser/cache_storage/cache_storage_cache.h
index a96b101..a64b9c3 100644
--- a/content/browser/cache_storage/cache_storage_cache.h
+++ b/content/browser/cache_storage/cache_storage_cache.h
@@ -21,7 +21,7 @@
 #include "content/common/service_worker/service_worker_types.h"
 #include "net/base/io_buffer.h"
 #include "net/disk_cache/disk_cache.h"
-#include "third_party/WebKit/common/quota/quota_types.mojom.h"
+#include "third_party/WebKit/public/mojom/quota/quota_types.mojom.h"
 #include "third_party/WebKit/public/platform/modules/cache_storage/cache_storage.mojom.h"
 #include "url/origin.h"
 
diff --git a/content/browser/cache_storage/cache_storage_manager.cc b/content/browser/cache_storage/cache_storage_manager.cc
index 7575a3d..7b21aa82 100644
--- a/content/browser/cache_storage/cache_storage_manager.cc
+++ b/content/browser/cache_storage/cache_storage_manager.cc
@@ -31,7 +31,7 @@
 #include "net/base/url_util.h"
 #include "storage/browser/quota/quota_manager_proxy.h"
 #include "storage/common/database/database_identifier.h"
-#include "third_party/WebKit/common/quota/quota_types.mojom.h"
+#include "third_party/WebKit/public/mojom/quota/quota_types.mojom.h"
 #include "url/gurl.h"
 #include "url/origin.h"
 
diff --git a/content/browser/cache_storage/cache_storage_quota_client.cc b/content/browser/cache_storage/cache_storage_quota_client.cc
index fa63fa0..1217fc5 100644
--- a/content/browser/cache_storage/cache_storage_quota_client.cc
+++ b/content/browser/cache_storage/cache_storage_quota_client.cc
@@ -6,7 +6,7 @@
 
 #include "content/browser/cache_storage/cache_storage_manager.h"
 #include "content/public/browser/browser_thread.h"
-#include "third_party/WebKit/common/quota/quota_types.mojom.h"
+#include "third_party/WebKit/public/mojom/quota/quota_types.mojom.h"
 #include "url/origin.h"
 
 namespace content {
diff --git a/content/browser/cache_storage/cache_storage_quota_client.h b/content/browser/cache_storage/cache_storage_quota_client.h
index fcc1903..1089395 100644
--- a/content/browser/cache_storage/cache_storage_quota_client.h
+++ b/content/browser/cache_storage/cache_storage_quota_client.h
@@ -9,7 +9,7 @@
 #include "base/memory/weak_ptr.h"
 #include "content/common/content_export.h"
 #include "storage/browser/quota/quota_client.h"
-#include "third_party/WebKit/common/quota/quota_types.mojom.h"
+#include "third_party/WebKit/public/mojom/quota/quota_types.mojom.h"
 #include "url/origin.h"
 
 namespace content {
diff --git a/content/browser/compositor/surface_utils.cc b/content/browser/compositor/surface_utils.cc
index 761460f..a1cf48ef 100644
--- a/content/browser/compositor/surface_utils.cc
+++ b/content/browser/compositor/surface_utils.cc
@@ -4,21 +4,9 @@
 
 #include "content/browser/compositor/surface_utils.h"
 
-#include "base/bind.h"
-#include "base/callback_helpers.h"
 #include "build/build_config.h"
-#include "components/viz/common/frame_sinks/copy_output_result.h"
-#include "components/viz/common/gl_helper.h"
-#include "components/viz/common/resources/single_release_callback.h"
 #include "components/viz/host/host_frame_sink_manager.h"
 #include "components/viz/service/frame_sinks/frame_sink_manager_impl.h"
-#include "content/browser/browser_main_loop.h"
-#include "skia/ext/image_operations.h"
-#include "third_party/skia/include/core/SkCanvas.h"
-#include "third_party/skia/include/core/SkColorFilter.h"
-#include "third_party/skia/include/core/SkPaint.h"
-#include "third_party/skia/include/effects/SkLumaColorFilter.h"
-#include "ui/gfx/geometry/rect.h"
 
 #if defined(OS_ANDROID)
 #include "content/browser/renderer_host/compositor_impl_android.h"
@@ -27,140 +15,6 @@
 #include "ui/compositor/compositor.h"  // nogncheck
 #endif
 
-namespace {
-
-#if !defined(OS_ANDROID) || defined(USE_AURA)
-void CopyFromCompositingSurfaceFinished(
-    const content::ReadbackRequestCallback& callback,
-    std::unique_ptr<viz::SingleReleaseCallback> release_callback,
-    std::unique_ptr<SkBitmap> bitmap,
-    bool result) {
-  gpu::SyncToken sync_token;
-  if (result) {
-    viz::GLHelper* gl_helper =
-        content::ImageTransportFactory::GetInstance()->GetGLHelper();
-    if (gl_helper)
-      gl_helper->GenerateSyncToken(&sync_token);
-  }
-  const bool lost_resource = !sync_token.HasData();
-  release_callback->Run(sync_token, lost_resource);
-
-  callback.Run(*bitmap,
-               result ? content::READBACK_SUCCESS : content::READBACK_FAILED);
-}
-#endif
-
-// TODO(wjmaclean): There is significant overlap between
-// PrepareTextureCopyOutputResult and CopyFromCompositingSurfaceFinished in
-// this file, and the versions in RenderWidgetHostViewAndroid. They should
-// be merged. See https://crbug.com/582955
-void PrepareTextureCopyOutputResult(
-    const gfx::Size& dst_size_in_pixel,
-    const SkColorType color_type,
-    const content::ReadbackRequestCallback& callback,
-    std::unique_ptr<viz::CopyOutputResult> result) {
-  base::ScopedClosureRunner scoped_callback_runner(
-      base::BindOnce(callback, SkBitmap(), content::READBACK_FAILED));
-
-#if defined(OS_ANDROID) && !defined(USE_AURA)
-  // TODO(wjmaclean): See if there's an equivalent pathway for Android and
-  // implement it here.
-  return;
-#else
-
-  DCHECK_EQ(result->format(), viz::CopyOutputResult::Format::RGBA_TEXTURE);
-  if (result->IsEmpty())
-    return;
-
-  // TODO(siva.gunturi): We should be able to validate the format here using
-  // GLHelper::IsReadbackConfigSupported before we processs the result.
-  // See crbug.com/415682 and crbug.com/415131.
-  auto bitmap = std::make_unique<SkBitmap>();
-  if (!bitmap->tryAllocPixels(SkImageInfo::Make(
-          dst_size_in_pixel.width(), dst_size_in_pixel.height(), color_type,
-          kPremul_SkAlphaType))) {
-    scoped_callback_runner.ReplaceClosure(base::BindOnce(
-        callback, SkBitmap(), content::READBACK_BITMAP_ALLOCATION_FAILURE));
-    return;
-  }
-
-  content::ImageTransportFactory* factory =
-      content::ImageTransportFactory::GetInstance();
-  viz::GLHelper* gl_helper = factory->GetGLHelper();
-  if (!gl_helper)
-    return;
-
-  uint8_t* pixels = static_cast<uint8_t*>(bitmap->getPixels());
-
-  gpu::Mailbox mailbox = result->GetTextureResult()->mailbox;
-  gpu::SyncToken sync_token = result->GetTextureResult()->sync_token;
-  std::unique_ptr<viz::SingleReleaseCallback> release_callback =
-      result->TakeTextureOwnership();
-
-  ignore_result(scoped_callback_runner.Release());
-
-  gl_helper->CropScaleReadbackAndCleanMailbox(
-      mailbox, sync_token, result->size(), dst_size_in_pixel, pixels,
-      color_type,
-      base::Bind(&CopyFromCompositingSurfaceFinished, callback,
-                 base::Passed(&release_callback), base::Passed(&bitmap)),
-      viz::GLHelper::SCALER_QUALITY_GOOD);
-#endif
-}
-
-void PrepareBitmapCopyOutputResult(
-    const gfx::Size& dst_size_in_pixel,
-    const SkColorType preferred_color_type,
-    const content::ReadbackRequestCallback& callback,
-    std::unique_ptr<viz::CopyOutputResult> result) {
-  SkColorType color_type = preferred_color_type;
-  if (color_type != kN32_SkColorType && color_type != kAlpha_8_SkColorType) {
-    // Switch back to default colortype if format not supported.
-    color_type = kN32_SkColorType;
-  }
-  const SkBitmap source = result->AsSkBitmap();
-  if (!source.readyToDraw()) {
-    callback.Run(source, content::READBACK_FAILED);
-    return;
-  }
-  SkBitmap scaled_bitmap;
-  if (source.width() != dst_size_in_pixel.width() ||
-      source.height() != dst_size_in_pixel.height()) {
-    // TODO(miu): Delete this logic here and use the new
-    // CopyOutputRequest::SetScaleRatio() API. http://crbug.com/760348
-    scaled_bitmap = skia::ImageOperations::Resize(
-        source, skia::ImageOperations::RESIZE_BEST, dst_size_in_pixel.width(),
-        dst_size_in_pixel.height());
-  } else {
-    scaled_bitmap = source;
-  }
-  if (color_type == kN32_SkColorType) {
-    DCHECK_EQ(scaled_bitmap.colorType(), kN32_SkColorType);
-    callback.Run(scaled_bitmap, content::READBACK_SUCCESS);
-    return;
-  }
-  DCHECK_EQ(color_type, kAlpha_8_SkColorType);
-  // The software path currently always returns N32 bitmap regardless of the
-  // |color_type| we ask for.
-  DCHECK_EQ(scaled_bitmap.colorType(), kN32_SkColorType);
-  // Paint |scaledBitmap| to alpha-only |grayscale_bitmap|.
-  SkBitmap grayscale_bitmap;
-  bool success = grayscale_bitmap.tryAllocPixels(
-      SkImageInfo::MakeA8(scaled_bitmap.width(), scaled_bitmap.height()));
-  if (!success) {
-    callback.Run(SkBitmap(), content::READBACK_BITMAP_ALLOCATION_FAILURE);
-    return;
-  }
-  SkCanvas canvas(grayscale_bitmap);
-  canvas.clear(SK_ColorBLACK);
-  SkPaint paint;
-  paint.setColorFilter(SkLumaColorFilter::Make());
-  canvas.drawBitmap(scaled_bitmap, SkIntToScalar(0), SkIntToScalar(0), &paint);
-  callback.Run(grayscale_bitmap, content::READBACK_SUCCESS);
-}
-
-}  // namespace
-
 namespace content {
 
 viz::FrameSinkId AllocateFrameSinkId() {
@@ -194,45 +48,6 @@
 #endif
 }
 
-void CopyFromCompositingSurfaceHasResult(
-    const gfx::Size& dst_size_in_pixel,
-    const SkColorType color_type,
-    const ReadbackRequestCallback& callback,
-    std::unique_ptr<viz::CopyOutputResult> result) {
-  if (result->IsEmpty()) {
-    callback.Run(SkBitmap(), READBACK_FAILED);
-    return;
-  }
-
-  gfx::Size output_size_in_pixel;
-  if (dst_size_in_pixel.IsEmpty())
-    output_size_in_pixel = result->size();
-  else
-    output_size_in_pixel = dst_size_in_pixel;
-
-  switch (result->format()) {
-    case viz::CopyOutputResult::Format::RGBA_TEXTURE:
-      // TODO(miu): Delete this code path. All callers want a SkBitmap result;
-      // so all requests should be changed to RGBA_BITMAP, and then not bother
-      // with the extra GLHelper readback infrastructure client-side.
-      // http://crbug.com/759310
-      PrepareTextureCopyOutputResult(output_size_in_pixel, color_type, callback,
-                                     std::move(result));
-      break;
-
-    case viz::CopyOutputResult::Format::RGBA_BITMAP:
-      PrepareBitmapCopyOutputResult(output_size_in_pixel, color_type, callback,
-                                    std::move(result));
-      break;
-
-    case viz::CopyOutputResult::Format::I420_PLANES:
-      // No code path external to the VIZ component should have asked for this.
-      NOTREACHED();
-      callback.Run(SkBitmap(), READBACK_FAILED);
-      break;
-  }
-}
-
 namespace surface_utils {
 
 void ConnectWithLocalFrameSinkManager(
diff --git a/content/browser/compositor/surface_utils.h b/content/browser/compositor/surface_utils.h
index 75e9e48..10249c3 100644
--- a/content/browser/compositor/surface_utils.h
+++ b/content/browser/compositor/surface_utils.h
@@ -9,12 +9,8 @@
 
 #include "components/viz/common/surfaces/frame_sink_id.h"
 #include "content/common/content_export.h"
-#include "content/public/browser/readback_types.h"
-#include "third_party/skia/include/core/SkImageInfo.h"
-#include "ui/gfx/geometry/size.h"
 
 namespace viz {
-class CopyOutputResult;
 class FrameSinkManagerImpl;
 class HostFrameSinkManager;
 }
@@ -27,12 +23,6 @@
 
 CONTENT_EXPORT viz::HostFrameSinkManager* GetHostFrameSinkManager();
 
-void CopyFromCompositingSurfaceHasResult(
-    const gfx::Size& dst_size_in_pixel,
-    const SkColorType color_type,
-    const ReadbackRequestCallback& callback,
-    std::unique_ptr<viz::CopyOutputResult> result);
-
 namespace surface_utils {
 
 // Directly connects HostFrameSinkManager to FrameSinkManagerImpl without Mojo.
diff --git a/content/browser/devtools/devtools_frame_trace_recorder.cc b/content/browser/devtools/devtools_frame_trace_recorder.cc
index cc5ff6e..9f8da6cf 100644
--- a/content/browser/devtools/devtools_frame_trace_recorder.cc
+++ b/content/browser/devtools/devtools_frame_trace_recorder.cc
@@ -17,7 +17,6 @@
 #include "content/browser/devtools/devtools_traceable_screenshot.h"
 #include "content/browser/frame_host/render_frame_host_impl.h"
 #include "content/browser/renderer_host/render_widget_host_view_base.h"
-#include "content/public/browser/readback_types.h"
 #include "third_party/skia/include/core/SkBitmap.h"
 #include "ui/gfx/geometry/size.h"
 #include "ui/gfx/geometry/size_conversions.h"
@@ -28,16 +27,13 @@
 
 static size_t kFrameAreaLimit = 256000;
 
-void FrameCaptured(base::TimeTicks timestamp, const SkBitmap& bitmap,
-    ReadbackResponse response) {
-  if (response != READBACK_SUCCESS)
+void FrameCaptured(base::TimeTicks timestamp, const SkBitmap& bitmap) {
+  if (bitmap.drawsNothing())
     return;
   if (DevToolsTraceableScreenshot::GetNumberOfInstances() >=
       DevToolsFrameTraceRecorder::kMaximumNumberOfScreenshots) {
     return;
   }
-  if (bitmap.drawsNothing())
-    return;
   TRACE_EVENT_OBJECT_SNAPSHOT_WITH_ID_AND_TIMESTAMP(
       TRACE_DISABLED_BY_DEFAULT("devtools.screenshot"), "Screenshot", 1,
       timestamp,
@@ -68,8 +64,7 @@
   }
 
   view->CopyFromSurface(gfx::Rect(), snapshot_size,
-                        base::Bind(FrameCaptured, base::TimeTicks::Now()),
-                        kN32_SkColorType);
+                        base::BindOnce(FrameCaptured, base::TimeTicks::Now()));
 }
 
 bool ScreenshotCategoryEnabled() {
diff --git a/content/browser/devtools/protocol/page_handler.cc b/content/browser/devtools/protocol/page_handler.cc
index 408a3c5..22373521 100644
--- a/content/browser/devtools/protocol/page_handler.cc
+++ b/content/browser/devtools/protocol/page_handler.cc
@@ -856,19 +856,15 @@
   // Request a copy of the surface as a scaled SkBitmap.
   view->CopyFromSurface(
       gfx::Rect(), snapshot_size,
-      // TODO(crbug/759310): This should be BindOnce.
-      base::BindRepeating(&PageHandler::ScreencastFrameCaptured,
-                          weak_factory_.GetWeakPtr(),
-                          base::Passed(&page_metadata)),
-      kN32_SkColorType);
+      base::BindOnce(&PageHandler::ScreencastFrameCaptured,
+                     weak_factory_.GetWeakPtr(), std::move(page_metadata)));
   frames_in_flight_++;
 }
 
 void PageHandler::ScreencastFrameCaptured(
     std::unique_ptr<Page::ScreencastFrameMetadata> page_metadata,
-    const SkBitmap& bitmap,
-    ReadbackResponse response) {
-  if (response != READBACK_SUCCESS) {
+    const SkBitmap& bitmap) {
+  if (bitmap.drawsNothing()) {
     if (capture_retry_count_) {
       --capture_retry_count_;
       base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
diff --git a/content/browser/devtools/protocol/page_handler.h b/content/browser/devtools/protocol/page_handler.h
index 1c4d28f..9c1b84e6 100644
--- a/content/browser/devtools/protocol/page_handler.h
+++ b/content/browser/devtools/protocol/page_handler.h
@@ -23,7 +23,6 @@
 #include "content/public/browser/javascript_dialog_manager.h"
 #include "content/public/browser/notification_observer.h"
 #include "content/public/browser/notification_registrar.h"
-#include "content/public/browser/readback_types.h"
 #include "content/public/common/javascript_dialog_type.h"
 #include "third_party/WebKit/public/platform/modules/manifest/manifest_manager.mojom.h"
 #include "url/gurl.h"
@@ -155,8 +154,7 @@
   void InnerSwapCompositorFrame();
   void ScreencastFrameCaptured(
       std::unique_ptr<Page::ScreencastFrameMetadata> metadata,
-      const SkBitmap& bitmap,
-      ReadbackResponse response);
+      const SkBitmap& bitmap);
   void ScreencastFrameEncoded(
       std::unique_ptr<Page::ScreencastFrameMetadata> metadata,
       const std::string& data);
diff --git a/content/browser/devtools/protocol/storage_handler.cc b/content/browser/devtools/protocol/storage_handler.cc
index 9db0af5..2c621aa 100644
--- a/content/browser/devtools/protocol/storage_handler.cc
+++ b/content/browser/devtools/protocol/storage_handler.cc
@@ -16,7 +16,7 @@
 #include "content/public/browser/storage_partition.h"
 #include "storage/browser/quota/quota_client.h"
 #include "storage/browser/quota/quota_manager.h"
-#include "third_party/WebKit/common/quota/quota_types.mojom.h"
+#include "third_party/WebKit/public/mojom/quota/quota_types.mojom.h"
 #include "url/gurl.h"
 #include "url/origin.h"
 
diff --git a/content/browser/frame_host/navigation_controller_impl_unittest.cc b/content/browser/frame_host/navigation_controller_impl_unittest.cc
index e4d999a..81507d7 100644
--- a/content/browser/frame_host/navigation_controller_impl_unittest.cc
+++ b/content/browser/frame_host/navigation_controller_impl_unittest.cc
@@ -97,7 +97,7 @@
         1, 1, kAlpha_8_SkColorType, kPremul_SkAlphaType));
     bitmap.eraseARGB(0, 0, 0, 0);
     encoding_screenshot_in_progress_ = true;
-    OnScreenshotTaken(entry->GetUniqueID(), bitmap, content::READBACK_SUCCESS);
+    OnScreenshotTaken(entry->GetUniqueID(), bitmap);
     WaitUntilScreenshotIsReady();
   }
 
diff --git a/content/browser/frame_host/navigation_entry_screenshot_manager.cc b/content/browser/frame_host/navigation_entry_screenshot_manager.cc
index b1fb009..84ba9ad 100644
--- a/content/browser/frame_host/navigation_entry_screenshot_manager.cc
+++ b/content/browser/frame_host/navigation_entry_screenshot_manager.cc
@@ -125,12 +125,8 @@
   const gfx::Size view_size_on_screen = view->GetViewBounds().size();
   view->CopyFromSurface(
       gfx::Rect(), view_size_on_screen,
-      // TODO(crbug/759310): This should be BindOnce, but requires a public
-      // interface change.
-      base::BindRepeating(&NavigationEntryScreenshotManager::OnScreenshotTaken,
-                          screenshot_factory_.GetWeakPtr(),
-                          entry->GetUniqueID()),
-      kN32_SkColorType);
+      base::BindOnce(&NavigationEntryScreenshotManager::OnScreenshotTaken,
+                     screenshot_factory_.GetWeakPtr(), entry->GetUniqueID()));
 }
 
 // Implemented here and not in NavigationEntry because this manager keeps track
@@ -151,15 +147,14 @@
 
 void NavigationEntryScreenshotManager::OnScreenshotTaken(
     int unique_id,
-    const SkBitmap& bitmap,
-    ReadbackResponse response) {
+    const SkBitmap& bitmap) {
   NavigationEntryImpl* entry = owner_->GetEntryWithUniqueID(unique_id);
   if (!entry) {
     LOG(ERROR) << "Invalid entry with unique id: " << unique_id;
     return;
   }
 
-  if ((response != READBACK_SUCCESS) || bitmap.empty() || bitmap.isNull()) {
+  if (bitmap.drawsNothing()) {
     if (!ClearScreenshot(entry))
       OnScreenshotSet(entry);
     return;
diff --git a/content/browser/frame_host/navigation_entry_screenshot_manager.h b/content/browser/frame_host/navigation_entry_screenshot_manager.h
index 508b189..dab9e99 100644
--- a/content/browser/frame_host/navigation_entry_screenshot_manager.h
+++ b/content/browser/frame_host/navigation_entry_screenshot_manager.h
@@ -10,7 +10,6 @@
 #include "base/memory/weak_ptr.h"
 #include "base/time/time.h"
 #include "content/common/content_export.h"
-#include "content/public/browser/readback_types.h"
 
 class SkBitmap;
 
@@ -53,9 +52,7 @@
 
   // The callback invoked when taking the screenshot of the page is complete.
   // This sets the screenshot on the navigation entry.
-  void OnScreenshotTaken(int unique_id,
-                         const SkBitmap& bitmap,
-                         ReadbackResponse response);
+  void OnScreenshotTaken(int unique_id, const SkBitmap& bitmap);
 
   // Returns the number of entries with screenshots.
   int GetScreenshotCount() const;
diff --git a/content/browser/frame_host/render_frame_host_impl.cc b/content/browser/frame_host/render_frame_host_impl.cc
index c3d1a5be..6e88295d 100644
--- a/content/browser/frame_host/render_frame_host_impl.cc
+++ b/content/browser/frame_host/render_frame_host_impl.cc
@@ -150,9 +150,9 @@
 #include "services/resource_coordinator/public/cpp/resource_coordinator_features.h"
 #include "services/service_manager/public/cpp/connector.h"
 #include "services/service_manager/public/cpp/interface_provider.h"
-#include "third_party/WebKit/common/page/page_visibility_state.mojom.h"
 #include "third_party/WebKit/public/common/feature_policy/feature_policy.h"
 #include "third_party/WebKit/public/common/frame/frame_policy.h"
+#include "third_party/WebKit/public/mojom/page/page_visibility_state.mojom.h"
 #include "ui/accessibility/ax_tree.h"
 #include "ui/accessibility/ax_tree_id_registry.h"
 #include "ui/accessibility/ax_tree_update.h"
@@ -2725,10 +2725,8 @@
   // BeforeUnload or Unload event.
   // TODO(fdegans): Change this to a DCHECK after LoadEventProgress has been
   // refactored in Blink. See crbug.com/466089
-  if (!is_loading_) {
-    LOG(WARNING) << "OnDidStopLoading was called twice.";
+  if (!is_loading_)
     return;
-  }
 
   is_loading_ = false;
   navigation_request_.reset();
diff --git a/content/browser/frame_host/render_frame_host_impl_browsertest.cc b/content/browser/frame_host/render_frame_host_impl_browsertest.cc
index edc7581..ede479b3 100644
--- a/content/browser/frame_host/render_frame_host_impl_browsertest.cc
+++ b/content/browser/frame_host/render_frame_host_impl_browsertest.cc
@@ -37,7 +37,7 @@
 #include "net/test/embedded_test_server/http_request.h"
 #include "services/network/public/cpp/features.h"
 #include "testing/gmock/include/gmock/gmock.h"
-#include "third_party/WebKit/common/page/page_visibility_state.mojom.h"
+#include "third_party/WebKit/public/mojom/page/page_visibility_state.mojom.h"
 
 namespace content {
 
diff --git a/content/browser/gpu/gpu_data_manager_impl_private.cc b/content/browser/gpu/gpu_data_manager_impl_private.cc
index 48a69da5..706f45fd 100644
--- a/content/browser/gpu/gpu_data_manager_impl_private.cc
+++ b/content/browser/gpu/gpu_data_manager_impl_private.cc
@@ -67,78 +67,22 @@
 namespace {
 
 #if defined(OS_WIN)
-
-enum WinSubVersion {
-  kWinOthers = 0,
-  kWinXP,
-  kWinVista,
-  kWin7,
-  kWin8,
-  kWin8_1,
-  kWin10,
-  kWin10_TH2,
-  kWin10_RS1,
-  kWin10_RS2,
-  kWin10_RS3,
-  kNumWinSubVersions
-};
-
 int GetGpuBlacklistHistogramValueWin(gpu::GpuFeatureStatus status) {
-  static WinSubVersion sub_version = kNumWinSubVersions;
-  if (sub_version == kNumWinSubVersions) {
-    sub_version = kWinOthers;
-    switch (base::win::GetVersion()) {
-      case base::win::VERSION_PRE_XP:
-      case base::win::VERSION_XP:
-      case base::win::VERSION_SERVER_2003:
-      case base::win::VERSION_VISTA:
-      case base::win::VERSION_WIN_LAST:
-        break;
-      case base::win::VERSION_WIN7:
-        sub_version = kWin7;
-        break;
-      case base::win::VERSION_WIN8:
-        sub_version = kWin8;
-        break;
-      case base::win::VERSION_WIN8_1:
-        sub_version = kWin8_1;
-        break;
-      case base::win::VERSION_WIN10:
-        sub_version = kWin10;
-        break;
-      case base::win::VERSION_WIN10_TH2:
-        sub_version = kWin10_TH2;
-        break;
-      case base::win::VERSION_WIN10_RS1:
-        sub_version = kWin10_RS1;
-        break;
-      case base::win::VERSION_WIN10_RS2:
-        sub_version = kWin10_RS2;
-        break;
-      case base::win::VERSION_WIN10_RS3:
-        sub_version = kWin10_RS3;
-        break;
-    }
-  }
-  int entry_index = static_cast<int>(sub_version) * gpu::kGpuFeatureStatusMax;
-  switch (status) {
-    case gpu::kGpuFeatureStatusEnabled:
-      break;
-    case gpu::kGpuFeatureStatusBlacklisted:
-      entry_index++;
-      break;
-    case gpu::kGpuFeatureStatusDisabled:
-      entry_index += 2;
-      break;
-    case gpu::kGpuFeatureStatusSoftware:
-      entry_index += 3;
-      break;
-    case gpu::kGpuFeatureStatusUndefined:
-    case gpu::kGpuFeatureStatusMax:
-      NOTREACHED();
-      break;
-  }
-  return entry_index;
+  // The enums are defined as:
+  //   Enabled VERSION_PRE_XP = 0,
+  //   Blacklisted VERSION_PRE_XP = 1,
+  //   Disabled VERSION_PRE_XP = 2,
+  //   Software VERSION_PRE_XP = 3,
+  //   Unknown VERSION_PRE_XP = 4,
+  //   Enabled VERSION_XP = 5,
+  //   ...
+  //   Unknown Windows Version = VERSION_WIN_LAST * gpu::kGpuFeatureStatusMax.
+  static const base::win::Version version = base::win::GetVersion();
+  if (version == base::win::VERSION_WIN_LAST)
+    return -1;
+  DCHECK_NE(gpu::kGpuFeatureStatusMax, status);
+  int entry_index = static_cast<int>(version) * gpu::kGpuFeatureStatusMax;
+  return entry_index + static_cast<int>(status);
 }
 #endif  // OS_WIN
 
@@ -190,11 +134,11 @@
        command_line.HasSwitch(switches::kDisableWebGL2))};
 #if defined(OS_WIN)
   const std::string kGpuBlacklistFeatureHistogramNamesWin[] = {
-      "GPU.BlacklistFeatureTestResultsWindows.Accelerated2dCanvas",
-      "GPU.BlacklistFeatureTestResultsWindows.GpuCompositing",
-      "GPU.BlacklistFeatureTestResultsWindows.GpuRasterization",
-      "GPU.BlacklistFeatureTestResultsWindows.Webgl",
-      "GPU.BlacklistFeatureTestResultsWindows.Webgl2"};
+      "GPU.BlacklistFeatureTestResultsWindows2.Accelerated2dCanvas",
+      "GPU.BlacklistFeatureTestResultsWindows2.GpuCompositing",
+      "GPU.BlacklistFeatureTestResultsWindows2.GpuRasterization",
+      "GPU.BlacklistFeatureTestResultsWindows2.Webgl",
+      "GPU.BlacklistFeatureTestResultsWindows2.Webgl2"};
 #endif
   const size_t kNumFeatures =
       sizeof(kGpuFeatures) / sizeof(gpu::GpuFeatureType);
@@ -211,12 +155,15 @@
         base::HistogramBase::kUmaTargetedHistogramFlag);
     histogram_pointer->Add(value);
 #if defined(OS_WIN)
-    histogram_pointer = base::LinearHistogram::FactoryGet(
-        kGpuBlacklistFeatureHistogramNamesWin[i], 1,
-        kNumWinSubVersions * gpu::kGpuFeatureStatusMax,
-        kNumWinSubVersions * gpu::kGpuFeatureStatusMax + 1,
-        base::HistogramBase::kUmaTargetedHistogramFlag);
-    histogram_pointer->Add(GetGpuBlacklistHistogramValueWin(value));
+    int value_win = GetGpuBlacklistHistogramValueWin(value);
+    if (value_win >= 0) {
+      int32_t max_sample = static_cast<int32_t>(base::win::VERSION_WIN_LAST) *
+                           gpu::kGpuFeatureStatusMax;
+      histogram_pointer = base::LinearHistogram::FactoryGet(
+          kGpuBlacklistFeatureHistogramNamesWin[i], 1, max_sample,
+          max_sample + 1, base::HistogramBase::kUmaTargetedHistogramFlag);
+      histogram_pointer->Add(value_win);
+    }
 #endif
   }
 }
diff --git a/content/browser/indexed_db/database_impl.cc b/content/browser/indexed_db/database_impl.cc
index a24136b..072e96a 100644
--- a/content/browser/indexed_db/database_impl.cc
+++ b/content/browser/indexed_db/database_impl.cc
@@ -18,7 +18,7 @@
 #include "content/browser/indexed_db/indexed_db_value.h"
 #include "storage/browser/blob/blob_storage_context.h"
 #include "storage/browser/quota/quota_manager_proxy.h"
-#include "third_party/WebKit/common/quota/quota_types.mojom.h"
+#include "third_party/WebKit/public/mojom/quota/quota_types.mojom.h"
 #include "third_party/WebKit/public/platform/modules/indexeddb/WebIDBDatabaseException.h"
 
 using std::swap;
diff --git a/content/browser/indexed_db/indexed_db_context_impl.cc b/content/browser/indexed_db/indexed_db_context_impl.cc
index f01808e..c1e0a7d 100644
--- a/content/browser/indexed_db/indexed_db_context_impl.cc
+++ b/content/browser/indexed_db/indexed_db_context_impl.cc
@@ -36,7 +36,7 @@
 #include "content/public/common/content_switches.h"
 #include "storage/browser/database/database_util.h"
 #include "storage/common/database/database_identifier.h"
-#include "third_party/WebKit/common/quota/quota_types.mojom.h"
+#include "third_party/WebKit/public/mojom/quota/quota_types.mojom.h"
 #include "ui/base/text/bytes_formatting.h"
 #include "url/origin.h"
 
diff --git a/content/browser/indexed_db/indexed_db_quota_client.cc b/content/browser/indexed_db/indexed_db_quota_client.cc
index 4ddfe160..a167c4b1 100644
--- a/content/browser/indexed_db/indexed_db_quota_client.cc
+++ b/content/browser/indexed_db/indexed_db_quota_client.cc
@@ -13,7 +13,7 @@
 #include "content/public/browser/browser_thread.h"
 #include "net/base/url_util.h"
 #include "storage/browser/database/database_util.h"
-#include "third_party/WebKit/common/quota/quota_types.mojom.h"
+#include "third_party/WebKit/public/mojom/quota/quota_types.mojom.h"
 
 using blink::mojom::StorageType;
 using storage::QuotaClient;
diff --git a/content/browser/indexed_db/indexed_db_quota_client.h b/content/browser/indexed_db/indexed_db_quota_client.h
index 61eac378..1217e856 100644
--- a/content/browser/indexed_db/indexed_db_quota_client.h
+++ b/content/browser/indexed_db/indexed_db_quota_client.h
@@ -14,7 +14,7 @@
 #include "content/common/content_export.h"
 #include "storage/browser/quota/quota_client.h"
 #include "storage/browser/quota/quota_task.h"
-#include "third_party/WebKit/common/quota/quota_types.mojom.h"
+#include "third_party/WebKit/public/mojom/quota/quota_types.mojom.h"
 #include "url/origin.h"
 
 namespace content {
diff --git a/content/browser/loader/navigation_url_loader_network_service_unittest.cc b/content/browser/loader/navigation_url_loader_network_service_unittest.cc
index 4a527a0..63c010e 100644
--- a/content/browser/loader/navigation_url_loader_network_service_unittest.cc
+++ b/content/browser/loader/navigation_url_loader_network_service_unittest.cc
@@ -32,7 +32,7 @@
 #include "services/network/url_loader.h"
 #include "services/network/url_request_context_owner.h"
 #include "testing/gtest/include/gtest/gtest.h"
-#include "third_party/WebKit/common/page/page_visibility_state.mojom.h"
+#include "third_party/WebKit/public/mojom/page/page_visibility_state.mojom.h"
 
 namespace content {
 
diff --git a/content/browser/loader/navigation_url_loader_unittest.cc b/content/browser/loader/navigation_url_loader_unittest.cc
index d454578..e23ef68 100644
--- a/content/browser/loader/navigation_url_loader_unittest.cc
+++ b/content/browser/loader/navigation_url_loader_unittest.cc
@@ -43,7 +43,7 @@
 #include "net/url_request/url_request_test_job.h"
 #include "net/url_request/url_request_test_util.h"
 #include "testing/gtest/include/gtest/gtest.h"
-#include "third_party/WebKit/common/page/page_visibility_state.mojom.h"
+#include "third_party/WebKit/public/mojom/page/page_visibility_state.mojom.h"
 #include "url/origin.h"
 
 namespace content {
diff --git a/content/browser/loader/prefetch_url_loader_service.h b/content/browser/loader/prefetch_url_loader_service.h
index 1fd9cd91..99faf06 100644
--- a/content/browser/loader/prefetch_url_loader_service.h
+++ b/content/browser/loader/prefetch_url_loader_service.h
@@ -11,7 +11,7 @@
 #include "content/common/content_export.h"
 #include "content/public/browser/browser_thread.h"
 #include "mojo/public/cpp/bindings/strong_binding_set.h"
-#include "third_party/WebKit/common/loader/prefetch_url_loader_service.mojom.h"
+#include "third_party/WebKit/public/mojom/loader/prefetch_url_loader_service.mojom.h"
 
 namespace net {
 class URLRequestContextGetter;
diff --git a/content/browser/loader/resource_dispatcher_host_unittest.cc b/content/browser/loader/resource_dispatcher_host_unittest.cc
index 854858d..a7297fd9 100644
--- a/content/browser/loader/resource_dispatcher_host_unittest.cc
+++ b/content/browser/loader/resource_dispatcher_host_unittest.cc
@@ -83,7 +83,7 @@
 #include "services/network/test/test_url_loader_client.h"
 #include "storage/browser/blob/shareable_file_reference.h"
 #include "testing/gtest/include/gtest/gtest.h"
-#include "third_party/WebKit/common/page/page_visibility_state.mojom.h"
+#include "third_party/WebKit/public/mojom/page/page_visibility_state.mojom.h"
 
 // TODO(eroman): Write unit tests for SafeBrowsing that exercise
 //               SafeBrowsingResourceHandler.
diff --git a/content/browser/oop_browsertest.cc b/content/browser/oop_browsertest.cc
index 8b58305..840c83b 100644
--- a/content/browser/oop_browsertest.cc
+++ b/content/browser/oop_browsertest.cc
@@ -5,7 +5,7 @@
 #include "base/bind.h"
 #include "base/callback.h"
 #include "base/command_line.h"
-#include "content/public/browser/readback_types.h"
+#include "base/run_loop.h"
 #include "content/public/browser/render_frame_host.h"
 #include "content/public/browser/render_view_host.h"
 #include "content/public/browser/render_widget_host.h"
@@ -39,14 +39,6 @@
       command_line->AppendSwitch(switches::kUseGpuInTests);
   }
 
-  void GetSnapshot(const base::Closure& done_cb,
-                   const SkBitmap& bitmap,
-                   ReadbackResponse response) {
-    ASSERT_EQ(response, ReadbackResponse::READBACK_SUCCESS);
-    snapshot_ = bitmap;
-    done_cb.Run();
-  }
-
   void VerifyVisualStateUpdated(const base::Closure& done_cb,
                                 bool visual_state_updated) {
     ASSERT_TRUE(visual_state_updated);
@@ -72,18 +64,23 @@
 
   auto* rwh = shell()->web_contents()->GetRenderViewHost()->GetWidget();
   ASSERT_TRUE(rwh->GetView()->IsSurfaceAvailableForCopy());
+  base::RunLoop run_loop;
+  SkBitmap snapshot;
   rwh->GetView()->CopyFromSurface(
       gfx::Rect(), gfx::Size(),
-      base::Bind(&OOPBrowserTest::GetSnapshot, base::Unretained(this),
-                 base::MessageLoop::QuitWhenIdleClosure()),
-      kN32_SkColorType);
-  content::RunMessageLoop();
+      base::BindOnce(
+          [](SkBitmap* snapshot, base::OnceClosure done_cb,
+             const SkBitmap& bitmap) {
+            *snapshot = bitmap;
+            std::move(done_cb).Run();
+          },
+          &snapshot, run_loop.QuitWhenIdleClosure()));
+  run_loop.Run();
 
-  EXPECT_GT(snapshot_.width(), 0);
-  EXPECT_GT(snapshot_.height(), 0);
-  for (int i = 0; i < snapshot_.width(); ++i) {
-    for (int j = 0; j < snapshot_.height(); ++j) {
-      ASSERT_EQ(snapshot_.getColor(i, j), SK_ColorBLUE);
+  EXPECT_FALSE(snapshot.drawsNothing());
+  for (int i = 0; i < snapshot.width(); ++i) {
+    for (int j = 0; j < snapshot.height(); ++j) {
+      ASSERT_EQ(snapshot.getColor(i, j), SK_ColorBLUE);
     }
   }
 };
diff --git a/content/browser/payments/payment_app_info_fetcher.cc b/content/browser/payments/payment_app_info_fetcher.cc
index 70b57b1..2277cd5 100644
--- a/content/browser/payments/payment_app_info_fetcher.cc
+++ b/content/browser/payments/payment_app_info_fetcher.cc
@@ -14,6 +14,7 @@
 #include "content/public/browser/manifest_icon_selector.h"
 #include "content/public/common/console_message_level.h"
 #include "ui/gfx/image/image.h"
+#include "url/origin.h"
 
 namespace content {
 
@@ -83,17 +84,29 @@
     if (!render_frame_host)
       continue;
 
-    WebContentsImpl* web_content = static_cast<WebContentsImpl*>(
+    WebContentsImpl* context_web_content = static_cast<WebContentsImpl*>(
         WebContents::FromRenderFrameHost(render_frame_host));
-    if (!web_content || web_content->IsHidden() ||
-        context_url.spec().compare(web_content->GetLastCommittedURL().spec()) !=
-            0) {
+    if (!context_web_content || context_web_content->IsHidden() ||
+        context_url.spec().compare(
+            context_web_content->GetLastCommittedURL().spec()) != 0) {
       continue;
     }
 
-    web_contents_helper_ = std::make_unique<WebContentsHelper>(web_content);
+    // Get the main frame since web app manifest is only available in the main
+    // frame's document by definition. The main frame's document must come from
+    // the same origin.
+    WebContentsImpl* top_level_web_content = static_cast<WebContentsImpl*>(
+        WebContents::FromRenderFrameHost(context_web_content->GetMainFrame()));
+    if (!top_level_web_content || top_level_web_content->IsHidden() ||
+        !url::IsSameOriginWith(context_url,
+                               top_level_web_content->GetLastCommittedURL())) {
+      continue;
+    }
 
-    web_content->GetManifest(
+    web_contents_helper_ =
+        std::make_unique<WebContentsHelper>(top_level_web_content);
+
+    top_level_web_content->GetManifest(
         base::Bind(&PaymentAppInfoFetcher::SelfDeleteFetcher::
                        FetchPaymentAppManifestCallback,
                    base::Unretained(this)));
diff --git a/content/browser/permissions/permission_service_impl.cc b/content/browser/permissions/permission_service_impl.cc
index 8b9cede6..ef2b048 100644
--- a/content/browser/permissions/permission_service_impl.cc
+++ b/content/browser/permissions/permission_service_impl.cc
@@ -57,6 +57,8 @@
       return PermissionType::CLIPBOARD_READ;
     case PermissionName::CLIPBOARD_WRITE:
       return PermissionType::CLIPBOARD_WRITE;
+    case PermissionName::PAYMENT_HANDLER:
+      return PermissionType::PAYMENT_HANDLER;
   }
 
   NOTREACHED();
diff --git a/content/browser/push_messaging/push_messaging_manager.cc b/content/browser/push_messaging/push_messaging_manager.cc
index 747297f..c8d415a 100644
--- a/content/browser/push_messaging/push_messaging_manager.cc
+++ b/content/browser/push_messaging/push_messaging_manager.cc
@@ -106,12 +106,6 @@
   return "";
 }
 
-void UnregisterCallbackToClosure(const base::Closure& closure,
-                                 mojom::PushUnregistrationStatus status) {
-  DCHECK(!closure.is_null());
-  closure.Run();
-}
-
 // Returns whether |sender_info| contains a valid application server key, that
 // is, a NIST P-256 public key in uncompressed format.
 bool IsApplicationServerKey(const std::string& sender_info) {
@@ -141,11 +135,15 @@
 struct PushMessagingManager::RegisterData {
   RegisterData();
   RegisterData(RegisterData&& other) = default;
+
   bool FromDocument() const;
+
   GURL requesting_origin;
   int64_t service_worker_registration_id;
+  std::string existing_subscription_id;
   PushSubscriptionOptions options;
   SubscribeCallback callback;
+
   // The following member should only be read if FromDocument() is true.
   int render_frame_id;
 
@@ -161,14 +159,6 @@
 
   // Public Register methods on UI thread --------------------------------------
 
-  // Callback called on UI thread.
-  void SubscribeDidGetInfoOnUI(RegisterData data,
-                               const std::string& push_subscription_id,
-                               const std::string& sender_id,
-                               bool is_valid,
-                               const std::vector<uint8_t>& p256dh,
-                               const std::vector<uint8_t>& auth);
-
   // Called via PostTask from IO thread.
   void RegisterOnUI(RegisterData data);
 
@@ -230,7 +220,7 @@
                                        blink::mojom::PermissionStatus status);
 
   void DidRegister(RegisterData data,
-                   const std::string& push_registration_id,
+                   const std::string& push_subscription_id,
                    const std::vector<uint8_t>& p256dh,
                    const std::vector<uint8_t>& auth,
                    mojom::PushRegistrationStatus status);
@@ -351,13 +341,18 @@
 
 void PushMessagingManager::DidCheckForExistingRegistration(
     RegisterData data,
-    const std::vector<std::string>& push_registration_id_and_sender_id,
+    const std::vector<std::string>& subscription_id_and_sender_id,
     ServiceWorkerStatusCode service_worker_status) {
   DCHECK_CURRENTLY_ON(BrowserThread::IO);
+
+  // Validate the stored subscription against the subscription request made by
+  // the developer. The authorized entity must match.
   if (service_worker_status == SERVICE_WORKER_OK) {
-    DCHECK_EQ(2u, push_registration_id_and_sender_id.size());
-    const auto& push_subscription_id = push_registration_id_and_sender_id[0];
-    const auto& stored_sender_id = push_registration_id_and_sender_id[1];
+    DCHECK_EQ(2u, subscription_id_and_sender_id.size());
+
+    const std::string& subscription_id = subscription_id_and_sender_id[0];
+    const std::string& stored_sender_id = subscription_id_and_sender_id[1];
+
     std::string fixed_sender_id =
         FixSenderInfo(data.options.sender_info, stored_sender_id);
     if (fixed_sender_id.empty()) {
@@ -365,37 +360,27 @@
                             mojom::PushRegistrationStatus::NO_SENDER_ID);
       return;
     }
+
     if (fixed_sender_id != stored_sender_id) {
       SendSubscriptionError(std::move(data),
                             mojom::PushRegistrationStatus::SENDER_ID_MISMATCH);
       return;
     }
 
-    GURL requesting_origin = data.requesting_origin;
-    int64_t registration_id = data.service_worker_registration_id;
-    BrowserThread::PostTask(
-        BrowserThread::UI, FROM_HERE,
-        base::BindOnce(&Core::GetSubscriptionInfoOnUI,
-                       base::Unretained(ui_core_.get()), requesting_origin,
-                       registration_id, fixed_sender_id, push_subscription_id,
-                       base::Bind(&Core::SubscribeDidGetInfoOnUI,
-                                  ui_core_weak_ptr_, base::Passed(&data),
-                                  push_subscription_id, fixed_sender_id)));
-    return;
+    data.existing_subscription_id = subscription_id;
   }
-  // TODO(johnme): The spec allows the register algorithm to reject with an
-  // AbortError when accessing storage fails. Perhaps we should do that if
-  // service_worker_status != SERVICE_WORKER_ERROR_NOT_FOUND instead of
-  // attempting to do a fresh registration?
-  // https://w3c.github.io/push-api/#widl-PushRegistrationManager-register-Promise-PushRegistration
+
+  // TODO(peter): Handle failures other than SERVICE_WORKER_ERROR_NOT_FOUND by
+  // rejecting the subscription algorithm instead of trying to subscribe.
+
   if (!data.options.sender_info.empty()) {
     BrowserThread::PostTask(
         BrowserThread::UI, FROM_HERE,
         base::BindOnce(&Core::RegisterOnUI, base::Unretained(ui_core_.get()),
                        std::move(data)));
   } else {
-    // There is no existing registration and the sender_info passed in was
-    // empty, but perhaps there is a stored sender id we can use.
+    // No |sender_info| was provided by the developer. Fall back to checking
+    // whether a previous subscription did identify a sender.
     int64_t registration_id = data.service_worker_registration_id;
     service_worker_context_->GetRegistrationUserData(
         registration_id, {kPushSenderIdServiceWorkerKey},
@@ -405,60 +390,6 @@
   }
 }
 
-void PushMessagingManager::Core::SubscribeDidGetInfoOnUI(
-    RegisterData data,
-    const std::string& push_subscription_id,
-    const std::string& sender_id,
-    bool is_valid,
-    const std::vector<uint8_t>& p256dh,
-    const std::vector<uint8_t>& auth) {
-  DCHECK_CURRENTLY_ON(BrowserThread::UI);
-  if (is_valid) {
-    BrowserThread::PostTask(
-        BrowserThread::IO, FROM_HERE,
-        base::BindOnce(&PushMessagingManager::SendSubscriptionSuccess,
-                       io_parent_, std::move(data),
-                       mojom::PushRegistrationStatus::SUCCESS_FROM_CACHE,
-                       push_subscription_id, p256dh, auth));
-  } else {
-    PushMessagingService* push_service = service();
-    if (!push_service) {
-      // Shouldn't be possible to have a stored push subscription in a profile
-      // with no push service, but this case can occur when the renderer is
-      // shutting down.
-      BrowserThread::PostTask(
-          BrowserThread::IO, FROM_HERE,
-          base::BindOnce(&PushMessagingManager::SendSubscriptionError,
-                         io_parent_, std::move(data),
-                         mojom::PushRegistrationStatus::RENDERER_SHUTDOWN));
-      return;
-    }
-
-    // Uh-oh! Although there was a cached subscription in the Service Worker
-    // database, it did not have matching counterparts in the
-    // PushMessagingAppIdentifier map and/or GCM Store. Unsubscribe and
-    // re-subscribe to fix this inconsistency.
-
-    // Consider this subscription attempt to have failed. The re-subscribe will
-    // be logged to UMA as a separate subscription attempt.
-    RecordRegistrationStatus(mojom::PushRegistrationStatus::STORAGE_CORRUPT);
-
-    int64_t registration_id = data.service_worker_registration_id;
-    GURL requesting_origin = data.requesting_origin;
-    auto try_again_on_io = base::Bind(
-        &PushMessagingManager::DidCheckForExistingRegistration, io_parent_,
-        base::Passed(&data),
-        std::vector<std::string>() /* push_registration_id_and_sender_id */,
-        SERVICE_WORKER_ERROR_NOT_FOUND);
-    push_service->Unsubscribe(
-        mojom::PushUnregistrationReason::SUBSCRIBE_STORAGE_CORRUPT,
-        requesting_origin, registration_id, sender_id,
-        base::Bind(&UnregisterCallbackToClosure,
-                   base::Bind(IgnoreResult(&BrowserThread::PostTask),
-                              BrowserThread::IO, FROM_HERE, try_again_on_io)));
-  }
-}
-
 void PushMessagingManager::DidGetSenderIdFromStorage(
     RegisterData data,
     const std::vector<std::string>& stored_sender_id,
@@ -494,7 +425,6 @@
     if (!is_incognito()) {
       // This might happen if InstanceIDProfileService::IsInstanceIDEnabled
       // returns false because the Instance ID kill switch was enabled.
-      // TODO(johnme): Might be better not to expose the API in this case.
       BrowserThread::PostTask(
           BrowserThread::IO, FROM_HERE,
           base::BindOnce(&PushMessagingManager::SendSubscriptionError,
@@ -585,17 +515,28 @@
 
 void PushMessagingManager::Core::DidRegister(
     RegisterData data,
-    const std::string& push_registration_id,
+    const std::string& push_subscription_id,
     const std::vector<uint8_t>& p256dh,
     const std::vector<uint8_t>& auth,
     mojom::PushRegistrationStatus status) {
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
+
+  // TODO(nator): Handle the case where |push_subscription_id| and
+  // |data.existing_subscription_id| are not the same. Right now we just
+  // override the old subscription ID and encryption information.
+  const bool subscription_changed =
+      push_subscription_id != data.existing_subscription_id;
+
   if (status == mojom::PushRegistrationStatus::SUCCESS_FROM_PUSH_SERVICE) {
     BrowserThread::PostTask(
         BrowserThread::IO, FROM_HERE,
-        base::BindOnce(&PushMessagingManager::PersistRegistrationOnIO,
-                       io_parent_, std::move(data), push_registration_id,
-                       p256dh, auth));
+        base::BindOnce(
+            &PushMessagingManager::PersistRegistrationOnIO, io_parent_,
+            std::move(data), push_subscription_id, p256dh, auth,
+            subscription_changed
+                ? mojom::PushRegistrationStatus::
+                      SUCCESS_NEW_SUBSCRIPTION_FROM_PUSH_SERVICE
+                : mojom::PushRegistrationStatus::SUCCESS_FROM_PUSH_SERVICE));
   } else {
     BrowserThread::PostTask(
         BrowserThread::IO, FROM_HERE,
@@ -606,34 +547,35 @@
 
 void PushMessagingManager::PersistRegistrationOnIO(
     RegisterData data,
-    const std::string& push_registration_id,
+    const std::string& push_subscription_id,
     const std::vector<uint8_t>& p256dh,
-    const std::vector<uint8_t>& auth) {
+    const std::vector<uint8_t>& auth,
+    mojom::PushRegistrationStatus status) {
   DCHECK_CURRENTLY_ON(BrowserThread::IO);
   GURL requesting_origin = data.requesting_origin;
   int64_t registration_id = data.service_worker_registration_id;
   std::string sender_info = data.options.sender_info;
+
   service_worker_context_->StoreRegistrationUserData(
       registration_id, requesting_origin,
-      {{kPushRegistrationIdServiceWorkerKey, push_registration_id},
+      {{kPushRegistrationIdServiceWorkerKey, push_subscription_id},
        {kPushSenderIdServiceWorkerKey, sender_info}},
       base::Bind(&PushMessagingManager::DidPersistRegistrationOnIO,
                  weak_factory_io_to_io_.GetWeakPtr(), base::Passed(&data),
-                 push_registration_id, p256dh, auth));
+                 push_subscription_id, p256dh, auth, status));
 }
 
 void PushMessagingManager::DidPersistRegistrationOnIO(
     RegisterData data,
-    const std::string& push_registration_id,
+    const std::string& push_subscription_id,
     const std::vector<uint8_t>& p256dh,
     const std::vector<uint8_t>& auth,
+    mojom::PushRegistrationStatus push_registration_status,
     ServiceWorkerStatusCode service_worker_status) {
   DCHECK_CURRENTLY_ON(BrowserThread::IO);
   if (service_worker_status == SERVICE_WORKER_OK) {
-    SendSubscriptionSuccess(
-        std::move(data),
-        mojom::PushRegistrationStatus::SUCCESS_FROM_PUSH_SERVICE,
-        push_registration_id, p256dh, auth);
+    SendSubscriptionSuccess(std::move(data), push_registration_status,
+                            push_subscription_id, p256dh, auth);
   } else {
     // TODO(johnme): Unregister, so PushMessagingServiceImpl can decrease count.
     SendSubscriptionError(std::move(data),
diff --git a/content/browser/push_messaging/push_messaging_manager.h b/content/browser/push_messaging/push_messaging_manager.h
index 33195729..e064154 100644
--- a/content/browser/push_messaging/push_messaging_manager.h
+++ b/content/browser/push_messaging/push_messaging_manager.h
@@ -64,7 +64,7 @@
 
   void DidCheckForExistingRegistration(
       RegisterData data,
-      const std::vector<std::string>& push_registration_id,
+      const std::vector<std::string>& subscription_id_and_sender_id,
       ServiceWorkerStatusCode service_worker_status);
 
   void DidGetSenderIdFromStorage(RegisterData data,
@@ -73,15 +73,17 @@
 
   // Called via PostTask from UI thread.
   void PersistRegistrationOnIO(RegisterData data,
-                               const std::string& push_registration_id,
+                               const std::string& push_subscription_id,
                                const std::vector<uint8_t>& p256dh,
-                               const std::vector<uint8_t>& auth);
+                               const std::vector<uint8_t>& auth,
+                               mojom::PushRegistrationStatus status);
 
   void DidPersistRegistrationOnIO(
       RegisterData data,
-      const std::string& push_registration_id,
+      const std::string& push_subscription_id,
       const std::vector<uint8_t>& p256dh,
       const std::vector<uint8_t>& auth,
+      mojom::PushRegistrationStatus push_registration_status,
       ServiceWorkerStatusCode service_worker_status);
 
   // Called both from IO thread, and via PostTask from UI thread.
diff --git a/content/browser/quota_dispatcher_host.h b/content/browser/quota_dispatcher_host.h
index 7366a98..1f706b0a 100644
--- a/content/browser/quota_dispatcher_host.h
+++ b/content/browser/quota_dispatcher_host.h
@@ -7,7 +7,7 @@
 
 #include "base/macros.h"
 #include "content/public/browser/quota_permission_context.h"
-#include "third_party/WebKit/common/quota/quota_dispatcher_host.mojom.h"
+#include "third_party/WebKit/public/mojom/quota/quota_dispatcher_host.mojom.h"
 
 namespace storage {
 class QuotaManager;
diff --git a/content/browser/renderer_host/delegated_frame_host.cc b/content/browser/renderer_host/delegated_frame_host.cc
index db7b0777..ed449be 100644
--- a/content/browser/renderer_host/delegated_frame_host.cc
+++ b/content/browser/renderer_host/delegated_frame_host.cc
@@ -130,25 +130,22 @@
 void DelegatedFrameHost::CopyFromCompositingSurface(
     const gfx::Rect& src_subrect,
     const gfx::Size& output_size,
-    const ReadbackRequestCallback& callback,
-    const SkColorType preferred_color_type) {
-  // TODO(crbug/759310): Only NavigationEntryScreenshotManager needs grayscale.
-  // Move that transformation to there; and then remove |preferred_color_type|
-  // from this API and the end-to-end code path.
-  DCHECK(preferred_color_type == kN32_SkColorType ||
-         preferred_color_type == kAlpha_8_SkColorType);
-
+    base::OnceCallback<void(const SkBitmap&)> callback) {
   if (!CanCopyFromCompositingSurface() ||
       current_frame_size_in_dip_.IsEmpty()) {
-    callback.Run(SkBitmap(), content::READBACK_SURFACE_UNAVAILABLE);
+    std::move(callback).Run(SkBitmap());
     return;
   }
 
   std::unique_ptr<viz::CopyOutputRequest> request =
       std::make_unique<viz::CopyOutputRequest>(
           viz::CopyOutputRequest::ResultFormat::RGBA_BITMAP,
-          base::BindOnce(&CopyFromCompositingSurfaceHasResult, gfx::Size(),
-                         preferred_color_type, callback));
+          base::BindOnce(
+              [](base::OnceCallback<void(const SkBitmap&)> callback,
+                 std::unique_ptr<viz::CopyOutputResult> result) {
+                std::move(callback).Run(result->AsSkBitmap());
+              },
+              std::move(callback)));
 
   if (src_subrect.IsEmpty()) {
     request->set_area(gfx::Rect(current_frame_size_in_dip_));
diff --git a/content/browser/renderer_host/delegated_frame_host.h b/content/browser/renderer_host/delegated_frame_host.h
index 7aa0d9d..e498d9e 100644
--- a/content/browser/renderer_host/delegated_frame_host.h
+++ b/content/browser/renderer_host/delegated_frame_host.h
@@ -143,10 +143,10 @@
   // Note: |src_subrect| is specified in DIP dimensions while |output_size|
   // expects pixels. If |src_subrect| is empty, the entire surface area is
   // copied.
-  void CopyFromCompositingSurface(const gfx::Rect& src_subrect,
-                                  const gfx::Size& output_size,
-                                  const ReadbackRequestCallback& callback,
-                                  const SkColorType preferred_color_type);
+  void CopyFromCompositingSurface(
+      const gfx::Rect& src_subrect,
+      const gfx::Size& output_size,
+      base::OnceCallback<void(const SkBitmap&)> callback);
   bool CanCopyFromCompositingSurface() const;
   const viz::FrameSinkId& frame_sink_id() const { return frame_sink_id_; }
 
diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc
index 34c29c3..8c34d8e7a 100644
--- a/content/browser/renderer_host/render_process_host_impl.cc
+++ b/content/browser/renderer_host/render_process_host_impl.cc
@@ -39,6 +39,7 @@
 #include "base/metrics/persistent_memory_allocator.h"
 #include "base/metrics/statistics_recorder.h"
 #include "base/metrics/user_metrics.h"
+#include "base/no_destructor.h"
 #include "base/process/process_handle.h"
 #include "base/rand_util.h"
 #include "base/single_thread_task_runner.h"
@@ -280,6 +281,9 @@
 const RenderProcessHostFactory* g_render_process_host_factory_ = nullptr;
 const char kSiteProcessMapKeyName[] = "content_site_process_map";
 
+RenderProcessHost::AnalyzeHungRendererFunction g_analyze_hung_renderer =
+    nullptr;
+
 #if BUILDFLAG(ENABLE_WEBRTC)
 const base::FilePath::CharType kAecDumpFileNameAddition[] =
     FILE_PATH_LITERAL("aec_dump");
@@ -3649,6 +3653,12 @@
       // TERMINATION_STATUS_STILL_RUNNING, since this will break WebContentsImpl
       // logic.
       status = base::TERMINATION_STATUS_PROCESS_CRASHED;
+
+// TODO(siggi): Remove this once https://crbug.com/806661 is resolved.
+#if defined(OS_WIN)
+      if (exit_code == WAIT_TIMEOUT && g_analyze_hung_renderer)
+        g_analyze_hung_renderer(child_process_launcher_->GetProcess());
+#endif
     }
   }
 
@@ -3727,6 +3737,12 @@
   new RenderProcessHostIsReadyObserver(this, std::move(task));
 }
 
+// static
+void RenderProcessHost::SetHungRendererAnalysisFunction(
+    AnalyzeHungRendererFunction analyze_hung_renderer) {
+  g_analyze_hung_renderer = analyze_hung_renderer;
+}
+
 void RenderProcessHostImpl::ReleaseOnCloseACK(
     RenderProcessHost* host,
     const SessionStorageNamespaceMap& sessions,
diff --git a/content/browser/renderer_host/render_widget_host_browsertest.cc b/content/browser/renderer_host/render_widget_host_browsertest.cc
index 6b225e8..492566c1 100644
--- a/content/browser/renderer_host/render_widget_host_browsertest.cc
+++ b/content/browser/renderer_host/render_widget_host_browsertest.cc
@@ -48,17 +48,14 @@
   // The browser process should be allowed to make a CopyOutputRequest.
   bool did_receive_copy_result = false;
   base::RunLoop run_loop;
-  view->CopyFromSurface(
-      gfx::Rect(), gfx::Size(),
-      // TODO(crbug/759310): This should be a OnceCallback.
-      base::BindRepeating(
-          [](bool* success, base::OnceClosure quit_closure,
-             const SkBitmap& bitmap, ReadbackResponse response) {
-            *success = (response == READBACK_SUCCESS && bitmap.readyToDraw());
-            std::move(quit_closure).Run();
-          },
-          &did_receive_copy_result, run_loop.QuitClosure()),
-      kN32_SkColorType);
+  view->CopyFromSurface(gfx::Rect(), gfx::Size(),
+                        base::BindOnce(
+                            [](bool* success, base::OnceClosure quit_closure,
+                               const SkBitmap& bitmap) {
+                              *success = !bitmap.drawsNothing();
+                              std::move(quit_closure).Run();
+                            },
+                            &did_receive_copy_result, run_loop.QuitClosure()));
   run_loop.Run();
   ASSERT_TRUE(did_receive_copy_result);
 
diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc
index 2937655..8cf370ed 100644
--- a/content/browser/renderer_host/render_widget_host_impl.cc
+++ b/content/browser/renderer_host/render_widget_host_impl.cc
@@ -2524,9 +2524,8 @@
   if (!pending_surface_browser_snapshots_.empty()) {
     GetView()->CopyFromSurface(
         gfx::Rect(), gfx::Size(),
-        base::Bind(&RenderWidgetHostImpl::OnSnapshotFromSurfaceReceived,
-                   weak_factory_.GetWeakPtr(), snapshot_id, 0),
-        kN32_SkColorType);
+        base::BindOnce(&RenderWidgetHostImpl::OnSnapshotFromSurfaceReceived,
+                       weak_factory_.GetWeakPtr(), snapshot_id, 0));
   }
 
   if (!pending_browser_snapshots_.empty()) {
@@ -2556,20 +2555,19 @@
 void RenderWidgetHostImpl::OnSnapshotFromSurfaceReceived(
     int snapshot_id,
     int retry_count,
-    const SkBitmap& bitmap,
-    ReadbackResponse response) {
-  static const int kMaxRetries = 5;
-  if (response != READBACK_SUCCESS && retry_count < kMaxRetries) {
+    const SkBitmap& bitmap) {
+  static constexpr int kMaxRetries = 5;
+  if (bitmap.drawsNothing() && retry_count < kMaxRetries) {
     GetView()->CopyFromSurface(
         gfx::Rect(), gfx::Size(),
-        base::Bind(&RenderWidgetHostImpl::OnSnapshotFromSurfaceReceived,
-                   weak_factory_.GetWeakPtr(), snapshot_id, retry_count + 1),
-        kN32_SkColorType);
+        base::BindOnce(&RenderWidgetHostImpl::OnSnapshotFromSurfaceReceived,
+                       weak_factory_.GetWeakPtr(), snapshot_id,
+                       retry_count + 1));
     return;
   }
   // If all retries have failed, we return an empty image.
   gfx::Image image;
-  if (response == READBACK_SUCCESS)
+  if (!bitmap.drawsNothing())
     image = gfx::Image::CreateFrom1xBitmap(bitmap);
   // Any pending snapshots with a lower ID than the one received are considered
   // to be implicitly complete, and returned the same snapshot data.
diff --git a/content/browser/renderer_host/render_widget_host_impl.h b/content/browser/renderer_host/render_widget_host_impl.h
index 52c7a53..e556837 100644
--- a/content/browser/renderer_host/render_widget_host_impl.h
+++ b/content/browser/renderer_host/render_widget_host_impl.h
@@ -805,8 +805,7 @@
 
   void OnSnapshotFromSurfaceReceived(int snapshot_id,
                                      int retry_count,
-                                     const SkBitmap& bitmap,
-                                     ReadbackResponse response);
+                                     const SkBitmap& bitmap);
 
   void OnSnapshotReceived(int snapshot_id, gfx::Image image);
 
diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/content/browser/renderer_host/render_widget_host_view_android.cc
index 03fcc5a..fa21e95 100644
--- a/content/browser/renderer_host/render_widget_host_view_android.cc
+++ b/content/browser/renderer_host/render_widget_host_view_android.cc
@@ -811,22 +811,17 @@
 void RenderWidgetHostViewAndroid::CopyFromSurface(
     const gfx::Rect& src_subrect,
     const gfx::Size& output_size,
-    const ReadbackRequestCallback& callback,
-    const SkColorType preferred_color_type) {
-  // TODO(crbug/759310): |preferred_color_type| will be removed from this API
-  // soon.
-  DCHECK_EQ(preferred_color_type, kN32_SkColorType);
-
+    base::OnceCallback<void(const SkBitmap&)> callback) {
   TRACE_EVENT0("cc", "RenderWidgetHostViewAndroid::CopyFromSurface");
   if (!IsSurfaceAvailableForCopy()) {
-    callback.Run(SkBitmap(), READBACK_SURFACE_UNAVAILABLE);
+    std::move(callback).Run(SkBitmap());
     return;
   }
 
   base::TimeTicks start_time = base::TimeTicks::Now();
 
   if (!using_browser_compositor_) {
-    SynchronousCopyContents(src_subrect, output_size, callback);
+    SynchronousCopyContents(src_subrect, output_size, std::move(callback));
     UMA_HISTOGRAM_TIMES("Compositing.CopyFromSurfaceTimeSynchronous",
                         base::TimeTicks::Now() - start_time);
     return;
@@ -836,16 +831,15 @@
   delegated_frame_host_->CopyFromCompositingSurface(
       src_subrect, output_size,
       base::BindOnce(
-          [](const ReadbackRequestCallback& callback,
+          [](base::OnceCallback<void(const SkBitmap&)> callback,
              base::TimeTicks start_time, const SkBitmap& bitmap) {
             TRACE_EVENT0(
                 "cc", "RenderWidgetHostViewAndroid::CopyFromSurface finished");
             UMA_HISTOGRAM_TIMES(kAsyncReadBackString,
                                 base::TimeTicks::Now() - start_time);
-            callback.Run(bitmap, bitmap.drawsNothing() ? READBACK_FAILED
-                                                       : READBACK_SUCCESS);
+            std::move(callback).Run(bitmap);
           },
-          callback, start_time));
+          std::move(callback), start_time));
 }
 
 void RenderWidgetHostViewAndroid::ShowDisambiguationPopup(
@@ -1132,7 +1126,7 @@
 void RenderWidgetHostViewAndroid::SynchronousCopyContents(
     const gfx::Rect& src_subrect_dip,
     const gfx::Size& dst_size_in_pixel,
-    const ReadbackRequestCallback& callback) {
+    base::OnceCallback<void(const SkBitmap&)> callback) {
   // Note: When |src_subrect| is empty, a conversion from the view size must
   // be made instead of using |current_frame_size_|. The latter sometimes also
   // includes extra height for the toolbar UI, which is not intended for
@@ -1156,7 +1150,7 @@
   int output_height = output_size_in_pixel.height();
 
   if (!sync_compositor_) {
-    callback.Run(SkBitmap(), READBACK_FAILED);
+    std::move(callback).Run(SkBitmap());
     return;
   }
 
@@ -1167,7 +1161,7 @@
       (float)output_width / (float)input_size_in_pixel.width(),
       (float)output_height / (float)input_size_in_pixel.height());
   sync_compositor_->DemandDrawSw(&canvas);
-  callback.Run(bitmap, READBACK_SUCCESS);
+  std::move(callback).Run(bitmap);
 }
 
 WebContentsAccessibilityAndroid*
diff --git a/content/browser/renderer_host/render_widget_host_view_android.h b/content/browser/renderer_host/render_widget_host_view_android.h
index 3013a5a..71b2d2c 100644
--- a/content/browser/renderer_host/render_widget_host_view_android.h
+++ b/content/browser/renderer_host/render_widget_host_view_android.h
@@ -27,7 +27,6 @@
 #include "content/browser/renderer_host/render_widget_host_view_base.h"
 #include "content/browser/renderer_host/text_input_manager.h"
 #include "content/common/content_export.h"
-#include "content/public/browser/readback_types.h"
 #include "gpu/command_buffer/common/mailbox.h"
 #include "third_party/skia/include/core/SkColor.h"
 #include "ui/android/delegated_frame_host_android.h"
@@ -120,10 +119,10 @@
   gfx::Size GetVisibleViewportSize() const override;
   gfx::Size GetPhysicalBackingSize() const override;
   bool IsSurfaceAvailableForCopy() const override;
-  void CopyFromSurface(const gfx::Rect& src_rect,
-                       const gfx::Size& output_size,
-                       const ReadbackRequestCallback& callback,
-                       const SkColorType color_type) override;
+  void CopyFromSurface(
+      const gfx::Rect& src_rect,
+      const gfx::Size& output_size,
+      base::OnceCallback<void(const SkBitmap&)> callback) override;
   bool DoBrowserControlsShrinkBlinkSize() const override;
   float GetTopControlsHeight() const override;
   float GetBottomControlsHeight() const override;
@@ -353,9 +352,10 @@
   void EvictFrameIfNecessary();
 
   // DevTools ScreenCast support for Android WebView.
-  void SynchronousCopyContents(const gfx::Rect& src_subrect_dip,
-                               const gfx::Size& dst_size_in_pixel,
-                               const ReadbackRequestCallback& callback);
+  void SynchronousCopyContents(
+      const gfx::Rect& src_subrect_dip,
+      const gfx::Size& dst_size_in_pixel,
+      base::OnceCallback<void(const SkBitmap&)> callback);
 
   void DestroyDelegatedContent();
   void OnLostResources();
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 daea689..087bc63 100644
--- a/content/browser/renderer_host/render_widget_host_view_aura.cc
+++ b/content/browser/renderer_host/render_widget_host_view_aura.cc
@@ -891,14 +891,13 @@
 void RenderWidgetHostViewAura::CopyFromSurface(
     const gfx::Rect& src_subrect,
     const gfx::Size& dst_size,
-    const ReadbackRequestCallback& callback,
-    const SkColorType preferred_color_type) {
+    base::OnceCallback<void(const SkBitmap&)> callback) {
   if (!IsSurfaceAvailableForCopy()) {
-    callback.Run(SkBitmap(), READBACK_SURFACE_UNAVAILABLE);
+    std::move(callback).Run(SkBitmap());
     return;
   }
-  delegated_frame_host_->CopyFromCompositingSurface(
-      src_subrect, dst_size, callback, preferred_color_type);
+  delegated_frame_host_->CopyFromCompositingSurface(src_subrect, dst_size,
+                                                    std::move(callback));
 }
 
 #if defined(OS_WIN)
diff --git a/content/browser/renderer_host/render_widget_host_view_aura.h b/content/browser/renderer_host/render_widget_host_view_aura.h
index 9d831e1c..1db26ca 100644
--- a/content/browser/renderer_host/render_widget_host_view_aura.h
+++ b/content/browser/renderer_host/render_widget_host_view_aura.h
@@ -142,10 +142,10 @@
   void SetTooltipText(const base::string16& tooltip_text) override;
   gfx::Size GetRequestedRendererSize() const override;
   bool IsSurfaceAvailableForCopy() const override;
-  void CopyFromSurface(const gfx::Rect& src_rect,
-                       const gfx::Size& output_size,
-                       const ReadbackRequestCallback& callback,
-                       const SkColorType color_type) override;
+  void CopyFromSurface(
+      const gfx::Rect& src_rect,
+      const gfx::Size& output_size,
+      base::OnceCallback<void(const SkBitmap&)> callback) override;
   gfx::Vector2d GetOffsetFromRootSurface() override;
   gfx::Rect GetBoundsInRootWindow() override;
   void WheelEventAck(const blink::WebMouseWheelEvent& event,
diff --git a/content/browser/renderer_host/render_widget_host_view_base.cc b/content/browser/renderer_host/render_widget_host_view_base.cc
index b7a49f7..151c87cd 100644
--- a/content/browser/renderer_host/render_widget_host_view_base.cc
+++ b/content/browser/renderer_host/render_widget_host_view_base.cc
@@ -164,10 +164,9 @@
 void RenderWidgetHostViewBase::CopyFromSurface(
     const gfx::Rect& src_rect,
     const gfx::Size& output_size,
-    const ReadbackRequestCallback& callback,
-    const SkColorType color_type) {
+    base::OnceCallback<void(const SkBitmap&)> callback) {
   NOTIMPLEMENTED();
-  callback.Run(SkBitmap(), READBACK_SURFACE_UNAVAILABLE);
+  std::move(callback).Run(SkBitmap());
 }
 
 base::string16 RenderWidgetHostViewBase::GetSelectedText() {
diff --git a/content/browser/renderer_host/render_widget_host_view_base.h b/content/browser/renderer_host/render_widget_host_view_base.h
index 4a977af1..06f2793 100644
--- a/content/browser/renderer_host/render_widget_host_view_base.h
+++ b/content/browser/renderer_host/render_widget_host_view_base.h
@@ -114,10 +114,10 @@
   gfx::Size GetVisibleViewportSize() const override;
   void SetInsets(const gfx::Insets& insets) override;
   bool IsSurfaceAvailableForCopy() const override;
-  void CopyFromSurface(const gfx::Rect& src_rect,
-                       const gfx::Size& output_size,
-                       const ReadbackRequestCallback& callback,
-                       const SkColorType color_type) override;
+  void CopyFromSurface(
+      const gfx::Rect& src_rect,
+      const gfx::Size& output_size,
+      base::OnceCallback<void(const SkBitmap&)> callback) override;
   void FocusedNodeTouched(const gfx::Point& location_dips_screen,
                           bool editable) override;
   void GetScreenInfo(ScreenInfo* screen_info) const override;
diff --git a/content/browser/renderer_host/render_widget_host_view_browsertest.cc b/content/browser/renderer_host/render_widget_host_view_browsertest.cc
index 0990c416..26f9a5b 100644
--- a/content/browser/renderer_host/render_widget_host_view_browsertest.cc
+++ b/content/browser/renderer_host/render_widget_host_view_browsertest.cc
@@ -107,13 +107,10 @@
 
   // Callback when using CopyFromSurface() API.
   void FinishCopyFromSurface(const base::Closure& quit_closure,
-                             const SkBitmap& bitmap,
-                             ReadbackResponse response) {
+                             const SkBitmap& bitmap) {
     ++callback_invoke_count_;
-    if (response == READBACK_SUCCESS) {
+    if (!bitmap.drawsNothing())
       ++frames_captured_;
-      EXPECT_FALSE(bitmap.empty());
-    }
     if (!quit_closure.is_null())
       quit_closure.Run();
   }
@@ -290,11 +287,8 @@
     base::RunLoop run_loop;
     GetRenderWidgetHostView()->CopyFromSurface(
         gfx::Rect(), frame_size(),
-        // TODO(crbug/759310): This should be a OnceCallback.
-        base::BindRepeating(
-            &RenderWidgetHostViewBrowserTest::FinishCopyFromSurface,
-            base::Unretained(this), run_loop.QuitClosure()),
-        kN32_SkColorType);
+        base::BindOnce(&RenderWidgetHostViewBrowserTest::FinishCopyFromSurface,
+                       base::Unretained(this), run_loop.QuitClosure()));
     run_loop.Run();
 
     if (frames_captured())
@@ -322,9 +316,8 @@
   base::RunLoop run_loop;
   GetRenderWidgetHostView()->CopyFromSurface(
       gfx::Rect(), frame_size(),
-      base::Bind(&RenderWidgetHostViewBrowserTest::FinishCopyFromSurface,
-                 base::Unretained(this), run_loop.QuitClosure()),
-      kN32_SkColorType);
+      base::BindOnce(&RenderWidgetHostViewBrowserTest::FinishCopyFromSurface,
+                     base::Unretained(this), run_loop.QuitClosure()));
   shell()->web_contents()->Close();
   run_loop.Run();
 
@@ -335,18 +328,17 @@
     : public CompositingRenderWidgetHostViewBrowserTest {
  public:
   CompositingRenderWidgetHostViewBrowserTestTabCapture()
-      : readback_response_(READBACK_NO_RESPONSE),
+      : readback_result_(READBACK_NO_RESPONSE),
         allowable_error_(0),
         test_url_("data:text/html,<!doctype html>") {}
 
-  void ReadbackRequestCallbackTest(base::Closure quit_callback,
-                                   const SkBitmap& bitmap,
-                                   ReadbackResponse response) {
-    readback_response_ = response;
-    if (response != READBACK_SUCCESS) {
-      quit_callback.Run();
+  void VerifyResult(base::OnceClosure quit_callback, const SkBitmap& bitmap) {
+    if (bitmap.drawsNothing()) {
+      readback_result_ = READBACK_FAILED;
+      std::move(quit_callback).Run();
       return;
     }
+    readback_result_ = READBACK_SUCCESS;
 
     // Check that the |bitmap| contains cyan and/or yellow pixels.  This is
     // needed because the compositor will read back "blank" frames until the
@@ -375,8 +367,8 @@
       }
     }
     if (!contains_a_test_color) {
-      readback_response_ = READBACK_NO_TEST_COLORS;
-      quit_callback.Run();
+      readback_result_ = READBACK_NO_TEST_COLORS;
+      std::move(quit_callback).Run();
       return;
     }
 
@@ -387,8 +379,8 @@
     EXPECT_EQ(expected_bitmap.height(), bitmap.height());
     if (expected_bitmap.width() != bitmap.width() ||
         expected_bitmap.height() != bitmap.height()) {
-      readback_response_ = READBACK_INCORRECT_RESULT_SIZE;
-      quit_callback.Run();
+      readback_result_ = READBACK_INCORRECT_RESULT_SIZE;
+      std::move(quit_callback).Run();
       return;
     }
     EXPECT_EQ(expected_bitmap.colorType(), bitmap.colorType());
@@ -432,7 +424,7 @@
     }
     EXPECT_LT(fails, 10);
 
-    quit_callback.Run();
+    std::move(quit_callback).Run();
   }
 
   void SetAllowableError(int amount) { allowable_error_ = amount; }
@@ -511,7 +503,7 @@
 
       // Request readback.  The callbacks will examine the pixels in the
       // SkBitmap result if readback was successful.
-      readback_response_ = READBACK_NO_RESPONSE;
+      readback_result_ = READBACK_NO_RESPONSE;
       // Skia rendering can cause color differences, particularly in the
       // middle two columns.
       SetAllowableError(2);
@@ -519,20 +511,18 @@
           gfx::Rect(output_size.width() / 2 - 1, 0, 2, output_size.height()));
 
       base::RunLoop run_loop;
-      const ReadbackRequestCallback callback =
-          // TODO(crbug/807843): This should be BindOnce.
-          base::BindRepeating(
-              &CompositingRenderWidgetHostViewBrowserTestTabCapture::
-                  ReadbackRequestCallbackTest,
-              base::Unretained(this), run_loop.QuitClosure());
-      rwhv->CopyFromSurface(copy_rect, output_size, callback, kN32_SkColorType);
+      rwhv->CopyFromSurface(
+          copy_rect, output_size,
+          base::BindOnce(&CompositingRenderWidgetHostViewBrowserTestTabCapture::
+                             VerifyResult,
+                         base::Unretained(this), run_loop.QuitClosure()));
       run_loop.Run();
 
       // If the readback operation did not provide a frame, log the reason
       // to aid in future debugging.  This information will also help determine
       // whether the implementation is broken, or a test bot is in a bad state.
       // clang-format off
-      switch (readback_response_) {
+      switch (readback_result_) {
         case READBACK_SUCCESS:
           break;
         #define CASE_LOG_READBACK_WARNING(enum_value)                    \
@@ -541,17 +531,15 @@
                          << attempt_count << ").  Reason: " #enum_value; \
             break
         CASE_LOG_READBACK_WARNING(READBACK_FAILED);
-        CASE_LOG_READBACK_WARNING(READBACK_SURFACE_UNAVAILABLE);
-        CASE_LOG_READBACK_WARNING(READBACK_BITMAP_ALLOCATION_FAILURE);
         CASE_LOG_READBACK_WARNING(READBACK_NO_TEST_COLORS);
         CASE_LOG_READBACK_WARNING(READBACK_INCORRECT_RESULT_SIZE);
         default:
           LOG(ERROR)
-              << "Invalid readback response value: " << readback_response_;
+              << "Invalid readback response value: " << readback_result_;
           NOTREACHED();
       }
       // clang-format on
-    } while (readback_response_ != READBACK_SUCCESS &&
+    } while (readback_result_ != READBACK_SUCCESS &&
              !testing::Test::HasFailure());
   }
 
@@ -571,10 +559,11 @@
   }
 
  protected:
-  // Additional ReadbackResponse enum values only used within this test module,
-  // to distinguish readback exception cases further.
-  enum ExtraReadbackResponsesForTest {
-    READBACK_NO_RESPONSE = -1337,
+  // An enum to distinguish between reasons for result verify failures.
+  enum ReadbackResult {
+    READBACK_NO_RESPONSE,
+    READBACK_SUCCESS,
+    READBACK_FAILED,
     READBACK_NO_TEST_COLORS,
     READBACK_INCORRECT_RESULT_SIZE,
   };
@@ -584,9 +573,7 @@
   }
 
  private:
-  // |readback_response_| is always a content::ReadbackResponse or
-  // ExtraReadbackResponsesForTest enum value.
-  int readback_response_;
+  ReadbackResult readback_result_;
   SkBitmap expected_copy_from_compositing_surface_bitmap_;
   int allowable_error_;
   gfx::Rect exclude_rect_;
diff --git a/content/browser/renderer_host/render_widget_host_view_child_frame.cc b/content/browser/renderer_host/render_widget_host_view_child_frame.cc
index 9ea64b2..4f8390b 100644
--- a/content/browser/renderer_host/render_widget_host_view_child_frame.cc
+++ b/content/browser/renderer_host/render_widget_host_view_child_frame.cc
@@ -641,12 +641,12 @@
 }
 
 void RenderWidgetHostViewChildFrame::ProcessFrameSwappedCallbacks() {
-  // We only use callbacks once, therefore we make a new list for registration
-  // before we start, and discard the old list entries when we are done.
-  FrameSwappedCallbackList process_callbacks;
+  std::vector<base::OnceClosure> process_callbacks;
+  // Swap the vectors to avoid re-entrancy issues due to calls to
+  // RegisterFrameSwappedCallback() while running the OnceClosures.
   process_callbacks.swap(frame_swapped_callbacks_);
-  for (std::unique_ptr<base::Closure>& callback : process_callbacks)
-    callback->Run();
+  for (base::OnceClosure& callback : process_callbacks)
+    std::move(callback).Run();
 }
 
 gfx::Vector2d RenderWidgetHostViewChildFrame::GetOffsetFromRootSurface() {
@@ -836,53 +836,38 @@
 #endif  // defined(OS_MACOSX)
 
 void RenderWidgetHostViewChildFrame::RegisterFrameSwappedCallback(
-    std::unique_ptr<base::Closure> callback) {
-  frame_swapped_callbacks_.push_back(std::move(callback));
+    base::OnceClosure callback) {
+  frame_swapped_callbacks_.emplace_back(std::move(callback));
 }
 
 void RenderWidgetHostViewChildFrame::CopyFromSurface(
-    const gfx::Rect& src_rect,
+    const gfx::Rect& src_subrect,
     const gfx::Size& output_size,
-    const ReadbackRequestCallback& callback,
-    const SkColorType preferred_color_type) {
-  // TODO(crbug/759310): Only NavigationEntryScreenshotManager needs grayscale.
-  // Move that transformation to there; and then remove |preferred_color_type|
-  // from this API and the end-to-end code path.
-  DCHECK(preferred_color_type == kN32_SkColorType ||
-         preferred_color_type == kAlpha_8_SkColorType);
+    base::OnceCallback<void(const SkBitmap&)> callback) {
+  // TODO(crbug.com/812059): Need a "copy from surface" VIZ API.
+  if (enable_viz_) {
+    std::move(callback).Run(SkBitmap());
+    return;
+  }
 
   if (!IsSurfaceAvailableForCopy()) {
     // Defer submitting the copy request until after a frame is drawn, at which
     // point we should be guaranteed that the surface is available.
-    RegisterFrameSwappedCallback(std::make_unique<base::Closure>(base::Bind(
-        &RenderWidgetHostViewChildFrame::SubmitSurfaceCopyRequest, AsWeakPtr(),
-        src_rect, output_size, callback, preferred_color_type)));
+    RegisterFrameSwappedCallback(base::BindOnce(
+        &RenderWidgetHostViewChildFrame::CopyFromSurface, AsWeakPtr(),
+        src_subrect, output_size, std::move(callback)));
     return;
   }
 
-  SubmitSurfaceCopyRequest(src_rect, output_size, callback,
-                           preferred_color_type);
-}
-
-void RenderWidgetHostViewChildFrame::SubmitSurfaceCopyRequest(
-    const gfx::Rect& src_subrect,
-    const gfx::Size& output_size,
-    const ReadbackRequestCallback& callback,
-    const SkColorType preferred_color_type) {
-  // TODO(crbug.com/812059): Need a "copy from surface" VIZ API.
-  if (enable_viz_) {
-    callback.Run(SkBitmap(), content::READBACK_SURFACE_UNAVAILABLE);
-    return;
-  }
-
-  DCHECK(IsSurfaceAvailableForCopy());
-  DCHECK(support_);
-
   std::unique_ptr<viz::CopyOutputRequest> request =
       std::make_unique<viz::CopyOutputRequest>(
           viz::CopyOutputRequest::ResultFormat::RGBA_BITMAP,
-          base::BindOnce(&CopyFromCompositingSurfaceHasResult, gfx::Size(),
-                         preferred_color_type, callback));
+          base::BindOnce(
+              [](base::OnceCallback<void(const SkBitmap&)> callback,
+                 std::unique_ptr<viz::CopyOutputResult> result) {
+                std::move(callback).Run(result->AsSkBitmap());
+              },
+              std::move(callback)));
 
   if (src_subrect.IsEmpty()) {
     request->set_area(gfx::Rect(current_surface_size_));
diff --git a/content/browser/renderer_host/render_widget_host_view_child_frame.h b/content/browser/renderer_host/render_widget_host_view_child_frame.h
index f1972ceb..a03a87b 100644
--- a/content/browser/renderer_host/render_widget_host_view_child_frame.h
+++ b/content/browser/renderer_host/render_widget_host_view_child_frame.h
@@ -12,7 +12,6 @@
 #include <vector>
 
 #include "base/callback.h"
-#include "base/containers/circular_deque.h"
 #include "base/gtest_prod_util.h"
 #include "base/macros.h"
 #include "build/build_config.h"
@@ -24,7 +23,6 @@
 #include "content/browser/renderer_host/event_with_latency_info.h"
 #include "content/browser/renderer_host/render_widget_host_view_base.h"
 #include "content/common/content_export.h"
-#include "content/public/browser/readback_types.h"
 #include "content/public/browser/touch_selection_controller_client_manager.h"
 #include "content/public/common/input_event_ack_state.h"
 #include "services/viz/public/interfaces/compositing/compositor_frame_sink.mojom.h"
@@ -78,9 +76,11 @@
   // ProcessCompositorFrame, which is the appropriate time to request pixel
   // readback for the frame that is about to be drawn. Once called, the callback
   // pointer is released.
-  // TODO(wjmaclean): We should consider making this available in other view
-  // types, such as RenderWidgetHostViewAura.
-  void RegisterFrameSwappedCallback(std::unique_ptr<base::Closure> callback);
+  // TODO(crbug.com/787941): This should be removed because it doesn't work when
+  // VIZ display compositing is enabled. The public CopyFromSurface() API does
+  // not make guarantees that it will succeed before the first frame is
+  // composited.
+  void RegisterFrameSwappedCallback(base::OnceClosure callback);
 
   // TouchSelectionControllerClientManager::Observer implementation.
   void OnManagerWillDestroy(
@@ -93,10 +93,10 @@
   void Focus() override;
   bool HasFocus() const override;
   bool IsSurfaceAvailableForCopy() const override;
-  void CopyFromSurface(const gfx::Rect& src_rect,
-                       const gfx::Size& output_size,
-                       const ReadbackRequestCallback& callback,
-                       const SkColorType color_type) override;
+  void CopyFromSurface(
+      const gfx::Rect& src_rect,
+      const gfx::Size& output_size,
+      base::OnceCallback<void(const SkBitmap&)> callback) override;
   void Show() override;
   void Hide() override;
   bool IsShowing() override;
@@ -294,11 +294,6 @@
   virtual void SendSurfaceInfoToEmbedderImpl(
       const viz::SurfaceInfo& surface_info);
 
-  void SubmitSurfaceCopyRequest(const gfx::Rect& src_subrect,
-                                const gfx::Size& dst_size,
-                                const ReadbackRequestCallback& callback,
-                                const SkColorType preferred_color_type);
-
   void CreateCompositorFrameSinkSupport();
   void ResetCompositorFrameSinkSupport();
   void DetachFromTouchSelectionClientManagerIfNecessary();
@@ -310,11 +305,7 @@
   // using CSS.
   bool CanBecomeVisible();
 
-  using FrameSwappedCallbackList =
-      base::circular_deque<std::unique_ptr<base::Closure>>;
-  // Since frame-drawn callbacks are "fire once", we use base::circular_deque
-  // to make it convenient to swap() when processing the list.
-  FrameSwappedCallbackList frame_swapped_callbacks_;
+  std::vector<base::OnceClosure> frame_swapped_callbacks_;
 
   // The surface client ID of the parent RenderWidgetHostView.  0 if none.
   viz::FrameSinkId parent_frame_sink_id_;
diff --git a/content/browser/renderer_host/render_widget_host_view_mac.h b/content/browser/renderer_host/render_widget_host_view_mac.h
index bebb5ea..747c6cd 100644
--- a/content/browser/renderer_host/render_widget_host_view_mac.h
+++ b/content/browser/renderer_host/render_widget_host_view_mac.h
@@ -314,10 +314,10 @@
   void SetTooltipText(const base::string16& tooltip_text) override;
   gfx::Size GetRequestedRendererSize() const override;
   bool IsSurfaceAvailableForCopy() const override;
-  void CopyFromSurface(const gfx::Rect& src_rect,
-                       const gfx::Size& output_size,
-                       const ReadbackRequestCallback& callback,
-                       const SkColorType color_type) override;
+  void CopyFromSurface(
+      const gfx::Rect& src_rect,
+      const gfx::Size& output_size,
+      base::OnceCallback<void(const SkBitmap&)> callback) override;
   void FocusedNodeChanged(bool is_editable_node,
                           const gfx::Rect& node_bounds_in_screen) override;
   void DidCreateNewRendererCompositorFrameSink(
diff --git a/content/browser/renderer_host/render_widget_host_view_mac.mm b/content/browser/renderer_host/render_widget_host_view_mac.mm
index c222bb0..2fedef58 100644
--- a/content/browser/renderer_host/render_widget_host_view_mac.mm
+++ b/content/browser/renderer_host/render_widget_host_view_mac.mm
@@ -1193,10 +1193,9 @@
 void RenderWidgetHostViewMac::CopyFromSurface(
     const gfx::Rect& src_subrect,
     const gfx::Size& dst_size,
-    const ReadbackRequestCallback& callback,
-    const SkColorType preferred_color_type) {
+    base::OnceCallback<void(const SkBitmap&)> callback) {
   browser_compositor_->GetDelegatedFrameHost()->CopyFromCompositingSurface(
-      src_subrect, dst_size, callback, preferred_color_type);
+      src_subrect, dst_size, std::move(callback));
 }
 
 void RenderWidgetHostViewMac::ForwardMouseEvent(const WebMouseEvent& event) {
diff --git a/content/browser/renderer_host/web_database_host_impl.cc b/content/browser/renderer_host/web_database_host_impl.cc
index 69e1ff1e..2383892 100644
--- a/content/browser/renderer_host/web_database_host_impl.cc
+++ b/content/browser/renderer_host/web_database_host_impl.cc
@@ -18,7 +18,7 @@
 #include "storage/browser/quota/quota_manager.h"
 #include "storage/browser/quota/quota_manager_proxy.h"
 #include "storage/common/database/database_identifier.h"
-#include "third_party/WebKit/common/quota/quota_types.mojom.h"
+#include "third_party/WebKit/public/mojom/quota/quota_types.mojom.h"
 #include "third_party/sqlite/sqlite3.h"
 #include "url/origin.h"
 
diff --git a/content/browser/screen_orientation/screen_orientation_delegate_android.cc b/content/browser/screen_orientation/screen_orientation_delegate_android.cc
index 4fc5d57..4e828cd 100644
--- a/content/browser/screen_orientation/screen_orientation_delegate_android.cc
+++ b/content/browser/screen_orientation/screen_orientation_delegate_android.cc
@@ -22,10 +22,7 @@
 
 bool ScreenOrientationDelegateAndroid::FullScreenRequired(
     WebContents* web_contents) {
-  ContentViewCore* cvc = ContentViewCore::FromWebContents(web_contents);
-  bool fullscreen_required = cvc ? cvc->IsFullscreenRequiredForOrientationLock()
-                                 : true;
-  return fullscreen_required;
+  return true;
 }
 
 void ScreenOrientationDelegateAndroid::Lock(
diff --git a/content/browser/service_worker/service_worker_client_utils.cc b/content/browser/service_worker/service_worker_client_utils.cc
index 0420c44..373287054 100644
--- a/content/browser/service_worker/service_worker_client_utils.cc
+++ b/content/browser/service_worker/service_worker_client_utils.cc
@@ -31,7 +31,7 @@
 #include "content/public/browser/web_contents_observer.h"
 #include "content/public/common/child_process_host.h"
 #include "services/network/public/mojom/request_context_frame_type.mojom.h"
-#include "third_party/WebKit/common/page/page_visibility_state.mojom.h"
+#include "third_party/WebKit/public/mojom/page/page_visibility_state.mojom.h"
 #include "url/gurl.h"
 
 namespace content {
diff --git a/content/browser/service_worker/service_worker_controllee_request_handler.cc b/content/browser/service_worker/service_worker_controllee_request_handler.cc
index af724f0..95db6dad 100644
--- a/content/browser/service_worker/service_worker_controllee_request_handler.cc
+++ b/content/browser/service_worker/service_worker_controllee_request_handler.cc
@@ -222,7 +222,7 @@
 #endif  // BUILDFLAG(ENABLE_OFFLINE_PAGES)
 
   url_job_ = std::make_unique<ServiceWorkerURLJobWrapper>(
-      std::make_unique<ServiceWorkerURLLoaderJob>(
+      std::make_unique<ServiceWorkerNavigationLoader>(
           std::move(callback), this, resource_request,
           base::WrapRefCounted(context_->loader_factory_getter())));
 
diff --git a/content/browser/service_worker/service_worker_controllee_request_handler.h b/content/browser/service_worker/service_worker_controllee_request_handler.h
index bc29bfc..5b874a5 100644
--- a/content/browser/service_worker/service_worker_controllee_request_handler.h
+++ b/content/browser/service_worker/service_worker_controllee_request_handler.h
@@ -12,9 +12,9 @@
 #include "base/memory/ref_counted.h"
 #include "base/memory/weak_ptr.h"
 #include "base/time/time.h"
+#include "content/browser/service_worker/service_worker_navigation_loader.h"
 #include "content/browser/service_worker/service_worker_request_handler.h"
 #include "content/browser/service_worker/service_worker_url_job_wrapper.h"
-#include "content/browser/service_worker/service_worker_url_loader_job.h"
 #include "content/browser/service_worker/service_worker_url_request_job.h"
 #include "content/common/service_worker/service_worker_types.h"
 #include "content/public/common/request_context_type.h"
diff --git a/content/browser/service_worker/service_worker_installed_script_loader.cc b/content/browser/service_worker/service_worker_installed_script_loader.cc
new file mode 100644
index 0000000..2b5d946
--- /dev/null
+++ b/content/browser/service_worker/service_worker_installed_script_loader.cc
@@ -0,0 +1,139 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "content/browser/service_worker/service_worker_installed_script_loader.h"
+
+#include <memory>
+#include <string>
+#include <utility>
+#include "content/browser/service_worker/service_worker_cache_writer.h"
+#include "content/browser/service_worker/service_worker_context_core.h"
+#include "content/browser/service_worker/service_worker_storage.h"
+#include "content/browser/service_worker/service_worker_version.h"
+#include "content/browser/service_worker/service_worker_write_to_cache_job.h"
+#include "content/browser/url_loader_factory_getter.h"
+#include "content/common/service_worker/service_worker_utils.h"
+#include "net/cert/cert_status_flags.h"
+#include "services/network/public/cpp/resource_response.h"
+#include "third_party/WebKit/public/common/mime_util/mime_util.h"
+
+namespace content {
+
+using FinishedReason = ServiceWorkerInstalledScriptReader::FinishedReason;
+
+ServiceWorkerInstalledScriptLoader::ServiceWorkerInstalledScriptLoader(
+    uint32_t options,
+    network::mojom::URLLoaderClientPtr client,
+    std::unique_ptr<ServiceWorkerResponseReader> response_reader)
+    : options_(options),
+      client_(std::move(client)),
+      request_start_(base::TimeTicks::Now()) {
+  reader_ = std::make_unique<ServiceWorkerInstalledScriptReader>(
+      std::move(response_reader), this);
+  reader_->Start();
+  // We continue in OnStarted().
+}
+
+ServiceWorkerInstalledScriptLoader::~ServiceWorkerInstalledScriptLoader() =
+    default;
+
+void ServiceWorkerInstalledScriptLoader::OnStarted(
+    std::string encoding,
+    std::unordered_map<std::string, std::string> headers,
+    mojo::ScopedDataPipeConsumerHandle body_handle,
+    uint64_t body_size,
+    mojo::ScopedDataPipeConsumerHandle metadata_handle,
+    uint64_t metadata_size) {
+  encoding_ = encoding;
+  body_handle_ = std::move(body_handle);
+  body_size_ = body_size;
+
+  // Just drain the metadata (V8 code cache): this entire class is just to
+  // handle a corner case for non-installed service workers and high performance
+  // is not needed.
+  metadata_drainer_ = std::make_unique<mojo::common::DataPipeDrainer>(
+      this, std::move(metadata_handle));
+
+  // We continue in OnHttpInfoRead().
+}
+
+void ServiceWorkerInstalledScriptLoader::OnHttpInfoRead(
+    scoped_refptr<HttpResponseInfoIOBuffer> http_info) {
+  net::HttpResponseInfo* info = http_info->http_info.get();
+
+  network::ResourceResponseHead head;
+  head.request_start = request_start_;
+  head.response_start = base::TimeTicks::Now();
+  head.request_time = info->request_time;
+  head.response_time = info->response_time;
+  head.headers = info->headers;
+  head.headers->GetMimeType(&head.mime_type);
+  head.charset = encoding_;
+  head.content_length = body_size_;
+  head.was_fetched_via_spdy = info->was_fetched_via_spdy;
+  head.was_alpn_negotiated = info->was_alpn_negotiated;
+  head.connection_info = info->connection_info;
+  head.alpn_negotiated_protocol = info->alpn_negotiated_protocol;
+  head.socket_address = info->socket_address;
+  head.cert_status = info->ssl_info.cert_status;
+
+  base::Optional<net::SSLInfo> ssl_info;
+  if (options_ & network::mojom::kURLLoadOptionSendSSLInfoWithResponse)
+    ssl_info = info->ssl_info;
+
+  client_->OnReceiveResponse(head, ssl_info, nullptr /* downloaded_file */);
+  client_->OnStartLoadingResponseBody(std::move(body_handle_));
+  // We continue in OnFinished().
+}
+
+void ServiceWorkerInstalledScriptLoader::OnFinished(FinishedReason reason) {
+  int net_error = net::ERR_FAILED;
+  switch (reason) {
+    case FinishedReason::kSuccess:
+      net_error = net::OK;
+      break;
+    case FinishedReason::kCreateDataPipeError:
+      net_error = net::ERR_INSUFFICIENT_RESOURCES;
+      break;
+    case FinishedReason::kNoHttpInfoError:
+    case FinishedReason::kResponseReaderError:
+      net_error = net::ERR_FILE_NOT_FOUND;
+      break;
+    case FinishedReason::kConnectionError:
+    case FinishedReason::kMetaDataSenderError:
+      net_error = net::ERR_FAILED;
+      break;
+    case FinishedReason::kNotFinished:
+      NOTREACHED();
+      break;
+  }
+  client_->OnComplete(network::URLLoaderCompletionStatus(net_error));
+}
+
+void ServiceWorkerInstalledScriptLoader::FollowRedirect() {
+  // This class never returns a redirect response to its client, so should never
+  // be asked to follow one.
+  NOTREACHED();
+}
+
+void ServiceWorkerInstalledScriptLoader::ProceedWithResponse() {
+  // This function should only be called for navigations.
+  NOTREACHED();
+}
+
+void ServiceWorkerInstalledScriptLoader::SetPriority(
+    net::RequestPriority priority,
+    int32_t intra_priority_value) {
+  // Ignore: this class doesn't have a concept of priority.
+}
+
+void ServiceWorkerInstalledScriptLoader::PauseReadingBodyFromNet() {
+  // Ignore: this class doesn't read from network.
+}
+
+void ServiceWorkerInstalledScriptLoader::ResumeReadingBodyFromNet() {
+  // Ignore: this class doesn't read from network.
+}
+
+}  // namespace content
diff --git a/content/browser/service_worker/service_worker_installed_script_loader.h b/content/browser/service_worker/service_worker_installed_script_loader.h
new file mode 100644
index 0000000..c02d9317
--- /dev/null
+++ b/content/browser/service_worker/service_worker_installed_script_loader.h
@@ -0,0 +1,79 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_INSTALLED_SCRIPT_LOADER_H_
+#define CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_INSTALLED_SCRIPT_LOADER_H_
+
+#include "content/browser/service_worker/service_worker_disk_cache.h"
+#include "content/browser/service_worker/service_worker_installed_script_reader.h"
+#include "content/common/content_export.h"
+#include "mojo/common/data_pipe_drainer.h"
+#include "mojo/public/cpp/bindings/binding.h"
+#include "mojo/public/cpp/system/data_pipe.h"
+#include "services/network/public/mojom/url_loader.mojom.h"
+
+namespace content {
+
+// S13nServiceWorker: A URLLoader that loads an installed service worker script
+// for a non-installed service worker.
+//
+// This only happens when a service worker that's still being installed uses
+// importScripts() to load a script multiple times, or load the main script
+// again, which is an unusual case. In the usual cases, installed scripts are
+// served to installed service workers via service worker script streaming
+// (i.e., ServiceWorkerInstalledScriptsSender) and non-installed scripts are
+// served to non-installed service workers via ServiceWorkerNewScriptLoader.
+class CONTENT_EXPORT ServiceWorkerInstalledScriptLoader
+    : public network::mojom::URLLoader,
+      public ServiceWorkerInstalledScriptReader::Client,
+      public mojo::common::DataPipeDrainer::Client {
+ public:
+  ServiceWorkerInstalledScriptLoader(
+      uint32_t options,
+      network::mojom::URLLoaderClientPtr client,
+      std::unique_ptr<ServiceWorkerResponseReader> response_reader);
+  ~ServiceWorkerInstalledScriptLoader() override;
+
+  // ServiceWorkerInstalledScriptReader::Client overrides:
+  void OnStarted(std::string encoding,
+                 std::unordered_map<std::string, std::string> headers,
+                 mojo::ScopedDataPipeConsumerHandle body_handle,
+                 uint64_t body_size,
+                 mojo::ScopedDataPipeConsumerHandle meta_data_handle,
+                 uint64_t meta_data_size) override;
+  void OnHttpInfoRead(
+      scoped_refptr<HttpResponseInfoIOBuffer> http_info) override;
+  void OnFinished(
+      ServiceWorkerInstalledScriptReader::FinishedReason reason) override;
+
+  // network::mojom::URLLoader overrides:
+  void FollowRedirect() override;
+  void ProceedWithResponse() override;
+  void SetPriority(net::RequestPriority priority,
+                   int32_t intra_priority_value) override;
+  void PauseReadingBodyFromNet() override;
+  void ResumeReadingBodyFromNet() override;
+
+ private:
+  // mojo::common::DataPipeDrainer::Client overrides:
+  // These just do nothing.
+  void OnDataAvailable(const void* data, size_t num_bytes) override {}
+  void OnDataComplete() override {}
+
+  uint32_t options_ = network::mojom::kURLLoadOptionNone;
+  network::mojom::URLLoaderClientPtr client_;
+  base::TimeTicks request_start_;
+  std::unique_ptr<ServiceWorkerInstalledScriptReader> reader_;
+
+  std::string encoding_;
+  mojo::ScopedDataPipeConsumerHandle body_handle_;
+  uint64_t body_size_ = 0;
+  std::unique_ptr<mojo::common::DataPipeDrainer> metadata_drainer_;
+
+  DISALLOW_COPY_AND_ASSIGN(ServiceWorkerInstalledScriptLoader);
+};
+
+}  // namespace content
+
+#endif  // CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_INSTALLED_SCRIPT_LOADER_H_
diff --git a/content/browser/service_worker/service_worker_url_loader_job.cc b/content/browser/service_worker/service_worker_navigation_loader.cc
similarity index 83%
rename from content/browser/service_worker/service_worker_url_loader_job.cc
rename to content/browser/service_worker/service_worker_navigation_loader.cc
index 461adbe..deaa6708 100644
--- a/content/browser/service_worker/service_worker_url_loader_job.cc
+++ b/content/browser/service_worker/service_worker_navigation_loader.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "content/browser/service_worker/service_worker_url_loader_job.h"
+#include "content/browser/service_worker/service_worker_navigation_loader.h"
 
 #include <utility>
 
@@ -34,13 +34,13 @@
 }  // namespace
 
 // This class waits for completion of a stream response from the service worker.
-// It calls ServiceWorkerURLLoader::CommitCompleted() upon completion of the
-// response.
-class ServiceWorkerURLLoaderJob::StreamWaiter
+// It calls ServiceWorkerNavigationLoader::CommitCompleted() upon completion of
+// the response.
+class ServiceWorkerNavigationLoader::StreamWaiter
     : public blink::mojom::ServiceWorkerStreamCallback {
  public:
   StreamWaiter(
-      ServiceWorkerURLLoaderJob* owner,
+      ServiceWorkerNavigationLoader* owner,
       scoped_refptr<ServiceWorkerVersion> streaming_version,
       blink::mojom::ServiceWorkerStreamCallbackRequest callback_request)
       : owner_(owner),
@@ -63,14 +63,14 @@
   }
 
  private:
-  ServiceWorkerURLLoaderJob* owner_;
+  ServiceWorkerNavigationLoader* owner_;
   scoped_refptr<ServiceWorkerVersion> streaming_version_;
   mojo::Binding<blink::mojom::ServiceWorkerStreamCallback> binding_;
 
   DISALLOW_COPY_AND_ASSIGN(StreamWaiter);
 };
 
-ServiceWorkerURLLoaderJob::ServiceWorkerURLLoaderJob(
+ServiceWorkerNavigationLoader::ServiceWorkerNavigationLoader(
     URLLoaderRequestHandler::LoaderCallback callback,
     Delegate* delegate,
     const network::ResourceRequest& resource_request,
@@ -93,9 +93,9 @@
   response_head_.load_timing.request_start_time = base::Time::Now();
 }
 
-ServiceWorkerURLLoaderJob::~ServiceWorkerURLLoaderJob() = default;
+ServiceWorkerNavigationLoader::~ServiceWorkerNavigationLoader() = default;
 
-void ServiceWorkerURLLoaderJob::FallbackToNetwork() {
+void ServiceWorkerNavigationLoader::FallbackToNetwork() {
   response_type_ = ResponseType::FALLBACK_TO_NETWORK;
   // This could be called multiple times in some cases because we simply
   // call this synchronously here and don't wait for a separate async
@@ -105,25 +105,25 @@
     std::move(loader_callback_).Run({});
 }
 
-void ServiceWorkerURLLoaderJob::FallbackToNetworkOrRenderer() {
+void ServiceWorkerNavigationLoader::FallbackToNetworkOrRenderer() {
   // TODO(kinuko): Implement this. Now we always fallback to network.
   FallbackToNetwork();
 }
 
-void ServiceWorkerURLLoaderJob::ForwardToServiceWorker() {
+void ServiceWorkerNavigationLoader::ForwardToServiceWorker() {
   response_type_ = ResponseType::FORWARD_TO_SERVICE_WORKER;
   StartRequest();
 }
 
-bool ServiceWorkerURLLoaderJob::ShouldFallbackToNetwork() {
+bool ServiceWorkerNavigationLoader::ShouldFallbackToNetwork() {
   return response_type_ == ResponseType::FALLBACK_TO_NETWORK;
 }
 
-void ServiceWorkerURLLoaderJob::FailDueToLostController() {
+void ServiceWorkerNavigationLoader::FailDueToLostController() {
   NOTIMPLEMENTED();
 }
 
-void ServiceWorkerURLLoaderJob::Cancel() {
+void ServiceWorkerNavigationLoader::Cancel() {
   status_ = Status::kCancelled;
   weak_factory_.InvalidateWeakPtrs();
   fetch_dispatcher_.reset();
@@ -135,16 +135,16 @@
   DeleteIfNeeded();
 }
 
-bool ServiceWorkerURLLoaderJob::WasCanceled() const {
+bool ServiceWorkerNavigationLoader::WasCanceled() const {
   return status_ == Status::kCancelled;
 }
 
-void ServiceWorkerURLLoaderJob::DetachedFromRequest() {
+void ServiceWorkerNavigationLoader::DetachedFromRequest() {
   detached_from_request_ = true;
   DeleteIfNeeded();
 }
 
-void ServiceWorkerURLLoaderJob::StartRequest() {
+void ServiceWorkerNavigationLoader::StartRequest() {
   DCHECK_EQ(ResponseType::FORWARD_TO_SERVICE_WORKER, response_type_);
   DCHECK_EQ(Status::kNotStarted, status_);
   status_ = Status::kStarted;
@@ -179,10 +179,10 @@
       0 /* request_body_blob_size */, nullptr /* request_body_blob */,
       std::string() /* client_id */, active_worker,
       net::NetLogWithSource() /* TODO(scottmg): net log? */,
-      base::BindOnce(&ServiceWorkerURLLoaderJob::DidPrepareFetchEvent,
+      base::BindOnce(&ServiceWorkerNavigationLoader::DidPrepareFetchEvent,
                      weak_factory_.GetWeakPtr(),
                      base::WrapRefCounted(active_worker)),
-      base::BindOnce(&ServiceWorkerURLLoaderJob::DidDispatchFetchEvent,
+      base::BindOnce(&ServiceWorkerNavigationLoader::DidDispatchFetchEvent,
                      weak_factory_.GetWeakPtr()));
   did_navigation_preload_ =
       fetch_dispatcher_->MaybeStartNavigationPreloadWithURLLoader(
@@ -194,7 +194,7 @@
   fetch_dispatcher_->Run();
 }
 
-void ServiceWorkerURLLoaderJob::CommitResponseHeaders() {
+void ServiceWorkerNavigationLoader::CommitResponseHeaders() {
   DCHECK_EQ(Status::kStarted, status_);
   DCHECK(url_loader_client_.is_bound());
   status_ = Status::kSentHeader;
@@ -202,7 +202,7 @@
                                         nullptr /* downloaded_file */);
 }
 
-void ServiceWorkerURLLoaderJob::CommitCompleted(int error_code) {
+void ServiceWorkerNavigationLoader::CommitCompleted(int error_code) {
   DCHECK_LT(status_, Status::kCompleted);
   DCHECK(url_loader_client_.is_bound());
   status_ = Status::kCompleted;
@@ -214,20 +214,20 @@
       network::URLLoaderCompletionStatus(error_code));
 }
 
-void ServiceWorkerURLLoaderJob::ReturnNetworkError() {
+void ServiceWorkerNavigationLoader::ReturnNetworkError() {
   DCHECK(!url_loader_client_.is_bound());
   DCHECK(loader_callback_);
   std::move(loader_callback_)
-      .Run(base::BindOnce(&ServiceWorkerURLLoaderJob::StartErrorResponse,
+      .Run(base::BindOnce(&ServiceWorkerNavigationLoader::StartErrorResponse,
                           weak_factory_.GetWeakPtr()));
 }
 
-void ServiceWorkerURLLoaderJob::DidPrepareFetchEvent(
+void ServiceWorkerNavigationLoader::DidPrepareFetchEvent(
     scoped_refptr<ServiceWorkerVersion> version) {
   response_head_.service_worker_ready_time = base::TimeTicks::Now();
 }
 
-void ServiceWorkerURLLoaderJob::DidDispatchFetchEvent(
+void ServiceWorkerNavigationLoader::DidDispatchFetchEvent(
     ServiceWorkerStatusCode status,
     ServiceWorkerFetchDispatcher::FetchEventResult fetch_result,
     const ServiceWorkerResponse& response,
@@ -274,12 +274,12 @@
   ssl_info_ = main_script_http_info->ssl_info;
 
   std::move(loader_callback_)
-      .Run(base::BindOnce(&ServiceWorkerURLLoaderJob::StartResponse,
+      .Run(base::BindOnce(&ServiceWorkerNavigationLoader::StartResponse,
                           weak_factory_.GetWeakPtr(), response, version,
                           std::move(body_as_stream), std::move(body_as_blob)));
 }
 
-void ServiceWorkerURLLoaderJob::StartResponse(
+void ServiceWorkerNavigationLoader::StartResponse(
     const ServiceWorkerResponse& response,
     scoped_refptr<ServiceWorkerVersion> version,
     blink::mojom::ServiceWorkerStreamHandlePtr body_as_stream,
@@ -290,7 +290,7 @@
   DCHECK(!url_loader_client_.is_bound());
   binding_.Bind(std::move(request));
   binding_.set_connection_error_handler(base::BindOnce(
-      &ServiceWorkerURLLoaderJob::Cancel, base::Unretained(this)));
+      &ServiceWorkerNavigationLoader::Cancel, base::Unretained(this)));
   url_loader_client_ = std::move(client);
 
   ServiceWorkerLoaderHelpers::SaveResponseInfo(response, &response_head_);
@@ -336,7 +336,7 @@
     mojo::ScopedDataPipeConsumerHandle data_pipe;
     int error = ServiceWorkerLoaderHelpers::ReadBlobResponseBody(
         &body_as_blob_, resource_request_.headers,
-        base::BindOnce(&ServiceWorkerURLLoaderJob::OnBlobReadingComplete,
+        base::BindOnce(&ServiceWorkerNavigationLoader::OnBlobReadingComplete,
                        weak_factory_.GetWeakPtr()),
         &data_pipe);
     if (error != net::OK) {
@@ -352,7 +352,7 @@
   CommitCompleted(net::OK);
 }
 
-void ServiceWorkerURLLoaderJob::StartErrorResponse(
+void ServiceWorkerNavigationLoader::StartErrorResponse(
     network::mojom::URLLoaderRequest request,
     network::mojom::URLLoaderClientPtr client) {
   DCHECK_EQ(Status::kStarted, status_);
@@ -363,31 +363,31 @@
 
 // URLLoader implementation----------------------------------------
 
-void ServiceWorkerURLLoaderJob::FollowRedirect() {
+void ServiceWorkerNavigationLoader::FollowRedirect() {
   NOTIMPLEMENTED();
 }
 
-void ServiceWorkerURLLoaderJob::ProceedWithResponse() {
+void ServiceWorkerNavigationLoader::ProceedWithResponse() {
   // TODO(arthursonzogni): Implement this for navigation requests if the
   // ServiceWorker service is enabled before the Network Service.
   NOTREACHED();
 }
 
-void ServiceWorkerURLLoaderJob::SetPriority(net::RequestPriority priority,
-                                            int32_t intra_priority_value) {
+void ServiceWorkerNavigationLoader::SetPriority(net::RequestPriority priority,
+                                                int32_t intra_priority_value) {
   NOTIMPLEMENTED();
 }
 
-void ServiceWorkerURLLoaderJob::PauseReadingBodyFromNet() {}
+void ServiceWorkerNavigationLoader::PauseReadingBodyFromNet() {}
 
-void ServiceWorkerURLLoaderJob::ResumeReadingBodyFromNet() {}
+void ServiceWorkerNavigationLoader::ResumeReadingBodyFromNet() {}
 
-void ServiceWorkerURLLoaderJob::OnBlobReadingComplete(int net_error) {
+void ServiceWorkerNavigationLoader::OnBlobReadingComplete(int net_error) {
   CommitCompleted(net_error);
   body_as_blob_.reset();
 }
 
-void ServiceWorkerURLLoaderJob::DeleteIfNeeded() {
+void ServiceWorkerNavigationLoader::DeleteIfNeeded() {
   if (!binding_.is_bound() && detached_from_request_)
     delete this;
 }
diff --git a/content/browser/service_worker/service_worker_url_loader_job.h b/content/browser/service_worker/service_worker_navigation_loader.h
similarity index 88%
rename from content/browser/service_worker/service_worker_url_loader_job.h
rename to content/browser/service_worker/service_worker_navigation_loader.h
index a2e7e69..29293f1 100644
--- a/content/browser/service_worker/service_worker_url_loader_job.h
+++ b/content/browser/service_worker/service_worker_navigation_loader.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_URL_LOADER_JOB_H_
-#define CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_URL_LOADER_JOB_H_
+#ifndef CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_NAVIGATION_LOADER_H_
+#define CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_NAVIGATION_LOADER_H_
 
 #include <memory>
 #include <vector>
@@ -30,12 +30,18 @@
 class ServiceWorkerVersion;
 
 // S13nServiceWorker:
-// ServiceWorkerURLLoaderJob works similar to ServiceWorkerURLRequestJob
-// but with network::mojom::URLLoader instead of URLRequest.
+// ServiceWorkerNavigationLoader is the URLLoader used for navigation requests
+// that (potentially) go through a service worker. This loader is only used for
+// the main resource request; once the navigation is committed, the page loads
+// subresources via ServiceWorkerSubresourceLoader.
+//
+// This class works similarly to ServiceWorkerURLRequestJob but with
+// network::mojom::URLLoader instead of URLRequest.
+//
 // This class is owned by the job wrapper until it is bound to a URLLoader
 // request. After it is bound |this| is kept alive until the Mojo connection
 // to this URLLoader is dropped.
-class CONTENT_EXPORT ServiceWorkerURLLoaderJob
+class CONTENT_EXPORT ServiceWorkerNavigationLoader
     : public network::mojom::URLLoader {
  public:
   using Delegate = ServiceWorkerURLJobWrapper::Delegate;
@@ -65,13 +71,13 @@
   //    NavigationURLLoaderNetworkService (for resource loading for navigation).
   //    This forwards the blob/stream data pipe to the NavigationURLLoader if
   //    the response body was sent as a blob/stream.
-  ServiceWorkerURLLoaderJob(
+  ServiceWorkerNavigationLoader(
       URLLoaderRequestHandler::LoaderCallback loader_callback,
       Delegate* delegate,
       const network::ResourceRequest& resource_request,
       scoped_refptr<URLLoaderFactoryGetter> url_loader_factory_getter);
 
-  ~ServiceWorkerURLLoaderJob() override;
+  ~ServiceWorkerNavigationLoader() override;
 
   // Called via URLJobWrapper.
   void FallbackToNetwork();
@@ -171,11 +177,11 @@
 
   bool detached_from_request_ = false;
 
-  base::WeakPtrFactory<ServiceWorkerURLLoaderJob> weak_factory_;
+  base::WeakPtrFactory<ServiceWorkerNavigationLoader> weak_factory_;
 
-  DISALLOW_COPY_AND_ASSIGN(ServiceWorkerURLLoaderJob);
+  DISALLOW_COPY_AND_ASSIGN(ServiceWorkerNavigationLoader);
 };
 
 }  // namespace content
 
-#endif  // CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_URL_LOADER_JOB_H_
+#endif  // CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_NAVIGATION_LOADER_H_
diff --git a/content/browser/service_worker/service_worker_url_loader_job_unittest.cc b/content/browser/service_worker/service_worker_navigation_loader_unittest.cc
similarity index 87%
rename from content/browser/service_worker/service_worker_url_loader_job_unittest.cc
rename to content/browser/service_worker/service_worker_navigation_loader_unittest.cc
index 66a1fdf1..a2b7c72 100644
--- a/content/browser/service_worker/service_worker_url_loader_job_unittest.cc
+++ b/content/browser/service_worker/service_worker_navigation_loader_unittest.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "content/browser/service_worker/service_worker_url_loader_job.h"
+#include "content/browser/service_worker/service_worker_navigation_loader.h"
 
 #include "base/run_loop.h"
 #include "base/test/scoped_feature_list.h"
@@ -35,7 +35,7 @@
 #include "third_party/WebKit/public/mojom/service_worker/service_worker_registration.mojom.h"
 
 namespace content {
-namespace service_worker_url_loader_job_unittest {
+namespace service_worker_navigation_loader_unittest {
 
 void ReceiveRequestHandler(
     SingleRequestURLLoaderFactory::RequestHandler* out_handler,
@@ -50,7 +50,7 @@
 // simulates passing the response to FetchEvent#respondWith.
 //
 // The navigation preload test is quite involved. The flow of data is:
-// 1. ServiceWorkerURLLoaderJob asks ServiceWorkerFetchDispatcher to start
+// 1. ServiceWorkerNavigationLoader asks ServiceWorkerFetchDispatcher to start
 //    navigation preload.
 // 2. ServiceWorkerFetchDispatcher starts the network request which is mocked
 //    by MockNetworkURLLoaderFactory. The response is sent to
@@ -62,8 +62,8 @@
 // 5. NavigationPreloadLoaderClient calls OnFetchEvent()'s callbacks
 //    with the response.
 // 6. Like all FetchEvent responses, the response is sent to
-//    ServiceWorkerURLLoaderJob::DidDispatchFetchEvent, and the RequestHandler
-//    is returned.
+//    ServiceWorkerNavigationLoader::DidDispatchFetchEvent, and the
+//    RequestHandler is returned.
 class NavigationPreloadLoaderClient final
     : public network::mojom::URLLoaderClient {
  public:
@@ -154,7 +154,7 @@
 
 // A URLLoaderFactory that returns 200 OK with a simple body to any request.
 //
-// ServiceWorkerURLLoaderJobTest sets the network factory for
+// ServiceWorkerNavigationLoaderTest sets the network factory for
 // ServiceWorkerContextCore to MockNetworkURLLoaderFactory. So far, it's only
 // used for navigation preload in these tests.
 class MockNetworkURLLoaderFactory final
@@ -370,8 +370,8 @@
       case ResponseMode::kFailFetchEventDispatch:
         // Simulate failure by stopping the worker before the event finishes.
         // This causes ServiceWorkerVersion::StartRequest() to call its error
-        // callback, which triggers ServiceWorkerURLLoaderJob's dispatch failed
-        // behavior.
+        // callback, which triggers ServiceWorkerNavigationLoader's dispatch
+        // failed behavior.
         SimulateWorkerStopped(embedded_worker_id);
         // Finish the event by calling |finish_callback|.
         // This is the Mojo callback for
@@ -471,25 +471,25 @@
   return head;
 }
 
-// ServiceWorkerURLLoaderJobTest is for testing the handling of requests
-// by a service worker via ServiceWorkerURLLoaderJob.
+// ServiceWorkerNavigationLoaderTest is for testing the handling of requests
+// by a service worker via ServiceWorkerNavigationLoader.
 //
 // Of course, no actual service worker runs in the unit test, it is simulated
 // via EmbeddedWorkerTestHelper receiving IPC messages from the browser and
 // responding as if a service worker is running in the renderer.
 //
-// ServiceWorkerURLLoaderJobTest is also a ServiceWorkerURLLoaderJob::Delegate.
-// In production code, ServiceWorkerControlleeRequestHandler is the Delegate. So
-// this class also basically mocks that part of
-// ServiceWorkerControlleeRequestHandler.
-class ServiceWorkerURLLoaderJobTest
+// ServiceWorkerNavigationLoaderTest is also a
+// ServiceWorkerNavigationLoader::Delegate. In production code,
+// ServiceWorkerControlleeRequestHandler is the Delegate. So this class also
+// basically mocks that part of ServiceWorkerControlleeRequestHandler.
+class ServiceWorkerNavigationLoaderTest
     : public testing::Test,
-      public ServiceWorkerURLLoaderJob::Delegate {
+      public ServiceWorkerNavigationLoader::Delegate {
  public:
-  ServiceWorkerURLLoaderJobTest()
+  ServiceWorkerNavigationLoaderTest()
       : thread_bundle_(TestBrowserThreadBundle::IO_MAINLOOP),
         helper_(std::make_unique<Helper>()) {}
-  ~ServiceWorkerURLLoaderJobTest() override = default;
+  ~ServiceWorkerNavigationLoaderTest() override = default;
 
   void SetUp() override {
     feature_list_.InitAndEnableFeature(network::features::kNetworkService);
@@ -526,34 +526,34 @@
 
   ServiceWorkerStorage* storage() { return helper_->context()->storage(); }
 
-  // Indicates whether ServiceWorkerURLLoaderJob decided to handle a request,
-  // i.e., it returned a non-null RequestHandler for the request.
-  enum class JobResult {
+  // Indicates whether ServiceWorkerNavigationLoader decided to handle a
+  // request, i.e., it returned a non-null RequestHandler for the request.
+  enum class LoaderResult {
     kHandledRequest,
     kDidNotHandleRequest,
   };
 
-  // Returns whether ServiceWorkerURLLoaderJob handled the request. If
+  // Returns whether ServiceWorkerNavigationLoader handled the request. If
   // kHandledRequest was returned, the request is ongoing and the caller can use
   // functions like client_.RunUntilComplete() to wait for completion.
-  JobResult StartRequest(std::unique_ptr<network::ResourceRequest> request) {
-    // Start a ServiceWorkerURLLoaderJob. It should return a
+  LoaderResult StartRequest(std::unique_ptr<network::ResourceRequest> request) {
+    // Start a ServiceWorkerNavigationLoader. It should return a
     // RequestHandler.
     SingleRequestURLLoaderFactory::RequestHandler handler;
-    job_ = std::make_unique<ServiceWorkerURLLoaderJob>(
+    loader_ = std::make_unique<ServiceWorkerNavigationLoader>(
         base::BindOnce(&ReceiveRequestHandler, &handler), this, *request,
         base::WrapRefCounted<URLLoaderFactoryGetter>(
             helper_->context()->loader_factory_getter()));
-    job_->ForwardToServiceWorker();
+    loader_->ForwardToServiceWorker();
     base::RunLoop().RunUntilIdle();
     if (!handler)
-      return JobResult::kDidNotHandleRequest;
+      return LoaderResult::kDidNotHandleRequest;
 
     // Run the handler. It will load |request.url|.
-    std::move(handler).Run(mojo::MakeRequest(&loader_),
+    std::move(handler).Run(mojo::MakeRequest(&loader_ptr_),
                            client_.CreateInterfacePtr());
 
-    return JobResult::kHandledRequest;
+    return LoaderResult::kHandledRequest;
   }
 
   void ExpectResponseInfo(const network::ResourceResponseHead& info,
@@ -589,7 +589,7 @@
   }
 
  protected:
-  // ServiceWorkerURLLoaderJob::Delegate --------------------------------------
+  // ServiceWorkerNavigationLoader::Delegate -----------------------------------
   void OnPrepareToRestart() override {}
 
   ServiceWorkerVersion* GetServiceWorkerVersion(
@@ -614,15 +614,15 @@
   storage::BlobStorageContext blob_context_;
   network::TestURLLoaderClient client_;
   bool was_main_resource_load_failed_called_ = false;
-  std::unique_ptr<ServiceWorkerURLLoaderJob> job_;
-  network::mojom::URLLoaderPtr loader_;
+  std::unique_ptr<ServiceWorkerNavigationLoader> loader_;
+  network::mojom::URLLoaderPtr loader_ptr_;
   base::test::ScopedFeatureList feature_list_;
 };
 
-TEST_F(ServiceWorkerURLLoaderJobTest, Basic) {
+TEST_F(ServiceWorkerNavigationLoaderTest, Basic) {
   // Perform the request
-  JobResult result = StartRequest(CreateRequest());
-  EXPECT_EQ(JobResult::kHandledRequest, result);
+  LoaderResult result = StartRequest(CreateRequest());
+  EXPECT_EQ(LoaderResult::kHandledRequest, result);
   client_.RunUntilComplete();
 
   EXPECT_EQ(net::OK, client_.completion_status().error_code);
@@ -631,20 +631,20 @@
   ExpectResponseInfo(info, *CreateResponseInfoFromServiceWorker());
 }
 
-TEST_F(ServiceWorkerURLLoaderJobTest, NoActiveWorker) {
+TEST_F(ServiceWorkerNavigationLoaderTest, NoActiveWorker) {
   // Clear |version_| to make GetServiceWorkerVersion() return null.
   version_ = nullptr;
 
   // Perform the request.
-  JobResult result = StartRequest(CreateRequest());
-  EXPECT_EQ(JobResult::kHandledRequest, result);
+  LoaderResult result = StartRequest(CreateRequest());
+  EXPECT_EQ(LoaderResult::kHandledRequest, result);
 
   client_.RunUntilComplete();
   EXPECT_EQ(net::ERR_FAILED, client_.completion_status().error_code);
 }
 
 // Test that the request body is passed to the fetch event.
-TEST_F(ServiceWorkerURLLoaderJobTest, RequestBody) {
+TEST_F(ServiceWorkerNavigationLoaderTest, RequestBody) {
   const std::string kData = "hi this is the request body";
 
   // Create a request with a body.
@@ -657,8 +657,8 @@
   // This test doesn't use the response to the fetch event, so just have the
   // service worker do simple network fallback.
   helper_->RespondWithFallback();
-  JobResult result = StartRequest(std::move(request));
-  EXPECT_EQ(JobResult::kDidNotHandleRequest, result);
+  LoaderResult result = StartRequest(std::move(request));
+  EXPECT_EQ(LoaderResult::kDidNotHandleRequest, result);
 
   // Verify that the request body was passed to the fetch event.
   std::string body;
@@ -666,7 +666,7 @@
   EXPECT_EQ(kData, body);
 }
 
-TEST_F(ServiceWorkerURLLoaderJobTest, BlobResponse) {
+TEST_F(ServiceWorkerNavigationLoaderTest, BlobResponse) {
   // Construct the blob to respond with.
   const std::string kResponseBody = "Here is sample text for the blob.";
   auto blob_data = std::make_unique<storage::BlobDataBuilder>("blob-id:myblob");
@@ -679,8 +679,8 @@
   helper_->RespondWithBlob(std::move(blob_ptr));
 
   // Perform the request.
-  JobResult result = StartRequest(CreateRequest());
-  EXPECT_EQ(JobResult::kHandledRequest, result);
+  LoaderResult result = StartRequest(CreateRequest());
+  EXPECT_EQ(LoaderResult::kHandledRequest, result);
   client_.RunUntilComplete();
 
   const network::ResourceResponseHead& info = client_.response_head();
@@ -697,7 +697,7 @@
 }
 
 // Tell the helper to respond with a non-existent Blob.
-TEST_F(ServiceWorkerURLLoaderJobTest, BrokenBlobResponse) {
+TEST_F(ServiceWorkerNavigationLoaderTest, BrokenBlobResponse) {
   const std::string kBrokenUUID = "broken_uuid";
 
   // Create the broken blob.
@@ -710,8 +710,8 @@
   helper_->RespondWithBlob(std::move(blob_ptr));
 
   // Perform the request.
-  JobResult result = StartRequest(CreateRequest());
-  EXPECT_EQ(JobResult::kHandledRequest, result);
+  LoaderResult result = StartRequest(CreateRequest());
+  EXPECT_EQ(LoaderResult::kHandledRequest, result);
 
   // We should get a valid response once the headers arrive.
   client_.RunUntilResponseReceived();
@@ -725,7 +725,7 @@
   EXPECT_EQ(net::ERR_OUT_OF_MEMORY, client_.completion_status().error_code);
 }
 
-TEST_F(ServiceWorkerURLLoaderJobTest, StreamResponse) {
+TEST_F(ServiceWorkerNavigationLoaderTest, StreamResponse) {
   // Construct the Stream to respond with.
   const char kResponseBody[] = "Here is sample text for the Stream.";
   blink::mojom::ServiceWorkerStreamCallbackPtr stream_callback;
@@ -734,8 +734,8 @@
                              std::move(data_pipe.consumer_handle));
 
   // Perform the request.
-  JobResult result = StartRequest(CreateRequest());
-  EXPECT_EQ(JobResult::kHandledRequest, result);
+  LoaderResult result = StartRequest(CreateRequest());
+  EXPECT_EQ(LoaderResult::kHandledRequest, result);
   client_.RunUntilResponseReceived();
 
   const network::ResourceResponseHead& info = client_.response_head();
@@ -765,7 +765,7 @@
 }
 
 // Test when a stream response body is aborted.
-TEST_F(ServiceWorkerURLLoaderJobTest, StreamResponse_Abort) {
+TEST_F(ServiceWorkerNavigationLoaderTest, StreamResponse_Abort) {
   // Construct the Stream to respond with.
   const char kResponseBody[] = "Here is sample text for the Stream.";
   blink::mojom::ServiceWorkerStreamCallbackPtr stream_callback;
@@ -774,8 +774,8 @@
                              std::move(data_pipe.consumer_handle));
 
   // Perform the request.
-  JobResult result = StartRequest(CreateRequest());
-  EXPECT_EQ(JobResult::kHandledRequest, result);
+  LoaderResult result = StartRequest(CreateRequest());
+  EXPECT_EQ(LoaderResult::kHandledRequest, result);
   client_.RunUntilResponseReceived();
 
   const network::ResourceResponseHead& info = client_.response_head();
@@ -802,8 +802,8 @@
   EXPECT_EQ(kResponseBody, response);
 }
 
-// Test when the job is cancelled while a stream response is being written.
-TEST_F(ServiceWorkerURLLoaderJobTest, StreamResponseAndCancel) {
+// Test when the loader is cancelled while a stream response is being written.
+TEST_F(ServiceWorkerNavigationLoaderTest, StreamResponseAndCancel) {
   // Construct the Stream to respond with.
   const char kResponseBody[] = "Here is sample text for the Stream.";
   blink::mojom::ServiceWorkerStreamCallbackPtr stream_callback;
@@ -812,30 +812,31 @@
                              std::move(data_pipe.consumer_handle));
 
   // Perform the request.
-  JobResult result = StartRequest(CreateRequest());
-  EXPECT_EQ(JobResult::kHandledRequest, result);
+  LoaderResult result = StartRequest(CreateRequest());
+  EXPECT_EQ(LoaderResult::kHandledRequest, result);
   client_.RunUntilResponseReceived();
 
   const network::ResourceResponseHead& info = client_.response_head();
   EXPECT_EQ(200, info.headers->response_code());
   ExpectResponseInfo(info, *CreateResponseInfoFromServiceWorker());
 
-  // Start writing the body stream, then cancel the job before finishing.
+  // Start writing the body stream, then cancel the loader before finishing.
   uint32_t written_bytes = sizeof(kResponseBody) - 1;
   MojoResult mojo_result = data_pipe.producer_handle->WriteData(
       kResponseBody, &written_bytes, MOJO_WRITE_DATA_FLAG_NONE);
   ASSERT_EQ(MOJO_RESULT_OK, mojo_result);
   EXPECT_EQ(sizeof(kResponseBody) - 1, written_bytes);
   EXPECT_TRUE(data_pipe.producer_handle.is_valid());
-  EXPECT_FALSE(job_->WasCanceled());
+  EXPECT_FALSE(loader_->WasCanceled());
   EXPECT_TRUE(version_->HasWorkInBrowser());
-  job_->Cancel();
-  EXPECT_TRUE(job_->WasCanceled());
+  loader_->Cancel();
+  EXPECT_TRUE(loader_->WasCanceled());
   EXPECT_FALSE(version_->HasWorkInBrowser());
 
-  // Although ServiceworkerURLLoaderJob resets its URLLoaderClient pointer in
-  // Cancel(), the URLLoaderClient still exists. In this test, it is |client_|
-  // which owns the data pipe, so it's still valid to write data to it.
+  // Although ServiceWorkerNavigationLoader resets its URLLoaderClient pointer
+  // in Cancel(), the URLLoaderClient still exists. In this test, it is
+  // |client_| which owns the data pipe, so it's still valid to write data to
+  // it.
   mojo_result = data_pipe.producer_handle->WriteData(
       kResponseBody, &written_bytes, MOJO_WRITE_DATA_FLAG_NONE);
   // TODO(falken): This should probably be an error.
@@ -848,48 +849,48 @@
 
 // Test when the service worker responds with network fallback.
 // i.e., does not call respondWith().
-TEST_F(ServiceWorkerURLLoaderJobTest, FallbackResponse) {
+TEST_F(ServiceWorkerNavigationLoaderTest, FallbackResponse) {
   helper_->RespondWithFallback();
 
   // Perform the request.
-  JobResult result = StartRequest(CreateRequest());
-  EXPECT_EQ(JobResult::kDidNotHandleRequest, result);
+  LoaderResult result = StartRequest(CreateRequest());
+  EXPECT_EQ(LoaderResult::kDidNotHandleRequest, result);
 
-  // The request should not be handled by the job, but it shouldn't be a
+  // The request should not be handled by the loader, but it shouldn't be a
   // failure.
   EXPECT_FALSE(was_main_resource_load_failed_called_);
 }
 
 // Test when the service worker rejects the FetchEvent.
-TEST_F(ServiceWorkerURLLoaderJobTest, ErrorResponse) {
+TEST_F(ServiceWorkerNavigationLoaderTest, ErrorResponse) {
   helper_->RespondWithError();
 
   // Perform the request.
-  JobResult result = StartRequest(CreateRequest());
-  EXPECT_EQ(JobResult::kHandledRequest, result);
+  LoaderResult result = StartRequest(CreateRequest());
+  EXPECT_EQ(LoaderResult::kHandledRequest, result);
 
   client_.RunUntilComplete();
   EXPECT_EQ(net::ERR_FAILED, client_.completion_status().error_code);
 }
 
 // Test when dispatching the fetch event to the service worker failed.
-TEST_F(ServiceWorkerURLLoaderJobTest, FailFetchDispatch) {
+TEST_F(ServiceWorkerNavigationLoaderTest, FailFetchDispatch) {
   helper_->FailToDispatchFetchEvent();
 
   // Perform the request.
-  JobResult result = StartRequest(CreateRequest());
-  EXPECT_EQ(JobResult::kDidNotHandleRequest, result);
+  LoaderResult result = StartRequest(CreateRequest());
+  EXPECT_EQ(LoaderResult::kDidNotHandleRequest, result);
   EXPECT_TRUE(was_main_resource_load_failed_called_);
 }
 
 // Test when the respondWith() promise resolves before the waitUntil() promise
 // resolves. The response should be received before the event finishes.
-TEST_F(ServiceWorkerURLLoaderJobTest, EarlyResponse) {
+TEST_F(ServiceWorkerNavigationLoaderTest, EarlyResponse) {
   helper_->RespondEarly();
 
   // Perform the request.
-  JobResult result = StartRequest(CreateRequest());
-  EXPECT_EQ(JobResult::kHandledRequest, result);
+  LoaderResult result = StartRequest(CreateRequest());
+  EXPECT_EQ(LoaderResult::kHandledRequest, result);
   client_.RunUntilComplete();
 
   const network::ResourceResponseHead& info = client_.response_head();
@@ -903,10 +904,10 @@
   EXPECT_FALSE(version_->HasWorkInBrowser());
 }
 
-// Test asking the job to fallback to network. In production code, this happens
-// when there is no active service worker for the URL, or it must be skipped,
-// etc.
-TEST_F(ServiceWorkerURLLoaderJobTest, FallbackToNetwork) {
+// Test asking the loader to fallback to network. In production code, this
+// happens when there is no active service worker for the URL, or it must be
+// skipped, etc.
+TEST_F(ServiceWorkerNavigationLoaderTest, FallbackToNetwork) {
   network::ResourceRequest request;
   request.url = GURL("https://www.example.com/");
   request.method = "GET";
@@ -916,25 +917,25 @@
   request.fetch_redirect_mode = network::mojom::FetchRedirectMode::kManual;
 
   SingleRequestURLLoaderFactory::RequestHandler handler;
-  auto job = std::make_unique<ServiceWorkerURLLoaderJob>(
+  auto loader = std::make_unique<ServiceWorkerNavigationLoader>(
       base::BindOnce(&ReceiveRequestHandler, &handler), this, request,
       base::WrapRefCounted<URLLoaderFactoryGetter>(
           helper_->context()->loader_factory_getter()));
-  // Ask the job to fallback to network. In production code,
+  // Ask the loader to fallback to network. In production code,
   // ServiceWorkerControlleeRequestHandler calls FallbackToNetwork() to do this.
-  job->FallbackToNetwork();
+  loader->FallbackToNetwork();
   base::RunLoop().RunUntilIdle();
   EXPECT_FALSE(handler);
 }
 
 // Test responding to the fetch event with the navigation preload response.
-TEST_F(ServiceWorkerURLLoaderJobTest, NavigationPreload) {
+TEST_F(ServiceWorkerNavigationLoaderTest, NavigationPreload) {
   registration_->EnableNavigationPreload(true);
   helper_->RespondWithNavigationPreloadResponse();
 
   // Perform the request
-  JobResult result = StartRequest(CreateRequest());
-  ASSERT_EQ(JobResult::kHandledRequest, result);
+  LoaderResult result = StartRequest(CreateRequest());
+  ASSERT_EQ(LoaderResult::kHandledRequest, result);
   client_.RunUntilComplete();
 
   EXPECT_EQ(net::OK, client_.completion_status().error_code);
@@ -954,13 +955,13 @@
 }
 
 // Test responding to the fetch event with a redirect response.
-TEST_F(ServiceWorkerURLLoaderJobTest, Redirect) {
+TEST_F(ServiceWorkerNavigationLoaderTest, Redirect) {
   GURL new_url("https://example.com/redirected");
   helper_->RespondWithRedirectResponse(new_url);
 
   // Perform the request.
-  JobResult result = StartRequest(CreateRequest());
-  EXPECT_EQ(JobResult::kHandledRequest, result);
+  LoaderResult result = StartRequest(CreateRequest());
+  EXPECT_EQ(LoaderResult::kHandledRequest, result);
   client_.RunUntilRedirectReceived();
 
   const network::ResourceResponseHead& info = client_.response_head();
@@ -973,5 +974,5 @@
   EXPECT_EQ(new_url, redirect_info.new_url);
 }
 
-}  // namespace service_worker_url_loader_job_unittest
+}  // namespace service_worker_navigation_loader_unittest
 }  // namespace content
diff --git a/content/browser/service_worker/service_worker_script_url_loader.cc b/content/browser/service_worker/service_worker_new_script_loader.cc
similarity index 90%
rename from content/browser/service_worker/service_worker_script_url_loader.cc
rename to content/browser/service_worker/service_worker_new_script_loader.cc
index 3ab29b7..a78f3446 100644
--- a/content/browser/service_worker/service_worker_script_url_loader.cc
+++ b/content/browser/service_worker/service_worker_new_script_loader.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "content/browser/service_worker/service_worker_script_url_loader.h"
+#include "content/browser/service_worker/service_worker_new_script_loader.h"
 
 #include <memory>
 #include "base/numerics/safe_conversions.h"
@@ -23,11 +23,11 @@
 namespace content {
 
 // We chose this size because the AppCache uses this.
-const uint32_t ServiceWorkerScriptURLLoader::kReadBufferSize = 32768;
+const uint32_t ServiceWorkerNewScriptLoader::kReadBufferSize = 32768;
 
 // TODO(nhiroki): We're doing multiple things in the ctor. Consider factors out
 // some of them into a separate function.
-ServiceWorkerScriptURLLoader::ServiceWorkerScriptURLLoader(
+ServiceWorkerNewScriptLoader::ServiceWorkerNewScriptLoader(
     int32_t routing_id,
     int32_t request_id,
     uint32_t options,
@@ -43,7 +43,7 @@
       network_watcher_(FROM_HERE, mojo::SimpleWatcher::ArmingPolicy::MANUAL),
       client_(std::move(client)),
       weak_factory_(this) {
-  // ServiceWorkerScriptURLLoader is used for fetching the service worker main
+  // ServiceWorkerNewScriptLoader is used for fetching the service worker main
   // script (RESOURCE_TYPE_SERVICE_WORKER) during worker startup or
   // importScripts() (RESOURCE_TYPE_SCRIPT).
   // TODO(nhiroki): In the current implementation, importScripts() can be called
@@ -101,34 +101,34 @@
       resource_request, std::move(network_client), traffic_annotation);
 }
 
-ServiceWorkerScriptURLLoader::~ServiceWorkerScriptURLLoader() = default;
+ServiceWorkerNewScriptLoader::~ServiceWorkerNewScriptLoader() = default;
 
-void ServiceWorkerScriptURLLoader::FollowRedirect() {
+void ServiceWorkerNewScriptLoader::FollowRedirect() {
   // Resource requests for service worker scripts should not follow redirects.
   // See comments in OnReceiveRedirect().
   NOTREACHED();
 }
 
-void ServiceWorkerScriptURLLoader::ProceedWithResponse() {
+void ServiceWorkerNewScriptLoader::ProceedWithResponse() {
   NOTREACHED();
 }
 
-void ServiceWorkerScriptURLLoader::SetPriority(net::RequestPriority priority,
+void ServiceWorkerNewScriptLoader::SetPriority(net::RequestPriority priority,
                                                int32_t intra_priority_value) {
   network_loader_->SetPriority(priority, intra_priority_value);
 }
 
-void ServiceWorkerScriptURLLoader::PauseReadingBodyFromNet() {
+void ServiceWorkerNewScriptLoader::PauseReadingBodyFromNet() {
   network_loader_->PauseReadingBodyFromNet();
 }
 
-void ServiceWorkerScriptURLLoader::ResumeReadingBodyFromNet() {
+void ServiceWorkerNewScriptLoader::ResumeReadingBodyFromNet() {
   network_loader_->ResumeReadingBodyFromNet();
 }
 
 // URLLoaderClient for network loader ------------------------------------------
 
-void ServiceWorkerScriptURLLoader::OnReceiveResponse(
+void ServiceWorkerNewScriptLoader::OnReceiveResponse(
     const network::ResourceResponseHead& response_head,
     const base::Optional<net::SSLInfo>& ssl_info,
     network::mojom::DownloadedTempFilePtr downloaded_file) {
@@ -208,7 +208,7 @@
                              std::move(downloaded_file));
 }
 
-void ServiceWorkerScriptURLLoader::OnReceiveRedirect(
+void ServiceWorkerNewScriptLoader::OnReceiveRedirect(
     const net::RedirectInfo& redirect_info,
     const network::ResourceResponseHead& response_head) {
   // Resource requests for service worker scripts should not follow redirects.
@@ -221,12 +221,12 @@
   CommitCompleted(network::URLLoaderCompletionStatus(net::ERR_UNSAFE_REDIRECT));
 }
 
-void ServiceWorkerScriptURLLoader::OnDataDownloaded(int64_t data_len,
+void ServiceWorkerNewScriptLoader::OnDataDownloaded(int64_t data_len,
                                                     int64_t encoded_data_len) {
   client_->OnDataDownloaded(data_len, encoded_data_len);
 }
 
-void ServiceWorkerScriptURLLoader::OnUploadProgress(
+void ServiceWorkerNewScriptLoader::OnUploadProgress(
     int64_t current_position,
     int64_t total_size,
     OnUploadProgressCallback ack_callback) {
@@ -234,17 +234,17 @@
                             std::move(ack_callback));
 }
 
-void ServiceWorkerScriptURLLoader::OnReceiveCachedMetadata(
+void ServiceWorkerNewScriptLoader::OnReceiveCachedMetadata(
     const std::vector<uint8_t>& data) {
   client_->OnReceiveCachedMetadata(data);
 }
 
-void ServiceWorkerScriptURLLoader::OnTransferSizeUpdated(
+void ServiceWorkerNewScriptLoader::OnTransferSizeUpdated(
     int32_t transfer_size_diff) {
   client_->OnTransferSizeUpdated(transfer_size_diff);
 }
 
-void ServiceWorkerScriptURLLoader::OnStartLoadingResponseBody(
+void ServiceWorkerNewScriptLoader::OnStartLoadingResponseBody(
     mojo::ScopedDataPipeConsumerHandle consumer) {
   // Create a pair of the consumer and producer for responding to the client.
   mojo::ScopedDataPipeConsumerHandle client_consumer;
@@ -261,7 +261,7 @@
   MaybeStartNetworkConsumerHandleWatcher();
 }
 
-void ServiceWorkerScriptURLLoader::OnComplete(
+void ServiceWorkerNewScriptLoader::OnComplete(
     const network::URLLoaderCompletionStatus& status) {
   if (status.error_code != net::OK) {
     CommitCompleted(status);
@@ -287,7 +287,7 @@
 
 // End of URLLoaderClient ------------------------------------------------------
 
-void ServiceWorkerScriptURLLoader::AdvanceState(State new_state) {
+void ServiceWorkerNewScriptLoader::AdvanceState(State new_state) {
   switch (state_) {
     case State::kNotStarted:
       DCHECK_EQ(State::kStarted, new_state);
@@ -310,11 +310,11 @@
   state_ = new_state;
 }
 
-void ServiceWorkerScriptURLLoader::WriteHeaders(
+void ServiceWorkerNewScriptLoader::WriteHeaders(
     scoped_refptr<HttpResponseInfoIOBuffer> info_buffer) {
   net::Error error = cache_writer_->MaybeWriteHeaders(
       info_buffer.get(),
-      base::BindOnce(&ServiceWorkerScriptURLLoader::OnWriteHeadersComplete,
+      base::BindOnce(&ServiceWorkerNewScriptLoader::OnWriteHeadersComplete,
                      weak_factory_.GetWeakPtr()));
   if (error == net::ERR_IO_PENDING) {
     // OnWriteHeadersComplete() will be called asynchronously.
@@ -325,7 +325,7 @@
   OnWriteHeadersComplete(error);
 }
 
-void ServiceWorkerScriptURLLoader::OnWriteHeadersComplete(net::Error error) {
+void ServiceWorkerNewScriptLoader::OnWriteHeadersComplete(net::Error error) {
   DCHECK_NE(net::ERR_IO_PENDING, error);
   if (error != net::OK) {
     CommitCompleted(network::URLLoaderCompletionStatus(error));
@@ -335,7 +335,7 @@
   MaybeStartNetworkConsumerHandleWatcher();
 }
 
-void ServiceWorkerScriptURLLoader::MaybeStartNetworkConsumerHandleWatcher() {
+void ServiceWorkerNewScriptLoader::MaybeStartNetworkConsumerHandleWatcher() {
   if (!network_consumer_.is_valid()) {
     // Wait until the network consumer handle is ready to read.
     // OnStartLoadingResponseBody() will continue the sequence.
@@ -350,12 +350,12 @@
   network_watcher_.Watch(
       network_consumer_.get(),
       MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED,
-      base::Bind(&ServiceWorkerScriptURLLoader::OnNetworkDataAvailable,
+      base::Bind(&ServiceWorkerNewScriptLoader::OnNetworkDataAvailable,
                  weak_factory_.GetWeakPtr()));
   network_watcher_.ArmOrNotify();
 }
 
-void ServiceWorkerScriptURLLoader::OnNetworkDataAvailable(MojoResult) {
+void ServiceWorkerNewScriptLoader::OnNetworkDataAvailable(MojoResult) {
   DCHECK(network_consumer_.is_valid());
   scoped_refptr<network::MojoToNetPendingBuffer> pending_buffer;
   uint32_t bytes_available = 0;
@@ -380,7 +380,7 @@
   NOTREACHED() << static_cast<int>(result);
 }
 
-void ServiceWorkerScriptURLLoader::WriteData(
+void ServiceWorkerNewScriptLoader::WriteData(
     scoped_refptr<network::MojoToNetPendingBuffer> pending_buffer,
     uint32_t bytes_available) {
   // Cap the buffer size up to |kReadBufferSize|. The remaining will be written
@@ -413,7 +413,7 @@
   // successfully wrote to the data pipe (i.e., |bytes_written|).
   net::Error error = cache_writer_->MaybeWriteData(
       buffer.get(), base::strict_cast<size_t>(bytes_written),
-      base::BindOnce(&ServiceWorkerScriptURLLoader::OnWriteDataComplete,
+      base::BindOnce(&ServiceWorkerNewScriptLoader::OnWriteDataComplete,
                      weak_factory_.GetWeakPtr(),
                      base::WrapRefCounted(pending_buffer.get()),
                      bytes_written));
@@ -426,7 +426,7 @@
   OnWriteDataComplete(std::move(pending_buffer), bytes_written, error);
 }
 
-void ServiceWorkerScriptURLLoader::OnWriteDataComplete(
+void ServiceWorkerNewScriptLoader::OnWriteDataComplete(
     scoped_refptr<network::MojoToNetPendingBuffer> pending_buffer,
     uint32_t bytes_written,
     net::Error error) {
@@ -442,7 +442,7 @@
   network_watcher_.ArmOrNotify();
 }
 
-void ServiceWorkerScriptURLLoader::CommitCompleted(
+void ServiceWorkerNewScriptLoader::CommitCompleted(
     const network::URLLoaderCompletionStatus& status) {
   AdvanceState(State::kCompleted);
   net::Error error_code = static_cast<net::Error>(status.error_code);
diff --git a/content/browser/service_worker/service_worker_script_url_loader.h b/content/browser/service_worker/service_worker_new_script_loader.h
similarity index 92%
rename from content/browser/service_worker/service_worker_script_url_loader.h
rename to content/browser/service_worker/service_worker_new_script_loader.h
index c8a4d4c..994f2470 100644
--- a/content/browser/service_worker/service_worker_script_url_loader.h
+++ b/content/browser/service_worker/service_worker_new_script_loader.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_SCRIPT_URL_LOADER_H_
-#define CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_SCRIPT_URL_LOADER_H_
+#ifndef CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_NEW_SCRIPT_LOADER_H_
+#define CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_NEW_SCRIPT_LOADER_H_
 
 #include "base/macros.h"
 #include "content/browser/service_worker/service_worker_version.h"
@@ -44,11 +44,11 @@
 // this class also performs the "byte-for-byte" comparison for updating the
 // worker. If the script is identical, the load succeeds but no script is
 // written, and ServiceWorkerVersion is told to terminate startup.
-class CONTENT_EXPORT ServiceWorkerScriptURLLoader
+class CONTENT_EXPORT ServiceWorkerNewScriptLoader
     : public network::mojom::URLLoader,
       public network::mojom::URLLoaderClient {
  public:
-  ServiceWorkerScriptURLLoader(
+  ServiceWorkerNewScriptLoader(
       int32_t routing_id,
       int32_t request_id,
       uint32_t options,
@@ -57,7 +57,7 @@
       scoped_refptr<ServiceWorkerVersion> version,
       scoped_refptr<URLLoaderFactoryGetter> loader_factory_getter,
       const net::MutableNetworkTrafficAnnotationTag& traffic_annotation);
-  ~ServiceWorkerScriptURLLoader() override;
+  ~ServiceWorkerNewScriptLoader() override;
 
   // network::mojom::URLLoader:
   void FollowRedirect() override;
@@ -145,11 +145,11 @@
 
   State state_ = State::kNotStarted;
 
-  base::WeakPtrFactory<ServiceWorkerScriptURLLoader> weak_factory_;
+  base::WeakPtrFactory<ServiceWorkerNewScriptLoader> weak_factory_;
 
-  DISALLOW_COPY_AND_ASSIGN(ServiceWorkerScriptURLLoader);
+  DISALLOW_COPY_AND_ASSIGN(ServiceWorkerNewScriptLoader);
 };
 
 }  // namespace content
 
-#endif  // CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_SCRIPT_URL_LOADER_H_
+#endif  // CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_NEW_SCRIPT_LOADER_H_
diff --git a/content/browser/service_worker/service_worker_script_url_loader_unittest.cc b/content/browser/service_worker/service_worker_new_script_loader_unittest.cc
similarity index 92%
rename from content/browser/service_worker/service_worker_script_url_loader_unittest.cc
rename to content/browser/service_worker/service_worker_new_script_loader_unittest.cc
index f8be016..5664ba19 100644
--- a/content/browser/service_worker/service_worker_script_url_loader_unittest.cc
+++ b/content/browser/service_worker/service_worker_new_script_loader_unittest.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "content/browser/service_worker/service_worker_script_url_loader.h"
+#include "content/browser/service_worker/service_worker_new_script_loader.h"
 
 #include <map>
 #include <utility>
@@ -32,7 +32,7 @@
 const char kNormalScriptURL[] = "https://example.com/normal.js";
 
 // MockHTTPServer is a utility to provide mocked responses for
-// ServiceWorkerScriptURLLoader.
+// ServiceWorkerNewScriptLoader.
 class MockHTTPServer {
  public:
   struct Response {
@@ -61,10 +61,10 @@
 
 // A URLLoaderFactory that returns a mocked response provided by MockHTTPServer.
 //
-// TODO(nhiroki): We copied this from service_worker_url_loader_job_unittest.cc
-// instead of making it a common test helper because we might want to customize
-// the mock factory to add more tests later. Merge this and that if we're
-// convinced it's better.
+// TODO(nhiroki): We copied this from
+// service_worker_navigation_loader_unittest.cc instead of making it a common
+// test helper because we might want to customize the mock factory to add more
+// tests later. Merge this and that if we're convinced it's better.
 class MockNetworkURLLoaderFactory final
     : public network::mojom::URLLoaderFactory {
  public:
@@ -120,7 +120,7 @@
   }
 
  private:
-  // This is owned by ServiceWorkerScriptURLLoaderTest.
+  // This is owned by ServiceWorkerNewScriptLoaderTest.
   MockHTTPServer* mock_server_;
 
   DISALLOW_COPY_AND_ASSIGN(MockNetworkURLLoaderFactory);
@@ -128,14 +128,14 @@
 
 }  // namespace
 
-// ServiceWorkerScriptURLLoaderTest is for testing the handling of requests for
-// installing service worker scripts via ServiceWorkerScriptURLLoader.
-class ServiceWorkerScriptURLLoaderTest : public testing::Test {
+// ServiceWorkerNewScriptLoaderTest is for testing the handling of requests for
+// installing service worker scripts via ServiceWorkerNewScriptLoader.
+class ServiceWorkerNewScriptLoaderTest : public testing::Test {
  public:
-  ServiceWorkerScriptURLLoaderTest()
+  ServiceWorkerNewScriptLoaderTest()
       : thread_bundle_(TestBrowserThreadBundle::IO_MAINLOOP),
         mock_server_(std::make_unique<MockHTTPServer>()) {}
-  ~ServiceWorkerScriptURLLoaderTest() override = default;
+  ~ServiceWorkerNewScriptLoaderTest() override = default;
 
   ServiceWorkerContextCore* context() { return helper_->context(); }
 
@@ -226,7 +226,7 @@
     DCHECK(!loader_);
     DCHECK(!client_);
     client_ = std::make_unique<network::TestURLLoaderClient>();
-    loader_ = std::make_unique<ServiceWorkerScriptURLLoader>(
+    loader_ = std::make_unique<ServiceWorkerNewScriptLoader>(
         routing_id, request_id, options, request, client_->CreateInterfacePtr(),
         version_, helper_->url_loader_factory_getter(),
         net::MutableNetworkTrafficAnnotationTag(TRAFFIC_ANNOTATION_FOR_TESTS));
@@ -285,13 +285,13 @@
 
   scoped_refptr<ServiceWorkerRegistration> registration_;
   scoped_refptr<ServiceWorkerVersion> version_;
-  std::unique_ptr<ServiceWorkerScriptURLLoader> loader_;
+  std::unique_ptr<ServiceWorkerNewScriptLoader> loader_;
   std::unique_ptr<MockHTTPServer> mock_server_;
 
   std::unique_ptr<network::TestURLLoaderClient> client_;
 };
 
-TEST_F(ServiceWorkerScriptURLLoaderTest, Success) {
+TEST_F(ServiceWorkerNewScriptLoaderTest, Success) {
   const GURL kScriptURL(kNormalScriptURL);
   SetUpRegistration(kScriptURL);
   DoRequest(kScriptURL);
@@ -310,7 +310,7 @@
   EXPECT_TRUE(VerifyStoredResponse(kScriptURL));
 }
 
-TEST_F(ServiceWorkerScriptURLLoaderTest, Success_EmptyBody) {
+TEST_F(ServiceWorkerNewScriptLoaderTest, Success_EmptyBody) {
   const GURL kScriptURL("https://example.com/empty.js");
   mock_server_->Set(
       kScriptURL,
@@ -334,13 +334,13 @@
   EXPECT_TRUE(VerifyStoredResponse(kScriptURL));
 }
 
-TEST_F(ServiceWorkerScriptURLLoaderTest, Success_LargeBody) {
+TEST_F(ServiceWorkerNewScriptLoaderTest, Success_LargeBody) {
   // Create a response that has a larger body than the script loader's buffer
   // to test chunked data write. We chose this multiplier to avoid hitting the
   // limit of mojo's data pipe buffer (it's about kReadBufferSize * 2 as of
   // now).
   const uint32_t kBodySize =
-      ServiceWorkerScriptURLLoader::kReadBufferSize * 1.6;
+      ServiceWorkerNewScriptLoader::kReadBufferSize * 1.6;
   const GURL kScriptURL("https://example.com/large-body.js");
   mock_server_->Set(
       kScriptURL,
@@ -364,7 +364,7 @@
   EXPECT_TRUE(VerifyStoredResponse(kScriptURL));
 }
 
-TEST_F(ServiceWorkerScriptURLLoaderTest, Error_404) {
+TEST_F(ServiceWorkerNewScriptLoaderTest, Error_404) {
   const GURL kScriptURL("https://example.com/nonexistent.js");
   mock_server_->Set(kScriptURL, MockHTTPServer::Response(
                                     std::string("HTTP/1.1 404 Not Found\n\n"),
@@ -381,7 +381,7 @@
   EXPECT_FALSE(VerifyStoredResponse(kScriptURL));
 }
 
-TEST_F(ServiceWorkerScriptURLLoaderTest, Error_Redirect) {
+TEST_F(ServiceWorkerNewScriptLoaderTest, Error_Redirect) {
   const GURL kScriptURL("https://example.com/redirect.js");
   mock_server_->Set(
       kScriptURL,
@@ -399,7 +399,7 @@
   EXPECT_FALSE(VerifyStoredResponse(kScriptURL));
 }
 
-TEST_F(ServiceWorkerScriptURLLoaderTest, Error_CertificateError) {
+TEST_F(ServiceWorkerNewScriptLoaderTest, Error_CertificateError) {
   // Serve a response with a certificate error.
   const GURL kScriptURL("https://example.com/certificate-error.js");
   MockHTTPServer::Response response(std::string("HTTP/1.1 200 OK\n\n"),
@@ -420,7 +420,7 @@
   EXPECT_FALSE(VerifyStoredResponse(kScriptURL));
 }
 
-TEST_F(ServiceWorkerScriptURLLoaderTest, Error_NoMimeType) {
+TEST_F(ServiceWorkerNewScriptLoaderTest, Error_NoMimeType) {
   const GURL kScriptURL("https://example.com/no-mime-type.js");
   mock_server_->Set(kScriptURL, MockHTTPServer::Response(
                                     std::string("HTTP/1.1 200 OK\n\n"),
@@ -438,7 +438,7 @@
   EXPECT_FALSE(VerifyStoredResponse(kScriptURL));
 }
 
-TEST_F(ServiceWorkerScriptURLLoaderTest, Error_BadMimeType) {
+TEST_F(ServiceWorkerNewScriptLoaderTest, Error_BadMimeType) {
   const GURL kScriptURL("https://example.com/bad-mime-type.js");
   mock_server_->Set(kScriptURL, MockHTTPServer::Response(
                                     std::string("HTTP/1.1 200 OK\n"
@@ -458,7 +458,7 @@
   EXPECT_FALSE(VerifyStoredResponse(kScriptURL));
 }
 
-TEST_F(ServiceWorkerScriptURLLoaderTest, Success_PathRestriction) {
+TEST_F(ServiceWorkerNewScriptLoaderTest, Success_PathRestriction) {
   // |kScope| is not under the default scope ("/out-of-scope/"), but the
   // Service-Worker-Allowed header allows it.
   const GURL kScriptURL("https://example.com/out-of-scope/normal.js");
@@ -486,7 +486,7 @@
   EXPECT_TRUE(VerifyStoredResponse(kScriptURL));
 }
 
-TEST_F(ServiceWorkerScriptURLLoaderTest, Error_PathRestriction) {
+TEST_F(ServiceWorkerNewScriptLoaderTest, Error_PathRestriction) {
   // |kScope| is not under the default scope ("/out-of-scope/") and the
   // Service-Worker-Allowed header is not specified.
   const GURL kScriptURL("https://example.com/out-of-scope/normal.js");
@@ -509,7 +509,7 @@
   EXPECT_FALSE(VerifyStoredResponse(kScriptURL));
 }
 
-TEST_F(ServiceWorkerScriptURLLoaderTest, Error_RedundantWorker) {
+TEST_F(ServiceWorkerNewScriptLoaderTest, Error_RedundantWorker) {
   const GURL kScriptURL(kNormalScriptURL);
   SetUpRegistration(kScriptURL);
   DoRequest(kScriptURL);
@@ -528,7 +528,7 @@
   EXPECT_FALSE(VerifyStoredResponse(kScriptURL));
 }
 
-TEST_F(ServiceWorkerScriptURLLoaderTest, Update) {
+TEST_F(ServiceWorkerNewScriptLoaderTest, Update) {
   // Set up a registration with an incumbent.
   const GURL kScriptURL(kNormalScriptURL);
   SetUpRegistration(kScriptURL);
@@ -549,7 +549,7 @@
   EXPECT_EQ(1UL, version_->script_cache_map()->size());
 }
 
-TEST_F(ServiceWorkerScriptURLLoaderTest, Update_IdenticalScript) {
+TEST_F(ServiceWorkerNewScriptLoaderTest, Update_IdenticalScript) {
   // Set up a registration with an incumbent.
   const GURL kScriptURL(kNormalScriptURL);
   SetUpRegistration(kScriptURL);
diff --git a/content/browser/service_worker/service_worker_provider_host.cc b/content/browser/service_worker/service_worker_provider_host.cc
index b63ef7c2..3fd12f21 100644
--- a/content/browser/service_worker/service_worker_provider_host.cc
+++ b/content/browser/service_worker/service_worker_provider_host.cc
@@ -22,7 +22,7 @@
 #include "content/browser/service_worker/service_worker_controllee_request_handler.h"
 #include "content/browser/service_worker/service_worker_dispatcher_host.h"
 #include "content/browser/service_worker/service_worker_registration_object_host.h"
-#include "content/browser/service_worker/service_worker_script_url_loader_factory.h"
+#include "content/browser/service_worker/service_worker_script_loader_factory.h"
 #include "content/browser/service_worker/service_worker_type_converters.h"
 #include "content/browser/service_worker/service_worker_version.h"
 #include "content/browser/url_loader_factory_getter.h"
@@ -669,7 +669,7 @@
       script_loader_factory_ptr_info;
   if (ServiceWorkerUtils::IsServicificationEnabled()) {
     mojo::MakeStrongAssociatedBinding(
-        std::make_unique<ServiceWorkerScriptURLLoaderFactory>(
+        std::make_unique<ServiceWorkerScriptLoaderFactory>(
             context_, AsWeakPtr(), context_->loader_factory_getter()),
         mojo::MakeRequest(&script_loader_factory_ptr_info));
     provider_info->script_loader_factory_ptr_info =
diff --git a/content/browser/service_worker/service_worker_quota_client.h b/content/browser/service_worker/service_worker_quota_client.h
index 7df3af74..23a44871 100644
--- a/content/browser/service_worker/service_worker_quota_client.h
+++ b/content/browser/service_worker/service_worker_quota_client.h
@@ -9,7 +9,7 @@
 #include "base/memory/ref_counted.h"
 #include "content/common/content_export.h"
 #include "storage/browser/quota/quota_client.h"
-#include "third_party/WebKit/common/quota/quota_types.mojom.h"
+#include "third_party/WebKit/public/mojom/quota/quota_types.mojom.h"
 #include "url/origin.h"
 
 namespace content {
diff --git a/content/browser/service_worker/service_worker_script_url_loader_factory.cc b/content/browser/service_worker/service_worker_script_loader_factory.cc
similarity index 68%
rename from content/browser/service_worker/service_worker_script_url_loader_factory.cc
rename to content/browser/service_worker/service_worker_script_loader_factory.cc
index 4a886e4..46bcfb4 100644
--- a/content/browser/service_worker/service_worker_script_url_loader_factory.cc
+++ b/content/browser/service_worker/service_worker_script_loader_factory.cc
@@ -2,12 +2,13 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "content/browser/service_worker/service_worker_script_url_loader_factory.h"
+#include "content/browser/service_worker/service_worker_script_loader_factory.h"
 
 #include <memory>
 #include "content/browser/service_worker/service_worker_context_core.h"
+#include "content/browser/service_worker/service_worker_installed_script_loader.h"
+#include "content/browser/service_worker/service_worker_new_script_loader.h"
 #include "content/browser/service_worker/service_worker_provider_host.h"
-#include "content/browser/service_worker/service_worker_script_url_loader.h"
 #include "content/browser/service_worker/service_worker_version.h"
 #include "content/browser/url_loader_factory_getter.h"
 #include "content/common/service_worker/service_worker_utils.h"
@@ -16,7 +17,7 @@
 
 namespace content {
 
-ServiceWorkerScriptURLLoaderFactory::ServiceWorkerScriptURLLoaderFactory(
+ServiceWorkerScriptLoaderFactory::ServiceWorkerScriptLoaderFactory(
     base::WeakPtr<ServiceWorkerContextCore> context,
     base::WeakPtr<ServiceWorkerProviderHost> provider_host,
     scoped_refptr<URLLoaderFactoryGetter> loader_factory_getter)
@@ -26,10 +27,9 @@
   DCHECK(provider_host_->IsHostToRunningServiceWorker());
 }
 
-ServiceWorkerScriptURLLoaderFactory::~ServiceWorkerScriptURLLoaderFactory() =
-    default;
+ServiceWorkerScriptLoaderFactory::~ServiceWorkerScriptLoaderFactory() = default;
 
-void ServiceWorkerScriptURLLoaderFactory::CreateLoaderAndStart(
+void ServiceWorkerScriptLoaderFactory::CreateLoaderAndStart(
     network::mojom::URLLoaderRequest request,
     int32_t routing_id,
     int32_t request_id,
@@ -40,9 +40,8 @@
   DCHECK(ServiceWorkerUtils::IsServicificationEnabled());
   DCHECK(loader_factory_getter_);
   if (!ShouldHandleScriptRequest(resource_request)) {
-    // If the request should not be handled by ServiceWorkerScriptURLLoader,
-    // just fallback to the network. This needs a relaying as we use different
-    // associated message pipes.
+    // If the request should not be handled, just fallback to the network.
+    // This needs a relaying as we use different associated message pipes.
     // TODO(kinuko): Record the reason like what we do with netlog in
     // ServiceWorkerContextRequestHandler.
     loader_factory_getter_->GetNetworkFactory()->CreateLoaderAndStart(
@@ -50,22 +49,44 @@
         std::move(client), traffic_annotation);
     return;
   }
+
+  // If we get here, the service worker is not installed, so the script is
+  // usually not yet installed. However, there is a special case when an
+  // installing worker that imports the same script twice (e.g.
+  // importScripts('dupe.js'); importScripts('dupe.js');) or if it recursively
+  // imports the main script. In this case, read the installed script from
+  // storage.
+  scoped_refptr<ServiceWorkerVersion> version =
+      provider_host_->running_hosted_version();
+  int64_t resource_id =
+      version->script_cache_map()->LookupResourceId(resource_request.url);
+  if (resource_id != kInvalidServiceWorkerResourceId) {
+    std::unique_ptr<ServiceWorkerResponseReader> response_reader =
+        context_->storage()->CreateResponseReader(resource_id);
+    mojo::MakeStrongBinding(
+        std::make_unique<ServiceWorkerInstalledScriptLoader>(
+            options, std::move(client), std::move(response_reader)),
+        std::move(request));
+    return;
+  }
+
+  // The common case: load the script from network and install it.
   mojo::MakeStrongBinding(
-      std::make_unique<ServiceWorkerScriptURLLoader>(
+      std::make_unique<ServiceWorkerNewScriptLoader>(
           routing_id, request_id, options, resource_request, std::move(client),
           provider_host_->running_hosted_version(), loader_factory_getter_,
           traffic_annotation),
       std::move(request));
 }
 
-void ServiceWorkerScriptURLLoaderFactory::Clone(
+void ServiceWorkerScriptLoaderFactory::Clone(
     network::mojom::URLLoaderFactoryRequest request) {
   // This method is required to support synchronous requests which are not
   // performed during installation.
   NOTREACHED();
 }
 
-bool ServiceWorkerScriptURLLoaderFactory::ShouldHandleScriptRequest(
+bool ServiceWorkerScriptLoaderFactory::ShouldHandleScriptRequest(
     const network::ResourceRequest& resource_request) {
   if (!context_ || !provider_host_)
     return false;
@@ -75,9 +96,8 @@
   if (!version)
     return false;
 
-  // We use ServiceWorkerScriptURLLoader only for fetching the service worker
-  // main script (RESOURCE_TYPE_SERVICE_WORKER) or importScripts()
-  // (RESOURCE_TYPE_SCRIPT).
+  // Handle only the service worker main script (RESOURCE_TYPE_SERVICE_WORKER)
+  // or importScripts() (RESOURCE_TYPE_SCRIPT).
   switch (resource_request.resource_type) {
     case RESOURCE_TYPE_SERVICE_WORKER:
       // The main script should be fetched only when we start a new service
@@ -108,34 +128,16 @@
       return false;
   }
 
-  // TODO: Make sure we don't handle the redirected request.
+  // TODO(falken): Make sure we don't handle a redirected request.
 
   // For installed service workers, typically all the scripts are served via
   // script streaming, so we don't come here. However, we still come here when
   // the service worker is importing a script that was never installed. For now,
   // return false here to fallback to network. Eventually, it should be
   // deprecated (https://crbug.com/719052).
-  //
-  // For service workers that are not installed, we get here even for the main
-  // script. Therefore, ServiceWorkerScriptURLLoader must handle the request
-  // (even though it currently just does a network fetch for now), because it
-  // sets the main script's HTTP Response Info (via
-  // ServiceWorkerVersion::SetMainScriptHttpResponseInfo()) which otherwise
-  // would never be set.
   if (ServiceWorkerVersion::IsInstalled(version->status()))
     return false;
 
-  // TODO: Make sure we come here only for new / unknown scripts
-  // once script streaming manager in the renderer side stops sending
-  // resource requests for the known script URLs, i.e. add DCHECK for
-  // version->script_cache_map()->LookupResourceId(url) ==
-  // kInvalidServiceWorkerResourceId.
-  //
-  // Currently this could be false for the installing worker that imports
-  // the same script twice (e.g. importScripts('dupe.js');
-  // importScripts('dupe.js');).
-
-  // Request should be served by ServiceWorkerScriptURLLoader.
   return true;
 }
 
diff --git a/content/browser/service_worker/service_worker_script_url_loader_factory.h b/content/browser/service_worker/service_worker_script_loader_factory.h
similarity index 69%
rename from content/browser/service_worker/service_worker_script_url_loader_factory.h
rename to content/browser/service_worker/service_worker_script_loader_factory.h
index ae3f36aa..8463f04 100644
--- a/content/browser/service_worker/service_worker_script_url_loader_factory.h
+++ b/content/browser/service_worker/service_worker_script_loader_factory.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_SCRIPT_URL_LOADER_FACTORY_H_
-#define CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_SCRIPT_URL_LOADER_FACTORY_H_
+#ifndef CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_SCRIPT_LOADER_FACTORY_H_
+#define CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_SCRIPT_LOADER_FACTORY_H_
 
 #include "base/macros.h"
 #include "services/network/public/mojom/url_loader_factory.mojom.h"
@@ -15,18 +15,24 @@
 class URLLoaderFactoryGetter;
 
 // S13nServiceWorker:
-// Created per one controller worker for script loading (only during
+// Created per one running service worker for loading its scripts (only during
 // installation, eventually). This is kept alive while
 // ServiceWorkerNetworkProvider in the renderer process is alive.
-// Used only when IsServicificationEnabled is true.
-class ServiceWorkerScriptURLLoaderFactory
+//
+// This factory handles requests for the scripts of a new (installing)
+// service worker. For installed workers, service worker script streaming
+// (ServiceWorkerInstalledScriptsSender) is used instead.
+//
+// This factory creates either a ServiceWorkerNewScriptLoader or a
+// ServiceWorkerInstalledScriptLoader to load a script.
+class ServiceWorkerScriptLoaderFactory
     : public network::mojom::URLLoaderFactory {
  public:
-  ServiceWorkerScriptURLLoaderFactory(
+  ServiceWorkerScriptLoaderFactory(
       base::WeakPtr<ServiceWorkerContextCore> context,
       base::WeakPtr<ServiceWorkerProviderHost> provider_host,
       scoped_refptr<URLLoaderFactoryGetter> loader_factory_getter);
-  ~ServiceWorkerScriptURLLoaderFactory() override;
+  ~ServiceWorkerScriptLoaderFactory() override;
 
   // network::mojom::URLLoaderFactory:
   void CreateLoaderAndStart(network::mojom::URLLoaderRequest request,
@@ -47,9 +53,9 @@
   base::WeakPtr<ServiceWorkerProviderHost> provider_host_;
   scoped_refptr<URLLoaderFactoryGetter> loader_factory_getter_;
 
-  DISALLOW_COPY_AND_ASSIGN(ServiceWorkerScriptURLLoaderFactory);
+  DISALLOW_COPY_AND_ASSIGN(ServiceWorkerScriptLoaderFactory);
 };
 
 }  // namespace content
 
-#endif  // CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_SCRIPT_URL_LOADER_FACTORY_H_
+#endif  // CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_SCRIPT_LOADER_FACTORY_H_
diff --git a/content/browser/service_worker/service_worker_storage.cc b/content/browser/service_worker/service_worker_storage.cc
index 8547c02..31277926 100644
--- a/content/browser/service_worker/service_worker_storage.cc
+++ b/content/browser/service_worker/service_worker_storage.cc
@@ -29,7 +29,7 @@
 #include "net/base/net_errors.h"
 #include "storage/browser/quota/quota_manager_proxy.h"
 #include "storage/browser/quota/special_storage_policy.h"
-#include "third_party/WebKit/common/quota/quota_types.mojom.h"
+#include "third_party/WebKit/public/mojom/quota/quota_types.mojom.h"
 #include "third_party/WebKit/public/mojom/service_worker/service_worker_object.mojom.h"
 #include "third_party/WebKit/public/mojom/service_worker/service_worker_registration.mojom.h"
 #include "third_party/WebKit/public/platform/web_feature.mojom.h"
diff --git a/content/browser/service_worker/service_worker_url_job_wrapper.cc b/content/browser/service_worker/service_worker_url_job_wrapper.cc
index 1f1d36e..67c69af 100644
--- a/content/browser/service_worker/service_worker_url_job_wrapper.cc
+++ b/content/browser/service_worker/service_worker_url_job_wrapper.cc
@@ -4,7 +4,7 @@
 
 #include "content/browser/service_worker/service_worker_url_job_wrapper.h"
 
-#include "content/browser/service_worker/service_worker_url_loader_job.h"
+#include "content/browser/service_worker/service_worker_navigation_loader.h"
 #include "content/browser/service_worker/service_worker_url_request_job.h"
 #include "content/public/browser/resource_request_info.h"
 #include "content/public/common/content_switches.h"
@@ -16,7 +16,7 @@
     : url_request_job_(std::move(url_request_job)) {}
 
 ServiceWorkerURLJobWrapper::ServiceWorkerURLJobWrapper(
-    std::unique_ptr<ServiceWorkerURLLoaderJob> url_loader_job)
+    std::unique_ptr<ServiceWorkerNavigationLoader> url_loader_job)
     : url_loader_job_(std::move(url_loader_job)) {}
 
 ServiceWorkerURLJobWrapper::~ServiceWorkerURLJobWrapper() {
diff --git a/content/browser/service_worker/service_worker_url_job_wrapper.h b/content/browser/service_worker/service_worker_url_job_wrapper.h
index 2190900..bd12480 100644
--- a/content/browser/service_worker/service_worker_url_job_wrapper.h
+++ b/content/browser/service_worker/service_worker_url_job_wrapper.h
@@ -13,7 +13,7 @@
 namespace content {
 
 class ServiceWorkerURLRequestJob;
-class ServiceWorkerURLLoaderJob;
+class ServiceWorkerNavigationLoader;
 class ServiceWorkerVersion;
 
 // This class is a helper to support having
@@ -24,7 +24,7 @@
 // underlying implementation.
 class ServiceWorkerURLJobWrapper {
  public:
-  // A helper used by the ServiceWorkerURLLoaderJob or
+  // A helper used by the ServiceWorkerNavigationLoader or
   // ServiceWorkerURLRequestJob.
   class CONTENT_EXPORT Delegate {
    public:
@@ -32,7 +32,7 @@
 
     // Will be invoked before the request is restarted. The caller
     // can use this opportunity to grab state from the
-    // ServiceWorkerURLLoaderJob or ServiceWorkerURLRequestJob to determine
+    // ServiceWorkerNavigationLoader or ServiceWorkerURLRequestJob to determine
     // how it should behave when the request is restarted.
     virtual void OnPrepareToRestart() = 0;
 
@@ -59,7 +59,7 @@
 
   // S13nServiceWorker.
   explicit ServiceWorkerURLJobWrapper(
-      std::unique_ptr<ServiceWorkerURLLoaderJob> url_loader_job);
+      std::unique_ptr<ServiceWorkerNavigationLoader> url_loader_job);
 
   ~ServiceWorkerURLJobWrapper();
 
@@ -83,7 +83,7 @@
  private:
   enum class JobType { kURLRequest, kURLLoader };
   base::WeakPtr<ServiceWorkerURLRequestJob> url_request_job_;
-  std::unique_ptr<ServiceWorkerURLLoaderJob> url_loader_job_;
+  std::unique_ptr<ServiceWorkerNavigationLoader> url_loader_job_;
 
   DISALLOW_COPY_AND_ASSIGN(ServiceWorkerURLJobWrapper);
 };
diff --git a/content/browser/service_worker/service_worker_url_request_job.cc b/content/browser/service_worker/service_worker_url_request_job.cc
index b99918f3..0405cdb 100644
--- a/content/browser/service_worker/service_worker_url_request_job.cc
+++ b/content/browser/service_worker/service_worker_url_request_job.cc
@@ -747,7 +747,7 @@
   // |body_as_blob| must be kept around until we call this to ensure that
   // it's alive.
   // TODO(falken): Can we just read |body_as_blob| directly like in
-  // ServiceWorkerURLLoaderJob?
+  // ServiceWorkerNavigationLoader?
   if (!response.blob_uuid.empty() && blob_storage_context_) {
     SetResponseBodyType(BLOB);
     std::unique_ptr<storage::BlobDataHandle> blob_data_handle =
diff --git a/content/browser/shared_worker/shared_worker_instance.h b/content/browser/shared_worker/shared_worker_instance.h
index c360c25e..62de2075 100644
--- a/content/browser/shared_worker/shared_worker_instance.h
+++ b/content/browser/shared_worker/shared_worker_instance.h
@@ -8,7 +8,7 @@
 #include <string>
 
 #include "content/common/content_export.h"
-#include "third_party/WebKit/common/net/ip_address_space.mojom.h"
+#include "third_party/WebKit/public/mojom/net/ip_address_space.mojom.h"
 #include "third_party/WebKit/public/platform/WebContentSecurityPolicy.h"
 #include "third_party/WebKit/public/web/shared_worker_creation_context_type.mojom.h"
 #include "url/gurl.h"
diff --git a/content/browser/site_per_process_browsertest.cc b/content/browser/site_per_process_browsertest.cc
index c798c8a6..c47fc686 100644
--- a/content/browser/site_per_process_browsertest.cc
+++ b/content/browser/site_per_process_browsertest.cc
@@ -1480,6 +1480,60 @@
   }
 }
 
+// Tests that scrolling bubbles from an oopif if its source body has
+// "overflow:hidden" style.
+IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest,
+                       ScrollBubblingFromOOPIFWithBodyOverflowHidden) {
+  GURL url_domain_a(embedded_test_server()->GetURL(
+      "a.com", "/scrollable_page_with_iframe.html"));
+  EXPECT_TRUE(NavigateToURL(shell(), url_domain_a));
+  FrameTreeNode* root = web_contents()->GetFrameTree()->root();
+
+  FrameTreeNode* iframe_node = root->child_at(0);
+  GURL url_domain_b(
+      embedded_test_server()->GetURL("b.com", "/body_overflow_hidden.html"));
+  NavigateFrameToURL(iframe_node, url_domain_b);
+  WaitForChildFrameSurfaceReady(iframe_node->current_frame_host());
+
+  RenderWidgetHostViewBase* root_view = static_cast<RenderWidgetHostViewBase*>(
+      root->current_frame_host()->GetRenderWidgetHost()->GetView());
+
+  RenderWidgetHostViewBase* child_view = static_cast<RenderWidgetHostViewBase*>(
+      iframe_node->current_frame_host()->GetRenderWidgetHost()->GetView());
+
+  ScrollObserver scroll_observer(0, -5);
+  root->current_frame_host()->GetRenderWidgetHost()->AddInputEventObserver(
+      &scroll_observer);
+
+  // Now scroll the nested frame downward, this must bubble to the root since
+  // the iframe source body is not scrollable.
+  blink::WebMouseWheelEvent scroll_event(
+      blink::WebInputEvent::kMouseWheel, blink::WebInputEvent::kNoModifiers,
+      blink::WebInputEvent::GetStaticTimeStampForTests());
+  gfx::Rect bounds = child_view->GetViewBounds();
+  float scale_factor = GetPageScaleFactor(shell());
+  scroll_event.SetPositionInWidget(
+      gfx::ToCeiledInt((bounds.x() - root_view->GetViewBounds().x() + 10) *
+                       scale_factor),
+      gfx::ToCeiledInt((bounds.y() - root_view->GetViewBounds().y() + 10) *
+                       scale_factor));
+  scroll_event.delta_x = 0.0f;
+  scroll_event.delta_y = -5.0f;
+  scroll_event.phase = blink::WebMouseWheelEvent::kPhaseBegan;
+  scroll_event.has_precise_scrolling_deltas = true;
+  child_view->ProcessMouseWheelEvent(scroll_event, ui::LatencyInfo());
+
+  // Send a wheel end event to complete the scrolling sequence when wheel scroll
+  // latching is enabled.
+  if (root_view->wheel_scroll_latching_enabled()) {
+    scroll_event.delta_y = 0.0f;
+    scroll_event.phase = blink::WebMouseWheelEvent::kPhaseEnded;
+    child_view->ProcessMouseWheelEvent(scroll_event, ui::LatencyInfo());
+  }
+
+  scroll_observer.Wait();
+}
+
 // This test verifies that scrolling an element to view works across OOPIFs.
 IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest, ScrollElementIntoView) {
   GURL url_domain_a(
@@ -5791,10 +5845,11 @@
 
  private:
   void RegisterCallback() {
-    view_->RegisterFrameSwappedCallback(std::make_unique<base::Closure>(
-        base::Bind(&ChildFrameCompositorFrameSwapCounter::OnFrameSwapped,
-                   weak_factory_.GetWeakPtr())));
+    view_->RegisterFrameSwappedCallback(
+        base::BindOnce(&ChildFrameCompositorFrameSwapCounter::OnFrameSwapped,
+                       weak_factory_.GetWeakPtr()));
   }
+
   void OnFrameSwapped() {
     counter_++;
 
diff --git a/content/browser/speech/speech_recognition_dispatcher_host.cc b/content/browser/speech/speech_recognition_dispatcher_host.cc
index 5b37e282..24f48701 100644
--- a/content/browser/speech/speech_recognition_dispatcher_host.cc
+++ b/content/browser/speech/speech_recognition_dispatcher_host.cc
@@ -17,7 +17,6 @@
 #include "content/public/browser/speech_recognition_manager_delegate.h"
 #include "content/public/browser/speech_recognition_session_config.h"
 #include "content/public/browser/speech_recognition_session_context.h"
-#include "content/public/common/child_process_host.h"
 #include "content/public/common/content_switches.h"
 
 namespace content {
@@ -90,7 +89,7 @@
     return;
   }
 
-  int embedder_render_process_id = ChildProcessHost::kInvalidUniqueID;
+  int embedder_render_process_id = 0;
   int embedder_render_view_id = MSG_ROUTING_NONE;
   RenderViewHostImpl* render_view_host =
       RenderViewHostImpl::FromID(render_process_id_, params.render_view_id);
@@ -110,7 +109,7 @@
     // to decide permission.
     embedder_render_process_id =
         outer_web_contents->GetRenderViewHost()->GetProcess()->GetID();
-    DCHECK_NE(embedder_render_process_id, ChildProcessHost::kInvalidUniqueID);
+    DCHECK_NE(embedder_render_process_id, 0);
     embedder_render_view_id =
         outer_web_contents->GetRenderViewHost()->GetRoutingID();
     DCHECK_NE(embedder_render_view_id, MSG_ROUTING_NONE);
@@ -150,6 +149,8 @@
   context.render_frame_id = params_render_frame_id;
   context.embedder_render_process_id = embedder_render_process_id;
   context.embedder_render_view_id = embedder_render_view_id;
+  if (embedder_render_process_id)
+    context.guest_render_view_id = params.render_view_id;
   context.request_id = params.request_id;
 
   SpeechRecognitionSessionConfig config;
diff --git a/content/browser/storage_partition_impl.cc b/content/browser/storage_partition_impl.cc
index bbe93a25..4a651d9 100644
--- a/content/browser/storage_partition_impl.cc
+++ b/content/browser/storage_partition_impl.cc
@@ -54,7 +54,7 @@
 #include "storage/browser/blob/blob_storage_context.h"
 #include "storage/browser/database/database_tracker.h"
 #include "storage/browser/quota/quota_manager.h"
-#include "third_party/WebKit/common/quota/quota_types.mojom.h"
+#include "third_party/WebKit/public/mojom/quota/quota_types.mojom.h"
 
 #if !defined(OS_ANDROID)
 #include "content/browser/host_zoom_map_impl.h"
diff --git a/content/browser/web_contents/web_contents_android.cc b/content/browser/web_contents/web_contents_android.cc
index 459fd9c..f51fe3061 100644
--- a/content/browser/web_contents/web_contents_android.cc
+++ b/content/browser/web_contents/web_contents_android.cc
@@ -592,16 +592,16 @@
     jint height,
     const JavaParamRef<jobject>& jcallback) {
   RenderWidgetHostViewAndroid* view = GetRenderWidgetHostViewAndroid();
-  const ReadbackRequestCallback result_callback = base::Bind(
+  base::OnceCallback<void(const SkBitmap&)> result_callback = base::BindOnce(
       &WebContentsAndroid::OnFinishGetContentBitmap, weak_factory_.GetWeakPtr(),
       ScopedJavaGlobalRef<jobject>(env, obj),
       ScopedJavaGlobalRef<jobject>(env, jcallback));
   if (!view) {
-    result_callback.Run(SkBitmap(), READBACK_FAILED);
+    std::move(result_callback).Run(SkBitmap());
     return;
   }
-  view->CopyFromSurface(gfx::Rect(), gfx::Size(width, height), result_callback,
-                        kN32_SkColorType);
+  view->CopyFromSurface(gfx::Rect(), gfx::Size(width, height),
+                        std::move(result_callback));
 }
 
 void WebContentsAndroid::ReloadLoFiImages(JNIEnv* env,
@@ -705,14 +705,13 @@
 void WebContentsAndroid::OnFinishGetContentBitmap(
     const JavaRef<jobject>& obj,
     const JavaRef<jobject>& callback,
-    const SkBitmap& bitmap,
-    ReadbackResponse response) {
+    const SkBitmap& bitmap) {
   JNIEnv* env = base::android::AttachCurrentThread();
   ScopedJavaLocalRef<jobject> java_bitmap;
-  if (response == READBACK_SUCCESS)
+  if (!bitmap.drawsNothing())
     java_bitmap = gfx::ConvertToJavaBitmap(&bitmap);
   Java_WebContentsImpl_onGetContentBitmapFinished(env, obj, callback,
-                                                  java_bitmap, response);
+                                                  java_bitmap);
 }
 
 void WebContentsAndroid::OnFinishDownloadImage(
diff --git a/content/browser/web_contents/web_contents_android.h b/content/browser/web_contents/web_contents_android.h
index fe9fe57a..47e379e 100644
--- a/content/browser/web_contents/web_contents_android.h
+++ b/content/browser/web_contents/web_contents_android.h
@@ -228,8 +228,7 @@
 
   void OnFinishGetContentBitmap(const base::android::JavaRef<jobject>& obj,
                                 const base::android::JavaRef<jobject>& callback,
-                                const SkBitmap& bitmap,
-                                ReadbackResponse response);
+                                const SkBitmap& bitmap);
 
   void OnFinishDownloadImage(const base::android::JavaRef<jobject>& obj,
                              const base::android::JavaRef<jobject>& callback,
diff --git a/content/browser/webauth/authenticator_impl.cc b/content/browser/webauth/authenticator_impl.cc
index 4dde890..8265fb38 100644
--- a/content/browser/webauth/authenticator_impl.cc
+++ b/content/browser/webauth/authenticator_impl.cc
@@ -182,7 +182,9 @@
   DCHECK(timer_);
 }
 
-AuthenticatorImpl::~AuthenticatorImpl() {}
+AuthenticatorImpl::~AuthenticatorImpl() {
+  bindings_.CloseAllBindings();
+}
 
 void AuthenticatorImpl::Bind(webauth::mojom::AuthenticatorRequest request) {
   bindings_.AddBinding(this, std::move(request));
diff --git a/content/browser/webauth/authenticator_impl_unittest.cc b/content/browser/webauth/authenticator_impl_unittest.cc
index 9c0de7a7..0321c7f 100644
--- a/content/browser/webauth/authenticator_impl_unittest.cc
+++ b/content/browser/webauth/authenticator_impl_unittest.cc
@@ -11,7 +11,6 @@
 
 #include "base/json/json_parser.h"
 #include "base/json/json_writer.h"
-#include "base/logging.h"
 #include "base/run_loop.h"
 #include "base/test/gtest_util.h"
 #include "base/test/test_mock_time_task_runner.h"
@@ -343,15 +342,10 @@
     AuthenticatorPtr authenticator = ConnectToAuthenticator();
     PublicKeyCredentialCreationOptionsPtr options =
         GetTestPublicKeyCredentialCreationOptions();
-    DLOG(INFO) << "got options";
     options->relying_party->id = test_case.relying_party_id;
-    DLOG(INFO) << options->relying_party->id;
     TestMakeCredentialCallback cb;
-    DLOG(INFO) << "got callback";
     authenticator->MakeCredential(std::move(options), cb.callback());
-    DLOG(INFO) << "called make cred";
     cb.WaitForCallback();
-    DLOG(INFO) << "finished waiting";
     EXPECT_EQ(webauth::mojom::AuthenticatorStatus::INVALID_DOMAIN,
               cb.GetResponseStatus());
   }
diff --git a/content/browser/webauth/webauth_browsertest.cc b/content/browser/webauth/webauth_browsertest.cc
new file mode 100644
index 0000000..447c61d4
--- /dev/null
+++ b/content/browser/webauth/webauth_browsertest.cc
@@ -0,0 +1,222 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include <stdint.h>
+
+#include <vector>
+
+#include "base/command_line.h"
+#include "base/macros.h"
+#include "base/test/scoped_feature_list.h"
+#include "base/test/test_mock_time_task_runner.h"
+#include "base/time/tick_clock.h"
+#include "base/time/time.h"
+#include "components/network_session_configurator/common/network_switches.h"
+#include "content/browser/webauth/authenticator_impl.h"
+#include "content/public/browser/web_contents.h"
+#include "content/public/common/content_features.h"
+#include "content/public/common/content_switches.h"
+#include "content/public/common/service_manager_connection.h"
+#include "content/public/test/browser_test.h"
+#include "content/public/test/content_browser_test.h"
+#include "content/public/test/content_browser_test_utils.h"
+#include "content/shell/browser/shell.h"
+#include "device/fido/fake_hid_impl_for_testing.h"
+#include "net/dns/mock_host_resolver.h"
+#include "services/device/public/mojom/constants.mojom.h"
+#include "services/service_manager/public/cpp/connector.h"
+#include "testing/gmock/include/gmock/gmock.h"
+#include "testing/gtest/include/gtest/gtest.h"
+#include "third_party/WebKit/public/platform/modules/webauth/authenticator.mojom.h"
+
+namespace content {
+
+using webauth::mojom::AuthenticatorPtr;
+using webauth::mojom::AuthenticatorStatus;
+using webauth::mojom::GetAssertionAuthenticatorResponsePtr;
+using webauth::mojom::MakeCredentialAuthenticatorResponsePtr;
+
+class WebAuthBrowserTest : public content::ContentBrowserTest {
+ public:
+  WebAuthBrowserTest() : https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
+    scoped_feature_list_.InitAndEnableFeature(features::kWebAuth);
+  }
+
+  void SetUp() override { content::ContentBrowserTest::SetUp(); }
+
+  void SetUpOnMainThread() override {
+    host_resolver()->AddRule("*", "127.0.0.1");
+    https_server_.ServeFilesFromSourceDirectory("content/test/data");
+    ASSERT_TRUE(https_server_.Start());
+  }
+
+  void SetUpCommandLine(base::CommandLine* command_line) override {
+    command_line->AppendSwitch(
+        switches::kEnableExperimentalWebPlatformFeatures);
+    command_line->AppendSwitch(switches::kIgnoreCertificateErrors);
+  }
+
+  static constexpr int32_t kCOSEAlgorithmIdentifierES256 = -7;
+
+  webauth::mojom::PublicKeyCredentialCreationOptionsPtr
+  BuildBasicCreateOptions() {
+    auto rp = webauth::mojom::PublicKeyCredentialRpEntity::New(
+        "example.com", "example.com", base::nullopt);
+
+    std::vector<uint8_t> kTestUserId{0, 0, 0};
+    auto user = webauth::mojom::PublicKeyCredentialUserEntity::New(
+        kTestUserId, "name", base::nullopt, "displayName");
+
+    auto param = webauth::mojom::PublicKeyCredentialParameters::New();
+    param->type = webauth::mojom::PublicKeyCredentialType::PUBLIC_KEY;
+    param->algorithm_identifier = kCOSEAlgorithmIdentifierES256;
+    std::vector<webauth::mojom::PublicKeyCredentialParametersPtr> parameters;
+    parameters.push_back(std::move(param));
+
+    std::vector<uint8_t> kTestChallenge{0, 0, 0};
+    auto mojo_options = webauth::mojom::PublicKeyCredentialCreationOptions::New(
+        std::move(rp), std::move(user), kTestChallenge, std::move(parameters),
+        base::TimeDelta::FromSeconds(30),
+        std::vector<webauth::mojom::PublicKeyCredentialDescriptorPtr>(),
+        webauth::mojom::AttestationConveyancePreference::NONE);
+
+    return mojo_options;
+  }
+
+  webauth::mojom::PublicKeyCredentialRequestOptionsPtr BuildBasicGetOptions() {
+    std::vector<webauth::mojom::PublicKeyCredentialDescriptorPtr> credentials;
+    std::vector<webauth::mojom::AuthenticatorTransport> transports;
+    transports.push_back(webauth::mojom::AuthenticatorTransport::USB);
+
+    std::vector<uint8_t> kCredentialId{0, 0, 0};
+    auto descriptor = webauth::mojom::PublicKeyCredentialDescriptor::New(
+        webauth::mojom::PublicKeyCredentialType::PUBLIC_KEY, kCredentialId,
+        transports);
+    credentials.push_back(std::move(descriptor));
+
+    std::vector<uint8_t> kTestChallenge{0, 0, 0};
+    auto mojo_options = webauth::mojom::PublicKeyCredentialRequestOptions::New(
+        kTestChallenge, base::TimeDelta::FromSeconds(30), "example.com",
+        std::move(credentials));
+
+    return mojo_options;
+  }
+
+  GURL GetHttpsURL(const std::string& hostname,
+                   const std::string& relative_url) {
+    return https_server_.GetURL(hostname, relative_url);
+  }
+
+  AuthenticatorPtr ConnectToAuthenticatorWithTestConnector() {
+    // Set up service_manager::Connector for tests.
+    auto fake_hid_manager = std::make_unique<device::FakeHidManager>();
+    service_manager::mojom::ConnectorRequest request;
+    auto connector = service_manager::Connector::Create(&request);
+    service_manager::Connector::TestApi test_api(connector.get());
+    test_api.OverrideBinderForTesting(
+        service_manager::Identity(device::mojom::kServiceName),
+        device::mojom::HidManager::Name_,
+        base::BindRepeating(&device::FakeHidManager::AddBinding,
+                            base::Unretained(fake_hid_manager.get())));
+
+    authenticator_impl_.reset(new content::AuthenticatorImpl(
+        shell()->web_contents()->GetMainFrame(), connector.get(),
+        std::make_unique<base::OneShotTimer>()));
+    AuthenticatorPtr authenticator;
+    authenticator_impl_->Bind(mojo::MakeRequest(&authenticator));
+    return authenticator;
+  }
+
+ private:
+  base::test::ScopedFeatureList scoped_feature_list_;
+  net::EmbeddedTestServer https_server_;
+  std::unique_ptr<content::AuthenticatorImpl> authenticator_impl_;
+
+  DISALLOW_COPY_AND_ASSIGN(WebAuthBrowserTest);
+};
+
+class MockCreateCallback {
+ public:
+  MockCreateCallback() = default;
+  MOCK_METHOD0_T(Run, void());
+
+  using MakeCredentialCallback =
+      base::OnceCallback<void(AuthenticatorStatus,
+                              MakeCredentialAuthenticatorResponsePtr)>;
+
+  void RunWrapper(AuthenticatorStatus unused,
+                  MakeCredentialAuthenticatorResponsePtr unused2) {
+    Run();
+  }
+
+  MakeCredentialCallback Get() {
+    return base::BindOnce(&MockCreateCallback::RunWrapper,
+                          base::Unretained(this));
+  }
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(MockCreateCallback);
+};
+
+class MockGetCallback {
+ public:
+  MockGetCallback() = default;
+  MOCK_METHOD0_T(Run, void());
+
+  using GetAssertionCallback =
+      base::OnceCallback<void(AuthenticatorStatus,
+                              GetAssertionAuthenticatorResponsePtr)>;
+
+  void RunWrapper(AuthenticatorStatus unused,
+                  GetAssertionAuthenticatorResponsePtr unused2) {
+    Run();
+  }
+
+  GetAssertionCallback Get() {
+    return base::BindOnce(&MockGetCallback::RunWrapper, base::Unretained(this));
+  }
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(MockGetCallback);
+};
+
+// Tests.
+
+// Tests that no crash occurs when navigating away during a pending
+// create(publicKey) request.
+IN_PROC_BROWSER_TEST_F(WebAuthBrowserTest,
+                       CreatePublicKeyCredentialNavigateAway) {
+  const GURL a_url1 = GetHttpsURL("www.example.com", "/title1.html");
+  const GURL b_url1 = GetHttpsURL("www.test.com", "/title1.html");
+
+  NavigateToURL(shell(), a_url1);
+
+  AuthenticatorPtr authenticator = ConnectToAuthenticatorWithTestConnector();
+
+  MockCreateCallback create_callback;
+  EXPECT_CALL(create_callback, Run()).Times(0);
+  authenticator->MakeCredential(BuildBasicCreateOptions(),
+                                create_callback.Get());
+
+  ASSERT_NO_FATAL_FAILURE(NavigateToURL(shell(), b_url1));
+}
+
+// Tests that no crash occurs when navigating away during a pending
+// get(publicKey) request.
+IN_PROC_BROWSER_TEST_F(WebAuthBrowserTest, GetPublicKeyCredentialNavigateAway) {
+  const GURL a_url1 = GetHttpsURL("www.example.com", "/title1.html");
+  const GURL b_url1 = GetHttpsURL("www.test.com", "/title1.html");
+
+  NavigateToURL(shell(), a_url1);
+
+  AuthenticatorPtr authenticator = ConnectToAuthenticatorWithTestConnector();
+
+  MockGetCallback get_callback;
+  EXPECT_CALL(get_callback, Run()).Times(0);
+  authenticator->GetAssertion(BuildBasicGetOptions(), get_callback.Get());
+
+  ASSERT_NO_FATAL_FAILURE(NavigateToURL(shell(), b_url1));
+}
+
+}  // namespace content
diff --git a/content/browser/webrtc/webrtc_getusermedia_browsertest.cc b/content/browser/webrtc/webrtc_getusermedia_browsertest.cc
index 3bc66c6..3f07d2a 100644
--- a/content/browser/webrtc/webrtc_getusermedia_browsertest.cc
+++ b/content/browser/webrtc/webrtc_getusermedia_browsertest.cc
@@ -574,14 +574,8 @@
 }
 
 // Flaky: crbug.com/807638
-#if defined(OS_LINUX) || defined(OS_CHROMEOS)
-#define MAYBE_VideoInIFrameAndCloseInSuccessCb \
-  DISABLED_VideoInIFrameAndCloseInSuccessCb
-#else
-#define MAYBE_VideoInIFrameAndCloseInSuccessCb VideoInIFrameAndCloseInSuccessCb
-#endif
 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest,
-                       MAYBE_VideoInIFrameAndCloseInSuccessCb) {
+                       DISABLED_VideoInIFrameAndCloseInSuccessCb) {
   ASSERT_TRUE(embedded_test_server()->Start());
 
   GURL url(embedded_test_server()->GetURL("/media/getusermedia.html"));
diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc
index 2aac530d..5835127cd 100644
--- a/content/child/runtime_features.cc
+++ b/content/child/runtime_features.cc
@@ -305,9 +305,9 @@
   if (base::FeatureList::IsEnabled(features::kGamepadExtensions))
     WebRuntimeFeatures::EnableGamepadExtensions(true);
 
-  if (!base::FeatureList::IsEnabled(features::kCompositeOpaqueFixedPosition))
+  if (base::FeatureList::IsEnabled(features::kCompositeOpaqueFixedPosition))
     WebRuntimeFeatures::EnableFeatureFromString("CompositeOpaqueFixedPosition",
-                                                false);
+                                                true);
 
   if (!base::FeatureList::IsEnabled(features::kCompositeOpaqueScrollers))
     WebRuntimeFeatures::EnableFeatureFromString("CompositeOpaqueScrollers",
diff --git a/content/common/content_param_traits.cc b/content/common/content_param_traits.cc
index fbe9007..b76c849 100644
--- a/content/common/content_param_traits.cc
+++ b/content/common/content_param_traits.cc
@@ -11,9 +11,9 @@
 #include "ipc/ipc_mojo_message_helper.h"
 #include "ipc/ipc_mojo_param_traits.h"
 #include "net/base/ip_endpoint.h"
-#include "third_party/WebKit/common/message_port/message_port.mojom.h"
 #include "third_party/WebKit/public/common/message_port/message_port_channel.h"
 #include "third_party/WebKit/public/common/message_port/transferable_message.h"
+#include "third_party/WebKit/public/mojom/message_port/message_port.mojom.h"
 #include "ui/accessibility/ax_modes.h"
 #include "ui/base/ui_base_features.h"
 #include "ui/events/blink/web_input_event_traits.h"
diff --git a/content/common/content_param_traits_macros.h b/content/common/content_param_traits_macros.h
index 2dfc986..6ccdc68d 100644
--- a/content/common/content_param_traits_macros.h
+++ b/content/common/content_param_traits_macros.h
@@ -16,7 +16,7 @@
 #include "content/public/common/request_context_type.h"
 #include "content/public/common/resource_type.h"
 #include "ipc/ipc_message_macros.h"
-#include "third_party/WebKit/common/page/page_visibility_state.mojom.h"
+#include "third_party/WebKit/public/mojom/page/page_visibility_state.mojom.h"
 #include "third_party/WebKit/public/platform/WebContentSecurityPolicy.h"
 #include "third_party/WebKit/public/platform/WebInputEvent.h"
 #include "third_party/WebKit/public/web/WebImeTextSpan.h"
diff --git a/content/common/navigation_params.cc b/content/common/navigation_params.cc
index 959e179..6d18f9fe 100644
--- a/content/common/navigation_params.cc
+++ b/content/common/navigation_params.cc
@@ -116,13 +116,4 @@
 
 RequestNavigationParams::~RequestNavigationParams() = default;
 
-NavigationParams::NavigationParams(
-    const CommonNavigationParams& common_params,
-    const RequestNavigationParams& request_params)
-    : common_params(common_params),
-      request_params(request_params) {
-}
-
-NavigationParams::~NavigationParams() = default;
-
 }  // namespace content
diff --git a/content/common/navigation_params.h b/content/common/navigation_params.h
index b31ba53..7cf25dc 100644
--- a/content/common/navigation_params.h
+++ b/content/common/navigation_params.h
@@ -317,17 +317,6 @@
 #endif
 };
 
-// Helper struct keeping track in one place of all the parameters the browser
-// needs to provide to the renderer.
-struct NavigationParams {
-  NavigationParams(const CommonNavigationParams& common_params,
-                   const RequestNavigationParams& request_params);
-  ~NavigationParams();
-
-  CommonNavigationParams common_params;
-  RequestNavigationParams request_params;
-};
-
 }  // namespace content
 
 #endif  // CONTENT_COMMON_NAVIGATION_PARAMS_H_
diff --git a/content/common/service_worker/service_worker_container.mojom b/content/common/service_worker/service_worker_container.mojom
index 9dc06d60e..055be4d 100644
--- a/content/common/service_worker/service_worker_container.mojom
+++ b/content/common/service_worker/service_worker_container.mojom
@@ -6,7 +6,7 @@
 
 import "content/common/service_worker/controller_service_worker.mojom";
 import "mojo/public/mojom/base/string16.mojom";
-import "third_party/WebKit/common/message_port/message_port.mojom";
+import "third_party/WebKit/public/mojom/message_port/message_port.mojom";
 import "third_party/WebKit/public/mojom/service_worker/service_worker_error_type.mojom";
 import "third_party/WebKit/public/mojom/service_worker/service_worker_object.mojom";
 import "third_party/WebKit/public/mojom/service_worker/service_worker_registration.mojom";
diff --git a/content/common/service_worker/service_worker_event_dispatcher.mojom b/content/common/service_worker/service_worker_event_dispatcher.mojom
index 2f2c2e3a9..815aa49 100644
--- a/content/common/service_worker/service_worker_event_dispatcher.mojom
+++ b/content/common/service_worker/service_worker_event_dispatcher.mojom
@@ -10,7 +10,7 @@
 import "mojo/common/time.mojom";
 import "third_party/WebKit/public/platform/modules/fetch/fetch_api_request.mojom";
 import "third_party/WebKit/public/platform/modules/payments/payment_app.mojom";
-import "third_party/WebKit/common/message_port/message_port.mojom";
+import "third_party/WebKit/public/mojom/message_port/message_port.mojom";
 import "third_party/WebKit/public/mojom/service_worker/service_worker_client.mojom";
 import "third_party/WebKit/public/mojom/service_worker/service_worker_event_status.mojom";
 import "third_party/WebKit/public/mojom/service_worker/service_worker_object.mojom";
diff --git a/content/common/service_worker/service_worker_loader_helpers.h b/content/common/service_worker/service_worker_loader_helpers.h
index 9a4833f..27e1a02 100644
--- a/content/common/service_worker/service_worker_loader_helpers.h
+++ b/content/common/service_worker/service_worker_loader_helpers.h
@@ -20,7 +20,7 @@
 namespace content {
 
 // Helper functions for service worker classes that use URLLoader
-//(e.g., ServiceWorkerURLLoaderJob and ServiceWorkerSubresourceLoader).
+//(e.g., ServiceWorkerNavigationLoader and ServiceWorkerSubresourceLoader).
 class ServiceWorkerLoaderHelpers {
  public:
   // Populates |out_head->headers| with the given |status_code|, |status_text|,
diff --git a/content/common/service_worker/service_worker_types.h b/content/common/service_worker/service_worker_types.h
index 7495911..ab84fa9 100644
--- a/content/common/service_worker/service_worker_types.h
+++ b/content/common/service_worker/service_worker_types.h
@@ -19,7 +19,7 @@
 #include "content/public/common/request_context_type.h"
 #include "services/network/public/mojom/fetch_api.mojom.h"
 #include "services/network/public/mojom/request_context_frame_type.mojom.h"
-#include "third_party/WebKit/common/page/page_visibility_state.mojom.h"
+#include "third_party/WebKit/public/mojom/page/page_visibility_state.mojom.h"
 #include "third_party/WebKit/public/mojom/service_worker/service_worker_client.mojom.h"
 #include "third_party/WebKit/public/mojom/service_worker/service_worker_object.mojom.h"
 #include "third_party/WebKit/public/mojom/service_worker/service_worker_registration.mojom.h"
diff --git a/content/common/shared_worker/shared_worker_info.mojom b/content/common/shared_worker/shared_worker_info.mojom
index 58b6297..eec3934 100644
--- a/content/common/shared_worker/shared_worker_info.mojom
+++ b/content/common/shared_worker/shared_worker_info.mojom
@@ -4,7 +4,7 @@
 
 module content.mojom;
 
-import "third_party/WebKit/common/net/ip_address_space.mojom";
+import "third_party/WebKit/public/mojom/net/ip_address_space.mojom";
 import "third_party/WebKit/public/platform/content_security_policy.mojom";
 import "url/mojom/url.mojom";
 
diff --git a/content/common/swapped_out_messages.cc b/content/common/swapped_out_messages.cc
index e715b829..4ee3030 100644
--- a/content/common/swapped_out_messages.cc
+++ b/content/common/swapped_out_messages.cc
@@ -6,6 +6,7 @@
 
 #include "content/common/accessibility_messages.h"
 #include "content/common/frame_messages.h"
+#include "content/common/input/sync_compositor_messages.h"
 #include "content/common/input_messages.h"
 #include "content/common/view_messages.h"
 #include "content/public/common/content_client.h"
@@ -19,6 +20,7 @@
   switch (msg->type()) {
     // Handled by RenderWidgetHost.
     case InputHostMsg_HandleInputEvent_ACK::ID:
+    case SyncCompositorHostMsg_SetNeedsBeginFrames::ID:
     case ViewHostMsg_ResizeOrRepaint_ACK::ID:
     // Handled by RenderViewHost.
     case FrameHostMsg_RenderProcessGone::ID:
diff --git a/content/public/android/BUILD.gn b/content/public/android/BUILD.gn
index 47aa7d5..7f15d62 100644
--- a/content/public/android/BUILD.gn
+++ b/content/public/android/BUILD.gn
@@ -328,7 +328,6 @@
     "//content/public/browser/android/motion_event_action.h",
     "//content/public/browser/invalidate_type.h",
     "//content/public/browser/navigation_controller.h",
-    "//content/public/browser/readback_types.h",
     "//content/public/common/browser_controls_state.h",
     "//content/public/common/console_message_level.h",
     "//content/public/common/result_codes.h",
diff --git a/content/public/android/java/src/org/chromium/content/browser/ContentViewCoreImpl.java b/content/public/android/java/src/org/chromium/content/browser/ContentViewCoreImpl.java
index 4c0863b..d93d2f59 100644
--- a/content/public/android/java/src/org/chromium/content/browser/ContentViewCoreImpl.java
+++ b/content/public/android/java/src/org/chromium/content/browser/ContentViewCoreImpl.java
@@ -188,10 +188,6 @@
     // True if we want to disable Android native event batching and use compositor event queue.
     private boolean mShouldRequestUnbufferedDispatch;
 
-    // Whether the ContentViewCore requires the WebContents to be fullscreen in order to lock the
-    // screen orientation.
-    private boolean mFullscreenRequiredForOrientationLock = true;
-
     // A ViewAndroidDelegate that delegates to the current container view.
     private ViewAndroidDelegate mViewAndroidDelegate;
 
@@ -1007,13 +1003,6 @@
         return mIsMobileOptimizedHint;
     }
 
-    @Override
-    public void setBackgroundOpaque(boolean opaque) {
-        if (mNativeContentViewCore != 0) {
-            nativeSetBackgroundOpaque(mNativeContentViewCore, opaque);
-        }
-    }
-
     /**
      * Offer a long press gesture to the embedding View, primarily for WebView compatibility.
      *
@@ -1084,16 +1073,6 @@
         nativeSetDIPScale(mNativeContentViewCore, dipScale);
     }
 
-    @Override
-    public void setFullscreenRequiredForOrientationLock(boolean value) {
-        mFullscreenRequiredForOrientationLock = value;
-    }
-
-    @CalledByNative
-    private boolean isFullscreenRequiredForOrientationLock() {
-        return mFullscreenRequiredForOrientationLock;
-    }
-
     private native long nativeInit(WebContents webContents, ViewAndroidDelegate viewAndroidDelegate,
             WindowAndroid window, float dipScale);
     private static native ContentViewCoreImpl nativeFromWebContentsAndroid(WebContents webContents);
@@ -1123,10 +1102,8 @@
     private native void nativeSelectPopupMenuItems(
             long nativeContentViewCore, long nativeSelectPopupSourceFrame, int[] indices);
     private native boolean nativeUsingSynchronousCompositing(long nativeContentViewCore);
-    private native void nativeWasResized(long nativeContentViewCore);
     private native void nativeSetTextTrackSettings(long nativeContentViewCore,
             boolean textTracksEnabled, String textTrackBackgroundColor, String textTrackFontFamily,
             String textTrackFontStyle, String textTrackFontVariant, String textTrackTextColor,
             String textTrackTextShadow, String textTrackTextSize);
-    private native void nativeSetBackgroundOpaque(long nativeContentViewCore, boolean opaque);
 }
diff --git a/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java b/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java
index 927beb4e8..4e1a321 100644
--- a/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java
+++ b/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java
@@ -600,9 +600,8 @@
     }
 
     @CalledByNative
-    private void onGetContentBitmapFinished(ContentBitmapCallback callback, Bitmap bitmap,
-            int response) {
-        callback.onFinishGetBitmap(bitmap, response);
+    private void onGetContentBitmapFinished(ContentBitmapCallback callback, Bitmap bitmap) {
+        callback.onFinishGetBitmap(bitmap);
     }
 
     @Override
diff --git a/content/public/android/java/src/org/chromium/content_public/browser/ContentBitmapCallback.java b/content/public/android/java/src/org/chromium/content_public/browser/ContentBitmapCallback.java
index f6d372d..83571c5 100644
--- a/content/public/android/java/src/org/chromium/content_public/browser/ContentBitmapCallback.java
+++ b/content/public/android/java/src/org/chromium/content_public/browser/ContentBitmapCallback.java
@@ -13,10 +13,8 @@
     /**
      * Called when bitmap version of the content is acquired.
      *
-     * @param bitmap content snapshot in the format of {@link Bitmap}, or an empty
-     *        bitmap if the operation failed.
-     * @param response one of response types as defined in
-     *        {@link org.chromium.content_public.browser.readback_types.ReadbackResponse}
+     * @param bitmap content snapshot in the format of {@link Bitmap}, or null
+     *        if the operation failed.
      */
-    void onFinishGetBitmap(Bitmap bitmap, int response);
+    void onFinishGetBitmap(Bitmap bitmap);
 }
diff --git a/content/public/android/java/src/org/chromium/content_public/browser/ContentViewCore.java b/content/public/android/java/src/org/chromium/content_public/browser/ContentViewCore.java
index 97c28e0..1d9f748 100644
--- a/content/public/android/java/src/org/chromium/content_public/browser/ContentViewCore.java
+++ b/content/public/android/java/src/org/chromium/content_public/browser/ContentViewCore.java
@@ -332,18 +332,6 @@
      */
     boolean getIsMobileOptimizedHint();
 
-    /**
-     * Set the background color mode.
-     * @param opaque {@code true} if the background should be set to default opaque mode.
-     */
-    void setBackgroundOpaque(boolean opaque);
-
-    /**
-     * Set whether the ContentViewCore requires the WebContents to be fullscreen in order to lock
-     * the screen orientation.
-     */
-    void setFullscreenRequiredForOrientationLock(boolean value);
-
     // Test-only methods
 
     /**
diff --git a/content/public/app/mojo/content_renderer_manifest.json b/content/public/app/mojo/content_renderer_manifest.json
index c708614..7d9374c 100644
--- a/content/public/app/mojo/content_renderer_manifest.json
+++ b/content/public/app/mojo/content_renderer_manifest.json
@@ -92,14 +92,6 @@
         "path": "assets/natives_blob.bin",
         "platform": "android"
       }
-    ],
-    "v8_snapshot_32_data" : [{
-      "path": "assets/snapshot_blob_32.bin",
-      "platform": "android"
-    }],
-    "v8_snapshot_64_data" : [{
-      "path": "assets/snapshot_blob_64.bin",
-      "platform": "android"
-    }]
+    ]
   }
 }
diff --git a/content/public/app/mojo/content_utility_manifest.json b/content/public/app/mojo/content_utility_manifest.json
index 7676e217..e5cc53c9 100644
--- a/content/public/app/mojo/content_utility_manifest.json
+++ b/content/public/app/mojo/content_utility_manifest.json
@@ -43,14 +43,6 @@
         "path": "assets/natives_blob.bin",
         "platform": "android"
       }
-    ],
-    "v8_snapshot_32_data" : [{
-      "path": "assets/snapshot_blob_32.bin",
-      "platform": "android"
-    }],
-    "v8_snapshot_64_data" : [{
-      "path": "assets/snapshot_blob_64.bin",
-      "platform": "android"
-    }]
+    ]
   }
 }
diff --git a/content/public/app/mojo/context_snapshot_manifest.json b/content/public/app/mojo/context_snapshot_manifest.json
index 9cf904bf..8849750 100644
--- a/content/public/app/mojo/context_snapshot_manifest.json
+++ b/content/public/app/mojo/context_snapshot_manifest.json
@@ -3,7 +3,14 @@
     "v8_context_snapshot_data" : [{
       "path": "v8_context_snapshot.bin",
       "platform": "linux"
+    }],
+    "v8_snapshot_32_data" : [{
+      "path": "assets/v8_context_snapshot_32.bin",
+      "platform": "android"
+    }],
+    "v8_snapshot_64_data" : [{
+      "path": "assets/v8_context_snapshot_64.bin",
+      "platform": "android"
     }]
   }
 }
-
diff --git a/content/public/app/mojo/snapshot_blob_manifest.json b/content/public/app/mojo/snapshot_blob_manifest.json
index a9202b0..552e18a 100644
--- a/content/public/app/mojo/snapshot_blob_manifest.json
+++ b/content/public/app/mojo/snapshot_blob_manifest.json
@@ -3,6 +3,14 @@
     "v8_snapshot_data" : [{
       "path": "snapshot_blob.bin",
       "platform": "linux"
+    }],
+    "v8_snapshot_32_data" : [{
+      "path": "assets/snapshot_blob_32.bin",
+      "platform": "android"
+    }],
+    "v8_snapshot_64_data" : [{
+      "path": "assets/snapshot_blob_64.bin",
+      "platform": "android"
     }]
   }
 }
diff --git a/content/public/browser/BUILD.gn b/content/public/browser/BUILD.gn
index 5290ba7..dfbf52b7 100644
--- a/content/public/browser/BUILD.gn
+++ b/content/public/browser/BUILD.gn
@@ -203,7 +203,6 @@
     "push_messaging_service.cc",
     "push_messaging_service.h",
     "quota_permission_context.h",
-    "readback_types.h",
     "reload_type.h",
     "render_frame_host.h",
     "render_frame_metadata_provider.h",
diff --git a/content/public/browser/content_browser_client.h b/content/public/browser/content_browser_client.h
index d36efcd..fca527c 100644
--- a/content/public/browser/content_browser_client.h
+++ b/content/public/browser/content_browser_client.h
@@ -38,8 +38,8 @@
 #include "services/service_manager/sandbox/sandbox_type.h"
 #include "storage/browser/fileapi/file_system_context.h"
 #include "storage/browser/quota/quota_manager.h"
-#include "third_party/WebKit/common/page/page_visibility_state.mojom.h"
 #include "third_party/WebKit/public/common/associated_interfaces/associated_interface_registry.h"
+#include "third_party/WebKit/public/mojom/page/page_visibility_state.mojom.h"
 #include "third_party/WebKit/public/web/window_features.mojom.h"
 #include "ui/base/page_transition_types.h"
 #include "ui/base/window_open_disposition.h"
diff --git a/content/public/browser/permission_type.h b/content/public/browser/permission_type.h
index 9c5e09b..1c256ae 100644
--- a/content/public/browser/permission_type.h
+++ b/content/public/browser/permission_type.h
@@ -28,6 +28,7 @@
   ACCESSIBILITY_EVENTS = 13,
   CLIPBOARD_READ = 14,
   CLIPBOARD_WRITE = 15,
+  PAYMENT_HANDLER = 16,
 
   // Always keep this at the end.
   NUM,
diff --git a/content/public/browser/push_messaging_service.h b/content/public/browser/push_messaging_service.h
index c8cb5aad..682a856 100644
--- a/content/public/browser/push_messaging_service.h
+++ b/content/public/browser/push_messaging_service.h
@@ -58,7 +58,9 @@
 
   // Subscribe the given |options.sender_info| with the push messaging service
   // in a document context. The frame is known and a permission UI may be
-  // displayed to the user.
+  // displayed to the user. It's safe to call this method multiple times for
+  // the same registration information, in which case the existing subscription
+  // will be returned by the server.
   virtual void SubscribeFromDocument(const GURL& requesting_origin,
                                      int64_t service_worker_registration_id,
                                      int renderer_id,
@@ -69,7 +71,9 @@
 
   // Subscribe the given |options.sender_info| with the push messaging service.
   // The frame is not known so if permission was not previously granted by the
-  // user this request should fail.
+  // user this request should fail. It's safe to call this method multiple times
+  // for the same registration information, in which case the existing
+  // subscription will be returned by the server.
   virtual void SubscribeFromWorker(const GURL& requesting_origin,
                                    int64_t service_worker_registration_id,
                                    const PushSubscriptionOptions& options,
diff --git a/content/public/browser/readback_types.h b/content/public/browser/readback_types.h
deleted file mode 100644
index 80a9ab74..0000000
--- a/content/public/browser/readback_types.h
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CONTENT_PUBLIC_BROWSER_READBACK_TYPES_H_
-#define CONTENT_PUBLIC_BROWSER_READBACK_TYPES_H_
-
-#include "base/callback.h"
-
-class SkBitmap;
-
-namespace content {
-
-// ReadbackResponse indicates success/failure for an operation that reads pixel
-// content back into normal memory.
-//
-// A Java counterpart will be generated for this enum.
-// GENERATED_JAVA_ENUM_PACKAGE: (
-//   org.chromium.content_public.browser.readback_types)
-// GENERATED_JAVA_PREFIX_TO_STRIP: READBACK_
-enum ReadbackResponse {
-  READBACK_SUCCESS,
-  READBACK_FAILED,
-  READBACK_SURFACE_UNAVAILABLE,
-  READBACK_BITMAP_ALLOCATION_FAILURE,
-};
-
-// A callback that is invoked upon completion or failure of a request to read
-// pixel data back into an SkBitmap.
-using ReadbackRequestCallback =
-    base::Callback<void(const SkBitmap&, ReadbackResponse)>;
-
-}  // namespace content
-
-#endif  // CONTENT_PUBLIC_BROWSER_READBACK_TYPES_H_
diff --git a/content/public/browser/render_frame_host.h b/content/public/browser/render_frame_host.h
index ba2c2a3..e2edb70a 100644
--- a/content/public/browser/render_frame_host.h
+++ b/content/public/browser/render_frame_host.h
@@ -15,7 +15,7 @@
 #include "content/public/common/file_chooser_params.h"
 #include "ipc/ipc_listener.h"
 #include "ipc/ipc_sender.h"
-#include "third_party/WebKit/common/page/page_visibility_state.mojom.h"
+#include "third_party/WebKit/public/mojom/page/page_visibility_state.mojom.h"
 #include "third_party/WebKit/public/platform/WebSuddenTerminationDisablerType.h"
 #include "ui/gfx/geometry/rect.h"
 #include "ui/gfx/native_widget_types.h"
diff --git a/content/public/browser/render_process_host.h b/content/public/browser/render_process_host.h
index 7a7610d..e63b5ac 100644
--- a/content/public/browser/render_process_host.h
+++ b/content/public/browser/render_process_host.h
@@ -487,6 +487,11 @@
   // Returns the current maximum number of renderer process hosts kept by the
   // content module.
   static size_t GetMaxRendererProcessCount();
+
+  // TODO(siggi): Remove once https://crbug.com/806661 is resolved.
+  using AnalyzeHungRendererFunction = void (*)(const base::Process& renderer);
+  static void SetHungRendererAnalysisFunction(
+      AnalyzeHungRendererFunction analyze_hung_renderer);
 };
 
 }  // namespace content
diff --git a/content/public/browser/render_widget_host_view.h b/content/public/browser/render_widget_host_view.h
index fae70c1..71f3b3c 100644
--- a/content/public/browser/render_widget_host_view.h
+++ b/content/public/browser/render_widget_host_view.h
@@ -10,10 +10,9 @@
 #include "base/strings/string16.h"
 #include "build/build_config.h"
 #include "content/common/content_export.h"
-#include "content/public/browser/readback_types.h"
 #include "third_party/WebKit/public/platform/WebInputEvent.h"
+#include "third_party/skia/include/core/SkBitmap.h"
 #include "third_party/skia/include/core/SkColor.h"
-#include "third_party/skia/include/core/SkImageInfo.h"
 #include "ui/gfx/geometry/point_conversions.h"
 #include "ui/gfx/native_widget_types.h"
 
@@ -179,16 +178,17 @@
   // bitmap's size may not be the same as |src_rect.size()| due to the pixel
   // scale used by the underlying device.
   //
-  // |callback| is always invoked, at some point in the future, with success/
-  // fail status and an SkBitmap containing the copied pixel data. It may be
-  // called sychronously or asynchronously.
+  // |callback| is guaranteed to be run, either synchronously or at some point
+  // in the future (depending on the platform implementation and the current
+  // state of the Surface). If the copy failed, the bitmap's drawsNothing()
+  // method will return true.
   //
   // If the view's renderer is suspended (see WasOccluded()), this may result in
   // copying old data or failing.
-  virtual void CopyFromSurface(const gfx::Rect& src_rect,
-                               const gfx::Size& output_size,
-                               const ReadbackRequestCallback& callback,
-                               const SkColorType color_type) = 0;
+  virtual void CopyFromSurface(
+      const gfx::Rect& src_rect,
+      const gfx::Size& output_size,
+      base::OnceCallback<void(const SkBitmap&)> callback) = 0;
 
   // Notification that a node was touched.
   // The |location_dips_screen| parameter contains the location where the touch
diff --git a/content/public/browser/speech_recognition_session_context.cc b/content/public/browser/speech_recognition_session_context.cc
index 9bffc4f2..1e4ae1c 100644
--- a/content/public/browser/speech_recognition_session_context.cc
+++ b/content/public/browser/speech_recognition_session_context.cc
@@ -4,18 +4,19 @@
 
 #include "content/public/browser/speech_recognition_session_context.h"
 
-#include "content/public/common/child_process_host.h"
 #include "ipc/ipc_message.h"
 
 namespace content {
 
 SpeechRecognitionSessionContext::SpeechRecognitionSessionContext()
-    : render_process_id(ChildProcessHost::kInvalidUniqueID),
-      render_view_id(MSG_ROUTING_NONE),
-      render_frame_id(MSG_ROUTING_NONE),
-      embedder_render_process_id(ChildProcessHost::kInvalidUniqueID),
+    : render_process_id(0),
+      render_view_id(0),
+      render_frame_id(0),
+      guest_render_view_id(MSG_ROUTING_NONE),
+      embedder_render_process_id(0),
       embedder_render_view_id(MSG_ROUTING_NONE),
-      request_id(0) {}
+      request_id(0) {
+}
 
 SpeechRecognitionSessionContext::SpeechRecognitionSessionContext(
     const SpeechRecognitionSessionContext& other) = default;
diff --git a/content/public/browser/speech_recognition_session_context.h b/content/public/browser/speech_recognition_session_context.h
index a61aac2..997d6b5 100644
--- a/content/public/browser/speech_recognition_session_context.h
+++ b/content/public/browser/speech_recognition_session_context.h
@@ -29,6 +29,16 @@
   int render_view_id;
   int render_frame_id;
 
+  // Browser plugin guest's render view id, if this context represents a speech
+  // recognition request from an embedder on behalf of the guest. This is used
+  // for input tag where speech bubble is to be shown.
+  //
+  // TODO(lazyboy): Right now showing bubble from guest does not work, we fall
+  // back to embedder instead, fix this and use
+  // embedder_render_process_id/embedder_render_view_id similar to Web Speech
+  // API below.
+  int guest_render_view_id;
+
   // The pair (|embedder_render_process_id|, |embedder_render_view_id|)
   // represents a Browser plugin guest's embedder. This is filled in if the
   // session is from a guest Web Speech API. We use these to check if the
diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc
index 746c09a..a0acda6 100644
--- a/content/public/common/content_features.cc
+++ b/content/public/common/content_features.cc
@@ -77,7 +77,7 @@
 // Enables the compositing of fixed position content that is opaque and can
 // preserve LCD text.
 const base::Feature kCompositeOpaqueFixedPosition{
-    "CompositeOpaqueFixedPosition", base::FEATURE_ENABLED_BY_DEFAULT};
+    "CompositeOpaqueFixedPosition", base::FEATURE_DISABLED_BY_DEFAULT};
 
 // Enables the compositing of scrolling content that supports painting the
 // background with the foreground, such that LCD text will still be enabled.
@@ -470,6 +470,11 @@
 const base::Feature kWebRtcUseEchoCanceller3{"WebRtcUseEchoCanceller3",
                                              base::FEATURE_DISABLED_BY_DEFAULT};
 
+// Informs the WebRTC Acoustic Echo Canceler (AEC) that echo path loss is
+// bounded.
+const base::Feature kWebRtcAecBoundedErlSetup{
+    "WebRtcAecBoundedErlSetup", base::FEATURE_DISABLED_BY_DEFAULT};
+
 // Use GpuMemoryBuffer backed VideoFrames in media streams.
 const base::Feature kWebRtcUseGpuMemoryBufferVideoFrames{
     "WebRTC-UseGpuMemoryBufferVideoFrames", base::FEATURE_DISABLED_BY_DEFAULT};
@@ -494,7 +499,7 @@
 
 // Controls whether editing web input fields is enabled in VR.
 const base::Feature kVrWebInputEditing{"VrWebInputEditing",
-                                       base::FEATURE_DISABLED_BY_DEFAULT};
+                                       base::FEATURE_ENABLED_BY_DEFAULT};
 
 // Controls whether WebVR VSync-aligned render loop timing is enabled.
 const base::Feature kWebVrVsyncAlign{"WebVrVsyncAlign",
diff --git a/content/public/common/content_features.h b/content/public/common/content_features.h
index c5ce405e..7f4e9cc 100644
--- a/content/public/common/content_features.h
+++ b/content/public/common/content_features.h
@@ -113,6 +113,7 @@
 CONTENT_EXPORT extern const base::Feature kWebAuth;
 CONTENT_EXPORT extern const base::Feature kWebGLImageChromium;
 CONTENT_EXPORT extern const base::Feature kWebPayments;
+CONTENT_EXPORT extern const base::Feature kWebRtcAecBoundedErlSetup;
 CONTENT_EXPORT extern const base::Feature kWebRtcEcdsaDefault;
 CONTENT_EXPORT extern const base::Feature kWebRtcHWH264Encoding;
 CONTENT_EXPORT extern const base::Feature kWebRtcHWVP8Encoding;
diff --git a/content/public/common/push_messaging_status.mojom b/content/public/common/push_messaging_status.mojom
index ed5ef56..d2eeb060 100644
--- a/content/public/common/push_messaging_status.mojom
+++ b/content/public/common/push_messaging_status.mojom
@@ -137,12 +137,17 @@
   // Registration failed because the renderer was shut down.
   RENDERER_SHUTDOWN = 15,
 
+  // Registration was successful for a subscription that was already known by
+  // the cache, but the push service returned a new subscription. This may
+  // happen when a subscription is invalidated by the push service.
+  SUCCESS_NEW_SUBSCRIPTION_FROM_PUSH_SERVICE = 16,
+
   // NOTE: Do not renumber these as that would confuse interpretation of
   // previously logged data. When making changes, also update the enum list
   // in tools/metrics/histograms/histograms.xml to keep it in sync, and
   // update LAST below.
 
-  LAST = RENDERER_SHUTDOWN
+  LAST = SUCCESS_NEW_SUBSCRIPTION_FROM_PUSH_SERVICE
 };
 
 // Push unregistration reason for reporting in UMA. Enum values can be added,
diff --git a/content/public/common/storage_quota_params.h b/content/public/common/storage_quota_params.h
index fd1ae65..0f48ec8 100644
--- a/content/public/common/storage_quota_params.h
+++ b/content/public/common/storage_quota_params.h
@@ -9,7 +9,7 @@
 
 #include "content/common/content_export.h"
 #include "ipc/ipc_message.h"
-#include "third_party/WebKit/common/quota/quota_types.mojom.h"
+#include "third_party/WebKit/public/mojom/quota/quota_types.mojom.h"
 #include "url/gurl.h"
 
 namespace content {
diff --git a/content/public/renderer/content_renderer_client.h b/content/public/renderer/content_renderer_client.h
index 3a3f96a..34aed4fd 100644
--- a/content/public/renderer/content_renderer_client.h
+++ b/content/public/renderer/content_renderer_client.h
@@ -21,7 +21,7 @@
 #include "content/public/renderer/url_loader_throttle_provider.h"
 #include "media/base/decode_capabilities.h"
 #include "services/service_manager/public/mojom/service.mojom.h"
-#include "third_party/WebKit/common/page/page_visibility_state.mojom.h"
+#include "third_party/WebKit/public/mojom/page/page_visibility_state.mojom.h"
 #include "third_party/WebKit/public/platform/WebContentSettingsClient.h"
 #include "third_party/WebKit/public/web/WebNavigationPolicy.h"
 #include "third_party/WebKit/public/web/WebNavigationType.h"
diff --git a/content/public/renderer/render_frame.h b/content/public/renderer/render_frame.h
index 8a60c81..adbeb1a 100644
--- a/content/public/renderer/render_frame.h
+++ b/content/public/renderer/render_frame.h
@@ -20,7 +20,7 @@
 #include "ppapi/features/features.h"
 #include "services/network/public/mojom/url_loader_factory.mojom.h"
 #include "services/service_manager/public/cpp/binder_registry.h"
-#include "third_party/WebKit/common/page/page_visibility_state.mojom.h"
+#include "third_party/WebKit/public/mojom/page/page_visibility_state.mojom.h"
 #include "third_party/WebKit/public/platform/TaskType.h"
 #include "third_party/WebKit/public/web/WebNavigationPolicy.h"
 #include "third_party/WebKit/public/web/WebTriggeringEventInfo.h"
diff --git a/content/public/test/android/javatests/src/org/chromium/content/browser/test/util/TestContentViewCore.java b/content/public/test/android/javatests/src/org/chromium/content/browser/test/util/TestContentViewCore.java
index bd387e2..51334f3 100644
--- a/content/public/test/android/javatests/src/org/chromium/content/browser/test/util/TestContentViewCore.java
+++ b/content/public/test/android/javatests/src/org/chromium/content/browser/test/util/TestContentViewCore.java
@@ -197,12 +197,6 @@
     }
 
     @Override
-    public void setBackgroundOpaque(boolean opaque) {}
-
-    @Override
-    public void setFullscreenRequiredForOrientationLock(boolean value) {}
-
-    @Override
     public int getTopControlsShrinkBlinkHeightForTesting() {
         return 0;
     }
diff --git a/content/renderer/android/synchronous_compositor_proxy.h b/content/renderer/android/synchronous_compositor_proxy.h
index b71546b5..c88286b 100644
--- a/content/renderer/android/synchronous_compositor_proxy.h
+++ b/content/renderer/android/synchronous_compositor_proxy.h
@@ -20,9 +20,7 @@
 #include "ui/gfx/geometry/size_f.h"
 
 namespace viz {
-namespace cc {
 class CompositorFrame;
-}  // namespace cc
 }  // namespace viz
 
 namespace content {
diff --git a/content/renderer/input/widget_input_handler_manager.cc b/content/renderer/input/widget_input_handler_manager.cc
index 572bb7b..901295d 100644
--- a/content/renderer/input/widget_input_handler_manager.cc
+++ b/content/renderer/input/widget_input_handler_manager.cc
@@ -54,20 +54,9 @@
       : compositor_task_runner_(std::move(compositor_task_runner)) {}
 
   ~SynchronousCompositorProxyRegistry() override {
-    DCHECK(compositor_task_runner_->BelongsToCurrentThread());
-  }
-
-  using ProxyAutoDeleted = std::unique_ptr<SynchronousCompositorProxyRegistry,
-                                           base::OnTaskRunnerDeleter>;
-
-  static ProxyAutoDeleted Create(
-      scoped_refptr<base::SingleThreadTaskRunner> compositor_task_runner) {
-    if (!compositor_task_runner)
-      return ProxyAutoDeleted(nullptr, base::OnTaskRunnerDeleter(nullptr));
-
-    return ProxyAutoDeleted(
-        new SynchronousCompositorProxyRegistry(compositor_task_runner),
-        base::OnTaskRunnerDeleter(compositor_task_runner));
+    // Ensure the proxy has already been release on the compositor thread
+    // before destroying this object.
+    DCHECK(!proxy_);
   }
 
   void CreateProxy(ui::SynchronousInputHandlerProxy* handler) {
@@ -99,6 +88,11 @@
     sink_ = nullptr;
   }
 
+  void DestroyProxy() {
+    DCHECK(compositor_task_runner_->BelongsToCurrentThread());
+    proxy_.reset();
+  }
+
  private:
   scoped_refptr<base::SingleThreadTaskRunner> compositor_task_runner_;
   std::unique_ptr<SynchronousCompositorProxyMojo> proxy_;
@@ -127,13 +121,14 @@
       renderer_scheduler_(renderer_scheduler),
       input_event_queue_(render_widget->GetInputEventQueue()),
       main_thread_task_runner_(base::ThreadTaskRunnerHandle::Get()),
-      compositor_task_runner_(std::move(compositor_task_runner))
+      compositor_task_runner_(std::move(compositor_task_runner)) {
 #if defined(OS_ANDROID)
-      ,
-      synchronous_compositor_registry_(
-          SynchronousCompositorProxyRegistry::Create(compositor_task_runner_))
+  if (compositor_task_runner_) {
+    synchronous_compositor_registry_ =
+        std::make_unique<SynchronousCompositorProxyRegistry>(
+            compositor_task_runner_);
+  }
 #endif
-{
 }
 
 void WidgetInputHandlerManager::Init() {
@@ -195,6 +190,10 @@
 }
 
 void WidgetInputHandlerManager::WillShutdown() {
+#if defined(OS_ANDROID)
+  if (synchronous_compositor_registry_)
+    synchronous_compositor_registry_->DestroyProxy();
+#endif
   input_handler_proxy_.reset();
 }
 
diff --git a/content/renderer/input/widget_input_handler_manager.h b/content/renderer/input/widget_input_handler_manager.h
index bee80b0e..0335ed75 100644
--- a/content/renderer/input/widget_input_handler_manager.h
+++ b/content/renderer/input/widget_input_handler_manager.h
@@ -150,7 +150,7 @@
   scoped_refptr<base::SingleThreadTaskRunner> compositor_task_runner_;
 
 #if defined(OS_ANDROID)
-  std::unique_ptr<SynchronousCompositorProxyRegistry, base::OnTaskRunnerDeleter>
+  std::unique_ptr<SynchronousCompositorProxyRegistry>
       synchronous_compositor_registry_;
 #endif
 
diff --git a/content/renderer/loader/request_extra_data.h b/content/renderer/loader/request_extra_data.h
index f17acce..7310395 100644
--- a/content/renderer/loader/request_extra_data.h
+++ b/content/renderer/loader/request_extra_data.h
@@ -13,7 +13,7 @@
 #include "content/common/navigation_params.h"
 #include "content/public/common/url_loader_throttle.h"
 #include "content/renderer/loader/web_url_loader_impl.h"
-#include "third_party/WebKit/common/page/page_visibility_state.mojom.h"
+#include "third_party/WebKit/public/mojom/page/page_visibility_state.mojom.h"
 #include "third_party/WebKit/public/platform/WebString.h"
 #include "third_party/WebKit/public/platform/WebURLRequest.h"
 #include "ui/base/page_transition_types.h"
diff --git a/content/renderer/media/stream/media_stream_audio_processor.cc b/content/renderer/media/stream/media_stream_audio_processor.cc
index d76576e2..2c820d01 100644
--- a/content/renderer/media/stream/media_stream_audio_processor.cc
+++ b/content/renderer/media/stream/media_stream_audio_processor.cc
@@ -624,9 +624,13 @@
   // Create and configure the webrtc::AudioProcessing.
   webrtc::AudioProcessingBuilder ap_builder;
   if (using_aec3_) {
+    webrtc::EchoCanceller3Config aec3_config;
+    aec3_config.ep_strength.bounded_erl =
+        base::FeatureList::IsEnabled(features::kWebRtcAecBoundedErlSetup);
+
     ap_builder.SetEchoControlFactory(
         std::unique_ptr<webrtc::EchoControlFactory>(
-            new webrtc::EchoCanceller3Factory()));
+            new webrtc::EchoCanceller3Factory(aec3_config)));
   }
   audio_processing_.reset(ap_builder.Create(config));
 
diff --git a/content/renderer/navigation_state_impl.cc b/content/renderer/navigation_state_impl.cc
index bd7fa791..597a8ac 100644
--- a/content/renderer/navigation_state_impl.cc
+++ b/content/renderer/navigation_state_impl.cc
@@ -11,13 +11,16 @@
 
 NavigationStateImpl* NavigationStateImpl::CreateBrowserInitiated(
     const CommonNavigationParams& common_params,
-    const RequestNavigationParams& request_params) {
-  return new NavigationStateImpl(common_params, request_params, false);
+    const RequestNavigationParams& request_params,
+    base::TimeTicks time_commit_requested) {
+  return new NavigationStateImpl(common_params, request_params,
+                                 time_commit_requested, false);
 }
 
 NavigationStateImpl* NavigationStateImpl::CreateContentInitiated() {
   return new NavigationStateImpl(CommonNavigationParams(),
-                                 RequestNavigationParams(), true);
+                                 RequestNavigationParams(), base::TimeTicks(),
+                                 true);
 }
 
 ui::PageTransition NavigationStateImpl::GetTransitionType() {
@@ -35,11 +38,13 @@
 NavigationStateImpl::NavigationStateImpl(
     const CommonNavigationParams& common_params,
     const RequestNavigationParams& request_params,
+    base::TimeTicks time_commit_requested,
     bool is_content_initiated)
     : request_committed_(false),
       was_within_same_document_(false),
       is_content_initiated_(is_content_initiated),
       common_params_(common_params),
-      request_params_(request_params) {}
+      request_params_(request_params),
+      time_commit_requested_(time_commit_requested) {}
 
 }  // namespace content
diff --git a/content/renderer/navigation_state_impl.h b/content/renderer/navigation_state_impl.h
index 66461e2c..8f8f83c 100644
--- a/content/renderer/navigation_state_impl.h
+++ b/content/renderer/navigation_state_impl.h
@@ -19,7 +19,8 @@
 
   static NavigationStateImpl* CreateBrowserInitiated(
       const CommonNavigationParams& common_params,
-      const RequestNavigationParams& request_params);
+      const RequestNavigationParams& request_params,
+      base::TimeTicks time_commit_requested);
 
   static NavigationStateImpl* CreateContentInitiated();
 
@@ -42,9 +43,14 @@
     common_params_.transition = transition;
   }
 
+  base::TimeTicks time_commit_requested() const {
+    return time_commit_requested_;
+  }
+
  private:
   NavigationStateImpl(const CommonNavigationParams& common_params,
                       const RequestNavigationParams& request_params,
+                      base::TimeTicks time_commit_requested,
                       bool is_content_initiated);
 
   bool request_committed_;
@@ -68,6 +74,9 @@
   // http://crbug.com/178380).
   const RequestNavigationParams request_params_;
 
+  // Time when RenderFrameImpl::CommitNavigation() is called.
+  base::TimeTicks time_commit_requested_;
+
   DISALLOW_COPY_AND_ASSIGN(NavigationStateImpl);
 };
 
diff --git a/content/renderer/push_messaging/push_messaging_client.cc b/content/renderer/push_messaging/push_messaging_client.cc
index 1f106783..95f4c71 100644
--- a/content/renderer/push_messaging/push_messaging_client.cc
+++ b/content/renderer/push_messaging/push_messaging_client.cc
@@ -135,6 +135,8 @@
   DCHECK(callbacks);
 
   if (status == mojom::PushRegistrationStatus::SUCCESS_FROM_PUSH_SERVICE ||
+      status == mojom::PushRegistrationStatus::
+                    SUCCESS_NEW_SUBSCRIPTION_FROM_PUSH_SERVICE ||
       status == mojom::PushRegistrationStatus::SUCCESS_FROM_CACHE) {
     DCHECK(endpoint);
     DCHECK(options);
diff --git a/content/renderer/push_messaging/push_provider.cc b/content/renderer/push_messaging/push_provider.cc
index d3891939..4493bac 100644
--- a/content/renderer/push_messaging/push_provider.cc
+++ b/content/renderer/push_messaging/push_provider.cc
@@ -28,6 +28,8 @@
     mojom::PushRegistrationStatus status) {
   switch (status) {
     case mojom::PushRegistrationStatus::SUCCESS_FROM_PUSH_SERVICE:
+    case mojom::PushRegistrationStatus::
+        SUCCESS_NEW_SUBSCRIPTION_FROM_PUSH_SERVICE:
       return "Registration successful - from push service";
 
     case mojom::PushRegistrationStatus::NO_SERVICE_WORKER:
@@ -108,6 +110,8 @@
       error_type = blink::WebPushError::kErrorTypeInvalidState;
       break;
     case mojom::PushRegistrationStatus::SUCCESS_FROM_PUSH_SERVICE:
+    case mojom::PushRegistrationStatus::
+        SUCCESS_NEW_SUBSCRIPTION_FROM_PUSH_SERVICE:
     case mojom::PushRegistrationStatus::NO_SERVICE_WORKER:
     case mojom::PushRegistrationStatus::SERVICE_NOT_AVAILABLE:
     case mojom::PushRegistrationStatus::LIMIT_REACHED:
@@ -211,6 +215,8 @@
   DCHECK(callbacks);
 
   if (status == mojom::PushRegistrationStatus::SUCCESS_FROM_PUSH_SERVICE ||
+      status == mojom::PushRegistrationStatus::
+                    SUCCESS_NEW_SUBSCRIPTION_FROM_PUSH_SERVICE ||
       status == mojom::PushRegistrationStatus::SUCCESS_FROM_CACHE) {
     DCHECK(endpoint);
     DCHECK(options);
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
index 4130b30..9063e07 100644
--- a/content/renderer/render_frame_impl.cc
+++ b/content/renderer/render_frame_impl.cc
@@ -163,9 +163,9 @@
 #include "services/service_manager/public/cpp/interface_provider.h"
 #include "services/service_manager/public/mojom/interface_provider.mojom.h"
 #include "services/ui/public/cpp/gpu/context_provider_command_buffer.h"
-#include "third_party/WebKit/common/page/page_visibility_state.mojom.h"
 #include "third_party/WebKit/public/common/associated_interfaces/associated_interface_provider.h"
 #include "third_party/WebKit/public/common/frame/sandbox_flags.h"
+#include "third_party/WebKit/public/mojom/page/page_visibility_state.mojom.h"
 #include "third_party/WebKit/public/platform/FilePathConversion.h"
 #include "third_party/WebKit/public/platform/InterfaceProvider.h"
 #include "third_party/WebKit/public/platform/URLConversion.h"
@@ -300,6 +300,24 @@
 
 namespace content {
 
+// Helper struct keeping track in one place of all the parameters the browser
+// provided to the renderer to commit a navigation.
+struct PendingNavigationParams {
+  PendingNavigationParams(const CommonNavigationParams& common_params,
+                          const RequestNavigationParams& request_params,
+                          base::TimeTicks time_commit_requested)
+      : common_params(common_params),
+        request_params(request_params),
+        time_commit_requested(time_commit_requested) {}
+  ~PendingNavigationParams() = default;
+
+  CommonNavigationParams common_params;
+  RequestNavigationParams request_params;
+
+  // Time when RenderFrameImpl::CommitNavigation() is called.
+  base::TimeTicks time_commit_requested;
+};
+
 namespace {
 
 const base::Feature kConsumeGestureOnNavigation = {
@@ -382,7 +400,7 @@
   return document_loader->OriginalRequest().Url();
 }
 
-bool IsBrowserInitiated(NavigationParams* pending) {
+bool IsBrowserInitiated(PendingNavigationParams* pending) {
   // A navigation resulting from loading a javascript URL should not be treated
   // as a browser initiated event.  Instead, we want it to look as if the page
   // initiated any load resulting from JS execution.
@@ -774,6 +792,25 @@
       memory_metrics.total_allocated_per_render_view_mb);
 }
 
+// See also LOG_NAVIGATION_TIMING_HISTOGRAM in NavigationHandleImpl.
+void RecordReadyToCommitUntilCommitHistogram(base::TimeDelta delay,
+                                             ui::PageTransition transition) {
+  UMA_HISTOGRAM_TIMES("Navigation.Renderer.ReadyToCommitUntilCommit", delay);
+  if (transition & ui::PAGE_TRANSITION_FORWARD_BACK) {
+    UMA_HISTOGRAM_TIMES(
+        "Navigation.Renderer.ReadyToCommitUntilCommit.BackForward", delay);
+  } else if (ui::PageTransitionCoreTypeIs(transition,
+                                          ui::PAGE_TRANSITION_RELOAD)) {
+    UMA_HISTOGRAM_TIMES("Navigation.Renderer.ReadyToCommitUntilCommit.Reload",
+                        delay);
+  } else if (ui::PageTransitionIsNewNavigation(transition)) {
+    UMA_HISTOGRAM_TIMES(
+        "Navigation.Renderer.ReadyToCommitUntilCommit.NewNavigation", delay);
+  } else {
+    NOTREACHED() << "Invalid page transition: " << transition;
+  }
+}
+
 }  // namespace
 
 class RenderFrameImpl::FrameURLLoaderFactory
@@ -1849,11 +1886,6 @@
   return *manifest_manager_;
 }
 
-void RenderFrameImpl::SetPendingNavigationParams(
-    std::unique_ptr<NavigationParams> navigation_params) {
-  pending_navigation_params_ = std::move(navigation_params);
-}
-
 void RenderFrameImpl::OnBeforeUnload(bool is_reload) {
   TRACE_EVENT1("navigation,rail", "RenderFrameImpl::OnBeforeUnload",
                "id", routing_id_);
@@ -2636,8 +2668,10 @@
   // If we failed on a browser initiated request, then make sure that our error
   // page load is regarded as the same browser initiated request.
   if (!navigation_state->IsContentInitiated()) {
-    pending_navigation_params_.reset(new NavigationParams(
-        navigation_state->common_params(), navigation_state->request_params()));
+    pending_navigation_params_.reset(new PendingNavigationParams(
+        navigation_state->common_params(), navigation_state->request_params(),
+        base::TimeTicks()  // not used for failed navigation.
+        ));
   }
 
   // Load an error page.
@@ -3085,7 +3119,9 @@
   if (request_params.is_view_source)
     frame_->EnableViewSourceMode(true);
 
-  PrepareFrameForCommit(common_params, request_params);
+  pending_navigation_params_.reset(new PendingNavigationParams(
+      common_params, request_params, base::TimeTicks::Now()));
+  PrepareFrameForCommit();
 
   blink::WebFrameLoadType load_type = NavigationTypeToLoadType(
       common_params.navigation_type, common_params.should_replace_current_entry,
@@ -3174,8 +3210,10 @@
 
   SetupLoaderFactoryBundle(std::move(subresource_loader_factories));
 
-  pending_navigation_params_.reset(
-      new NavigationParams(common_params, request_params));
+  pending_navigation_params_.reset(new PendingNavigationParams(
+      common_params, request_params,
+      base::TimeTicks()  // Not used for failed navigation.
+      ));
 
   // Send the provisional load failure.
   WebURLError error(
@@ -3285,7 +3323,11 @@
       common_params.has_user_gesture ? new blink::WebScopedUserGesture(frame_)
                                      : nullptr);
 
-  PrepareFrameForCommit(common_params, request_params);
+  pending_navigation_params_.reset(new PendingNavigationParams(
+      common_params, request_params,
+      base::TimeTicks()  // Not used for same-document navigation.
+      ));
+  PrepareFrameForCommit();
 
   blink::WebFrameLoadType load_type = NavigationTypeToLoadType(
       common_params.navigation_type, common_params.should_replace_current_entry,
@@ -4162,6 +4204,7 @@
       frame_->GetDocumentLoader()->GetResponse();
   WebURLResponseExtraDataImpl* extra_data =
       GetExtraDataFromResponse(web_url_response);
+
   // Only update the PreviewsState and effective connection type states for new
   // main frame documents. Subframes inherit from the main frame and should not
   // change at commit time.
@@ -4250,6 +4293,15 @@
                               false /* was_within_same_document */,
                               std::move(remote_interface_provider_request));
 
+  // Record time between receiving the message to commit the navigation until it
+  // has committed. Only successful cross-document navigation handled by the
+  // browser process are taken into account.
+  if (!navigation_state->time_commit_requested().is_null()) {
+    RecordReadyToCommitUntilCommitHistogram(
+        base::TimeTicks::Now() - navigation_state->time_commit_requested(),
+        navigation_state->GetTransitionType());
+  }
+
   // If we end up reusing this WebRequest (for example, due to a #ref click),
   // we don't want the transition type to persist.  Just clear it.
   navigation_state->set_transition_type(ui::PAGE_TRANSITION_LINK);
@@ -5588,20 +5640,17 @@
   }
 }
 
-void RenderFrameImpl::PrepareFrameForCommit(
-    const CommonNavigationParams& common_params,
-    const RequestNavigationParams& request_params) {
+void RenderFrameImpl::PrepareFrameForCommit() {
   browser_side_navigation_pending_ = false;
   browser_side_navigation_pending_url_ = GURL();
 
   GetContentClient()->SetActiveURL(
-      common_params.url, frame_->Top()->GetSecurityOrigin().ToString().Utf8());
+      pending_navigation_params_->common_params.url,
+      frame_->Top()->GetSecurityOrigin().ToString().Utf8());
 
-  RenderFrameImpl::PrepareRenderViewForNavigation(common_params.url,
-                                                  request_params);
-
-  pending_navigation_params_.reset(
-      new NavigationParams(common_params, request_params));
+  RenderFrameImpl::PrepareRenderViewForNavigation(
+      pending_navigation_params_->common_params.url,
+      pending_navigation_params_->request_params);
 
   // Lower bound for browser initiated navigation start time.
   base::TimeTicks renderer_navigation_start = base::TimeTicks::Now();
@@ -5609,8 +5658,9 @@
   // Sanitize navigation start and store in |pending_navigation_params_|.
   // It will be picked up in UpdateNavigationState.
   pending_navigation_params_->common_params.navigation_start =
-      SanitizeNavigationTiming(common_params.navigation_start,
-                               renderer_navigation_start);
+      SanitizeNavigationTiming(
+          pending_navigation_params_->common_params.navigation_start,
+          renderer_navigation_start);
 }
 
 blink::mojom::CommitResult RenderFrameImpl::PrepareForHistoryNavigationCommit(
@@ -6919,7 +6969,8 @@
   if (IsBrowserInitiated(pending_navigation_params_.get())) {
     return NavigationStateImpl::CreateBrowserInitiated(
         pending_navigation_params_->common_params,
-        pending_navigation_params_->request_params);
+        pending_navigation_params_->request_params,
+        pending_navigation_params_->time_commit_requested);
   }
   return NavigationStateImpl::CreateContentInitiated();
 }
diff --git a/content/renderer/render_frame_impl.h b/content/renderer/render_frame_impl.h
index 6cd879b0..8764507 100644
--- a/content/renderer/render_frame_impl.h
+++ b/content/renderer/render_frame_impl.h
@@ -69,8 +69,8 @@
 #include "services/service_manager/public/cpp/interface_provider.h"
 #include "services/service_manager/public/mojom/connector.mojom.h"
 #include "services/service_manager/public/mojom/interface_provider.mojom.h"
-#include "third_party/WebKit/common/page/page_visibility_state.mojom.h"
 #include "third_party/WebKit/public/common/feature_policy/feature_policy.h"
+#include "third_party/WebKit/public/mojom/page/page_visibility_state.mojom.h"
 #include "third_party/WebKit/public/platform/WebEffectiveConnectionType.h"
 #include "third_party/WebKit/public/platform/WebFocusType.h"
 #include "third_party/WebKit/public/platform/WebLoadingBehaviorFlag.h"
@@ -176,7 +176,7 @@
 struct FileChooserParams;
 struct FrameOwnerProperties;
 struct FrameReplicationState;
-struct NavigationParams;
+struct PendingNavigationParams;
 struct RequestNavigationParams;
 struct ScreenInfo;
 
@@ -789,11 +789,6 @@
 
   blink::mojom::ManifestManager& GetManifestManager();
 
-  // TODO(creis): Remove when the only caller, the HistoryController, is no
-  // more.
-  void SetPendingNavigationParams(
-      std::unique_ptr<NavigationParams> navigation_params);
-
   media::MediaPermission* GetMediaPermission();
 
   // Sends the current frame's navigation state to the browser.
@@ -1315,8 +1310,7 @@
   blink::WebComputedAXTree* GetOrCreateWebComputedAXTree() override;
 
   // Updates the state of this frame when asked to commit a navigation.
-  void PrepareFrameForCommit(const CommonNavigationParams& common_params,
-                             const RequestNavigationParams& request_params);
+  void PrepareFrameForCommit();
 
   // Updates the state when asked to commit a history navigation.  Sets
   // |item_for_history_navigation| and |load_type| to the appropriate values for
@@ -1417,7 +1411,7 @@
   // Temporarily holds state pertaining to a navigation that has been initiated
   // until the NavigationState corresponding to the new navigation is created in
   // DidCreateDocumentLoader().
-  std::unique_ptr<NavigationParams> pending_navigation_params_;
+  std::unique_ptr<PendingNavigationParams> pending_navigation_params_;
 
   // Keeps track of which future subframes the browser process has history items
   // for during a history navigation, as well as whether those items are for
diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc
index e709734a..91710f6 100644
--- a/content/renderer/render_thread_impl.cc
+++ b/content/renderer/render_thread_impl.cc
@@ -2481,10 +2481,8 @@
 void RenderThreadImpl::ClearMemory() {
   // Do not call into blink if it is not initialized.
   if (blink_platform_impl_) {
-    // Purge Skia font cache, by setting it to 0 and then again to the
-    // previous limit.
-    size_t font_cache_limit = SkGraphics::SetFontCacheLimit(0);
-    SkGraphics::SetFontCacheLimit(font_cache_limit);
+    // Purge Skia font cache, resource cache, and image filter.
+    SkGraphics::PurgeAllCaches();
   }
 }
 
diff --git a/content/renderer/render_thread_impl_browsertest.cc b/content/renderer/render_thread_impl_browsertest.cc
index 999b7dd..c53d8cf 100644
--- a/content/renderer/render_thread_impl_browsertest.cc
+++ b/content/renderer/render_thread_impl_browsertest.cc
@@ -20,6 +20,7 @@
 #include "base/test/scoped_feature_list.h"
 #include "base/threading/sequenced_task_runner_handle.h"
 #include "base/threading/thread_task_runner_handle.h"
+#include "build/build_config.h"
 #include "content/app/mojo/mojo_init.h"
 #include "content/common/in_process_child_thread_params.h"
 #include "content/common/service_manager/child_connection.h"
@@ -36,8 +37,10 @@
 #include "content/public/test/test_browser_thread_bundle.h"
 #include "content/public/test/test_content_client_initializer.h"
 #include "content/public/test/test_launcher.h"
+#include "content/public/test/test_navigation_observer.h"
 #include "content/public/test/test_service_manager_context.h"
 #include "content/renderer/render_process_impl.h"
+#include "content/shell/browser/shell.h"
 #include "content/test/mock_render_process.h"
 #include "gpu/GLES2/gl2extchromium.h"
 #include "gpu/command_buffer/client/gpu_memory_buffer_manager.h"
@@ -47,9 +50,11 @@
 #include "ipc/ipc_channel_mojo.h"
 #include "mojo/edk/embedder/embedder.h"
 #include "mojo/edk/embedder/outgoing_broker_client_invitation.h"
+#include "net/dns/mock_host_resolver.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "third_party/WebKit/public/platform/scheduler/renderer/renderer_scheduler.h"
 #include "third_party/WebKit/public/platform/scheduler/test/renderer_scheduler_test_support.h"
+#include "third_party/skia/include/core/SkGraphics.h"
 #include "ui/base/ui_base_switches.h"
 #include "ui/gfx/buffer_format_util.h"
 
@@ -414,5 +419,37 @@
                                          gfx::BufferFormat::BGRA_8888,
                                          gfx::BufferFormat::YVU_420)));
 
+class RenderThreadImplClearMemoryBrowserTest : public ContentBrowserTest {
+ protected:
+  void SetUpOnMainThread() override {
+    host_resolver()->AddRule("*", "127.0.0.1");
+    ASSERT_TRUE(embedded_test_server()->Start());
+  }
+};
+
+#if defined(OS_ANDROID) || defined(OS_MACOSX) || defined(IS_CHROMECAST)
+#define MAYBE_ClearMemory DISABLED_ClearMemory
+#else
+#define MAYBE_ClearMemory ClearMemory
+#endif
+
+IN_PROC_BROWSER_TEST_F(RenderThreadImplClearMemoryBrowserTest,
+                       MAYBE_ClearMemory) {
+  TestNavigationObserver observer(shell()->web_contents());
+  GURL url(embedded_test_server()->GetURL("/simple_page.html"));
+  NavigateToURL(shell(), url);
+
+  EXPECT_GT(static_cast<int>(SkGraphics::GetFontCacheUsed()), 0);
+  EXPECT_GT(SkGraphics::GetFontCacheCountUsed(), 0);
+
+  // TODO(gyuyoung): How to call RenderThreadImpl::ClearMemory() from here?
+  // Instead we call same function that RenderThreadImpl::ClearMemory() calls at
+  // the moment.
+  SkGraphics::PurgeAllCaches();
+
+  EXPECT_EQ(static_cast<int>(SkGraphics::GetFontCacheUsed()), 0);
+  EXPECT_EQ(SkGraphics::GetFontCacheCountUsed(), 0);
+}
+
 }  // namespace
 }  // namespace content
diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc
index 7cce9d1..6e57733 100644
--- a/content/renderer/render_view_impl.cc
+++ b/content/renderer/render_view_impl.cc
@@ -109,8 +109,8 @@
 #include "net/nqe/effective_connection_type.h"
 #include "ppapi/features/features.h"
 #include "skia/ext/platform_canvas.h"
-#include "third_party/WebKit/common/page/page_visibility_state.mojom.h"
 #include "third_party/WebKit/public/common/associated_interfaces/associated_interface_provider.h"
+#include "third_party/WebKit/public/mojom/page/page_visibility_state.mojom.h"
 #include "third_party/WebKit/public/platform/FilePathConversion.h"
 #include "third_party/WebKit/public/platform/URLConversion.h"
 #include "third_party/WebKit/public/platform/WebConnectionType.h"
diff --git a/content/renderer/service_worker/web_service_worker_installed_scripts_manager_impl.cc b/content/renderer/service_worker/web_service_worker_installed_scripts_manager_impl.cc
index 291c24b..e14fbbe3 100644
--- a/content/renderer/service_worker/web_service_worker_installed_scripts_manager_impl.cc
+++ b/content/renderer/service_worker/web_service_worker_installed_scripts_manager_impl.cc
@@ -22,9 +22,13 @@
  public:
   using BytesChunk = blink::WebVector<char>;
 
-  Receiver(mojo::ScopedDataPipeConsumerHandle handle, uint64_t total_bytes)
+  Receiver(mojo::ScopedDataPipeConsumerHandle handle,
+           uint64_t total_bytes,
+           scoped_refptr<base::SingleThreadTaskRunner> task_runner)
       : handle_(std::move(handle)),
-        watcher_(FROM_HERE, mojo::SimpleWatcher::ArmingPolicy::MANUAL),
+        watcher_(FROM_HERE,
+                 mojo::SimpleWatcher::ArmingPolicy::MANUAL,
+                 std::move(task_runner)),
         remaining_bytes_(total_bytes) {}
 
   void Start(base::OnceClosure callback) {
@@ -118,9 +122,10 @@
   BundledReceivers(mojo::ScopedDataPipeConsumerHandle meta_data_handle,
                    uint64_t meta_data_size,
                    mojo::ScopedDataPipeConsumerHandle body_handle,
-                   uint64_t body_size)
-      : meta_data_(std::move(meta_data_handle), meta_data_size),
-        body_(std::move(body_handle), body_size) {}
+                   uint64_t body_size,
+                   scoped_refptr<base::SingleThreadTaskRunner> task_runner)
+      : meta_data_(std::move(meta_data_handle), meta_data_size, task_runner),
+        body_(std::move(body_handle), body_size, std::move(task_runner)) {}
 
   // Starts reading the pipes and invokes |callback| when both are finished.
   void Start(base::OnceClosure callback) {
@@ -148,14 +153,19 @@
   // Creates and binds a new Internal instance to |request|.
   static void Create(
       scoped_refptr<ThreadSafeScriptContainer> script_container,
-      blink::mojom::ServiceWorkerInstalledScriptsManagerRequest request) {
+      blink::mojom::ServiceWorkerInstalledScriptsManagerRequest request,
+      scoped_refptr<base::SingleThreadTaskRunner> task_runner) {
     mojo::MakeStrongBinding(
-        std::make_unique<Internal>(std::move(script_container)),
+        std::make_unique<Internal>(std::move(script_container),
+                                   std::move(task_runner)),
         std::move(request));
   }
 
-  Internal(scoped_refptr<ThreadSafeScriptContainer> script_container)
-      : script_container_(std::move(script_container)), weak_factory_(this) {}
+  Internal(scoped_refptr<ThreadSafeScriptContainer> script_container,
+           scoped_refptr<base::SingleThreadTaskRunner> task_runner)
+      : script_container_(std::move(script_container)),
+        task_runner_(std::move(task_runner)),
+        weak_factory_(this) {}
 
   ~Internal() override {
     DCHECK_CALLED_ON_VALID_THREAD(io_thread_checker_);
@@ -174,7 +184,7 @@
     GURL script_url = script_info->script_url;
     auto receivers = std::make_unique<BundledReceivers>(
         std::move(script_info->meta_data), script_info->meta_data_size,
-        std::move(script_info->body), script_info->body_size);
+        std::move(script_info->body), script_info->body_size, task_runner_);
     receivers->Start(base::BindOnce(&Internal::OnScriptReceived,
                                     weak_factory_.GetWeakPtr(),
                                     std::move(script_info)));
@@ -213,6 +223,7 @@
   THREAD_CHECKER(io_thread_checker_);
   std::map<GURL, std::unique_ptr<BundledReceivers>> running_receivers_;
   scoped_refptr<ThreadSafeScriptContainer> script_container_;
+  scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
   base::WeakPtrFactory<Internal> weak_factory_;
 };
 
@@ -234,7 +245,8 @@
   io_task_runner->PostTask(
       FROM_HERE,
       base::BindOnce(&Internal::Create, script_container,
-                     std::move(installed_scripts_info->manager_request)));
+                     std::move(installed_scripts_info->manager_request),
+                     io_task_runner));
   return manager;
 }
 
diff --git a/content/shell/android/BUILD.gn b/content/shell/android/BUILD.gn
index 277d949..7670309b 100644
--- a/content/shell/android/BUILD.gn
+++ b/content/shell/android/BUILD.gn
@@ -6,6 +6,7 @@
 import("//build/config/android/config.gni")
 import("//build/config/android/rules.gni")
 import("//third_party/icu/config.gni")
+import("//tools/v8_context_snapshot/v8_context_snapshot.gni")
 
 content_shell_manifest =
     "$target_gen_dir/content_shell_manifest/AndroidManifest.xml"
@@ -144,8 +145,12 @@
   deps = [
     "//content/shell:pak",
     "//third_party/icu:icu_assets",
-    "//v8:v8_external_startup_data_assets",
   ]
+  if (use_v8_context_snapshot) {
+    deps += [ "//tools/v8_context_snapshot:v8_context_snapshot_assets" ]
+  } else {
+    deps += [ "//v8:v8_external_startup_data_assets" ]
+  }
 }
 
 android_apk("content_shell_apk") {
diff --git a/content/shell/browser/layout_test/layout_test_message_filter.cc b/content/shell/browser/layout_test/layout_test_message_filter.cc
index 1fb0c72..4bc96876f 100644
--- a/content/shell/browser/layout_test/layout_test_message_filter.cc
+++ b/content/shell/browser/layout_test/layout_test_message_filter.cc
@@ -191,6 +191,8 @@
     type = PermissionType::CLIPBOARD_READ;
   } else if (name == "clipboard-write") {
     type = PermissionType::CLIPBOARD_WRITE;
+  } else if (name == "payment-handler") {
+    type = PermissionType::PAYMENT_HANDLER;
   } else {
     NOTREACHED();
     type = PermissionType::NOTIFICATIONS;
diff --git a/content/shell/browser/shell_permission_manager.cc b/content/shell/browser/shell_permission_manager.cc
index 9d40cf3..d083813a 100644
--- a/content/shell/browser/shell_permission_manager.cc
+++ b/content/shell/browser/shell_permission_manager.cc
@@ -19,6 +19,7 @@
   return permission == PermissionType::GEOLOCATION ||
          permission == PermissionType::MIDI ||
          permission == PermissionType::SENSORS ||
+         permission == PermissionType::PAYMENT_HANDLER ||
          // Background sync browser tests require permission to be granted by
          // default.
          // TODO(nsatragno): add a command line flag so that it's only granted
diff --git a/content/shell/browser/shell_quota_permission_context.cc b/content/shell/browser/shell_quota_permission_context.cc
index fffd2fc7..355164e5 100644
--- a/content/shell/browser/shell_quota_permission_context.cc
+++ b/content/shell/browser/shell_quota_permission_context.cc
@@ -4,7 +4,7 @@
 
 #include "content/shell/browser/shell_quota_permission_context.h"
 
-#include "third_party/WebKit/common/quota/quota_types.mojom.h"
+#include "third_party/WebKit/public/mojom/quota/quota_types.mojom.h"
 
 namespace content {
 
diff --git a/content/shell/test_runner/test_runner_for_specific_view.cc b/content/shell/test_runner/test_runner_for_specific_view.cc
index b47ed35..0c9ece1 100644
--- a/content/shell/test_runner/test_runner_for_specific_view.cc
+++ b/content/shell/test_runner/test_runner_for_specific_view.cc
@@ -33,7 +33,7 @@
 #include "gin/handle.h"
 #include "gin/object_template_builder.h"
 #include "gin/wrappable.h"
-#include "third_party/WebKit/common/page/page_visibility_state.mojom.h"
+#include "third_party/WebKit/public/mojom/page/page_visibility_state.mojom.h"
 #include "third_party/WebKit/public/platform/WebCanvas.h"
 #include "third_party/WebKit/public/platform/WebData.h"
 #include "third_party/WebKit/public/platform/WebPoint.h"
diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn
index 07230fa..9663da1e 100644
--- a/content/test/BUILD.gn
+++ b/content/test/BUILD.gn
@@ -17,6 +17,7 @@
 import("//services/service_manager/public/service_manifest.gni")
 import("//testing/test.gni")
 import("//third_party/WebKit/public/public_features.gni")
+import("//tools/v8_context_snapshot/v8_context_snapshot.gni")
 import("//v8/gni/v8.gni")
 
 # Use a static library here because many test binaries depend on this but don't
@@ -847,6 +848,10 @@
 
   defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
 
+  if (is_chromecast) {
+    defines += [ "IS_CHROMECAST" ]
+  }
+
   configs += [
     "//build/config:precompiled_headers",
     "//build/config/compiler:no_size_t_to_int_warning",
@@ -1042,6 +1047,13 @@
     ]
   }
 
+  # HID support is not available without udev.
+  is_linux_without_udev = is_linux && !use_udev
+  if (!is_linux_without_udev && !is_android) {
+    sources += [ "../browser/webauth/webauth_browsertest.cc" ]
+    deps += [ "//device/fido:test_support" ]
+  }
+
   if (is_mac) {
     sources += [ "../renderer/external_popup_menu_browsertest.cc" ]
     deps += [
@@ -1455,14 +1467,14 @@
     "../browser/service_worker/service_worker_job_unittest.cc",
     "../browser/service_worker/service_worker_lifetime_tracker_unittest.cc",
     "../browser/service_worker/service_worker_metrics_unittest.cc",
+    "../browser/service_worker/service_worker_navigation_loader_unittest.cc",
+    "../browser/service_worker/service_worker_new_script_loader_unittest.cc",
     "../browser/service_worker/service_worker_process_manager_unittest.cc",
     "../browser/service_worker/service_worker_provider_host_unittest.cc",
     "../browser/service_worker/service_worker_read_from_cache_job_unittest.cc",
     "../browser/service_worker/service_worker_registration_unittest.cc",
     "../browser/service_worker/service_worker_request_handler_unittest.cc",
-    "../browser/service_worker/service_worker_script_url_loader_unittest.cc",
     "../browser/service_worker/service_worker_storage_unittest.cc",
-    "../browser/service_worker/service_worker_url_loader_job_unittest.cc",
     "../browser/service_worker/service_worker_url_request_job_unittest.cc",
     "../browser/service_worker/service_worker_version_unittest.cc",
     "../browser/service_worker/service_worker_write_to_cache_job_unittest.cc",
@@ -1978,9 +1990,14 @@
       "//media/capture/content/android",
       "//media/capture/content/android:screen_capture_java",
       "//ui/android:android",
-      "//v8:v8_external_startup_data_assets",
     ]
 
+    if (use_v8_context_snapshot) {
+      deps += [ "//tools/v8_context_snapshot:v8_context_snapshot_assets" ]
+    } else {
+      deps += [ "//v8:v8_external_startup_data_assets" ]
+    }
+
     defines += [ "APPCACHE_USE_SIMPLE_CACHE" ]
   } else {
     # Non-Android.
diff --git a/content/test/data/accessibility/html/input-types-expected-android.txt b/content/test/data/accessibility/html/input-types-expected-android.txt
index b752fe1..0d6b372 100644
--- a/content/test/data/accessibility/html/input-types-expected-android.txt
+++ b/content/test/data/accessibility/html/input-types-expected-android.txt
@@ -1,49 +1,49 @@
 android.webkit.WebView focusable focused scrollable
 ++android.view.View
 ++++android.view.View
-++++++android.view.View clickable name='Default:'
-++++++android.widget.EditText editable_text focusable input_type=1
+++++++android.view.View name='Default: '
+++++++android.widget.EditText clickable editable_text focusable name='Default: ' input_type=1
 ++++android.view.View
-++++++android.view.View clickable name='Button:'
-++++++android.widget.Button focusable
-++++android.widget.CheckBox checkable clickable focusable name='Checkbox: '
+++++++android.view.View name='Button: '
+++++++android.widget.Button role_description='button' clickable focusable name='Button: '
+++++android.widget.CheckBox role_description='checkbox' checkable clickable focusable name='Checkbox: '
 ++++android.view.View
-++++++android.view.View clickable name='Color:'
-++++++android.widget.Spinner clickable focusable name='#000000'
+++++++android.view.View name='Color: '
+++++++android.widget.Spinner role_description='color picker' clickable focusable name='#000000'
 ++++android.view.View
-++++++android.view.View clickable name='Email:'
-++++++android.widget.EditText editable_text focusable input_type=209
+++++++android.view.View name='Email: '
+++++++android.widget.EditText clickable editable_text focusable name='Email: ' input_type=209
 ++++android.view.View
-++++++android.view.View clickable name='File:'
-++++++android.widget.Button clickable focusable name='Choose File'
+++++++android.view.View name='File: '
+++++++android.widget.Button role_description='button' clickable focusable name='File: '
 ++++android.view.View
-++++++android.view.View clickable name='Image:'
-++++++android.widget.Button focusable
+++++++android.view.View name='Image: '
+++++++android.widget.Button role_description='button' clickable focusable name='Image: '
 ++++android.view.View
-++++++android.view.View clickable name='Number:'
-++++++android.widget.EditText editable_text focusable input_type=2
+++++++android.view.View name='Number: '
+++++++android.widget.EditText role_description='spin button' clickable editable_text focusable name='Number: ' input_type=2
 ++++android.view.View
-++++++android.view.View clickable name='Password:'
-++++++android.widget.EditText editable_text focusable password input_type=225
-++++android.widget.RadioButton checkable clickable focusable name='Radio: '
+++++++android.view.View name='Password: '
+++++++android.widget.EditText clickable editable_text focusable password name='Password: ' input_type=225
+++++android.widget.RadioButton role_description='radio button' checkable clickable focusable name='Radio: '
 ++++android.view.View
-++++++android.view.View clickable name='Range:'
-++++++android.widget.SeekBar clickable focusable range name='50' item_index=50 item_count=100 range_max=100 range_current_value=50
+++++++android.view.View name='Range: '
+++++++android.widget.SeekBar role_description='slider' clickable focusable range name='Range: ' item_index=50 item_count=100 range_max=100 range_current_value=50
 ++++android.view.View
-++++++android.view.View clickable name='Reset:'
-++++++android.widget.Button clickable focusable name='Reset'
+++++++android.view.View name='Reset: '
+++++++android.widget.Button role_description='button' clickable focusable name='Reset: '
 ++++android.view.View
-++++++android.view.View clickable name='Search:'
-++++++android.widget.EditText editable_text focusable input_type=1
+++++++android.view.View name='Search: '
+++++++android.widget.EditText clickable editable_text focusable name='Search: ' input_type=1
 ++++android.view.View
-++++++android.view.View clickable name='Submit:'
-++++++android.widget.Button clickable focusable name='Submit'
+++++++android.view.View name='Submit: '
+++++++android.widget.Button role_description='button' clickable focusable name='Submit: '
 ++++android.view.View
-++++++android.view.View clickable name='Tel:'
-++++++android.widget.EditText editable_text focusable input_type=3
+++++++android.view.View name='Tel: '
+++++++android.widget.EditText clickable editable_text focusable name='Tel: ' input_type=3
 ++++android.view.View
-++++++android.view.View clickable name='Text:'
-++++++android.widget.EditText editable_text focusable input_type=1
+++++++android.view.View name='Text: '
+++++++android.widget.EditText clickable editable_text focusable name='Text: ' input_type=1
 ++++android.view.View
-++++++android.view.View clickable name='Url:'
-++++++android.widget.EditText editable_text focusable input_type=17
+++++++android.view.View name='Url: '
+++++++android.widget.EditText clickable editable_text focusable name='Url: ' input_type=17
\ No newline at end of file
diff --git a/content/test/data/accessibility/html/input-types-expected-mac.txt b/content/test/data/accessibility/html/input-types-expected-mac.txt
index f9535cc..5f39d2f 100644
--- a/content/test/data/accessibility/html/input-types-expected-mac.txt
+++ b/content/test/data/accessibility/html/input-types-expected-mac.txt
@@ -2,48 +2,48 @@
 ++AXGroup
 ++++AXGroup
 ++++++AXStaticText AXValue='Default: '
-++++++AXTextField
+++++++AXTextField AXTitle='Default: '
 ++++AXGroup
 ++++++AXStaticText AXValue='Button: '
-++++++AXButton
+++++++AXButton AXTitle='Button: '
 ++++AXCheckBox AXTitle='Checkbox: ' AXValue='0'
 ++++AXGroup
 ++++++AXStaticText AXValue='Color: '
-++++++AXColorWell AXValue='rgb 0.00000 0.00000 0.00000 1'
+++++++AXColorWell AXTitle='Color: ' AXValue='rgb 0.00000 0.00000 0.00000 1'
 ++++AXGroup
 ++++++AXStaticText AXValue='Email: '
-++++++AXTextField
+++++++AXTextField AXTitle='Email: '
 ++++AXGroup
 ++++++AXStaticText AXValue='File: '
-++++++AXButton AXTitle='Choose File'
+++++++AXButton AXTitle='File: '
 ++++AXGroup
 ++++++AXStaticText AXValue='Image: '
-++++++AXButton
+++++++AXButton AXTitle='Image: '
 ++++AXGroup
 ++++++AXStaticText AXValue='Number: '
-++++++AXTextField
+++++++AXIncrementor AXTitle='Number: '
 ++++AXGroup
 ++++++AXStaticText AXValue='Password: '
-++++++AXTextField
+++++++AXTextField AXTitle='Password: '
 ++++AXRadioButton AXTitle='Radio: ' AXValue='0'
 ++++AXGroup
 ++++++AXStaticText AXValue='Range: '
-++++++AXSlider AXValue='50'
+++++++AXSlider AXTitle='Range: ' AXValue='50'
 ++++AXGroup
 ++++++AXStaticText AXValue='Reset: '
-++++++AXButton AXTitle='Reset'
+++++++AXButton AXTitle='Reset: '
 ++++AXGroup
 ++++++AXStaticText AXValue='Search: '
-++++++AXTextField
+++++++AXTextField AXTitle='Search: '
 ++++AXGroup
 ++++++AXStaticText AXValue='Submit: '
-++++++AXButton AXTitle='Submit'
+++++++AXButton AXTitle='Submit: '
 ++++AXGroup
 ++++++AXStaticText AXValue='Tel: '
-++++++AXTextField
+++++++AXTextField AXTitle='Tel: '
 ++++AXGroup
 ++++++AXStaticText AXValue='Text: '
-++++++AXTextField
+++++++AXTextField AXTitle='Text: '
 ++++AXGroup
 ++++++AXStaticText AXValue='Url: '
-++++++AXTextField
+++++++AXTextField AXTitle='Url: '
\ No newline at end of file
diff --git a/content/test/data/accessibility/html/input-types-expected-win.txt b/content/test/data/accessibility/html/input-types-expected-win.txt
index b7213d6b..900bfcb 100644
--- a/content/test/data/accessibility/html/input-types-expected-win.txt
+++ b/content/test/data/accessibility/html/input-types-expected-win.txt
@@ -2,11 +2,11 @@
 ++IA2_ROLE_SECTION
 ++++IA2_ROLE_LABEL
 ++++++ROLE_SYSTEM_STATICTEXT name='Default: '
-++++++ROLE_SYSTEM_TEXT name='Default: ' FOCUSABLE text-input-type:text
+++++++ROLE_SYSTEM_TEXT name='Default: ' FOCUSABLE
 ++++IA2_ROLE_LABEL
 ++++++ROLE_SYSTEM_STATICTEXT name='Button: '
 ++++++ROLE_SYSTEM_PUSHBUTTON name='Button: ' FOCUSABLE
-++++ROLE_SYSTEM_CHECKBUTTON name='Checkbox: ' FOCUSABLE
+++++ROLE_SYSTEM_CHECKBUTTON name='Checkbox: ' FOCUSABLE IA2_STATE_CHECKABLE checkable:true
 ++++IA2_ROLE_LABEL
 ++++++ROLE_SYSTEM_STATICTEXT name='Color: '
 ++++++IA2_ROLE_COLOR_CHOOSER name='Color: ' FOCUSABLE
@@ -15,29 +15,29 @@
 ++++++ROLE_SYSTEM_TEXT name='Email: ' FOCUSABLE text-input-type:email
 ++++IA2_ROLE_LABEL
 ++++++ROLE_SYSTEM_STATICTEXT name='File: '
-++++++ROLE_SYSTEM_PUSHBUTTON name='Choose File' FOCUSABLE
+++++++ROLE_SYSTEM_PUSHBUTTON name='File: ' FOCUSABLE
 ++++IA2_ROLE_LABEL
 ++++++ROLE_SYSTEM_STATICTEXT name='Image: '
 ++++++ROLE_SYSTEM_PUSHBUTTON name='Image: ' FOCUSABLE
 ++++IA2_ROLE_LABEL
 ++++++ROLE_SYSTEM_STATICTEXT name='Number: '
-++++++ROLE_SYSTEM_TEXT name='Number: ' FOCUSABLE text-input-type:number
+++++++ROLE_SYSTEM_SPINBUTTON name='Number: ' FOCUSABLE text-input-type:number
 ++++IA2_ROLE_LABEL
 ++++++ROLE_SYSTEM_STATICTEXT name='Password: '
-++++++ROLE_SYSTEM_TEXT name='Password: ' FOCUSABLE text-input-type:password
-++++ROLE_SYSTEM_RADIOBUTTON name='Radio: ' FOCUSABLE
+++++++ROLE_SYSTEM_TEXT name='Password: ' FOCUSABLE PROTECTED text-input-type:password
+++++ROLE_SYSTEM_RADIOBUTTON name='Radio: ' FOCUSABLE IA2_STATE_CHECKABLE checkable:true
 ++++IA2_ROLE_LABEL
 ++++++ROLE_SYSTEM_STATICTEXT name='Range: '
-++++++ROLE_SYSTEM_SLIDER name='Range: ' FOCUSABLE
+++++++ROLE_SYSTEM_SLIDER name='Range: ' FOCUSABLE IA2_STATE_HORIZONTAL
 ++++IA2_ROLE_LABEL
 ++++++ROLE_SYSTEM_STATICTEXT name='Reset: '
-++++++ROLE_SYSTEM_PUSHBUTTON name='Reset' FOCUSABLE
+++++++ROLE_SYSTEM_PUSHBUTTON name='Reset: ' FOCUSABLE
 ++++IA2_ROLE_LABEL
 ++++++ROLE_SYSTEM_STATICTEXT name='Search: '
 ++++++ROLE_SYSTEM_TEXT name='Search: ' FOCUSABLE text-input-type:search
 ++++IA2_ROLE_LABEL
 ++++++ROLE_SYSTEM_STATICTEXT name='Submit: '
-++++++ROLE_SYSTEM_PUSHBUTTON name='Submit' FOCUSABLE
+++++++ROLE_SYSTEM_PUSHBUTTON name='Submit: ' FOCUSABLE
 ++++IA2_ROLE_LABEL
 ++++++ROLE_SYSTEM_STATICTEXT name='Tel: '
 ++++++ROLE_SYSTEM_TEXT name='Tel: ' FOCUSABLE text-input-type:tel
@@ -46,4 +46,4 @@
 ++++++ROLE_SYSTEM_TEXT name='Text: ' FOCUSABLE text-input-type:text
 ++++IA2_ROLE_LABEL
 ++++++ROLE_SYSTEM_STATICTEXT name='Url: '
-++++++ROLE_SYSTEM_TEXT name='Url: ' FOCUSABLE text-input-type:url
+++++++ROLE_SYSTEM_TEXT name='Url: ' FOCUSABLE text-input-type:url
\ No newline at end of file
diff --git a/content/test/data/body_overflow_hidden.html b/content/test/data/body_overflow_hidden.html
new file mode 100644
index 0000000..ec734b8
--- /dev/null
+++ b/content/test/data/body_overflow_hidden.html
@@ -0,0 +1,17 @@
+<html>
+<head>
+  <meta name='viewport' content='width=device-width, minimum-scale=1'>
+</head>
+<style>
+body {
+  height: 10000px;
+  overflow: hidden;
+}
+</style>
+<div style="width:100px; height:300px; overflow: scroll;">
+  <div style="width:150px; height:250px; overflow: scroll">
+    <div style="width:300px; height:200px; overflow: scroll">
+    </div>
+  </div>
+</div>
+</html>
diff --git a/content/test/data/scrollable_page_with_iframe.html b/content/test/data/scrollable_page_with_iframe.html
new file mode 100644
index 0000000..ba84fc84
--- /dev/null
+++ b/content/test/data/scrollable_page_with_iframe.html
@@ -0,0 +1,18 @@
+<html>
+<head>
+  <meta name='viewport' content='width=device-width, minimum-scale=1'>
+</head>
+<style>
+body {
+  height: 10000px;
+  overflow: scroll;
+}
+</style>
+<body>
+  <div style="width:100px; height:100px; overflow: scroll">
+    <div style="width:150px; height:150px; overflow: scroll">
+      <iframe style="width:200px; height:200px"> </iframe>
+    </div>
+  </div>
+</body>
+</html>
diff --git a/content/test/gpu/gpu_tests/pixel_expectations.py b/content/test/gpu/gpu_tests/pixel_expectations.py
index fd70738..473d701 100644
--- a/content/test/gpu/gpu_tests/pixel_expectations.py
+++ b/content/test/gpu/gpu_tests/pixel_expectations.py
@@ -122,6 +122,3 @@
                bug=809868)
     self.Flaky('Pixel_CanvasDisplayLinearRGBUnaccelerated2DGPUCompositing',
                ['android'], bug=810006)
-
-    self.Fail('Pixel_CSSFilterEffects', ['mac'], bug=815045)
-    self.Fail('Pixel_CSSFilterEffects_NoOverlays', ['mac'], bug=815045)
diff --git a/content/test/gpu/gpu_tests/pixel_test_pages.py b/content/test/gpu/gpu_tests/pixel_test_pages.py
index 7424f4b..254b80f7 100644
--- a/content/test/gpu/gpu_tests/pixel_test_pages.py
+++ b/content/test/gpu/gpu_tests/pixel_test_pages.py
@@ -643,12 +643,12 @@
       'filter_effects.html',
       base_name + '_CSSFilterEffects',
       test_rect=[0, 0, 300, 300],
-      revision=8),
+      revision=7),
     PixelTestPage(
       'filter_effects.html',
       base_name + '_CSSFilterEffects_NoOverlays',
       test_rect=[0, 0, 300, 300],
-      revision=9,
+      revision=8,
       tolerance=10,
       browser_args=no_overlays_args),
 
diff --git a/device/bluetooth/android/java/src/org/chromium/device/bluetooth/ChromeBluetoothAdapter.java b/device/bluetooth/android/java/src/org/chromium/device/bluetooth/ChromeBluetoothAdapter.java
index 0f94a8e..9256c38 100644
--- a/device/bluetooth/android/java/src/org/chromium/device/bluetooth/ChromeBluetoothAdapter.java
+++ b/device/bluetooth/android/java/src/org/chromium/device/bluetooth/ChromeBluetoothAdapter.java
@@ -17,6 +17,7 @@
 
 import org.chromium.base.Log;
 import org.chromium.base.annotations.CalledByNative;
+import org.chromium.base.annotations.JNIAdditionalImport;
 import org.chromium.base.annotations.JNINamespace;
 import org.chromium.components.location.LocationUtils;
 
@@ -31,6 +32,7 @@
  * Lifetime is controlled by device::BluetoothAdapterAndroid.
  */
 @JNINamespace("device")
+@JNIAdditionalImport(Wrappers.class)
 @TargetApi(Build.VERSION_CODES.M)
 final class ChromeBluetoothAdapter extends BroadcastReceiver {
     private static final String TAG = "Bluetooth";
@@ -77,14 +79,10 @@
     // BluetoothAdapterAndroid methods implemented in java:
 
     // Implements BluetoothAdapterAndroid::Create.
-    // 'Object' type must be used for |adapterWrapper| because inner class
-    // Wrappers.BluetoothAdapterWrapper reference is not handled by jni_generator.py JavaToJni.
-    // http://crbug.com/505554
     @CalledByNative
     private static ChromeBluetoothAdapter create(
-            long nativeBluetoothAdapterAndroid, Object adapterWrapper) {
-        return new ChromeBluetoothAdapter(
-                nativeBluetoothAdapterAndroid, (Wrappers.BluetoothAdapterWrapper) adapterWrapper);
+            long nativeBluetoothAdapterAndroid, Wrappers.BluetoothAdapterWrapper adapterWrapper) {
+        return new ChromeBluetoothAdapter(nativeBluetoothAdapterAndroid, adapterWrapper);
     }
 
     // Implements BluetoothAdapterAndroid::GetAddress.
@@ -350,13 +348,11 @@
     private native void nativeOnScanFailed(long nativeBluetoothAdapterAndroid);
 
     // Binds to BluetoothAdapterAndroid::CreateOrUpdateDeviceOnScan.
-    // 'Object' type must be used for |bluetoothDeviceWrapper| because inner class
-    // Wrappers.BluetoothDeviceWrapper reference is not handled by jni_generator.py JavaToJni.
-    // http://crbug.com/505554
     private native void nativeCreateOrUpdateDeviceOnScan(long nativeBluetoothAdapterAndroid,
-            String address, Object bluetoothDeviceWrapper, int rssi, String[] advertisedUuids,
-            int txPower, String[] serviceDataKeys, Object[] serviceDataValues,
-            int[] manufacturerDataKeys, Object[] manufacturerDataValues);
+            String address, Wrappers.BluetoothDeviceWrapper deviceWrapper, int rssi,
+            String[] advertisedUuids, int txPower, String[] serviceDataKeys,
+            Object[] serviceDataValues, int[] manufacturerDataKeys,
+            Object[] manufacturerDataValues);
 
     // Binds to BluetoothAdapterAndroid::nativeOnAdapterStateChanged
     private native void nativeOnAdapterStateChanged(
diff --git a/device/bluetooth/android/java/src/org/chromium/device/bluetooth/ChromeBluetoothDevice.java b/device/bluetooth/android/java/src/org/chromium/device/bluetooth/ChromeBluetoothDevice.java
index dc6e461..43d3f74 100644
--- a/device/bluetooth/android/java/src/org/chromium/device/bluetooth/ChromeBluetoothDevice.java
+++ b/device/bluetooth/android/java/src/org/chromium/device/bluetooth/ChromeBluetoothDevice.java
@@ -11,6 +11,7 @@
 import org.chromium.base.ContextUtils;
 import org.chromium.base.Log;
 import org.chromium.base.annotations.CalledByNative;
+import org.chromium.base.annotations.JNIAdditionalImport;
 import org.chromium.base.annotations.JNINamespace;
 import org.chromium.base.metrics.RecordHistogram;
 
@@ -23,6 +24,7 @@
  * Lifetime is controlled by device::BluetoothDeviceAndroid.
  */
 @JNINamespace("device")
+@JNIAdditionalImport(Wrappers.class)
 @TargetApi(Build.VERSION_CODES.M)
 final class ChromeBluetoothDevice {
     private static final String TAG = "Bluetooth";
@@ -65,13 +67,10 @@
     // BluetoothDeviceAndroid methods implemented in java:
 
     // Implements BluetoothDeviceAndroid::Create.
-    // 'Object' type must be used because inner class Wrappers.BluetoothDeviceWrapper reference is
-    // not handled by jni_generator.py JavaToJni. http://crbug.com/505554
     @CalledByNative
     private static ChromeBluetoothDevice create(
-            long nativeBluetoothDeviceAndroid, Object deviceWrapper) {
-        return new ChromeBluetoothDevice(
-                nativeBluetoothDeviceAndroid, (Wrappers.BluetoothDeviceWrapper) deviceWrapper);
+            long nativeBluetoothDeviceAndroid, Wrappers.BluetoothDeviceWrapper deviceWrapper) {
+        return new ChromeBluetoothDevice(nativeBluetoothDeviceAndroid, deviceWrapper);
     }
 
     // Implements BluetoothDeviceAndroid::GetBluetoothClass.
@@ -313,9 +312,8 @@
             long nativeBluetoothDeviceAndroid, int status, boolean connected);
 
     // Binds to BluetoothDeviceAndroid::CreateGattRemoteService.
-    // TODO(http://crbug.com/505554): Replace 'Object' with specific type when JNI fixed.
     private native void nativeCreateGattRemoteService(long nativeBluetoothDeviceAndroid,
-            String instanceId, Object bluetoothGattServiceWrapper);
+            String instanceId, Wrappers.BluetoothGattServiceWrapper serviceWrapper);
 
     // Binds to BluetoothDeviceAndroid::GattServicesDiscovered.
     private native void nativeOnGattServicesDiscovered(long nativeBluetoothDeviceAndroid);
diff --git a/device/bluetooth/android/java/src/org/chromium/device/bluetooth/ChromeBluetoothRemoteGattCharacteristic.java b/device/bluetooth/android/java/src/org/chromium/device/bluetooth/ChromeBluetoothRemoteGattCharacteristic.java
index f824cf7c..06b63aaa 100644
--- a/device/bluetooth/android/java/src/org/chromium/device/bluetooth/ChromeBluetoothRemoteGattCharacteristic.java
+++ b/device/bluetooth/android/java/src/org/chromium/device/bluetooth/ChromeBluetoothRemoteGattCharacteristic.java
@@ -9,6 +9,7 @@
 
 import org.chromium.base.Log;
 import org.chromium.base.annotations.CalledByNative;
+import org.chromium.base.annotations.JNIAdditionalImport;
 import org.chromium.base.annotations.JNINamespace;
 
 import java.util.List;
@@ -21,6 +22,7 @@
  * device::BluetoothRemoteGattCharacteristicAndroid.
  */
 @JNINamespace("device")
+@JNIAdditionalImport(Wrappers.class)
 @TargetApi(Build.VERSION_CODES.M)
 final class ChromeBluetoothRemoteGattCharacteristic {
     private static final String TAG = "Bluetooth";
@@ -86,16 +88,14 @@
     // BluetoothRemoteGattCharacteristicAndroid methods implemented in java:
 
     // Implements BluetoothRemoteGattCharacteristicAndroid::Create.
-    // TODO(http://crbug.com/505554): Replace 'Object' with specific type when JNI fixed.
     @CalledByNative
     private static ChromeBluetoothRemoteGattCharacteristic create(
             long nativeBluetoothRemoteGattCharacteristicAndroid,
-            Object bluetoothGattCharacteristicWrapper, String instanceId,
+            Wrappers.BluetoothGattCharacteristicWrapper characteristicWrapper, String instanceId,
             ChromeBluetoothDevice chromeDevice) {
         return new ChromeBluetoothRemoteGattCharacteristic(
-                nativeBluetoothRemoteGattCharacteristicAndroid,
-                (Wrappers.BluetoothGattCharacteristicWrapper) bluetoothGattCharacteristicWrapper,
-                instanceId, chromeDevice);
+                nativeBluetoothRemoteGattCharacteristicAndroid, characteristicWrapper, instanceId,
+                chromeDevice);
     }
 
     // Implements BluetoothRemoteGattCharacteristicAndroid::GetUUID.
@@ -175,8 +175,8 @@
     native void nativeOnWrite(long nativeBluetoothRemoteGattCharacteristicAndroid, int status);
 
     // Binds to BluetoothRemoteGattCharacteristicAndroid::CreateGattRemoteDescriptor.
-    // TODO(http://crbug.com/505554): Replace 'Object' with specific type when JNI fixed.
     private native void nativeCreateGattRemoteDescriptor(
             long nativeBluetoothRemoteGattCharacteristicAndroid, String instanceId,
-            Object bluetoothGattDescriptorWrapper, Object chromeBluetoothDevice);
+            Wrappers.BluetoothGattDescriptorWrapper descriptorWrapper,
+            ChromeBluetoothDevice chromeBluetoothDevice);
 }
diff --git a/device/bluetooth/android/java/src/org/chromium/device/bluetooth/ChromeBluetoothRemoteGattDescriptor.java b/device/bluetooth/android/java/src/org/chromium/device/bluetooth/ChromeBluetoothRemoteGattDescriptor.java
index ac7489d0..a90608b 100644
--- a/device/bluetooth/android/java/src/org/chromium/device/bluetooth/ChromeBluetoothRemoteGattDescriptor.java
+++ b/device/bluetooth/android/java/src/org/chromium/device/bluetooth/ChromeBluetoothRemoteGattDescriptor.java
@@ -6,6 +6,7 @@
 
 import org.chromium.base.Log;
 import org.chromium.base.annotations.CalledByNative;
+import org.chromium.base.annotations.JNIAdditionalImport;
 import org.chromium.base.annotations.JNINamespace;
 
 /**
@@ -15,6 +16,7 @@
  * Lifetime is controlled by device::BluetoothRemoteGattDescriptorAndroid.
  */
 @JNINamespace("device")
+@JNIAdditionalImport(Wrappers.class)
 final class ChromeBluetoothRemoteGattDescriptor {
     private static final String TAG = "Bluetooth";
 
@@ -65,14 +67,13 @@
     // BluetoothRemoteGattDescriptorAndroid methods implemented in java:
 
     // Implements BluetoothRemoteGattDescriptorAndroid::Create.
-    // TODO(http://crbug.com/505554): Replace 'Object' with specific type when JNI fixed.
     @CalledByNative
     private static ChromeBluetoothRemoteGattDescriptor create(
-            long nativeBluetoothRemoteGattDescriptorAndroid, Object bluetoothGattDescriptorWrapper,
+            long nativeBluetoothRemoteGattDescriptorAndroid,
+            Wrappers.BluetoothGattDescriptorWrapper descriptorWrapper,
             ChromeBluetoothDevice chromeDevice) {
-        return new ChromeBluetoothRemoteGattDescriptor(nativeBluetoothRemoteGattDescriptorAndroid,
-                (Wrappers.BluetoothGattDescriptorWrapper) bluetoothGattDescriptorWrapper,
-                chromeDevice);
+        return new ChromeBluetoothRemoteGattDescriptor(
+                nativeBluetoothRemoteGattDescriptorAndroid, descriptorWrapper, chromeDevice);
     }
 
     // Implements BluetoothRemoteGattDescriptorAndroid::GetUUID.
diff --git a/device/bluetooth/android/java/src/org/chromium/device/bluetooth/ChromeBluetoothRemoteGattService.java b/device/bluetooth/android/java/src/org/chromium/device/bluetooth/ChromeBluetoothRemoteGattService.java
index 65a17203..6f2989eb 100644
--- a/device/bluetooth/android/java/src/org/chromium/device/bluetooth/ChromeBluetoothRemoteGattService.java
+++ b/device/bluetooth/android/java/src/org/chromium/device/bluetooth/ChromeBluetoothRemoteGattService.java
@@ -6,6 +6,7 @@
 
 import org.chromium.base.Log;
 import org.chromium.base.annotations.CalledByNative;
+import org.chromium.base.annotations.JNIAdditionalImport;
 import org.chromium.base.annotations.JNINamespace;
 
 import java.util.List;
@@ -18,6 +19,7 @@
  * device::BluetoothRemoteGattServiceAndroid.
  */
 @JNINamespace("device")
+@JNIAdditionalImport(Wrappers.class)
 final class ChromeBluetoothRemoteGattService {
     private static final String TAG = "Bluetooth";
 
@@ -48,14 +50,13 @@
     // BluetoothRemoteGattServiceAndroid methods implemented in java:
 
     // Implements BluetoothRemoteGattServiceAndroid::Create.
-    // TODO(http://crbug.com/505554): Replace 'Object' with specific type when JNI fixed.
     @CalledByNative
     private static ChromeBluetoothRemoteGattService create(
-            long nativeBluetoothRemoteGattServiceAndroid, Object bluetoothGattServiceWrapper,
-            String instanceId, ChromeBluetoothDevice chromeDevice) {
-        return new ChromeBluetoothRemoteGattService(nativeBluetoothRemoteGattServiceAndroid,
-                (Wrappers.BluetoothGattServiceWrapper) bluetoothGattServiceWrapper, instanceId,
-                chromeDevice);
+            long nativeBluetoothRemoteGattServiceAndroid,
+            Wrappers.BluetoothGattServiceWrapper serviceWrapper, String instanceId,
+            ChromeBluetoothDevice chromeDevice) {
+        return new ChromeBluetoothRemoteGattService(
+                nativeBluetoothRemoteGattServiceAndroid, serviceWrapper, instanceId, chromeDevice);
     }
 
     // Implements BluetoothRemoteGattServiceAndroid::GetUUID.
@@ -84,8 +85,8 @@
     // BluetoothAdapterDevice C++ methods declared for access from java:
 
     // Binds to BluetoothRemoteGattServiceAndroid::CreateGattRemoteCharacteristic.
-    // TODO(http://crbug.com/505554): Replace 'Object' with specific type when JNI fixed.
     private native void nativeCreateGattRemoteCharacteristic(
             long nativeBluetoothRemoteGattServiceAndroid, String instanceId,
-            Object bluetoothGattCharacteristicWrapper, Object chromeBluetoothDevice);
+            Wrappers.BluetoothGattCharacteristicWrapper characteristicWrapper,
+            ChromeBluetoothDevice chromeBluetoothDevice);
 }
diff --git a/device/gamepad/raw_input_gamepad_device_win.cc b/device/gamepad/raw_input_gamepad_device_win.cc
index 77053e9..392169f 100644
--- a/device/gamepad/raw_input_gamepad_device_win.cc
+++ b/device/gamepad/raw_input_gamepad_device_win.cc
@@ -326,7 +326,7 @@
 
   for (size_t i = 0; i < axis_count; i++) {
     size_t axis_index = axes_caps[i].Range.UsageMin - kAxisMinimumUsageNumber;
-    if (axis_index < Gamepad::kAxesLengthCap) {
+    if (axis_index < Gamepad::kAxesLengthCap && !axes_[axis_index].active) {
       axes_[axis_index].caps = axes_caps[i];
       axes_[axis_index].value = 0;
       axes_[axis_index].active = true;
diff --git a/docs/win_cross.md b/docs/win_cross.md
index f1cfcd8..2ba25ad 100644
--- a/docs/win_cross.md
+++ b/docs/win_cross.md
@@ -8,13 +8,14 @@
 
 * goma. Sorry. ([internal bug](http://b/64390790)) You can use the
   [jumbo build](jumbo.md) for faster build times.
-* renderer processes crash at startup ([bug](https://crbug.com/803591))
+* 64-bit renderer processes don't use V8 snapshots, slowing down their startup
+  ([bug](https://crbug.com/803591))
 * on Mac hosts, building a 32-bit chrome ([bug](https://crbug.com/794838))
 
 All other targets build fine (including `chrome`, `browser_tests`, ...).
 
 Uses of `.asm` files have been stubbed out.  As a result, some of Skia's
-software rendering paths are not present in cross builds, Crashpad cannot
+software rendering fast paths are not present in cross builds, Crashpad cannot
 report crashes, and NaCl defaults to disabled and cannot be enabled in
 cross builds ([.asm bug](https://crbug.com/762167)).
 
@@ -61,22 +62,11 @@
 
 You can run the Windows binaries you built on swarming, like so:
 
-    tools/mb/mb.py isolate //out/gnwin base_unittests
-    tools/swarming_client/isolate.py archive \
-        -I https://isolateserver.appspot.com \
-        -i out/gnwin/base_unittests.isolate \
-        -s out/gnwin/base_unittests.isolated
-    tools/swarming_client/swarming.py trigger \
-        -S https://chromium-swarm.appspot.com \
-        -I https://isolateserver.appspot.com \
-        -d os Windows -d pool Chrome -s <hash printed by previous command>
-        [ -- <flag to target process, for example --gtest_filter>... ]
+    tools/run_swarmed.py -C out/gnwin -t base_unittests [ --gtest_filter=... ]
 
-Most tests that build should pass.  However, the cross build uses
-the lld linker, and a couple of tests fail when using lld. You can look at
-https://build.chromium.org/p/chromium.clang/builders/CrWinClangLLD%20tester
-to get an idea of which tests fail with lld.
+See the contents of run_swarmed.py for how to do this manually.
 
-TODO(thakis): It'd be nice if there was a script for doing this. Maybe make
-tools/fuchsa/run-swarmed.py work for win cross builds too, or create
-`run_base_unittests` script targets during the build (like Android).
+There's a bot doing 64-bit release cross builds at
+https://ci.chromium.org/buildbot/chromium.clang/linux-win_cross-rel/
+which also runs tests. You can look at it to get an idea of which tests pass in
+the cross build.
diff --git a/extensions/browser/api/guest_view/web_view/web_view_internal_api.cc b/extensions/browser/api/guest_view/web_view/web_view_internal_api.cc
index 94e5f31..ef33eea 100644
--- a/extensions/browser/api/guest_view/web_view/web_view_internal_api.cc
+++ b/extensions/browser/api/guest_view/web_view/web_view_internal_api.cc
@@ -317,7 +317,7 @@
   is_guest_transparent_ = guest->allow_transparency();
   return CaptureAsync(
       guest->web_contents(), image_details.get(),
-      base::Bind(
+      base::BindOnce(
           &WebViewInternalCaptureVisibleRegionFunction::CopyFromSurfaceComplete,
           this));
 }
@@ -346,8 +346,8 @@
     FailureReason reason) {
   const char* reason_description = "internal error";
   switch (reason) {
-    case FAILURE_REASON_UNKNOWN:
-      reason_description = "unknown error";
+    case FAILURE_REASON_READBACK_FAILED:
+      reason_description = "image readback failed";
       break;
     case FAILURE_REASON_ENCODING_FAILED:
       reason_description = "encoding failed";
diff --git a/extensions/browser/api/web_contents_capture_client.cc b/extensions/browser/api/web_contents_capture_client.cc
index 88e0048..11d0c5f 100644
--- a/extensions/browser/api/web_contents_capture_client.cc
+++ b/extensions/browser/api/web_contents_capture_client.cc
@@ -26,7 +26,7 @@
 bool WebContentsCaptureClient::CaptureAsync(
     WebContents* web_contents,
     const ImageDetails* image_details,
-    const content::ReadbackRequestCallback callback) {
+    base::OnceCallback<void(const SkBitmap&)> callback) {
   if (!web_contents)
     return false;
 
@@ -48,7 +48,7 @@
       image_quality_ = *image_details->quality;
   }
 
-  // TODO(miu): Account for fullscreen render widget?  http://crbug.com/419878
+  // TODO(crbug/419878): Account for fullscreen render widget?
   RenderWidgetHostView* const view = web_contents->GetRenderWidgetHostView();
   if (!view) {
     OnCaptureFailure(FAILURE_REASON_VIEW_INVISIBLE);
@@ -56,34 +56,16 @@
   }
   view->CopyFromSurface(gfx::Rect(),  // Copy entire surface area.
                         gfx::Size(),  // Result contains device-level detail.
-                        callback, kN32_SkColorType);
+                        std::move(callback));
   return true;
 }
 
-void WebContentsCaptureClient::CopyFromSurfaceComplete(
-    const SkBitmap& bitmap,
-    content::ReadbackResponse response) {
-  if (response == content::READBACK_SUCCESS) {
+void WebContentsCaptureClient::CopyFromSurfaceComplete(const SkBitmap& bitmap) {
+  if (bitmap.drawsNothing()) {
+    OnCaptureFailure(FAILURE_REASON_READBACK_FAILED);
+  } else {
     OnCaptureSuccess(bitmap);
-    return;
   }
-  // TODO(wjmaclean): Improve error reporting. Why aren't we passing more
-  // information here?
-  std::string reason;
-  switch (response) {
-    case content::READBACK_FAILED:
-      reason = "READBACK_FAILED";
-      break;
-    case content::READBACK_SURFACE_UNAVAILABLE:
-      reason = "READBACK_SURFACE_UNAVAILABLE";
-      break;
-    case content::READBACK_BITMAP_ALLOCATION_FAILURE:
-      reason = "READBACK_BITMAP_ALLOCATION_FAILURE";
-      break;
-    default:
-      reason = "<unknown>";
-  }
-  OnCaptureFailure(FAILURE_REASON_UNKNOWN);
 }
 
 // TODO(wjmaclean) can this be static?
diff --git a/extensions/browser/api/web_contents_capture_client.h b/extensions/browser/api/web_contents_capture_client.h
index d27ed6e..82e5ed4 100644
--- a/extensions/browser/api/web_contents_capture_client.h
+++ b/extensions/browser/api/web_contents_capture_client.h
@@ -6,7 +6,6 @@
 #define EXTENSIONS_BROWSER_API_WEB_CONTENTS_CAPTURE_CLIENT_H_
 
 #include "base/macros.h"
-#include "content/public/browser/readback_types.h"
 #include "extensions/browser/extension_function.h"
 #include "extensions/common/api/extension_types.h"
 
@@ -31,18 +30,17 @@
   virtual bool ClientAllowsTransparency() = 0;
 
   enum FailureReason {
-    FAILURE_REASON_UNKNOWN,
+    FAILURE_REASON_READBACK_FAILED,
     FAILURE_REASON_ENCODING_FAILED,
     FAILURE_REASON_VIEW_INVISIBLE
   };
   bool CaptureAsync(content::WebContents* web_contents,
                     const api::extension_types::ImageDetails* image_detail,
-                    const content::ReadbackRequestCallback callback);
+                    base::OnceCallback<void(const SkBitmap&)> callback);
   bool EncodeBitmap(const SkBitmap& bitmap, std::string* base64_result);
   virtual void OnCaptureFailure(FailureReason reason) = 0;
   virtual void OnCaptureSuccess(const SkBitmap& bitmap) = 0;
-  void CopyFromSurfaceComplete(const SkBitmap& bitmap,
-                               content::ReadbackResponse response);
+  void CopyFromSurfaceComplete(const SkBitmap& bitmap);
 
  private:
   // The format (JPEG vs PNG) of the resulting image.  Set in RunAsync().
diff --git a/extensions/browser/api/web_request/web_request_api.cc b/extensions/browser/api/web_request/web_request_api.cc
index 6a0ff04..eee09e1 100644
--- a/extensions/browser/api/web_request/web_request_api.cc
+++ b/extensions/browser/api/web_request/web_request_api.cc
@@ -31,6 +31,7 @@
 #include "content/public/browser/render_frame_host.h"
 #include "content/public/browser/render_process_host.h"
 #include "content/public/browser/resource_request_info.h"
+#include "content/public/browser/web_contents.h"
 #include "content/public/common/browser_side_navigation_policy.h"
 #include "content/public/common/child_process_host.h"
 #include "content/public/common/resource_type.h"
@@ -430,6 +431,16 @@
   network::mojom::URLLoaderFactoryPtrInfo target_factory_info;
   *factory_request = mojo::MakeRequest(&target_factory_info);
 
+  std::unique_ptr<ExtensionNavigationUIData> navigation_ui_data;
+  if (is_navigation) {
+    int tab_id;
+    int window_id;
+    ExtensionsBrowserClient::Get()->GetTabAndWindowIdForWebContents(
+        content::WebContents::FromRenderFrameHost(frame), &tab_id, &window_id);
+    navigation_ui_data =
+        std::make_unique<ExtensionNavigationUIData>(frame, tab_id, window_id);
+  }
+
   auto proxy = base::MakeRefCounted<WebRequestProxyingURLLoaderFactory>(
       frame->GetProcess()->GetBrowserContext(), info_map_);
   proxies_.emplace(proxy.get(), proxy);
@@ -437,7 +448,7 @@
       BrowserThread::IO, FROM_HERE,
       base::BindOnce(&WebRequestProxyingURLLoaderFactory::StartProxying, proxy,
                      frame->GetProcess()->GetID(), frame->GetRoutingID(),
-                     is_navigation, std::move(proxied_request),
+                     std::move(navigation_ui_data), std::move(proxied_request),
                      std::move(target_factory_info),
                      base::BindOnce(&WebRequestAPI::RemoveProxyThreadSafe,
                                     weak_ptr_factory_.GetWeakPtr(),
diff --git a/extensions/browser/api/web_request/web_request_info.cc b/extensions/browser/api/web_request/web_request_info.cc
index 652f1b7e..e70dc949 100644
--- a/extensions/browser/api/web_request/web_request_info.cc
+++ b/extensions/browser/api/web_request/web_request_info.cc
@@ -168,43 +168,19 @@
   ExtensionNavigationUIData* navigation_ui_data =
       browser_client ? browser_client->GetExtensionNavigationUIData(url_request)
                      : nullptr;
-  if (navigation_ui_data) {
+  if (navigation_ui_data)
     is_browser_side_navigation = true;
-    is_web_view = navigation_ui_data->is_web_view();
-    web_view_instance_id = navigation_ui_data->web_view_instance_id();
-    web_view_rules_registry_id =
-        navigation_ui_data->web_view_rules_registry_id();
 
-    // PlzNavigate: if this request corresponds to a navigation, we always have
-    // FrameData available from the ExtensionNavigationUIData. Use that.
-    frame_data = navigation_ui_data->frame_data();
-  } else if (frame_id >= 0) {
-    // Grab any WebView-related information if relevant.
-    WebViewRendererState::WebViewInfo web_view_info;
-    if (WebViewRendererState::GetInstance()->GetInfo(
-            render_process_id, routing_id, &web_view_info)) {
-      is_web_view = true;
-      web_view_instance_id = web_view_info.instance_id;
-      web_view_rules_registry_id = web_view_info.rules_registry_id;
-      web_view_embedder_process_id = web_view_info.embedder_process_id;
-    }
-
-    // For subresource loads or non-browser-side navigation requests, attempt to
-    // resolve the FrameData immediately anyway using cached information.
-    ExtensionApiFrameIdMap::FrameData data;
-    bool was_cached = ExtensionApiFrameIdMap::Get()->GetCachedFrameDataOnIO(
-        render_process_id, frame_id, &data);
-    if (was_cached)
-      frame_data = data;
-  }
+  InitializeWebViewAndFrameData(navigation_ui_data);
 }
 
-WebRequestInfo::WebRequestInfo(uint64_t request_id,
-                               int render_process_id,
-                               int render_frame_id,
-                               bool is_navigation,
-                               int32_t routing_id,
-                               const network::ResourceRequest& request)
+WebRequestInfo::WebRequestInfo(
+    uint64_t request_id,
+    int render_process_id,
+    int render_frame_id,
+    std::unique_ptr<ExtensionNavigationUIData> navigation_ui_data,
+    int32_t routing_id,
+    const network::ResourceRequest& request)
     : id(request_id),
       url(request.url),
       site_for_cookies(request.site_for_cookies),
@@ -212,7 +188,7 @@
       routing_id(routing_id),
       frame_id(render_frame_id),
       method(request.method),
-      is_browser_side_navigation(is_navigation),
+      is_browser_side_navigation(!!navigation_ui_data),
       initiator(request.request_initiator),
       type(static_cast<content::ResourceType>(request.resource_type)),
       extra_request_headers(request.headers),
@@ -222,10 +198,11 @@
   else
     web_request_type = ToWebRequestResourceType(type.value());
 
+  InitializeWebViewAndFrameData(navigation_ui_data.get());
+
   // TODO(https://crbug.com/721414): For this constructor (i.e. the Network
-  // Service case), we are still missing information for |frame_data|,
-  // |is_async|, |request_body_data|, |is_pac_request|, and all things related
-  // to <webview> requests.
+  // Service case), we are still missing information for |is_async|,
+  // |request_body_data|, and |is_pac_request|.
 }
 
 WebRequestInfo::~WebRequestInfo() = default;
@@ -251,4 +228,33 @@
   response_from_cache = false;
 }
 
+void WebRequestInfo::InitializeWebViewAndFrameData(
+    const ExtensionNavigationUIData* navigation_ui_data) {
+  if (navigation_ui_data) {
+    is_web_view = navigation_ui_data->is_web_view();
+    web_view_instance_id = navigation_ui_data->web_view_instance_id();
+    web_view_rules_registry_id =
+        navigation_ui_data->web_view_rules_registry_id();
+    frame_data = navigation_ui_data->frame_data();
+  } else if (frame_id >= 0) {
+    // Grab any WebView-related information if relevant.
+    WebViewRendererState::WebViewInfo web_view_info;
+    if (WebViewRendererState::GetInstance()->GetInfo(
+            render_process_id, routing_id, &web_view_info)) {
+      is_web_view = true;
+      web_view_instance_id = web_view_info.instance_id;
+      web_view_rules_registry_id = web_view_info.rules_registry_id;
+      web_view_embedder_process_id = web_view_info.embedder_process_id;
+    }
+
+    // For subresource loads we attempt to resolve the FrameData immediately
+    // anyway using cached information.
+    ExtensionApiFrameIdMap::FrameData data;
+    bool was_cached = ExtensionApiFrameIdMap::Get()->GetCachedFrameDataOnIO(
+        render_process_id, frame_id, &data);
+    if (was_cached)
+      frame_data = data;
+  }
+}
+
 }  // namespace extensions
diff --git a/extensions/browser/api/web_request/web_request_info.h b/extensions/browser/api/web_request/web_request_info.h
index 3a1e50b..f66459c 100644
--- a/extensions/browser/api/web_request/web_request_info.h
+++ b/extensions/browser/api/web_request/web_request_info.h
@@ -35,6 +35,8 @@
 
 namespace extensions {
 
+class ExtensionNavigationUIData;
+
 // A URL request representation used by WebRequest API internals. This structure
 // carries information about an in-progress request.
 struct WebRequestInfo {
@@ -66,7 +68,7 @@
   WebRequestInfo(uint64_t request_id,
                  int render_process_id,
                  int render_frame_id,
-                 bool is_navigation,
+                 std::unique_ptr<ExtensionNavigationUIData> navigation_ui_data,
                  int32_t routing_id,
                  const network::ResourceRequest& request);
 
@@ -164,6 +166,9 @@
   std::unique_ptr<Logger> logger;
 
  private:
+  void InitializeWebViewAndFrameData(
+      const ExtensionNavigationUIData* navigation_ui_data);
+
   DISALLOW_COPY_AND_ASSIGN(WebRequestInfo);
 };
 
diff --git a/extensions/browser/api/web_request/web_request_proxying_url_loader_factory.cc b/extensions/browser/api/web_request/web_request_proxying_url_loader_factory.cc
index 4102d03..aed8c02 100644
--- a/extensions/browser/api/web_request/web_request_proxying_url_loader_factory.cc
+++ b/extensions/browser/api/web_request/web_request_proxying_url_loader_factory.cc
@@ -9,6 +9,7 @@
 #include "base/strings/stringprintf.h"
 #include "content/public/browser/browser_thread.h"
 #include "extensions/browser/api/web_request/web_request_api.h"
+#include "extensions/browser/extension_navigation_ui_data.h"
 #include "net/http/http_util.h"
 
 namespace extensions {
@@ -47,9 +48,11 @@
 void WebRequestProxyingURLLoaderFactory::InProgressRequest::Restart() {
   // Derive a new WebRequestInfo value any time |Restart()| is called, because
   // the details in |request_| may have changed e.g. if we've been redirected.
-  info_.emplace(request_id_, factory_->render_process_id_,
-                factory_->render_frame_id_, factory_->is_navigation_,
-                routing_id_, request_);
+  info_.emplace(
+      request_id_, factory_->render_process_id_, factory_->render_frame_id_,
+      factory_->navigation_ui_data_ ? factory_->navigation_ui_data_->DeepCopy()
+                                    : nullptr,
+      routing_id_, request_);
 
   auto continuation =
       base::BindRepeating(&InProgressRequest::ContinueToBeforeSendHeaders,
@@ -412,7 +415,7 @@
 void WebRequestProxyingURLLoaderFactory::StartProxying(
     int render_process_id,
     int render_frame_id,
-    bool is_navigation,
+    std::unique_ptr<ExtensionNavigationUIData> navigation_ui_data,
     network::mojom::URLLoaderFactoryRequest loader_request,
     network::mojom::URLLoaderFactoryPtrInfo target_factory_info,
     base::OnceClosure on_disconnect) {
@@ -421,7 +424,7 @@
   on_disconnect_ = std::move(on_disconnect);
   render_process_id_ = render_process_id;
   render_frame_id_ = render_frame_id;
-  is_navigation_ = is_navigation;
+  navigation_ui_data_ = std::move(navigation_ui_data);
 
   target_factory_.Bind(std::move(target_factory_info));
   target_factory_.set_connection_error_handler(
diff --git a/extensions/browser/api/web_request/web_request_proxying_url_loader_factory.h b/extensions/browser/api/web_request/web_request_proxying_url_loader_factory.h
index a05a43b6..1dc89f5 100644
--- a/extensions/browser/api/web_request/web_request_proxying_url_loader_factory.h
+++ b/extensions/browser/api/web_request/web_request_proxying_url_loader_factory.h
@@ -27,6 +27,7 @@
 
 namespace extensions {
 
+class ExtensionNavigationUIData;
 class InfoMap;
 
 // Owns URLLoaderFactory bindings for WebRequest proxies with the Network
@@ -137,7 +138,7 @@
   void StartProxying(
       int render_process_id,
       int render_frame_id,
-      bool is_navigation,
+      std::unique_ptr<ExtensionNavigationUIData> navigation_ui_data,
       network::mojom::URLLoaderFactoryRequest loader_request,
       network::mojom::URLLoaderFactoryPtrInfo target_factory_info,
       base::OnceClosure on_disconnect);
@@ -167,7 +168,7 @@
   void* const browser_context_;
   int render_process_id_ = -1;
   int render_frame_id_ = -1;
-  bool is_navigation_ = false;
+  std::unique_ptr<ExtensionNavigationUIData> navigation_ui_data_;
   InfoMap* const info_map_;
   mojo::BindingSet<network::mojom::URLLoaderFactory> proxy_bindings_;
   network::mojom::URLLoaderFactoryPtr target_factory_;
diff --git a/extensions/browser/extension_navigation_ui_data.cc b/extensions/browser/extension_navigation_ui_data.cc
index 3ba2052..42836cf 100644
--- a/extensions/browser/extension_navigation_ui_data.cc
+++ b/extensions/browser/extension_navigation_ui_data.cc
@@ -25,6 +25,17 @@
   // FrameData that works both for navigations and subresources loads.
 }
 
+ExtensionNavigationUIData::ExtensionNavigationUIData(
+    content::RenderFrameHost* frame_host,
+    int tab_id,
+    int window_id)
+    : ExtensionNavigationUIData(
+          content::WebContents::FromRenderFrameHost(frame_host),
+          tab_id,
+          window_id,
+          ExtensionApiFrameIdMap::GetFrameId(frame_host),
+          ExtensionApiFrameIdMap::GetParentFrameId(frame_host)) {}
+
 // static
 std::unique_ptr<ExtensionNavigationUIData>
 ExtensionNavigationUIData::CreateForMainFrameNavigation(
diff --git a/extensions/browser/extension_navigation_ui_data.h b/extensions/browser/extension_navigation_ui_data.h
index ff4d214..8998f5e 100644
--- a/extensions/browser/extension_navigation_ui_data.h
+++ b/extensions/browser/extension_navigation_ui_data.h
@@ -24,6 +24,9 @@
   ExtensionNavigationUIData(content::NavigationHandle* navigation_handle,
                             int tab_id,
                             int window_id);
+  ExtensionNavigationUIData(content::RenderFrameHost* frame_host,
+                            int tab_id,
+                            int window_id);
 
   static std::unique_ptr<ExtensionNavigationUIData>
   CreateForMainFrameNavigation(content::WebContents* web_contents,
diff --git a/extensions/browser/extensions_browser_client.cc b/extensions/browser/extensions_browser_client.cc
index 88909c3..557f5c7 100644
--- a/extensions/browser/extensions_browser_client.cc
+++ b/extensions/browser/extensions_browser_client.cc
@@ -52,6 +52,14 @@
   return nullptr;
 }
 
+void ExtensionsBrowserClient::GetTabAndWindowIdForWebContents(
+    content::WebContents* web_contents,
+    int* tab_id,
+    int* window_id) {
+  *tab_id = -1;
+  *window_id = -1;
+}
+
 bool ExtensionsBrowserClient::IsExtensionEnabled(
     const std::string& extension_id,
     content::BrowserContext* context) const {
diff --git a/extensions/browser/extensions_browser_client.h b/extensions/browser/extensions_browser_client.h
index 7b5ff6b..9e8ebb1 100644
--- a/extensions/browser/extensions_browser_client.h
+++ b/extensions/browser/extensions_browser_client.h
@@ -296,6 +296,15 @@
   virtual ExtensionNavigationUIData* GetExtensionNavigationUIData(
       net::URLRequest* request);
 
+  // Retrives the embedder's notion of tab and window ID for a given
+  // WebContents. May return -1 for either or both values if the embedder does
+  // not implement any such concepts. This is used to support the WebRequest API
+  // exposing such numbers to callers.
+  virtual void GetTabAndWindowIdForWebContents(
+      content::WebContents* web_contents,
+      int* tab_id,
+      int* window_id);
+
   // Returns a delegate that provides kiosk mode functionality.
   virtual KioskDelegate* GetKioskDelegate() = 0;
 
diff --git a/extensions/renderer/DEPS b/extensions/renderer/DEPS
index 03c17e3..1e90971 100644
--- a/extensions/renderer/DEPS
+++ b/extensions/renderer/DEPS
@@ -9,7 +9,7 @@
   "+third_party/skia/include/core",
   "+third_party/cld_3",
 
-  "+third_party/WebKit/common/page/page_visibility_state.mojom.h",
+  "+third_party/WebKit/public/mojom/page/page_visibility_state.mojom.h",
   "+third_party/WebKit/public/platform",
   "+third_party/WebKit/public/web",
   "+third_party/zlib/google/compression_utils.h",
diff --git a/extensions/renderer/scoped_web_frame.cc b/extensions/renderer/scoped_web_frame.cc
index 9fb2685..7297658 100644
--- a/extensions/renderer/scoped_web_frame.cc
+++ b/extensions/renderer/scoped_web_frame.cc
@@ -4,7 +4,7 @@
 
 #include "extensions/renderer/scoped_web_frame.h"
 
-#include "third_party/WebKit/common/page/page_visibility_state.mojom.h"
+#include "third_party/WebKit/public/mojom/page/page_visibility_state.mojom.h"
 #include "third_party/WebKit/public/web/WebHeap.h"
 
 namespace extensions {
diff --git a/extensions/shell/browser/shell_speech_recognition_manager_delegate.cc b/extensions/shell/browser/shell_speech_recognition_manager_delegate.cc
index e82a2fa..759d67af 100644
--- a/extensions/shell/browser/shell_speech_recognition_manager_delegate.cc
+++ b/extensions/shell/browser/shell_speech_recognition_manager_delegate.cc
@@ -10,7 +10,6 @@
 #include "content/public/browser/speech_recognition_manager.h"
 #include "content/public/browser/speech_recognition_session_context.h"
 #include "content/public/browser/web_contents.h"
-#include "content/public/common/child_process_host.h"
 #include "extensions/browser/view_type_utils.h"
 
 using content::BrowserThread;
@@ -75,8 +74,7 @@
 
   // Make sure that initiators (extensions/web pages) properly set the
   // |render_process_id| field, which is needed later to retrieve the profile.
-  DCHECK_NE(context.render_process_id,
-            content::ChildProcessHost::kInvalidUniqueID);
+  DCHECK_NE(context.render_process_id, 0);
 
   BrowserThread::PostTask(
       BrowserThread::UI, FROM_HERE,
diff --git a/gin/v8_initializer.cc b/gin/v8_initializer.cc
index 9e0df626..7c1d44ce 100644
--- a/gin/v8_initializer.cc
+++ b/gin/v8_initializer.cc
@@ -70,19 +70,23 @@
     LAZY_INSTANCE_INITIALIZER;
 
 const char kNativesFileName[] = "natives_blob.bin";
-const char kV8ContextSnapshotFileName[] = "v8_context_snapshot.bin";
 
 #if defined(OS_ANDROID)
+const char kV8ContextSnapshotFileName64[] = "v8_context_snapshot_64.bin";
+const char kV8ContextSnapshotFileName32[] = "v8_context_snapshot_32.bin";
 const char kSnapshotFileName64[] = "snapshot_blob_64.bin";
 const char kSnapshotFileName32[] = "snapshot_blob_32.bin";
 
 #if defined(__LP64__)
+#define kV8ContextSnapshotFileName kV8ContextSnapshotFileName64
 #define kSnapshotFileName kSnapshotFileName64
 #else
+#define kV8ContextSnapshotFileName kV8ContextSnapshotFileName32
 #define kSnapshotFileName kSnapshotFileName32
 #endif
 
 #else  // defined(OS_ANDROID)
+const char kV8ContextSnapshotFileName[] = "v8_context_snapshot.bin";
 const char kSnapshotFileName[] = "snapshot_blob.bin";
 #endif  // defined(OS_ANDROID)
 
@@ -380,9 +384,23 @@
 }
 
 // static
-base::FilePath V8Initializer::GetSnapshotFilePath(bool abi_32_bit) {
+base::FilePath V8Initializer::GetSnapshotFilePath(
+    bool abi_32_bit,
+    V8SnapshotFileType snapshot_file_type) {
   base::FilePath path;
-  GetV8FilePath(abi_32_bit ? kSnapshotFileName32 : kSnapshotFileName64, &path);
+  const char* filename = nullptr;
+  switch (snapshot_file_type) {
+    case V8Initializer::V8SnapshotFileType::kDefault:
+      filename = abi_32_bit ? kSnapshotFileName32 : kSnapshotFileName64;
+      break;
+    case V8Initializer::V8SnapshotFileType::kWithAdditionalContext:
+      filename = abi_32_bit ? kV8ContextSnapshotFileName32
+                            : kV8ContextSnapshotFileName64;
+      break;
+  }
+  CHECK(filename);
+
+  GetV8FilePath(filename, &path);
   return path;
 }
 #endif  // defined(OS_ANDROID)
diff --git a/gin/v8_initializer.h b/gin/v8_initializer.h
index e427c21..6f3265b 100644
--- a/gin/v8_initializer.h
+++ b/gin/v8_initializer.h
@@ -67,7 +67,9 @@
 
 #if defined(OS_ANDROID)
   static base::FilePath GetNativesFilePath();
-  static base::FilePath GetSnapshotFilePath(bool abi_32_bit);
+  static base::FilePath GetSnapshotFilePath(
+      bool abi_32_bit,
+      V8SnapshotFileType snapshot_file_type);
 #endif
 
 #endif  // V8_USE_EXTERNAL_STARTUP_DATA
diff --git a/gpu/command_buffer/service/mailbox_manager_unittest.cc b/gpu/command_buffer/service/mailbox_manager_unittest.cc
index fd655203..cd7f6075e 100644
--- a/gpu/command_buffer/service/mailbox_manager_unittest.cc
+++ b/gpu/command_buffer/service/mailbox_manager_unittest.cc
@@ -687,6 +687,68 @@
   DestroyTexture(new_texture);
 }
 
+// Test for crbug.com/816693
+// A: produce texture (without images) into M, B: consume into new_texture
+// B: push updates
+TEST_F(MailboxManagerSyncTest, ProduceTextureNotDefined) {
+  const GLuint kNewTextureId = 1234;
+  InSequence sequence;
+
+  Texture* texture = CreateTexture();
+  const GLsizei levels_needed = TextureManager::ComputeMipMapCount(
+      GL_TEXTURE_2D, kMaxTextureWidth, kMaxTextureHeight, kMaxTextureDepth);
+  SetTarget(texture, GL_TEXTURE_2D, levels_needed);
+  SetParameter(texture, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+  SetParameter(texture, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+  Mailbox name = Mailbox::Generate();
+
+  manager_->ProduceTexture(name, texture);
+
+  // Share
+  manager_->PushTextureUpdates(g_sync_token);
+  EXPECT_CALL(*gl_, GenTextures(1, _))
+      .WillOnce(SetArgPointee<1>(kNewTextureId));
+  SetupUpdateTexParamExpectations(kNewTextureId, GL_LINEAR, GL_LINEAR,
+                                  GL_REPEAT, GL_REPEAT);
+  TextureBase* new_texture = manager2_->ConsumeTexture(name);
+  EXPECT_EQ(kNewTextureId, new_texture->service_id());
+
+  // Change something so that the push recreates the TextureDefinition.
+  SetParameter(static_cast<Texture*>(new_texture), GL_TEXTURE_MIN_FILTER,
+               GL_NEAREST);
+
+  // Synchronize manager2 -> manager
+  manager2_->PushTextureUpdates(g_sync_token);
+  SetupUpdateTexParamExpectations(1, GL_NEAREST, GL_LINEAR, GL_REPEAT,
+                                  GL_REPEAT);
+  manager_->PullTextureUpdates(g_sync_token);
+
+  DestroyTexture(texture);
+  DestroyTexture(new_texture);
+}
+
+TEST_F(MailboxManagerSyncTest, ProduceTextureNotBound) {
+  InSequence sequence;
+
+  Texture* texture = CreateTexture();
+  Mailbox name = Mailbox::Generate();
+
+  manager_->ProduceTexture(name, texture);
+
+  // Share
+  manager_->PushTextureUpdates(g_sync_token);
+
+  // Consume should fail.
+  TextureBase* new_texture = manager2_->ConsumeTexture(name);
+  EXPECT_EQ(nullptr, new_texture);
+
+  // Synchronize manager2 -> manager
+  manager2_->PushTextureUpdates(g_sync_token);
+  manager_->PullTextureUpdates(g_sync_token);
+
+  DestroyTexture(texture);
+}
+
 // TODO: Texture::level_infos_[][].size()
 
 // TODO: unsupported targets and formats
diff --git a/gpu/command_buffer/service/texture_definition.cc b/gpu/command_buffer/service/texture_definition.cc
index 4105482a..231de63f 100644
--- a/gpu/command_buffer/service/texture_definition.cc
+++ b/gpu/command_buffer/service/texture_definition.cc
@@ -319,8 +319,8 @@
       wrap_s_(0),
       wrap_t_(0),
       usage_(0),
-      immutable_(true) {
-}
+      immutable_(true),
+      defined_(false) {}
 
 TextureDefinition::TextureDefinition(
     Texture* texture,
@@ -342,6 +342,7 @@
     DCHECK(image_buffer_.get());
   }
 
+  DCHECK(!texture->face_infos_.empty());
   const Texture::FaceInfo& first_face = texture->face_infos_[0];
   if (image_buffer_.get()) {
     scoped_refptr<gl::GLImage> gl_image(new GLImageSync(
@@ -350,6 +351,7 @@
     texture->SetLevelImage(target_, 0, gl_image.get(), Texture::BOUND);
   }
 
+  DCHECK(!first_face.level_infos.empty());
   const Texture::LevelInfo& level = first_face.level_infos[0];
   level_info_ = LevelInfo(level.target, level.internal_format, level.width,
                           level.height, level.depth, level.border, level.format,
@@ -361,6 +363,8 @@
 TextureDefinition::~TextureDefinition() = default;
 
 Texture* TextureDefinition::CreateTexture() const {
+  if (!target_)
+    return nullptr;
   GLuint texture_id;
   glGenTextures(1, &texture_id);
 
@@ -385,9 +389,9 @@
     }
   }
 
+  texture->face_infos_.resize(1);
+  texture->face_infos_[0].level_infos.resize(1);
   if (defined_) {
-    texture->face_infos_.resize(1);
-    texture->face_infos_[0].level_infos.resize(1);
     texture->SetLevelInfo(level_info_.target, 0,
                           level_info_.internal_format, level_info_.width,
                           level_info_.height, level_info_.depth,
diff --git a/gpu/config/gpu_driver_bug_list.json b/gpu/config/gpu_driver_bug_list.json
index fa40414..be6fc458 100644
--- a/gpu/config/gpu_driver_bug_list.json
+++ b/gpu/config/gpu_driver_bug_list.json
@@ -2782,6 +2782,29 @@
       "features": [
         "max_msaa_sample_count_4"
       ]
+    },
+    {
+      "id": 260,
+      "cr_bugs": [760389],
+      "description": "eglClientWaitSyncKHR with nonzero timeout waits too long",
+      "comment": [
+        "This bug is specific to Samsung S8/S8+ on Android N, but there ",
+        "isn't currently a way to restrict the filter to those devices. The ",
+        "functionality is currently only used for WebVR on Daydream ready ",
+        "devices, and the non-Samsung Daydream devices generally use ",
+        "Android O, so an overbroad match seems acceptable."
+      ],
+      "os": {
+        "type": "android",
+        "version": {
+          "op": "<",
+          "value": "8.0"
+        }
+      },
+      "gl_renderer": "Adreno \\(TM\\) 540",
+      "features": [
+        "dont_use_eglclientwaitsync_with_timeout"
+      ]
     }
   ]
 }
diff --git a/gpu/config/gpu_driver_bug_workaround_type.h b/gpu/config/gpu_driver_bug_workaround_type.h
index 1ec925a..690ad3c 100644
--- a/gpu/config/gpu_driver_bug_workaround_type.h
+++ b/gpu/config/gpu_driver_bug_workaround_type.h
@@ -101,6 +101,8 @@
          dont_initialize_uninitialized_locals)               \
   GPU_OP(DONT_REMOVE_INVARIANT_FOR_FRAGMENT_INPUT,           \
          dont_remove_invariant_for_fragment_input)           \
+  GPU_OP(DONT_USE_EGLCLIENTWAITSYNC_WITH_TIMEOUT,            \
+         dont_use_eglclientwaitsync_with_timeout)            \
   GPU_OP(DONT_USE_LOOPS_TO_INITIALIZE_VARIABLES,             \
          dont_use_loops_to_initialize_variables)             \
   GPU_OP(ETC1_POWER_OF_TWO_ONLY,                             \
diff --git a/headless/lib/browser/DEPS b/headless/lib/browser/DEPS
index 328f550..ed59e19ca 100644
--- a/headless/lib/browser/DEPS
+++ b/headless/lib/browser/DEPS
@@ -8,7 +8,7 @@
   "+storage/browser/quota",
   "+storage/common/quota",
   "+third_party/skia/include",
-  "+third_party/WebKit/common/quota",
+  "+third_party/WebKit/public/mojom/quota",
   "+ui/aura",
   "+ui/compositor",
 ]
diff --git a/headless/lib/browser/headless_quota_permission_context.cc b/headless/lib/browser/headless_quota_permission_context.cc
index 89b0266..6ebbedde 100644
--- a/headless/lib/browser/headless_quota_permission_context.cc
+++ b/headless/lib/browser/headless_quota_permission_context.cc
@@ -4,7 +4,7 @@
 
 #include "headless/lib/browser/headless_quota_permission_context.h"
 
-#include "third_party/WebKit/common/quota/quota_types.mojom.h"
+#include "third_party/WebKit/public/mojom/quota/quota_types.mojom.h"
 
 namespace headless {
 
diff --git a/headless/lib/browser/headless_web_contents_impl.cc b/headless/lib/browser/headless_web_contents_impl.cc
index d111b67..5a82c83 100644
--- a/headless/lib/browser/headless_web_contents_impl.cc
+++ b/headless/lib/browser/headless_web_contents_impl.cc
@@ -647,15 +647,15 @@
 
 void HeadlessWebContentsImpl::PendingFrameReadbackComplete(
     HeadlessWebContentsImpl::PendingFrame* pending_frame,
-    const SkBitmap& bitmap,
-    content::ReadbackResponse response) {
-  TRACE_EVENT2(
-      "headless", "HeadlessWebContentsImpl::PendingFrameReadbackComplete",
-      "sequence_number", pending_frame->sequence_number, "response", response);
-  if (response == content::READBACK_SUCCESS) {
-    pending_frame->bitmap = std::make_unique<SkBitmap>(bitmap);
+    const SkBitmap& bitmap) {
+  TRACE_EVENT2("headless",
+               "HeadlessWebContentsImpl::PendingFrameReadbackComplete",
+               "sequence_number", pending_frame->sequence_number, "success",
+               !bitmap.drawsNothing());
+  if (bitmap.drawsNothing()) {
+    LOG(WARNING) << "Readback from surface failed.";
   } else {
-    LOG(WARNING) << "Readback from surface failed with response " << response;
+    pending_frame->bitmap = std::make_unique<SkBitmap>(bitmap);
   }
 
   pending_frame->wait_for_copy_result = false;
@@ -685,23 +685,27 @@
   auto pending_frame = std::make_unique<PendingFrame>();
   pending_frame->sequence_number = sequence_number;
   pending_frame->callback = frame_finished_callback;
+  // Note: It's important to move |pending_frame| into |pending_frames_| now
+  // since the CopyFromSurface() call below can run its result callback
+  // synchronously on certain platforms/environments.
+  auto* const pending_frame_raw_ptr = pending_frame.get();
+  pending_frames_.emplace_back(std::move(pending_frame));
 
   if (capture_screenshot) {
-    pending_frame->wait_for_copy_result = true;
     content::RenderWidgetHostView* view =
         web_contents()->GetRenderWidgetHostView();
-    if (view) {
+    if (view && view->IsSurfaceAvailableForCopy()) {
+      pending_frame_raw_ptr->wait_for_copy_result = true;
       view->CopyFromSurface(
           gfx::Rect(), gfx::Size(),
-          base::Bind(&HeadlessWebContentsImpl::PendingFrameReadbackComplete,
-                     base::Unretained(this),
-                     base::Unretained(pending_frame.get())),
-          kN32_SkColorType);
+          base::BindOnce(&HeadlessWebContentsImpl::PendingFrameReadbackComplete,
+                         weak_ptr_factory_.GetWeakPtr(),
+                         pending_frame_raw_ptr));
+    } else {
+      LOG(WARNING) << "Surface not ready for screenshot.";
     }
   }
 
-  pending_frames_.push_back(std::move(pending_frame));
-
   ui::Compositor* compositor = browser()->PlatformGetCompositor(this);
   DCHECK(compositor);
 
diff --git a/headless/lib/browser/headless_web_contents_impl.h b/headless/lib/browser/headless_web_contents_impl.h
index 1fa708c4..83478de 100644
--- a/headless/lib/browser/headless_web_contents_impl.h
+++ b/headless/lib/browser/headless_web_contents_impl.h
@@ -13,7 +13,6 @@
 #include "base/observer_list.h"
 #include "components/viz/common/frame_sinks/begin_frame_args.h"
 #include "content/public/browser/devtools_agent_host_observer.h"
-#include "content/public/browser/readback_types.h"
 #include "content/public/browser/render_process_host_observer.h"
 #include "content/public/browser/web_contents_observer.h"
 #include "headless/lib/browser/headless_window_tree_host.h"
@@ -172,8 +171,7 @@
 
   void SendNeedsBeginFramesEvent(content::DevToolsAgentHostClient* client);
   void PendingFrameReadbackComplete(PendingFrame* pending_frame,
-                                    const SkBitmap& bitmap,
-                                    content::ReadbackResponse response);
+                                    const SkBitmap& bitmap);
 
   uint64_t begin_frame_source_id_ = viz::BeginFrameArgs::kManualSourceId;
   uint64_t begin_frame_sequence_number_ =
diff --git a/infra/config/global/cr-buildbucket.cfg b/infra/config/global/cr-buildbucket.cfg
index 5b99e34c4..4d123f3 100644
--- a/infra/config/global/cr-buildbucket.cfg
+++ b/infra/config/global/cr-buildbucket.cfg
@@ -309,7 +309,7 @@
     builders {
       name: "WebKit Mac Builder (dbg)"
       mixins: "webkit-ci"
-      dimensions: "os:Mac-10.13"
+      dimensions: "os:Mac-10.12"
       dimensions: "cpu:x86-64"
       dimensions: "cores:8"
     }
diff --git a/infra/config/global/luci-scheduler.cfg b/infra/config/global/luci-scheduler.cfg
index 63b5c527..8be08b6 100644
--- a/infra/config/global/luci-scheduler.cfg
+++ b/infra/config/global/luci-scheduler.cfg
@@ -53,6 +53,7 @@
   # Linux. Sorted alphabetically.
   triggers: "Cast Linux"
   triggers: "GPU Linux Builder"
+  triggers: "linux-blink-heap-incremental-marking"
   triggers: "Linux Builder (dbg)"
   triggers: "Linux Builder"
 
@@ -61,6 +62,7 @@
   triggers: "WebKit Mac Builder (dbg)"
 
   # Windows. Sorted alphabetically.
+  triggers: "Win Builder"
   triggers: "Win Builder (dbg)"
 }
 
@@ -295,6 +297,27 @@
 }
 
 job {
+  id: "Win Builder"
+  acl_sets: "default"
+  buildbucket: {
+    server: "cr-buildbucket.appspot.com"
+    bucket: "luci.chromium.ci"
+    builder: "Win Builder"
+  }
+}
+
+job {
+  id: "Win7 Tests (1)"
+  # Triggered by "Win Builder"
+  acl_sets: "triggered-by-parent-builders"
+  buildbucket: {
+    server: "cr-buildbucket.appspot.com"
+    bucket: "luci.chromium.ci"
+    builder: "Win7 Tests (1)"
+  }
+}
+
+job {
   id: "Win7 Tests (dbg)(1)"
   # Triggered by "Win Builder (dbg)"
   acl_sets: "triggered-by-parent-builders"
diff --git a/ios/build/bots/chromium.clang/clang_tot_device.json b/ios/build/bots/chromium.clang/clang_tot_device.json
new file mode 100644
index 0000000..f1da2b8d
--- /dev/null
+++ b/ios/build/bots/chromium.clang/clang_tot_device.json
@@ -0,0 +1,124 @@
+{
+  "comments": [
+    "Clang tip-of-tree builder for iOS device."
+  ],
+  "xcode build version": "9C40b",
+  "gn_args": [
+    "is_debug=false",
+    "llvm_force_head_revision=true",
+    "target_os=\"ios\"",
+    "additional_target_cpus=[\"arm\"]",
+    "target_cpu=\"arm64\""
+  ],
+  "additional_compile_targets": [
+    "base_unittests",
+    "boringssl_crypto_tests",
+    "boringssl_ssl_tests",
+    "components_unittests",
+    "crypto_unittests",
+    "gfx_unittests",
+    "google_apis_unittests",
+    "ios_chrome_unittests",
+    "ios_net_unittests",
+    "ios_web_inttests",
+    "ios_web_unittests",
+    "ios_web_view_inttests",
+    "net_unittests",
+    "skia_unittests",
+    "sql_unittests",
+    "ui_base_unittests",
+    "url_unittests"
+  ],
+  "env": {
+    "LLVM_FORCE_HEAD_REVISION": "1"
+  },
+  "configuration": "Release",
+  "sdk": "iphoneos11.2",
+  "tests": [
+    {
+      "app": "base_unittests",
+      "device type": "iPhone 6s",
+      "os": "10.2"
+    },
+    {
+      "app": "boringssl_crypto_tests",
+      "device type": "iPhone 6s",
+      "os": "10.2"
+    },
+    {
+      "app": "boringssl_ssl_tests",
+      "device type": "iPhone 6s",
+      "os": "10.2"
+    },
+    {
+      "app": "components_unittests",
+      "device type": "iPhone 6s",
+      "os": "10.2"
+    },
+    {
+      "app": "crypto_unittests",
+      "device type": "iPhone 6s",
+      "os": "10.2"
+    },
+    {
+      "app": "gfx_unittests",
+      "device type": "iPhone 6s",
+      "os": "10.2"
+    },
+    {
+      "app": "google_apis_unittests",
+      "device type": "iPhone 6s",
+      "os": "10.2"
+    },
+    {
+      "app": "ios_chrome_unittests",
+      "device type": "iPhone 6s",
+      "os": "10.2"
+    },
+    {
+      "app": "ios_net_unittests",
+      "device type": "iPhone 6s",
+      "os": "10.2"
+    },
+    {
+      "app": "ios_web_inttests",
+      "device type": "iPhone 6s",
+      "os": "10.2"
+    },
+    {
+      "app": "ios_web_unittests",
+      "device type": "iPhone 6s",
+      "os": "10.2"
+    },
+    {
+      "app": "ios_web_view_inttests",
+      "device type": "iPhone 6s",
+      "os": "10.2"
+    },
+    {
+      "app": "net_unittests",
+      "device type": "iPhone 6s",
+      "os": "10.2"
+    },
+    {
+      "app": "skia_unittests",
+      "device type": "iPhone 6s",
+      "os": "10.2"
+    },
+    {
+      "app": "sql_unittests",
+      "device type": "iPhone 6s",
+      "os": "10.2"
+    },
+    {
+      "app": "ui_base_unittests",
+      "device type": "iPhone 6s",
+      "os": "10.2"
+    },
+    {
+      "app": "url_unittests",
+      "device type": "iPhone 6s",
+      "os": "10.2"
+    }
+  ]
+}
diff --git a/ios/chrome/app/BUILD.gn b/ios/chrome/app/BUILD.gn
index bd76af8a..942f5857 100644
--- a/ios/chrome/app/BUILD.gn
+++ b/ios/chrome/app/BUILD.gn
@@ -158,7 +158,6 @@
     "//ios/chrome/browser/browser_state",
     "//ios/chrome/browser/browser_state:browser_state_impl",
     "//ios/chrome/browser/browsing_data",
-    "//ios/chrome/browser/browsing_data:browsing_data_internal",
     "//ios/chrome/browser/content_settings",
     "//ios/chrome/browser/crash_report",
     "//ios/chrome/browser/crash_report:crash_report_internal",
diff --git a/ios/chrome/app/main_application_delegate.mm b/ios/chrome/app/main_application_delegate.mm
index 0d52f86..2bb3078 100644
--- a/ios/chrome/app/main_application_delegate.mm
+++ b/ios/chrome/app/main_application_delegate.mm
@@ -253,12 +253,6 @@
          startupInformation:_startupInformation];
 }
 
-#pragma mark - chromeExecuteCommand
-
-- (void)chromeExecuteCommand:(id)sender {
-  [_mainController chromeExecuteCommand:sender];
-}
-
 #pragma mark - Testing methods
 
 - (MainController*)mainController {
diff --git a/ios/chrome/app/main_controller.h b/ios/chrome/app/main_controller.h
index fc8f0a2..51c4cb9 100644
--- a/ios/chrome/app/main_controller.h
+++ b/ios/chrome/app/main_controller.h
@@ -46,11 +46,6 @@
 // to the user preferences.
 @property(nonatomic, weak) MetricsMediator* metricsMediator;
 
-// UIResponder addition to execute a Chrome command.  Overridden in UIWindow to
-// forward the call to the application delegate. The application delegate
-// forwards the call to this class.
-- (void)chromeExecuteCommand:(id)sender;
-
 // Returns whether the tab switcher is active.
 - (BOOL)isTabSwitcherActive;
 
diff --git a/ios/chrome/app/main_controller.mm b/ios/chrome/app/main_controller.mm
index dcae4f2..61cc98f8 100644
--- a/ios/chrome/app/main_controller.mm
+++ b/ios/chrome/app/main_controller.mm
@@ -63,8 +63,9 @@
 #include "ios/chrome/browser/browser_state/chrome_browser_state.h"
 #include "ios/chrome/browser/browser_state/chrome_browser_state_manager.h"
 #include "ios/chrome/browser/browser_state/chrome_browser_state_removal_controller.h"
-#import "ios/chrome/browser/browsing_data/browsing_data_removal_controller.h"
 #include "ios/chrome/browser/browsing_data/browsing_data_remove_mask.h"
+#include "ios/chrome/browser/browsing_data/browsing_data_remover.h"
+#include "ios/chrome/browser/browsing_data/browsing_data_remover_factory.h"
 #include "ios/chrome/browser/chrome_paths.h"
 #include "ios/chrome/browser/chrome_url_constants.h"
 #import "ios/chrome/browser/chrome_url_util.h"
@@ -108,9 +109,6 @@
 #import "ios/chrome/browser/tabs/tab_model_observer.h"
 #import "ios/chrome/browser/ui/authentication/signed_in_accounts_view_controller.h"
 #import "ios/chrome/browser/ui/browser_view_controller.h"
-#import "ios/chrome/browser/ui/commands/UIKit+ChromeExecuteCommand.h"
-#import "ios/chrome/browser/ui/commands/clear_browsing_data_command.h"
-#include "ios/chrome/browser/ui/commands/ios_command_ids.h"
 #import "ios/chrome/browser/ui/commands/open_new_tab_command.h"
 #import "ios/chrome/browser/ui/commands/open_url_command.h"
 #import "ios/chrome/browser/ui/commands/show_signin_command.h"
@@ -245,8 +243,9 @@
 class MainControllerAuthenticationServiceDelegate
     : public AuthenticationServiceDelegate {
  public:
-  explicit MainControllerAuthenticationServiceDelegate(
-      ios::ChromeBrowserState* browser_state);
+  MainControllerAuthenticationServiceDelegate(
+      ios::ChromeBrowserState* browser_state,
+      id<BrowsingDataCommands> dispatcher);
   ~MainControllerAuthenticationServiceDelegate() override;
 
   // AuthenticationServiceDelegate implementation.
@@ -254,36 +253,27 @@
 
  private:
   ios::ChromeBrowserState* browser_state_ = nullptr;
+  __weak id<BrowsingDataCommands> dispatcher_ = nil;
 
   DISALLOW_COPY_AND_ASSIGN(MainControllerAuthenticationServiceDelegate);
 };
 
 MainControllerAuthenticationServiceDelegate::
     MainControllerAuthenticationServiceDelegate(
-        ios::ChromeBrowserState* browser_state)
-    : browser_state_(browser_state) {}
+        ios::ChromeBrowserState* browser_state,
+        id<BrowsingDataCommands> dispatcher)
+    : browser_state_(browser_state), dispatcher_(dispatcher) {}
 
 MainControllerAuthenticationServiceDelegate::
     ~MainControllerAuthenticationServiceDelegate() = default;
 
 void MainControllerAuthenticationServiceDelegate::ClearBrowsingData(
     ProceduralBlock completion) {
-  // TODO(crbug.com/738881): pass a dispatcher here and remove the use
-  // of -chromeExecuteCommands:.
-  const browsing_data::TimePeriod timePeriod =
-      browsing_data::TimePeriod::ALL_TIME;
-  const BrowsingDataRemoveMask removeDataMask =
-      BrowsingDataRemoveMask::REMOVE_ALL;
-
-  ClearBrowsingDataCommand* command =
-      [[ClearBrowsingDataCommand alloc] initWithBrowserState:browser_state_
-                                                        mask:removeDataMask
-                                                  timePeriod:timePeriod
-                                             completionBlock:completion];
-
-  DCHECK([[UIApplication sharedApplication] keyWindow]);
-  UIWindow* mainWindow = [[UIApplication sharedApplication] keyWindow];
-  [mainWindow chromeExecuteCommand:command];
+  [dispatcher_
+      removeBrowsingDataForBrowserState:browser_state_
+                             timePeriod:browsing_data::TimePeriod::ALL_TIME
+                             removeMask:BrowsingDataRemoveMask::REMOVE_ALL
+                        completionBlock:completion];
 }
 
 }  // namespace
@@ -369,9 +359,6 @@
   // Registrar for pref changes notifications to the local state.
   PrefChangeRegistrar _localStatePrefChangeRegistrar;
 
-  // Clears browsing data from ChromeBrowserStates.
-  BrowsingDataRemovalController* _browsingDataRemovalController;
-
   // The class in charge of showing/hiding the memory debugger when the
   // appropriate pref changes.
   MemoryDebuggerManager* _memoryDebuggerManager;
@@ -525,8 +512,6 @@
 - (void)scheduleShowPromo;
 // Crashes the application if requested.
 - (void)crashIfRequested;
-// Returns the BrowsingDataRemovalController. Lazily creates one if necessary.
-- (BrowsingDataRemovalController*)browsingDataRemovalController;
 // Clears incognito data that is specific to iOS and won't be cleared by
 // deleting the browser state.
 - (void)clearIOSSpecificIncognitoData;
@@ -722,7 +707,7 @@
   AuthenticationServiceFactory::CreateAndInitializeForBrowserState(
       _mainBrowserState,
       std::make_unique<MainControllerAuthenticationServiceDelegate>(
-          _mainBrowserState));
+          _mainBrowserState, self));
 
   // Send "Chrome Opened" event to the feature_engagement::Tracker on cold
   // start.
@@ -840,15 +825,12 @@
   DCHECK(_mainBrowserState->HasOffTheRecordChromeBrowserState());
   ios::ChromeBrowserState* otrBrowserState =
       _mainBrowserState->GetOffTheRecordChromeBrowserState();
-  void (^completion)() = ^{
-    [self activateBVCAndMakeCurrentBVCPrimary];
-  };
-  const BrowsingDataRemoveMask mask = BrowsingDataRemoveMask::REMOVE_ALL;
-  [self.browsingDataRemovalController
-      removeBrowsingDataFromBrowserState:otrBrowserState
-                                    mask:mask
-                              timePeriod:browsing_data::TimePeriod::ALL_TIME
-                       completionHandler:completion];
+  [self removeBrowsingDataForBrowserState:otrBrowserState
+                               timePeriod:browsing_data::TimePeriod::ALL_TIME
+                               removeMask:BrowsingDataRemoveMask::REMOVE_ALL
+                          completionBlock:^{
+                            [self activateBVCAndMakeCurrentBVCPrimary];
+                          }];
 }
 
 - (void)deleteIncognitoBrowserState {
@@ -875,24 +857,18 @@
     [_tabSwitcher setOtrTabModel:self.otrTabModel];
 }
 
-- (BrowsingDataRemovalController*)browsingDataRemovalController {
-  if (!_browsingDataRemovalController) {
-    _browsingDataRemovalController =
-        [[BrowsingDataRemovalController alloc] init];
-  }
-  return _browsingDataRemovalController;
-}
-
 - (void)activateBVCAndMakeCurrentBVCPrimary {
   // If there are pending removal operations, the activation will be deferred
-  // until the callback for |removeBrowsingDataFromBrowserState:| is received.
-  if (![self.browsingDataRemovalController
-          hasPendingRemovalOperations:self.currentBrowserState]) {
-    [self.mainBVC setActive:YES];
-    [self.otrBVC setActive:YES];
+  // until the callback is received.
+  BrowsingDataRemover* browsingDataRemover =
+      BrowsingDataRemoverFactory::GetForBrowserStateIfExists(
+          self.currentBrowserState);
+  if (browsingDataRemover && browsingDataRemover->IsRemoving())
+    return;
 
-    [self.currentBVC setPrimary:YES];
-  }
+  [self.mainBVC setActive:YES];
+  [self.otrBVC setActive:YES];
+  [self.currentBVC setPrimary:YES];
 }
 
 #pragma mark - Property implementation.
@@ -1570,23 +1546,6 @@
                      completion:nil];
 }
 
-- (void)prepareForBrowsingDataRemoval {
-  // Disables browsing and purges web views.
-  // Must be called only on the main thread.
-  DCHECK([NSThread isMainThread]);
-  [self.mainBVC setActive:NO];
-  [self.otrBVC setActive:NO];
-}
-
-- (void)browsingDataWasRemoved {
-  // Activates browsing and enables web views.
-  // Must be called only on the main thread.
-  DCHECK([NSThread isMainThread]);
-  [self.mainBVC setActive:YES];
-  [self.otrBVC setActive:YES];
-  [self.currentBVC setPrimary:YES];
-}
-
 #pragma mark - ApplicationSettingsCommands
 
 // TODO(crbug.com/779791) : Remove show settings from MainController.
@@ -1663,33 +1622,7 @@
                                  completion:nil];
 }
 
-#pragma mark - chromeExecuteCommand
-
-- (IBAction)chromeExecuteCommand:(id)sender {
-  NSInteger command = [sender tag];
-
-  switch (command) {
-    case IDC_CLEAR_BROWSING_DATA_IOS: {
-      // Clear both the main browser state and the associated incognito
-      // browser state.
-      ClearBrowsingDataCommand* command =
-          base::mac::ObjCCastStrict<ClearBrowsingDataCommand>(sender);
-      DCHECK(![command browserState]->IsOffTheRecord());
-      [self removeBrowsingDataFromBrowserState:[command browserState]
-                                          mask:[command mask]
-                                    timePeriod:[command timePeriod]
-                             completionHandler:[command completionBlock]];
-      break;
-    }
-    default:
-      // Unknown commands get dropped with a warning.
-      NOTREACHED() << "Unknown command id " << command;
-      LOG(WARNING) << "Unknown command id " << command;
-      break;
-  }
-}
-
-#pragma mark - chromeExecuteCommand helpers
+#pragma mark - ApplicationCommands helpers
 
 - (void)openUrlFromSettings:(OpenUrlCommand*)command {
   DCHECK([command fromChrome]);
@@ -2062,29 +1995,35 @@
   return self.currentBVC;
 }
 
-#pragma mark - Browsing data clearing
+#pragma mark - BrowsingDataCommands
 
-- (void)removeBrowsingDataFromBrowserState:
-            (ios::ChromeBrowserState*)browserState
-                                      mask:(BrowsingDataRemoveMask)mask
-                                timePeriod:(browsing_data::TimePeriod)timePeriod
-                         completionHandler:(ProceduralBlock)completionHandler {
+- (void)removeBrowsingDataForBrowserState:(ios::ChromeBrowserState*)browserState
+                               timePeriod:(browsing_data::TimePeriod)timePeriod
+                               removeMask:(BrowsingDataRemoveMask)removeMask
+                          completionBlock:(ProceduralBlock)completionBlock {
   // TODO(crbug.com/632772): Remove web usage disabling once
   // https://bugs.webkit.org/show_bug.cgi?id=149079 has been fixed.
-  if (IsRemoveDataMaskSet(mask, BrowsingDataRemoveMask::REMOVE_SITE_DATA)) {
-    [self prepareForBrowsingDataRemoval];
+  if (IsRemoveDataMaskSet(removeMask,
+                          BrowsingDataRemoveMask::REMOVE_SITE_DATA)) {
+    // Disables browsing and purges web views.
+    // Must be called only on the main thread.
+    DCHECK([NSThread isMainThread]);
+    [self.mainBVC setActive:NO];
+    [self.otrBVC setActive:NO];
   }
-  ProceduralBlock browsingDataRemoved = ^{
-    [self browsingDataWasRemoved];
-    if (completionHandler) {
-      completionHandler();
-    }
-  };
-  [self.browsingDataRemovalController
-      removeBrowsingDataFromBrowserState:browserState
-                                    mask:mask
-                              timePeriod:timePeriod
-                       completionHandler:browsingDataRemoved];
+
+  BrowsingDataRemoverFactory::GetForBrowserState(browserState)
+      ->Remove(timePeriod, removeMask, base::BindBlockArc(^{
+                 // Activates browsing and enables web views.
+                 // Must be called only on the main thread.
+                 DCHECK([NSThread isMainThread]);
+                 [self.mainBVC setActive:YES];
+                 [self.otrBVC setActive:YES];
+                 [self.currentBVC setPrimary:YES];
+
+                 if (completionBlock)
+                   completionBlock();
+               }));
 }
 
 #pragma mark - Navigation Controllers
diff --git a/ios/chrome/app/main_controller_private.h b/ios/chrome/app/main_controller_private.h
index 9b86db5b..60dd09a 100644
--- a/ios/chrome/app/main_controller_private.h
+++ b/ios/chrome/app/main_controller_private.h
@@ -19,10 +19,6 @@
 @class TabModel;
 @protocol TabSwitcher;
 
-namespace ios {
-class ChromeBrowserState;
-}
-
 // Private methods and protocols that are made visible here for tests.
 @interface MainController ()
 
@@ -32,15 +28,6 @@
 // Presents a promo's navigation controller.
 - (void)showPromo:(UIViewController*)promo;
 
-// Removes browsing data from |browserState| for datatypes in |mask|.
-// |browserState| cannot be null and must not be off the record.
-// |completionHandler| is called when this operation finishes.
-- (void)removeBrowsingDataFromBrowserState:
-            (ios::ChromeBrowserState*)browserState
-                                      mask:(BrowsingDataRemoveMask)mask
-                                timePeriod:(browsing_data::TimePeriod)timePeriod
-                         completionHandler:(ProceduralBlock)completionHandler;
-
 // Dismisses all modal dialogs, excluding the omnibox if |dismissOmnibox| is
 // NO, then call |completion|.
 - (void)dismissModalDialogsWithCompletion:(ProceduralBlock)completion
diff --git a/ios/chrome/browser/autofill/personal_data_manager_factory.cc b/ios/chrome/browser/autofill/personal_data_manager_factory.cc
index 937df0e..e5fa99b 100644
--- a/ios/chrome/browser/autofill/personal_data_manager_factory.cc
+++ b/ios/chrome/browser/autofill/personal_data_manager_factory.cc
@@ -15,8 +15,7 @@
 #include "ios/chrome/browser/application_context.h"
 #include "ios/chrome/browser/browser_state/browser_state_otr_helper.h"
 #include "ios/chrome/browser/browser_state/chrome_browser_state.h"
-#include "ios/chrome/browser/signin/account_tracker_service_factory.h"
-#include "ios/chrome/browser/signin/signin_manager_factory.h"
+#include "ios/chrome/browser/signin/identity_manager_factory.h"
 #include "ios/chrome/browser/web_data_service_factory.h"
 
 namespace autofill {
@@ -37,8 +36,7 @@
     : BrowserStateKeyedServiceFactory(
           "PersonalDataManager",
           BrowserStateDependencyManager::GetInstance()) {
-  DependsOn(ios::AccountTrackerServiceFactory::GetInstance());
-  DependsOn(ios::SigninManagerFactory::GetInstance());
+  DependsOn(IdentityManagerFactory::GetInstance());
   DependsOn(ios::WebDataServiceFactory::GetInstance());
 }
 
@@ -51,14 +49,12 @@
       ios::ChromeBrowserState::FromBrowserState(context);
   std::unique_ptr<PersonalDataManager> service(
       new PersonalDataManager(GetApplicationContext()->GetApplicationLocale()));
-  service->Init(
-      ios::WebDataServiceFactory::GetAutofillWebDataForBrowserState(
-          chrome_browser_state, ServiceAccessType::EXPLICIT_ACCESS),
-      chrome_browser_state->GetPrefs(),
-      ios::AccountTrackerServiceFactory::GetForBrowserState(
-          chrome_browser_state),
-      ios::SigninManagerFactory::GetForBrowserState(chrome_browser_state),
-      chrome_browser_state->IsOffTheRecord());
+  service->Init(ios::WebDataServiceFactory::GetAutofillWebDataForBrowserState(
+                    chrome_browser_state, ServiceAccessType::EXPLICIT_ACCESS),
+                chrome_browser_state->GetPrefs(),
+                IdentityManagerFactory::GetInstance()->GetForBrowserState(
+                    chrome_browser_state),
+                chrome_browser_state->IsOffTheRecord());
   return service;
 }
 
diff --git a/ios/chrome/browser/browsing_data/BUILD.gn b/ios/chrome/browser/browsing_data/BUILD.gn
index b60c79a..c9acda5 100644
--- a/ios/chrome/browser/browsing_data/BUILD.gn
+++ b/ios/chrome/browser/browsing_data/BUILD.gn
@@ -11,11 +11,13 @@
 
 source_set("browsing_data") {
   sources = [
+    "browsing_data_remover.cc",
     "browsing_data_remover.h",
-    "browsing_data_remover_factory.cc",
     "browsing_data_remover_factory.h",
+    "browsing_data_remover_factory.mm",
     "browsing_data_remover_impl.h",
     "browsing_data_remover_impl.mm",
+    "browsing_data_remover_observer.h",
   ]
   deps = [
     "//base",
@@ -68,11 +70,10 @@
   configs += [ "//build/config/compiler:enable_arc" ]
   testonly = true
   sources = [
-    "browsing_data_removal_controller_unittest.mm",
+    "browsing_data_remover_impl_unittest.mm",
   ]
   deps = [
     ":browsing_data",
-    ":browsing_data_internal",
     "//base",
     "//base/test:test_support",
     "//components/browsing_data/core",
@@ -84,6 +85,8 @@
     "//components/sync_preferences",
     "//components/sync_preferences:test_support",
     "//ios/chrome/browser/browser_state:test_support",
+    "//ios/chrome/browser/sessions:serialisation",
+    "//ios/testing:ios_test_support",
     "//ios/web",
     "//ios/web/public/test",
     "//ios/web/public/test/fakes",
@@ -91,25 +94,3 @@
     "//testing/gtest",
   ]
 }
-
-source_set("browsing_data_internal") {
-  configs += [ "//build/config/compiler:enable_arc" ]
-  sources = [
-    "browsing_data_removal_controller.h",
-    "browsing_data_removal_controller.mm",
-  ]
-  deps = [
-    ":browsing_data",
-    "//base",
-    "//components/browsing_data/core",
-    "//components/open_from_clipboard",
-    "//components/signin/ios/browser",
-    "//ios/chrome/browser/browser_state",
-    "//ios/chrome/browser/sessions:serialisation",
-    "//ios/chrome/browser/signin",
-    "//ios/chrome/browser/snapshots",
-    "//ios/web",
-    "//net",
-  ]
-  libs = [ "WebKit.framework" ]
-}
diff --git a/ios/chrome/browser/browsing_data/browsing_data_removal_controller.h b/ios/chrome/browser/browsing_data/browsing_data_removal_controller.h
deleted file mode 100644
index 54f84ca..0000000
--- a/ios/chrome/browser/browsing_data/browsing_data_removal_controller.h
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2015 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 IOS_CHROME_BROWSER_BROWSING_DATA_BROWSING_DATA_REMOVAL_CONTROLLER_H_
-#define IOS_CHROME_BROWSER_BROWSING_DATA_BROWSING_DATA_REMOVAL_CONTROLLER_H_
-
-#import <Foundation/Foundation.h>
-
-#import "base/ios/block_types.h"
-#include "components/browsing_data/core/browsing_data_utils.h"
-#include "ios/chrome/browser/browsing_data/browsing_data_remove_mask.h"
-
-namespace ios {
-class ChromeBrowserState;
-}  // namespace ios
-
-// This class is responsible for removing browsing data associated with a
-// ChromeBrowserState.
-@interface BrowsingDataRemovalController : NSObject
-
-// Removes browsing data from |browserState| for datatypes in |mask|. |mask| is
-// obtained from BrowsingDataRemoveMask. |browserState| cannot be null and must
-// not be off the record.
-- (void)removeBrowsingDataFromBrowserState:
-            (ios::ChromeBrowserState*)browserState
-                                      mask:(BrowsingDataRemoveMask)mask
-                                timePeriod:(browsing_data::TimePeriod)timePeriod
-                         completionHandler:(ProceduralBlock)completionHandler;
-
-// Returns YES if browsing data for |browserState| is still being cleared.
-- (BOOL)hasPendingRemovalOperations:(ios::ChromeBrowserState*)browserState;
-
-@end
-
-#endif  // IOS_CHROME_BROWSER_BROWSING_DATA_BROWSING_DATA_REMOVAL_CONTROLLER_H_
diff --git a/ios/chrome/browser/browsing_data/browsing_data_removal_controller.mm b/ios/chrome/browser/browsing_data/browsing_data_removal_controller.mm
deleted file mode 100644
index 9ea9658..0000000
--- a/ios/chrome/browser/browsing_data/browsing_data_removal_controller.mm
+++ /dev/null
@@ -1,44 +0,0 @@
-// Copyright 2015 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 "ios/chrome/browser/browsing_data/browsing_data_removal_controller.h"
-
-#import <WebKit/WebKit.h>
-
-#include <memory>
-
-#include "base/containers/flat_map.h"
-#include "base/logging.h"
-#import "base/mac/bind_objc_block.h"
-#include "ios/chrome/browser/browsing_data/browsing_data_remove_mask.h"
-#include "ios/chrome/browser/browsing_data/browsing_data_remover.h"
-#include "ios/chrome/browser/browsing_data/browsing_data_remover_factory.h"
-
-#if !defined(__has_feature) || !__has_feature(objc_arc)
-#error "This file requires ARC support."
-#endif
-
-@implementation BrowsingDataRemovalController
-
-- (void)removeBrowsingDataFromBrowserState:
-            (ios::ChromeBrowserState*)browserState
-                                      mask:(BrowsingDataRemoveMask)mask
-                                timePeriod:(browsing_data::TimePeriod)timePeriod
-                         completionHandler:(ProceduralBlock)completionHandler {
-  DCHECK(browserState);
-  BrowsingDataRemoverFactory::GetForBrowserState(browserState)
-      ->Remove(timePeriod, mask, base::BindBlockArc(^{
-                 if (completionHandler)
-                   completionHandler();
-               }));
-}
-
-- (BOOL)hasPendingRemovalOperations:(ios::ChromeBrowserState*)browserState {
-  DCHECK(browserState);
-  BrowsingDataRemover* browsingDataRemover =
-      BrowsingDataRemoverFactory::GetForBrowserStateIfExists(browserState);
-  return browsingDataRemover && browsingDataRemover->IsRemoving();
-}
-
-@end
diff --git a/ios/chrome/browser/browsing_data/browsing_data_removal_controller_unittest.mm b/ios/chrome/browser/browsing_data/browsing_data_removal_controller_unittest.mm
deleted file mode 100644
index fe2226c..0000000
--- a/ios/chrome/browser/browsing_data/browsing_data_removal_controller_unittest.mm
+++ /dev/null
@@ -1,78 +0,0 @@
-// Copyright 2015 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 "ios/chrome/browser/browsing_data/browsing_data_removal_controller.h"
-
-#include <memory>
-
-#include "base/logging.h"
-#include "base/run_loop.h"
-#include "components/open_from_clipboard/clipboard_recent_content.h"
-#include "components/open_from_clipboard/fake_clipboard_recent_content.h"
-#include "ios/chrome/browser/browser_state/test_chrome_browser_state.h"
-#include "ios/web/public/test/test_web_thread_bundle.h"
-#include "testing/gtest/include/gtest/gtest.h"
-#include "testing/platform_test.h"
-
-#if !defined(__has_feature) || !__has_feature(objc_arc)
-#error "This file requires ARC support."
-#endif
-
-class BrowsingDataRemovalControllerTest : public PlatformTest {
- public:
-  BrowsingDataRemovalControllerTest()
-      : browser_state_(TestChromeBrowserState::Builder().Build()) {
-    DCHECK_EQ(ClipboardRecentContent::GetInstance(), nullptr);
-    ClipboardRecentContent::SetInstance(
-        std::make_unique<FakeClipboardRecentContent>());
-  }
-
-  ~BrowsingDataRemovalControllerTest() override {
-    DCHECK_NE(ClipboardRecentContent::GetInstance(), nullptr);
-    ClipboardRecentContent::SetInstance(nullptr);
-  }
-
- protected:
-  web::TestWebThreadBundle thread_bundle_;
-  std::unique_ptr<ios::ChromeBrowserState> browser_state_;
-};
-
-// Tests that
-// -removeBrowsingDataFromBrowserState:mask:timePeriod:completionHandler: can
-// finish performing its operation even when a BrowserState is destroyed.
-TEST_F(BrowsingDataRemovalControllerTest, PerformAfterBrowserStateDestruction) {
-  base::RunLoop run_loop;
-  base::RepeatingClosure quit_run_loop = run_loop.QuitClosure();
-
-  BrowsingDataRemovalController* removal_controller =
-      [[BrowsingDataRemovalController alloc] init];
-
-  __block BOOL block_was_called = NO;
-
-  // Remove everything except for bookmarks and reading list items as there
-  // are no services for TestChromeBrowserState and they CHECK in that case.
-  const BrowsingDataRemoveMask mask =
-      BrowsingDataRemoveMask::REMOVE_SITE_DATA |
-      BrowsingDataRemoveMask::REMOVE_CACHE |
-      BrowsingDataRemoveMask::REMOVE_DOWNLOADS |
-      BrowsingDataRemoveMask::REMOVE_FORM_DATA |
-      BrowsingDataRemoveMask::REMOVE_HISTORY |
-      BrowsingDataRemoveMask::REMOVE_PASSWORDS |
-      BrowsingDataRemoveMask::REMOVE_LAST_USER_ACCOUNT;
-
-  [removal_controller
-      removeBrowsingDataFromBrowserState:browser_state_.get()
-                                    mask:mask
-                              timePeriod:browsing_data::TimePeriod::ALL_TIME
-                       completionHandler:^{
-                         block_was_called = YES;
-                         quit_run_loop.Run();
-                       }];
-
-  // Destroy the BrowserState immediately.
-  browser_state_.reset();
-
-  run_loop.RunUntilIdle();
-  EXPECT_TRUE(block_was_called);
-}
diff --git a/ios/chrome/browser/browsing_data/browsing_data_remover.cc b/ios/chrome/browser/browsing_data/browsing_data_remover.cc
new file mode 100644
index 0000000..e4dba33
--- /dev/null
+++ b/ios/chrome/browser/browsing_data/browsing_data_remover.cc
@@ -0,0 +1,27 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ios/chrome/browser/browsing_data/browsing_data_remover.h"
+
+#include "ios/chrome/browser/browsing_data/browsing_data_remover_observer.h"
+
+BrowsingDataRemover::BrowsingDataRemover() = default;
+
+BrowsingDataRemover::~BrowsingDataRemover() = default;
+
+void BrowsingDataRemover::AddObserver(BrowsingDataRemoverObserver* observer) {
+  observers_.AddObserver(observer);
+}
+
+void BrowsingDataRemover::RemoveObserver(
+    BrowsingDataRemoverObserver* observer) {
+  observers_.RemoveObserver(observer);
+}
+
+void BrowsingDataRemover::NotifyBrowsingDataRemoved(
+    BrowsingDataRemoveMask mask) {
+  for (BrowsingDataRemoverObserver& observer : observers_) {
+    observer.OnBrowsingDataRemoved(this, mask);
+  }
+}
diff --git a/ios/chrome/browser/browsing_data/browsing_data_remover.h b/ios/chrome/browser/browsing_data/browsing_data_remover.h
index e876b6c..4821767 100644
--- a/ios/chrome/browser/browsing_data/browsing_data_remover.h
+++ b/ios/chrome/browser/browsing_data/browsing_data_remover.h
@@ -7,16 +7,19 @@
 
 #include "base/callback.h"
 #include "base/macros.h"
+#include "base/observer_list.h"
 #include "components/browsing_data/core/browsing_data_utils.h"
 #include "components/keyed_service/core/keyed_service.h"
 #include "ios/chrome/browser/browsing_data/browsing_data_remove_mask.h"
 
+class BrowsingDataRemoverObserver;
+
 // BrowsingDataRemover is responsible for removing data related to
 // browsing: history, downloads, cookies, ...
 class BrowsingDataRemover : public KeyedService {
  public:
-  BrowsingDataRemover() = default;
-  ~BrowsingDataRemover() override = default;
+  BrowsingDataRemover();
+  ~BrowsingDataRemover() override;
 
   // Is the service currently in the process of removing data?
   virtual bool IsRemoving() const = 0;
@@ -28,7 +31,18 @@
                       BrowsingDataRemoveMask remove_mask,
                       base::OnceClosure callback) = 0;
 
+  // Adds/removes |observer| from the list of observers notified when data is
+  // removed by BrowsingDataRemover.
+  void AddObserver(BrowsingDataRemoverObserver* observer);
+  void RemoveObserver(BrowsingDataRemoverObserver* observer);
+
+ protected:
+  // Invokes |OnBrowsingDataRemoved| on all registered observers.
+  void NotifyBrowsingDataRemoved(BrowsingDataRemoveMask mask);
+
  private:
+  base::ObserverList<BrowsingDataRemoverObserver, true> observers_;
+
   DISALLOW_COPY_AND_ASSIGN(BrowsingDataRemover);
 };
 
diff --git a/ios/chrome/browser/browsing_data/browsing_data_remover_factory.cc b/ios/chrome/browser/browsing_data/browsing_data_remover_factory.mm
similarity index 86%
rename from ios/chrome/browser/browsing_data/browsing_data_remover_factory.cc
rename to ios/chrome/browser/browsing_data/browsing_data_remover_factory.mm
index ff129d1..0b086051 100644
--- a/ios/chrome/browser/browsing_data/browsing_data_remover_factory.cc
+++ b/ios/chrome/browser/browsing_data/browsing_data_remover_factory.mm
@@ -11,6 +11,11 @@
 #include "ios/chrome/browser/browser_state/browser_state_otr_helper.h"
 #include "ios/chrome/browser/browser_state/chrome_browser_state.h"
 #include "ios/chrome/browser/browsing_data/browsing_data_remover_impl.h"
+#import "ios/chrome/browser/sessions/session_service_ios.h"
+
+#if !defined(__has_feature) || !__has_feature(objc_arc)
+#error "This file requires ARC support."
+#endif
 
 // static
 BrowsingDataRemover* BrowsingDataRemoverFactory::GetForBrowserState(
@@ -43,7 +48,8 @@
     web::BrowserState* context) const {
   ios::ChromeBrowserState* browser_state =
       ios::ChromeBrowserState::FromBrowserState(context);
-  return std::make_unique<BrowsingDataRemoverImpl>(browser_state);
+  return std::make_unique<BrowsingDataRemoverImpl>(
+      browser_state, [SessionServiceIOS sharedService]);
 }
 
 web::BrowserState* BrowsingDataRemoverFactory::GetBrowserStateToUse(
diff --git a/ios/chrome/browser/browsing_data/browsing_data_remover_impl.h b/ios/chrome/browser/browsing_data/browsing_data_remover_impl.h
index 968d741..10afa631 100644
--- a/ios/chrome/browser/browsing_data/browsing_data_remover_impl.h
+++ b/ios/chrome/browser/browsing_data/browsing_data_remover_impl.h
@@ -20,6 +20,8 @@
 #include "ios/chrome/browser/browsing_data/browsing_data_remove_mask.h"
 #include "ios/chrome/browser/browsing_data/browsing_data_remover.h"
 
+@class SessionServiceIOS;
+
 namespace ios {
 class ChromeBrowserState;
 }
@@ -34,7 +36,8 @@
  public:
   // Creates a BrowsingDataRemoverImpl to remove browser data from the
   // specified ChromeBrowserstate. Use Remove to initiate the removal.
-  explicit BrowsingDataRemoverImpl(ios::ChromeBrowserState* browser_state);
+  BrowsingDataRemoverImpl(ios::ChromeBrowserState* browser_state,
+                          SessionServiceIOS* session_service);
   ~BrowsingDataRemoverImpl() override;
 
   // KeyedService implementation.
@@ -108,6 +111,9 @@
   // ChromeBrowserState we're to remove from.
   ios::ChromeBrowserState* browser_state_ = nullptr;
 
+  // SessionService to use (allow injection of a specific instance for testing).
+  SessionServiceIOS* session_service_ = nil;
+
   // Used to delete data from HTTP cache.
   scoped_refptr<net::URLRequestContextGetter> context_getter_;
 
diff --git a/ios/chrome/browser/browsing_data/browsing_data_remover_impl.mm b/ios/chrome/browser/browsing_data/browsing_data_remover_impl.mm
index 8a92a3f..e7b2642 100644
--- a/ios/chrome/browser/browsing_data/browsing_data_remover_impl.mm
+++ b/ios/chrome/browser/browsing_data/browsing_data_remover_impl.mm
@@ -13,10 +13,12 @@
 #include "base/bind_helpers.h"
 #include "base/callback.h"
 #include "base/callback_helpers.h"
+#include "base/files/file_path.h"
 #import "base/ios/block_types.h"
 #include "base/logging.h"
 #include "base/metrics/histogram_macros.h"
 #include "base/metrics/user_metrics.h"
+#include "base/strings/sys_string_conversions.h"
 #include "base/threading/sequenced_task_runner_handle.h"
 #include "components/autofill/core/browser/personal_data_manager.h"
 #include "components/autofill/core/browser/webdata/autofill_webdata_service.h"
@@ -44,7 +46,7 @@
 #include "ios/chrome/browser/reading_list/reading_list_remover_helper.h"
 #include "ios/chrome/browser/search_engines/template_url_service_factory.h"
 #include "ios/chrome/browser/sessions/ios_chrome_tab_restore_service_factory.h"
-#include "ios/chrome/browser/sessions/session_util.h"
+#import "ios/chrome/browser/sessions/session_service_ios.h"
 #include "ios/chrome/browser/signin/account_consistency_service_factory.h"
 #include "ios/chrome/browser/snapshots/snapshots_util.h"
 #include "ios/chrome/browser/ui/external_file_remover.h"
@@ -168,20 +170,32 @@
 BrowsingDataRemoverImpl::RemovalTask::~RemovalTask() = default;
 
 BrowsingDataRemoverImpl::BrowsingDataRemoverImpl(
-    ios::ChromeBrowserState* browser_state)
+    ios::ChromeBrowserState* browser_state,
+    SessionServiceIOS* session_service)
     : browser_state_(browser_state),
+      session_service_(session_service),
       context_getter_(browser_state->GetRequestContext()),
       weak_ptr_factory_(this) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  DCHECK(browser_state);
+  DCHECK(browser_state_);
 }
 
 BrowsingDataRemoverImpl::~BrowsingDataRemoverImpl() {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+  DCHECK(!is_removing_);
+}
+
+void BrowsingDataRemoverImpl::Shutdown() {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+  weak_ptr_factory_.InvalidateWeakPtrs();
+  browser_state_ = nullptr;
+
   if (is_removing_) {
     VLOG(1) << "BrowsingDataRemoverImpl shuts down with "
             << removal_queue_.size() << " pending tasks"
             << (pending_tasks_count_ ? " (including one in progress)" : "");
+
+    SetRemoving(false);
   }
 
   UMA_HISTOGRAM_EXACT_LINEAR("History.ClearBrowsingData.TaskQueueAtShutdown",
@@ -196,19 +210,14 @@
   // add a success flag.
   while (!removal_queue_.empty()) {
     RemovalTask task = std::move(removal_queue_.front());
+    removal_queue_.pop();
+
     if (!task.callback.is_null()) {
       current_task_runner->PostTask(FROM_HERE, std::move(task.callback));
     }
-    removal_queue_.pop();
   }
 }
 
-void BrowsingDataRemoverImpl::Shutdown() {
-  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  weak_ptr_factory_.InvalidateWeakPtrs();
-  browser_state_ = nullptr;
-}
-
 bool BrowsingDataRemoverImpl::IsRemoving() const {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   return is_removing_;
@@ -224,6 +233,7 @@
                                      BrowsingDataRemoveMask mask,
                                      base::OnceClosure callback) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+  DCHECK(browser_state_);
 
   // Should always remove something.
   DCHECK(mask != BrowsingDataRemoveMask::REMOVE_NOTHING);
@@ -285,10 +295,15 @@
   // Note: Before adding any method below, make sure that it can finish clearing
   // browsing data even if |browser_state)| is destroyed after this method call.
 
-  // If deleting history, clear visited links.
   if (IsRemoveDataMaskSet(mask, BrowsingDataRemoveMask::REMOVE_HISTORY)) {
-    session_util::DeleteLastSession(browser_state_,
-                                    CreatePendingTaskCompletionClosure());
+    if (session_service_) {
+      NSString* state_path = base::SysUTF8ToNSString(
+          browser_state_->GetStatePath().AsUTF8Unsafe());
+      [session_service_
+          deleteLastSessionFileInDirectory:state_path
+                                completion:
+                                    CreatePendingTaskCompletionClosure()];
+    }
 
     // Remove the screenshots taken by the system when backgrounding the
     // application. Partial removal based on timePeriod is not required.
@@ -459,7 +474,7 @@
 
   if (IsRemoveDataMaskSet(mask, BrowsingDataRemoveMask::REMOVE_CACHE)) {
     base::RecordAction(base::UserMetricsAction("ClearBrowsingData_Cache"));
-    ClearHttpCache(browser_state_->GetRequestContext(),
+    ClearHttpCache(context_getter_,
                    web::WebThread::GetTaskRunnerForThread(web::WebThread::IO),
                    delete_begin, delete_end,
                    AdaptCallbackForRepeating(
@@ -669,14 +684,21 @@
     account_consistency_service->OnBrowsingDataRemoved();
   }
 
-  // Call the task callback. As this may cause |this| instance to be deleted,
-  // post the task to be executed asynchronously to ensure the object survive
-  // this method call.
   {
     RemovalTask task = std::move(removal_queue_.front());
-    if (!task.callback.is_null())
-      current_task_runner->PostTask(FROM_HERE, std::move(task.callback));
     removal_queue_.pop();
+
+    // Schedule the task to be executed soon. This ensure that the IsRemoving()
+    // value is correct when the callback is invoked.
+    if (!task.callback.is_null()) {
+      current_task_runner->PostTask(FROM_HERE, std::move(task.callback));
+    }
+
+    // Notify the observer that some browsing data has been removed.
+    current_task_runner->PostTask(
+        FROM_HERE,
+        base::BindOnce(&BrowsingDataRemoverImpl::NotifyBrowsingDataRemoved,
+                       GetWeakPtr(), task.mask));
   }
 
   if (removal_queue_.empty()) {
@@ -684,8 +706,7 @@
     return;
   }
 
-  // Yield execution before executing the next removal task. This ensure that
-  // RunNextTask() is not called before the callback has been invoked.
+  // Yield execution before executing the next removal task.
   current_task_runner->PostTask(
       FROM_HERE,
       base::BindOnce(&BrowsingDataRemoverImpl::RunNextTask, GetWeakPtr()));
diff --git a/ios/chrome/browser/browsing_data/browsing_data_remover_impl_unittest.mm b/ios/chrome/browser/browsing_data/browsing_data_remover_impl_unittest.mm
new file mode 100644
index 0000000..fe84a99b
--- /dev/null
+++ b/ios/chrome/browser/browsing_data/browsing_data_remover_impl_unittest.mm
@@ -0,0 +1,163 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#import "ios/chrome/browser/browsing_data/browsing_data_remover_impl.h"
+
+#include <memory>
+
+#include "base/bind_helpers.h"
+#include "base/logging.h"
+#import "base/mac/bind_objc_block.h"
+#include "base/macros.h"
+#include "base/run_loop.h"
+#include "base/scoped_observer.h"
+#include "components/open_from_clipboard/clipboard_recent_content.h"
+#include "components/open_from_clipboard/fake_clipboard_recent_content.h"
+#include "ios/chrome/browser/browser_state/test_chrome_browser_state.h"
+#include "ios/chrome/browser/browsing_data/browsing_data_remover_observer.h"
+#import "ios/chrome/browser/sessions/session_service_ios.h"
+#import "ios/testing/wait_util.h"
+#include "ios/web/public/test/test_web_thread_bundle.h"
+#include "testing/gtest/include/gtest/gtest.h"
+#include "testing/platform_test.h"
+
+#if !defined(__has_feature) || !__has_feature(objc_arc)
+#error "This file requires ARC support."
+#endif
+
+namespace {
+
+// Flags passed when calling Remove(). Clear as much data as possible, avoiding
+// using services that are not created for TestChromeBrowserState.
+constexpr BrowsingDataRemoveMask kRemoveMask =
+    BrowsingDataRemoveMask::REMOVE_APPCACHE |
+    BrowsingDataRemoveMask::REMOVE_CACHE |
+    BrowsingDataRemoveMask::REMOVE_COOKIES |
+    BrowsingDataRemoveMask::REMOVE_FORM_DATA |
+    BrowsingDataRemoveMask::REMOVE_HISTORY |
+    BrowsingDataRemoveMask::REMOVE_INDEXEDDB |
+    BrowsingDataRemoveMask::REMOVE_LOCAL_STORAGE |
+    BrowsingDataRemoveMask::REMOVE_PASSWORDS |
+    BrowsingDataRemoveMask::REMOVE_WEBSQL |
+    BrowsingDataRemoveMask::REMOVE_CHANNEL_IDS |
+    BrowsingDataRemoveMask::REMOVE_CACHE_STORAGE |
+    BrowsingDataRemoveMask::REMOVE_VISITED_LINKS |
+    BrowsingDataRemoveMask::REMOVE_LAST_USER_ACCOUNT;
+
+// Observer used to validate that BrowsingDataRemoverImpl notifies its
+// observers.
+class TestBrowsingDataRemoverObserver : public BrowsingDataRemoverObserver {
+ public:
+  TestBrowsingDataRemoverObserver() = default;
+  ~TestBrowsingDataRemoverObserver() override = default;
+
+  // BrowsingDataRemoverObserver implementation.
+  void OnBrowsingDataRemoved(BrowsingDataRemover* remover,
+                             BrowsingDataRemoveMask mask) override;
+
+  // Returns the |mask| value passed to the last call of OnBrowsingDataRemoved.
+  // Returns BrowsingDataRemoveMask::REMOVE_NOTHING if it has not been called.
+  BrowsingDataRemoveMask last_remove_mask() const { return last_remove_mask_; }
+
+ private:
+  BrowsingDataRemoveMask last_remove_mask_ =
+      BrowsingDataRemoveMask::REMOVE_NOTHING;
+
+  DISALLOW_COPY_AND_ASSIGN(TestBrowsingDataRemoverObserver);
+};
+
+void TestBrowsingDataRemoverObserver::OnBrowsingDataRemoved(
+    BrowsingDataRemover* remover,
+    BrowsingDataRemoveMask mask) {
+  DCHECK(mask != BrowsingDataRemoveMask::REMOVE_NOTHING);
+  last_remove_mask_ = mask;
+}
+
+}  // namespace
+
+class BrowsingDataRemoverImplTest : public PlatformTest {
+ public:
+  BrowsingDataRemoverImplTest()
+      : browser_state_(TestChromeBrowserState::Builder().Build()),
+        browsing_data_remover_(browser_state_.get(), nil) {
+    DCHECK_EQ(ClipboardRecentContent::GetInstance(), nullptr);
+    ClipboardRecentContent::SetInstance(
+        std::make_unique<FakeClipboardRecentContent>());
+  }
+
+  ~BrowsingDataRemoverImplTest() override {
+    DCHECK_NE(ClipboardRecentContent::GetInstance(), nullptr);
+    ClipboardRecentContent::SetInstance(nullptr);
+    browsing_data_remover_.Shutdown();
+  }
+
+ protected:
+  web::TestWebThreadBundle thread_bundle_;
+  std::unique_ptr<ios::ChromeBrowserState> browser_state_;
+  BrowsingDataRemoverImpl browsing_data_remover_;
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(BrowsingDataRemoverImplTest);
+};
+
+// Tests that BrowsingDataRemoverImpl::Remove() invokes the observers.
+TEST_F(BrowsingDataRemoverImplTest, InvokesObservers) {
+  TestBrowsingDataRemoverObserver observer;
+  ASSERT_TRUE(observer.last_remove_mask() != kRemoveMask);
+
+  ScopedObserver<BrowsingDataRemover, BrowsingDataRemoverObserver>
+      scoped_observer(&observer);
+  scoped_observer.Add(&browsing_data_remover_);
+
+  browsing_data_remover_.Remove(browsing_data::TimePeriod::ALL_TIME,
+                                kRemoveMask, base::DoNothing());
+
+  TestBrowsingDataRemoverObserver* observer_ptr = &observer;
+  EXPECT_TRUE(
+      testing::WaitUntilConditionOrTimeout(testing::kWaitForActionTimeout, ^{
+        // Spin the RunLoop as WaitUntilConditionOrTimeout doesn't.
+        base::RunLoop().RunUntilIdle();
+        return observer_ptr->last_remove_mask() == kRemoveMask;
+      }));
+}
+
+// Tests that BrowsingDataRemoverImpl::Remove() can be called multiple times.
+TEST_F(BrowsingDataRemoverImplTest, SerializeRemovals) {
+  __block int remaining_calls = 2;
+  browsing_data_remover_.Remove(browsing_data::TimePeriod::ALL_TIME,
+                                kRemoveMask, base::BindBlockArc(^{
+                                  --remaining_calls;
+                                }));
+  browsing_data_remover_.Remove(browsing_data::TimePeriod::ALL_TIME,
+                                kRemoveMask, base::BindBlockArc(^{
+                                  --remaining_calls;
+                                }));
+
+  EXPECT_TRUE(
+      testing::WaitUntilConditionOrTimeout(testing::kWaitForActionTimeout, ^{
+        // Spin the RunLoop as WaitUntilConditionOrTimeout doesn't.
+        base::RunLoop().RunUntilIdle();
+        return remaining_calls == 0;
+      }));
+}
+
+// Tests that BrowsingDataRemoverImpl::Remove() can finish performing its
+// operation even if the BrowserState is destroyed.
+TEST_F(BrowsingDataRemoverImplTest, PerformAfterBrowserStateDestruction) {
+  __block int remaining_calls = 1;
+  browsing_data_remover_.Remove(browsing_data::TimePeriod::ALL_TIME,
+                                kRemoveMask, base::BindBlockArc(^{
+                                  --remaining_calls;
+                                }));
+
+  // Simulate destruction of BrowserState.
+  browsing_data_remover_.Shutdown();
+
+  EXPECT_TRUE(
+      testing::WaitUntilConditionOrTimeout(testing::kWaitForActionTimeout, ^{
+        // Spin the RunLoop as WaitUntilConditionOrTimeout doesn't.
+        base::RunLoop().RunUntilIdle();
+        return remaining_calls == 0;
+      }));
+}
diff --git a/ios/chrome/browser/browsing_data/browsing_data_remover_observer.h b/ios/chrome/browser/browsing_data/browsing_data_remover_observer.h
new file mode 100644
index 0000000..995a9974
--- /dev/null
+++ b/ios/chrome/browser/browsing_data/browsing_data_remover_observer.h
@@ -0,0 +1,29 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef IOS_CHROME_BROWSER_BROWSING_DATA_BROWSING_DATA_REMOVER_OBSERVER_H_
+#define IOS_CHROME_BROWSER_BROWSING_DATA_BROWSING_DATA_REMOVER_OBSERVER_H_
+
+#include "base/macros.h"
+#include "ios/chrome/browser/browsing_data/browsing_data_remove_mask.h"
+
+class BrowsingDataRemover;
+
+// BrowsingDataRemoverObserver allows for observing browsing data removal
+// by BrowsingDataRemover.
+class BrowsingDataRemoverObserver {
+ public:
+  BrowsingDataRemoverObserver() = default;
+  virtual ~BrowsingDataRemoverObserver() = default;
+
+  // Invoked when data was successfully removed. The |mask| will represent
+  // the type of removed data. See BrowsingDataRemoveMask for details.
+  virtual void OnBrowsingDataRemoved(BrowsingDataRemover* remover,
+                                     BrowsingDataRemoveMask mask) = 0;
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(BrowsingDataRemoverObserver);
+};
+
+#endif  // IOS_CHROME_BROWSER_BROWSING_DATA_BROWSING_DATA_REMOVER_OBSERVER_H_
diff --git a/ios/chrome/browser/download/BUILD.gn b/ios/chrome/browser/download/BUILD.gn
index 8bf6ece..837b8272 100644
--- a/ios/chrome/browser/download/BUILD.gn
+++ b/ios/chrome/browser/download/BUILD.gn
@@ -13,6 +13,8 @@
     "download_manager_tab_helper.h",
     "download_manager_tab_helper.mm",
     "download_manager_tab_helper_delegate.h",
+    "google_drive_app_constants.h",
+    "google_drive_app_constants.mm",
     "pass_kit_mime_type.cc",
     "pass_kit_mime_type.h",
     "pass_kit_tab_helper.h",
@@ -30,7 +32,10 @@
     "//ios/web/public/download",
   ]
 
-  libs = [ "PassKit.framework" ]
+  libs = [
+    "Foundation.framework",
+    "PassKit.framework",
+  ]
 
   configs += [ "//build/config/compiler:enable_arc" ]
 }
diff --git a/ios/chrome/browser/download/google_drive_app_constants.h b/ios/chrome/browser/download/google_drive_app_constants.h
new file mode 100644
index 0000000..4887861
--- /dev/null
+++ b/ios/chrome/browser/download/google_drive_app_constants.h
@@ -0,0 +1,14 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef IOS_CHROME_BROWSER_DOWNLOAD_GOOGLE_DRIVE_APP_CONSTANTS_H_
+#define IOS_CHROME_BROWSER_DOWNLOAD_GOOGLE_DRIVE_APP_CONSTANTS_H_
+
+@class NSString;
+
+// iTunes Store item identifier for Google Drive app. Can be used with
+// StoreKitCoordinator.
+extern NSString* const kGoogleDriveITunesItemIdentifier;
+
+#endif  // IOS_CHROME_BROWSER_DOWNLOAD_GOOGLE_DRIVE_APP_CONSTANTS_H_
diff --git a/ios/chrome/browser/download/google_drive_app_constants.mm b/ios/chrome/browser/download/google_drive_app_constants.mm
new file mode 100644
index 0000000..5db79bd
--- /dev/null
+++ b/ios/chrome/browser/download/google_drive_app_constants.mm
@@ -0,0 +1,13 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#import "ios/chrome/browser/download/google_drive_app_constants.h"
+
+#import <Foundation/Foundation.h>
+
+#if !defined(__has_feature) || !__has_feature(objc_arc)
+#error "This file requires ARC support."
+#endif
+
+NSString* const kGoogleDriveITunesItemIdentifier = @"507874739";
diff --git a/ios/chrome/browser/sessions/session_util.h b/ios/chrome/browser/sessions/session_util.h
index 79934415..44b9108 100644
--- a/ios/chrome/browser/sessions/session_util.h
+++ b/ios/chrome/browser/sessions/session_util.h
@@ -25,12 +25,6 @@
 // Utility method that allows to access the iOS SessionService from C++ code.
 namespace session_util {
 
-// Deletes the file containing the commands for the last session. Finishes the
-// deletion even if |browser_state| is destroyed after this call. |callback| is
-// invoked once the deletion completes.
-void DeleteLastSession(ios::ChromeBrowserState* browser_state,
-                       base::OnceClosure callback);
-
 // Create a WebState initialized with |browser_state| and serialized navigation.
 // The returned WebState has web usage enabled.
 std::unique_ptr<web::WebState> CreateWebStateWithNavigationEntries(
diff --git a/ios/chrome/browser/sessions/session_util.mm b/ios/chrome/browser/sessions/session_util.mm
index c8bb215c..10c8bb70 100644
--- a/ios/chrome/browser/sessions/session_util.mm
+++ b/ios/chrome/browser/sessions/session_util.mm
@@ -21,16 +21,6 @@
 
 namespace session_util {
 
-// Deletes the file containing the commands for the last session.
-void DeleteLastSession(ios::ChromeBrowserState* browser_state,
-                       base::OnceClosure callback) {
-  NSString* state_path =
-      base::SysUTF8ToNSString(browser_state->GetStatePath().AsUTF8Unsafe());
-  [[SessionServiceIOS sharedService]
-      deleteLastSessionFileInDirectory:state_path
-                            completion:std::move(callback)];
-}
-
 std::unique_ptr<web::WebState> CreateWebStateWithNavigationEntries(
     ios::ChromeBrowserState* browser_state,
     int last_committed_item_index,
diff --git a/ios/chrome/browser/tabs/tab.mm b/ios/chrome/browser/tabs/tab.mm
index 2bfc80e9..a16c4b7 100644
--- a/ios/chrome/browser/tabs/tab.mm
+++ b/ios/chrome/browser/tabs/tab.mm
@@ -69,8 +69,6 @@
 #import "ios/chrome/browser/tabs/tab_private.h"
 #include "ios/chrome/browser/translate/chrome_ios_translate_client.h"
 #import "ios/chrome/browser/u2f/u2f_controller.h"
-#import "ios/chrome/browser/ui/commands/generic_chrome_command.h"
-#include "ios/chrome/browser/ui/commands/ios_command_ids.h"
 #import "ios/chrome/browser/ui/commands/open_new_tab_command.h"
 #import "ios/chrome/browser/ui/commands/open_url_command.h"
 #import "ios/chrome/browser/ui/commands/show_signin_command.h"
diff --git a/ios/chrome/browser/ui/BUILD.gn b/ios/chrome/browser/ui/BUILD.gn
index 25092aa..5de7d2a9 100644
--- a/ios/chrome/browser/ui/BUILD.gn
+++ b/ios/chrome/browser/ui/BUILD.gn
@@ -434,7 +434,6 @@
     "//url",
 
     # Fake dependencies to break cycles
-    "//ios/chrome/browser/browsing_data:browsing_data_internal",
     "//ios/chrome/browser/ui/settings",
   ]
   public_deps = [
@@ -443,7 +442,6 @@
     "//ios/chrome/browser/ui/toolbar",
   ]
   allow_circular_includes_from = [
-    "//ios/chrome/browser/browsing_data:browsing_data_internal",
     "//ios/chrome/browser/ui/ntp:ntp_internal",
     "//ios/chrome/browser/ui/overscroll_actions",
     "//ios/chrome/browser/ui/settings",
diff --git a/ios/chrome/browser/ui/authentication/authentication_flow.h b/ios/chrome/browser/ui/authentication/authentication_flow.h
index 26c9b63..9afd8291 100644
--- a/ios/chrome/browser/ui/authentication/authentication_flow.h
+++ b/ios/chrome/browser/ui/authentication/authentication_flow.h
@@ -11,6 +11,7 @@
 #import "ios/chrome/browser/ui/authentication/authentication_flow_performer_delegate.h"
 
 @class AuthenticationFlowPerformer;
+@protocol BrowsingDataCommands;
 @class ChromeIdentity;
 @class UIViewController;
 
@@ -57,6 +58,9 @@
 // Does nothing if the sign in flow is already done.
 - (void)cancelAndDismiss;
 
+// The dispatcher used to clear browsing data.
+@property(nonatomic, weak) id<BrowsingDataCommands> dispatcher;
+
 @end
 
 // Private methods in AuthenticationFlow to test.
diff --git a/ios/chrome/browser/ui/authentication/authentication_flow.mm b/ios/chrome/browser/ui/authentication/authentication_flow.mm
index 57b78cfb..8ad6c6a 100644
--- a/ios/chrome/browser/ui/authentication/authentication_flow.mm
+++ b/ios/chrome/browser/ui/authentication/authentication_flow.mm
@@ -105,6 +105,7 @@
 }
 
 @synthesize handlingError = _handlingError;
+@synthesize dispatcher = _dispatcher;
 
 #pragma mark - Public methods
 
@@ -287,7 +288,7 @@
       return;
 
     case CLEAR_DATA:
-      [_performer clearData:_browserState];
+      [_performer clearData:_browserState dispatcher:_dispatcher];
       return;
 
     case SIGN_IN:
diff --git a/ios/chrome/browser/ui/authentication/authentication_flow_performer.h b/ios/chrome/browser/ui/authentication/authentication_flow_performer.h
index 9b32fb94..8c8facf 100644
--- a/ios/chrome/browser/ui/authentication/authentication_flow_performer.h
+++ b/ios/chrome/browser/ui/authentication/authentication_flow_performer.h
@@ -12,6 +12,7 @@
 #import "base/ios/block_types.h"
 #import "ios/chrome/browser/ui/authentication/authentication_flow_performer_delegate.h"
 
+@protocol BrowsingDataCommands;
 @class ChromeIdentity;
 
 namespace ios {
@@ -61,7 +62,8 @@
 
 // Clears browsing data from |browserState| and sends |didClearData| to the
 // delegate when complete.
-- (void)clearData:(ios::ChromeBrowserState*)browserState;
+- (void)clearData:(ios::ChromeBrowserState*)browserState
+       dispatcher:(id<BrowsingDataCommands>)dispatcher;
 
 // Determines whether the user must decide what to do with |identity|'s browsing
 // data before signing into |browserState|.
diff --git a/ios/chrome/browser/ui/authentication/authentication_flow_performer.mm b/ios/chrome/browser/ui/authentication/authentication_flow_performer.mm
index fdf489d..7b9307a 100644
--- a/ios/chrome/browser/ui/authentication/authentication_flow_performer.mm
+++ b/ios/chrome/browser/ui/authentication/authentication_flow_performer.mm
@@ -30,8 +30,7 @@
 #include "ios/chrome/browser/sync/sync_setup_service_factory.h"
 #include "ios/chrome/browser/ui/alert_coordinator/alert_coordinator.h"
 #import "ios/chrome/browser/ui/authentication/authentication_ui_util.h"
-#import "ios/chrome/browser/ui/commands/UIKit+ChromeExecuteCommand.h"
-#import "ios/chrome/browser/ui/commands/clear_browsing_data_command.h"
+#import "ios/chrome/browser/ui/commands/browsing_data_commands.h"
 #import "ios/chrome/browser/ui/settings/import_data_collection_view_controller.h"
 #import "ios/chrome/browser/ui/settings/settings_navigation_controller.h"
 #include "ios/chrome/grit/ios_chromium_strings.h"
@@ -275,28 +274,18 @@
                  completion:nil];
 }
 
-- (void)clearData:(ios::ChromeBrowserState*)browserState {
+- (void)clearData:(ios::ChromeBrowserState*)browserState
+       dispatcher:(id<BrowsingDataCommands>)dispatcher {
   DCHECK(!AuthenticationServiceFactory::GetForBrowserState(browserState)
               ->GetAuthenticatedUserEmail());
 
-  // TODO(crbug.com/738881): pass a dispatcher here and remove the use
-  // of -chromeExecuteCommands:.
-  const browsing_data::TimePeriod timePeriod =
-      browsing_data::TimePeriod::ALL_TIME;
-  const BrowsingDataRemoveMask removeDataMask =
-      BrowsingDataRemoveMask::REMOVE_ALL;
-
-  ClearBrowsingDataCommand* command = [[ClearBrowsingDataCommand alloc]
-      initWithBrowserState:browserState->GetOriginalChromeBrowserState()
-                      mask:removeDataMask
-                timePeriod:timePeriod
-           completionBlock:^{
-             [_delegate didClearData];
-           }];
-
-  DCHECK([[UIApplication sharedApplication] keyWindow]);
-  UIWindow* mainWindow = [[UIApplication sharedApplication] keyWindow];
-  [mainWindow chromeExecuteCommand:command];
+  [dispatcher
+      removeBrowsingDataForBrowserState:browserState
+                             timePeriod:browsing_data::TimePeriod::ALL_TIME
+                             removeMask:BrowsingDataRemoveMask::REMOVE_ALL
+                        completionBlock:^{
+                          [_delegate didClearData];
+                        }];
 }
 
 - (BOOL)shouldHandleMergeCaseForIdentity:(ChromeIdentity*)identity
diff --git a/ios/chrome/browser/ui/authentication/authentication_flow_unittest.mm b/ios/chrome/browser/ui/authentication/authentication_flow_unittest.mm
index 05b0467b..6d94915 100644
--- a/ios/chrome/browser/ui/authentication/authentication_flow_unittest.mm
+++ b/ios/chrome/browser/ui/authentication/authentication_flow_unittest.mm
@@ -199,7 +199,8 @@
 
   [[[performer_ expect] andDo:^(NSInvocation*) {
     [authentication_flow_ didClearData];
-  }] clearData:browser_state_.get()];
+  }] clearData:browser_state_.get()
+      dispatcher:nil];
 
   [[performer_ expect] signInIdentity:identity1_
                      withHostedDomain:nil
@@ -287,7 +288,8 @@
 
   [[[performer_ expect] andDo:^(NSInvocation*) {
     [authentication_flow_ didClearData];
-  }] clearData:browser_state_.get()];
+  }] clearData:browser_state_.get()
+      dispatcher:nil];
 
   [[performer_ expect] signInIdentity:identity1_
                      withHostedDomain:@"foo.com"
diff --git a/ios/chrome/browser/ui/authentication/chrome_signin_view_controller.mm b/ios/chrome/browser/ui/authentication/chrome_signin_view_controller.mm
index 9124e8e..b6afaab 100644
--- a/ios/chrome/browser/ui/authentication/chrome_signin_view_controller.mm
+++ b/ios/chrome/browser/ui/authentication/chrome_signin_view_controller.mm
@@ -34,6 +34,7 @@
 #include "ios/chrome/browser/ui/authentication/signin_account_selector_view_controller.h"
 #include "ios/chrome/browser/ui/authentication/signin_confirmation_view_controller.h"
 #import "ios/chrome/browser/ui/colors/MDCPalette+CrAdditions.h"
+#import "ios/chrome/browser/ui/commands/application_commands.h"
 #import "ios/chrome/browser/ui/rtl_geometry.h"
 #import "ios/chrome/browser/ui/ui_util.h"
 #import "ios/chrome/browser/ui/uikit_ui_util.h"
@@ -330,6 +331,7 @@
                                        shouldClearData:_shouldClearData
                                       postSignInAction:POST_SIGNIN_ACTION_NONE
                               presentingViewController:self];
+  _authenticationFlow.dispatcher = self.dispatcher;
   __weak ChromeSigninViewController* weakSelf = self;
   [_authenticationFlow startSignInWithCompletion:^(BOOL success) {
     [weakSelf onAccountSigninCompletion:success];
diff --git a/ios/chrome/browser/ui/autofill/chrome_autofill_client_ios.mm b/ios/chrome/browser/ui/autofill/chrome_autofill_client_ios.mm
index d4dd9ed..482096d 100644
--- a/ios/chrome/browser/ui/autofill/chrome_autofill_client_ios.mm
+++ b/ios/chrome/browser/ui/autofill/chrome_autofill_client_ios.mm
@@ -49,7 +49,7 @@
       bridge_(bridge),
       identity_manager_(
           IdentityManagerFactory::GetInstance()->GetForBrowserState(
-              browser_state)),
+              browser_state->GetOriginalChromeBrowserState())),
       identity_provider_(std::move(identity_provider)),
       autofill_web_data_service_(
           ios::WebDataServiceFactory::GetAutofillWebDataForBrowserState(
diff --git a/ios/chrome/browser/ui/bookmarks/bookmarks_egtest.mm b/ios/chrome/browser/ui/bookmarks/bookmarks_egtest.mm
index 1fa6236..c704f38 100644
--- a/ios/chrome/browser/ui/bookmarks/bookmarks_egtest.mm
+++ b/ios/chrome/browser/ui/bookmarks/bookmarks_egtest.mm
@@ -1175,7 +1175,15 @@
 }
 
 // Verify the Open All functionality on multiple url selection.
-- (void)testContextMenuForMultipleURLOpenAll {
+// TODO(crbug.com/816699): Re-enable this test on simulators.
+#if !TARGET_IPHONE_SIMULATOR
+#define MAYBE_testContextMenuForMultipleURLOpenAll \
+  testContextMenuForMultipleURLOpenAll
+#else
+#define MAYBE_testContextMenuForMultipleURLOpenAll \
+  FLAKY_testContextMenuForMultipleURLOpenAll
+#endif
+- (void)MAYBE_testContextMenuForMultipleURLOpenAll {
   [BookmarksTestCase setupStandardBookmarks];
   [BookmarksTestCase openBookmarks];
   [BookmarksTestCase openMobileBookmarks];
@@ -1217,7 +1225,15 @@
 }
 
 // Verify the Open All in Incognito functionality on multiple url selection.
-- (void)testContextMenuForMultipleURLOpenAllInIncognito {
+// TODO(crbug.com/816699): Re-enable this test on simulators.
+#if !TARGET_IPHONE_SIMULATOR
+#define MAYBE_testContextMenuForMultipleURLOpenAllInIncognito \
+  testContextMenuForMultipleURLOpenAllInIncognito
+#else
+#define MAYBE_testContextMenuForMultipleURLOpenAllInIncognito \
+  FLAKY_testContextMenuForMultipleURLOpenAllInIncognito
+#endif
+- (void)MAYBE_testContextMenuForMultipleURLOpenAllInIncognito {
   [BookmarksTestCase setupStandardBookmarks];
   [BookmarksTestCase openBookmarks];
   [BookmarksTestCase openMobileBookmarks];
diff --git a/ios/chrome/browser/ui/browser_view_controller.mm b/ios/chrome/browser/ui/browser_view_controller.mm
index 152fadc..c6af96c 100644
--- a/ios/chrome/browser/ui/browser_view_controller.mm
+++ b/ios/chrome/browser/ui/browser_view_controller.mm
@@ -1007,6 +1007,15 @@
     [_dispatcher
         startDispatchingToTarget:applicationCommandEndpoint
                      forProtocol:@protocol(ApplicationSettingsCommands)];
+    // -startDispatchingToTarget:forProtocol: doesn't pick up protocols the
+    // passed protocol conforms to, so BrowsingDataCommands is explicitly
+    // dispatched to the endpoint as well. Since this is potentially
+    // fragile, DCHECK that it should still work (if the endpoint is nonnull).
+    DCHECK(!applicationCommandEndpoint ||
+           [applicationCommandEndpoint
+               conformsToProtocol:@protocol(BrowsingDataCommands)]);
+    [_dispatcher startDispatchingToTarget:applicationCommandEndpoint
+                              forProtocol:@protocol(BrowsingDataCommands)];
 
     _snackbarCoordinator = [[SnackbarCoordinator alloc] init];
     _snackbarCoordinator.dispatcher = _dispatcher;
diff --git a/ios/chrome/browser/ui/commands/BUILD.gn b/ios/chrome/browser/ui/commands/BUILD.gn
index 3c089f5e3..3541601 100644
--- a/ios/chrome/browser/ui/commands/BUILD.gn
+++ b/ios/chrome/browser/ui/commands/BUILD.gn
@@ -5,20 +5,14 @@
 source_set("commands") {
   configs += [ "//build/config/compiler:enable_arc" ]
   sources = [
-    "UIKit+ChromeExecuteCommand.h",
-    "UIKit+ChromeExecuteCommand.mm",
     "activity_service_commands.h",
     "application_commands.h",
     "browser_commands.h",
-    "clear_browsing_data_command.h",
-    "clear_browsing_data_command.mm",
+    "browsing_data_commands.h",
     "command_dispatcher.h",
     "command_dispatcher.mm",
     "external_search_commands.h",
-    "generic_chrome_command.h",
-    "generic_chrome_command.mm",
     "history_popup_commands.h",
-    "ios_command_ids.h",
     "open_new_tab_command.h",
     "open_new_tab_command.mm",
     "open_url_command.h",
diff --git a/ios/chrome/browser/ui/commands/UIKit+ChromeExecuteCommand.h b/ios/chrome/browser/ui/commands/UIKit+ChromeExecuteCommand.h
deleted file mode 100644
index 50c31f2..0000000
--- a/ios/chrome/browser/ui/commands/UIKit+ChromeExecuteCommand.h
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef IOS_CHROME_BROWSER_UI_COMMANDS_UIKIT_CHROMEEXECUTECOMMAND_H_
-#define IOS_CHROME_BROWSER_UI_COMMANDS_UIKIT_CHROMEEXECUTECOMMAND_H_
-
-#import <UIKit/UIKit.h>
-
-@interface UIResponder (ChromeExecuteCommand)
-// Executes a Chrome command.  |sender| must implement the |-tag| method and
-// return the id of the command to execute.  The default implementation of this
-// method simply forwards the call to the next responder.
-- (IBAction)chromeExecuteCommand:(id)sender;
-@end
-
-@interface UIWindow (ChromeExecuteCommand)
-// UIResponder addition to execute a Chrome command.  Overridden in UIWindow to
-// forward the call to the application's delegate.
-- (void)chromeExecuteCommand:(id)sender;
-@end
-
-#endif  // IOS_CHROME_BROWSER_UI_COMMANDS_UIKIT_CHROMEEXECUTECOMMAND_H_
diff --git a/ios/chrome/browser/ui/commands/UIKit+ChromeExecuteCommand.mm b/ios/chrome/browser/ui/commands/UIKit+ChromeExecuteCommand.mm
deleted file mode 100644
index 93037f8..0000000
--- a/ios/chrome/browser/ui/commands/UIKit+ChromeExecuteCommand.mm
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#import "ios/chrome/browser/ui/commands/UIKit+ChromeExecuteCommand.h"
-
-#if !defined(__has_feature) || !__has_feature(objc_arc)
-#error "This file requires ARC support."
-#endif
-
-@implementation UIResponder (ChromeExecuteCommand)
-
-- (void)chromeExecuteCommand:(id)sender {
-  [[self nextResponder] chromeExecuteCommand:sender];
-}
-
-@end
-
-@implementation UIWindow (ChromeExecuteCommand)
-
-- (void)chromeExecuteCommand:(id)sender {
-  id delegate = [[UIApplication sharedApplication] delegate];
-
-  if ([delegate respondsToSelector:@selector(chromeExecuteCommand:)])
-    [delegate chromeExecuteCommand:sender];
-}
-
-@end
diff --git a/ios/chrome/browser/ui/commands/application_commands.h b/ios/chrome/browser/ui/commands/application_commands.h
index 4ccee03..539f495 100644
--- a/ios/chrome/browser/ui/commands/application_commands.h
+++ b/ios/chrome/browser/ui/commands/application_commands.h
@@ -7,6 +7,8 @@
 
 #import <Foundation/Foundation.h>
 
+#import "ios/chrome/browser/ui/commands/browsing_data_commands.h"
+
 @class OpenNewTabCommand;
 @class OpenUrlCommand;
 @class ShowSigninCommand;
@@ -45,7 +47,9 @@
 // object that implements the methods in this protocol should be able to forward
 // ApplicationSettingsCommands to the settings view controller if necessary.
 
-@protocol ApplicationCommands<NSObject, ApplicationSettingsCommands>
+@protocol ApplicationCommands<NSObject,
+                              ApplicationSettingsCommands,
+                              BrowsingDataCommands>
 
 // Dismisses all modal dialogs.
 - (void)dismissModalDialogs;
@@ -99,12 +103,6 @@
 // Shows the Add Account UI, presenting from |baseViewController|.
 - (void)showAddAccountFromViewController:(UIViewController*)baseViewController;
 
-// Prepares the UI for ClearBrowsingData.
-- (void)prepareForBrowsingDataRemoval;
-
-// Updates the UI once ClearBrowsingData has occured.
-- (void)browsingDataWasRemoved;
-
 @end
 
 #endif  // IOS_CHROME_BROWSER_UI_COMMANDS_APPLICATION_COMMANDS_H_
diff --git a/ios/chrome/browser/ui/commands/browsing_data_commands.h b/ios/chrome/browser/ui/commands/browsing_data_commands.h
new file mode 100644
index 0000000..6c7ae8a89
--- /dev/null
+++ b/ios/chrome/browser/ui/commands/browsing_data_commands.h
@@ -0,0 +1,31 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef IOS_CHROME_BROWSER_UI_COMMANDS_BROWSING_DATA_COMMANDS_H_
+#define IOS_CHROME_BROWSER_UI_COMMANDS_BROWSING_DATA_COMMANDS_H_
+
+#import <Foundation/Foundation.h>
+
+#import "base/ios/block_types.h"
+#import "components/browsing_data/core/browsing_data_utils.h"
+#include "ios/chrome/browser/browsing_data/browsing_data_remove_mask.h"
+
+namespace ios {
+class ChromeBrowserState;
+}
+
+// Protocol for commands that relate to browsing data.
+@protocol BrowsingDataCommands<NSObject>
+
+// Remove browsing data for |browserState| for the |timePeriod|. The type of
+// data to remove is controlled by |removeMask| (see BrowserDataRemoveMask).
+// Once data is removed, |completionBlock| is invoked.
+- (void)removeBrowsingDataForBrowserState:(ios::ChromeBrowserState*)browserState
+                               timePeriod:(browsing_data::TimePeriod)timePeriod
+                               removeMask:(BrowsingDataRemoveMask)removeMask
+                          completionBlock:(ProceduralBlock)completionBlock;
+
+@end
+
+#endif  // IOS_CHROME_BROWSER_UI_COMMANDS_BROWSING_DATA_COMMANDS_H_
diff --git a/ios/chrome/browser/ui/commands/clear_browsing_data_command.h b/ios/chrome/browser/ui/commands/clear_browsing_data_command.h
deleted file mode 100644
index fe8746b..0000000
--- a/ios/chrome/browser/ui/commands/clear_browsing_data_command.h
+++ /dev/null
@@ -1,48 +0,0 @@
-// Copyright 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef IOS_CHROME_BROWSER_UI_COMMANDS_CLEAR_BROWSING_DATA_COMMAND_H_
-#define IOS_CHROME_BROWSER_UI_COMMANDS_CLEAR_BROWSING_DATA_COMMAND_H_
-
-#import <Foundation/Foundation.h>
-
-#import "base/ios/block_types.h"
-#import "components/browsing_data/core/browsing_data_utils.h"
-#include "ios/chrome/browser/browsing_data/browsing_data_remove_mask.h"
-#import "ios/chrome/browser/ui/commands/generic_chrome_command.h"
-
-namespace ios {
-class ChromeBrowserState;
-}
-
-// Command sent to clear the browsing data associated with a browser state.
-@interface ClearBrowsingDataCommand : GenericChromeCommand
-
-// Mark inherited initializer as unavailable to prevent calling it by mistake.
-- (instancetype)initWithTag:(NSInteger)tag NS_UNAVAILABLE;
-
-// Initializes a command intented to clear browsing data for |browserState|
-// that corresponds to removal mask |mask| for the time period |timePeriod|.
-// |completionBlock| will be invoked when the data has been cleared.
-- (instancetype)initWithBrowserState:(ios::ChromeBrowserState*)browserState
-                                mask:(BrowsingDataRemoveMask)mask
-                          timePeriod:(browsing_data::TimePeriod)timePeriod
-                     completionBlock:(ProceduralBlock)completionBlock
-    NS_DESIGNATED_INITIALIZER;
-
-// When executed this command will remove browsing data for this BrowserState.
-@property(nonatomic, readonly) ios::ChromeBrowserState* browserState;
-
-// Removal mask: see BrowsingDataRemover::RemoveDataMask.
-@property(nonatomic, readonly) BrowsingDataRemoveMask mask;
-
-// Time period for which the browsing data will be removed.
-@property(nonatomic, readonly) browsing_data::TimePeriod timePeriod;
-
-// Completion block invoked when the data has been cleared.
-@property(nonatomic, readonly) ProceduralBlock completionBlock;
-
-@end
-
-#endif  // IOS_CHROME_BROWSER_UI_COMMANDS_CLEAR_BROWSING_DATA_COMMAND_H_
diff --git a/ios/chrome/browser/ui/commands/clear_browsing_data_command.mm b/ios/chrome/browser/ui/commands/clear_browsing_data_command.mm
deleted file mode 100644
index bd468f9a..0000000
--- a/ios/chrome/browser/ui/commands/clear_browsing_data_command.mm
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#import "ios/chrome/browser/ui/commands/clear_browsing_data_command.h"
-
-#include "base/logging.h"
-#include "ios/chrome/browser/ui/commands/ios_command_ids.h"
-
-#if !defined(__has_feature) || !__has_feature(objc_arc)
-#error "This file requires ARC support."
-#endif
-
-@implementation ClearBrowsingDataCommand
-
-@synthesize browserState = _browserState;
-@synthesize mask = _mask;
-@synthesize timePeriod = _timePeriod;
-@synthesize completionBlock = _completionBlock;
-
-- (instancetype)initWithBrowserState:(ios::ChromeBrowserState*)browserState
-                                mask:(BrowsingDataRemoveMask)mask
-                          timePeriod:(browsing_data::TimePeriod)timePeriod
-                     completionBlock:(ProceduralBlock)completionBlock {
-  self = [super initWithTag:IDC_CLEAR_BROWSING_DATA_IOS];
-  if (self) {
-    DCHECK(browserState);
-    _browserState = browserState;
-    _mask = mask;
-    _timePeriod = timePeriod;
-    _completionBlock = completionBlock;
-  }
-  return self;
-}
-
-@end
diff --git a/ios/chrome/browser/ui/commands/generic_chrome_command.h b/ios/chrome/browser/ui/commands/generic_chrome_command.h
deleted file mode 100644
index e3b9fe0..0000000
--- a/ios/chrome/browser/ui/commands/generic_chrome_command.h
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef IOS_CHROME_BROWSER_UI_COMMANDS_GENERIC_CHROME_COMMAND_H_
-#define IOS_CHROME_BROWSER_UI_COMMANDS_GENERIC_CHROME_COMMAND_H_
-
-#import <Foundation/Foundation.h>
-
-// Generic command that can be passed to |chromeExecuteCommand|.
-@interface GenericChromeCommand : NSObject
-
-// Command tag.
-@property(nonatomic, assign) NSInteger tag;
-
-// Returns an autoreleased GenericChromeCommand with given |tag|.
-+ (instancetype)commandWithTag:(NSInteger)tag;
-
-// Initializes the GenericChromeCommand with given |tag|.
-- (instancetype)initWithTag:(NSInteger)tag NS_DESIGNATED_INITIALIZER;
-
-// Mark inherited initializer as unavailable to prevent calling it by mistake.
-- (instancetype)init NS_UNAVAILABLE;
-
-// Convenience method to execute this command on the main window.
-- (void)executeOnMainWindow;
-
-@end
-
-#endif  // IOS_CHROME_BROWSER_UI_COMMANDS_GENERIC_CHROME_COMMAND_H_
diff --git a/ios/chrome/browser/ui/commands/generic_chrome_command.mm b/ios/chrome/browser/ui/commands/generic_chrome_command.mm
deleted file mode 100644
index 5096e10..0000000
--- a/ios/chrome/browser/ui/commands/generic_chrome_command.mm
+++ /dev/null
@@ -1,38 +0,0 @@
-// Copyright 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#import "ios/chrome/browser/ui/commands/generic_chrome_command.h"
-
-#import <UIKit/UIKit.h>
-
-#include "base/logging.h"
-#import "ios/chrome/browser/ui/commands/UIKit+ChromeExecuteCommand.h"
-
-#if !defined(__has_feature) || !__has_feature(objc_arc)
-#error "This file requires ARC support."
-#endif
-
-@implementation GenericChromeCommand
-
-@synthesize tag = _tag;
-
-+ (instancetype)commandWithTag:(NSInteger)tag {
-  return [[self alloc] initWithTag:tag];
-}
-
-- (instancetype)initWithTag:(NSInteger)tag {
-  self = [super init];
-  if (self) {
-    _tag = tag;
-  }
-  return self;
-}
-
-- (void)executeOnMainWindow {
-  UIWindow* mainWindow = [[UIApplication sharedApplication] keyWindow];
-  DCHECK(mainWindow);
-  [mainWindow chromeExecuteCommand:self];
-}
-
-@end
diff --git a/ios/chrome/browser/ui/commands/ios_command_ids.h b/ios/chrome/browser/ui/commands/ios_command_ids.h
deleted file mode 100644
index 2e7bee01..0000000
--- a/ios/chrome/browser/ui/commands/ios_command_ids.h
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef IOS_CHROME_BROWSER_UI_COMMANDS_IOS_COMMAND_IDS_H_
-#define IOS_CHROME_BROWSER_UI_COMMANDS_IOS_COMMAND_IDS_H_
-
-// This file lists all the command IDs understood by e.g. the browser.
-// It is used by NIB files.
-
-// NIB files include ID numbers rather than the corresponding #define labels.
-// If you change a given command's number, any NIB files that refer to it will
-// also need to be updated.
-
-// clang-format off
-#define IDC_CLEAR_BROWSING_DATA_IOS                    40924
-// clang-format on
-
-#endif  // IOS_CHROME_BROWSER_UI_COMMANDS_IOS_COMMAND_IDS_H_
diff --git a/ios/chrome/browser/ui/commands/open_new_tab_command.h b/ios/chrome/browser/ui/commands/open_new_tab_command.h
index ebcf8124..b56bd61 100644
--- a/ios/chrome/browser/ui/commands/open_new_tab_command.h
+++ b/ios/chrome/browser/ui/commands/open_new_tab_command.h
@@ -7,18 +7,16 @@
 
 #import <UIKit/UIKit.h>
 
-#import "ios/chrome/browser/ui/commands/generic_chrome_command.h"
-
 // Command sent to open a new tab, optionally including a point (in UIWindow
 // coordinates).
-@interface OpenNewTabCommand : GenericChromeCommand
+@interface OpenNewTabCommand : NSObject
 
 - (instancetype)initWithIncognito:(BOOL)incognito
                       originPoint:(CGPoint)originPoint
     NS_DESIGNATED_INITIALIZER;
 
 // Mark inherited initializer as unavailable to prevent calling it by mistake.
-- (instancetype)initWithTag:(NSInteger)tag NS_UNAVAILABLE;
+- (instancetype)init NS_UNAVAILABLE;
 
 // Convenience initializers
 
diff --git a/ios/chrome/browser/ui/commands/open_new_tab_command.mm b/ios/chrome/browser/ui/commands/open_new_tab_command.mm
index aea8563..a70f748 100644
--- a/ios/chrome/browser/ui/commands/open_new_tab_command.mm
+++ b/ios/chrome/browser/ui/commands/open_new_tab_command.mm
@@ -17,7 +17,7 @@
 
 - (instancetype)initWithIncognito:(BOOL)incognito
                       originPoint:(CGPoint)originPoint {
-  if ((self = [super initWithTag:0])) {
+  if ((self = [super init])) {
     _incognito = incognito;
     _originPoint = originPoint;
     _userInitiated = YES;
diff --git a/ios/chrome/browser/ui/commands/open_url_command.h b/ios/chrome/browser/ui/commands/open_url_command.h
index 8b6803a4..74b149d 100644
--- a/ios/chrome/browser/ui/commands/open_url_command.h
+++ b/ios/chrome/browser/ui/commands/open_url_command.h
@@ -7,7 +7,6 @@
 
 #import <UIKit/UIKit.h>
 
-#import "ios/chrome/browser/ui/commands/generic_chrome_command.h"
 #import "ios/chrome/browser/ui/url_loader.h"
 
 namespace web {
@@ -17,10 +16,10 @@
 class GURL;
 
 // A command to open a new tab.
-@interface OpenUrlCommand : GenericChromeCommand
+@interface OpenUrlCommand : NSObject
 
 // Mark inherited initializer as unavailable to prevent calling it by mistake.
-- (instancetype)initWithTag:(NSInteger)tag NS_UNAVAILABLE;
+- (instancetype)init NS_UNAVAILABLE;
 
 // Initializes a command intended to open a URL as a link from a page.
 - (instancetype)initWithURL:(const GURL&)url
diff --git a/ios/chrome/browser/ui/commands/open_url_command.mm b/ios/chrome/browser/ui/commands/open_url_command.mm
index 52d76c4..aff4db64 100644
--- a/ios/chrome/browser/ui/commands/open_url_command.mm
+++ b/ios/chrome/browser/ui/commands/open_url_command.mm
@@ -22,17 +22,12 @@
 @synthesize fromChrome = _fromChrome;
 @synthesize appendTo = _appendTo;
 
-- (instancetype)initWithTag:(NSInteger)tag {
-  NOTREACHED();
-  return nil;
-}
-
 - (instancetype)initWithURL:(const GURL&)url
                    referrer:(const web::Referrer&)referrer
                 inIncognito:(BOOL)inIncognito
                inBackground:(BOOL)inBackground
                    appendTo:(OpenPosition)appendTo {
-  if ((self = [super initWithTag:0])) {
+  if ((self = [super init])) {
     _url = url;
     _referrer = referrer;
     _inIncognito = inIncognito;
diff --git a/ios/chrome/browser/ui/commands/reading_list_add_command.h b/ios/chrome/browser/ui/commands/reading_list_add_command.h
index bddb597..5ebb244 100644
--- a/ios/chrome/browser/ui/commands/reading_list_add_command.h
+++ b/ios/chrome/browser/ui/commands/reading_list_add_command.h
@@ -7,16 +7,14 @@
 
 #import <Foundation/Foundation.h>
 
-#import "ios/chrome/browser/ui/commands/generic_chrome_command.h"
-
 class GURL;
 
-@interface ReadingListAddCommand : GenericChromeCommand
+@interface ReadingListAddCommand : NSObject
 
 @property(nonatomic, readonly) const GURL& URL;
 @property(copy, nonatomic, readonly) NSString* title;
 
-- (instancetype)initWithTag:(NSInteger)tag NS_UNAVAILABLE;
+- (instancetype)init NS_UNAVAILABLE;
 
 - (instancetype)initWithURL:(const GURL&)URL
                       title:(NSString*)title NS_DESIGNATED_INITIALIZER;
diff --git a/ios/chrome/browser/ui/commands/reading_list_add_command.mm b/ios/chrome/browser/ui/commands/reading_list_add_command.mm
index 182635a..f8790e8 100644
--- a/ios/chrome/browser/ui/commands/reading_list_add_command.mm
+++ b/ios/chrome/browser/ui/commands/reading_list_add_command.mm
@@ -19,16 +19,11 @@
 @synthesize URL = _URL;
 
 - (instancetype)initWithURL:(const GURL&)URL title:(NSString*)title {
-  if (self = [super initWithTag:0]) {
+  if (self = [super init]) {
     _URL = URL;
     _title = title;
   }
   return self;
 }
 
-- (instancetype)initWithTag:(NSInteger)tag {
-  NOTREACHED();
-  return nil;
-}
-
 @end
diff --git a/ios/chrome/browser/ui/commands/show_signin_command.h b/ios/chrome/browser/ui/commands/show_signin_command.h
index 42a8962..72eb658 100644
--- a/ios/chrome/browser/ui/commands/show_signin_command.h
+++ b/ios/chrome/browser/ui/commands/show_signin_command.h
@@ -8,7 +8,6 @@
 #import <Foundation/Foundation.h>
 
 #include "components/signin/core/browser/signin_metrics.h"
-#include "ios/chrome/browser/ui/commands/generic_chrome_command.h"
 
 @class ChromeIdentity;
 
@@ -29,10 +28,10 @@
 };
 
 // A command to perform a sign in operation.
-@interface ShowSigninCommand : GenericChromeCommand
+@interface ShowSigninCommand : NSObject
 
 // Mark inherited initializer as unavailable to prevent calling it by mistake.
-- (instancetype)initWithTag:(NSInteger)tag NS_UNAVAILABLE;
+- (instancetype)init NS_UNAVAILABLE;
 
 // Initializes a command to perform the specified operation with a
 // SigninInteractionController and invoke a possibly-nil callback when finished.
diff --git a/ios/chrome/browser/ui/commands/show_signin_command.mm b/ios/chrome/browser/ui/commands/show_signin_command.mm
index 584846d1..9b363458 100644
--- a/ios/chrome/browser/ui/commands/show_signin_command.mm
+++ b/ios/chrome/browser/ui/commands/show_signin_command.mm
@@ -18,18 +18,13 @@
 @synthesize promoAction = _promoAction;
 @synthesize callback = _callback;
 
-- (instancetype)initWithTag:(NSInteger)tag {
-  NOTREACHED();
-  return nil;
-}
-
 - (instancetype)initWithOperation:(AuthenticationOperation)operation
                          identity:(ChromeIdentity*)identity
                       accessPoint:(signin_metrics::AccessPoint)accessPoint
                       promoAction:(signin_metrics::PromoAction)promoAction
                          callback:
                              (ShowSigninCommandCompletionCallback)callback {
-  if ((self = [super initWithTag:0])) {
+  if ((self = [super init])) {
     DCHECK(operation == AUTHENTICATION_OPERATION_SIGNIN || identity == nil);
     _operation = operation;
     _identity = identity;
diff --git a/ios/chrome/browser/ui/commands/start_voice_search_command.h b/ios/chrome/browser/ui/commands/start_voice_search_command.h
index 3d49385d..e329127f6 100644
--- a/ios/chrome/browser/ui/commands/start_voice_search_command.h
+++ b/ios/chrome/browser/ui/commands/start_voice_search_command.h
@@ -7,18 +7,16 @@
 
 #import <UIKit/UIKit.h>
 
-#import "ios/chrome/browser/ui/commands/generic_chrome_command.h"
-
 // Command sent to start a voice search, optionally including the view from
 // which the voice search present and dismiss animations will occur.
-@interface StartVoiceSearchCommand : GenericChromeCommand
+@interface StartVoiceSearchCommand : NSObject
 
 - (instancetype)initWithOriginView:(UIView*)view NS_DESIGNATED_INITIALIZER;
 
-- (instancetype)initWithTag:(NSInteger)tag NS_UNAVAILABLE;
+- (instancetype)init NS_UNAVAILABLE;
 
 @property(nonatomic, readonly) UIView* originView;
 
 @end
 
-#endif  // IOS_CHROME_BROWSER_UI_COMMANDS_START_VOICE_SEARCH_COMMAND_H_
\ No newline at end of file
+#endif  // IOS_CHROME_BROWSER_UI_COMMANDS_START_VOICE_SEARCH_COMMAND_H_
diff --git a/ios/chrome/browser/ui/commands/start_voice_search_command.mm b/ios/chrome/browser/ui/commands/start_voice_search_command.mm
index b075bdb..02ce5b8 100644
--- a/ios/chrome/browser/ui/commands/start_voice_search_command.mm
+++ b/ios/chrome/browser/ui/commands/start_voice_search_command.mm
@@ -13,10 +13,10 @@
 @synthesize originView = _originView;
 
 - (instancetype)initWithOriginView:(UIView*)originView {
-  if ((self = [super initWithTag:0])) {
+  if ((self = [super init])) {
     _originView = originView;
   }
   return self;
 }
 
-@end
\ No newline at end of file
+@end
diff --git a/ios/chrome/browser/ui/download/BUILD.gn b/ios/chrome/browser/ui/download/BUILD.gn
index 51c1b14..303a970 100644
--- a/ios/chrome/browser/ui/download/BUILD.gn
+++ b/ios/chrome/browser/ui/download/BUILD.gn
@@ -90,6 +90,7 @@
   configs += [ "//build/config/compiler:enable_arc" ]
   testonly = true
   sources = [
+    "download_manager_egtest.mm",
     "pass_kit_egtest.mm",
   ]
 
@@ -105,6 +106,7 @@
     "//ios/chrome/test/earl_grey:test_support",
     "//ios/testing:ios_test_support",
     "//ios/third_party/earl_grey:earl_grey+link",
+    "//ios/web/public",
     "//ui/base",
   ]
   libs = [ "XCTest.framework" ]
diff --git a/ios/chrome/browser/ui/download/download_manager_coordinator.mm b/ios/chrome/browser/ui/download/download_manager_coordinator.mm
index 196fd23..665780e 100644
--- a/ios/chrome/browser/ui/download/download_manager_coordinator.mm
+++ b/ios/chrome/browser/ui/download/download_manager_coordinator.mm
@@ -10,6 +10,8 @@
 #include "base/strings/sys_string_conversions.h"
 #include "components/strings/grit/components_strings.h"
 #import "ios/chrome/browser/download/download_manager_tab_helper.h"
+#import "ios/chrome/browser/download/google_drive_app_constants.h"
+#import "ios/chrome/browser/store_kit/store_kit_coordinator.h"
 #import "ios/chrome/browser/ui/download/download_manager_mediator.h"
 #import "ios/chrome/browser/ui/download/download_manager_view_controller.h"
 #import "ios/chrome/browser/ui/presenters/contained_presenter.h"
@@ -33,6 +35,7 @@
   // View controller for presenting "Open In.." dialog.
   UIDocumentInteractionController* _openInController;
   DownloadManagerMediator _mediator;
+  StoreKitCoordinator* _storeKitCoordinator;
 }
 @end
 
@@ -68,14 +71,17 @@
   _confirmationDialog = nil;
   _mediator.SetDownloadTask(nullptr);
   _downloadTask = nullptr;
+
+  [_storeKitCoordinator stop];
+  _storeKitCoordinator = nil;
 }
 
 #pragma mark - DownloadManagerTabHelperDelegate
 
 - (void)downloadManagerTabHelper:(nonnull DownloadManagerTabHelper*)tabHelper
                didCreateDownload:(nonnull web::DownloadTask*)download
-               webStateIsVisible:(BOOL)vebStateIsVisible {
-  if (!vebStateIsVisible) {
+               webStateIsVisible:(BOOL)webStateIsVisible {
+  if (!webStateIsVisible) {
     // Do nothing if a background Tab requested download UI presentation.
     return;
   }
@@ -157,6 +163,18 @@
                      }];
 }
 
+- (void)installDriveForDownloadManagerViewController:
+    (DownloadManagerViewController*)controller {
+  if (!_storeKitCoordinator) {
+    _storeKitCoordinator = [[StoreKitCoordinator alloc]
+        initWithBaseViewController:self.baseViewController];
+    _storeKitCoordinator.iTunesItemIdentifier =
+        kGoogleDriveITunesItemIdentifier;
+  }
+  [_storeKitCoordinator start];
+  [controller setInstallDriveButtonVisible:NO animated:YES];
+}
+
 - (void)downloadManagerViewControllerDidStartDownload:
     (DownloadManagerViewController*)controller {
   _mediator.StartDowloading();
diff --git a/ios/chrome/browser/ui/download/download_manager_coordinator_unittest.mm b/ios/chrome/browser/ui/download/download_manager_coordinator_unittest.mm
index a00d4a1..d4d6b471 100644
--- a/ios/chrome/browser/ui/download/download_manager_coordinator_unittest.mm
+++ b/ios/chrome/browser/ui/download/download_manager_coordinator_unittest.mm
@@ -4,6 +4,7 @@
 
 #import "ios/chrome/browser/ui/download/download_manager_coordinator.h"
 
+#import <StoreKit/StoreKit.h>
 #import <UIKit/UIKit.h>
 
 #include "base/mac/foundation_util.h"
@@ -27,6 +28,7 @@
 #endif
 
 using testing::WaitUntilConditionOrTimeout;
+using testing::kWaitForUIElementTimeout;
 
 namespace {
 
@@ -276,6 +278,42 @@
   [coordinator_ stop];
 }
 
+// Tests presenting Install Google Drive dialog. Coordinator presents StoreKit
+// dialog and hides Install Google Drive button.
+TEST_F(DownloadManagerCoordinatorTest, InstallDrive) {
+  web::FakeDownloadTask task(GURL(kTestUrl), kTestMimeType);
+  coordinator_.downloadTask = &task;
+  [coordinator_ start];
+
+  EXPECT_EQ(1U, base_view_controller_.childViewControllers.count);
+  DownloadManagerViewController* viewController =
+      base_view_controller_.childViewControllers.firstObject;
+  ASSERT_EQ([DownloadManagerViewController class], [viewController class]);
+
+  // Make Install Google Drive UI visible.
+  [viewController setInstallDriveButtonVisible:YES animated:NO];
+  // The button itself is never hidden, but the superview which contains the
+  // button changes it's alpha.
+  ASSERT_EQ(1.0f, viewController.installDriveButton.superview.alpha);
+
+  [viewController.delegate
+      installDriveForDownloadManagerViewController:viewController];
+
+  // Verify that Store Kit dialog was presented.
+  EXPECT_TRUE(WaitUntilConditionOrTimeout(kWaitForUIElementTimeout, ^{
+    return [base_view_controller_.presentedViewController class] ==
+           [SKStoreProductViewController class];
+  }));
+
+  // Verify that Install Google Drive UI is hidden.
+  EXPECT_TRUE(WaitUntilConditionOrTimeout(kWaitForUIElementTimeout, ^{
+    return viewController.installDriveButton.superview.alpha == 0.0f;
+  }));
+
+  // Stop to avoid holding a dangling pointer to destroyed task.
+  [coordinator_ stop];
+}
+
 // Tests closing view controller while the download is in progress. Coordinator
 // should present the confirmation dialog.
 TEST_F(DownloadManagerCoordinatorTest, CloseInProgressDownload) {
diff --git a/ios/chrome/browser/ui/download/download_manager_egtest.mm b/ios/chrome/browser/ui/download/download_manager_egtest.mm
new file mode 100644
index 0000000..ed1fed7
--- /dev/null
+++ b/ios/chrome/browser/ui/download/download_manager_egtest.mm
@@ -0,0 +1,85 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#import <EarlGrey/EarlGrey.h>
+
+#include "base/test/scoped_feature_list.h"
+#include "ios/chrome/grit/ios_strings.h"
+#import "ios/chrome/test/earl_grey/chrome_earl_grey.h"
+#import "ios/chrome/test/earl_grey/chrome_matchers.h"
+#import "ios/chrome/test/earl_grey/chrome_test_case.h"
+#include "ios/web/public/features.h"
+#include "net/test/embedded_test_server/http_request.h"
+#include "net/test/embedded_test_server/http_response.h"
+
+#if !defined(__has_feature) || !__has_feature(objc_arc)
+#error "This file requires ARC support."
+#endif
+
+using chrome_test_util::ButtonWithAccessibilityLabelId;
+
+namespace {
+
+// Matcher for "Download" button on Download Manager UI.
+id<GREYMatcher> DownloadButton() {
+  return ButtonWithAccessibilityLabelId(IDS_IOS_DOWNLOAD_MANAGER_DOWNLOAD);
+}
+
+// Matcher for "Open In..." button on Download Manager UI.
+id<GREYMatcher> OpenInButton() {
+  return ButtonWithAccessibilityLabelId(IDS_IOS_OPEN_IN);
+}
+
+// Provides downloads landing page and download response.
+std::unique_ptr<net::test_server::HttpResponse> GetResponse(
+    const net::test_server::HttpRequest& request) {
+  auto result = std::make_unique<net::test_server::BasicHttpResponse>();
+  result->set_code(net::HTTP_OK);
+
+  if (request.GetURL().path() == "/") {
+    // Landing page with download links.
+    result->set_content("<a id='download' href='/download'>Download</a>");
+  } else if (request.GetURL().path() == "/download") {
+    // Sucessfully provide download response.
+    result->AddCustomHeader("Content-Type", "application/vnd.test");
+  }
+
+  return result;
+}
+
+}  // namespace
+
+// Tests critical user journeys for Download Manager.
+@interface DownloadManagerEGTest : ChromeTestCase {
+  base::test::ScopedFeatureList _featureList;
+}
+@end
+
+@implementation DownloadManagerEGTest
+
+- (void)setUp {
+  [super setUp];
+
+  _featureList.InitAndEnableFeature(web::features::kNewFileDownload);
+
+  self.testServer->RegisterRequestHandler(base::BindRepeating(&GetResponse));
+  GREYAssertTrue(self.testServer->Start(), @"Test server failed to start.");
+}
+
+// Tests sucessfull download up to the point where "Open in..." button is
+// presented. EarlGreay does not allow testing "Open in..." dialog, because it
+// is run in a separate process.
+- (void)testSucessfullDownload {
+  [ChromeEarlGrey loadURL:self.testServer->GetURL("/")];
+  [ChromeEarlGrey waitForWebViewContainingText:"Download"];
+  [ChromeEarlGrey tapWebViewElementWithID:@"download"];
+
+  [[EarlGrey selectElementWithMatcher:DownloadButton()]
+      performAction:grey_tap()];
+
+  [[EarlGrey selectElementWithMatcher:OpenInButton()]
+      assertWithMatcher:grey_notNil()];
+}
+
+@end
diff --git a/ios/chrome/browser/ui/first_run/static_file_view_controller.mm b/ios/chrome/browser/ui/first_run/static_file_view_controller.mm
index 70e7db6d..4fd1522 100644
--- a/ios/chrome/browser/ui/first_run/static_file_view_controller.mm
+++ b/ios/chrome/browser/ui/first_run/static_file_view_controller.mm
@@ -69,7 +69,11 @@
                                 UIViewAutoresizingFlexibleHeight];
 
   // Loads terms of service into the web view.
-  [_webView loadRequest:[NSURLRequest requestWithURL:_URL]];
+  NSURLRequest* request =
+      [[NSURLRequest alloc] initWithURL:_URL
+                            cachePolicy:NSURLRequestReloadIgnoringLocalCacheData
+                        timeoutInterval:60.0];
+  [_webView loadRequest:request];
   [_webView setBackgroundColor:[UIColor whiteColor]];
   _webView.navigationDelegate = self;
   [self.view addSubview:_webView];
diff --git a/ios/chrome/browser/ui/fullscreen/animated_scoped_fullscreen_disabler.h b/ios/chrome/browser/ui/fullscreen/animated_scoped_fullscreen_disabler.h
index 8da4092..3571be4 100644
--- a/ios/chrome/browser/ui/fullscreen/animated_scoped_fullscreen_disabler.h
+++ b/ios/chrome/browser/ui/fullscreen/animated_scoped_fullscreen_disabler.h
@@ -10,6 +10,7 @@
 
 class FullscreenController;
 class AnimatedScopedFullscreenDisablerObserver;
+@class AnimatedScopedFullscreenDisablerObserverListContainer;
 
 // A helper object that increments FullscrenController's disabled counter for
 // its entire lifetime after calling StartAnimation().  Any UI updates resulting
@@ -29,13 +30,11 @@
   void StartAnimation();
 
  private:
-  // Called when the fullscreen disabling animation has finished.
-  void OnAnimationFinished();
-
   // The FullscreenController being disabled by this object.
   FullscreenController* controller_;
-  // The AnimatedScopedFullscreenDisablerObservers.
-  base::ObserverList<AnimatedScopedFullscreenDisablerObserver> observers_;
+  // A container object for the list of observers.
+  __strong AnimatedScopedFullscreenDisablerObserverListContainer*
+      observer_list_container_;
   // Whether this disabler is contributing to |controller_|'s disabled counter.
   bool disabling_ = false;
 
@@ -51,11 +50,16 @@
   // Called when the fullscreen disabling animation begins and ends.  If
   // AnimatedScopedFullscreenDisabler::StartAnimation() is called and for a
   // FullscreenController that is already disabled, these callbacks will not be
-  // sent.
+  // sent.  If the disabler is destroyed before the animation can finish,
+  // FullscreenDisablingAnimationDidFinish() will not be received.
   virtual void FullscreenDisablingAnimationDidStart(
-      AnimatedScopedFullscreenDisabler* disabler){};
+      AnimatedScopedFullscreenDisabler* disabler) {}
   virtual void FullscreenDisablingAnimationDidFinish(
-      AnimatedScopedFullscreenDisabler* disabler){};
+      AnimatedScopedFullscreenDisabler* disabler) {}
+
+  // Called before the disabler is destructed.
+  virtual void AnimatedFullscreenDisablerDestroyed(
+      AnimatedScopedFullscreenDisabler* disabler) {}
 };
 
 #endif  // IOS_CHROME_BROWSER_UI_FULLSCREEN_ANIMATED_SCOPED_FULLSCREEN_DISABLER_H_
diff --git a/ios/chrome/browser/ui/fullscreen/animated_scoped_fullscreen_disabler.mm b/ios/chrome/browser/ui/fullscreen/animated_scoped_fullscreen_disabler.mm
index 8dfef6bf..cb3758d2 100644
--- a/ios/chrome/browser/ui/fullscreen/animated_scoped_fullscreen_disabler.mm
+++ b/ios/chrome/browser/ui/fullscreen/animated_scoped_fullscreen_disabler.mm
@@ -12,25 +12,103 @@
 #error "This file requires ARC support."
 #endif
 
+#pragma mark - AnimatedScopedFullscreenDisablerObserverListContainer
+
+// An Objective-C container used to store observers.  This is used to allow
+// correct memory management for use in UIView animation blocks.
+@interface AnimatedScopedFullscreenDisablerObserverListContainer : NSObject {
+  // The AnimatedScopedFullscreenDisablerObservers.
+  base::ObserverList<AnimatedScopedFullscreenDisablerObserver> observers_;
+}
+
+// The disabler passed on initialization.
+@property(nonatomic, readonly) AnimatedScopedFullscreenDisabler* disabler;
+
+// Designated initializer for a container containing |disabler|'s observer list.
+- (instancetype)initWithDisabler:(AnimatedScopedFullscreenDisabler*)disabler
+    NS_DESIGNATED_INITIALIZER;
+- (instancetype)init NS_UNAVAILABLE;
+
+// Adds and removes observers.
+- (void)addObserver:(AnimatedScopedFullscreenDisablerObserver*)observer;
+- (void)removeObserver:(AnimatedScopedFullscreenDisablerObserver*)observer;
+
+// Notifies observers when the animation starts and finishes.
+- (void)onAnimationStarted;
+- (void)onAnimationFinished;
+- (void)onDisablerDestroyed;
+
+@end
+
+@implementation AnimatedScopedFullscreenDisablerObserverListContainer
+@synthesize disabler = _disabler;
+
+- (instancetype)initWithDisabler:(AnimatedScopedFullscreenDisabler*)disabler {
+  if (self = [super init]) {
+    _disabler = disabler;
+    DCHECK(_disabler);
+  }
+  return self;
+}
+
+- (const base::ObserverList<AnimatedScopedFullscreenDisablerObserver>&)
+    observers {
+  return observers_;
+}
+
+- (void)addObserver:(AnimatedScopedFullscreenDisablerObserver*)observer {
+  observers_.AddObserver(observer);
+}
+
+- (void)removeObserver:(AnimatedScopedFullscreenDisablerObserver*)observer {
+  observers_.RemoveObserver(observer);
+}
+
+- (void)onAnimationStarted {
+  for (auto& observer : observers_) {
+    observer.FullscreenDisablingAnimationDidStart(_disabler);
+  }
+}
+
+- (void)onAnimationFinished {
+  for (auto& observer : observers_) {
+    observer.FullscreenDisablingAnimationDidFinish(_disabler);
+  }
+}
+
+- (void)onDisablerDestroyed {
+  for (auto& observer : observers_) {
+    observer.AnimatedFullscreenDisablerDestroyed(_disabler);
+  }
+}
+
+@end
+
+#pragma mark - AnimatedScopedFullscreenDisabler
+
 AnimatedScopedFullscreenDisabler::AnimatedScopedFullscreenDisabler(
     FullscreenController* controller)
     : controller_(controller) {
   DCHECK(controller_);
+  observer_list_container_ =
+      [[AnimatedScopedFullscreenDisablerObserverListContainer alloc]
+          initWithDisabler:this];
 }
 
 AnimatedScopedFullscreenDisabler::~AnimatedScopedFullscreenDisabler() {
   if (disabling_)
     controller_->DecrementDisabledCounter();
+  [observer_list_container_ onDisablerDestroyed];
 }
 
 void AnimatedScopedFullscreenDisabler::AddObserver(
     AnimatedScopedFullscreenDisablerObserver* observer) {
-  observers_.AddObserver(observer);
+  [observer_list_container_ addObserver:observer];
 }
 
 void AnimatedScopedFullscreenDisabler::RemoveObserver(
     AnimatedScopedFullscreenDisablerObserver* observer) {
-  observers_.RemoveObserver(observer);
+  [observer_list_container_ removeObserver:observer];
 }
 
 void AnimatedScopedFullscreenDisabler::StartAnimation() {
@@ -43,24 +121,18 @@
   if (controller_->IsEnabled()) {
     // Increment the disabled counter in an animation block if the controller is
     // not already disabled.
-    for (auto& observer : observers_) {
-      observer.FullscreenDisablingAnimationDidStart(this);
-    }
+    [observer_list_container_ onAnimationStarted];
+    __weak AnimatedScopedFullscreenDisablerObserverListContainer*
+        weak_observer_list_container = observer_list_container_;
     [UIView animateWithDuration:ios::material::kDuration1
         animations:^{
           controller_->IncrementDisabledCounter();
         }
         completion:^(BOOL finished) {
-          OnAnimationFinished();
+          [weak_observer_list_container onAnimationFinished];
         }];
   } else {
     // If |controller_| is already disabled, no animation is necessary.
     controller_->IncrementDisabledCounter();
   }
 }
-
-void AnimatedScopedFullscreenDisabler::OnAnimationFinished() {
-  for (auto& observer : observers_) {
-    observer.FullscreenDisablingAnimationDidFinish(this);
-  }
-}
diff --git a/ios/chrome/browser/ui/location_bar/resources/BUILD.gn b/ios/chrome/browser/ui/location_bar/resources/BUILD.gn
new file mode 100644
index 0000000..10a7ce8
--- /dev/null
+++ b/ios/chrome/browser/ui/location_bar/resources/BUILD.gn
@@ -0,0 +1,50 @@
+# Copyright 2018 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//build/config/ios/asset_catalog.gni")
+
+imageset("omnibox_connection_secure") {
+  sources = [
+    "omnibox_connection_secure.imageset/Contents.json",
+    "omnibox_connection_secure.imageset/omnibox_connection_secure.png",
+    "omnibox_connection_secure.imageset/omnibox_connection_secure@2x.png",
+    "omnibox_connection_secure.imageset/omnibox_connection_secure@3x.png",
+  ]
+}
+
+imageset("omnibox_connection_dangerous") {
+  sources = [
+    "omnibox_connection_dangerous.imageset/Contents.json",
+    "omnibox_connection_dangerous.imageset/omnibox_connection_dangerous.png",
+    "omnibox_connection_dangerous.imageset/omnibox_connection_dangerous@2x.png",
+    "omnibox_connection_dangerous.imageset/omnibox_connection_dangerous@3x.png",
+  ]
+}
+
+imageset("omnibox_connection_insecure") {
+  sources = [
+    "omnibox_connection_insecure.imageset/Contents.json",
+    "omnibox_connection_insecure.imageset/omnibox_connection_insecure.png",
+    "omnibox_connection_insecure.imageset/omnibox_connection_insecure@2x.png",
+    "omnibox_connection_insecure.imageset/omnibox_connection_insecure@3x.png",
+  ]
+}
+
+imageset("omnibox_connection_offline") {
+  sources = [
+    "omnibox_connection_offline.imageset/Contents.json",
+    "omnibox_connection_offline.imageset/omnibox_connection_offline.png",
+    "omnibox_connection_offline.imageset/omnibox_connection_offline@2x.png",
+    "omnibox_connection_offline.imageset/omnibox_connection_offline@3x.png",
+  ]
+}
+
+imageset("omnibox_voice") {
+  sources = [
+    "omnibox_voice.imageset/Contents.json",
+    "omnibox_voice.imageset/omnibox_voice.png",
+    "omnibox_voice.imageset/omnibox_voice@2x.png",
+    "omnibox_voice.imageset/omnibox_voice@3x.png",
+  ]
+}
diff --git a/ios/chrome/browser/ui/location_bar/resources/omnibox_connection_dangerous.imageset/Contents.json b/ios/chrome/browser/ui/location_bar/resources/omnibox_connection_dangerous.imageset/Contents.json
new file mode 100644
index 0000000..c084256
--- /dev/null
+++ b/ios/chrome/browser/ui/location_bar/resources/omnibox_connection_dangerous.imageset/Contents.json
@@ -0,0 +1,23 @@
+{
+    "images": [
+        {
+            "idiom": "universal",
+            "scale": "1x",
+            "filename": "omnibox_connection_dangerous.png"
+        },
+        {
+            "idiom": "universal",
+            "scale": "2x",
+            "filename": "omnibox_connection_dangerous@2x.png"
+        },
+        {
+            "idiom": "universal",
+            "scale": "3x",
+            "filename": "omnibox_connection_dangerous@3x.png"
+        }
+    ],
+    "info": {
+        "version": 1,
+        "author": "xcode"
+    }
+}
diff --git a/ios/chrome/browser/ui/location_bar/resources/omnibox_connection_dangerous.imageset/omnibox_connection_dangerous.png b/ios/chrome/browser/ui/location_bar/resources/omnibox_connection_dangerous.imageset/omnibox_connection_dangerous.png
new file mode 100644
index 0000000..5da48fe
--- /dev/null
+++ b/ios/chrome/browser/ui/location_bar/resources/omnibox_connection_dangerous.imageset/omnibox_connection_dangerous.png
Binary files differ
diff --git a/ios/chrome/browser/ui/location_bar/resources/omnibox_connection_dangerous.imageset/omnibox_connection_dangerous@2x.png b/ios/chrome/browser/ui/location_bar/resources/omnibox_connection_dangerous.imageset/omnibox_connection_dangerous@2x.png
new file mode 100644
index 0000000..cd3a5e9
--- /dev/null
+++ b/ios/chrome/browser/ui/location_bar/resources/omnibox_connection_dangerous.imageset/omnibox_connection_dangerous@2x.png
Binary files differ
diff --git a/ios/chrome/browser/ui/location_bar/resources/omnibox_connection_dangerous.imageset/omnibox_connection_dangerous@3x.png b/ios/chrome/browser/ui/location_bar/resources/omnibox_connection_dangerous.imageset/omnibox_connection_dangerous@3x.png
new file mode 100644
index 0000000..4d72443
--- /dev/null
+++ b/ios/chrome/browser/ui/location_bar/resources/omnibox_connection_dangerous.imageset/omnibox_connection_dangerous@3x.png
Binary files differ
diff --git a/ios/chrome/browser/ui/location_bar/resources/omnibox_connection_insecure.imageset/Contents.json b/ios/chrome/browser/ui/location_bar/resources/omnibox_connection_insecure.imageset/Contents.json
new file mode 100644
index 0000000..2d2e76c
--- /dev/null
+++ b/ios/chrome/browser/ui/location_bar/resources/omnibox_connection_insecure.imageset/Contents.json
@@ -0,0 +1,23 @@
+{
+    "images": [
+        {
+            "idiom": "universal",
+            "scale": "1x",
+            "filename": "omnibox_connection_insecure.png"
+        },
+        {
+            "idiom": "universal",
+            "scale": "2x",
+            "filename": "omnibox_connection_insecure@2x.png"
+        },
+        {
+            "idiom": "universal",
+            "scale": "3x",
+            "filename": "omnibox_connection_insecure@3x.png"
+        }
+    ],
+    "info": {
+        "version": 1,
+        "author": "xcode"
+    }
+}
diff --git a/ios/chrome/browser/ui/location_bar/resources/omnibox_connection_insecure.imageset/omnibox_connection_insecure.png b/ios/chrome/browser/ui/location_bar/resources/omnibox_connection_insecure.imageset/omnibox_connection_insecure.png
new file mode 100644
index 0000000..db792b1
--- /dev/null
+++ b/ios/chrome/browser/ui/location_bar/resources/omnibox_connection_insecure.imageset/omnibox_connection_insecure.png
Binary files differ
diff --git a/ios/chrome/browser/ui/location_bar/resources/omnibox_connection_insecure.imageset/omnibox_connection_insecure@2x.png b/ios/chrome/browser/ui/location_bar/resources/omnibox_connection_insecure.imageset/omnibox_connection_insecure@2x.png
new file mode 100644
index 0000000..c52aa366
--- /dev/null
+++ b/ios/chrome/browser/ui/location_bar/resources/omnibox_connection_insecure.imageset/omnibox_connection_insecure@2x.png
Binary files differ
diff --git a/ios/chrome/browser/ui/location_bar/resources/omnibox_connection_insecure.imageset/omnibox_connection_insecure@3x.png b/ios/chrome/browser/ui/location_bar/resources/omnibox_connection_insecure.imageset/omnibox_connection_insecure@3x.png
new file mode 100644
index 0000000..737d816f
--- /dev/null
+++ b/ios/chrome/browser/ui/location_bar/resources/omnibox_connection_insecure.imageset/omnibox_connection_insecure@3x.png
Binary files differ
diff --git a/ios/chrome/browser/ui/location_bar/resources/omnibox_connection_offline.imageset/Contents.json b/ios/chrome/browser/ui/location_bar/resources/omnibox_connection_offline.imageset/Contents.json
new file mode 100644
index 0000000..e980f3a
--- /dev/null
+++ b/ios/chrome/browser/ui/location_bar/resources/omnibox_connection_offline.imageset/Contents.json
@@ -0,0 +1,23 @@
+{
+    "images": [
+        {
+            "idiom": "universal",
+            "scale": "1x",
+            "filename": "omnibox_connection_offline.png"
+        },
+        {
+            "idiom": "universal",
+            "scale": "2x",
+            "filename": "omnibox_connection_offline@2x.png"
+        },
+        {
+            "idiom": "universal",
+            "scale": "3x",
+            "filename": "omnibox_connection_offline@3x.png"
+        }
+    ],
+    "info": {
+        "version": 1,
+        "author": "xcode"
+    }
+}
diff --git a/ios/chrome/browser/ui/location_bar/resources/omnibox_connection_offline.imageset/omnibox_connection_offline.png b/ios/chrome/browser/ui/location_bar/resources/omnibox_connection_offline.imageset/omnibox_connection_offline.png
new file mode 100644
index 0000000..2a99e38
--- /dev/null
+++ b/ios/chrome/browser/ui/location_bar/resources/omnibox_connection_offline.imageset/omnibox_connection_offline.png
Binary files differ
diff --git a/ios/chrome/browser/ui/location_bar/resources/omnibox_connection_offline.imageset/omnibox_connection_offline@2x.png b/ios/chrome/browser/ui/location_bar/resources/omnibox_connection_offline.imageset/omnibox_connection_offline@2x.png
new file mode 100644
index 0000000..bf17734a
--- /dev/null
+++ b/ios/chrome/browser/ui/location_bar/resources/omnibox_connection_offline.imageset/omnibox_connection_offline@2x.png
Binary files differ
diff --git a/ios/chrome/browser/ui/location_bar/resources/omnibox_connection_offline.imageset/omnibox_connection_offline@3x.png b/ios/chrome/browser/ui/location_bar/resources/omnibox_connection_offline.imageset/omnibox_connection_offline@3x.png
new file mode 100644
index 0000000..a9baddf
--- /dev/null
+++ b/ios/chrome/browser/ui/location_bar/resources/omnibox_connection_offline.imageset/omnibox_connection_offline@3x.png
Binary files differ
diff --git a/ios/chrome/browser/ui/location_bar/resources/omnibox_connection_secure.imageset/Contents.json b/ios/chrome/browser/ui/location_bar/resources/omnibox_connection_secure.imageset/Contents.json
new file mode 100644
index 0000000..6f96e7b0
--- /dev/null
+++ b/ios/chrome/browser/ui/location_bar/resources/omnibox_connection_secure.imageset/Contents.json
@@ -0,0 +1,23 @@
+{
+    "images": [
+        {
+            "idiom": "universal",
+            "scale": "1x",
+            "filename": "omnibox_connection_secure.png"
+        },
+        {
+            "idiom": "universal",
+            "scale": "2x",
+            "filename": "omnibox_connection_secure@2x.png"
+        },
+        {
+            "idiom": "universal",
+            "scale": "3x",
+            "filename": "omnibox_connection_secure@3x.png"
+        }
+    ],
+    "info": {
+        "version": 1,
+        "author": "xcode"
+    }
+}
diff --git a/ios/chrome/browser/ui/location_bar/resources/omnibox_connection_secure.imageset/omnibox_connection_secure.png b/ios/chrome/browser/ui/location_bar/resources/omnibox_connection_secure.imageset/omnibox_connection_secure.png
new file mode 100644
index 0000000..91259b6f
--- /dev/null
+++ b/ios/chrome/browser/ui/location_bar/resources/omnibox_connection_secure.imageset/omnibox_connection_secure.png
Binary files differ
diff --git a/ios/chrome/browser/ui/location_bar/resources/omnibox_connection_secure.imageset/omnibox_connection_secure@2x.png b/ios/chrome/browser/ui/location_bar/resources/omnibox_connection_secure.imageset/omnibox_connection_secure@2x.png
new file mode 100644
index 0000000..1310a55
--- /dev/null
+++ b/ios/chrome/browser/ui/location_bar/resources/omnibox_connection_secure.imageset/omnibox_connection_secure@2x.png
Binary files differ
diff --git a/ios/chrome/browser/ui/location_bar/resources/omnibox_connection_secure.imageset/omnibox_connection_secure@3x.png b/ios/chrome/browser/ui/location_bar/resources/omnibox_connection_secure.imageset/omnibox_connection_secure@3x.png
new file mode 100644
index 0000000..389f4ec
--- /dev/null
+++ b/ios/chrome/browser/ui/location_bar/resources/omnibox_connection_secure.imageset/omnibox_connection_secure@3x.png
Binary files differ
diff --git a/ios/chrome/browser/ui/location_bar/resources/omnibox_voice.imageset/Contents.json b/ios/chrome/browser/ui/location_bar/resources/omnibox_voice.imageset/Contents.json
new file mode 100644
index 0000000..d87f876
--- /dev/null
+++ b/ios/chrome/browser/ui/location_bar/resources/omnibox_voice.imageset/Contents.json
@@ -0,0 +1,23 @@
+{
+    "images": [
+        {
+            "idiom": "universal",
+            "scale": "1x",
+            "filename": "omnibox_voice.png"
+        },
+        {
+            "idiom": "universal",
+            "scale": "2x",
+            "filename": "omnibox_voice@2x.png"
+        },
+        {
+            "idiom": "universal",
+            "scale": "3x",
+            "filename": "omnibox_voice@3x.png"
+        }
+    ],
+    "info": {
+        "version": 1,
+        "author": "xcode"
+    }
+}
diff --git a/ios/chrome/browser/ui/location_bar/resources/omnibox_voice.imageset/omnibox_voice.png b/ios/chrome/browser/ui/location_bar/resources/omnibox_voice.imageset/omnibox_voice.png
new file mode 100644
index 0000000..aee0e6b
--- /dev/null
+++ b/ios/chrome/browser/ui/location_bar/resources/omnibox_voice.imageset/omnibox_voice.png
Binary files differ
diff --git a/ios/chrome/browser/ui/location_bar/resources/omnibox_voice.imageset/omnibox_voice@2x.png b/ios/chrome/browser/ui/location_bar/resources/omnibox_voice.imageset/omnibox_voice@2x.png
new file mode 100644
index 0000000..577fed8
--- /dev/null
+++ b/ios/chrome/browser/ui/location_bar/resources/omnibox_voice.imageset/omnibox_voice@2x.png
Binary files differ
diff --git a/ios/chrome/browser/ui/location_bar/resources/omnibox_voice.imageset/omnibox_voice@3x.png b/ios/chrome/browser/ui/location_bar/resources/omnibox_voice.imageset/omnibox_voice@3x.png
new file mode 100644
index 0000000..fbed382
--- /dev/null
+++ b/ios/chrome/browser/ui/location_bar/resources/omnibox_voice.imageset/omnibox_voice@3x.png
Binary files differ
diff --git a/ios/chrome/browser/ui/main/BUILD.gn b/ios/chrome/browser/ui/main/BUILD.gn
index 6f57ce3..f3c7246af 100644
--- a/ios/chrome/browser/ui/main/BUILD.gn
+++ b/ios/chrome/browser/ui/main/BUILD.gn
@@ -25,7 +25,6 @@
     "//ios/chrome/browser",
     "//ios/chrome/browser/browser_state",
     "//ios/chrome/browser/browsing_data",
-    "//ios/chrome/browser/browsing_data:browsing_data_internal",
     "//ios/chrome/browser/crash_report:crash_report_internal",
     "//ios/chrome/browser/device_sharing",
     "//ios/chrome/browser/sessions",
diff --git a/ios/chrome/browser/ui/settings/BUILD.gn b/ios/chrome/browser/ui/settings/BUILD.gn
index 84f4af5c..345331e 100644
--- a/ios/chrome/browser/ui/settings/BUILD.gn
+++ b/ios/chrome/browser/ui/settings/BUILD.gn
@@ -122,7 +122,6 @@
     "//ios/chrome/browser/browser_state",
     "//ios/chrome/browser/browser_state:browser_state_impl",
     "//ios/chrome/browser/browsing_data",
-    "//ios/chrome/browser/browsing_data:browsing_data_internal",
     "//ios/chrome/browser/content_settings",
     "//ios/chrome/browser/feature_engagement",
     "//ios/chrome/browser/history",
diff --git a/ios/chrome/browser/ui/settings/clear_browsing_data_collection_view_controller.mm b/ios/chrome/browser/ui/settings/clear_browsing_data_collection_view_controller.mm
index 550a405..5caa2d8 100644
--- a/ios/chrome/browser/ui/settings/clear_browsing_data_collection_view_controller.mm
+++ b/ios/chrome/browser/ui/settings/clear_browsing_data_collection_view_controller.mm
@@ -29,7 +29,6 @@
 #include "components/strings/grit/components_strings.h"
 #include "ios/chrome/browser/application_context.h"
 #include "ios/chrome/browser/browser_state/chrome_browser_state.h"
-#import "ios/chrome/browser/browsing_data/browsing_data_removal_controller.h"
 #include "ios/chrome/browser/browsing_data/browsing_data_remove_mask.h"
 #include "ios/chrome/browser/chrome_url_constants.h"
 #include "ios/chrome/browser/experimental_flags.h"
@@ -44,9 +43,8 @@
 #import "ios/chrome/browser/ui/collection_view/cells/collection_view_text_item.h"
 #import "ios/chrome/browser/ui/collection_view/collection_view_model.h"
 #import "ios/chrome/browser/ui/colors/MDCPalette+CrAdditions.h"
-#import "ios/chrome/browser/ui/commands/UIKit+ChromeExecuteCommand.h"
 #import "ios/chrome/browser/ui/commands/application_commands.h"
-#import "ios/chrome/browser/ui/commands/clear_browsing_data_command.h"
+#import "ios/chrome/browser/ui/commands/browsing_data_commands.h"
 #import "ios/chrome/browser/ui/commands/open_url_command.h"
 #import "ios/chrome/browser/ui/icons/chrome_icon.h"
 #import "ios/chrome/browser/ui/settings/time_range_selector_collection_view_controller.h"
@@ -524,20 +522,10 @@
 - (void)clearDataForDataTypes:(BrowsingDataRemoveMask)mask {
   DCHECK(mask != BrowsingDataRemoveMask::REMOVE_NOTHING);
 
-  BrowsingDataRemovalController* browsingDataRemovalController =
-      [[BrowsingDataRemovalController alloc] init];
-
-  if (IsRemoveDataMaskSet(mask, BrowsingDataRemoveMask::REMOVE_SITE_DATA)) {
-    [self.dispatcher prepareForBrowsingDataRemoval];
-  }
-
-  [browsingDataRemovalController
-      removeBrowsingDataFromBrowserState:_browserState
-                                    mask:mask
-                              timePeriod:_timePeriod
-                       completionHandler:^{
-                         [self.dispatcher browsingDataWasRemoved];
-                       }];
+  [self.dispatcher removeBrowsingDataForBrowserState:_browserState
+                                          timePeriod:_timePeriod
+                                          removeMask:mask
+                                     completionBlock:nil];
 
   // Send the "Cleared Browsing Data" event to the feature_engagement::Tracker
   // when the user initiates a clear browsing data action. No event is sent if
diff --git a/ios/chrome/browser/ui/settings/save_passwords_collection_view_controller.mm b/ios/chrome/browser/ui/settings/save_passwords_collection_view_controller.mm
index 30d7756..9545e42 100644
--- a/ios/chrome/browser/ui/settings/save_passwords_collection_view_controller.mm
+++ b/ios/chrome/browser/ui/settings/save_passwords_collection_view_controller.mm
@@ -165,9 +165,9 @@
   // Module containing the reauthentication mechanism for viewing and copying
   // passwords.
   ReauthenticationModule* reauthenticationModule_;
-  // Boolean containing whether the export button and functionality are enabled
-  // or not.
-  BOOL exportEnabled_;
+  // Boolean containing whether the export operation is ready. This implies that
+  // the exporter is idle and there is at least one saved passwords to export.
+  BOOL exportReady_;
   // Alert informing the user that passwords are being prepared for
   // export.
   UIAlertController* preparingPasswordsAlert_;
@@ -500,13 +500,24 @@
     return;
   if (!savedForms_.empty() &&
       self.passwordExporter.exportState == ExportState::IDLE) {
+    exportReady_ = YES;
+    if (![self.editor isEditing]) {
+      [self setExportPasswordsButtonEnabled:YES];
+    }
+  } else {
+    exportReady_ = NO;
+    [self setExportPasswordsButtonEnabled:NO];
+  }
+}
+
+- (void)setExportPasswordsButtonEnabled:(BOOL)enabled {
+  if (enabled) {
+    DCHECK(exportReady_ && ![self.editor isEditing]);
     exportPasswordsItem_.textColor = [[MDCPalette greyPalette] tint900];
     exportPasswordsItem_.accessibilityTraits = UIAccessibilityTraitButton;
-    exportEnabled_ = YES;
   } else {
     exportPasswordsItem_.textColor = [[MDCPalette greyPalette] tint500];
     exportPasswordsItem_.accessibilityTraits = UIAccessibilityTraitNotEnabled;
-    exportEnabled_ = NO;
   }
   [self reconfigureCellsForItems:@[ exportPasswordsItem_ ]];
 }
@@ -588,7 +599,7 @@
                 [model sectionIdentifierForSection:indexPath.section]);
       DCHECK(base::FeatureList::IsEnabled(
           password_manager::features::kPasswordExport));
-      if (exportEnabled_) {
+      if (exportReady_) {
         [self startPasswordsExportFlow];
       }
       break;
@@ -612,12 +623,16 @@
   [super collectionViewWillBeginEditing:collectionView];
 
   [self setSavePasswordsSwitchItemEnabled:NO];
+  [self setExportPasswordsButtonEnabled:NO];
 }
 
 - (void)collectionViewWillEndEditing:(UICollectionView*)collectionView {
   [super collectionViewWillEndEditing:collectionView];
 
   [self setSavePasswordsSwitchItemEnabled:YES];
+  if (exportReady_) {
+    [self setExportPasswordsButtonEnabled:YES];
+  }
 }
 
 - (void)collectionView:(UICollectionView*)collectionView
diff --git a/ios/chrome/browser/ui/settings/save_passwords_collection_view_controller_unittest.mm b/ios/chrome/browser/ui/settings/save_passwords_collection_view_controller_unittest.mm
index dc0016f..3d6a458 100644
--- a/ios/chrome/browser/ui/settings/save_passwords_collection_view_controller_unittest.mm
+++ b/ios/chrome/browser/ui/settings/save_passwords_collection_view_controller_unittest.mm
@@ -355,6 +355,47 @@
   EXPECT_NE(UIAccessibilityTraitNotEnabled, exportButton.accessibilityTraits);
 }
 
+// Tests that the "Export Passwords..." button is greyed out in edit mode.
+TEST_P(SavePasswordsCollectionViewControllerTest,
+       TestExportButtonDisabledEditMode) {
+  if (!GetParam().export_enabled)
+    return;
+  AddSavedForm1();
+
+  CollectionViewTextItem* exportButton = GetCollectionViewItem(3, 0);
+  CheckTextCellTitleWithId(IDS_IOS_EXPORT_PASSWORDS, 3, 0);
+
+  SavePasswordsCollectionViewController* save_passwords_controller =
+      static_cast<SavePasswordsCollectionViewController*>(controller());
+  [save_passwords_controller
+      collectionViewWillBeginEditing:save_passwords_controller.collectionView];
+
+  EXPECT_NSEQ([[MDCPalette greyPalette] tint500], exportButton.textColor);
+  EXPECT_EQ(UIAccessibilityTraitNotEnabled, exportButton.accessibilityTraits);
+}
+
+// Tests that the "Export Passwords..." button is enabled after exiting
+// edit mode.
+TEST_P(SavePasswordsCollectionViewControllerTest,
+       TestExportButtonEnabledWhenEdittingFinished) {
+  if (!GetParam().export_enabled)
+    return;
+  AddSavedForm1();
+
+  CollectionViewTextItem* exportButton = GetCollectionViewItem(3, 0);
+  CheckTextCellTitleWithId(IDS_IOS_EXPORT_PASSWORDS, 3, 0);
+
+  SavePasswordsCollectionViewController* save_passwords_controller =
+      static_cast<SavePasswordsCollectionViewController*>(controller());
+  [save_passwords_controller
+      collectionViewWillBeginEditing:save_passwords_controller.collectionView];
+  [save_passwords_controller
+      collectionViewWillEndEditing:save_passwords_controller.collectionView];
+
+  EXPECT_NSEQ([[MDCPalette greyPalette] tint900], exportButton.textColor);
+  EXPECT_NE(UIAccessibilityTraitNotEnabled, exportButton.accessibilityTraits);
+}
+
 TEST_P(SavePasswordsCollectionViewControllerTest, PropagateDeletionToStore) {
   SavePasswordsCollectionViewController* save_password_controller =
       static_cast<SavePasswordsCollectionViewController*>(controller());
diff --git a/ios/chrome/browser/ui/settings/sync_settings_collection_view_controller.mm b/ios/chrome/browser/ui/settings/sync_settings_collection_view_controller.mm
index 4e3a512..bd251d91 100644
--- a/ios/chrome/browser/ui/settings/sync_settings_collection_view_controller.mm
+++ b/ios/chrome/browser/ui/settings/sync_settings_collection_view_controller.mm
@@ -626,6 +626,7 @@
                shouldClearData:SHOULD_CLEAR_DATA_USER_CHOICE
               postSignInAction:postSignInAction
       presentingViewController:self];
+  _authenticationFlow.dispatcher = self.dispatcher;
 
   __weak SyncSettingsCollectionViewController* weakSelf = self;
   [_authenticationFlow startSignInWithCompletion:^(BOOL success) {
diff --git a/ios/chrome/browser/ui/settings/sync_utils/sync_error_infobar_delegate.h b/ios/chrome/browser/ui/settings/sync_utils/sync_error_infobar_delegate.h
index b0a75ab0..626c6f1 100644
--- a/ios/chrome/browser/ui/settings/sync_utils/sync_error_infobar_delegate.h
+++ b/ios/chrome/browser/ui/settings/sync_utils/sync_error_infobar_delegate.h
@@ -14,7 +14,6 @@
 #include "ios/chrome/browser/sync/sync_setup_service.h"
 #include "ui/gfx/image/image.h"
 
-@class GenericChromeCommand;
 @protocol SyncPresenter;
 
 namespace gfx {
diff --git a/ios/chrome/browser/ui/settings/sync_utils/sync_util.h b/ios/chrome/browser/ui/settings/sync_utils/sync_util.h
index f73a851..4c3cc02 100644
--- a/ios/chrome/browser/ui/settings/sync_utils/sync_util.h
+++ b/ios/chrome/browser/ui/settings/sync_utils/sync_util.h
@@ -10,7 +10,6 @@
 #include "google_apis/gaia/google_service_auth_error.h"
 #include "ios/chrome/browser/sync/sync_setup_service.h"
 
-@class GenericChromeCommand;
 @class Tab;
 @protocol SyncPresenter;
 
diff --git a/ios/chrome/browser/ui/settings/sync_utils/sync_util.mm b/ios/chrome/browser/ui/settings/sync_utils/sync_util.mm
index ce2b704a..683835f 100644
--- a/ios/chrome/browser/ui/settings/sync_utils/sync_util.mm
+++ b/ios/chrome/browser/ui/settings/sync_utils/sync_util.mm
@@ -12,8 +12,6 @@
 #include "ios/chrome/browser/sync/sync_setup_service.h"
 #include "ios/chrome/browser/sync/sync_setup_service_factory.h"
 #import "ios/chrome/browser/tabs/tab.h"
-#import "ios/chrome/browser/ui/commands/generic_chrome_command.h"
-#include "ios/chrome/browser/ui/commands/ios_command_ids.h"
 #import "ios/chrome/browser/ui/commands/show_signin_command.h"
 #include "ios/chrome/browser/ui/settings/sync_utils/sync_error_infobar_delegate.h"
 #include "ios/chrome/grit/ios_chromium_strings.h"
diff --git a/ios/chrome/browser/ui/settings/table_cell_catalog_view_controller.mm b/ios/chrome/browser/ui/settings/table_cell_catalog_view_controller.mm
index 3df18af..2f1d7a1d 100644
--- a/ios/chrome/browser/ui/settings/table_cell_catalog_view_controller.mm
+++ b/ios/chrome/browser/ui/settings/table_cell_catalog_view_controller.mm
@@ -4,6 +4,7 @@
 
 #import "ios/chrome/browser/ui/settings/table_cell_catalog_view_controller.h"
 
+#import "ios/chrome/browser/ui/table_view/cells/table_view_text_item.h"
 #import "ios/chrome/browser/ui/table_view/cells/table_view_url_item.h"
 #import "ios/chrome/browser/ui/table_view/table_view_model.h"
 
@@ -14,11 +15,13 @@
 namespace {
 
 typedef NS_ENUM(NSInteger, SectionIdentifier) {
-  SectionIdentifierURL = kSectionIdentifierEnumZero,
+  SectionIdentifierText = kSectionIdentifierEnumZero,
+  SectionIdentifierURL,
 };
 
 typedef NS_ENUM(NSInteger, ItemType) {
-  ItemTypeURLNoMetadata = kItemTypeEnumZero,
+  ItemTypeText = kItemTypeEnumZero,
+  ItemTypeURLNoMetadata,
   ItemTypeURLWithTimestamp,
   ItemTypeURLWithSize,
 };
@@ -45,8 +48,14 @@
   [super loadModel];
 
   TableViewModel* model = self.tableViewModel;
+  [model addSectionWithIdentifier:SectionIdentifierText];
   [model addSectionWithIdentifier:SectionIdentifierURL];
 
+  TableViewTextItem* textItem =
+      [[TableViewTextItem alloc] initWithType:ItemTypeText];
+  textItem.text = @"Simple Text Cell";
+  [model addItem:textItem toSectionWithIdentifier:SectionIdentifierText];
+
   TableViewURLItem* item =
       [[TableViewURLItem alloc] initWithType:ItemTypeURLNoMetadata];
   item.favicon = [UIImage imageNamed:@"default_favicon"];
diff --git a/ios/chrome/browser/ui/tab_grid/BUILD.gn b/ios/chrome/browser/ui/tab_grid/BUILD.gn
index 064b257..8081b25 100644
--- a/ios/chrome/browser/ui/tab_grid/BUILD.gn
+++ b/ios/chrome/browser/ui/tab_grid/BUILD.gn
@@ -57,7 +57,6 @@
 
   deps = [
     "//base",
-    "//ios/chrome/browser/ui:ui_util",
     "//ios/chrome/browser/ui/tab_grid/transitions",
     "//ios/chrome/browser/ui/util:constraints_ui",
   ]
diff --git a/ios/chrome/browser/ui/tab_grid/grid_layout.mm b/ios/chrome/browser/ui/tab_grid/grid_layout.mm
index 1668685..d1307de 100644
--- a/ios/chrome/browser/ui/tab_grid/grid_layout.mm
+++ b/ios/chrome/browser/ui/tab_grid/grid_layout.mm
@@ -4,8 +4,6 @@
 
 #import "ios/chrome/browser/ui/tab_grid/grid_layout.h"
 
-#import "ios/chrome/browser/ui/ui_util.h"
-
 #if !defined(__has_feature) || !__has_feature(objc_arc)
 #error "This file requires ARC support."
 #endif
@@ -25,13 +23,8 @@
 
 - (instancetype)init {
   if (self = [super init]) {
-    if (IsIPadIdiom()) {
-      _startingTabWidth = 200.0f;
-      _maxTabWidth = 250.0f;
-    } else {
-      _startingTabWidth = 160.0f;
-      _maxTabWidth = 200.0f;
-    }
+    _startingTabWidth = 200.0f;
+    _maxTabWidth = 250.0f;
   }
   return self;
 }
diff --git a/ios/chrome/browser/ui/tab_grid/tab_grid_view_controller.h b/ios/chrome/browser/ui/tab_grid/tab_grid_view_controller.h
index acd627a8..bfdf8bdf 100644
--- a/ios/chrome/browser/ui/tab_grid/tab_grid_view_controller.h
+++ b/ios/chrome/browser/ui/tab_grid/tab_grid_view_controller.h
@@ -7,17 +7,39 @@
 
 #import <UIKit/UIKit.h>
 
-#import "ios/chrome/browser/ui/tab_grid/grid_consumer.h"
 #import "ios/chrome/browser/ui/tab_grid/tab_grid_transition_state_provider.h"
 
+@protocol GridConsumer;
+@protocol GridImageDataSource;
+@protocol GridViewControllerDelegate;
+
+// Page enumerates the kinds of grouped tabs.
+typedef NS_ENUM(NSUInteger, TabGridPage) {
+  TabGridPageIncognitoTabs = 0,
+  TabGridPageRegularTabs = 1,
+  TabGridPageRemoteTabs = 2,
+};
+
 // View controller representing a tab switcher.  The tab switcher has an
 // incognito tab grid, regular tab grid, and remote tabs.
 @interface TabGridViewController
     : UIViewController<TabGridTransitionStateProvider>
 
+// Consumers send updates from the model layer to the UI layer.
 @property(nonatomic, readonly) id<GridConsumer> regularTabsConsumer;
 @property(nonatomic, readonly) id<GridConsumer> incognitoTabsConsumer;
 
+// Delegates send updates from the UI layer to the model layer.
+@property(nonatomic, weak) id<GridViewControllerDelegate> regularTabsDelegate;
+@property(nonatomic, weak) id<GridViewControllerDelegate> incognitoTabsDelegate;
+
+// Data sources provide lazy access to heavy-weight resources.
+@property(nonatomic, weak) id<GridImageDataSource> regularTabsImageDataSource;
+@property(nonatomic, weak) id<GridImageDataSource> incognitoTabsImageDataSource;
+
+// Current visible page.
+@property(nonatomic, assign) TabGridPage currentPage;
+
 @end
 
 #endif  // IOS_CHROME_BROWSER_UI_TAB_GRID_TAB_GRID_VIEW_CONTROLLER_H_
diff --git a/ios/chrome/browser/ui/tab_grid/tab_grid_view_controller.mm b/ios/chrome/browser/ui/tab_grid/tab_grid_view_controller.mm
index df43321..29253e2d 100644
--- a/ios/chrome/browser/ui/tab_grid/tab_grid_view_controller.mm
+++ b/ios/chrome/browser/ui/tab_grid/tab_grid_view_controller.mm
@@ -4,6 +4,9 @@
 
 #import "ios/chrome/browser/ui/tab_grid/tab_grid_view_controller.h"
 
+#import "base/logging.h"
+#import "ios/chrome/browser/ui/tab_grid/grid_consumer.h"
+#import "ios/chrome/browser/ui/tab_grid/grid_image_data_source.h"
 #import "ios/chrome/browser/ui/tab_grid/grid_view_controller.h"
 #import "ios/chrome/browser/ui/tab_grid/tab_grid_bottom_toolbar.h"
 #import "ios/chrome/browser/ui/tab_grid/tab_grid_top_toolbar.h"
@@ -13,119 +16,354 @@
 #endif
 
 @interface TabGridViewController ()
-@property(nonatomic, weak) GridViewController* regularTabsViewController;
-@property(nonatomic, weak) GridViewController* incognitoTabsViewController;
+// Child view controllers.
+@property(nonatomic, strong) GridViewController* regularTabsViewController;
+@property(nonatomic, strong) GridViewController* incognitoTabsViewController;
+@property(nonatomic, strong) UIViewController* remoteTabsViewController;
+// Other UI components.
+@property(nonatomic, weak) UIScrollView* scrollView;
+@property(nonatomic, weak) UIView* scrollContentView;
+@property(nonatomic, weak) TabGridTopToolbar* topToolbar;
+@property(nonatomic, weak) TabGridBottomToolbar* bottomToolbar;
+@property(nonatomic, weak) UIButton* closeAllButton;
+@property(nonatomic, weak) UIButton* doneButton;
+@property(nonatomic, weak) UIButton* floatingButton;
 @end
 
 @implementation TabGridViewController
+// Public properties.
+@synthesize regularTabsDelegate = _regularTabsDelegate;
+@synthesize incognitoTabsDelegate = _incognitoTabsDelegate;
+@synthesize regularTabsImageDataSource = _regularTabsImageDataSource;
+@synthesize incognitoTabsImageDataSource = _incognitoTabsImageDataSource;
+@synthesize currentPage = _currentPage;
+// Private properties.
 @synthesize regularTabsViewController = _regularTabsViewController;
 @synthesize incognitoTabsViewController = _incognitoTabsViewController;
+@synthesize remoteTabsViewController = _remoteTabsViewController;
+@synthesize scrollView = _scrollView;
+@synthesize scrollContentView = _scrollContentView;
+@synthesize topToolbar = _topToolbar;
+@synthesize bottomToolbar = _bottomToolbar;
+@synthesize closeAllButton = _closeAllButton;
+@synthesize doneButton = _doneButton;
+@synthesize floatingButton = _floatingButton;
+
+- (instancetype)init {
+  if (self = [super init]) {
+    _regularTabsViewController = [[GridViewController alloc] init];
+    _incognitoTabsViewController = [[GridViewController alloc] init];
+    _remoteTabsViewController = [[UIViewController alloc] init];
+  }
+  return self;
+}
 
 #pragma mark - UIViewController
 
 - (void)viewDidLoad {
   [super viewDidLoad];
+  [self setupScrollView];
+  [self setupIncognitoTabsViewController];
   [self setupRegularTabsViewController];
-  [self setupToolbars];
+  [self setupRemoteTabsViewController];
+  [self setupTopToolbar];
+  [self setupTopToolbarButtons];
+  [self setupBottomToolbar];
+  [self setupBottomToolbarButtons];
+}
+
+- (void)viewWillLayoutSubviews {
+  [super viewWillLayoutSubviews];
+  // The content inset of the tab grids must be modified so that the toolbars
+  // do not obscure the tabs. This may change depending on orientation.
+  UIEdgeInsets contentInset = UIEdgeInsetsZero;
+  if (@available(iOS 11, *)) {
+    // Beginning with iPhoneX, there could be unsafe areas on the side margins
+    // and bottom.
+    contentInset = self.view.safeAreaInsets;
+  } else {
+    // Previously only the top had unsafe areas.
+    contentInset.top = self.topLayoutGuide.length;
+  }
+  contentInset.top += self.topToolbar.intrinsicContentSize.height;
+  if (self.view.frame.size.width < self.view.frame.size.height) {
+    contentInset.bottom += self.bottomToolbar.intrinsicContentSize.height;
+  }
+  self.incognitoTabsViewController.gridView.contentInset = contentInset;
+  self.regularTabsViewController.gridView.contentInset = contentInset;
 }
 
 - (UIStatusBarStyle)preferredStatusBarStyle {
   return UIStatusBarStyleLightContent;
 }
 
+#pragma mark - TabGridTransitionStateProvider properties
+
+- (BOOL)selectedTabVisible {
+  return NO;
+}
+
 #pragma mark - Public
 
 - (id<GridConsumer>)regularTabsConsumer {
   return self.regularTabsViewController;
 }
 
+- (void)setRegularTabsDelegate:
+    (id<GridViewControllerDelegate>)regularTabsDelegate {
+  self.regularTabsViewController.delegate = regularTabsDelegate;
+  _regularTabsDelegate = regularTabsDelegate;
+}
+
+- (void)setRegularTabsImageDataSource:
+    (id<GridImageDataSource>)regularTabsImageDataSource {
+  self.regularTabsViewController.imageDataSource = regularTabsImageDataSource;
+  _regularTabsImageDataSource = regularTabsImageDataSource;
+}
+
 - (id<GridConsumer>)incognitoTabsConsumer {
   return self.incognitoTabsViewController;
 }
 
+- (void)setIncognitoTabsDelegate:
+    (id<GridViewControllerDelegate>)incognitoTabsDelegate {
+  self.incognitoTabsViewController.delegate = incognitoTabsDelegate;
+  _incognitoTabsDelegate = incognitoTabsDelegate;
+}
+
+- (void)setIncognitoTabsImageDataSource:
+    (id<GridImageDataSource>)incognitoTabsImageDataSource {
+  self.incognitoTabsViewController.imageDataSource =
+      incognitoTabsImageDataSource;
+  _incognitoTabsImageDataSource = incognitoTabsImageDataSource;
+}
+
 #pragma mark - Private
 
-// Adds the regular tabs GridViewController as a contained view controller, and
-// sets constraints.
-- (void)setupRegularTabsViewController {
-  GridViewController* viewController = [[GridViewController alloc] init];
-  viewController.view.translatesAutoresizingMaskIntoConstraints = NO;
-  [self addChildViewController:viewController];
-  [self.view addSubview:viewController.view];
-  [viewController didMoveToParentViewController:self];
-  self.regularTabsViewController = viewController;
-
+// Adds the scroll view and sets constraints.
+- (void)setupScrollView {
+  UIScrollView* scrollView = [[UIScrollView alloc] init];
+  scrollView.translatesAutoresizingMaskIntoConstraints = NO;
+  scrollView.scrollEnabled = YES;
+  scrollView.pagingEnabled = YES;
+  if (@available(iOS 11, *)) {
+    // Ensures that scroll view does not add additional margins based on safe
+    // areas.
+    scrollView.contentInsetAdjustmentBehavior =
+        UIScrollViewContentInsetAdjustmentNever;
+  }
+  UIView* contentView = [[UIView alloc] init];
+  contentView.translatesAutoresizingMaskIntoConstraints = NO;
+  [scrollView addSubview:contentView];
+  [self.view addSubview:scrollView];
+  self.scrollContentView = contentView;
+  self.scrollView = scrollView;
   NSArray* constraints = @[
-    [viewController.view.topAnchor constraintEqualToAnchor:self.view.topAnchor],
-    [viewController.view.bottomAnchor
-        constraintEqualToAnchor:self.view.bottomAnchor],
-    [viewController.view.leadingAnchor
-        constraintEqualToAnchor:self.view.leadingAnchor],
-    [viewController.view.trailingAnchor
+    [contentView.topAnchor constraintEqualToAnchor:scrollView.topAnchor],
+    [contentView.bottomAnchor constraintEqualToAnchor:scrollView.bottomAnchor],
+    [contentView.leadingAnchor
+        constraintEqualToAnchor:scrollView.leadingAnchor],
+    [contentView.trailingAnchor
+        constraintEqualToAnchor:scrollView.trailingAnchor],
+    [contentView.heightAnchor constraintEqualToAnchor:self.view.heightAnchor],
+    [scrollView.topAnchor constraintEqualToAnchor:self.view.topAnchor],
+    [scrollView.bottomAnchor constraintEqualToAnchor:self.view.bottomAnchor],
+    [scrollView.leadingAnchor constraintEqualToAnchor:self.view.leadingAnchor],
+    [scrollView.trailingAnchor
         constraintEqualToAnchor:self.view.trailingAnchor],
   ];
   [NSLayoutConstraint activateConstraints:constraints];
 }
 
-// Adds the top and bottom toolbars and sets constraints.
-- (void)setupToolbars {
-  UIView* topToolbar = [[TabGridTopToolbar alloc] init];
-  topToolbar.translatesAutoresizingMaskIntoConstraints = NO;
-
-  UIView* bottomToolbar = [[TabGridBottomToolbar alloc] init];
-  bottomToolbar.translatesAutoresizingMaskIntoConstraints = NO;
-
-  [self.view addSubview:topToolbar];
-  [self.view addSubview:bottomToolbar];
-
-  NSMutableArray* constraints = [NSMutableArray
-      arrayWithObjects:[topToolbar.topAnchor
-                           constraintEqualToAnchor:self.view.topAnchor],
-                       [topToolbar.leadingAnchor
-                           constraintEqualToAnchor:self.view.leadingAnchor],
-                       [topToolbar.trailingAnchor
-                           constraintEqualToAnchor:self.view.trailingAnchor],
-                       [bottomToolbar.bottomAnchor
-                           constraintEqualToAnchor:self.view.bottomAnchor],
-                       [bottomToolbar.leadingAnchor
-                           constraintEqualToAnchor:self.view.leadingAnchor],
-                       [bottomToolbar.trailingAnchor
-                           constraintEqualToAnchor:self.view.trailingAnchor],
-                       nil];
+// Adds the incognito tabs GridViewController as a contained view controller,
+// and sets constraints.
+- (void)setupIncognitoTabsViewController {
+  UIView* contentView = self.scrollContentView;
+  GridViewController* viewController = self.incognitoTabsViewController;
+  viewController.view.translatesAutoresizingMaskIntoConstraints = NO;
+  [self addChildViewController:viewController];
+  [contentView addSubview:viewController.view];
+  [viewController didMoveToParentViewController:self];
+  viewController.theme = GridThemeDark;
   if (@available(iOS 11, *)) {
-    // SafeArea is only available in iOS  11+.
-    [constraints addObjectsFromArray:@[
-      [topToolbar.bottomAnchor
-          constraintEqualToAnchor:self.view.safeAreaLayoutGuide.topAnchor
-                         constant:topToolbar.intrinsicContentSize.height],
-      [bottomToolbar.topAnchor
-          constraintEqualToAnchor:self.view.safeAreaLayoutGuide.bottomAnchor
-                         constant:-bottomToolbar.intrinsicContentSize.height],
-    ]];
-  } else {
-    // Top and bottom layout guides are deprecated starting in iOS 11.
-    [constraints addObjectsFromArray:@[
-      [topToolbar.bottomAnchor
-          constraintEqualToAnchor:self.topLayoutGuide.bottomAnchor
-                         constant:topToolbar.intrinsicContentSize.height],
-      [bottomToolbar.topAnchor
-          constraintEqualToAnchor:self.bottomLayoutGuide.topAnchor
-                         constant:-bottomToolbar.intrinsicContentSize.height],
-    ]];
+    // Adjustments are made in |-viewWillLayoutSubviews|. Automatic adjustments
+    // do not work well with the scrollview.
+    viewController.gridView.contentInsetAdjustmentBehavior =
+        UIScrollViewContentInsetAdjustmentNever;
   }
+  NSArray* constraints = @[
+    [viewController.view.topAnchor
+        constraintEqualToAnchor:contentView.topAnchor],
+    [viewController.view.bottomAnchor
+        constraintEqualToAnchor:contentView.bottomAnchor],
+    [viewController.view.leadingAnchor
+        constraintEqualToAnchor:contentView.leadingAnchor],
+    [viewController.view.widthAnchor
+        constraintEqualToAnchor:self.view.widthAnchor]
+  ];
   [NSLayoutConstraint activateConstraints:constraints];
-
-  // The content inset of the tab grids must be modified so that the toolbars do
-  // not obscure the tabs.
-  self.regularTabsViewController.gridView.contentInset =
-      UIEdgeInsetsMake(topToolbar.intrinsicContentSize.height, 0,
-                       bottomToolbar.intrinsicContentSize.height, 0);
 }
 
-#pragma mark - TabGridTransitionStateProvider properties
+// Adds the regular tabs GridViewController as a contained view controller,
+// and sets constraints.
+- (void)setupRegularTabsViewController {
+  UIView* contentView = self.scrollContentView;
+  GridViewController* viewController = self.regularTabsViewController;
+  viewController.view.translatesAutoresizingMaskIntoConstraints = NO;
+  [self addChildViewController:viewController];
+  [contentView addSubview:viewController.view];
+  [viewController didMoveToParentViewController:self];
+  viewController.theme = GridThemeLight;
+  if (@available(iOS 11, *)) {
+    // Adjustments are made in |-viewWillLayoutSubviews|. Automatic adjustments
+    // do not work well with the scrollview.
+    viewController.gridView.contentInsetAdjustmentBehavior =
+        UIScrollViewContentInsetAdjustmentNever;
+  }
+  NSArray* constraints = @[
+    [viewController.view.topAnchor
+        constraintEqualToAnchor:contentView.topAnchor],
+    [viewController.view.bottomAnchor
+        constraintEqualToAnchor:contentView.bottomAnchor],
+    [viewController.view.leadingAnchor
+        constraintEqualToAnchor:self.incognitoTabsViewController.view
+                                    .trailingAnchor],
+    [viewController.view.widthAnchor
+        constraintEqualToAnchor:self.view.widthAnchor]
+  ];
+  [NSLayoutConstraint activateConstraints:constraints];
+}
 
-- (BOOL)selectedTabVisible {
-  return NO;
+// Adds the remote tabs view controller as a contained view controller, and
+// sets constraints.
+- (void)setupRemoteTabsViewController {
+  UIView* contentView = self.scrollContentView;
+  UIViewController* viewController = self.remoteTabsViewController;
+  viewController.view.translatesAutoresizingMaskIntoConstraints = NO;
+  viewController.view.backgroundColor = [UIColor greenColor];
+  [self addChildViewController:viewController];
+  [contentView addSubview:viewController.view];
+  [viewController didMoveToParentViewController:self];
+  NSArray* constraints = @[
+    [viewController.view.topAnchor
+        constraintEqualToAnchor:contentView.topAnchor],
+    [viewController.view.bottomAnchor
+        constraintEqualToAnchor:contentView.bottomAnchor],
+    [viewController.view.leadingAnchor
+        constraintEqualToAnchor:self.regularTabsViewController.view
+                                    .trailingAnchor],
+    [viewController.view.trailingAnchor
+        constraintEqualToAnchor:contentView.trailingAnchor],
+    [viewController.view.widthAnchor
+        constraintEqualToAnchor:self.view.widthAnchor]
+  ];
+  [NSLayoutConstraint activateConstraints:constraints];
+}
+
+// Adds the top toolbar and sets constraints.
+- (void)setupTopToolbar {
+  TabGridTopToolbar* topToolbar = [[TabGridTopToolbar alloc] init];
+  topToolbar.translatesAutoresizingMaskIntoConstraints = NO;
+  [self.view addSubview:topToolbar];
+  self.topToolbar = topToolbar;
+  NSArray* constraints = @[
+    [topToolbar.topAnchor constraintEqualToAnchor:self.view.topAnchor],
+    [topToolbar.leadingAnchor constraintEqualToAnchor:self.view.leadingAnchor],
+    [topToolbar.trailingAnchor
+        constraintEqualToAnchor:self.view.trailingAnchor],
+  ];
+  [NSLayoutConstraint activateConstraints:constraints];
+  // Set the height of the toolbar, including unsafe areas.
+  if (@available(iOS 11, *)) {
+    // SafeArea is only available in iOS  11+.
+    [topToolbar.bottomAnchor
+        constraintEqualToAnchor:self.view.safeAreaLayoutGuide.topAnchor
+                       constant:topToolbar.intrinsicContentSize.height]
+        .active = YES;
+  } else {
+    // Top and bottom layout guides are deprecated starting in iOS 11.
+    [topToolbar.bottomAnchor
+        constraintEqualToAnchor:self.topLayoutGuide.bottomAnchor
+                       constant:topToolbar.intrinsicContentSize.height]
+        .active = YES;
+  }
+}
+
+// Adds the bottom toolbar and sets constraints.
+- (void)setupBottomToolbar {
+  TabGridBottomToolbar* bottomToolbar = [[TabGridBottomToolbar alloc] init];
+  bottomToolbar.translatesAutoresizingMaskIntoConstraints = NO;
+  [self.view addSubview:bottomToolbar];
+  self.bottomToolbar = bottomToolbar;
+  NSArray* constraints = @[
+    [bottomToolbar.bottomAnchor constraintEqualToAnchor:self.view.bottomAnchor],
+    [bottomToolbar.leadingAnchor
+        constraintEqualToAnchor:self.view.leadingAnchor],
+    [bottomToolbar.trailingAnchor
+        constraintEqualToAnchor:self.view.trailingAnchor],
+  ];
+  [NSLayoutConstraint activateConstraints:constraints];
+  // Adds the height of the toolbar above the bottom safe area.
+  if (@available(iOS 11, *)) {
+    // SafeArea is only available in iOS  11+.
+    [self.view.safeAreaLayoutGuide.bottomAnchor
+        constraintEqualToAnchor:bottomToolbar.topAnchor
+                       constant:bottomToolbar.intrinsicContentSize.height]
+        .active = YES;
+  } else {
+    // Top and bottom layout guides are deprecated starting in iOS 11.
+    [bottomToolbar.topAnchor
+        constraintEqualToAnchor:self.bottomLayoutGuide.topAnchor
+                       constant:-bottomToolbar.intrinsicContentSize.height]
+        .active = YES;
+  }
+}
+
+// Adds the top toolbar buttons.
+- (void)setupTopToolbarButtons {
+  self.doneButton = self.topToolbar.leadingButton;
+  self.closeAllButton = self.topToolbar.trailingButton;
+  [self.doneButton setTitle:@"Done" forState:UIControlStateNormal];
+  [self.closeAllButton setTitle:@"Close All" forState:UIControlStateNormal];
+  [self.doneButton addTarget:self
+                      action:@selector(doneButtonTapped:)
+            forControlEvents:UIControlEventTouchUpInside];
+  [self.closeAllButton addTarget:self
+                          action:@selector(closeAllButtonTapped:)
+                forControlEvents:UIControlEventTouchUpInside];
+}
+
+// Adds the bottom toolbar buttons.
+- (void)setupBottomToolbarButtons {
+  [self.bottomToolbar.leadingButton setTitle:@"Done"
+                                    forState:UIControlStateNormal];
+  [self.bottomToolbar.trailingButton setTitle:@"Close All"
+                                     forState:UIControlStateNormal];
+  [self.bottomToolbar.roundButton setTitle:@"New"
+                                  forState:UIControlStateNormal];
+  [self.bottomToolbar.leadingButton addTarget:self
+                                       action:@selector(doneButtonTapped:)
+                             forControlEvents:UIControlEventTouchUpInside];
+  [self.bottomToolbar.trailingButton addTarget:self
+                                        action:@selector(closeAllButtonTapped:)
+                              forControlEvents:UIControlEventTouchUpInside];
+  [self.bottomToolbar.roundButton addTarget:self
+                                     action:@selector(newTabButtonTapped:)
+                           forControlEvents:UIControlEventTouchUpInside];
+}
+
+#pragma mark - Button actions
+
+- (void)doneButtonTapped:(id)sender {
+  // TODO(crbug.com/804503) : Placeholder alerts.
+}
+
+- (void)closeAllButtonTapped:(id)sender {
+  // TODO(crbug.com/804503) : Placeholder alerts.
+}
+
+- (void)newTabButtonTapped:(id)sender {
+  // TODO(crbug.com/804503) : Placeholder alerts.
 }
 
 @end
diff --git a/ios/chrome/browser/ui/table_view/cells/BUILD.gn b/ios/chrome/browser/ui/table_view/cells/BUILD.gn
index f067b13..2e9b4ef4 100644
--- a/ios/chrome/browser/ui/table_view/cells/BUILD.gn
+++ b/ios/chrome/browser/ui/table_view/cells/BUILD.gn
@@ -6,6 +6,8 @@
   sources = [
     "table_view_item.h",
     "table_view_item.mm",
+    "table_view_text_item.h",
+    "table_view_text_item.mm",
     "table_view_url_item.h",
     "table_view_url_item.mm",
   ]
@@ -22,6 +24,7 @@
   testonly = true
   sources = [
     "table_view_item_unittest.mm",
+    "table_view_text_item_unittest.mm",
     "table_view_url_item_unittest.mm",
   ]
 
diff --git a/ios/chrome/browser/ui/table_view/cells/table_view_text_item.h b/ios/chrome/browser/ui/table_view/cells/table_view_text_item.h
new file mode 100644
index 0000000..055829f
--- /dev/null
+++ b/ios/chrome/browser/ui/table_view/cells/table_view_text_item.h
@@ -0,0 +1,27 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef IOS_CHROME_BROWSER_UI_TABLE_VIEW_CELLS_TABLE_VIEW_TEXT_ITEM_H_
+#define IOS_CHROME_BROWSER_UI_TABLE_VIEW_CELLS_TABLE_VIEW_TEXT_ITEM_H_
+
+#import <UIKit/UIKit.h>
+
+#import "ios/chrome/browser/ui/table_view/cells/table_view_item.h"
+
+// TableViewTextItem contains the model data for a TableViewTextCell.
+@interface TableViewTextItem : TableViewItem
+
+@property(nonatomic, readwrite, strong) NSString* text;
+
+@end
+
+// UITableViewCell that displays a text label.
+@interface TableViewTextCell : UITableViewCell
+
+// The text to display.
+@property(nonatomic, readonly, strong) UILabel* textLabel;
+
+@end
+
+#endif  // IOS_CHROME_BROWSER_UI_TABLE_VIEW_CELLS_TABLE_VIEW_TEXT_ITEM_H_
diff --git a/ios/chrome/browser/ui/table_view/cells/table_view_text_item.mm b/ios/chrome/browser/ui/table_view/cells/table_view_text_item.mm
new file mode 100644
index 0000000..0b09e05
--- /dev/null
+++ b/ios/chrome/browser/ui/table_view/cells/table_view_text_item.mm
@@ -0,0 +1,90 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#import "ios/chrome/browser/ui/table_view/cells/table_view_text_item.h"
+
+#include "base/mac/foundation_util.h"
+
+#if !defined(__has_feature) || !__has_feature(objc_arc)
+#error "This file requires ARC support."
+#endif
+
+namespace {
+// The inner insets of the Cell content.
+const CGFloat kMargin = 16;
+}
+
+#pragma mark - TableViewTextItem
+
+@implementation TableViewTextItem
+@synthesize text = _text;
+
+- (instancetype)initWithType:(NSInteger)type {
+  self = [super initWithType:type];
+  if (self) {
+    self.cellClass = [TableViewTextCell class];
+  }
+  return self;
+}
+
+- (void)configureCell:(UITableViewCell*)tableCell {
+  [super configureCell:tableCell];
+  TableViewTextCell* cell =
+      base::mac::ObjCCastStrict<TableViewTextCell>(tableCell);
+  cell.textLabel.text = self.text;
+}
+
+@end
+
+#pragma mark - TableViewTextCell
+
+@implementation TableViewTextCell
+@synthesize textLabel = _textLabel;
+
+- (instancetype)initWithStyle:(UITableViewCellStyle)style
+              reuseIdentifier:(NSString*)reuseIdentifier {
+  self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
+  if (self) {
+    // Text Label, set font sizes using dynamic type.
+    _textLabel = [[UILabel alloc] init];
+    _textLabel.translatesAutoresizingMaskIntoConstraints = NO;
+    _textLabel.font = [UIFont preferredFontForTextStyle:UIFontTextStyleBody];
+
+    // Container View.
+    UIView* containerView = [[UIView alloc] init];
+    containerView.translatesAutoresizingMaskIntoConstraints = NO;
+
+    // Add subviews to View Hierarchy.
+    [containerView addSubview:_textLabel];
+    [self.contentView addSubview:containerView];
+
+    // Set and activate constraints.
+    [NSLayoutConstraint activateConstraints:@[
+      // Container Constraints.
+      [containerView.leadingAnchor
+          constraintEqualToAnchor:self.contentView.leadingAnchor
+                         constant:kMargin],
+      [containerView.trailingAnchor
+          constraintEqualToAnchor:self.contentView.trailingAnchor
+                         constant:-kMargin],
+      [containerView.topAnchor
+          constraintGreaterThanOrEqualToAnchor:self.contentView.topAnchor
+                                      constant:kMargin],
+      [containerView.bottomAnchor
+          constraintLessThanOrEqualToAnchor:self.contentView.bottomAnchor
+                                   constant:-kMargin],
+      [containerView.centerYAnchor
+          constraintEqualToAnchor:self.contentView.centerYAnchor],
+      // Title Label Constraints.
+      [_textLabel.leadingAnchor
+          constraintEqualToAnchor:containerView.leadingAnchor],
+      [_textLabel.topAnchor constraintEqualToAnchor:containerView.topAnchor],
+      [_textLabel.bottomAnchor
+          constraintEqualToAnchor:containerView.bottomAnchor],
+    ]];
+  }
+  return self;
+}
+
+@end
diff --git a/ios/chrome/browser/ui/table_view/cells/table_view_text_item_unittest.mm b/ios/chrome/browser/ui/table_view/cells/table_view_text_item_unittest.mm
new file mode 100644
index 0000000..930208ec
--- /dev/null
+++ b/ios/chrome/browser/ui/table_view/cells/table_view_text_item_unittest.mm
@@ -0,0 +1,36 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#import "ios/chrome/browser/ui/table_view/cells/table_view_text_item.h"
+
+#include "base/mac/foundation_util.h"
+#include "testing/gtest/include/gtest/gtest.h"
+#include "testing/gtest_mac.h"
+#include "testing/platform_test.h"
+
+#if !defined(__has_feature) || !__has_feature(objc_arc)
+#error "This file requires ARC support."
+#endif
+
+namespace {
+using TableViewTextItemTest = PlatformTest;
+}
+
+// Tests that the UILabels are set properly after a call to |configureCell:|.
+TEST_F(TableViewTextItemTest, TextLabels) {
+  NSString* text = @"Cell text";
+
+  TableViewTextItem* item = [[TableViewTextItem alloc] initWithType:0];
+  item.text = text;
+
+  id cell = [[[item cellClass] alloc] init];
+  ASSERT_TRUE([cell isMemberOfClass:[TableViewTextCell class]]);
+
+  TableViewTextCell* textCell =
+      base::mac::ObjCCastStrict<TableViewTextCell>(cell);
+  EXPECT_FALSE(textCell.textLabel.text);
+
+  [item configureCell:textCell];
+  EXPECT_NSEQ(text, textCell.textLabel.text);
+}
diff --git a/ios/chrome/browser/ui/tabs/tab_view.mm b/ios/chrome/browser/ui/tabs/tab_view.mm
index bcce226..4f1f1ea 100644
--- a/ios/chrome/browser/ui/tabs/tab_view.mm
+++ b/ios/chrome/browser/ui/tabs/tab_view.mm
@@ -15,7 +15,6 @@
 #include "ios/chrome/browser/drag_and_drop/drop_and_navigate_interaction.h"
 #include "ios/chrome/browser/experimental_flags.h"
 #import "ios/chrome/browser/ui/colors/MDCPalette+CrAdditions.h"
-#import "ios/chrome/browser/ui/commands/generic_chrome_command.h"
 #import "ios/chrome/browser/ui/image_util/image_util.h"
 #include "ios/chrome/browser/ui/rtl_geometry.h"
 #include "ios/chrome/browser/ui/ui_util.h"
diff --git a/ios/chrome/browser/ui/toolbar/buttons/BUILD.gn b/ios/chrome/browser/ui/toolbar/buttons/BUILD.gn
index b046600..96a6db16 100644
--- a/ios/chrome/browser/ui/toolbar/buttons/BUILD.gn
+++ b/ios/chrome/browser/ui/toolbar/buttons/BUILD.gn
@@ -27,6 +27,16 @@
     "tools_menu_button_observer_bridge.mm",
   ]
   deps = [
+    "resources:toolbar_back",
+    "resources:toolbar_bookmark",
+    "resources:toolbar_bookmark_active",
+    "resources:toolbar_forward",
+    "resources:toolbar_menu",
+    "resources:toolbar_reload",
+    "resources:toolbar_search",
+    "resources:toolbar_share",
+    "resources:toolbar_stop",
+    "resources:toolbar_switcher",
     "//base",
     "//components/reading_list/core",
     "//components/reading_list/ios",
diff --git a/ios/chrome/browser/ui/toolbar/buttons/resources/BUILD.gn b/ios/chrome/browser/ui/toolbar/buttons/resources/BUILD.gn
new file mode 100644
index 0000000..06063ed
--- /dev/null
+++ b/ios/chrome/browser/ui/toolbar/buttons/resources/BUILD.gn
@@ -0,0 +1,95 @@
+# Copyright 2018 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//build/config/ios/asset_catalog.gni")
+
+imageset("toolbar_stop") {
+  sources = [
+    "toolbar_stop.imageset/Contents.json",
+    "toolbar_stop.imageset/toolbar_stop.png",
+    "toolbar_stop.imageset/toolbar_stop@2x.png",
+    "toolbar_stop.imageset/toolbar_stop@3x.png",
+  ]
+}
+
+imageset("toolbar_search") {
+  sources = [
+    "toolbar_search.imageset/Contents.json",
+    "toolbar_search.imageset/toolbar_search.png",
+    "toolbar_search.imageset/toolbar_search@2x.png",
+    "toolbar_search.imageset/toolbar_search@3x.png",
+  ]
+}
+
+imageset("toolbar_bookmark_active") {
+  sources = [
+    "toolbar_bookmark_active.imageset/Contents.json",
+    "toolbar_bookmark_active.imageset/toolbar_bookmark_active.png",
+    "toolbar_bookmark_active.imageset/toolbar_bookmark_active@2x.png",
+    "toolbar_bookmark_active.imageset/toolbar_bookmark_active@3x.png",
+  ]
+}
+
+imageset("toolbar_reload") {
+  sources = [
+    "toolbar_reload.imageset/Contents.json",
+    "toolbar_reload.imageset/toolbar_reload.png",
+    "toolbar_reload.imageset/toolbar_reload@2x.png",
+    "toolbar_reload.imageset/toolbar_reload@3x.png",
+  ]
+}
+
+imageset("toolbar_menu") {
+  sources = [
+    "toolbar_menu.imageset/Contents.json",
+    "toolbar_menu.imageset/toolbar_menu.png",
+    "toolbar_menu.imageset/toolbar_menu@2x.png",
+    "toolbar_menu.imageset/toolbar_menu@3x.png",
+  ]
+}
+
+imageset("toolbar_share") {
+  sources = [
+    "toolbar_share.imageset/Contents.json",
+    "toolbar_share.imageset/toolbar_share.png",
+    "toolbar_share.imageset/toolbar_share@2x.png",
+    "toolbar_share.imageset/toolbar_share@3x.png",
+  ]
+}
+
+imageset("toolbar_back") {
+  sources = [
+    "toolbar_back.imageset/Contents.json",
+    "toolbar_back.imageset/toolbar_back.png",
+    "toolbar_back.imageset/toolbar_back@2x.png",
+    "toolbar_back.imageset/toolbar_back@3x.png",
+  ]
+}
+
+imageset("toolbar_switcher") {
+  sources = [
+    "toolbar_switcher.imageset/Contents.json",
+    "toolbar_switcher.imageset/toolbar_switcher.png",
+    "toolbar_switcher.imageset/toolbar_switcher@2x.png",
+    "toolbar_switcher.imageset/toolbar_switcher@3x.png",
+  ]
+}
+
+imageset("toolbar_forward") {
+  sources = [
+    "toolbar_forward.imageset/Contents.json",
+    "toolbar_forward.imageset/toolbar_forward.png",
+    "toolbar_forward.imageset/toolbar_forward@2x.png",
+    "toolbar_forward.imageset/toolbar_forward@3x.png",
+  ]
+}
+
+imageset("toolbar_bookmark") {
+  sources = [
+    "toolbar_bookmark.imageset/Contents.json",
+    "toolbar_bookmark.imageset/toolbar_bookmark.png",
+    "toolbar_bookmark.imageset/toolbar_bookmark@2x.png",
+    "toolbar_bookmark.imageset/toolbar_bookmark@3x.png",
+  ]
+}
diff --git a/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_back.imageset/Contents.json b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_back.imageset/Contents.json
new file mode 100644
index 0000000..e8568aa
--- /dev/null
+++ b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_back.imageset/Contents.json
@@ -0,0 +1,23 @@
+{
+    "images": [
+        {
+            "idiom": "universal",
+            "scale": "1x",
+            "filename": "toolbar_back.png"
+        },
+        {
+            "idiom": "universal",
+            "scale": "2x",
+            "filename": "toolbar_back@2x.png"
+        },
+        {
+            "idiom": "universal",
+            "scale": "3x",
+            "filename": "toolbar_back@3x.png"
+        }
+    ],
+    "info": {
+        "version": 1,
+        "author": "xcode"
+    }
+}
diff --git a/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_back.imageset/toolbar_back.png b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_back.imageset/toolbar_back.png
new file mode 100644
index 0000000..95e1d29
--- /dev/null
+++ b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_back.imageset/toolbar_back.png
Binary files differ
diff --git a/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_back.imageset/toolbar_back@2x.png b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_back.imageset/toolbar_back@2x.png
new file mode 100644
index 0000000..5b568b2
--- /dev/null
+++ b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_back.imageset/toolbar_back@2x.png
Binary files differ
diff --git a/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_back.imageset/toolbar_back@3x.png b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_back.imageset/toolbar_back@3x.png
new file mode 100644
index 0000000..a9ec5bb
--- /dev/null
+++ b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_back.imageset/toolbar_back@3x.png
Binary files differ
diff --git a/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_bookmark.imageset/Contents.json b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_bookmark.imageset/Contents.json
new file mode 100644
index 0000000..cf9da17
--- /dev/null
+++ b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_bookmark.imageset/Contents.json
@@ -0,0 +1,23 @@
+{
+    "images": [
+        {
+            "idiom": "universal",
+            "scale": "1x",
+            "filename": "toolbar_bookmark.png"
+        },
+        {
+            "idiom": "universal",
+            "scale": "2x",
+            "filename": "toolbar_bookmark@2x.png"
+        },
+        {
+            "idiom": "universal",
+            "scale": "3x",
+            "filename": "toolbar_bookmark@3x.png"
+        }
+    ],
+    "info": {
+        "version": 1,
+        "author": "xcode"
+    }
+}
diff --git a/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_bookmark.imageset/toolbar_bookmark.png b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_bookmark.imageset/toolbar_bookmark.png
new file mode 100644
index 0000000..3f3268a6
--- /dev/null
+++ b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_bookmark.imageset/toolbar_bookmark.png
Binary files differ
diff --git a/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_bookmark.imageset/toolbar_bookmark@2x.png b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_bookmark.imageset/toolbar_bookmark@2x.png
new file mode 100644
index 0000000..7f2bae7
--- /dev/null
+++ b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_bookmark.imageset/toolbar_bookmark@2x.png
Binary files differ
diff --git a/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_bookmark.imageset/toolbar_bookmark@3x.png b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_bookmark.imageset/toolbar_bookmark@3x.png
new file mode 100644
index 0000000..c81e8b90
--- /dev/null
+++ b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_bookmark.imageset/toolbar_bookmark@3x.png
Binary files differ
diff --git a/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_bookmark_active.imageset/Contents.json b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_bookmark_active.imageset/Contents.json
new file mode 100644
index 0000000..c686531
--- /dev/null
+++ b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_bookmark_active.imageset/Contents.json
@@ -0,0 +1,23 @@
+{
+    "images": [
+        {
+            "idiom": "universal",
+            "scale": "1x",
+            "filename": "toolbar_bookmark_active.png"
+        },
+        {
+            "idiom": "universal",
+            "scale": "2x",
+            "filename": "toolbar_bookmark_active@2x.png"
+        },
+        {
+            "idiom": "universal",
+            "scale": "3x",
+            "filename": "toolbar_bookmark_active@3x.png"
+        }
+    ],
+    "info": {
+        "version": 1,
+        "author": "xcode"
+    }
+}
diff --git a/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_bookmark_active.imageset/toolbar_bookmark_active.png b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_bookmark_active.imageset/toolbar_bookmark_active.png
new file mode 100644
index 0000000..74fa4714
--- /dev/null
+++ b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_bookmark_active.imageset/toolbar_bookmark_active.png
Binary files differ
diff --git a/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_bookmark_active.imageset/toolbar_bookmark_active@2x.png b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_bookmark_active.imageset/toolbar_bookmark_active@2x.png
new file mode 100644
index 0000000..0380d1a
--- /dev/null
+++ b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_bookmark_active.imageset/toolbar_bookmark_active@2x.png
Binary files differ
diff --git a/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_bookmark_active.imageset/toolbar_bookmark_active@3x.png b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_bookmark_active.imageset/toolbar_bookmark_active@3x.png
new file mode 100644
index 0000000..a7c5a0ed
--- /dev/null
+++ b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_bookmark_active.imageset/toolbar_bookmark_active@3x.png
Binary files differ
diff --git a/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_forward.imageset/Contents.json b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_forward.imageset/Contents.json
new file mode 100644
index 0000000..2e566db
--- /dev/null
+++ b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_forward.imageset/Contents.json
@@ -0,0 +1,23 @@
+{
+    "images": [
+        {
+            "idiom": "universal",
+            "scale": "1x",
+            "filename": "toolbar_forward.png"
+        },
+        {
+            "idiom": "universal",
+            "scale": "2x",
+            "filename": "toolbar_forward@2x.png"
+        },
+        {
+            "idiom": "universal",
+            "scale": "3x",
+            "filename": "toolbar_forward@3x.png"
+        }
+    ],
+    "info": {
+        "version": 1,
+        "author": "xcode"
+    }
+}
diff --git a/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_forward.imageset/toolbar_forward.png b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_forward.imageset/toolbar_forward.png
new file mode 100644
index 0000000..1b6e878b
--- /dev/null
+++ b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_forward.imageset/toolbar_forward.png
Binary files differ
diff --git a/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_forward.imageset/toolbar_forward@2x.png b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_forward.imageset/toolbar_forward@2x.png
new file mode 100644
index 0000000..bd011ea
--- /dev/null
+++ b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_forward.imageset/toolbar_forward@2x.png
Binary files differ
diff --git a/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_forward.imageset/toolbar_forward@3x.png b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_forward.imageset/toolbar_forward@3x.png
new file mode 100644
index 0000000..4b54f415
--- /dev/null
+++ b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_forward.imageset/toolbar_forward@3x.png
Binary files differ
diff --git a/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_menu.imageset/Contents.json b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_menu.imageset/Contents.json
new file mode 100644
index 0000000..6be9649
--- /dev/null
+++ b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_menu.imageset/Contents.json
@@ -0,0 +1,23 @@
+{
+    "images": [
+        {
+            "idiom": "universal",
+            "scale": "1x",
+            "filename": "toolbar_menu.png"
+        },
+        {
+            "idiom": "universal",
+            "scale": "2x",
+            "filename": "toolbar_menu@2x.png"
+        },
+        {
+            "idiom": "universal",
+            "scale": "3x",
+            "filename": "toolbar_menu@3x.png"
+        }
+    ],
+    "info": {
+        "version": 1,
+        "author": "xcode"
+    }
+}
diff --git a/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_menu.imageset/toolbar_menu.png b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_menu.imageset/toolbar_menu.png
new file mode 100644
index 0000000..d0fc3a1
--- /dev/null
+++ b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_menu.imageset/toolbar_menu.png
Binary files differ
diff --git a/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_menu.imageset/toolbar_menu@2x.png b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_menu.imageset/toolbar_menu@2x.png
new file mode 100644
index 0000000..83b9d0d
--- /dev/null
+++ b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_menu.imageset/toolbar_menu@2x.png
Binary files differ
diff --git a/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_menu.imageset/toolbar_menu@3x.png b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_menu.imageset/toolbar_menu@3x.png
new file mode 100644
index 0000000..7138de1
--- /dev/null
+++ b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_menu.imageset/toolbar_menu@3x.png
Binary files differ
diff --git a/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_reload.imageset/Contents.json b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_reload.imageset/Contents.json
new file mode 100644
index 0000000..d34f6fb
--- /dev/null
+++ b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_reload.imageset/Contents.json
@@ -0,0 +1,23 @@
+{
+    "images": [
+        {
+            "idiom": "universal",
+            "scale": "1x",
+            "filename": "toolbar_reload.png"
+        },
+        {
+            "idiom": "universal",
+            "scale": "2x",
+            "filename": "toolbar_reload@2x.png"
+        },
+        {
+            "idiom": "universal",
+            "scale": "3x",
+            "filename": "toolbar_reload@3x.png"
+        }
+    ],
+    "info": {
+        "version": 1,
+        "author": "xcode"
+    }
+}
diff --git a/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_reload.imageset/toolbar_reload.png b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_reload.imageset/toolbar_reload.png
new file mode 100644
index 0000000..9dc05727
--- /dev/null
+++ b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_reload.imageset/toolbar_reload.png
Binary files differ
diff --git a/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_reload.imageset/toolbar_reload@2x.png b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_reload.imageset/toolbar_reload@2x.png
new file mode 100644
index 0000000..e302bef
--- /dev/null
+++ b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_reload.imageset/toolbar_reload@2x.png
Binary files differ
diff --git a/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_reload.imageset/toolbar_reload@3x.png b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_reload.imageset/toolbar_reload@3x.png
new file mode 100644
index 0000000..dbc85ad
--- /dev/null
+++ b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_reload.imageset/toolbar_reload@3x.png
Binary files differ
diff --git a/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_search.imageset/Contents.json b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_search.imageset/Contents.json
new file mode 100644
index 0000000..54e45fb
--- /dev/null
+++ b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_search.imageset/Contents.json
@@ -0,0 +1,23 @@
+{
+    "images": [
+        {
+            "idiom": "universal",
+            "scale": "1x",
+            "filename": "toolbar_search.png"
+        },
+        {
+            "idiom": "universal",
+            "scale": "2x",
+            "filename": "toolbar_search@2x.png"
+        },
+        {
+            "idiom": "universal",
+            "scale": "3x",
+            "filename": "toolbar_search@3x.png"
+        }
+    ],
+    "info": {
+        "version": 1,
+        "author": "xcode"
+    }
+}
diff --git a/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_search.imageset/toolbar_search.png b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_search.imageset/toolbar_search.png
new file mode 100644
index 0000000..87d845c
--- /dev/null
+++ b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_search.imageset/toolbar_search.png
Binary files differ
diff --git a/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_search.imageset/toolbar_search@2x.png b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_search.imageset/toolbar_search@2x.png
new file mode 100644
index 0000000..d89cbfab
--- /dev/null
+++ b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_search.imageset/toolbar_search@2x.png
Binary files differ
diff --git a/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_search.imageset/toolbar_search@3x.png b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_search.imageset/toolbar_search@3x.png
new file mode 100644
index 0000000..aaaee12
--- /dev/null
+++ b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_search.imageset/toolbar_search@3x.png
Binary files differ
diff --git a/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_share.imageset/Contents.json b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_share.imageset/Contents.json
new file mode 100644
index 0000000..86bddc7
--- /dev/null
+++ b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_share.imageset/Contents.json
@@ -0,0 +1,23 @@
+{
+    "images": [
+        {
+            "idiom": "universal",
+            "scale": "1x",
+            "filename": "toolbar_share.png"
+        },
+        {
+            "idiom": "universal",
+            "scale": "2x",
+            "filename": "toolbar_share@2x.png"
+        },
+        {
+            "idiom": "universal",
+            "scale": "3x",
+            "filename": "toolbar_share@3x.png"
+        }
+    ],
+    "info": {
+        "version": 1,
+        "author": "xcode"
+    }
+}
diff --git a/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_share.imageset/toolbar_share.png b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_share.imageset/toolbar_share.png
new file mode 100644
index 0000000..b0d4dda8
--- /dev/null
+++ b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_share.imageset/toolbar_share.png
Binary files differ
diff --git a/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_share.imageset/toolbar_share@2x.png b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_share.imageset/toolbar_share@2x.png
new file mode 100644
index 0000000..0de75a7
--- /dev/null
+++ b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_share.imageset/toolbar_share@2x.png
Binary files differ
diff --git a/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_share.imageset/toolbar_share@3x.png b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_share.imageset/toolbar_share@3x.png
new file mode 100644
index 0000000..f34c2b4
--- /dev/null
+++ b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_share.imageset/toolbar_share@3x.png
Binary files differ
diff --git a/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_stop.imageset/Contents.json b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_stop.imageset/Contents.json
new file mode 100644
index 0000000..3f6d980
--- /dev/null
+++ b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_stop.imageset/Contents.json
@@ -0,0 +1,23 @@
+{
+    "images": [
+        {
+            "idiom": "universal",
+            "scale": "1x",
+            "filename": "toolbar_stop.png"
+        },
+        {
+            "idiom": "universal",
+            "scale": "2x",
+            "filename": "toolbar_stop@2x.png"
+        },
+        {
+            "idiom": "universal",
+            "scale": "3x",
+            "filename": "toolbar_stop@3x.png"
+        }
+    ],
+    "info": {
+        "version": 1,
+        "author": "xcode"
+    }
+}
diff --git a/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_stop.imageset/toolbar_stop.png b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_stop.imageset/toolbar_stop.png
new file mode 100644
index 0000000..f9725c5
--- /dev/null
+++ b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_stop.imageset/toolbar_stop.png
Binary files differ
diff --git a/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_stop.imageset/toolbar_stop@2x.png b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_stop.imageset/toolbar_stop@2x.png
new file mode 100644
index 0000000..8926c27
--- /dev/null
+++ b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_stop.imageset/toolbar_stop@2x.png
Binary files differ
diff --git a/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_stop.imageset/toolbar_stop@3x.png b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_stop.imageset/toolbar_stop@3x.png
new file mode 100644
index 0000000..a3529a7
--- /dev/null
+++ b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_stop.imageset/toolbar_stop@3x.png
Binary files differ
diff --git a/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_switcher.imageset/Contents.json b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_switcher.imageset/Contents.json
new file mode 100644
index 0000000..f93f4f9
--- /dev/null
+++ b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_switcher.imageset/Contents.json
@@ -0,0 +1,23 @@
+{
+    "images": [
+        {
+            "idiom": "universal",
+            "scale": "1x",
+            "filename": "toolbar_switcher.png"
+        },
+        {
+            "idiom": "universal",
+            "scale": "2x",
+            "filename": "toolbar_switcher@2x.png"
+        },
+        {
+            "idiom": "universal",
+            "scale": "3x",
+            "filename": "toolbar_switcher@3x.png"
+        }
+    ],
+    "info": {
+        "version": 1,
+        "author": "xcode"
+    }
+}
diff --git a/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_switcher.imageset/toolbar_switcher.png b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_switcher.imageset/toolbar_switcher.png
new file mode 100644
index 0000000..8716fc9
--- /dev/null
+++ b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_switcher.imageset/toolbar_switcher.png
Binary files differ
diff --git a/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_switcher.imageset/toolbar_switcher@2x.png b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_switcher.imageset/toolbar_switcher@2x.png
new file mode 100644
index 0000000..2f389478
--- /dev/null
+++ b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_switcher.imageset/toolbar_switcher@2x.png
Binary files differ
diff --git a/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_switcher.imageset/toolbar_switcher@3x.png b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_switcher.imageset/toolbar_switcher@3x.png
new file mode 100644
index 0000000..6899093a
--- /dev/null
+++ b/ios/chrome/browser/ui/toolbar/buttons/resources/toolbar_switcher.imageset/toolbar_switcher@3x.png
Binary files differ
diff --git a/ios/chrome/browser/ui/toolbar/buttons/toolbar_button.h b/ios/chrome/browser/ui/toolbar/buttons/toolbar_button.h
index 518555b..54c9805 100644
--- a/ios/chrome/browser/ui/toolbar/buttons/toolbar_button.h
+++ b/ios/chrome/browser/ui/toolbar/buttons/toolbar_button.h
@@ -32,6 +32,11 @@
 + (instancetype)toolbarButtonWithImageForNormalState:(UIImage*)normalImage
                             imageForHighlightedState:(UIImage*)highlightedImage
                                imageForDisabledState:(UIImage*)disabledImage;
+
+// Returns a ToolbarButton with a type system, using the |image| as image for
+// normal state.
++ (instancetype)toolbarButtonWithImage:(UIImage*)image;
+
 // Checks if the ToolbarButton should be visible in the current SizeClass,
 // afterwards it calls setHiddenForCurrentStateAndSizeClass if needed.
 - (void)updateHiddenInCurrentSizeClass;
diff --git a/ios/chrome/browser/ui/toolbar/buttons/toolbar_button.mm b/ios/chrome/browser/ui/toolbar/buttons/toolbar_button.mm
index 812bad6d..bf29fb34 100644
--- a/ios/chrome/browser/ui/toolbar/buttons/toolbar_button.mm
+++ b/ios/chrome/browser/ui/toolbar/buttons/toolbar_button.mm
@@ -30,6 +30,14 @@
   return button;
 }
 
++ (instancetype)toolbarButtonWithImage:(UIImage*)image {
+  ToolbarButton* button = [[self class] buttonWithType:UIButtonTypeSystem];
+  [button setImage:image forState:UIControlStateNormal];
+  button.titleLabel.textAlignment = NSTextAlignmentCenter;
+  button.translatesAutoresizingMaskIntoConstraints = NO;
+  return button;
+}
+
 - (void)layoutSubviews {
   [super layoutSubviews];
   // If the UIButton title has text it will center it on top of the image,
diff --git a/ios/chrome/browser/ui/toolbar/buttons/toolbar_button_factory.mm b/ios/chrome/browser/ui/toolbar/buttons/toolbar_button_factory.mm
index 6e39eb2..8f5ae58d 100644
--- a/ios/chrome/browser/ui/toolbar/buttons/toolbar_button_factory.mm
+++ b/ios/chrome/browser/ui/toolbar/buttons/toolbar_button_factory.mm
@@ -63,25 +63,34 @@
 - (ToolbarButton*)backButton {
   int backButtonImages[styleCount][TOOLBAR_STATE_COUNT] =
       TOOLBAR_IDR_THREE_STATE(BACK);
-  ToolbarButton* backButton = [ToolbarButton
-      toolbarButtonWithImageForNormalState:NativeReversableImage(
-                                               backButtonImages[self.style]
-                                                               [DEFAULT],
-                                               YES)
-                  imageForHighlightedState:NativeReversableImage(
-                                               backButtonImages[self.style]
-                                                               [PRESSED],
-                                               YES)
-                     imageForDisabledState:NativeReversableImage(
-                                               backButtonImages[self.style]
-                                                               [DISABLED],
-                                               YES)];
-  backButton.accessibilityLabel = l10n_util::GetNSString(IDS_ACCNAME_BACK);
-  [self configureButton:backButton width:kToolbarButtonWidth];
-  if (!IsIPadIdiom()) {
-    backButton.imageEdgeInsets =
-        UIEdgeInsetsMakeDirected(0, 0, 0, kBackButtonImageInset);
+  ToolbarButton* backButton = nil;
+  if (IsUIRefreshPhase1Enabled()) {
+    backButton = [ToolbarButton
+        toolbarButtonWithImage:[[UIImage imageNamed:@"toolbar_back"]
+                                   imageFlippedForRightToLeftLayoutDirection]];
+    [self configureButton:backButton width:kAdaptiveToolbarButtonWidth];
+  } else {
+    backButton = [ToolbarButton
+        toolbarButtonWithImageForNormalState:NativeReversableImage(
+                                                 backButtonImages[self.style]
+                                                                 [DEFAULT],
+                                                 YES)
+                    imageForHighlightedState:NativeReversableImage(
+                                                 backButtonImages[self.style]
+                                                                 [PRESSED],
+                                                 YES)
+                       imageForDisabledState:NativeReversableImage(
+                                                 backButtonImages[self.style]
+                                                                 [DISABLED],
+                                                 YES)];
+    [self configureButton:backButton width:kToolbarButtonWidth];
+    if (!IsIPadIdiom()) {
+      backButton.imageEdgeInsets =
+          UIEdgeInsetsMakeDirected(0, 0, 0, kBackButtonImageInset);
+    }
   }
+  DCHECK(backButton);
+  backButton.accessibilityLabel = l10n_util::GetNSString(IDS_ACCNAME_BACK);
   [backButton addTarget:self.dispatcher
                  action:@selector(goBack)
        forControlEvents:UIControlEventTouchUpInside];
@@ -106,25 +115,33 @@
 - (ToolbarTabGridButton*)tabGridButton {
   int tabGridButtonImages[styleCount][TOOLBAR_STATE_COUNT] =
       TOOLBAR_IDR_THREE_STATE(OVERVIEW);
-  ToolbarTabGridButton* tabGridButton = [ToolbarTabGridButton
-      toolbarButtonWithImageForNormalState:NativeImage(
-                                               tabGridButtonImages[self.style]
-                                                                  [DEFAULT])
-                  imageForHighlightedState:NativeImage(
-                                               tabGridButtonImages[self.style]
-                                                                  [PRESSED])
-                     imageForDisabledState:NativeImage(
-                                               tabGridButtonImages[self.style]
-                                                                  [DISABLED])];
+  ToolbarTabGridButton* tabGridButton = nil;
+  if (IsUIRefreshPhase1Enabled()) {
+    tabGridButton = [ToolbarTabGridButton
+        toolbarButtonWithImage:[UIImage imageNamed:@"toolbar_switcher"]];
+    [self configureButton:tabGridButton width:kAdaptiveToolbarButtonWidth];
+  } else {
+    tabGridButton = [ToolbarTabGridButton
+        toolbarButtonWithImageForNormalState:NativeImage(
+                                                 tabGridButtonImages[self.style]
+                                                                    [DEFAULT])
+                    imageForHighlightedState:NativeImage(
+                                                 tabGridButtonImages[self.style]
+                                                                    [PRESSED])
+                       imageForDisabledState:
+                           NativeImage(
+                               tabGridButtonImages[self.style][DISABLED])];
+    [self configureButton:tabGridButton width:kToolbarButtonWidth];
+    [tabGridButton
+        setTitleColor:[self.toolbarConfiguration buttonTitleNormalColor]
+             forState:UIControlStateNormal];
+    [tabGridButton
+        setTitleColor:[self.toolbarConfiguration buttonTitleHighlightedColor]
+             forState:UIControlStateHighlighted];
+  }
+  DCHECK(tabGridButton);
   SetA11yLabelAndUiAutomationName(tabGridButton, IDS_IOS_TOOLBAR_SHOW_TABS,
                                   kToolbarStackButtonIdentifier);
-  [tabGridButton
-      setTitleColor:[self.toolbarConfiguration buttonTitleNormalColor]
-           forState:UIControlStateNormal];
-  [tabGridButton
-      setTitleColor:[self.toolbarConfiguration buttonTitleHighlightedColor]
-           forState:UIControlStateHighlighted];
-  [self configureButton:tabGridButton width:kToolbarButtonWidth];
 
   // TODO(crbug.com/799601): Delete this once its not needed.
   if (base::FeatureList::IsEnabled(kMemexTabSwitcher)) {
@@ -167,8 +184,9 @@
   SetA11yLabelAndUiAutomationName(toolsMenuButton, IDS_IOS_TOOLBAR_SETTINGS,
                                   kToolbarToolsMenuButtonIdentifier);
   if (IsUIRefreshPhase1Enabled()) {
-    [self configureButton:toolsMenuButton width:kToolbarButtonWidth];
-    [toolsMenuButton.heightAnchor constraintEqualToConstant:kToolbarHeight]
+    [self configureButton:toolsMenuButton width:kAdaptiveToolbarButtonWidth];
+    [toolsMenuButton.heightAnchor
+        constraintEqualToConstant:kAdaptiveToolbarButtonWidth]
         .active = YES;
   } else {
     [self configureButton:toolsMenuButton width:kToolsMenuButtonWidth];
@@ -184,19 +202,27 @@
 - (ToolbarButton*)shareButton {
   int shareButtonImages[styleCount][TOOLBAR_STATE_COUNT] =
       TOOLBAR_IDR_THREE_STATE(SHARE);
-  ToolbarButton* shareButton = [ToolbarButton
-      toolbarButtonWithImageForNormalState:NativeImage(
-                                               shareButtonImages[self.style]
-                                                                [DEFAULT])
-                  imageForHighlightedState:NativeImage(
-                                               shareButtonImages[self.style]
-                                                                [PRESSED])
-                     imageForDisabledState:NativeImage(
-                                               shareButtonImages[self.style]
-                                                                [DISABLED])];
+  ToolbarButton* shareButton = nil;
+  if (IsUIRefreshPhase1Enabled()) {
+    shareButton = [ToolbarButton
+        toolbarButtonWithImage:[UIImage imageNamed:@"toolbar_share"]];
+    [self configureButton:shareButton width:kAdaptiveToolbarButtonWidth];
+  } else {
+    shareButton = [ToolbarButton
+        toolbarButtonWithImageForNormalState:NativeImage(
+                                                 shareButtonImages[self.style]
+                                                                  [DEFAULT])
+                    imageForHighlightedState:NativeImage(
+                                                 shareButtonImages[self.style]
+                                                                  [PRESSED])
+                       imageForDisabledState:NativeImage(
+                                                 shareButtonImages[self.style]
+                                                                  [DISABLED])];
+    [self configureButton:shareButton width:kToolbarButtonWidth];
+  }
+  DCHECK(shareButton);
   SetA11yLabelAndUiAutomationName(shareButton, IDS_IOS_TOOLS_MENU_SHARE,
                                   kToolbarShareButtonIdentifier);
-  [self configureButton:shareButton width:kToolbarButtonWidth];
   shareButton.titleLabel.text = @"Share";
   [shareButton addTarget:self.dispatcher
                   action:@selector(sharePage)
@@ -209,22 +235,31 @@
 - (ToolbarButton*)reloadButton {
   int reloadButtonImages[styleCount][TOOLBAR_STATE_COUNT] =
       TOOLBAR_IDR_THREE_STATE(RELOAD);
-  ToolbarButton* reloadButton = [ToolbarButton
-      toolbarButtonWithImageForNormalState:NativeReversableImage(
-                                               reloadButtonImages[self.style]
-                                                                 [DEFAULT],
-                                               YES)
-                  imageForHighlightedState:NativeReversableImage(
-                                               reloadButtonImages[self.style]
-                                                                 [PRESSED],
-                                               YES)
-                     imageForDisabledState:NativeReversableImage(
-                                               reloadButtonImages[self.style]
-                                                                 [DISABLED],
-                                               YES)];
+  ToolbarButton* reloadButton = nil;
+  if (IsUIRefreshPhase1Enabled()) {
+    reloadButton = [ToolbarButton
+        toolbarButtonWithImage:[[UIImage imageNamed:@"toolbar_reload"]
+                                   imageFlippedForRightToLeftLayoutDirection]];
+    [self configureButton:reloadButton width:kAdaptiveToolbarButtonWidth];
+  } else {
+    reloadButton = [ToolbarButton
+        toolbarButtonWithImageForNormalState:NativeReversableImage(
+                                                 reloadButtonImages[self.style]
+                                                                   [DEFAULT],
+                                                 YES)
+                    imageForHighlightedState:NativeReversableImage(
+                                                 reloadButtonImages[self.style]
+                                                                   [PRESSED],
+                                                 YES)
+                       imageForDisabledState:NativeReversableImage(
+                                                 reloadButtonImages[self.style]
+                                                                   [DISABLED],
+                                                 YES)];
+    [self configureButton:reloadButton width:kToolbarButtonWidth];
+  }
+  DCHECK(reloadButton);
   reloadButton.accessibilityLabel =
       l10n_util::GetNSString(IDS_IOS_ACCNAME_RELOAD);
-  [self configureButton:reloadButton width:kToolbarButtonWidth];
   [reloadButton addTarget:self.dispatcher
                    action:@selector(reload)
          forControlEvents:UIControlEventTouchUpInside];
@@ -236,18 +271,26 @@
 - (ToolbarButton*)stopButton {
   int stopButtonImages[styleCount][TOOLBAR_STATE_COUNT] =
       TOOLBAR_IDR_THREE_STATE(STOP);
-  ToolbarButton* stopButton = [ToolbarButton
-      toolbarButtonWithImageForNormalState:NativeImage(
-                                               stopButtonImages[self.style]
-                                                               [DEFAULT])
-                  imageForHighlightedState:NativeImage(
-                                               stopButtonImages[self.style]
-                                                               [PRESSED])
-                     imageForDisabledState:NativeImage(
-                                               stopButtonImages[self.style]
-                                                               [DISABLED])];
+  ToolbarButton* stopButton = nil;
+  if (IsUIRefreshPhase1Enabled()) {
+    stopButton = [ToolbarButton
+        toolbarButtonWithImage:[UIImage imageNamed:@"toolbar_stop"]];
+    [self configureButton:stopButton width:kAdaptiveToolbarButtonWidth];
+  } else {
+    stopButton = [ToolbarButton
+        toolbarButtonWithImageForNormalState:NativeImage(
+                                                 stopButtonImages[self.style]
+                                                                 [DEFAULT])
+                    imageForHighlightedState:NativeImage(
+                                                 stopButtonImages[self.style]
+                                                                 [PRESSED])
+                       imageForDisabledState:NativeImage(
+                                                 stopButtonImages[self.style]
+                                                                 [DISABLED])];
+    [self configureButton:stopButton width:kToolbarButtonWidth];
+  }
+  DCHECK(stopButton);
   stopButton.accessibilityLabel = l10n_util::GetNSString(IDS_IOS_ACCNAME_STOP);
-  [self configureButton:stopButton width:kToolbarButtonWidth];
   [stopButton addTarget:self.dispatcher
                  action:@selector(stopLoading)
        forControlEvents:UIControlEventTouchUpInside];
@@ -258,20 +301,28 @@
 - (ToolbarButton*)bookmarkButton {
   int bookmarkButtonImages[styleCount][TOOLBAR_STATE_COUNT] =
       TOOLBAR_IDR_TWO_STATE(STAR);
-  ToolbarButton* bookmarkButton = [ToolbarButton
-      toolbarButtonWithImageForNormalState:NativeImage(
-                                               bookmarkButtonImages[self.style]
-                                                                   [DEFAULT])
-                  imageForHighlightedState:NativeImage(
-                                               bookmarkButtonImages[self.style]
-                                                                   [PRESSED])
-                     imageForDisabledState:nil];
+  ToolbarButton* bookmarkButton = nil;
+  if (IsUIRefreshPhase1Enabled()) {
+    bookmarkButton = [ToolbarButton
+        toolbarButtonWithImage:[UIImage imageNamed:@"toolbar_bookmark"]];
+    [bookmarkButton setImage:[UIImage imageNamed:@"toolbar_bookmark_active"]
+                    forState:UIControlStateHighlighted];
+    [self configureButton:bookmarkButton width:kAdaptiveToolbarButtonWidth];
+  } else {
+    bookmarkButton = [ToolbarButton
+        toolbarButtonWithImageForNormalState:
+            NativeImage(bookmarkButtonImages[self.style][DEFAULT])
+                    imageForHighlightedState:
+                        NativeImage(bookmarkButtonImages[self.style][PRESSED])
+                       imageForDisabledState:nil];
+    [self configureButton:bookmarkButton width:kToolbarButtonWidth];
+  }
+  DCHECK(bookmarkButton);
   bookmarkButton.adjustsImageWhenHighlighted = NO;
   [bookmarkButton
-      setImage:NativeImage(bookmarkButtonImages[self.style][PRESSED])
+      setImage:[bookmarkButton imageForState:UIControlStateHighlighted]
       forState:UIControlStateSelected];
   bookmarkButton.accessibilityLabel = l10n_util::GetNSString(IDS_TOOLTIP_STAR);
-  [self configureButton:bookmarkButton width:kToolbarButtonWidth];
   [bookmarkButton addTarget:self.dispatcher
                      action:@selector(bookmarkPage)
            forControlEvents:UIControlEventTouchUpInside];
@@ -319,11 +370,16 @@
 }
 
 - (ToolbarButton*)omniboxButton {
-  ToolbarButton* omniboxButton = [ToolbarButton
-      toolbarButtonWithImageForNormalState:NativeImage(IDR_IOS_OMNIBOX_SEARCH)
-                  imageForHighlightedState:NativeImage(IDR_IOS_OMNIBOX_SEARCH)
-                     imageForDisabledState:nil];
-  [self configureButton:omniboxButton width:kToolbarButtonWidth];
+  UIImage* searchButtonImage = ios::GetChromeBrowserProvider()
+                                   ->GetBrandedImageProvider()
+                                   ->GetToolbarSearchButtonImage();
+  if (!searchButtonImage) {
+    searchButtonImage = [UIImage imageNamed:@"toolbar_search"];
+  }
+  ToolbarButton* omniboxButton =
+      [ToolbarButton toolbarButtonWithImage:searchButtonImage];
+
+  [self configureButton:omniboxButton width:kAdaptiveToolbarButtonWidth];
   [omniboxButton addTarget:self.dispatcher
                     action:@selector(focusOmnibox)
           forControlEvents:UIControlEventTouchUpInside];
@@ -385,6 +441,9 @@
       [button.widthAnchor constraintEqualToConstant:width];
   constraint.priority = UILayoutPriorityRequired - 1;
   constraint.active = YES;
+  if (IsUIRefreshPhase1Enabled()) {
+    button.tintColor = self.toolbarConfiguration.buttonsTintColor;
+  }
 }
 
 - (NSArray<UIImage*>*)voiceSearchImages {
@@ -415,26 +474,35 @@
 - (ToolbarButton*)forwardButton {
   int forwardButtonImages[styleCount][TOOLBAR_STATE_COUNT] =
       TOOLBAR_IDR_THREE_STATE(FORWARD);
-  ToolbarButton* forwardButton = [ToolbarButton
-      toolbarButtonWithImageForNormalState:NativeReversableImage(
-                                               forwardButtonImages[self.style]
-                                                                  [DEFAULT],
-                                               YES)
-                  imageForHighlightedState:NativeReversableImage(
-                                               forwardButtonImages[self.style]
-                                                                  [PRESSED],
-                                               YES)
-                     imageForDisabledState:NativeReversableImage(
-                                               forwardButtonImages[self.style]
-                                                                  [DISABLED],
-                                               YES)];
+  ToolbarButton* forwardButton = nil;
+  if (IsUIRefreshPhase1Enabled()) {
+    forwardButton = [ToolbarButton
+        toolbarButtonWithImage:[[UIImage imageNamed:@"toolbar_forward"]
+                                   imageFlippedForRightToLeftLayoutDirection]];
+    [self configureButton:forwardButton width:kAdaptiveToolbarButtonWidth];
+  } else {
+    forwardButton = [ToolbarButton
+        toolbarButtonWithImageForNormalState:NativeReversableImage(
+                                                 forwardButtonImages[self.style]
+                                                                    [DEFAULT],
+                                                 YES)
+                    imageForHighlightedState:NativeReversableImage(
+                                                 forwardButtonImages[self.style]
+                                                                    [PRESSED],
+                                                 YES)
+                       imageForDisabledState:NativeReversableImage(
+                                                 forwardButtonImages[self.style]
+                                                                    [DISABLED],
+                                                 YES)];
+    [self configureButton:forwardButton width:kToolbarButtonWidth];
+    if (!IsIPadIdiom()) {
+      forwardButton.imageEdgeInsets =
+          UIEdgeInsetsMakeDirected(0, kForwardButtonImageInset, 0, 0);
+    }
+  }
+  DCHECK(forwardButton);
   forwardButton.accessibilityLabel =
       l10n_util::GetNSString(IDS_ACCNAME_FORWARD);
-  if (!IsIPadIdiom()) {
-    forwardButton.imageEdgeInsets =
-        UIEdgeInsetsMakeDirected(0, kForwardButtonImageInset, 0, 0);
-  }
-  [self configureButton:forwardButton width:kToolbarButtonWidth];
   [forwardButton addTarget:self.dispatcher
                     action:@selector(goForward)
           forControlEvents:UIControlEventTouchUpInside];
diff --git a/ios/chrome/browser/ui/toolbar/buttons/toolbar_configuration.h b/ios/chrome/browser/ui/toolbar/buttons/toolbar_configuration.h
index 0d17bd0..762f597f 100644
--- a/ios/chrome/browser/ui/toolbar/buttons/toolbar_configuration.h
+++ b/ios/chrome/browser/ui/toolbar/buttons/toolbar_configuration.h
@@ -38,6 +38,9 @@
 // TODO(crbug.com/800266): Remove this property.
 @property(nonatomic, readonly) UIColor* omniboxBorderColor;
 
+// Tint color of the buttons.
+@property(nonatomic, readonly) UIColor* buttonsTintColor;
+
 // Color of the title of the buttons for the normal state.
 @property(nonatomic, readonly) UIColor* buttonTitleNormalColor;
 
diff --git a/ios/chrome/browser/ui/toolbar/buttons/toolbar_configuration.mm b/ios/chrome/browser/ui/toolbar/buttons/toolbar_configuration.mm
index 7857ccf..24a2b3f 100644
--- a/ios/chrome/browser/ui/toolbar/buttons/toolbar_configuration.mm
+++ b/ios/chrome/browser/ui/toolbar/buttons/toolbar_configuration.mm
@@ -86,6 +86,16 @@
   }
 }
 
+- (UIColor*)buttonsTintColor {
+  DCHECK(IsUIRefreshPhase1Enabled());
+  switch (self.style) {
+    case NORMAL:
+      return [UIColor colorWithWhite:0 alpha:kToolbarButtonTintColorAlpha];
+    case INCOGNITO:
+      return [UIColor colorWithWhite:1 alpha:1];
+  }
+}
+
 - (UIColor*)buttonTitleNormalColor {
   switch (self.style) {
     case NORMAL:
diff --git a/ios/chrome/browser/ui/toolbar/buttons/toolbar_constants.h b/ios/chrome/browser/ui/toolbar/buttons/toolbar_constants.h
index f46cf90..25893fd0 100644
--- a/ios/chrome/browser/ui/toolbar/buttons/toolbar_constants.h
+++ b/ios/chrome/browser/ui/toolbar/buttons/toolbar_constants.h
@@ -43,6 +43,7 @@
 
 // Toolbar Buttons.
 extern const CGFloat kToolsMenuButtonWidth;
+extern const CGFloat kAdaptiveToolbarButtonWidth;
 extern const CGFloat kToolbarButtonWidth;
 extern const CGFloat kLeadingLocationBarButtonWidth;
 extern const CGFloat kToolbarButtonTitleNormalColor;
@@ -54,6 +55,9 @@
 extern const CGFloat kLeadingLocationBarButtonImageInset;
 extern const CGFloat kCancelButtonHorizontalInset;
 
+// Alpha for the tint color of the buttons.
+extern const CGFloat kToolbarButtonTintColorAlpha;
+
 // Maximum number of tabs displayed by the button containing the tab count.
 extern const NSInteger kShowTabStripButtonMaxTabCount;
 
diff --git a/ios/chrome/browser/ui/toolbar/buttons/toolbar_constants.mm b/ios/chrome/browser/ui/toolbar/buttons/toolbar_constants.mm
index 07596731..00260ce1 100644
--- a/ios/chrome/browser/ui/toolbar/buttons/toolbar_constants.mm
+++ b/ios/chrome/browser/ui/toolbar/buttons/toolbar_constants.mm
@@ -29,6 +29,7 @@
 const CGFloat kProgressBarHeight = 2.0f;
 
 const CGFloat kToolsMenuButtonWidth = 44.0f;
+const CGFloat kAdaptiveToolbarButtonWidth = 44.0f;
 const CGFloat kToolbarButtonWidth = 48.0f;
 const CGFloat kLeadingLocationBarButtonWidth = 40.0f;
 const CGFloat kToolbarButtonTitleNormalColor = 0x555555;
@@ -41,6 +42,8 @@
 const CGFloat kLeadingLocationBarButtonImageInset = 15;
 const CGFloat kCancelButtonHorizontalInset = 8;
 
+const CGFloat kToolbarButtonTintColorAlpha = 0.5;
+
 const NSInteger kShowTabStripButtonMaxTabCount = 99;
 
 const LayoutOffset kToolbarButtonAnimationOffset = -10.0;
diff --git a/ios/chrome/browser/web/chrome_web_client.h b/ios/chrome/browser/web/chrome_web_client.h
index ef53240..ad623c1 100644
--- a/ios/chrome/browser/web/chrome_web_client.h
+++ b/ios/chrome/browser/web/chrome_web_client.h
@@ -22,7 +22,6 @@
   std::unique_ptr<web::WebMainParts> CreateWebMainParts() override;
   void PreWebViewCreation() const override;
   void AddAdditionalSchemes(Schemes* schemes) const override;
-  std::string GetAcceptLangs(web::BrowserState* state) const override;
   std::string GetApplicationLocale() const override;
   bool IsAppSpecificURL(const GURL& url) const override;
   base::string16 GetPluginNotSupportedText() const override;
diff --git a/ios/chrome/browser/web/chrome_web_client.mm b/ios/chrome/browser/web/chrome_web_client.mm
index 45086e3..4c5beaf 100644
--- a/ios/chrome/browser/web/chrome_web_client.mm
+++ b/ios/chrome/browser/web/chrome_web_client.mm
@@ -13,7 +13,6 @@
 #include "base/strings/sys_string_conversions.h"
 #include "components/dom_distiller/core/url_constants.h"
 #include "components/payments/core/features.h"
-#include "components/prefs/pref_service.h"
 #include "components/strings/grit/components_strings.h"
 #include "components/version_info/version_info.h"
 #include "ios/chrome/browser/application_context.h"
@@ -24,7 +23,6 @@
 #include "ios/chrome/browser/experimental_flags.h"
 #include "ios/chrome/browser/ios_chrome_main_parts.h"
 #include "ios/chrome/browser/passwords/credential_manager_features.h"
-#include "ios/chrome/browser/pref_names.h"
 #include "ios/chrome/browser/ssl/ios_ssl_error_handler.h"
 #import "ios/chrome/browser/ui/chrome_web_view_factory.h"
 #include "ios/chrome/browser/unzip/unzip_service_creator.h"
@@ -93,12 +91,6 @@
   schemes->secure_schemes.push_back(kChromeUIScheme);
 }
 
-std::string ChromeWebClient::GetAcceptLangs(web::BrowserState* state) const {
-  ios::ChromeBrowserState* chrome_browser_state =
-      ios::ChromeBrowserState::FromBrowserState(state);
-  return chrome_browser_state->GetPrefs()->GetString(prefs::kAcceptLanguages);
-}
-
 std::string ChromeWebClient::GetApplicationLocale() const {
   DCHECK(GetApplicationContext());
   return GetApplicationContext()->GetApplicationLocale();
diff --git a/ios/chrome/test/app/chrome_test_util.h b/ios/chrome/test/app/chrome_test_util.h
index 4ca2643..160d7ce 100644
--- a/ios/chrome/test/app/chrome_test_util.h
+++ b/ios/chrome/test/app/chrome_test_util.h
@@ -15,7 +15,6 @@
 
 @protocol ApplicationCommands;
 @class DeviceSharingManager;
-@class GenericChromeCommand;
 @class MainController;
 @class NewTabPageController;
 @class UIViewController;
diff --git a/ios/chrome/test/app/history_test_util.mm b/ios/chrome/test/app/history_test_util.mm
index fb0277f..ede61dd 100644
--- a/ios/chrome/test/app/history_test_util.mm
+++ b/ios/chrome/test/app/history_test_util.mm
@@ -6,7 +6,6 @@
 
 #include "components/browsing_data/core/browsing_data_utils.h"
 #import "ios/chrome/app/main_controller.h"
-#import "ios/chrome/app/main_controller_private.h"
 #include "ios/chrome/browser/browser_state/chrome_browser_state.h"
 #include "ios/chrome/browser/browsing_data/browsing_data_remove_mask.h"
 #import "ios/chrome/test/app/chrome_test_util.h"
@@ -19,16 +18,14 @@
 namespace chrome_test_util {
 
 bool ClearBrowsingHistory() {
-  MainController* main_controller = GetMainController();
-  ios::ChromeBrowserState* active_state = GetOriginalBrowserState();
   __block bool did_complete = false;
-  [main_controller
-      removeBrowsingDataFromBrowserState:active_state
-                                    mask:BrowsingDataRemoveMask::REMOVE_HISTORY
-                              timePeriod:browsing_data::TimePeriod::ALL_TIME
-                       completionHandler:^{
-                         did_complete = true;
-                       }];
+  [GetMainController()
+      removeBrowsingDataForBrowserState:GetOriginalBrowserState()
+                             timePeriod:browsing_data::TimePeriod::ALL_TIME
+                             removeMask:BrowsingDataRemoveMask::REMOVE_HISTORY
+                        completionBlock:^{
+                          did_complete = true;
+                        }];
   return testing::WaitUntilConditionOrTimeout(testing::kWaitForUIElementTimeout,
                                               ^{
                                                 return did_complete;
diff --git a/ios/public/provider/chrome/browser/images/branded_image_provider.h b/ios/public/provider/chrome/browser/images/branded_image_provider.h
index 55a2f1f01..884d863 100644
--- a/ios/public/provider/chrome/browser/images/branded_image_provider.h
+++ b/ios/public/provider/chrome/browser/images/branded_image_provider.h
@@ -45,6 +45,9 @@
   // Returns the 24pt x 24pt image corresponding to the given icon |type|.
   virtual UIImage* GetWhatsNewIconImage(WhatsNewIcon type);
 
+  // Returns the image to use for the "search the web" button.
+  virtual UIImage* GetToolbarSearchButtonImage();
+
  private:
   DISALLOW_COPY_AND_ASSIGN(BrandedImageProvider);
 };
diff --git a/ios/public/provider/chrome/browser/images/branded_image_provider.mm b/ios/public/provider/chrome/browser/images/branded_image_provider.mm
index 46d62741..1844d6d 100644
--- a/ios/public/provider/chrome/browser/images/branded_image_provider.mm
+++ b/ios/public/provider/chrome/browser/images/branded_image_provider.mm
@@ -41,3 +41,7 @@
 UIImage* BrandedImageProvider::GetWhatsNewIconImage(WhatsNewIcon type) {
   return nil;
 }
+
+UIImage* BrandedImageProvider::GetToolbarSearchButtonImage() {
+  return nil;
+}
diff --git a/ios/showcase/tab_grid/sc_tab_grid_coordinator.mm b/ios/showcase/tab_grid/sc_tab_grid_coordinator.mm
index 5c1f501..ac58f43 100644
--- a/ios/showcase/tab_grid/sc_tab_grid_coordinator.mm
+++ b/ios/showcase/tab_grid/sc_tab_grid_coordinator.mm
@@ -4,8 +4,10 @@
 
 #import "ios/showcase/tab_grid/sc_tab_grid_coordinator.h"
 
+#import "ios/chrome/browser/ui/tab_grid/grid_consumer.h"
 #import "ios/chrome/browser/ui/tab_grid/grid_item.h"
 #import "ios/chrome/browser/ui/tab_grid/tab_grid_view_controller.h"
+#import "ios/showcase/common/protocol_alerter.h"
 
 #if !defined(__has_feature) || !__has_feature(objc_arc)
 #error "This file requires ARC support."
@@ -13,18 +15,43 @@
 
 @interface SCTabGridCoordinator ()<UINavigationControllerDelegate>
 @property(nonatomic, strong) TabGridViewController* viewController;
+@property(nonatomic, strong) ProtocolAlerter* alerter;
 @end
 
 @implementation SCTabGridCoordinator
 @synthesize baseViewController = _baseViewController;
 @synthesize viewController = _viewController;
+@synthesize alerter = _alerter;
 
 - (void)start {
+  self.alerter = [[ProtocolAlerter alloc]
+      initWithProtocols:@[ @protocol(GridViewControllerDelegate) ]];
   self.viewController = [[TabGridViewController alloc] init];
+  self.alerter.baseViewController = self.viewController;
+  self.viewController.incognitoTabsDelegate =
+      static_cast<id<GridViewControllerDelegate>>(self.alerter);
+  self.viewController.regularTabsDelegate =
+      static_cast<id<GridViewControllerDelegate>>(self.alerter);
   self.viewController.title = @"Full TabGrid UI";
   self.baseViewController.delegate = self;
   self.baseViewController.hidesBarsOnSwipe = YES;
   [self.baseViewController pushViewController:self.viewController animated:YES];
+
+  NSMutableArray* items = [[NSMutableArray alloc] init];
+  for (int i = 0; i < 10; i++) {
+    GridItem* item = [[GridItem alloc] init];
+    item.title = @"YouTube - Cat Videos";
+    [items addObject:item];
+  }
+  [self.viewController.incognitoTabsConsumer populateItems:items
+                                             selectedIndex:0];
+  items = [[NSMutableArray alloc] init];
+  for (int i = 0; i < 10; i++) {
+    GridItem* item = [[GridItem alloc] init];
+    item.title = @"The New York Times - Breaking News";
+    [items addObject:item];
+  }
+  [self.viewController.regularTabsConsumer populateItems:items selectedIndex:0];
 }
 
 #pragma mark - UINavigationControllerDelegate
@@ -34,16 +61,6 @@
 - (void)navigationController:(UINavigationController*)navigationController
        didShowViewController:(UIViewController*)viewController
                     animated:(BOOL)animated {
-  if (viewController != self.viewController)
-    return;
-
-  NSMutableArray* items = [[NSMutableArray alloc] init];
-  for (int i = 0; i < 10; i++) {
-    GridItem* item = [[GridItem alloc] init];
-    item.title = @"The New York Times - Breaking News";
-    [items addObject:item];
-  }
-  [self.viewController.regularTabsConsumer populateItems:items selectedIndex:0];
 }
 
 @end
diff --git a/ios/web/public/web_client.h b/ios/web/public/web_client.h
index f025210..57bc943 100644
--- a/ios/web/public/web_client.h
+++ b/ios/web/public/web_client.h
@@ -77,10 +77,6 @@
   // schemes early on in the startup sequence.
   virtual void AddAdditionalSchemes(Schemes* schemes) const {}
 
-  // Returns the languages used in the Accept-Languages HTTP header.
-  // Used to decide URL formatting.
-  virtual std::string GetAcceptLangs(BrowserState* state) const;
-
   // Returns the embedding application locale string.
   virtual std::string GetApplicationLocale() const;
 
diff --git a/ios/web/web_client.mm b/ios/web/web_client.mm
index 905979ee..99a883d4 100644
--- a/ios/web/web_client.mm
+++ b/ios/web/web_client.mm
@@ -36,10 +36,6 @@
   return nullptr;
 }
 
-std::string WebClient::GetAcceptLangs(BrowserState* state) const {
-  return std::string();
-}
-
 std::string WebClient::GetApplicationLocale() const {
   return "en-US";
 }
diff --git a/ios/web_view/BUILD.gn b/ios/web_view/BUILD.gn
index eb15b8d..d12c553 100644
--- a/ios/web_view/BUILD.gn
+++ b/ios/web_view/BUILD.gn
@@ -4,6 +4,7 @@
 
 import("//build/config/ios/ios_sdk.gni")
 import("//build/config/ios/rules.gni")
+import("//components/cronet/native/include/headers.gni")
 import("//components/grpc_support/include/headers.gni")
 import("//ios/build/config.gni")
 import("//ios/web/js_compile.gni")
@@ -224,6 +225,7 @@
   if (ios_web_view_include_cronet) {
     public_headers += [ "//components/cronet/ios/Cronet.h" ]
     public_headers += grpc_public_headers
+    public_headers += cronet_native_public_headers
   }
 
   public = [
diff --git a/ios/web_view/internal/autofill/web_view_personal_data_manager_factory.cc b/ios/web_view/internal/autofill/web_view_personal_data_manager_factory.cc
index 72be3a7..50098c8 100644
--- a/ios/web_view/internal/autofill/web_view_personal_data_manager_factory.cc
+++ b/ios/web_view/internal/autofill/web_view_personal_data_manager_factory.cc
@@ -13,8 +13,7 @@
 #include "components/keyed_service/ios/browser_state_dependency_manager.h"
 #include "components/signin/core/browser/signin_manager.h"
 #include "ios/web_view/internal/app/application_context.h"
-#include "ios/web_view/internal/signin/web_view_account_tracker_service_factory.h"
-#include "ios/web_view/internal/signin/web_view_signin_manager_factory.h"
+#include "ios/web_view/internal/signin/web_view_identity_manager_factory.h"
 #include "ios/web_view/internal/web_view_browser_state.h"
 #include "ios/web_view/internal/webdata_services/web_view_web_data_service_wrapper_factory.h"
 
@@ -38,8 +37,7 @@
     : BrowserStateKeyedServiceFactory(
           "PersonalDataManager",
           BrowserStateDependencyManager::GetInstance()) {
-  DependsOn(WebViewAccountTrackerServiceFactory::GetInstance());
-  DependsOn(WebViewSigninManagerFactory::GetInstance());
+  DependsOn(WebViewIdentityManagerFactory::GetInstance());
   DependsOn(WebViewWebDataServiceWrapperFactory::GetInstance());
 }
 
@@ -57,8 +55,8 @@
       WebViewWebDataServiceWrapperFactory::GetAutofillWebDataForBrowserState(
           browser_state, ServiceAccessType::EXPLICIT_ACCESS),
       browser_state->GetPrefs(),
-      WebViewAccountTrackerServiceFactory::GetForBrowserState(browser_state),
-      WebViewSigninManagerFactory::GetForBrowserState(browser_state),
+      WebViewIdentityManagerFactory::GetInstance()->GetForBrowserState(
+          browser_state),
       browser_state->IsOffTheRecord());
   return service;
 }
diff --git a/ios/web_view/internal/cwv_web_view.mm b/ios/web_view/internal/cwv_web_view.mm
index 23fdd164..709df8b 100644
--- a/ios/web_view/internal/cwv_web_view.mm
+++ b/ios/web_view/internal/cwv_web_view.mm
@@ -86,6 +86,8 @@
 - (void)updateTitle;
 // Returns a new CWVAutofillController created from |_webState|.
 - (CWVAutofillController*)newAutofillController;
+// Returns a new CWVTranslationController created from |_webState|.
+- (CWVTranslationController*)newTranslationController;
 
 @end
 
@@ -390,12 +392,19 @@
 
 - (CWVTranslationController*)translationController {
   if (!_translationController) {
-    _translationController = [[CWVTranslationController alloc] init];
-    _translationController.webState = _webState.get();
+    _translationController = [self newTranslationController];
   }
   return _translationController;
 }
 
+- (CWVTranslationController*)newTranslationController {
+  ios_web_view::WebViewTranslateClient::CreateForWebState(_webState.get());
+  ios_web_view::WebViewTranslateClient* translateClient =
+      ios_web_view::WebViewTranslateClient::FromWebState(_webState.get());
+  return [[CWVTranslationController alloc]
+      initWithTranslateClient:translateClient];
+}
+
 #pragma mark - Autofill
 
 - (CWVAutofillController*)autofillController {
@@ -482,7 +491,12 @@
 
   _scrollView.proxy = _webState.get()->GetWebViewProxy().scrollViewProxy;
 
-  _translationController.webState = _webState.get();
+  if (_translationController) {
+    id<CWVTranslationControllerDelegate> delegate =
+        _translationController.delegate;
+    _translationController = [self newTranslationController];
+    _translationController.delegate = delegate;
+  }
 
   // Recreate and restore the delegate only if previously lazily loaded.
   if (_autofillController) {
diff --git a/ios/web_view/internal/translate/cwv_translation_controller.mm b/ios/web_view/internal/translate/cwv_translation_controller.mm
index d4c9c016..de937a6c 100644
--- a/ios/web_view/internal/translate/cwv_translation_controller.mm
+++ b/ios/web_view/internal/translate/cwv_translation_controller.mm
@@ -12,7 +12,6 @@
 #include "components/translate/core/browser/translate_download_manager.h"
 #include "components/translate/core/browser/translate_manager.h"
 #import "ios/web_view/internal/cwv_web_view_configuration_internal.h"
-#import "ios/web_view/internal/language/web_view_url_language_histogram_factory.h"
 #import "ios/web_view/internal/translate/cwv_translation_language_internal.h"
 #import "ios/web_view/internal/translate/web_view_translate_client.h"
 #include "ios/web_view/internal/web_view_browser_state.h"
@@ -66,29 +65,19 @@
 
 @synthesize delegate = _delegate;
 @synthesize supportedLanguagesByCode = _supportedLanguagesByCode;
-@synthesize webState = _webState;
 
 #pragma mark - Internal Methods
 
-- (void)setWebState:(web::WebState*)webState {
-  _webState = webState;
+- (instancetype)initWithTranslateClient:
+    (ios_web_view::WebViewTranslateClient*)translateClient {
+  self = [super init];
+  if (self) {
+    _translateClient = translateClient;
+    _translateClient->set_translation_controller(self);
 
-  ios_web_view::WebViewTranslateClient::CreateForWebState(_webState);
-  language::IOSLanguageDetectionTabHelper::CreateForWebState(
-      _webState,
-      ios_web_view::WebViewTranslateClient::FromWebState(_webState)
-          ->GetTranslateDriver()
-          ->CreateLanguageDetectionCallback(),
-      ios_web_view::WebViewUrlLanguageHistogramFactory::GetForBrowserState(
-          ios_web_view::WebViewBrowserState::FromBrowserState(
-              _webState->GetBrowserState())));
-
-  _translateClient =
-      ios_web_view::WebViewTranslateClient::FromWebState(_webState);
-  _translateClient->set_translation_controller(self);
-  _translatePrefs = _translateClient->translate_manager()
-                        ->translate_client()
-                        ->GetTranslatePrefs();
+    _translatePrefs = _translateClient->GetTranslatePrefs();
+  }
+  return self;
 }
 
 - (void)updateTranslateStep:(translate::TranslateStep)step
diff --git a/ios/web_view/internal/translate/cwv_translation_controller_internal.h b/ios/web_view/internal/translate/cwv_translation_controller_internal.h
index 8364084..aa7d3e0 100644
--- a/ios/web_view/internal/translate/cwv_translation_controller_internal.h
+++ b/ios/web_view/internal/translate/cwv_translation_controller_internal.h
@@ -12,17 +12,18 @@
 #include "components/translate/core/browser/translate_step.h"
 #include "components/translate/core/common/translate_errors.h"
 
-namespace web {
-class WebState;
-}
+namespace ios_web_view {
+class WebViewTranslateClient;
+}  // namespace ios_web_view
 
 NS_ASSUME_NONNULL_BEGIN
 
 // Some internal methods needed to hide any C++ details.
 @interface CWVTranslationController ()
 
-// Set to create a new translate stack under the new webState.
-@property(nonatomic, assign) web::WebState* webState;
+- (instancetype)initWithTranslateClient:
+    (ios_web_view::WebViewTranslateClient*)translateClient
+    NS_DESIGNATED_INITIALIZER;
 
 // Called to keep this class informed of the current translate progress.
 // |step| the state of current translation.
diff --git a/ios/web_view/internal/translate/web_view_translate_client.mm b/ios/web_view/internal/translate/web_view_translate_client.mm
index 38bd9125..5c18613 100644
--- a/ios/web_view/internal/translate/web_view_translate_client.mm
+++ b/ios/web_view/internal/translate/web_view_translate_client.mm
@@ -19,6 +19,7 @@
 #include "ios/web/public/browser_state.h"
 #import "ios/web/public/web_state/web_state.h"
 #include "ios/web_view/internal/language/web_view_language_model_factory.h"
+#import "ios/web_view/internal/language/web_view_url_language_histogram_factory.h"
 #include "ios/web_view/internal/pref_names.h"
 #import "ios/web_view/internal/translate/cwv_translation_controller_internal.h"
 #include "ios/web_view/internal/translate/web_view_translate_accept_languages_factory.h"
@@ -45,6 +46,11 @@
                         web_state->GetNavigationManager(),
                         translate_manager_.get()) {
   web_state->AddObserver(this);
+  language::IOSLanguageDetectionTabHelper::CreateForWebState(
+      web_state, translate_driver_.CreateLanguageDetectionCallback(),
+      ios_web_view::WebViewUrlLanguageHistogramFactory::GetForBrowserState(
+          ios_web_view::WebViewBrowserState::FromBrowserState(
+              web_state->GetBrowserState())));
 }
 
 WebViewTranslateClient::~WebViewTranslateClient() = default;
diff --git a/ios/web_view/public/cwv_translation_controller.h b/ios/web_view/public/cwv_translation_controller.h
index d1bee70..4fe77e7 100644
--- a/ios/web_view/public/cwv_translation_controller.h
+++ b/ios/web_view/public/cwv_translation_controller.h
@@ -52,6 +52,8 @@
 @property(nonatomic, readonly)
     NSSet<CWVTranslationLanguage*>* supportedLanguages;
 
+- (instancetype)init NS_UNAVAILABLE;
+
 // Begins translation on the current page from |sourceLanguage| to
 // |targetLanguage|. These language parameters must be chosen from
 // |supportedLanguages|. Set |userInitiated| to YES if translation
diff --git a/media/audio/audio_manager_base.cc b/media/audio/audio_manager_base.cc
index e8dd29e..328ebe8f 100644
--- a/media/audio/audio_manager_base.cc
+++ b/media/audio/audio_manager_base.cc
@@ -341,7 +341,15 @@
   // If we're not using AudioOutputResampler our output parameters are the same
   // as our input parameters.
   AudioParameters output_params = params;
-  if (params.format() == AudioParameters::AUDIO_PCM_LOW_LATENCY) {
+
+  // If audio has been disabled force usage of a fake audio stream.
+  if (base::CommandLine::ForCurrentProcess()->HasSwitch(
+          switches::kDisableAudioOutput)) {
+    output_params.set_format(AudioParameters::AUDIO_FAKE);
+  }
+
+  if (params.format() == AudioParameters::AUDIO_PCM_LOW_LATENCY &&
+      output_params.format() != AudioParameters::AUDIO_FAKE) {
     output_params =
         GetPreferredOutputStreamParameters(output_device_id, params);
 
@@ -371,7 +379,6 @@
     }
 
     output_params.set_latency_tag(params.latency_tag());
-
   } else {
     switch (output_params.format()) {
       case AudioParameters::AUDIO_PCM_LINEAR:
diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
index 67adad84..4498b874 100644
--- a/media/base/media_switches.cc
+++ b/media/base/media_switches.cc
@@ -15,6 +15,8 @@
 // Command line flag name to set the autoplay policy.
 const char kAutoplayPolicy[] = "autoplay-policy";
 
+const char kDisableAudioOutput[] = "disable-audio-output";
+
 // Set number of threads to use for video decoding.
 const char kVideoThreads[] = "video-threads";
 
diff --git a/media/base/media_switches.h b/media/base/media_switches.h
index 3a7d57d..2827fd0 100644
--- a/media/base/media_switches.h
+++ b/media/base/media_switches.h
@@ -25,6 +25,8 @@
 
 MEDIA_EXPORT extern const char kAutoplayPolicy[];
 
+MEDIA_EXPORT extern const char kDisableAudioOutput[];
+
 MEDIA_EXPORT extern const char kVideoThreads[];
 
 MEDIA_EXPORT extern const char kEnableMediaSuspend[];
diff --git a/media/blink/BUILD.gn b/media/blink/BUILD.gn
index fb93f24..21a9ddb 100644
--- a/media/blink/BUILD.gn
+++ b/media/blink/BUILD.gn
@@ -4,6 +4,7 @@
 
 import("//media/media_options.gni")
 import("//testing/test.gni")
+import("//tools/v8_context_snapshot/v8_context_snapshot.gni")
 
 component("blink") {
   output_name = "media_blink"
@@ -157,9 +158,11 @@
   ]
 
   if (is_android) {
-    deps += [
-      "//media/base/android:media_java",
-      "//v8:v8_external_startup_data_assets",
-    ]
+    deps += [ "//media/base/android:media_java" ]
+    if (use_v8_context_snapshot) {
+      deps += [ "//tools/v8_context_snapshot:v8_context_snapshot_assets" ]
+    } else {
+      deps += [ "//v8:v8_external_startup_data_assets" ]
+    }
   }
 }
diff --git a/media/capture/BUILD.gn b/media/capture/BUILD.gn
index 44a16d8..9b68d54c 100644
--- a/media/capture/BUILD.gn
+++ b/media/capture/BUILD.gn
@@ -140,6 +140,8 @@
     "video/win/capability_list_win.h",
     "video/win/filter_base_win.cc",
     "video/win/filter_base_win.h",
+    "video/win/metrics.cc",
+    "video/win/metrics.h",
     "video/win/pin_base_win.cc",
     "video/win/pin_base_win.h",
     "video/win/sink_filter_observer_win.h",
diff --git a/media/capture/video/win/metrics.cc b/media/capture/video/win/metrics.cc
new file mode 100644
index 0000000..f128ee1
--- /dev/null
+++ b/media/capture/video/win/metrics.cc
@@ -0,0 +1,82 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "media/capture/video/win/metrics.h"
+
+#include "base/metrics/histogram_functions.h"
+#include "base/metrics/histogram_macros.h"
+
+namespace media {
+
+namespace {
+std::string VideoCaptureWinBackendEnumToString(
+    VideoCaptureWinBackend backend_type) {
+  switch (backend_type) {
+    case VideoCaptureWinBackend::kDirectShow:
+      return "DirectShow";
+    case VideoCaptureWinBackend::kMediaFoundation:
+      return "MediaFoundation";
+    default:
+      // The default case is only needed to avoid a compiler warning.
+      NOTREACHED();
+      return "Unknown";
+  }
+}
+
+}  // anonymous namespace
+
+bool IsHighResolution(const VideoCaptureFormat& format) {
+  return format.frame_size.width() > 1920;
+}
+
+void LogVideoCaptureWinBackendUsed(VideoCaptureWinBackendUsed value) {
+  base::UmaHistogramEnumeration("Media.VideoCapture.Windows.BackendUsed", value,
+                                VideoCaptureWinBackendUsed::kCount);
+}
+
+void LogWindowsImageCaptureOutcome(VideoCaptureWinBackend backend_type,
+                                   ImageCaptureOutcome value,
+                                   bool is_high_res) {
+  static const std::string kHistogramPrefix(
+      "Media.VideoCapture.Windows.ImageCaptureOutcome.");
+  static const std::string kAnyResSuffix("AnyRes");
+  static const std::string kHighResSuffix("HighRes");
+  const std::string backend_string =
+      VideoCaptureWinBackendEnumToString(backend_type);
+  base::UmaHistogramEnumeration(
+      kHistogramPrefix + backend_string + kAnyResSuffix, value,
+      ImageCaptureOutcome::kCount);
+  if (is_high_res) {
+    base::UmaHistogramEnumeration(
+        kHistogramPrefix + backend_string + kHighResSuffix, value,
+        ImageCaptureOutcome::kCount);
+  }
+}
+
+void LogNumberOfRetriesNeededToWorkAroundMFInvalidRequest(
+    MediaFoundationFunctionRequiringRetry function,
+    int retry_count) {
+  switch (function) {
+    case MediaFoundationFunctionRequiringRetry::kGetDeviceStreamCount:
+      UMA_HISTOGRAM_COUNTS_1000(
+          "Media.VideoCapture.Windows."
+          "NumberOfRetriesNeededForMFGetDeviceStreamCount",
+          retry_count);
+      break;
+    case MediaFoundationFunctionRequiringRetry::kGetDeviceStreamCategory:
+      UMA_HISTOGRAM_COUNTS_1000(
+          "Media.VideoCapture.Windows."
+          "NumberOfRetriesNeededForMFGetDeviceStreamCategory",
+          retry_count);
+      break;
+    case MediaFoundationFunctionRequiringRetry::kGetAvailableDeviceMediaType:
+      UMA_HISTOGRAM_COUNTS_1000(
+          "Media.VideoCapture.Windows."
+          "NumberOfRetriesNeededForMFGetAvailableDeviceMediaType",
+          retry_count);
+      break;
+  }
+}
+
+}  // namespace media
diff --git a/media/capture/video/win/metrics.h b/media/capture/video/win/metrics.h
new file mode 100644
index 0000000..5b31635
--- /dev/null
+++ b/media/capture/video/win/metrics.h
@@ -0,0 +1,49 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef MEDIA_CAPTURE_VIDEO_WIN_METRICS_H_
+#define MEDIA_CAPTURE_VIDEO_WIN_METRICS_H_
+
+#include "media/capture/video_capture_types.h"
+
+namespace media {
+
+enum class VideoCaptureWinBackend { kDirectShow, kMediaFoundation };
+
+// These values are presisted to logs.
+enum class VideoCaptureWinBackendUsed : int {
+  kUsingDirectShowAsDefault = 0,
+  kUsingMediaFoundationAsDefault = 1,
+  kUsingDirectShowAsFallback = 2,
+  kCount
+};
+
+// These values are presisted to logs.
+enum class ImageCaptureOutcome : int {
+  kSucceededUsingVideoStream = 0,
+  kSucceededUsingPhotoStream = 1,
+  kFailedUsingVideoStream = 2,
+  kFailedUsingPhotoStream = 3,
+  kCount
+};
+
+enum class MediaFoundationFunctionRequiringRetry {
+  kGetDeviceStreamCount,
+  kGetDeviceStreamCategory,
+  kGetAvailableDeviceMediaType
+};
+
+bool IsHighResolution(const VideoCaptureFormat& format);
+
+void LogVideoCaptureWinBackendUsed(VideoCaptureWinBackendUsed value);
+void LogWindowsImageCaptureOutcome(VideoCaptureWinBackend backend_type,
+                                   ImageCaptureOutcome value,
+                                   bool is_high_res);
+void LogNumberOfRetriesNeededToWorkAroundMFInvalidRequest(
+    MediaFoundationFunctionRequiringRetry function,
+    int retry_count);
+
+}  // namespace media
+
+#endif  // MEDIA_CAPTURE_VIDEO_WIN_METRICS_H_
diff --git a/media/capture/video/win/video_capture_device_factory_win.cc b/media/capture/video/win/video_capture_device_factory_win.cc
index 528d756..ef3749d 100644
--- a/media/capture/video/win/video_capture_device_factory_win.cc
+++ b/media/capture/video/win/video_capture_device_factory_win.cc
@@ -21,14 +21,15 @@
 #include "base/win/scoped_variant.h"
 #include "media/base/media_switches.h"
 #include "media/base/win/mf_initializer.h"
+#include "media/capture/video/win/metrics.h"
 #include "media/capture/video/win/video_capture_device_mf_win.h"
 #include "media/capture/video/win/video_capture_device_win.h"
 
 using Descriptor = media::VideoCaptureDeviceDescriptor;
 using Descriptors = media::VideoCaptureDeviceDescriptors;
-using Microsoft::WRL::ComPtr;
 using base::win::ScopedCoMem;
 using base::win::ScopedVariant;
+using Microsoft::WRL::ComPtr;
 
 namespace media {
 
@@ -347,7 +348,19 @@
 
 VideoCaptureDeviceFactoryWin::VideoCaptureDeviceFactoryWin()
     : use_media_foundation_(
-          base::FeatureList::IsEnabled(media::kMediaFoundationVideoCapture)) {}
+          base::FeatureList::IsEnabled(media::kMediaFoundationVideoCapture)) {
+  if (!PlatformSupportsMediaFoundation()) {
+    use_media_foundation_ = false;
+    LogVideoCaptureWinBackendUsed(
+        VideoCaptureWinBackendUsed::kUsingDirectShowAsFallback);
+  } else if (use_media_foundation_) {
+    LogVideoCaptureWinBackendUsed(
+        VideoCaptureWinBackendUsed::kUsingMediaFoundationAsDefault);
+  } else {
+    LogVideoCaptureWinBackendUsed(
+        VideoCaptureWinBackendUsed::kUsingDirectShowAsDefault);
+  }
+}
 
 std::unique_ptr<VideoCaptureDevice> VideoCaptureDeviceFactoryWin::CreateDevice(
     const Descriptor& device_descriptor) {
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 9368134..9ddff6f 100644
--- a/media/capture/video/win/video_capture_device_mf_win.cc
+++ b/media/capture/video/win/video_capture_device_mf_win.cc
@@ -25,13 +25,14 @@
 #include "media/capture/video/win/sink_filter_win.h"
 #include "media/capture/video/win/video_capture_device_utils_win.h"
 
+using base::Location;
 using base::win::ScopedCoMem;
 using Microsoft::WRL::ComPtr;
-using base::Location;
 
 namespace media {
 
 namespace {
+
 class MFPhotoCallback final
     : public base::RefCountedThreadSafe<MFPhotoCallback>,
       public IMFCaptureEngineOnSampleCallback {
@@ -80,6 +81,11 @@
       buffer->Unlock();
       if (blob) {
         std::move(callback_).Run(std::move(blob));
+        LogWindowsImageCaptureOutcome(
+            VideoCaptureWinBackend::kMediaFoundation,
+            ImageCaptureOutcome::kSucceededUsingPhotoStream,
+            IsHighResolution(format_));
+
         // What is it supposed to mean if there is more than one buffer sent to
         // us as a response to requesting a single still image? Are we supposed
         // to somehow concatenate the buffers? Or is it safe to ignore extra
@@ -92,7 +98,14 @@
 
  private:
   friend class base::RefCountedThreadSafe<MFPhotoCallback>;
-  ~MFPhotoCallback() = default;
+  ~MFPhotoCallback() {
+    if (callback_) {
+      LogWindowsImageCaptureOutcome(
+          VideoCaptureWinBackend::kMediaFoundation,
+          ImageCaptureOutcome::kFailedUsingPhotoStream,
+          IsHighResolution(format_));
+    }
+  }
 
   VideoCaptureDevice::TakePhotoCallback callback_;
   const VideoCaptureFormat format_;
@@ -414,7 +427,8 @@
 }
 
 HRESULT VideoCaptureDeviceMFWin::ExecuteHresultCallbackWithRetries(
-    base::RepeatingCallback<HRESULT()> callback) {
+    base::RepeatingCallback<HRESULT()> callback,
+    MediaFoundationFunctionRequiringRetry which_function) {
   // Retry callback execution on MF_E_INVALIDREQUEST.
   // MF_E_INVALIDREQUEST is not documented in MediaFoundation documentation.
   // It could mean that MediaFoundation or the underlying device can be in a
@@ -431,6 +445,8 @@
 
     // Give up after some amount of time
   } while (hr == MF_E_INVALIDREQUEST && retry_count++ < max_retry_count_);
+  LogNumberOfRetriesNeededToWorkAroundMFInvalidRequest(which_function,
+                                                       retry_count);
 
   return hr;
 }
@@ -439,11 +455,13 @@
                                                       DWORD* count) {
   // Sometimes, GetDeviceStreamCount returns an
   // undocumented MF_E_INVALIDREQUEST. Retrying solves the issue.
-  return ExecuteHresultCallbackWithRetries(base::BindRepeating(
-      [](IMFCaptureSource* source, DWORD* count) {
-        return source->GetDeviceStreamCount(count);
-      },
-      base::Unretained(source), count));
+  return ExecuteHresultCallbackWithRetries(
+      base::BindRepeating(
+          [](IMFCaptureSource* source, DWORD* count) {
+            return source->GetDeviceStreamCount(count);
+          },
+          base::Unretained(source), count),
+      MediaFoundationFunctionRequiringRetry::kGetDeviceStreamCount);
 }
 
 HRESULT VideoCaptureDeviceMFWin::GetDeviceStreamCategory(
@@ -452,12 +470,15 @@
     MF_CAPTURE_ENGINE_STREAM_CATEGORY* stream_category) {
   // We believe that GetDeviceStreamCategory could be affected by the same
   // behaviour of GetDeviceStreamCount and GetAvailableDeviceMediaType
-  return ExecuteHresultCallbackWithRetries(base::BindRepeating(
-      [](IMFCaptureSource* source, DWORD stream_index,
-         MF_CAPTURE_ENGINE_STREAM_CATEGORY* stream_category) {
-        return source->GetDeviceStreamCategory(stream_index, stream_category);
-      },
-      base::Unretained(source), stream_index, stream_category));
+  return ExecuteHresultCallbackWithRetries(
+      base::BindRepeating(
+          [](IMFCaptureSource* source, DWORD stream_index,
+             MF_CAPTURE_ENGINE_STREAM_CATEGORY* stream_category) {
+            return source->GetDeviceStreamCategory(stream_index,
+                                                   stream_category);
+          },
+          base::Unretained(source), stream_index, stream_category),
+      MediaFoundationFunctionRequiringRetry::kGetDeviceStreamCategory);
 }
 
 HRESULT VideoCaptureDeviceMFWin::GetAvailableDeviceMediaType(
@@ -467,13 +488,15 @@
     IMFMediaType** type) {
   // Rarely, for some unknown reason, GetAvailableDeviceMediaType returns an
   // undocumented MF_E_INVALIDREQUEST. Retrying solves the issue.
-  return ExecuteHresultCallbackWithRetries(base::BindRepeating(
-      [](IMFCaptureSource* source, DWORD stream_index, DWORD media_type_index,
-         IMFMediaType** type) {
-        return source->GetAvailableDeviceMediaType(stream_index,
-                                                   media_type_index, type);
-      },
-      base::Unretained(source), stream_index, media_type_index, type));
+  return ExecuteHresultCallbackWithRetries(
+      base::BindRepeating(
+          [](IMFCaptureSource* source, DWORD stream_index,
+             DWORD media_type_index, IMFMediaType** type) {
+            return source->GetAvailableDeviceMediaType(stream_index,
+                                                       media_type_index, type);
+          },
+          base::Unretained(source), stream_index, media_type_index, type),
+      MediaFoundationFunctionRequiringRetry::kGetAvailableDeviceMediaType);
 }
 
 HRESULT VideoCaptureDeviceMFWin::FillCapabilities(
@@ -539,6 +562,16 @@
 
 VideoCaptureDeviceMFWin::~VideoCaptureDeviceMFWin() {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+  if (!video_stream_take_photo_callbacks_.empty()) {
+    for (size_t k = 0; k < video_stream_take_photo_callbacks_.size(); k++) {
+      LogWindowsImageCaptureOutcome(
+          VideoCaptureWinBackend::kMediaFoundation,
+          ImageCaptureOutcome::kFailedUsingVideoStream,
+          selected_video_capability_
+              ? IsHighResolution(selected_video_capability_->supported_format)
+              : false);
+    }
+  }
 }
 
 bool VideoCaptureDeviceMFWin::Init() {
@@ -924,10 +957,19 @@
 
     mojom::BlobPtr blob =
         Blobify(data, length, selected_video_capability_->supported_format);
-    if (!blob)
+    if (!blob) {
+      LogWindowsImageCaptureOutcome(
+          VideoCaptureWinBackend::kMediaFoundation,
+          ImageCaptureOutcome::kFailedUsingVideoStream,
+          IsHighResolution(selected_video_capability_->supported_format));
       continue;
+    }
 
     std::move(cb).Run(std::move(blob));
+    LogWindowsImageCaptureOutcome(
+        VideoCaptureWinBackend::kMediaFoundation,
+        ImageCaptureOutcome::kSucceededUsingVideoStream,
+        IsHighResolution(selected_video_capability_->supported_format));
   }
 }
 
diff --git a/media/capture/video/win/video_capture_device_mf_win.h b/media/capture/video/win/video_capture_device_mf_win.h
index 4ce384d..c43b143b 100644
--- a/media/capture/video/win/video_capture_device_mf_win.h
+++ b/media/capture/video/win/video_capture_device_mf_win.h
@@ -23,6 +23,7 @@
 #include "media/capture/capture_export.h"
 #include "media/capture/video/video_capture_device.h"
 #include "media/capture/video/win/capability_list_win.h"
+#include "media/capture/video/win/metrics.h"
 
 interface IMFSourceReader;
 
@@ -91,7 +92,8 @@
 
  private:
   HRESULT ExecuteHresultCallbackWithRetries(
-      base::RepeatingCallback<HRESULT()> callback);
+      base::RepeatingCallback<HRESULT()> callback,
+      MediaFoundationFunctionRequiringRetry which_function);
   HRESULT GetDeviceStreamCount(IMFCaptureSource* source, DWORD* count);
   HRESULT GetDeviceStreamCategory(
       IMFCaptureSource* source,
diff --git a/media/capture/video/win/video_capture_device_win.cc b/media/capture/video/win/video_capture_device_win.cc
index eae411f..b016957 100644
--- a/media/capture/video/win/video_capture_device_win.cc
+++ b/media/capture/video/win/video_capture_device_win.cc
@@ -18,11 +18,12 @@
 #include "base/win/scoped_variant.h"
 #include "media/base/timestamp_constants.h"
 #include "media/capture/video/blob_utils.h"
+#include "media/capture/video/win/metrics.h"
 #include "media/capture/video/win/video_capture_device_utils_win.h"
 
-using Microsoft::WRL::ComPtr;
 using base::win::ScopedCoMem;
 using base::win::ScopedVariant;
+using Microsoft::WRL::ComPtr;
 
 namespace media {
 
@@ -407,6 +408,15 @@
 
   if (capture_graph_builder_.Get())
     capture_graph_builder_.Reset();
+
+  if (!take_photo_callbacks_.empty()) {
+    for (size_t k = 0; k < take_photo_callbacks_.size(); k++) {
+      LogWindowsImageCaptureOutcome(
+          VideoCaptureWinBackend::kDirectShow,
+          ImageCaptureOutcome::kFailedUsingVideoStream,
+          IsHighResolution(capture_format_));
+    }
+  }
 }
 
 bool VideoCaptureDeviceWin::Init() {
@@ -856,8 +866,18 @@
     take_photo_callbacks_.pop();
 
     mojom::BlobPtr blob = Blobify(buffer, length, format);
-    if (blob)
+    if (blob) {
       std::move(cb).Run(std::move(blob));
+      LogWindowsImageCaptureOutcome(
+          VideoCaptureWinBackend::kDirectShow,
+          ImageCaptureOutcome::kSucceededUsingVideoStream,
+          IsHighResolution(format));
+    } else {
+      LogWindowsImageCaptureOutcome(
+          VideoCaptureWinBackend::kDirectShow,
+          ImageCaptureOutcome::kFailedUsingVideoStream,
+          IsHighResolution(format));
+    }
   }
 }
 
diff --git a/media/gpu/vaapi/va_surface.h b/media/gpu/vaapi/va_surface.h
index a68db2d7..8979480 100644
--- a/media/gpu/vaapi/va_surface.h
+++ b/media/gpu/vaapi/va_surface.h
@@ -13,7 +13,6 @@
 #include "base/callback.h"
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
-#include "media/gpu/media_gpu_export.h"
 #include "ui/gfx/geometry/size.h"
 
 namespace media {
@@ -84,8 +83,7 @@
 //                                       v
 //                       VaapiWrapper frees VASurfaceID.
 //
-class MEDIA_GPU_EXPORT VASurface
-    : public base::RefCountedThreadSafe<VASurface> {
+class VASurface : public base::RefCountedThreadSafe<VASurface> {
  public:
   // Provided by user, will be called when all references to the surface
   // are released.
diff --git a/media/gpu/vaapi/vaapi_decode_surface.h b/media/gpu/vaapi/vaapi_decode_surface.h
index bdb4e7ec..084b75b 100644
--- a/media/gpu/vaapi/vaapi_decode_surface.h
+++ b/media/gpu/vaapi/vaapi_decode_surface.h
@@ -6,14 +6,13 @@
 #define MEDIA_GPU_VAAPI_VAAPI_DECODE_SURFACE_H_
 
 #include "base/memory/ref_counted.h"
-#include "media/gpu/media_gpu_export.h"
 #include "media/gpu/vaapi/va_surface.h"
 #include "ui/gfx/geometry/rect.h"
 
 namespace media {
 
 // Wrapper of a VASurface with an id and visible area.
-class MEDIA_GPU_EXPORT VaapiDecodeSurface
+class VaapiDecodeSurface
     : public base::RefCountedThreadSafe<VaapiDecodeSurface> {
  public:
   VaapiDecodeSurface(int32_t bitstream_id,
diff --git a/media/gpu/vaapi/vaapi_h264_accelerator.h b/media/gpu/vaapi/vaapi_h264_accelerator.h
index c473069..1c2c933 100644
--- a/media/gpu/vaapi/vaapi_h264_accelerator.h
+++ b/media/gpu/vaapi/vaapi_h264_accelerator.h
@@ -10,7 +10,6 @@
 #include "base/sequence_checker.h"
 #include "media/filters/vp9_parser.h"
 #include "media/gpu/h264_decoder.h"
-#include "media/gpu/media_gpu_export.h"
 
 namespace media {
 
@@ -19,8 +18,7 @@
 class VaapiVideoDecodeAccelerator;
 class VaapiWrapper;
 
-class MEDIA_GPU_EXPORT VaapiH264Accelerator
-    : public H264Decoder::H264Accelerator {
+class VaapiH264Accelerator : public H264Decoder::H264Accelerator {
  public:
   VaapiH264Accelerator(VaapiVideoDecodeAccelerator* vaapi_dec,
                        const scoped_refptr<VaapiWrapper> vaapi_wrapper);
diff --git a/media/gpu/vaapi/vaapi_video_decode_accelerator.cc b/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
index 8836565d..8343e80 100644
--- a/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
+++ b/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
@@ -284,10 +284,9 @@
         BindToCurrentLoop(
             base::Bind(&Client::NotifyEndOfBitstreamBuffer, client_)));
     input_buffers_.push(std::move(input_buffer));
-
-    TRACE_COUNTER1("media,gpu", "Input buffers", input_buffers_.size());
   }
 
+  TRACE_COUNTER1("media,gpu", "Input buffers", input_buffers_.size());
   input_ready_.Signal();
 
   switch (state_) {
@@ -316,7 +315,7 @@
   }
 }
 
-bool VaapiVideoDecodeAccelerator::GetInputBuffer_Locked() {
+bool VaapiVideoDecodeAccelerator::GetCurrInputBuffer_Locked() {
   DCHECK(decoder_thread_task_runner_->BelongsToCurrentThread());
   lock_.AssertAcquired();
 
@@ -325,9 +324,8 @@
 
   // Will only wait if it is expected that in current state new buffers will
   // be queued from the client via Decode(). The state can change during wait.
-  while (input_buffers_.empty() && (state_ == kDecoding || state_ == kIdle)) {
+  while (input_buffers_.empty() && (state_ == kDecoding || state_ == kIdle))
     input_ready_.Wait();
-  }
 
   // We could have got woken up in a different state or never got to sleep
   // due to current state.
@@ -337,13 +335,14 @@
   DCHECK(!input_buffers_.empty());
   curr_input_buffer_ = std::move(input_buffers_.front());
   input_buffers_.pop();
+  TRACE_COUNTER1("media,gpu", "Input buffers", input_buffers_.size());
 
   if (curr_input_buffer_->IsFlushRequest()) {
     VLOGF(4) << "New flush buffer";
     return true;
   }
 
-  VLOGF(4) << "New current input buffer, id: " << curr_input_buffer_->id()
+  VLOGF(4) << "New |curr_input_buffer_|, id: " << curr_input_buffer_->id()
            << " size: " << curr_input_buffer_->shm()->size() << "B";
   decoder_->SetStream(
       static_cast<uint8_t*>(curr_input_buffer_->shm()->memory()),
@@ -357,8 +356,6 @@
   lock_.AssertAcquired();
   DCHECK(curr_input_buffer_.get());
   curr_input_buffer_.reset();
-
-  TRACE_COUNTER1("media,gpu", "Input buffers", input_buffers_.size());
 }
 
 // TODO(posciak): refactor the whole class to remove sleeping in wait for
@@ -381,13 +378,11 @@
 
   if (state_ != kDecoding)
     return;
-
-  // Main decode task.
   VLOGF(4) << "Decode task";
 
   // Try to decode what stream data is (still) in the decoder until we run out
   // of it.
-  while (GetInputBuffer_Locked()) {
+  while (GetCurrInputBuffer_Locked()) {
     DCHECK(curr_input_buffer_.get());
 
     if (curr_input_buffer_->IsFlushRequest()) {
@@ -689,7 +684,7 @@
 void VaapiVideoDecodeAccelerator::FlushTask() {
   VLOGF(2);
   DCHECK(decoder_thread_task_runner_->BelongsToCurrentThread());
-  DCHECK(curr_input_buffer_.get() && curr_input_buffer_->IsFlushRequest());
+  DCHECK(curr_input_buffer_ && curr_input_buffer_->IsFlushRequest());
 
   curr_input_buffer_.reset();
 
@@ -759,7 +754,7 @@
   base::AutoLock auto_lock(lock_);
 
   // Return current input buffer, if present.
-  if (curr_input_buffer_.get())
+  if (curr_input_buffer_)
     ReturnCurrInputBuffer_Locked();
 
   // And let client know that we are done with reset.
diff --git a/media/gpu/vaapi/vaapi_video_decode_accelerator.h b/media/gpu/vaapi/vaapi_video_decode_accelerator.h
index a7b7184..8527f23 100644
--- a/media/gpu/vaapi/vaapi_video_decode_accelerator.h
+++ b/media/gpu/vaapi/vaapi_video_decode_accelerator.h
@@ -114,17 +114,17 @@
   // Queue a input buffer for decode.
   void QueueInputBuffer(const BitstreamBuffer& bitstream_buffer);
 
-  // Get a new input buffer from the queue and set it up in decoder. This will
-  // sleep if no input buffers are available. Return true if a new buffer has
-  // been set up, false if an early exit has been requested (due to initiated
-  // reset/flush/destroy).
-  bool GetInputBuffer_Locked();
+  // Gets a new |current_input_buffer_| from |input_buffers_| and sets it up in
+  // |decoder_|. This method will sleep if no |input_buffers_| are available.
+  // Returns true if a new buffer has been set up, false if an early exit has
+  // been requested (due to initiated reset/flush/destroy).
+  bool GetCurrInputBuffer_Locked();
 
-  // Signal the client that the current buffer has been read and can be
+  // Signals the client that |curr_input_buffer_| has been read and can be
   // returned. Will also release the mapping.
   void ReturnCurrInputBuffer_Locked();
 
-  // Wait for more surfaces to become available. Return true once they do or
+  // Waits for more surfaces to become available. Returns true once they do or
   // false if an early exit has been requested (due to an initiated
   // reset/flush/destroy).
   bool WaitForSurfaces_Locked();
diff --git a/media/gpu/vaapi/vaapi_vp8_accelerator.h b/media/gpu/vaapi/vaapi_vp8_accelerator.h
index 7291a9e..be5d339 100644
--- a/media/gpu/vaapi/vaapi_vp8_accelerator.h
+++ b/media/gpu/vaapi/vaapi_vp8_accelerator.h
@@ -7,7 +7,6 @@
 
 #include "base/sequence_checker.h"
 #include "media/filters/vp8_parser.h"
-#include "media/gpu/media_gpu_export.h"
 #include "media/gpu/vp8_decoder.h"
 
 namespace media {
@@ -17,7 +16,7 @@
 class VaapiVideoDecodeAccelerator;
 class VaapiWrapper;
 
-class MEDIA_GPU_EXPORT VaapiVP8Accelerator : public VP8Decoder::VP8Accelerator {
+class VaapiVP8Accelerator : public VP8Decoder::VP8Accelerator {
  public:
   VaapiVP8Accelerator(VaapiVideoDecodeAccelerator* vaapi_dec,
                       scoped_refptr<VaapiWrapper> vaapi_wrapper);
diff --git a/media/gpu/vaapi/vaapi_vp9_accelerator.h b/media/gpu/vaapi/vaapi_vp9_accelerator.h
index 2410902..68a2708 100644
--- a/media/gpu/vaapi/vaapi_vp9_accelerator.h
+++ b/media/gpu/vaapi/vaapi_vp9_accelerator.h
@@ -7,7 +7,6 @@
 
 #include "base/sequence_checker.h"
 #include "media/filters/vp9_parser.h"
-#include "media/gpu/media_gpu_export.h"
 #include "media/gpu/vp9_decoder.h"
 
 namespace media {
@@ -17,7 +16,7 @@
 class VaapiVideoDecodeAccelerator;
 class VaapiWrapper;
 
-class MEDIA_GPU_EXPORT VaapiVP9Accelerator : public VP9Decoder::VP9Accelerator {
+class VaapiVP9Accelerator : public VP9Decoder::VP9Accelerator {
  public:
   VaapiVP9Accelerator(VaapiVideoDecodeAccelerator* vaapi_dec,
                       scoped_refptr<VaapiWrapper> vaapi_wrapper);
diff --git a/net/BUILD.gn b/net/BUILD.gn
index 66a49732..2edaccf 100644
--- a/net/BUILD.gn
+++ b/net/BUILD.gn
@@ -5780,13 +5780,6 @@
     if (enable_websockets) {
       sources += [ "websockets/websocket_frame_perftest.cc" ]
     }
-
-    # Some linker failures have been observed for this target on the Win64
-    # continuous builder, see crbug.com/659369.
-    # TODO(sebmarchand): Remove this once we have some data.
-    if (is_win && linkrepro_root_dir != "") {
-      ldflags = [ "/LINKREPRO:" + linkrepro_root_dir + "/" + target_name ]
-    }
   }
 }
 
diff --git a/net/base/layered_network_delegate.cc b/net/base/layered_network_delegate.cc
index 46bd4b2..e771fa9 100644
--- a/net/base/layered_network_delegate.cc
+++ b/net/base/layered_network_delegate.cc
@@ -262,14 +262,16 @@
 void LayeredNetworkDelegate::OnCanQueueReportingReportInternal(
     const url::Origin& origin) const {}
 
-bool LayeredNetworkDelegate::OnCanSendReportingReport(
-    const url::Origin& origin) const {
-  OnCanSendReportingReportInternal(origin);
-  return nested_network_delegate_->CanSendReportingReport(origin);
+void LayeredNetworkDelegate::OnCanSendReportingReports(
+    std::set<url::Origin> origins,
+    base::OnceCallback<void(std::set<url::Origin>)> result_callback) const {
+  OnCanSendReportingReportsInternal(origins);
+  nested_network_delegate_->CanSendReportingReports(std::move(origins),
+                                                    std::move(result_callback));
 }
 
-void LayeredNetworkDelegate::OnCanSendReportingReportInternal(
-    const url::Origin& origin) const {}
+void LayeredNetworkDelegate::OnCanSendReportingReportsInternal(
+    const std::set<url::Origin>& origins) const {}
 
 bool LayeredNetworkDelegate::OnCanSetReportingClient(
     const url::Origin& origin,
diff --git a/net/base/layered_network_delegate.h b/net/base/layered_network_delegate.h
index f9deec7..56cac40 100644
--- a/net/base/layered_network_delegate.h
+++ b/net/base/layered_network_delegate.h
@@ -8,6 +8,7 @@
 #include <stdint.h>
 
 #include <memory>
+#include <set>
 
 #include "base/strings/string16.h"
 #include "net/base/completion_callback.h"
@@ -90,7 +91,9 @@
 
   bool OnCanQueueReportingReport(const url::Origin& origin) const final;
 
-  bool OnCanSendReportingReport(const url::Origin& origin) const final;
+  void OnCanSendReportingReports(std::set<url::Origin> origins,
+                                 base::OnceCallback<void(std::set<url::Origin>)>
+                                     result_callback) const final;
 
   bool OnCanSetReportingClient(const url::Origin& origin,
                                const GURL& endpoint) const final;
@@ -173,8 +176,8 @@
   virtual void OnCanQueueReportingReportInternal(
       const url::Origin& origin) const;
 
-  virtual void OnCanSendReportingReportInternal(
-      const url::Origin& origin) const;
+  virtual void OnCanSendReportingReportsInternal(
+      const std::set<url::Origin>& origins) const;
 
   virtual void OnCanSetReportingClientInternal(const url::Origin& origin,
                                                const GURL& endpoint) const;
diff --git a/net/base/layered_network_delegate_unittest.cc b/net/base/layered_network_delegate_unittest.cc
index 473c379f..5f5383a 100644
--- a/net/base/layered_network_delegate_unittest.cc
+++ b/net/base/layered_network_delegate_unittest.cc
@@ -343,8 +343,8 @@
     EXPECT_EQ(1, (*counters_)["on_can_queue_reporting_report_count"]);
   }
 
-  void OnCanSendReportingReportInternal(
-      const url::Origin& origin) const override {
+  void OnCanSendReportingReportsInternal(
+      const std::set<url::Origin>& origins) const override {
     ++(*counters_)["on_can_send_reporting_report_count"];
     EXPECT_EQ(1, (*counters_)["on_can_send_reporting_report_count"]);
   }
diff --git a/net/base/net_error_list.h b/net/base/net_error_list.h
index d3932f0..76a8c899 100644
--- a/net/base/net_error_list.h
+++ b/net/base/net_error_list.h
@@ -518,13 +518,17 @@
 // did not provide CT information that complied with the policy.
 NET_ERROR(CERTIFICATE_TRANSPARENCY_REQUIRED, -214)
 
+// The certificate chained to a legacy Symantec root that is no longer trusted.
+// https://g.co/chrome/symantecpkicerts
+NET_ERROR(CERT_SYMANTEC_LEGACY, -215)
+
 // Add new certificate error codes here.
 //
 // Update the value of CERT_END whenever you add a new certificate error
 // code.
 
 // The value immediately past the last certificate error code.
-NET_ERROR(CERT_END, -215)
+NET_ERROR(CERT_END, -216)
 
 // The URL is invalid.
 NET_ERROR(INVALID_URL, -300)
diff --git a/net/base/network_delegate.cc b/net/base/network_delegate.cc
index c16948c..20271bcb 100644
--- a/net/base/network_delegate.cc
+++ b/net/base/network_delegate.cc
@@ -188,9 +188,11 @@
   return OnCanQueueReportingReport(origin);
 }
 
-bool NetworkDelegate::CanSendReportingReport(const url::Origin& origin) const {
+void NetworkDelegate::CanSendReportingReports(
+    std::set<url::Origin> origins,
+    base::OnceCallback<void(std::set<url::Origin>)> result_callback) const {
   DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
-  return OnCanSendReportingReport(origin);
+  OnCanSendReportingReports(std::move(origins), std::move(result_callback));
 }
 
 bool NetworkDelegate::CanSetReportingClient(const url::Origin& origin,
diff --git a/net/base/network_delegate.h b/net/base/network_delegate.h
index 5742cb7..e3b6502f 100644
--- a/net/base/network_delegate.h
+++ b/net/base/network_delegate.h
@@ -7,6 +7,7 @@
 
 #include <stdint.h>
 
+#include <set>
 #include <string>
 
 #include "base/callback.h"
@@ -118,7 +119,9 @@
       const GURL& referrer_url) const;
 
   bool CanQueueReportingReport(const url::Origin& origin) const;
-  bool CanSendReportingReport(const url::Origin& origin) const;
+  void CanSendReportingReports(
+      std::set<url::Origin> origins,
+      base::OnceCallback<void(std::set<url::Origin>)> result_callback) const;
   bool CanSetReportingClient(const url::Origin& origin,
                              const GURL& endpoint) const;
   bool CanUseReportingClient(const url::Origin& origin,
@@ -310,7 +313,10 @@
 
   virtual bool OnCanQueueReportingReport(const url::Origin& origin) const = 0;
 
-  virtual bool OnCanSendReportingReport(const url::Origin& origin) const = 0;
+  virtual void OnCanSendReportingReports(
+      std::set<url::Origin> origins,
+      base::OnceCallback<void(std::set<url::Origin>)> result_callback)
+      const = 0;
 
   virtual bool OnCanSetReportingClient(const url::Origin& origin,
                                        const GURL& endpoint) const = 0;
diff --git a/net/base/network_delegate_impl.cc b/net/base/network_delegate_impl.cc
index 66b1247..46e7eb64 100644
--- a/net/base/network_delegate_impl.cc
+++ b/net/base/network_delegate_impl.cc
@@ -116,9 +116,10 @@
   return true;
 }
 
-bool NetworkDelegateImpl::OnCanSendReportingReport(
-    const url::Origin& origin) const {
-  return true;
+void NetworkDelegateImpl::OnCanSendReportingReports(
+    std::set<url::Origin> origins,
+    base::OnceCallback<void(std::set<url::Origin>)> result_callback) const {
+  std::move(result_callback).Run(std::move(origins));
 }
 
 bool NetworkDelegateImpl::OnCanSetReportingClient(const url::Origin& origin,
diff --git a/net/base/network_delegate_impl.h b/net/base/network_delegate_impl.h
index e1a853b..8a991a1 100644
--- a/net/base/network_delegate_impl.h
+++ b/net/base/network_delegate_impl.h
@@ -7,6 +7,8 @@
 
 #include <stdint.h>
 
+#include <set>
+
 #include "base/strings/string16.h"
 #include "net/base/completion_callback.h"
 #include "net/base/net_export.h"
@@ -104,7 +106,9 @@
 
   bool OnCanQueueReportingReport(const url::Origin& origin) const override;
 
-  bool OnCanSendReportingReport(const url::Origin& origin) const override;
+  void OnCanSendReportingReports(std::set<url::Origin> origins,
+                                 base::OnceCallback<void(std::set<url::Origin>)>
+                                     result_callback) const override;
 
   bool OnCanSetReportingClient(const url::Origin& origin,
                                const GURL& endpoint) const override;
diff --git a/net/cert/cert_status_flags.cc b/net/cert/cert_status_flags.cc
index db654d3..c906ae6f 100644
--- a/net/cert/cert_status_flags.cc
+++ b/net/cert/cert_status_flags.cc
@@ -53,6 +53,8 @@
       return CERT_STATUS_NAME_CONSTRAINT_VIOLATION;
     case ERR_CERT_VALIDITY_TOO_LONG:
       return CERT_STATUS_VALIDITY_TOO_LONG;
+    case ERR_CERT_SYMANTEC_LEGACY:
+      return CERT_STATUS_SYMANTEC_LEGACY;
     default:
       return 0;
   }
@@ -77,6 +79,8 @@
     return ERR_CERT_COMMON_NAME_INVALID;
   if (cert_status & CERT_STATUS_CERTIFICATE_TRANSPARENCY_REQUIRED)
     return ERR_CERTIFICATE_TRANSPARENCY_REQUIRED;
+  if (cert_status & CERT_STATUS_SYMANTEC_LEGACY)
+    return ERR_CERT_SYMANTEC_LEGACY;
   // CERT_STATUS_NON_UNIQUE_NAME is intentionally not mapped to an error.
   // It is treated as just a warning and used to degrade the SSL UI.
   if (cert_status & CERT_STATUS_NAME_CONSTRAINT_VIOLATION)
diff --git a/net/cert/cert_status_flags_list.h b/net/cert/cert_status_flags_list.h
index 8ea57e3..d285472 100644
--- a/net/cert/cert_status_flags_list.h
+++ b/net/cert/cert_status_flags_list.h
@@ -35,3 +35,4 @@
 
 // Bits 24 - 31 are for errors.
 CERT_STATUS_FLAG(CERTIFICATE_TRANSPARENCY_REQUIRED, 1 << 24)
+CERT_STATUS_FLAG(SYMANTEC_LEGACY, 1 << 25)
diff --git a/net/cert/cert_verify_proc.cc b/net/cert/cert_verify_proc.cc
index 8915745..ba51d3a 100644
--- a/net/cert/cert_verify_proc.cc
+++ b/net/cert/cert_verify_proc.cc
@@ -609,7 +609,7 @@
   if (!(flags & CertVerifier::VERIFY_DISABLE_SYMANTEC_ENFORCEMENT) &&
       IsLegacySymantecCert(verify_result->public_key_hashes)) {
     if (IsUntrustedSymantecCert(*verify_result->verified_cert)) {
-      verify_result->cert_status |= CERT_STATUS_AUTHORITY_INVALID;
+      verify_result->cert_status |= CERT_STATUS_SYMANTEC_LEGACY;
       if (rv == OK || IsCertificateError(rv))
         rv = MapCertStatusToNetError(verify_result->cert_status);
     }
diff --git a/net/cert/cert_verify_proc_unittest.cc b/net/cert/cert_verify_proc_unittest.cc
index ccf43a32..74fe7c97 100644
--- a/net/cert/cert_verify_proc_unittest.cc
+++ b/net/cert/cert_verify_proc_unittest.cc
@@ -1495,8 +1495,8 @@
     CertVerifyResult test_result_1;
     error = verify_proc->Verify(cert.get(), "127.0.0.1", std::string(), 0,
                                 nullptr, CertificateList(), &test_result_1);
-    EXPECT_THAT(error, IsError(ERR_CERT_AUTHORITY_INVALID));
-    EXPECT_TRUE(test_result_1.cert_status & CERT_STATUS_AUTHORITY_INVALID);
+    EXPECT_THAT(error, IsError(ERR_CERT_SYMANTEC_LEGACY));
+    EXPECT_TRUE(test_result_1.cert_status & CERT_STATUS_SYMANTEC_LEGACY);
 
     // ... Unless the Symantec cert chains through a whitelisted intermediate.
     CertVerifyResult whitelisted_result;
@@ -1520,7 +1520,7 @@
                             CertVerifier::VERIFY_DISABLE_SYMANTEC_ENFORCEMENT,
                             nullptr, CertificateList(), &test_result_3);
     EXPECT_THAT(error, IsOk());
-    EXPECT_FALSE(test_result_3.cert_status & CERT_STATUS_AUTHORITY_INVALID);
+    EXPECT_FALSE(test_result_3.cert_status & CERT_STATUS_SYMANTEC_LEGACY);
   }
 
   // Test that certificates from the legacy Symantec infrastructure that
@@ -1546,7 +1546,7 @@
     error = verify_proc->Verify(cert.get(), "127.0.0.1", std::string(), 0,
                                 nullptr, CertificateList(), &test_result_1);
     EXPECT_THAT(error, IsOk());
-    EXPECT_FALSE(test_result_1.cert_status & CERT_STATUS_AUTHORITY_INVALID);
+    EXPECT_FALSE(test_result_1.cert_status & CERT_STATUS_SYMANTEC_LEGACY);
   }
 }
 
diff --git a/net/http/http_cache_writers.cc b/net/http/http_cache_writers.cc
index 61d44e2..6bf0074 100644
--- a/net/http/http_cache_writers.cc
+++ b/net/http/http_cache_writers.cc
@@ -239,10 +239,10 @@
 void HttpCache::Writers::ProcessFailure(int error) {
   // Notify waiting_for_read_ of the failure. Tasks will be posted for all the
   // transactions.
-  ProcessWaitingForReadTransactions(error);
+  CompleteWaitingForReadTransactions(error);
 
   // Idle readers should fail when Read is invoked on them.
-  SetIdleWritersFailState(error);
+  RemoveIdleWriters(error);
 }
 
 void HttpCache::Writers::TruncateEntry() {
@@ -477,7 +477,7 @@
     if (active_transaction_)
       EraseTransaction(active_transaction_, result);
     active_transaction_ = nullptr;
-    ProcessWaitingForReadTransactions(write_len_);
+    CompleteWaitingForReadTransactions(write_len_);
 
     // Invoke entry processing.
     DCHECK(ContainsOnlyIdleWriters());
@@ -491,7 +491,7 @@
 
   // Notify waiting_for_read_. Tasks will be posted for all the
   // transactions.
-  ProcessWaitingForReadTransactions(write_len_);
+  CompleteWaitingForReadTransactions(write_len_);
 
   active_transaction_ = nullptr;
 }
@@ -514,7 +514,7 @@
   }
 }
 
-void HttpCache::Writers::ProcessWaitingForReadTransactions(int result) {
+void HttpCache::Writers::CompleteWaitingForReadTransactions(int result) {
   for (auto it = waiting_for_read_.begin(); it != waiting_for_read_.end();) {
     Transaction* transaction = it->first;
     int callback_result = result;
@@ -540,7 +540,7 @@
   }
 }
 
-void HttpCache::Writers::SetIdleWritersFailState(int result) {
+void HttpCache::Writers::RemoveIdleWriters(int result) {
   // Since this is only for idle transactions, waiting_for_read_
   // should be empty.
   DCHECK(waiting_for_read_.empty());
diff --git a/net/http/http_cache_writers.h b/net/http/http_cache_writers.h
index 441bf587..86eeed1f 100644
--- a/net/http/http_cache_writers.h
+++ b/net/http/http_cache_writers.h
@@ -190,13 +190,14 @@
   void OnCacheWriteFailure();
   void OnDataReceived(int result);
 
-  // Notifies the transactions waiting on Read of the result, by posting a task
-  // for each of them.
-  void ProcessWaitingForReadTransactions(int result);
+  // Completes any pending IO_PENDING read operations by copying any received
+  // bytes from read_buf_ to the given buffer and posts a task to run the
+  // callback with |result|.
+  void CompleteWaitingForReadTransactions(int result);
 
-  // Sets the state to FAIL_READ so that any subsequent Read on an idle
-  // transaction fails.
-  void SetIdleWritersFailState(int result);
+  // Removes idle writers, passing |result| which is to be used for any
+  // subsequent read transaction.
+  void RemoveIdleWriters(int result);
 
   // Invoked when |active_transaction_| fails to read from network or write to
   // cache. |error| indicates network read error code or cache write error.
diff --git a/net/http/http_stream_factory_impl_unittest.cc b/net/http/http_stream_factory_impl_unittest.cc
index 6b85b16d..721fb7a9 100644
--- a/net/http/http_stream_factory_impl_unittest.cc
+++ b/net/http/http_stream_factory_impl_unittest.cc
@@ -1436,7 +1436,6 @@
   return session_list->GetSize();
 }
 
-#if defined(OS_ANDROID)
 // Return count of sockets handed out by a given socket pool.
 int GetHandedOutSocketCount(ClientSocketPool* pool) {
   int count = 0;
@@ -1448,6 +1447,7 @@
   return count;
 }
 
+#if defined(OS_ANDROID)
 // Return count of distinct QUIC sessions.
 int GetQuicSessionCount(HttpNetworkSession* session) {
   std::unique_ptr<base::DictionaryValue> dict(
@@ -2897,6 +2897,170 @@
 }
 #endif
 
+// Test that when creating a stream all sessions that alias an IP are tried,
+// not just one.  This is important because there can be multiple sessions
+// that could satisfy a stream request and they should all be tried.
+TEST_F(HttpStreamFactoryTest, MultiIPAliases) {
+  SpdySessionDependencies session_deps;
+
+  // Prepare for two HTTPS connects.
+  MockRead mock_read1(SYNCHRONOUS, ERR_IO_PENDING);
+  SequencedSocketData socket_data1(&mock_read1, 1, nullptr, 0);
+  socket_data1.set_connect_data(MockConnect(ASYNC, OK));
+  session_deps.socket_factory->AddSocketDataProvider(&socket_data1);
+  MockRead mock_read2(SYNCHRONOUS, ERR_IO_PENDING);
+  SequencedSocketData socket_data2(&mock_read2, 1, nullptr, 0);
+  socket_data2.set_connect_data(MockConnect(ASYNC, OK));
+  session_deps.socket_factory->AddSocketDataProvider(&socket_data2);
+  SSLSocketDataProvider ssl_socket_data1(ASYNC, OK);
+  // Load cert for *.example.org
+  ssl_socket_data1.ssl_info.cert =
+      ImportCertFromFile(GetTestCertsDirectory(), "wildcard.pem");
+  ssl_socket_data1.next_proto = kProtoHTTP2;
+  session_deps.socket_factory->AddSSLSocketDataProvider(&ssl_socket_data1);
+  SSLSocketDataProvider ssl_socket_data2(ASYNC, OK);
+  // Load cert for *.example.org
+  ssl_socket_data2.ssl_info.cert =
+      ImportCertFromFile(GetTestCertsDirectory(), "wildcard.pem");
+  ssl_socket_data2.next_proto = kProtoHTTP2;
+  session_deps.socket_factory->AddSSLSocketDataProvider(&ssl_socket_data2);
+
+  HostPortPair host_port_pair("example.org", 443);
+  std::unique_ptr<HttpNetworkSession> session(
+      SpdySessionDependencies::SpdyCreateSession(&session_deps));
+
+  // Create two HttpRequestInfos, differing only in host name.
+  // Both will resolve to 127.0.0.1 and hence be IP aliases.
+  HttpRequestInfo request_info1;
+  request_info1.method = "GET";
+  request_info1.url = GURL("https://a.example.org");
+  request_info1.privacy_mode = PRIVACY_MODE_DISABLED;
+  HttpRequestInfo request_info1_alias = request_info1;
+  request_info1.url = GURL("https://b.example.org");
+
+  // Create two more HttpRequestInfos but with different privacy_mode.
+  HttpRequestInfo request_info2;
+  request_info2.method = "GET";
+  request_info2.url = GURL("https://a.example.org");
+  request_info2.privacy_mode = PRIVACY_MODE_ENABLED;
+  HttpRequestInfo request_info2_alias = request_info2;
+  request_info2.url = GURL("https://b.example.org");
+
+  // Open one session.
+  SSLConfig ssl_config;
+  StreamRequestWaiter waiter1;
+  std::unique_ptr<HttpStreamRequest> request1(
+      session->http_stream_factory()->RequestStream(
+          request_info1, DEFAULT_PRIORITY, ssl_config, ssl_config, &waiter1,
+          /* enable_ip_based_pooling = */ true,
+          /* enable_alternative_services = */ true, NetLogWithSource()));
+  waiter1.WaitForStream();
+  EXPECT_TRUE(waiter1.stream_done());
+  EXPECT_FALSE(waiter1.websocket_stream());
+  ASSERT_TRUE(waiter1.stream());
+
+  // Verify just one session created.
+  EXPECT_EQ(1, GetSpdySessionCount(session.get()));
+  EXPECT_EQ(1, GetSocketPoolGroupCount(session->GetTransportSocketPool(
+                   HttpNetworkSession::NORMAL_SOCKET_POOL)));
+  EXPECT_EQ(1, GetSocketPoolGroupCount(session->GetSSLSocketPool(
+                   HttpNetworkSession::NORMAL_SOCKET_POOL)));
+  EXPECT_EQ(0, GetSocketPoolGroupCount(session->GetTransportSocketPool(
+                   HttpNetworkSession::WEBSOCKET_SOCKET_POOL)));
+  EXPECT_EQ(0, GetSocketPoolGroupCount(session->GetSSLSocketPool(
+                   HttpNetworkSession::WEBSOCKET_SOCKET_POOL)));
+  EXPECT_EQ(1, GetHandedOutSocketCount(session->GetTransportSocketPool(
+                   HttpNetworkSession::NORMAL_SOCKET_POOL)));
+  EXPECT_EQ(1, GetHandedOutSocketCount(session->GetSSLSocketPool(
+                   HttpNetworkSession::NORMAL_SOCKET_POOL)));
+
+  // Open another session to same IP but with different privacy mode.
+  StreamRequestWaiter waiter2;
+  std::unique_ptr<HttpStreamRequest> request2(
+      session->http_stream_factory()->RequestStream(
+          request_info2, DEFAULT_PRIORITY, ssl_config, ssl_config, &waiter2,
+          /* enable_ip_based_pooling = */ true,
+          /* enable_alternative_services = */ true, NetLogWithSource()));
+  waiter2.WaitForStream();
+  EXPECT_TRUE(waiter2.stream_done());
+  EXPECT_FALSE(waiter2.websocket_stream());
+  ASSERT_TRUE(waiter2.stream());
+
+  // Verify two sessions are now open.
+  EXPECT_EQ(2, GetSpdySessionCount(session.get()));
+  EXPECT_EQ(2, GetSocketPoolGroupCount(session->GetTransportSocketPool(
+                   HttpNetworkSession::NORMAL_SOCKET_POOL)));
+  EXPECT_EQ(2, GetSocketPoolGroupCount(session->GetSSLSocketPool(
+                   HttpNetworkSession::NORMAL_SOCKET_POOL)));
+  EXPECT_EQ(0, GetSocketPoolGroupCount(session->GetTransportSocketPool(
+                   HttpNetworkSession::WEBSOCKET_SOCKET_POOL)));
+  EXPECT_EQ(0, GetSocketPoolGroupCount(session->GetSSLSocketPool(
+                   HttpNetworkSession::WEBSOCKET_SOCKET_POOL)));
+  EXPECT_EQ(2, GetHandedOutSocketCount(session->GetTransportSocketPool(
+                   HttpNetworkSession::NORMAL_SOCKET_POOL)));
+  EXPECT_EQ(2, GetHandedOutSocketCount(session->GetSSLSocketPool(
+                   HttpNetworkSession::NORMAL_SOCKET_POOL)));
+
+  // Open a third session that IP aliases first session.
+  StreamRequestWaiter waiter3;
+  std::unique_ptr<HttpStreamRequest> request3(
+      session->http_stream_factory()->RequestStream(
+          request_info1_alias, DEFAULT_PRIORITY, ssl_config, ssl_config,
+          &waiter3,
+          /* enable_ip_based_pooling = */ true,
+          /* enable_alternative_services = */ true, NetLogWithSource()));
+  waiter3.WaitForStream();
+  EXPECT_TRUE(waiter3.stream_done());
+  EXPECT_FALSE(waiter3.websocket_stream());
+  ASSERT_TRUE(waiter3.stream());
+
+  // Verify the session pool reused the first session and no new session is
+  // created.  This will fail unless the session pool supports multiple
+  // sessions aliasing a single IP.
+  EXPECT_EQ(2, GetSpdySessionCount(session.get()));
+  EXPECT_EQ(2, GetSocketPoolGroupCount(session->GetTransportSocketPool(
+                   HttpNetworkSession::NORMAL_SOCKET_POOL)));
+  EXPECT_EQ(2, GetSocketPoolGroupCount(session->GetSSLSocketPool(
+                   HttpNetworkSession::NORMAL_SOCKET_POOL)));
+  EXPECT_EQ(0, GetSocketPoolGroupCount(session->GetTransportSocketPool(
+                   HttpNetworkSession::WEBSOCKET_SOCKET_POOL)));
+  EXPECT_EQ(0, GetSocketPoolGroupCount(session->GetSSLSocketPool(
+                   HttpNetworkSession::WEBSOCKET_SOCKET_POOL)));
+  EXPECT_EQ(2, GetHandedOutSocketCount(session->GetTransportSocketPool(
+                   HttpNetworkSession::NORMAL_SOCKET_POOL)));
+  EXPECT_EQ(2, GetHandedOutSocketCount(session->GetSSLSocketPool(
+                   HttpNetworkSession::NORMAL_SOCKET_POOL)));
+
+  // Open a fourth session that IP aliases the second session.
+  StreamRequestWaiter waiter4;
+  std::unique_ptr<HttpStreamRequest> request4(
+      session->http_stream_factory()->RequestStream(
+          request_info2_alias, DEFAULT_PRIORITY, ssl_config, ssl_config,
+          &waiter4,
+          /* enable_ip_based_pooling = */ true,
+          /* enable_alternative_services = */ true, NetLogWithSource()));
+  waiter4.WaitForStream();
+  EXPECT_TRUE(waiter4.stream_done());
+  EXPECT_FALSE(waiter4.websocket_stream());
+  ASSERT_TRUE(waiter4.stream());
+
+  // Verify the session pool reused the second session.  This will fail unless
+  // the session pool supports multiple sessions aliasing a single IP.
+  EXPECT_EQ(2, GetSpdySessionCount(session.get()));
+  EXPECT_EQ(2, GetSocketPoolGroupCount(session->GetTransportSocketPool(
+                   HttpNetworkSession::NORMAL_SOCKET_POOL)));
+  EXPECT_EQ(2, GetSocketPoolGroupCount(session->GetSSLSocketPool(
+                   HttpNetworkSession::NORMAL_SOCKET_POOL)));
+  EXPECT_EQ(0, GetSocketPoolGroupCount(session->GetTransportSocketPool(
+                   HttpNetworkSession::WEBSOCKET_SOCKET_POOL)));
+  EXPECT_EQ(0, GetSocketPoolGroupCount(session->GetSSLSocketPool(
+                   HttpNetworkSession::WEBSOCKET_SOCKET_POOL)));
+  EXPECT_EQ(2, GetHandedOutSocketCount(session->GetTransportSocketPool(
+                   HttpNetworkSession::NORMAL_SOCKET_POOL)));
+  EXPECT_EQ(2, GetHandedOutSocketCount(session->GetSSLSocketPool(
+                   HttpNetworkSession::NORMAL_SOCKET_POOL)));
+}
+
 }  // namespace
 
 }  // namespace net
diff --git a/net/proxy_resolution/proxy_list.cc b/net/proxy_resolution/proxy_list.cc
index 60148e58..6a0e1a8f 100644
--- a/net/proxy_resolution/proxy_list.cc
+++ b/net/proxy_resolution/proxy_list.cc
@@ -155,20 +155,6 @@
 bool ProxyList::Fallback(ProxyRetryInfoMap* proxy_retry_info,
                          int net_error,
                          const NetLogWithSource& net_log) {
-  // TODO(eroman): It would be good if instead of removing failed proxies
-  // from the list, we simply annotated them with the error code they failed
-  // with. Of course, ProxyResolutionService::ReconsiderProxyAfterError() would
-  // need to be given this information by the network transaction.
-  //
-  // The advantage of this approach is when the network transaction
-  // fails, we could output the full list of proxies that were attempted, and
-  // why each one of those failed (as opposed to just the last failure).
-  //
-  // And also, before failing the transaction wholesale, we could go back and
-  // retry the "bad proxies" which we never tried to begin with.
-  // (RemoveBadProxies would annotate them as 'expected bad' rather then delete
-  // them from the list, so we would know what they were).
-
   if (proxies_.empty()) {
     NOTREACHED();
     return false;
diff --git a/net/proxy_resolution/proxy_service.h b/net/proxy_resolution/proxy_service.h
index 9a7b1c4..e7c867a 100644
--- a/net/proxy_resolution/proxy_service.h
+++ b/net/proxy_resolution/proxy_service.h
@@ -170,9 +170,7 @@
   // marked as bad will not be retried until |retry_delay| has passed. Returns
   // true if there will be at least one proxy remaining in the list after
   // fallback and false otherwise. This method should be used to add proxies to
-  // the bad proxy list only for reasons other than a network error. If a proxy
-  // needs to be added to the bad proxy list because a network error was
-  // encountered when trying to connect to it, use |ReconsiderProxyAfterError|.
+  // the bad proxy list only for reasons other than a network error.
   bool MarkProxiesAsBadUntil(
       const ProxyInfo& results,
       base::TimeDelta retry_delay,
@@ -181,8 +179,8 @@
 
   // Called to report that the last proxy connection succeeded.  If |proxy_info|
   // has a non empty proxy_retry_info map, the proxies that have been tried (and
-  // failed) for this request will be marked as bad. |proxy_delegate| will
-  // be notified of any proxy fallbacks.
+  // failed) for this request will be marked as bad. If non-null,
+  // |proxy_delegate| will be notified of any proxy fallbacks.
   void ReportSuccess(const ProxyInfo& proxy_info,
                      ProxyDelegate* proxy_delegate);
 
diff --git a/net/proxy_resolution/proxy_service_unittest.cc b/net/proxy_resolution/proxy_service_unittest.cc
index 4691327..5efa61aa 100644
--- a/net/proxy_resolution/proxy_service_unittest.cc
+++ b/net/proxy_resolution/proxy_service_unittest.cc
@@ -1357,6 +1357,10 @@
   EXPECT_FALSE(info.is_direct());
   EXPECT_EQ("foopy2:9090", info.proxy_server().ToURI());
 
+  // Persist foopy1's failure to |service|'s cache of bad proxies, so it will
+  // be considered by subsequent calls to ResolveProxy().
+  service.ReportSuccess(info, nullptr);
+
   // Fake a PAC failure.
   ProxyInfo info2;
   TestCompletionCallback callback3;
@@ -1392,11 +1396,12 @@
       "foopy1:8080;foopy2:9090");
   resolver.pending_jobs()[0]->CompleteNow(OK);
 
-  // The first proxy is not there since it was added to the bad proxies
-  // list by the earlier ReconsiderProxyAfterError().
+  // The first proxy was deprioritized since it was added to the bad proxies
+  // list by the earlier ReportSuccess().
   EXPECT_THAT(callback4.WaitForResult(), IsOk());
   EXPECT_FALSE(info3.is_direct());
-  EXPECT_EQ("foopy1:8080", info3.proxy_server().ToURI());
+  EXPECT_EQ("foopy2:9090", info3.proxy_server().ToURI());
+  EXPECT_EQ(2u, info3.proxy_list().size());
 
   EXPECT_FALSE(info.proxy_resolve_start_time().is_null());
   EXPECT_FALSE(info.proxy_resolve_end_time().is_null());
@@ -1450,6 +1455,10 @@
   EXPECT_FALSE(info.is_direct());
   EXPECT_EQ("foopy2:9090", info.proxy_server().ToURI());
 
+  // Persist foopy1's failure to |service|'s cache of bad proxies, so it will
+  // be considered by subsequent calls to ResolveProxy().
+  service.ReportSuccess(info, nullptr);
+
   // Fake a PAC failure.
   ProxyInfo info2;
   TestCompletionCallback callback3;
@@ -1486,11 +1495,12 @@
       "foopy1:8080;foopy2:9090");
   resolver.pending_jobs()[0]->CompleteNow(OK);
 
-  // The first proxy is not there since the it was added to the bad proxies
-  // list by the earlier ReconsiderProxyAfterError().
+  // The first proxy was deprioritized since it was added to the bad proxies
+  // list by the earlier ReportSuccess().
   EXPECT_THAT(callback4.WaitForResult(), IsOk());
   EXPECT_FALSE(info3.is_direct());
-  EXPECT_EQ("foopy1:8080", info3.proxy_server().ToURI());
+  EXPECT_EQ("foopy2:9090", info3.proxy_server().ToURI());
+  EXPECT_EQ(2u, info3.proxy_list().size());
 }
 
 TEST_F(ProxyServiceTest, ProxyBypassList) {
diff --git a/net/quic/http/decoder/quic_http_frame_decoder_adapter.cc b/net/quic/http/decoder/quic_http_frame_decoder_adapter.cc
index 6d93022..fca30a3 100644
--- a/net/quic/http/decoder/quic_http_frame_decoder_adapter.cc
+++ b/net/quic/http/decoder/quic_http_frame_decoder_adapter.cc
@@ -130,11 +130,7 @@
   return "UNKNOWN_STATE";
 }
 
-QuicHttpDecoderAdapter::QuicHttpDecoderAdapter()
-    : QuicHttpDecoderAdapter(false) {}
-
-QuicHttpDecoderAdapter::QuicHttpDecoderAdapter(bool h2_on_stream_pad_length)
-    : h2_on_stream_pad_length_(h2_on_stream_pad_length) {
+QuicHttpDecoderAdapter::QuicHttpDecoderAdapter() {
   DVLOG(1) << "QuicHttpDecoderAdapter ctor";
   ResetInternal();
 }
@@ -407,11 +403,7 @@
   opt_pad_length_ = trailing_length;
   DCHECK_LT(trailing_length, 256u);
   if (frame_header_.type == QuicHttpFrameType::DATA) {
-    if (h2_on_stream_pad_length_) {
-      visitor()->OnStreamPadLength(stream_id(), trailing_length);
-    } else {
-      visitor()->OnStreamPadding(stream_id(), 1);
-    }
+    visitor()->OnStreamPadLength(stream_id(), trailing_length);
   }
 }
 
diff --git a/net/quic/http/decoder/quic_http_frame_decoder_adapter.h b/net/quic/http/decoder/quic_http_frame_decoder_adapter.h
index 42a0516..aa96f34 100644
--- a/net/quic/http/decoder/quic_http_frame_decoder_adapter.h
+++ b/net/quic/http/decoder/quic_http_frame_decoder_adapter.h
@@ -54,7 +54,6 @@
   static const char* StateToString(int state);
 
   QuicHttpDecoderAdapter();
-  explicit QuicHttpDecoderAdapter(bool h2_on_stream_pad_length);
   ~QuicHttpDecoderAdapter() override;
 
   // Set callbacks to be called from the framer.  A visitor must be set, or
@@ -291,9 +290,6 @@
   bool handling_extension_payload_ = false;
 
   bool process_single_input_frame_ = false;
-
-  // Flag value latched at construction.
-  const bool h2_on_stream_pad_length_ : 1;
 };
 
 }  // namespace net
diff --git a/net/reporting/reporting_delegate.cc b/net/reporting/reporting_delegate.cc
index 8788137a..e25531a 100644
--- a/net/reporting/reporting_delegate.cc
+++ b/net/reporting/reporting_delegate.cc
@@ -26,9 +26,16 @@
            network_delegate()->CanQueueReportingReport(origin);
   }
 
-  bool CanSendReport(const url::Origin& origin) const override {
-    return network_delegate() &&
-           network_delegate()->CanSendReportingReport(origin);
+  void CanSendReports(std::set<url::Origin> origins,
+                      base::OnceCallback<void(std::set<url::Origin>)>
+                          result_callback) const override {
+    if (!network_delegate()) {
+      origins.clear();
+      std::move(result_callback).Run(std::move(origins));
+      return;
+    }
+    network_delegate()->CanSendReportingReports(std::move(origins),
+                                                std::move(result_callback));
   }
 
   bool CanSetClient(const url::Origin& origin,
diff --git a/net/reporting/reporting_delegate.h b/net/reporting/reporting_delegate.h
index ba8d7a9..23808fa 100644
--- a/net/reporting/reporting_delegate.h
+++ b/net/reporting/reporting_delegate.h
@@ -6,6 +6,7 @@
 #define NET_REPORTING_REPORTING_DELEGATE_H_
 
 #include <memory>
+#include <set>
 
 #include "base/callback.h"
 #include "base/macros.h"
@@ -29,9 +30,11 @@
   // Checks whether |origin| is allowed to queue reports for future delivery.
   virtual bool CanQueueReport(const url::Origin& origin) const = 0;
 
-  // Checks whether |origin| is allowed to receive reports, either in real time
-  // or that were queued earlier.
-  virtual bool CanSendReport(const url::Origin& origin) const = 0;
+  // Checks whether |origins| are allowed to receive reports, either in real
+  // time or that were queued earlier, removing any that aren't.
+  virtual void CanSendReports(std::set<url::Origin> origins,
+                              base::OnceCallback<void(std::set<url::Origin>)>
+                                  result_callback) const = 0;
 
   // Checks whether |origin| can set |endpoint| to be used for future report
   // deliveries.
diff --git a/net/reporting/reporting_delivery_agent.cc b/net/reporting/reporting_delivery_agent.cc
index 8786e30..e370cdd 100644
--- a/net/reporting/reporting_delivery_agent.cc
+++ b/net/reporting/reporting_delivery_agent.cc
@@ -112,17 +112,40 @@
     std::vector<const ReportingReport*> reports;
     cache()->GetReports(&reports);
 
+    // First determine which origins we're allowed to upload reports about.
+    std::set<url::Origin> origins;
+    for (const ReportingReport* report : reports) {
+      origins.insert(url::Origin::Create(report->url));
+    }
+    delegate()->CanSendReports(
+        std::move(origins),
+        base::BindOnce(&ReportingDeliveryAgentImpl::OnSendPermissionsChecked,
+                       weak_factory_.GetWeakPtr(), std::move(reports)));
+  }
+
+  void OnSendPermissionsChecked(std::vector<const ReportingReport*> reports,
+                                std::set<url::Origin> allowed_origins) {
+    std::vector<const ReportingReport*> disallowed_reports;
+
     // Sort reports into (origin, group) buckets.
     std::map<OriginGroup, std::vector<const ReportingReport*>>
         origin_group_reports;
     for (const ReportingReport* report : reports) {
       url::Origin origin = url::Origin::Create(report->url);
-      if (!delegate()->CanSendReport(origin))
+      if (allowed_origins.find(origin) == allowed_origins.end()) {
+        disallowed_reports.push_back(report);
         continue;
-      OriginGroup origin_group(url::Origin::Create(report->url), report->group);
+      }
+      OriginGroup origin_group(origin, report->group);
       origin_group_reports[origin_group].push_back(report);
     }
 
+    // Remove from the cache any reports that we're not allowed to upload.
+    cache()->RemoveReports(
+        disallowed_reports,
+        ReportingReport::Outcome::ERASED_NO_BACKGROUND_SYNC_PERMISSION);
+    disallowed_reports.clear();
+
     // Find endpoint for each (origin, group) bucket and sort reports into
     // endpoint buckets. Don't allow concurrent deliveries to the same (origin,
     // group) bucket.
diff --git a/net/reporting/reporting_delivery_agent_unittest.cc b/net/reporting/reporting_delivery_agent_unittest.cc
index c4e233a9..c9484ce 100644
--- a/net/reporting/reporting_delivery_agent_unittest.cc
+++ b/net/reporting/reporting_delivery_agent_unittest.cc
@@ -126,6 +126,35 @@
   EXPECT_TRUE(pending_uploads().empty());
 }
 
+TEST_F(ReportingDeliveryAgentTest, DisallowedUpload) {
+  // This mimics the check that is controlled by the BACKGROUND_SYNC permission
+  // in a real browser profile.
+  context()->test_delegate()->set_disallow_report_uploads(true);
+
+  static const int kAgeMillis = 12345;
+
+  base::DictionaryValue body;
+  body.SetString("key", "value");
+
+  SetClient(kOrigin_, kEndpoint_, kGroup_);
+  cache()->AddReport(kUrl_, kGroup_, kType_, body.CreateDeepCopy(),
+                     tick_clock()->NowTicks(), 0);
+
+  tick_clock()->Advance(base::TimeDelta::FromMilliseconds(kAgeMillis));
+
+  EXPECT_TRUE(delivery_timer()->IsRunning());
+  delivery_timer()->Fire();
+
+  // We should not try to upload the report, since we weren't given permission
+  // for this origin.
+  EXPECT_TRUE(pending_uploads().empty());
+
+  // Disallowed reports should have been removed from the cache.
+  std::vector<const ReportingReport*> reports;
+  cache()->GetReports(&reports);
+  EXPECT_TRUE(reports.empty());
+}
+
 TEST_F(ReportingDeliveryAgentTest, RemoveEndpointUpload) {
   static const url::Origin kDifferentOrigin =
       url::Origin::Create(GURL("https://origin2/"));
diff --git a/net/reporting/reporting_report.h b/net/reporting/reporting_report.h
index e7fba5d..1621ab0 100644
--- a/net/reporting/reporting_report.h
+++ b/net/reporting/reporting_report.h
@@ -33,6 +33,7 @@
     ERASED_BROWSING_DATA_REMOVED = 7,
     ERASED_REPORTING_SHUT_DOWN = 8,
     DELIVERED = 9,
+    ERASED_NO_BACKGROUND_SYNC_PERMISSION = 10,
 
     MAX
   };
diff --git a/net/reporting/reporting_test_util.cc b/net/reporting/reporting_test_util.cc
index 4dfc21d6..a718f5e5 100644
--- a/net/reporting/reporting_test_util.cc
+++ b/net/reporting/reporting_test_util.cc
@@ -118,8 +118,12 @@
   return true;
 }
 
-bool TestReportingDelegate::CanSendReport(const url::Origin& origin) const {
-  return true;
+void TestReportingDelegate::CanSendReports(
+    std::set<url::Origin> origins,
+    base::OnceCallback<void(std::set<url::Origin>)> result_callback) const {
+  if (disallow_report_uploads_)
+    origins.clear();
+  std::move(result_callback).Run(std::move(origins));
 }
 
 bool TestReportingDelegate::CanSetClient(const url::Origin& origin,
diff --git a/net/reporting/reporting_test_util.h b/net/reporting/reporting_test_util.h
index fe56e3aa..b9ae0af 100644
--- a/net/reporting/reporting_test_util.h
+++ b/net/reporting/reporting_test_util.h
@@ -6,6 +6,7 @@
 #define NET_REPORTING_REPORTING_TEST_UTIL_H_
 
 #include <memory>
+#include <set>
 #include <string>
 #include <vector>
 
@@ -89,9 +90,15 @@
 
   ~TestReportingDelegate() override;
 
+  void set_disallow_report_uploads(bool disallow_report_uploads) {
+    disallow_report_uploads_ = disallow_report_uploads;
+  }
+
   bool CanQueueReport(const url::Origin& origin) const override;
 
-  bool CanSendReport(const url::Origin& origin) const override;
+  void CanSendReports(std::set<url::Origin> origins,
+                      base::OnceCallback<void(std::set<url::Origin>)>
+                          result_callback) const override;
 
   bool CanSetClient(const url::Origin& origin,
                     const GURL& endpoint) const override;
@@ -104,6 +111,8 @@
                  const JsonFailureCallback& failure_callback) const override;
 
  private:
+  bool disallow_report_uploads_ = false;
+
   DISALLOW_COPY_AND_ASSIGN(TestReportingDelegate);
 };
 
diff --git a/net/spdy/chromium/buffered_spdy_framer.cc b/net/spdy/chromium/buffered_spdy_framer.cc
index be0650a0..3eb02e6 100644
--- a/net/spdy/chromium/buffered_spdy_framer.cc
+++ b/net/spdy/chromium/buffered_spdy_framer.cc
@@ -10,7 +10,6 @@
 #include "base/logging.h"
 #include "base/strings/string_util.h"
 #include "net/spdy/platform/api/spdy_estimate_memory_usage.h"
-#include "net/spdy/platform/api/spdy_flags.h"
 
 namespace net {
 
@@ -24,7 +23,6 @@
 BufferedSpdyFramer::BufferedSpdyFramer(uint32_t max_header_list_size,
                                        const NetLogWithSource& net_log)
     : spdy_framer_(SpdyFramer::ENABLE_COMPRESSION),
-      deframer_(GetSpdyReloadableFlag(h2_on_stream_pad_length)),
       visitor_(NULL),
       frames_received_(0),
       max_header_list_size_(max_header_list_size),
diff --git a/net/spdy/chromium/spdy_session_pool.cc b/net/spdy/chromium/spdy_session_pool.cc
index 4219eb31..26af9fcc 100644
--- a/net/spdy/chromium/spdy_session_pool.cc
+++ b/net/spdy/chromium/spdy_session_pool.cc
@@ -129,7 +129,7 @@
   if (key.proxy_server().is_direct()) {
     IPEndPoint address;
     if (available_session->GetPeerAddress(&address) == OK)
-      aliases_[address] = key;
+      aliases_.insert(AliasMap::value_type(address, key));
   }
 
   return available_session;
@@ -186,54 +186,56 @@
   for (AddressList::const_iterator address_it = addresses.begin();
        address_it != addresses.end();
        ++address_it) {
-    AliasMap::const_iterator alias_it = aliases_.find(*address_it);
-    if (alias_it == aliases_.end())
-      continue;
+    auto range = aliases_.equal_range(*address_it);
+    for (auto alias_it = range.first; alias_it != range.second; ++alias_it) {
+      // We found an alias.
+      const SpdySessionKey& alias_key = alias_it->second;
 
-    // We found an alias.
-    const SpdySessionKey& alias_key = alias_it->second;
+      // We can reuse this session only if the proxy and privacy
+      // settings and socket tag match.
+      if (!(alias_key.proxy_server() == key.proxy_server()) ||
+          !(alias_key.privacy_mode() == key.privacy_mode()) ||
+          !(alias_key.socket_tag() == key.socket_tag())) {
+        continue;
+      }
 
-    // We can reuse this session only if the proxy and privacy
-    // settings and socket tag match.
-    if (!(alias_key.proxy_server() == key.proxy_server()) ||
-        !(alias_key.privacy_mode() == key.privacy_mode()) ||
-        !(alias_key.socket_tag() == key.socket_tag())) {
-      continue;
+      AvailableSessionMap::iterator available_session_it =
+          LookupAvailableSessionByKey(alias_key);
+      if (available_session_it == available_sessions_.end()) {
+        NOTREACHED();  // It shouldn't be in the aliases table if we can't get
+                       // it!
+        continue;
+      }
+
+      const base::WeakPtr<SpdySession>& available_session =
+          available_session_it->second;
+      DCHECK(base::ContainsKey(sessions_, available_session.get()));
+
+      if (is_websocket && !available_session->support_websocket())
+        continue;
+
+      // If the session is a secure one, we need to verify that the
+      // server is authenticated to serve traffic for |host_port_proxy_pair|
+      // too.
+      if (!available_session->VerifyDomainAuthentication(
+              key.host_port_pair().host())) {
+        UMA_HISTOGRAM_ENUMERATION("Net.SpdyIPPoolDomainMatch", 0, 2);
+        continue;
+      }
+
+      UMA_HISTOGRAM_ENUMERATION("Net.SpdyIPPoolDomainMatch", 1, 2);
+      UMA_HISTOGRAM_ENUMERATION("Net.SpdySessionGet",
+                                FOUND_EXISTING_FROM_IP_POOL,
+                                SPDY_SESSION_GET_MAX);
+      net_log.AddEvent(
+          NetLogEventType::
+              HTTP2_SESSION_POOL_FOUND_EXISTING_SESSION_FROM_IP_POOL,
+          available_session->net_log().source().ToEventParametersCallback());
+      // Add this session to the map so that we can find it next time.
+      MapKeyToAvailableSession(key, available_session);
+      available_session->AddPooledAlias(key);
+      return available_session;
     }
-
-    AvailableSessionMap::iterator available_session_it =
-        LookupAvailableSessionByKey(alias_key);
-    if (available_session_it == available_sessions_.end()) {
-      NOTREACHED();  // It shouldn't be in the aliases table if we can't get it!
-      continue;
-    }
-
-    const base::WeakPtr<SpdySession>& available_session =
-        available_session_it->second;
-    DCHECK(base::ContainsKey(sessions_, available_session.get()));
-
-    if (is_websocket && !available_session->support_websocket())
-      continue;
-
-    // If the session is a secure one, we need to verify that the
-    // server is authenticated to serve traffic for |host_port_proxy_pair| too.
-    if (!available_session->VerifyDomainAuthentication(
-            key.host_port_pair().host())) {
-      UMA_HISTOGRAM_ENUMERATION("Net.SpdyIPPoolDomainMatch", 0, 2);
-      continue;
-    }
-
-    UMA_HISTOGRAM_ENUMERATION("Net.SpdyIPPoolDomainMatch", 1, 2);
-    UMA_HISTOGRAM_ENUMERATION("Net.SpdySessionGet",
-                              FOUND_EXISTING_FROM_IP_POOL,
-                              SPDY_SESSION_GET_MAX);
-    net_log.AddEvent(
-        NetLogEventType::HTTP2_SESSION_POOL_FOUND_EXISTING_SESSION_FROM_IP_POOL,
-        available_session->net_log().source().ToEventParametersCallback());
-    // Add this session to the map so that we can find it next time.
-    MapKeyToAvailableSession(key, available_session);
-    available_session->AddPooledAlias(key);
-    return available_session;
   }
 
   return base::WeakPtr<SpdySession>();
diff --git a/net/spdy/chromium/spdy_session_pool.h b/net/spdy/chromium/spdy_session_pool.h
index f0e577ed..8de7365 100644
--- a/net/spdy/chromium/spdy_session_pool.h
+++ b/net/spdy/chromium/spdy_session_pool.h
@@ -203,7 +203,7 @@
   typedef std::vector<base::WeakPtr<SpdySession> > WeakSessionList;
   typedef std::map<SpdySessionKey, base::WeakPtr<SpdySession> >
       AvailableSessionMap;
-  typedef std::map<IPEndPoint, SpdySessionKey> AliasMap;
+  typedef std::multimap<IPEndPoint, SpdySessionKey> AliasMap;
 
   // Returns true iff |session| is in |available_sessions_|.
   bool IsSessionAvailable(const base::WeakPtr<SpdySession>& session) const;
diff --git a/net/spdy/core/http2_frame_decoder_adapter.cc b/net/spdy/core/http2_frame_decoder_adapter.cc
index 0655db6..893bb47f 100644
--- a/net/spdy/core/http2_frame_decoder_adapter.cc
+++ b/net/spdy/core/http2_frame_decoder_adapter.cc
@@ -160,10 +160,7 @@
   return "UNKNOWN_ERROR";
 }
 
-Http2DecoderAdapter::Http2DecoderAdapter() : Http2DecoderAdapter(false) {}
-
-Http2DecoderAdapter::Http2DecoderAdapter(bool h2_on_stream_pad_length)
-    : h2_on_stream_pad_length_(h2_on_stream_pad_length) {
+Http2DecoderAdapter::Http2DecoderAdapter() {
   DVLOG(1) << "Http2DecoderAdapter ctor";
   ResetInternal();
 }
@@ -441,11 +438,7 @@
   opt_pad_length_ = trailing_length;
   DCHECK_LT(trailing_length, 256u);
   if (frame_header_.type == Http2FrameType::DATA) {
-    if (h2_on_stream_pad_length_) {
-      visitor()->OnStreamPadLength(stream_id(), trailing_length);
-    } else {
-      visitor()->OnStreamPadding(stream_id(), 1);
-    }
+    visitor()->OnStreamPadLength(stream_id(), trailing_length);
   }
 }
 
@@ -804,7 +797,7 @@
   CorruptFrameHeader(&frame_header_);
   CorruptFrameHeader(&hpack_first_frame_header_);
 
-  frame_decoder_.reset(new Http2FrameDecoder(this));
+  frame_decoder_ = SpdyMakeUnique<Http2FrameDecoder>(this);
   hpack_decoder_ = nullptr;
 }
 
diff --git a/net/spdy/core/http2_frame_decoder_adapter.h b/net/spdy/core/http2_frame_decoder_adapter.h
index 94be5d4..fc01b19 100644
--- a/net/spdy/core/http2_frame_decoder_adapter.h
+++ b/net/spdy/core/http2_frame_decoder_adapter.h
@@ -77,7 +77,6 @@
   static const char* SpdyFramerErrorToString(SpdyFramerError spdy_framer_error);
 
   Http2DecoderAdapter();
-  explicit Http2DecoderAdapter(bool h2_on_stream_pad_length);
   ~Http2DecoderAdapter() override;
 
   // Set callbacks to be called from the framer.  A visitor must be set, or
@@ -315,9 +314,6 @@
   bool handling_extension_payload_ = false;
 
   bool process_single_input_frame_ = false;
-
-  // Flag value latched at construction.
-  const bool h2_on_stream_pad_length_ : 1;
 };
 
 // Http2DecoderAdapter will use the given visitor implementing this
diff --git a/net/spdy/core/spdy_framer_test.cc b/net/spdy/core/spdy_framer_test.cc
index 9e8bc32..59c6b90 100644
--- a/net/spdy/core/spdy_framer_test.cc
+++ b/net/spdy/core/spdy_framer_test.cc
@@ -238,7 +238,6 @@
 
   explicit TestSpdyVisitor(SpdyFramer::CompressionOption option)
       : framer_(option),
-        deframer_(GetSpdyReloadableFlag(h2_on_stream_pad_length)),
         error_count_(0),
         headers_frame_count_(0),
         push_promise_frame_count_(0),
@@ -585,8 +584,7 @@
  public:
   SpdyFramerTest()
       : output_(output_buffer, kSize),
-        framer_(SpdyFramer::ENABLE_COMPRESSION),
-        deframer_(GetSpdyReloadableFlag(h2_on_stream_pad_length)) {}
+        framer_(SpdyFramer::ENABLE_COMPRESSION) {}
 
  protected:
   void SetUp() override {
@@ -797,11 +795,7 @@
   {
     testing::InSequence seq;
     EXPECT_CALL(visitor, OnDataFrameHeader(1, 5, false));
-    if (GetSpdyReloadableFlag(h2_on_stream_pad_length)) {
-      EXPECT_CALL(visitor, OnStreamPadLength(1, 4));
-    } else {
-      EXPECT_CALL(visitor, OnStreamPadding(1, 1));
-    }
+    EXPECT_CALL(visitor, OnStreamPadLength(1, 4));
     EXPECT_CALL(visitor, OnError(_)).Times(0);
     // Note that OnStreamFrameData(1, _, 1)) is never called
     // since there is no data, only padding
@@ -3108,11 +3102,7 @@
   bytes_consumed += kDataFrameMinimumSize;
 
   // Send the padding length field.
-  if (GetSpdyReloadableFlag(h2_on_stream_pad_length)) {
-    EXPECT_CALL(visitor, OnStreamPadLength(1, kPaddingLen - 1));
-  } else {
-    EXPECT_CALL(visitor, OnStreamPadding(1, 1));
-  }
+  EXPECT_CALL(visitor, OnStreamPadLength(1, kPaddingLen - 1));
   CHECK_EQ(1u, deframer_.ProcessInput(frame.data() + bytes_consumed, 1));
   CHECK_EQ(deframer_.state(), Http2DecoderAdapter::SPDY_FORWARD_STREAM_FRAME);
   CHECK_EQ(deframer_.spdy_framer_error(), Http2DecoderAdapter::SPDY_NO_ERROR);
diff --git a/net/spdy/core/spdy_protocol.cc b/net/spdy/core/spdy_protocol.cc
index bf3e655..871dd605 100644
--- a/net/spdy/core/spdy_protocol.cc
+++ b/net/spdy/core/spdy_protocol.cc
@@ -8,6 +8,7 @@
 
 #include "net/spdy/core/spdy_bug_tracker.h"
 #include "net/spdy/platform/api/spdy_flags.h"
+#include "net/spdy/platform/api/spdy_ptr_util.h"
 
 namespace net {
 
diff --git a/net/spdy/platform/impl/spdy_flags_impl.cc b/net/spdy/platform/impl/spdy_flags_impl.cc
index f02a351..bcec96c 100644
--- a/net/spdy/platform/impl/spdy_flags_impl.cc
+++ b/net/spdy/platform/impl/spdy_flags_impl.cc
@@ -6,9 +6,6 @@
 
 namespace net {
 
-// Deliver OnPaddingLength separately from OnPadding.
-bool h2_on_stream_pad_length = true;
-
 // Consider SETTINGS identifier 0x07 as invalid.
 bool http2_check_settings_id_007 = true;
 
diff --git a/net/spdy/platform/impl/spdy_flags_impl.h b/net/spdy/platform/impl/spdy_flags_impl.h
index 52c17e5a..95e26b72 100644
--- a/net/spdy/platform/impl/spdy_flags_impl.h
+++ b/net/spdy/platform/impl/spdy_flags_impl.h
@@ -9,7 +9,6 @@
 
 namespace net {
 
-NET_EXPORT_PRIVATE extern bool h2_on_stream_pad_length;
 NET_EXPORT_PRIVATE extern bool http2_check_settings_id_007;
 
 inline bool GetSpdyReloadableFlagImpl(bool flag) {
diff --git a/net/test/embedded_test_server/controllable_http_response.cc b/net/test/embedded_test_server/controllable_http_response.cc
index 47de787..2d13d545 100644
--- a/net/test/embedded_test_server/controllable_http_response.cc
+++ b/net/test/embedded_test_server/controllable_http_response.cc
@@ -40,9 +40,6 @@
     const std::string& relative_url)
     : weak_ptr_factory_(this) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  DCHECK(!embedded_test_server->Started()) << "ControllableHttpResponse must "
-                                              "be instanciated before starting "
-                                              "the EmbeddedTestServer.";
   embedded_test_server->RegisterRequestHandler(
       base::BindRepeating(RequestHandler, weak_ptr_factory_.GetWeakPtr(),
                           base::ThreadTaskRunnerHandle::Get(),
diff --git a/notification_helper/notification_activator.cc b/notification_helper/notification_activator.cc
index 31844897..28b6122c 100644
--- a/notification_helper/notification_activator.cc
+++ b/notification_helper/notification_activator.cc
@@ -81,14 +81,14 @@
   base::CommandLine command_line(base::CommandLine::NO_PROGRAM);
   command_line.AppendSwitchNative(switches::kNotificationLaunchId,
                                   invoked_args);
+  base::string16 params(command_line.GetCommandLineString());
 
   SHELLEXECUTEINFO info;
   memset(&info, 0, sizeof(info));
   info.cbSize = sizeof(info);
   info.fMask = SEE_MASK_NOASYNC | SEE_MASK_FLAG_LOG_USAGE;
   info.lpFile = chrome_exe_path.value().c_str();
-  base::string16 arguments(command_line.GetCommandLineString());
-  info.lpParameters = arguments.c_str();
+  info.lpParameters = params.c_str();
   info.nShow = SW_SHOWNORMAL;
 
   if (!::ShellExecuteEx(&info)) {
diff --git a/notification_helper/notification_helper_exe.ver b/notification_helper/notification_helper_exe.ver
index dac60cd0..eeebf42b 100644
--- a/notification_helper/notification_helper_exe.ver
+++ b/notification_helper/notification_helper_exe.ver
@@ -1,2 +1,2 @@
-INTERNAL_NAME=notification_helper_exe

+INTERNAL_NAME=notification_helper_exe
 ORIGINAL_FILENAME=notification_helper.exe
\ No newline at end of file
diff --git a/pdf/document_loader.cc b/pdf/document_loader.cc
index 49b1483..f8f89f55 100644
--- a/pdf/document_loader.cc
+++ b/pdf/document_loader.cc
@@ -9,6 +9,7 @@
 
 #include <algorithm>
 #include <memory>
+#include <utility>
 
 #include "base/logging.h"
 #include "base/numerics/safe_math.h"
@@ -52,8 +53,6 @@
 
 }  // namespace
 
-DocumentLoader::Client::~Client() = default;
-
 DocumentLoader::Chunk::Chunk() = default;
 
 DocumentLoader::Chunk::~Chunk() = default;
diff --git a/pdf/document_loader.h b/pdf/document_loader.h
index 52a5070..b8af158c 100644
--- a/pdf/document_loader.h
+++ b/pdf/document_loader.h
@@ -8,15 +8,16 @@
 #include <stddef.h>
 #include <stdint.h>
 
-#include <list>
 #include <memory>
 #include <string>
-#include <utility>
-#include <vector>
 
 #include "pdf/chunk_stream.h"
 #include "ppapi/utility/completion_callback_factory.h"
 
+namespace pp {
+class Instance;
+}
+
 namespace chrome_pdf {
 
 class URLLoaderWrapper;
@@ -28,7 +29,7 @@
 
   class Client {
    public:
-    virtual ~Client();
+    virtual ~Client() = default;
 
     // Gets the pp::Instance object.
     virtual pp::Instance* GetPluginInstance() = 0;
@@ -51,13 +52,13 @@
 
   bool Init(std::unique_ptr<URLLoaderWrapper> loader, const std::string& url);
 
-  // Data access interface. Return true is successful.
+  // Data access interface. Return true if successful.
   bool GetBlock(uint32_t position, uint32_t size, void* buf) const;
 
-  // Data availability interface. Return true data available.
+  // Data availability interface. Return true if data is available.
   bool IsDataAvailable(uint32_t position, uint32_t size) const;
 
-  // Data availability interface. Return true data available.
+  // Data request interface.
   void RequestData(uint32_t position, uint32_t size);
 
   bool IsDocumentComplete() const;
@@ -67,8 +68,8 @@
   // Clear pending requests from the queue.
   void ClearPendingRequests();
 
+  // Exposed for unit tests.
   void SetPartialLoadingEnabled(bool enabled);
-
   bool is_partial_loader_active() const { return is_partial_loader_active_; }
 
  private:
diff --git a/pdf/document_loader_unittest.cc b/pdf/document_loader_unittest.cc
index 8e909b9..da9a381 100644
--- a/pdf/document_loader_unittest.cc
+++ b/pdf/document_loader_unittest.cc
@@ -7,6 +7,7 @@
 #include <algorithm>
 #include <memory>
 #include <string>
+#include <vector>
 
 #include "base/logging.h"
 #include "pdf/url_loader_wrapper.h"
@@ -24,6 +25,8 @@
 
 namespace {
 
+constexpr uint32_t kDefaultRequestSize = DocumentLoader::kDefaultRequestSize;
+
 class TestURLLoader : public URLLoaderWrapper {
  public:
   class LoaderData {
@@ -228,7 +231,7 @@
     partial_loader_data_.CallOpenCallback(0);
     uint32_t length = partial_loader_data_.byte_range().length();
     while (length > 0) {
-      const uint32_t max_part_len = DocumentLoader::kDefaultRequestSize;
+      const uint32_t max_part_len = kDefaultRequestSize;
       const uint32_t part_len = std::min(length, max_part_len);
       partial_loader_data_.CallReadCallback(part_len);
       length -= part_len;
@@ -270,23 +273,20 @@
   loader.RequestData(1000000, 1);
   EXPECT_FALSE(loader.is_partial_loader_active());
   // Always send initial data from FullPageLoader.
-  client.full_page_loader_data()->CallReadCallback(
-      DocumentLoader::kDefaultRequestSize);
+  client.full_page_loader_data()->CallReadCallback(kDefaultRequestSize);
   EXPECT_TRUE(loader.is_partial_loader_active());
 }
 
 TEST_F(DocumentLoaderTest, PartialLoadingDisabledOnSmallFiles) {
   TestClient client;
   client.SetCanUsePartialLoading();
-  client.full_page_loader_data()->set_content_length(
-      DocumentLoader::kDefaultRequestSize * 2);
+  client.full_page_loader_data()->set_content_length(kDefaultRequestSize * 2);
   DocumentLoader loader(&client);
   loader.Init(client.CreateFullPageLoader(), "http://url.com");
   loader.RequestData(1000000, 1);
   EXPECT_FALSE(loader.is_partial_loader_active());
   // Always send initial data from FullPageLoader.
-  client.full_page_loader_data()->CallReadCallback(
-      DocumentLoader::kDefaultRequestSize);
+  client.full_page_loader_data()->CallReadCallback(kDefaultRequestSize);
   EXPECT_FALSE(loader.is_partial_loader_active());
 }
 
@@ -299,8 +299,7 @@
   loader.RequestData(1000000, 1);
   EXPECT_FALSE(loader.is_partial_loader_active());
   // Always send initial data from FullPageLoader.
-  client.full_page_loader_data()->CallReadCallback(
-      DocumentLoader::kDefaultRequestSize);
+  client.full_page_loader_data()->CallReadCallback(kDefaultRequestSize);
   EXPECT_FALSE(loader.is_partial_loader_active());
 }
 
@@ -313,8 +312,7 @@
   loader.RequestData(1000000, 1);
   EXPECT_FALSE(loader.is_partial_loader_active());
   // Always send initial data from FullPageLoader.
-  client.full_page_loader_data()->CallReadCallback(
-      DocumentLoader::kDefaultRequestSize);
+  client.full_page_loader_data()->CallReadCallback(kDefaultRequestSize);
   EXPECT_FALSE(loader.is_partial_loader_active());
 }
 
@@ -326,11 +324,10 @@
   loader.Init(client.CreateFullPageLoader(), "http://url.com");
   // We should not start partial loading if requested data is beside full page
   // loading position.
-  loader.RequestData(DocumentLoader::kDefaultRequestSize, 1);
+  loader.RequestData(kDefaultRequestSize, 1);
   EXPECT_FALSE(loader.is_partial_loader_active());
   // Always send initial data from FullPageLoader.
-  client.full_page_loader_data()->CallReadCallback(
-      DocumentLoader::kDefaultRequestSize);
+  client.full_page_loader_data()->CallReadCallback(kDefaultRequestSize);
   EXPECT_FALSE(loader.is_partial_loader_active());
 }
 
@@ -343,8 +340,7 @@
   loader.RequestData(1000000, 1);
   EXPECT_FALSE(loader.is_partial_loader_active());
   // Always send initial data from FullPageLoader.
-  client.full_page_loader_data()->CallReadCallback(
-      DocumentLoader::kDefaultRequestSize);
+  client.full_page_loader_data()->CallReadCallback(kDefaultRequestSize);
   EXPECT_FALSE(loader.is_partial_loader_active());
 }
 
@@ -364,8 +360,7 @@
   EXPECT_FALSE(loader.is_partial_loader_active());
 
   // Always send initial data from FullPageLoader.
-  client.full_page_loader_data()->CallReadCallback(
-      DocumentLoader::kDefaultRequestSize);
+  client.full_page_loader_data()->CallReadCallback(kDefaultRequestSize);
 
   // Partial loader should request headers.
   EXPECT_TRUE(client.partial_loader_data()->IsWaitOpen());
@@ -393,8 +388,7 @@
   EXPECT_FALSE(loader.is_partial_loader_active());
 
   // Always send initial data from FullPageLoader.
-  client.full_page_loader_data()->CallReadCallback(
-      DocumentLoader::kDefaultRequestSize);
+  client.full_page_loader_data()->CallReadCallback(kDefaultRequestSize);
 
   // Partial loader should request headers.
   EXPECT_TRUE(client.partial_loader_data()->IsWaitOpen());
@@ -452,19 +446,16 @@
 TEST_F(DocumentLoaderTest, CompleteWithPartial) {
   TestClient client;
   client.SetCanUsePartialLoading();
-  client.full_page_loader_data()->set_content_length(
-      DocumentLoader::kDefaultRequestSize * 20);
+  client.full_page_loader_data()->set_content_length(kDefaultRequestSize * 20);
   DocumentLoader loader(&client);
   loader.Init(client.CreateFullPageLoader(), "http://url.com");
-  loader.RequestData(19 * DocumentLoader::kDefaultRequestSize,
-                     DocumentLoader::kDefaultRequestSize);
+  loader.RequestData(19 * kDefaultRequestSize, kDefaultRequestSize);
   EXPECT_FALSE(client.full_page_loader_data()->closed());
   EXPECT_FALSE(client.partial_loader_data()->IsWaitRead());
   EXPECT_FALSE(client.partial_loader_data()->IsWaitOpen());
 
   // Always send initial data from FullPageLoader.
-  client.full_page_loader_data()->CallReadCallback(
-      DocumentLoader::kDefaultRequestSize);
+  client.full_page_loader_data()->CallReadCallback(kDefaultRequestSize);
   EXPECT_TRUE(client.full_page_loader_data()->closed());
   EXPECT_FALSE(client.partial_loader_data()->closed());
 
@@ -479,15 +470,14 @@
   const uint32_t kLastChunkSize = 300;
   TestClient client;
   client.SetCanUsePartialLoading();
-  client.full_page_loader_data()->set_content_length(
-      DocumentLoader::kDefaultRequestSize * 20 + kLastChunkSize);
+  client.full_page_loader_data()->set_content_length(kDefaultRequestSize * 20 +
+                                                     kLastChunkSize);
   DocumentLoader loader(&client);
   loader.Init(client.CreateFullPageLoader(), "http://url.com");
-  loader.RequestData(20 * DocumentLoader::kDefaultRequestSize, 1);
+  loader.RequestData(20 * kDefaultRequestSize, 1);
 
   // Always send initial data from FullPageLoader.
-  client.full_page_loader_data()->CallReadCallback(
-      DocumentLoader::kDefaultRequestSize);
+  client.full_page_loader_data()->CallReadCallback(kDefaultRequestSize);
 
   EXPECT_TRUE(client.partial_loader_data()->IsWaitOpen());
   EXPECT_EQ(
@@ -497,15 +487,13 @@
       client.partial_loader_data()->open_byte_range());
   client.partial_loader_data()->CallOpenCallback(0);
   uint32_t data_length = client.partial_loader_data()->byte_range().length();
-  while (data_length > DocumentLoader::kDefaultRequestSize) {
-    client.partial_loader_data()->CallReadCallback(
-        DocumentLoader::kDefaultRequestSize);
-    data_length -= DocumentLoader::kDefaultRequestSize;
+  while (data_length > kDefaultRequestSize) {
+    client.partial_loader_data()->CallReadCallback(kDefaultRequestSize);
+    data_length -= kDefaultRequestSize;
   }
   EXPECT_EQ(kLastChunkSize, data_length);
   client.partial_loader_data()->CallReadCallback(kLastChunkSize);
-  EXPECT_TRUE(loader.IsDataAvailable(DocumentLoader::kDefaultRequestSize * 20,
-                                     kLastChunkSize));
+  EXPECT_TRUE(loader.IsDataAvailable(kDefaultRequestSize * 20, kLastChunkSize));
 }
 
 TEST_F(DocumentLoaderTest, DocumentSize) {
@@ -523,38 +511,35 @@
   DocumentLoader loader(&client);
   loader.Init(client.CreateFullPageLoader(), "http://url.com");
   EXPECT_EQ(0ul, loader.GetDocumentSize());
-  client.full_page_loader_data()->CallReadCallback(
-      DocumentLoader::kDefaultRequestSize);
+  client.full_page_loader_data()->CallReadCallback(kDefaultRequestSize);
   client.full_page_loader_data()->CallReadCallback(1000);
   client.full_page_loader_data()->CallReadCallback(500);
   client.full_page_loader_data()->CallReadCallback(0);
-  EXPECT_EQ(DocumentLoader::kDefaultRequestSize + 1000ul + 500ul,
-            loader.GetDocumentSize());
+  EXPECT_EQ(kDefaultRequestSize + 1000ul + 500ul, loader.GetDocumentSize());
   EXPECT_TRUE(loader.IsDocumentComplete());
 }
 
 TEST_F(DocumentLoaderTest, ClearPendingRequests) {
   TestClient client;
   client.SetCanUsePartialLoading();
-  client.full_page_loader_data()->set_content_length(
-      DocumentLoader::kDefaultRequestSize * 100 + 58383);
+  client.full_page_loader_data()->set_content_length(kDefaultRequestSize * 100 +
+                                                     58383);
   DocumentLoader loader(&client);
   loader.Init(client.CreateFullPageLoader(), "http://url.com");
-  loader.RequestData(17 * DocumentLoader::kDefaultRequestSize + 100, 10);
+  loader.RequestData(17 * kDefaultRequestSize + 100, 10);
   loader.ClearPendingRequests();
-  loader.RequestData(15 * DocumentLoader::kDefaultRequestSize + 200, 20);
+  loader.RequestData(15 * kDefaultRequestSize + 200, 20);
   // pending requests are accumulating, and will be processed after initial data
   // load.
   EXPECT_FALSE(client.partial_loader_data()->IsWaitOpen());
 
   // Send initial data from FullPageLoader.
-  client.full_page_loader_data()->CallReadCallback(
-      DocumentLoader::kDefaultRequestSize);
+  client.full_page_loader_data()->CallReadCallback(kDefaultRequestSize);
 
   {
     EXPECT_TRUE(client.partial_loader_data()->IsWaitOpen());
-    const gfx::Range range_requested(15 * DocumentLoader::kDefaultRequestSize,
-                                     16 * DocumentLoader::kDefaultRequestSize);
+    const gfx::Range range_requested(15 * kDefaultRequestSize,
+                                     16 * kDefaultRequestSize);
     EXPECT_EQ(range_requested.start(),
               client.partial_loader_data()->open_byte_range().start());
     EXPECT_LE(range_requested.end(),
@@ -567,33 +552,30 @@
   // Current request should continue loading.
   EXPECT_TRUE(client.partial_loader_data()->IsWaitOpen());
   client.partial_loader_data()->CallOpenCallback(0);
-  client.partial_loader_data()->CallReadCallback(
-      DocumentLoader::kDefaultRequestSize);
+  client.partial_loader_data()->CallReadCallback(kDefaultRequestSize);
   EXPECT_FALSE(client.partial_loader_data()->closed());
   // Current request should continue loading, because no other request queued.
 
-  loader.RequestData(18 * DocumentLoader::kDefaultRequestSize + 200, 20);
+  loader.RequestData(18 * kDefaultRequestSize + 200, 20);
   // Requests queue is processed only on receiving data.
-  client.partial_loader_data()->CallReadCallback(
-      DocumentLoader::kDefaultRequestSize);
+  client.partial_loader_data()->CallReadCallback(kDefaultRequestSize);
   // New request within close distance from the one currently loading. Loading
   // isn't restarted.
   EXPECT_FALSE(client.partial_loader_data()->IsWaitOpen());
 
   loader.ClearPendingRequests();
   // request again two.
-  loader.RequestData(60 * DocumentLoader::kDefaultRequestSize + 100, 10);
-  loader.RequestData(35 * DocumentLoader::kDefaultRequestSize + 200, 20);
+  loader.RequestData(60 * kDefaultRequestSize + 100, 10);
+  loader.RequestData(35 * kDefaultRequestSize + 200, 20);
   // Requests queue is processed only on receiving data.
-  client.partial_loader_data()->CallReadCallback(
-      DocumentLoader::kDefaultRequestSize);
+  client.partial_loader_data()->CallReadCallback(kDefaultRequestSize);
   {
     // new requset not with in close distance from current loading.
     // Loading should be restarted.
     EXPECT_TRUE(client.partial_loader_data()->IsWaitOpen());
     // The first requested chunk should be processed.
-    const gfx::Range range_requested(35 * DocumentLoader::kDefaultRequestSize,
-                                     36 * DocumentLoader::kDefaultRequestSize);
+    const gfx::Range range_requested(35 * kDefaultRequestSize,
+                                     36 * kDefaultRequestSize);
     EXPECT_EQ(range_requested.start(),
               client.partial_loader_data()->open_byte_range().start());
     EXPECT_LE(range_requested.end(),
@@ -605,18 +587,17 @@
   client.partial_loader_data()->CallOpenCallback(0);
   // Override pending requests.
   loader.ClearPendingRequests();
-  loader.RequestData(70 * DocumentLoader::kDefaultRequestSize + 100, 10);
+  loader.RequestData(70 * kDefaultRequestSize + 100, 10);
 
   // Requests queue is processed only on receiving data.
-  client.partial_loader_data()->CallReadCallback(
-      DocumentLoader::kDefaultRequestSize);
+  client.partial_loader_data()->CallReadCallback(kDefaultRequestSize);
   {
     // New requset not with in close distance from current loading.
     // Loading should be restarted .
     EXPECT_TRUE(client.partial_loader_data()->IsWaitOpen());
     // The first requested chunk should be processed.
-    const gfx::Range range_requested(70 * DocumentLoader::kDefaultRequestSize,
-                                     71 * DocumentLoader::kDefaultRequestSize);
+    const gfx::Range range_requested(70 * kDefaultRequestSize,
+                                     71 * kDefaultRequestSize);
     EXPECT_EQ(range_requested.start(),
               client.partial_loader_data()->open_byte_range().start());
     EXPECT_LE(range_requested.end(),
@@ -628,91 +609,74 @@
 }
 
 TEST_F(DocumentLoaderTest, GetBlock) {
-  std::vector<char> buffer(DocumentLoader::kDefaultRequestSize);
+  std::vector<char> buffer(kDefaultRequestSize);
   TestClient client;
   client.SetCanUsePartialLoading();
-  client.full_page_loader_data()->set_content_length(
-      DocumentLoader::kDefaultRequestSize * 20 + 58383);
+  client.full_page_loader_data()->set_content_length(kDefaultRequestSize * 20 +
+                                                     58383);
   DocumentLoader loader(&client);
   loader.Init(client.CreateFullPageLoader(), "http://url.com");
   EXPECT_FALSE(loader.GetBlock(0, 1000, buffer.data()));
-  client.full_page_loader_data()->CallReadCallback(
-      DocumentLoader::kDefaultRequestSize);
+  client.full_page_loader_data()->CallReadCallback(kDefaultRequestSize);
   EXPECT_TRUE(loader.GetBlock(0, 1000, buffer.data()));
-  EXPECT_FALSE(loader.GetBlock(DocumentLoader::kDefaultRequestSize, 1500,
-                               buffer.data()));
-  client.full_page_loader_data()->CallReadCallback(
-      DocumentLoader::kDefaultRequestSize);
-  EXPECT_TRUE(loader.GetBlock(DocumentLoader::kDefaultRequestSize, 1500,
-                              buffer.data()));
+  EXPECT_FALSE(loader.GetBlock(kDefaultRequestSize, 1500, buffer.data()));
+  client.full_page_loader_data()->CallReadCallback(kDefaultRequestSize);
+  EXPECT_TRUE(loader.GetBlock(kDefaultRequestSize, 1500, buffer.data()));
 
-  EXPECT_FALSE(loader.GetBlock(17 * DocumentLoader::kDefaultRequestSize, 3000,
-                               buffer.data()));
-  loader.RequestData(17 * DocumentLoader::kDefaultRequestSize + 100, 10);
-  EXPECT_FALSE(loader.GetBlock(17 * DocumentLoader::kDefaultRequestSize, 3000,
-                               buffer.data()));
+  EXPECT_FALSE(loader.GetBlock(17 * kDefaultRequestSize, 3000, buffer.data()));
+  loader.RequestData(17 * kDefaultRequestSize + 100, 10);
+  EXPECT_FALSE(loader.GetBlock(17 * kDefaultRequestSize, 3000, buffer.data()));
 
   // Requests queue is processed only on receiving data.
-  client.full_page_loader_data()->CallReadCallback(
-      DocumentLoader::kDefaultRequestSize);
+  client.full_page_loader_data()->CallReadCallback(kDefaultRequestSize);
 
   client.SendAllPartialData();
-  EXPECT_TRUE(loader.GetBlock(17 * DocumentLoader::kDefaultRequestSize, 3000,
-                              buffer.data()));
+  EXPECT_TRUE(loader.GetBlock(17 * kDefaultRequestSize, 3000, buffer.data()));
 }
 
 TEST_F(DocumentLoaderTest, IsDataAvailable) {
   TestClient client;
   client.SetCanUsePartialLoading();
-  client.full_page_loader_data()->set_content_length(
-      DocumentLoader::kDefaultRequestSize * 20 + 58383);
+  client.full_page_loader_data()->set_content_length(kDefaultRequestSize * 20 +
+                                                     58383);
   DocumentLoader loader(&client);
   loader.Init(client.CreateFullPageLoader(), "http://url.com");
   EXPECT_FALSE(loader.IsDataAvailable(0, 1000));
-  client.full_page_loader_data()->CallReadCallback(
-      DocumentLoader::kDefaultRequestSize);
+  client.full_page_loader_data()->CallReadCallback(kDefaultRequestSize);
   EXPECT_TRUE(loader.IsDataAvailable(0, 1000));
-  EXPECT_FALSE(
-      loader.IsDataAvailable(DocumentLoader::kDefaultRequestSize, 1500));
-  client.full_page_loader_data()->CallReadCallback(
-      DocumentLoader::kDefaultRequestSize);
-  EXPECT_TRUE(
-      loader.IsDataAvailable(DocumentLoader::kDefaultRequestSize, 1500));
+  EXPECT_FALSE(loader.IsDataAvailable(kDefaultRequestSize, 1500));
+  client.full_page_loader_data()->CallReadCallback(kDefaultRequestSize);
+  EXPECT_TRUE(loader.IsDataAvailable(kDefaultRequestSize, 1500));
 
-  EXPECT_FALSE(
-      loader.IsDataAvailable(17 * DocumentLoader::kDefaultRequestSize, 3000));
-  loader.RequestData(17 * DocumentLoader::kDefaultRequestSize + 100, 10);
-  EXPECT_FALSE(
-      loader.IsDataAvailable(17 * DocumentLoader::kDefaultRequestSize, 3000));
+  EXPECT_FALSE(loader.IsDataAvailable(17 * kDefaultRequestSize, 3000));
+  loader.RequestData(17 * kDefaultRequestSize + 100, 10);
+  EXPECT_FALSE(loader.IsDataAvailable(17 * kDefaultRequestSize, 3000));
 
   // Requests queue is processed only on receiving data.
-  client.full_page_loader_data()->CallReadCallback(
-      DocumentLoader::kDefaultRequestSize);
+  client.full_page_loader_data()->CallReadCallback(kDefaultRequestSize);
 
   client.SendAllPartialData();
-  EXPECT_TRUE(
-      loader.IsDataAvailable(17 * DocumentLoader::kDefaultRequestSize, 3000));
+  EXPECT_TRUE(loader.IsDataAvailable(17 * kDefaultRequestSize, 3000));
 }
 
 TEST_F(DocumentLoaderTest, RequestData) {
   TestClient client;
   client.SetCanUsePartialLoading();
-  client.full_page_loader_data()->set_content_length(
-      DocumentLoader::kDefaultRequestSize * 100 + 58383);
+  client.full_page_loader_data()->set_content_length(kDefaultRequestSize * 100 +
+                                                     58383);
   DocumentLoader loader(&client);
   loader.Init(client.CreateFullPageLoader(), "http://url.com");
-  loader.RequestData(37 * DocumentLoader::kDefaultRequestSize + 200, 10);
-  loader.RequestData(25 * DocumentLoader::kDefaultRequestSize + 600, 100);
-  loader.RequestData(13 * DocumentLoader::kDefaultRequestSize + 900, 500);
+  loader.RequestData(37 * kDefaultRequestSize + 200, 10);
+  loader.RequestData(25 * kDefaultRequestSize + 600, 100);
+  loader.RequestData(13 * kDefaultRequestSize + 900, 500);
 
   // Send initial data from FullPageLoader.
-  client.full_page_loader_data()->CallReadCallback(
-      DocumentLoader::kDefaultRequestSize);
+  client.full_page_loader_data()->CallReadCallback(kDefaultRequestSize);
 
   {
     EXPECT_TRUE(client.partial_loader_data()->IsWaitOpen());
-    const gfx::Range range_requested(13 * DocumentLoader::kDefaultRequestSize,
-                                     14 * DocumentLoader::kDefaultRequestSize);
+    const gfx::Range range_requested(13 * kDefaultRequestSize,
+                                     14 * kDefaultRequestSize);
     EXPECT_EQ(range_requested.start(),
               client.partial_loader_data()->open_byte_range().start());
     EXPECT_LE(range_requested.end(),
@@ -723,15 +687,14 @@
   client.partial_loader_data()->CallOpenCallback(0);
   // Override pending requests.
   loader.ClearPendingRequests();
-  loader.RequestData(38 * DocumentLoader::kDefaultRequestSize + 200, 10);
-  loader.RequestData(26 * DocumentLoader::kDefaultRequestSize + 600, 100);
+  loader.RequestData(38 * kDefaultRequestSize + 200, 10);
+  loader.RequestData(26 * kDefaultRequestSize + 600, 100);
   // Requests queue is processed only on receiving data.
-  client.partial_loader_data()->CallReadCallback(
-      DocumentLoader::kDefaultRequestSize);
+  client.partial_loader_data()->CallReadCallback(kDefaultRequestSize);
   {
     EXPECT_TRUE(client.partial_loader_data()->IsWaitOpen());
-    const gfx::Range range_requested(26 * DocumentLoader::kDefaultRequestSize,
-                                     27 * DocumentLoader::kDefaultRequestSize);
+    const gfx::Range range_requested(26 * kDefaultRequestSize,
+                                     27 * kDefaultRequestSize);
     EXPECT_EQ(range_requested.start(),
               client.partial_loader_data()->open_byte_range().start());
     EXPECT_LE(range_requested.end(),
@@ -742,14 +705,13 @@
   client.partial_loader_data()->CallOpenCallback(0);
   // Override pending requests.
   loader.ClearPendingRequests();
-  loader.RequestData(39 * DocumentLoader::kDefaultRequestSize + 200, 10);
+  loader.RequestData(39 * kDefaultRequestSize + 200, 10);
   // Requests queue is processed only on receiving data.
-  client.partial_loader_data()->CallReadCallback(
-      DocumentLoader::kDefaultRequestSize);
+  client.partial_loader_data()->CallReadCallback(kDefaultRequestSize);
   {
     EXPECT_TRUE(client.partial_loader_data()->IsWaitOpen());
-    const gfx::Range range_requested(39 * DocumentLoader::kDefaultRequestSize,
-                                     40 * DocumentLoader::kDefaultRequestSize);
+    const gfx::Range range_requested(39 * kDefaultRequestSize,
+                                     40 * kDefaultRequestSize);
     EXPECT_EQ(range_requested.start(),
               client.partial_loader_data()->open_byte_range().start());
     EXPECT_LE(range_requested.end(),
@@ -767,23 +729,20 @@
 TEST_F(DocumentLoaderTest, DoNotLoadAvailablePartialData) {
   TestClient client;
   client.SetCanUsePartialLoading();
-  client.full_page_loader_data()->set_content_length(
-      DocumentLoader::kDefaultRequestSize * 20 + 58383);
+  client.full_page_loader_data()->set_content_length(kDefaultRequestSize * 20 +
+                                                     58383);
   DocumentLoader loader(&client);
   loader.Init(client.CreateFullPageLoader(), "http://url.com");
   // Send initial data from FullPageLoader.
-  client.full_page_loader_data()->CallReadCallback(
-      DocumentLoader::kDefaultRequestSize);
+  client.full_page_loader_data()->CallReadCallback(kDefaultRequestSize);
 
   // Send more data from FullPageLoader.
-  client.full_page_loader_data()->CallReadCallback(
-      DocumentLoader::kDefaultRequestSize);
+  client.full_page_loader_data()->CallReadCallback(kDefaultRequestSize);
 
-  loader.RequestData(2 * DocumentLoader::kDefaultRequestSize + 200, 10);
+  loader.RequestData(2 * kDefaultRequestSize + 200, 10);
 
   // Send more data from FullPageLoader.
-  client.full_page_loader_data()->CallReadCallback(
-      DocumentLoader::kDefaultRequestSize);
+  client.full_page_loader_data()->CallReadCallback(kDefaultRequestSize);
 
   // Partial loading should not have started for already available data.
   EXPECT_TRUE(client.partial_loader_data()->closed());
@@ -792,19 +751,17 @@
 TEST_F(DocumentLoaderTest, DoNotLoadDataAfterComplete) {
   TestClient client;
   client.SetCanUsePartialLoading();
-  client.full_page_loader_data()->set_content_length(
-      DocumentLoader::kDefaultRequestSize * 20);
+  client.full_page_loader_data()->set_content_length(kDefaultRequestSize * 20);
   DocumentLoader loader(&client);
   loader.Init(client.CreateFullPageLoader(), "http://url.com");
 
   for (int i = 0; i < 20; ++i) {
-    client.full_page_loader_data()->CallReadCallback(
-        DocumentLoader::kDefaultRequestSize);
+    client.full_page_loader_data()->CallReadCallback(kDefaultRequestSize);
   }
 
   EXPECT_TRUE(loader.IsDocumentComplete());
 
-  loader.RequestData(17 * DocumentLoader::kDefaultRequestSize + 200, 10);
+  loader.RequestData(17 * kDefaultRequestSize + 200, 10);
 
   EXPECT_TRUE(client.partial_loader_data()->closed());
   EXPECT_TRUE(client.full_page_loader_data()->closed());
@@ -813,16 +770,14 @@
 TEST_F(DocumentLoaderTest, DoNotLoadPartialDataAboveDocumentSize) {
   TestClient client;
   client.SetCanUsePartialLoading();
-  client.full_page_loader_data()->set_content_length(
-      DocumentLoader::kDefaultRequestSize * 20);
+  client.full_page_loader_data()->set_content_length(kDefaultRequestSize * 20);
   DocumentLoader loader(&client);
   loader.Init(client.CreateFullPageLoader(), "http://url.com");
 
-  loader.RequestData(20 * DocumentLoader::kDefaultRequestSize + 200, 10);
+  loader.RequestData(20 * kDefaultRequestSize + 200, 10);
 
   // Send initial data from FullPageLoader.
-  client.full_page_loader_data()->CallReadCallback(
-      DocumentLoader::kDefaultRequestSize);
+  client.full_page_loader_data()->CallReadCallback(kDefaultRequestSize);
 
   EXPECT_TRUE(client.partial_loader_data()->closed());
 }
@@ -830,19 +785,18 @@
 TEST_F(DocumentLoaderTest, MergePendingRequests) {
   TestClient client;
   client.SetCanUsePartialLoading();
-  client.full_page_loader_data()->set_content_length(
-      DocumentLoader::kDefaultRequestSize * 50 + 58383);
+  client.full_page_loader_data()->set_content_length(kDefaultRequestSize * 50 +
+                                                     58383);
   DocumentLoader loader(&client);
   loader.Init(client.CreateFullPageLoader(), "http://url.com");
-  loader.RequestData(17 * DocumentLoader::kDefaultRequestSize + 200, 10);
-  loader.RequestData(16 * DocumentLoader::kDefaultRequestSize + 600, 100);
+  loader.RequestData(17 * kDefaultRequestSize + 200, 10);
+  loader.RequestData(16 * kDefaultRequestSize + 600, 100);
 
   // Send initial data from FullPageLoader.
-  client.full_page_loader_data()->CallReadCallback(
-      DocumentLoader::kDefaultRequestSize);
+  client.full_page_loader_data()->CallReadCallback(kDefaultRequestSize);
 
-  const gfx::Range range_requested(16 * DocumentLoader::kDefaultRequestSize,
-                                   18 * DocumentLoader::kDefaultRequestSize);
+  const gfx::Range range_requested(16 * kDefaultRequestSize,
+                                   18 * kDefaultRequestSize);
   EXPECT_EQ(range_requested.start(),
             client.partial_loader_data()->open_byte_range().start());
   EXPECT_LE(range_requested.end(),
@@ -860,16 +814,14 @@
 TEST_F(DocumentLoaderTest, PartialStopOnStatusCodeError) {
   TestClient client;
   client.SetCanUsePartialLoading();
-  client.full_page_loader_data()->set_content_length(
-      DocumentLoader::kDefaultRequestSize * 20);
+  client.full_page_loader_data()->set_content_length(kDefaultRequestSize * 20);
   DocumentLoader loader(&client);
   loader.Init(client.CreateFullPageLoader(), "http://url.com");
 
-  loader.RequestData(17 * DocumentLoader::kDefaultRequestSize + 200, 10);
+  loader.RequestData(17 * kDefaultRequestSize + 200, 10);
 
   // Send initial data from FullPageLoader.
-  client.full_page_loader_data()->CallReadCallback(
-      DocumentLoader::kDefaultRequestSize);
+  client.full_page_loader_data()->CallReadCallback(kDefaultRequestSize);
 
   EXPECT_TRUE(client.partial_loader_data()->IsWaitOpen());
   client.partial_loader_data()->set_status_code(404);
@@ -881,16 +833,14 @@
        PartialAsFullDocumentLoadingRangeRequestNoRangeField) {
   TestClient client;
   client.SetCanUsePartialLoading();
-  client.full_page_loader_data()->set_content_length(
-      DocumentLoader::kDefaultRequestSize * 20);
+  client.full_page_loader_data()->set_content_length(kDefaultRequestSize * 20);
   DocumentLoader loader(&client);
   loader.Init(client.CreateFullPageLoader(), "http://url.com");
 
-  loader.RequestData(17 * DocumentLoader::kDefaultRequestSize + 200, 10);
+  loader.RequestData(17 * kDefaultRequestSize + 200, 10);
 
   // Send initial data from FullPageLoader.
-  client.full_page_loader_data()->CallReadCallback(
-      DocumentLoader::kDefaultRequestSize);
+  client.full_page_loader_data()->CallReadCallback(kDefaultRequestSize);
 
   EXPECT_TRUE(client.partial_loader_data()->IsWaitOpen());
   client.partial_loader_data()->set_byte_range(gfx::Range::InvalidRange());
@@ -903,74 +853,65 @@
 TEST_F(DocumentLoaderTest, PartialMultiPart) {
   TestClient client;
   client.SetCanUsePartialLoading();
-  client.full_page_loader_data()->set_content_length(
-      DocumentLoader::kDefaultRequestSize * 20);
+  client.full_page_loader_data()->set_content_length(kDefaultRequestSize * 20);
   DocumentLoader loader(&client);
   loader.Init(client.CreateFullPageLoader(), "http://url.com");
 
-  loader.RequestData(17 * DocumentLoader::kDefaultRequestSize + 200, 10);
+  loader.RequestData(17 * kDefaultRequestSize + 200, 10);
 
   // Send initial data from FullPageLoader.
-  client.full_page_loader_data()->CallReadCallback(
-      DocumentLoader::kDefaultRequestSize);
+  client.full_page_loader_data()->CallReadCallback(kDefaultRequestSize);
 
   EXPECT_TRUE(client.partial_loader_data()->IsWaitOpen());
   client.partial_loader_data()->set_is_multipart(true);
   client.partial_loader_data()->CallOpenCallback(0);
   client.partial_loader_data()->set_byte_range(
-      gfx::Range(17 * DocumentLoader::kDefaultRequestSize,
-                 18 * DocumentLoader::kDefaultRequestSize));
-  client.partial_loader_data()->CallReadCallback(
-      DocumentLoader::kDefaultRequestSize);
-  EXPECT_TRUE(loader.IsDataAvailable(17 * DocumentLoader::kDefaultRequestSize,
-                                     DocumentLoader::kDefaultRequestSize));
+      gfx::Range(17 * kDefaultRequestSize, 18 * kDefaultRequestSize));
+  client.partial_loader_data()->CallReadCallback(kDefaultRequestSize);
+  EXPECT_TRUE(
+      loader.IsDataAvailable(17 * kDefaultRequestSize, kDefaultRequestSize));
 }
 
 TEST_F(DocumentLoaderTest, PartialMultiPartRangeError) {
   TestClient client;
   client.SetCanUsePartialLoading();
-  client.full_page_loader_data()->set_content_length(
-      DocumentLoader::kDefaultRequestSize * 20);
+  client.full_page_loader_data()->set_content_length(kDefaultRequestSize * 20);
   DocumentLoader loader(&client);
   loader.Init(client.CreateFullPageLoader(), "http://url.com");
 
-  loader.RequestData(17 * DocumentLoader::kDefaultRequestSize + 200, 10);
+  loader.RequestData(17 * kDefaultRequestSize + 200, 10);
 
   // Send initial data from FullPageLoader.
-  client.full_page_loader_data()->CallReadCallback(
-      DocumentLoader::kDefaultRequestSize);
+  client.full_page_loader_data()->CallReadCallback(kDefaultRequestSize);
 
   EXPECT_TRUE(client.partial_loader_data()->IsWaitOpen());
   client.partial_loader_data()->set_is_multipart(true);
   client.partial_loader_data()->CallOpenCallback(0);
   client.partial_loader_data()->set_byte_range(gfx::Range::InvalidRange());
-  client.partial_loader_data()->CallReadCallback(
-      DocumentLoader::kDefaultRequestSize);
-  EXPECT_FALSE(loader.IsDataAvailable(17 * DocumentLoader::kDefaultRequestSize,
-                                      DocumentLoader::kDefaultRequestSize));
+  client.partial_loader_data()->CallReadCallback(kDefaultRequestSize);
+  EXPECT_FALSE(
+      loader.IsDataAvailable(17 * kDefaultRequestSize, kDefaultRequestSize));
   EXPECT_TRUE(client.partial_loader_data()->closed());
 }
 
 TEST_F(DocumentLoaderTest, PartialConnectionErrorOnOpen) {
   TestClient client;
   client.SetCanUsePartialLoading();
-  client.full_page_loader_data()->set_content_length(
-      DocumentLoader::kDefaultRequestSize * 20);
+  client.full_page_loader_data()->set_content_length(kDefaultRequestSize * 20);
   DocumentLoader loader(&client);
   loader.Init(client.CreateFullPageLoader(), "http://url.com");
 
-  loader.RequestData(17 * DocumentLoader::kDefaultRequestSize + 200, 10);
+  loader.RequestData(17 * kDefaultRequestSize + 200, 10);
 
   // Send initial data from FullPageLoader.
-  client.full_page_loader_data()->CallReadCallback(
-      DocumentLoader::kDefaultRequestSize);
+  client.full_page_loader_data()->CallReadCallback(kDefaultRequestSize);
 
   EXPECT_TRUE(client.partial_loader_data()->IsWaitOpen());
   client.partial_loader_data()->CallOpenCallback(-3);
   EXPECT_TRUE(client.partial_loader_data()->closed());
 
   // Partial loading should not restart after any error.
-  loader.RequestData(18 * DocumentLoader::kDefaultRequestSize + 200, 10);
+  loader.RequestData(18 * kDefaultRequestSize + 200, 10);
 
   EXPECT_FALSE(client.partial_loader_data()->IsWaitOpen());
   EXPECT_TRUE(client.partial_loader_data()->closed());
@@ -979,28 +920,25 @@
 TEST_F(DocumentLoaderTest, PartialConnectionErrorOnRead) {
   TestClient client;
   client.SetCanUsePartialLoading();
-  client.full_page_loader_data()->set_content_length(
-      DocumentLoader::kDefaultRequestSize * 20);
+  client.full_page_loader_data()->set_content_length(kDefaultRequestSize * 20);
   DocumentLoader loader(&client);
   loader.Init(client.CreateFullPageLoader(), "http://url.com");
 
-  loader.RequestData(17 * DocumentLoader::kDefaultRequestSize + 200, 10);
+  loader.RequestData(17 * kDefaultRequestSize + 200, 10);
 
   // Send initial data from FullPageLoader.
-  client.full_page_loader_data()->CallReadCallback(
-      DocumentLoader::kDefaultRequestSize);
+  client.full_page_loader_data()->CallReadCallback(kDefaultRequestSize);
 
   EXPECT_TRUE(client.partial_loader_data()->IsWaitOpen());
   client.partial_loader_data()->set_byte_range(
-      gfx::Range(17 * DocumentLoader::kDefaultRequestSize,
-                 18 * DocumentLoader::kDefaultRequestSize));
+      gfx::Range(17 * kDefaultRequestSize, 18 * kDefaultRequestSize));
   client.partial_loader_data()->CallOpenCallback(0);
   EXPECT_TRUE(client.partial_loader_data()->IsWaitRead());
   client.partial_loader_data()->CallReadCallback(-3);
   EXPECT_TRUE(client.partial_loader_data()->closed());
 
   // Partial loading should not restart after any error.
-  loader.RequestData(18 * DocumentLoader::kDefaultRequestSize + 200, 10);
+  loader.RequestData(18 * kDefaultRequestSize + 200, 10);
 
   EXPECT_FALSE(client.partial_loader_data()->IsWaitOpen());
   EXPECT_TRUE(client.partial_loader_data()->closed());
@@ -1009,21 +947,17 @@
 TEST_F(DocumentLoaderTest, ClientCompleteCallbacks) {
   MockClient client;
   client.SetCanUsePartialLoading();
-  client.full_page_loader_data()->set_content_length(
-      DocumentLoader::kDefaultRequestSize * 20);
+  client.full_page_loader_data()->set_content_length(kDefaultRequestSize * 20);
   DocumentLoader loader(&client);
   loader.Init(client.CreateFullPageLoader(), "http://url.com");
 
   EXPECT_CALL(client, OnDocumentComplete()).Times(0);
-  for (int i = 0; i < 19; ++i) {
-    client.full_page_loader_data()->CallReadCallback(
-        DocumentLoader::kDefaultRequestSize);
-  }
+  for (int i = 0; i < 19; ++i)
+    client.full_page_loader_data()->CallReadCallback(kDefaultRequestSize);
   Mock::VerifyAndClear(&client);
 
   EXPECT_CALL(client, OnDocumentComplete()).Times(1);
-  client.full_page_loader_data()->CallReadCallback(
-      DocumentLoader::kDefaultRequestSize);
+  client.full_page_loader_data()->CallReadCallback(kDefaultRequestSize);
   Mock::VerifyAndClear(&client);
 }
 
@@ -1034,10 +968,8 @@
 
   EXPECT_CALL(client, OnDocumentCanceled()).Times(0);
   EXPECT_CALL(client, OnDocumentComplete()).Times(0);
-  for (int i = 0; i < 20; ++i) {
-    client.full_page_loader_data()->CallReadCallback(
-        DocumentLoader::kDefaultRequestSize);
-  }
+  for (int i = 0; i < 20; ++i)
+    client.full_page_loader_data()->CallReadCallback(kDefaultRequestSize);
   Mock::VerifyAndClear(&client);
 
   EXPECT_CALL(client, OnDocumentCanceled()).Times(0);
@@ -1049,17 +981,14 @@
 TEST_F(DocumentLoaderTest, ClientCancelCallback) {
   MockClient client;
   client.SetCanUsePartialLoading();
-  client.full_page_loader_data()->set_content_length(
-      DocumentLoader::kDefaultRequestSize * 20);
+  client.full_page_loader_data()->set_content_length(kDefaultRequestSize * 20);
   DocumentLoader loader(&client);
   loader.Init(client.CreateFullPageLoader(), "http://url.com");
 
   EXPECT_CALL(client, OnDocumentCanceled()).Times(0);
   EXPECT_CALL(client, OnDocumentComplete()).Times(0);
-  for (int i = 0; i < 10; ++i) {
-    client.full_page_loader_data()->CallReadCallback(
-        DocumentLoader::kDefaultRequestSize);
-  }
+  for (int i = 0; i < 10; ++i)
+    client.full_page_loader_data()->CallReadCallback(kDefaultRequestSize);
   Mock::VerifyAndClear(&client);
 
   EXPECT_CALL(client, OnDocumentComplete()).Times(0);
@@ -1071,19 +1000,16 @@
 TEST_F(DocumentLoaderTest, NewDataAvailable) {
   MockClient client;
   client.SetCanUsePartialLoading();
-  client.full_page_loader_data()->set_content_length(
-      DocumentLoader::kDefaultRequestSize * 20);
+  client.full_page_loader_data()->set_content_length(kDefaultRequestSize * 20);
   DocumentLoader loader(&client);
   loader.Init(client.CreateFullPageLoader(), "http://url.com");
 
   EXPECT_CALL(client, OnNewDataReceived()).Times(1);
-  client.full_page_loader_data()->CallReadCallback(
-      DocumentLoader::kDefaultRequestSize);
+  client.full_page_loader_data()->CallReadCallback(kDefaultRequestSize);
   Mock::VerifyAndClear(&client);
 
   EXPECT_CALL(client, OnNewDataReceived()).Times(1);
-  client.full_page_loader_data()->CallReadCallback(
-      DocumentLoader::kDefaultRequestSize - 100);
+  client.full_page_loader_data()->CallReadCallback(kDefaultRequestSize - 100);
   Mock::VerifyAndClear(&client);
 
   EXPECT_CALL(client, OnNewDataReceived()).Times(1);
@@ -1100,8 +1026,7 @@
   loader.RequestData(1000, 4000);
 
   EXPECT_CALL(client, OnPendingRequestComplete()).Times(1);
-  client.full_page_loader_data()->CallReadCallback(
-      DocumentLoader::kDefaultRequestSize);
+  client.full_page_loader_data()->CallReadCallback(kDefaultRequestSize);
   Mock::VerifyAndClear(&client);
 }
 
@@ -1112,11 +1037,10 @@
   loader.Init(client.CreateFullPageLoader(), "http://url.com");
 
   EXPECT_CALL(client, OnPendingRequestComplete()).Times(1);
-  loader.RequestData(15 * DocumentLoader::kDefaultRequestSize + 4000, 4000);
+  loader.RequestData(15 * kDefaultRequestSize + 4000, 4000);
 
   // Always send initial data from FullPageLoader.
-  client.full_page_loader_data()->CallReadCallback(
-      DocumentLoader::kDefaultRequestSize);
+  client.full_page_loader_data()->CallReadCallback(kDefaultRequestSize);
 
   client.SendAllPartialData();
   Mock::VerifyAndClear(&client);
@@ -1129,13 +1053,11 @@
   loader.Init(client.CreateFullPageLoader(), "http://url.com");
 
   EXPECT_CALL(client, OnPendingRequestComplete()).Times(1);
-  loader.RequestData(16 * DocumentLoader::kDefaultRequestSize + 4000, 4000);
-  loader.RequestData(4 * DocumentLoader::kDefaultRequestSize + 4000, 4000);
+  loader.RequestData(16 * kDefaultRequestSize + 4000, 4000);
+  loader.RequestData(4 * kDefaultRequestSize + 4000, 4000);
 
-  for (int i = 0; i < 5; ++i) {
-    client.full_page_loader_data()->CallReadCallback(
-        DocumentLoader::kDefaultRequestSize);
-  }
+  for (int i = 0; i < 5; ++i)
+    client.full_page_loader_data()->CallReadCallback(kDefaultRequestSize);
 
   Mock::VerifyAndClear(&client);
 
diff --git a/pdf/pdfium/pdfium_engine.h b/pdf/pdfium/pdfium_engine.h
index 299a080..fb6990d0 100644
--- a/pdf/pdfium/pdfium_engine.h
+++ b/pdf/pdfium/pdfium_engine.h
@@ -27,6 +27,7 @@
 #include "ppapi/cpp/input_event.h"
 #include "ppapi/cpp/point.h"
 #include "ppapi/cpp/var_array.h"
+#include "ppapi/utility/completion_callback_factory.h"
 #include "third_party/pdfium/public/fpdf_dataavail.h"
 #include "third_party/pdfium/public/fpdf_formfill.h"
 #include "third_party/pdfium/public/fpdf_progressive.h"
@@ -637,8 +638,8 @@
   std::string url_;
   std::string headers_;
   pp::CompletionCallbackFactory<PDFiumEngine> find_factory_;
-
   pp::CompletionCallbackFactory<PDFiumEngine> password_factory_;
+
   // Set to true if the user is being prompted for their password. Will be set
   // to false after the user finishes getting their password.
   bool getting_password_ = false;
diff --git a/remoting/base/chromoting_event.cc b/remoting/base/chromoting_event.cc
index d3ac9116..f309a283 100644
--- a/remoting/base/chromoting_event.cc
+++ b/remoting/base/chromoting_event.cc
@@ -13,6 +13,45 @@
 
 namespace {
 
+const NameMapElement<ChromotingEvent::ConnectionError> kConnectionErrorNames[]{
+    {ChromotingEvent::ConnectionError::NONE, "none"},
+    {ChromotingEvent::ConnectionError::HOST_OFFLINE, "host-offline"},
+    {ChromotingEvent::ConnectionError::SESSION_REJECTED, "session-rejected"},
+    {ChromotingEvent::ConnectionError::INCOMPATIBLE_PROTOCOL,
+     "incompatible-protocol"},
+    {ChromotingEvent::ConnectionError::NETWORK_FAILURE, "network-failure"},
+    {ChromotingEvent::ConnectionError::UNKNOWN_ERROR, "unknown-error"},
+    {ChromotingEvent::ConnectionError::INVALID_ACCESS_CODE,
+     "invalid-access-code"},
+    {ChromotingEvent::ConnectionError::MISSING_PLUGIN, "missing-plugin"},
+    {ChromotingEvent::ConnectionError::AUTHENTICATION_FAILED,
+     "authentication-failed"},
+    {ChromotingEvent::ConnectionError::BAD_VERSION, "bad-version"},
+    {ChromotingEvent::ConnectionError::HOST_OVERLOAD, "host-overload"},
+    {ChromotingEvent::ConnectionError::P2P_FAILURE, "p2p-failure"},
+    {ChromotingEvent::ConnectionError::UNEXPECTED, "unexpected"},
+    {ChromotingEvent::ConnectionError::CLIENT_SUSPENDED, "client-suspended"},
+    {ChromotingEvent::ConnectionError::NACL_DISABLED, "nacl-disabled"},
+    {ChromotingEvent::ConnectionError::MAX_SESSION_LENGTH,
+     "max-session-length"},
+    {ChromotingEvent::ConnectionError::HOST_CONFIGURATION_ERROR,
+     "host-configuration-error"},
+    {ChromotingEvent::ConnectionError::NACL_PLUGIN_CRASHED,
+     "nacl-plugin-crashed"},
+    {ChromotingEvent::ConnectionError::INVALID_ACCOUNT, "invalid-account"},
+};
+
+const NameMapElement<ChromotingEvent::ConnectionType> kConnectionTypeNames[]{
+    {ChromotingEvent::ConnectionType::DIRECT, "direct"},
+    {ChromotingEvent::ConnectionType::STUN, "stun"},
+    {ChromotingEvent::ConnectionType::RELAY, "relay"},
+};
+
+const NameMapElement<ChromotingEvent::Mode> kModeNames[]{
+    {ChromotingEvent::Mode::IT2ME, "it2me"},
+    {ChromotingEvent::Mode::ME2ME, "me2me"},
+};
+
 const NameMapElement<ChromotingEvent::Os> kOsNames[] = {
     {ChromotingEvent::Os::CHROMOTING_LINUX, "linux"},
     {ChromotingEvent::Os::CHROMOTING_CHROMEOS, "chromeos"},
@@ -22,10 +61,32 @@
     {ChromotingEvent::Os::CHROMOTING_IOS, "ios"},
 };
 
+const NameMapElement<ChromotingEvent::SessionState> kSessionStateNames[]{
+    {ChromotingEvent::SessionState::UNKNOWN, "unknown"},
+    {ChromotingEvent::SessionState::CREATED, "created"},
+    {ChromotingEvent::SessionState::BAD_PLUGIN_VERSION, "bad-plugin-version"},
+    {ChromotingEvent::SessionState::UNKNOWN_PLUGIN_ERROR,
+     "unknown-plugin-error"},
+    {ChromotingEvent::SessionState::CONNECTING, "connecting"},
+    {ChromotingEvent::SessionState::INITIALIZING, "initializing"},
+    {ChromotingEvent::SessionState::CONNECTED, "connected"},
+    {ChromotingEvent::SessionState::CLOSED, "closed"},
+    {ChromotingEvent::SessionState::CONNECTION_FAILED, "connection-failed"},
+    {ChromotingEvent::SessionState::UNDEFINED, "undefined"},
+    {ChromotingEvent::SessionState::PLUGIN_DISABLED, "plugin-disabled"},
+    {ChromotingEvent::SessionState::CONNECTION_DROPPED, "connection-dropped"},
+    {ChromotingEvent::SessionState::CONNECTION_CANCELED, "connection-canceled"},
+    {ChromotingEvent::SessionState::AUTHENTICATED, "authenticated"},
+    {ChromotingEvent::SessionState::STARTED, "started"},
+    {ChromotingEvent::SessionState::SIGNALING, "signaling"},
+    {ChromotingEvent::SessionState::CREATING_PLUGIN, "creating-plugin"},
+};
+
 }  // namespace
 
 const char ChromotingEvent::kCaptureLatencyKey[] = "capture_latency";
 const char ChromotingEvent::kConnectionErrorKey[] = "connection_error";
+const char ChromotingEvent::kConnectionTypeKey[] = "connection_type";
 const char ChromotingEvent::kCpuKey[] = "cpu";
 const char ChromotingEvent::kDecodeLatencyKey[] = "decode_latency";
 const char ChromotingEvent::kEncodeLatencyKey[] = "encode_latency";
@@ -40,6 +101,8 @@
 const char ChromotingEvent::kModeKey[] = "mode";
 const char ChromotingEvent::kOsKey[] = "os";
 const char ChromotingEvent::kOsVersionKey[] = "os_version";
+const char ChromotingEvent::kPreviousSessionStateKey[] =
+    "previous_session_state";
 const char ChromotingEvent::kRenderLatencyKey[] = "render_latency";
 const char ChromotingEvent::kRoleKey[] = "role";
 const char ChromotingEvent::kRoundtripLatencyKey[] = "roundtrip_latency";
@@ -127,6 +190,10 @@
   send_attempts_++;
 }
 
+const base::Value* ChromotingEvent::GetValue(const std::string& key) const {
+  return values_map_->FindKey(key);
+}
+
 std::unique_ptr<base::DictionaryValue> ChromotingEvent::CopyDictionaryValue()
     const {
   return values_map_->CreateDeepCopy();
@@ -150,4 +217,34 @@
   return result;
 }
 
+// static
+template <>
+const char* ChromotingEvent::EnumToString(ConnectionError value) {
+  return ValueToName(kConnectionErrorNames, value);
+}
+
+// static
+template <>
+const char* ChromotingEvent::EnumToString(ConnectionType value) {
+  return ValueToName(kConnectionTypeNames, value);
+}
+
+// static
+template <>
+const char* ChromotingEvent::EnumToString(Mode value) {
+  return ValueToName(kModeNames, value);
+}
+
+// static
+template <>
+const char* ChromotingEvent::EnumToString(Os value) {
+  return ValueToName(kOsNames, value);
+}
+
+// static
+template <>
+const char* ChromotingEvent::EnumToString(SessionState value) {
+  return ValueToName(kSessionStateNames, value);
+}
+
 }  // namespace remoting
diff --git a/remoting/base/chromoting_event.h b/remoting/base/chromoting_event.h
index e26fc47a..a6712b5 100644
--- a/remoting/base/chromoting_event.h
+++ b/remoting/base/chromoting_event.h
@@ -12,6 +12,7 @@
 
 namespace remoting {
 
+// TODO(yuweih): See if we can rewrite this in Protobuf.
 // This is the representation of the log entry being sent to the telemetry
 // server. The content should be synced with chromoting_event.js and
 // chromoting_extensions.proto.
@@ -39,6 +40,8 @@
     INVALID_ACCOUNT = 19
   };
 
+  enum class ConnectionType { DIRECT = 1, STUN = 2, RELAY = 3 };
+
   enum class Mode { IT2ME = 1, ME2ME = 2 };
 
   // macro defines from command line have polluted OS names like
@@ -89,6 +92,7 @@
 
   static const char kCaptureLatencyKey[];
   static const char kConnectionErrorKey[];
+  static const char kConnectionTypeKey[];
   static const char kCpuKey[];
   static const char kDecodeLatencyKey[];
   static const char kEncodeLatencyKey[];
@@ -103,6 +107,7 @@
   static const char kModeKey[];
   static const char kOsKey[];
   static const char kOsVersionKey[];
+  static const char kPreviousSessionStateKey[];
   static const char kRenderLatencyKey[];
   static const char kRoleKey[];
   static const char kRoundtripLatencyKey[];
@@ -139,6 +144,8 @@
   void IncrementSendAttempts();
   int send_attempts() const { return send_attempts_; }
 
+  const base::Value* GetValue(const std::string& key) const;
+
   // Returns a copy of the internal dictionary value.
   std::unique_ptr<base::DictionaryValue> CopyDictionaryValue() const;
 
@@ -148,6 +155,11 @@
   // Converts the OS type String into the enum value.
   static Os ParseOsFromString(const std::string& os);
 
+  // Converts an enum value of a enum class defined above to its name as a
+  // string, e.g. HOST_OFFLINE -> "host-offline".
+  template <typename EnumType>
+  static const char* EnumToString(EnumType value);
+
  private:
   std::unique_ptr<base::DictionaryValue> values_map_;
 
diff --git a/remoting/client/BUILD.gn b/remoting/client/BUILD.gn
index e930edb..b7708f6 100644
--- a/remoting/client/BUILD.gn
+++ b/remoting/client/BUILD.gn
@@ -19,6 +19,8 @@
     "cursor_shape_stub_proxy.h",
     "empty_cursor_filter.cc",
     "empty_cursor_filter.h",
+    "feedback_data.cc",
+    "feedback_data.h",
     "host_experiment_sender.cc",
     "host_experiment_sender.h",
     "in_memory_log_handler.cc",
diff --git a/remoting/client/chromoting_session.cc b/remoting/client/chromoting_session.cc
index 81942384..3c35b41 100644
--- a/remoting/client/chromoting_session.cc
+++ b/remoting/client/chromoting_session.cc
@@ -163,6 +163,15 @@
                             delegate_, token_url, host_public_key, scope));
 }
 
+std::unique_ptr<FeedbackData> ChromotingSession::CreateFeedbackData() const {
+  DCHECK(runtime_->network_task_runner()->BelongsToCurrentThread());
+  auto data = std::make_unique<FeedbackData>();
+  if (logger_) {
+    data->FillWithChromotingEvent(logger_->current_session_state_event());
+  }
+  return data;
+}
+
 void ChromotingSession::HandleOnThirdPartyTokenFetched(
     const std::string& token,
     const std::string& shared_secret) {
@@ -365,6 +374,7 @@
                         protocol::TransportRoute::GetTypeString(route.type) +
                         " connection.";
   VLOG(1) << "Route: " << message;
+  logger_->SetTransportRoute(route);
 }
 
 void ChromotingSession::SetCapabilities(const std::string& capabilities) {
diff --git a/remoting/client/chromoting_session.h b/remoting/client/chromoting_session.h
index 2fab111..0e469f1 100644
--- a/remoting/client/chromoting_session.h
+++ b/remoting/client/chromoting_session.h
@@ -17,6 +17,7 @@
 #include "remoting/client/client_telemetry_logger.h"
 #include "remoting/client/client_user_interface.h"
 #include "remoting/client/connect_to_host_info.h"
+#include "remoting/client/feedback_data.h"
 #include "remoting/client/input/client_input_injector.h"
 #include "remoting/proto/control.pb.h"
 #include "remoting/proto/event.pb.h"
@@ -101,6 +102,9 @@
       const std::string& scope,
       const protocol::ThirdPartyTokenFetchedCallback& token_fetched_callback);
 
+  // Creates feedback data to be included in the feedback report.
+  std::unique_ptr<FeedbackData> CreateFeedbackData() const;
+
   // Called by the client when the token is fetched.
   void HandleOnThirdPartyTokenFetched(const std::string& token,
                                       const std::string& shared_secret);
diff --git a/remoting/client/client_telemetry_logger.cc b/remoting/client/client_telemetry_logger.cc
index 3240c69..8adfae9 100644
--- a/remoting/client/client_telemetry_logger.cc
+++ b/remoting/client/client_telemetry_logger.cc
@@ -46,6 +46,11 @@
   host_info_.reset(new HostInfo{host_version, host_os, host_os_version});
 }
 
+void ClientTelemetryLogger::SetTransportRoute(
+    const protocol::TransportRoute& route) {
+  transport_route_ = std::make_unique<protocol::TransportRoute>(route);
+}
+
 void ClientTelemetryLogger::LogSessionStateChange(
     ChromotingEvent::SessionState state,
     ChromotingEvent::ConnectionError error) {
@@ -57,7 +62,16 @@
 
   ChromotingEvent event =
       ClientTelemetryLogger::MakeSessionStateChangeEvent(state, error);
+
+  const base::Value* previous_state =
+      current_session_state_event_.GetValue(ChromotingEvent::kSessionStateKey);
+  if (previous_state) {
+    event.SetInteger(ChromotingEvent::kPreviousSessionStateKey,
+                     previous_state->GetInt());
+  }
+
   log_writer_->Log(event);
+  current_session_state_event_ = std::move(event);
 
   if (ChromotingEvent::IsEndOfSession(state)) {
     session_id_.clear();
@@ -163,6 +177,22 @@
   }
 }
 
+// static
+ChromotingEvent::ConnectionType ClientTelemetryLogger::TranslateConnectionType(
+    protocol::TransportRoute::RouteType type) {
+  switch (type) {
+    case protocol::TransportRoute::DIRECT:
+      return ChromotingEvent::ConnectionType::DIRECT;
+    case protocol::TransportRoute::STUN:
+      return ChromotingEvent::ConnectionType::STUN;
+    case protocol::TransportRoute::RELAY:
+      return ChromotingEvent::ConnectionType::RELAY;
+    default:
+      NOTREACHED();
+      return ChromotingEvent::ConnectionType::DIRECT;
+  }
+}
+
 void ClientTelemetryLogger::FillEventContext(ChromotingEvent* event) const {
   event->SetEnum(ChromotingEvent::kModeKey, mode_);
   event->SetEnum(ChromotingEvent::kRoleKey, ChromotingEvent::Role::CLIENT);
@@ -173,6 +203,11 @@
     event->SetString(ChromotingEvent::kHostOsVersionKey,
                      host_info_->host_os_version);
   }
+  if (transport_route_) {
+    ChromotingEvent::ConnectionType connection_type =
+        TranslateConnectionType(transport_route_->type);
+    event->SetEnum(ChromotingEvent::kConnectionTypeKey, connection_type);
+  }
   event->AddSystemInfo();
   if (!session_id_.empty()) {
     event->SetString(ChromotingEvent::kSessionIdKey, session_id_);
diff --git a/remoting/client/client_telemetry_logger.h b/remoting/client/client_telemetry_logger.h
index e38bc8e2..474de92 100644
--- a/remoting/client/client_telemetry_logger.h
+++ b/remoting/client/client_telemetry_logger.h
@@ -16,6 +16,7 @@
 #include "remoting/base/url_request.h"
 #include "remoting/protocol/connection_to_host.h"
 #include "remoting/protocol/performance_tracker.h"
+#include "remoting/protocol/transport.h"
 
 namespace remoting {
 
@@ -35,6 +36,8 @@
                    ChromotingEvent::Os host_os,
                    const std::string& host_os_version);
 
+  void SetTransportRoute(const protocol::TransportRoute& route);
+
   void LogSessionStateChange(ChromotingEvent::SessionState state,
                              ChromotingEvent::ConnectionError error);
 
@@ -45,12 +48,19 @@
 
   void SetSessionIdGenerationTimeForTest(base::TimeTicks gen_time);
 
+  const ChromotingEvent& current_session_state_event() const {
+    return current_session_state_event_;
+  }
+
   static ChromotingEvent::SessionState TranslateState(
       protocol::ConnectionToHost::State state);
 
   static ChromotingEvent::ConnectionError TranslateError(
       protocol::ErrorCode state);
 
+  static ChromotingEvent::ConnectionType TranslateConnectionType(
+      protocol::TransportRoute::RouteType type);
+
  private:
   struct HostInfo;
 
@@ -82,9 +92,12 @@
 
   base::TimeTicks session_id_generation_time_;
 
+  ChromotingEvent current_session_state_event_;
+
   ChromotingEvent::Mode mode_;
 
   std::unique_ptr<HostInfo> host_info_;
+  std::unique_ptr<protocol::TransportRoute> transport_route_;
 
   // The log writer that actually sends log to the server.
   ChromotingEventLogWriter* log_writer_;
diff --git a/remoting/client/feedback_data.cc b/remoting/client/feedback_data.cc
new file mode 100644
index 0000000..56cfcb2
--- /dev/null
+++ b/remoting/client/feedback_data.cc
@@ -0,0 +1,89 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "remoting/client/feedback_data.h"
+
+#include "base/values.h"
+#include "remoting/base/name_value_map.h"
+
+namespace remoting {
+
+namespace {
+
+const NameMapElement<FeedbackData::Key> kFeedbackDataKeyNames[]{
+    {FeedbackData::Key::SESSION_PREVIOUS_STATE, "session-previous-state"},
+    {FeedbackData::Key::SESSION_STATE, "session-state"},
+    {FeedbackData::Key::SESSION_ERROR, "session-error"},
+    {FeedbackData::Key::SESSION_MODE, "session-mode"},
+    {FeedbackData::Key::SESSION_HOST_OS, "session-host-os"},
+    {FeedbackData::Key::SESSION_HOST_OS_VERSION, "session-host-os-version"},
+    {FeedbackData::Key::SESSION_HOST_VERSION, "session-host-version"},
+
+    // TODO(yuweih): Collect session info for these fields.
+    {FeedbackData::Key::SESSION_CREDENTIALS_TYPE, "session-credentials-type"},
+    {FeedbackData::Key::SESSION_PERFORMANCE_STATS, "session-performance-stats"},
+    {FeedbackData::Key::SESSION_PEER_CONNECTION_STATS,
+     "session-peer-connection-stats"},
+};
+
+template <typename EnumType>
+void SetEnumIfNotEmpty(std::map<FeedbackData::Key, std::string>* data,
+                       FeedbackData::Key key,
+                       const ChromotingEvent& event,
+                       const std::string& event_key) {
+  const base::Value* value = event.GetValue(event_key);
+  if (!value) {
+    return;
+  }
+  auto enum_value = static_cast<EnumType>(value->GetInt());
+  const char* string_value = ChromotingEvent::EnumToString(enum_value);
+  DCHECK(string_value);
+  (*data)[key] = string_value;
+}
+
+void SetStringIfNotEmpty(std::map<FeedbackData::Key, std::string>* data,
+                         FeedbackData::Key key,
+                         const ChromotingEvent& event,
+                         const std::string& event_key) {
+  const base::Value* value = event.GetValue(event_key);
+  if (!value) {
+    return;
+  }
+  (*data)[key] = value->GetString();
+}
+
+}  // namespace
+
+FeedbackData::FeedbackData() {}
+
+FeedbackData::~FeedbackData() {}
+
+void FeedbackData::SetData(Key key, const std::string& data) {
+  data_[key] = data;
+}
+
+void FeedbackData::FillWithChromotingEvent(const ChromotingEvent& event) {
+  SetEnumIfNotEmpty<ChromotingEvent::SessionState>(
+      &data_, Key::SESSION_PREVIOUS_STATE, event,
+      ChromotingEvent::kPreviousSessionStateKey);
+  SetEnumIfNotEmpty<ChromotingEvent::SessionState>(
+      &data_, Key::SESSION_STATE, event, ChromotingEvent::kSessionStateKey);
+  SetEnumIfNotEmpty<ChromotingEvent::ConnectionError>(
+      &data_, Key::SESSION_ERROR, event, ChromotingEvent::kConnectionErrorKey);
+  SetEnumIfNotEmpty<ChromotingEvent::Mode>(&data_, Key::SESSION_MODE, event,
+                                           ChromotingEvent::kModeKey);
+  SetEnumIfNotEmpty<ChromotingEvent::Os>(&data_, Key::SESSION_HOST_OS, event,
+                                         ChromotingEvent::kHostOsKey);
+  SetStringIfNotEmpty(&data_, Key::SESSION_HOST_OS_VERSION, event,
+                      ChromotingEvent::kHostOsVersionKey);
+  SetStringIfNotEmpty(&data_, Key::SESSION_HOST_VERSION, event,
+                      ChromotingEvent::kHostVersionKey);
+}
+
+// static
+std::string FeedbackData::KeyToString(Key key) {
+  return ValueToName(kFeedbackDataKeyNames, key);
+}
+
+}  // namespace remoting
diff --git a/remoting/client/feedback_data.h b/remoting/client/feedback_data.h
new file mode 100644
index 0000000..7eb332be
--- /dev/null
+++ b/remoting/client/feedback_data.h
@@ -0,0 +1,51 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef REMOTING_CLIENT_FEEDBACK_DATA_H_
+#define REMOTING_CLIENT_FEEDBACK_DATA_H_
+
+#include <map>
+#include <string>
+
+#include "base/macros.h"
+#include "remoting/base/chromoting_event.h"
+
+namespace remoting {
+
+// Class that stores additional data to be sent with the user feedback.
+class FeedbackData {
+ public:
+  enum class Key {
+    SESSION_PREVIOUS_STATE,
+    SESSION_STATE,
+    SESSION_ERROR,
+    SESSION_MODE,
+    SESSION_CREDENTIALS_TYPE,
+    SESSION_HOST_OS,
+    SESSION_HOST_OS_VERSION,
+    SESSION_HOST_VERSION,
+    SESSION_PERFORMANCE_STATS,
+    SESSION_PEER_CONNECTION_STATS,
+  };
+
+  FeedbackData();
+  ~FeedbackData();
+
+  void SetData(Key key, const std::string& data);
+
+  void FillWithChromotingEvent(const ChromotingEvent& event);
+
+  const std::map<Key, std::string>& data() const { return data_; }
+
+  static std::string KeyToString(Key key);
+
+ private:
+  std::map<Key, std::string> data_;
+
+  DISALLOW_COPY_AND_ASSIGN(FeedbackData);
+};
+
+}  // namespace remoting
+
+#endif  // REMOTING_CLIENT_FEEDBACK_DATA_H_
diff --git a/remoting/host/input_injector_win.cc b/remoting/host/input_injector_win.cc
index 38664ba..2e1b02b6 100644
--- a/remoting/host/input_injector_win.cc
+++ b/remoting/host/input_injector_win.cc
@@ -114,6 +114,12 @@
       input.mi.dwFlags = down ? MOUSEEVENTF_MIDDLEDOWN : MOUSEEVENTF_MIDDLEUP;
     } else if (button == MouseEvent::BUTTON_RIGHT) {
       input.mi.dwFlags = down ? MOUSEEVENTF_RIGHTDOWN : MOUSEEVENTF_RIGHTUP;
+    } else if (button == MouseEvent::BUTTON_BACK) {
+      input.mi.dwFlags = down ? MOUSEEVENTF_XDOWN : MOUSEEVENTF_XUP;
+      input.mi.mouseData = XBUTTON1;
+    } else if (button == MouseEvent::BUTTON_FORWARD) {
+      input.mi.dwFlags = down ? MOUSEEVENTF_XDOWN : MOUSEEVENTF_XUP;
+      input.mi.mouseData = XBUTTON2;
     } else {
       input.mi.dwFlags = down ? MOUSEEVENTF_LEFTDOWN : MOUSEEVENTF_LEFTUP;
     }
diff --git a/remoting/host/input_injector_x11.cc b/remoting/host/input_injector_x11.cc
index 25d30bb6..99c6528 100644
--- a/remoting/host/input_injector_x11.cc
+++ b/remoting/host/input_injector_x11.cc
@@ -144,8 +144,8 @@
     Window root_window_;
 
     // Number of buttons we support.
-    // Left, Right, Middle, VScroll Up/Down, HScroll Left/Right.
-    static const int kNumPointerButtons = 7;
+    // Left, Right, Middle, VScroll Up/Down, HScroll Left/Right, back, forward.
+    static const int kNumPointerButtons = 9;
 
     int pointer_button_map_[kNumPointerButtons];
 
@@ -605,13 +605,14 @@
   switch (button) {
     case MouseEvent::BUTTON_LEFT:
       return pointer_button_map_[0];
-
     case MouseEvent::BUTTON_RIGHT:
       return pointer_button_map_[2];
-
     case MouseEvent::BUTTON_MIDDLE:
       return pointer_button_map_[1];
-
+    case MouseEvent::BUTTON_BACK:
+      return pointer_button_map_[7];
+    case MouseEvent::BUTTON_FORWARD:
+      return pointer_button_map_[8];
     case MouseEvent::BUTTON_UNDEFINED:
     default:
       return -1;
diff --git a/remoting/proto/event.proto b/remoting/proto/event.proto
index 4367c41..fd0bc74 100644
--- a/remoting/proto/event.proto
+++ b/remoting/proto/event.proto
@@ -52,7 +52,9 @@
     BUTTON_LEFT = 1;
     BUTTON_MIDDLE = 2;
     BUTTON_RIGHT = 3;
-    BUTTON_MAX = 4;
+    BUTTON_BACK = 4;
+    BUTTON_FORWARD = 5;
+    BUTTON_MAX = 6;
   }
 
   // Mouse absolute position information. When using WebRTC-based protocol the
diff --git a/remoting/protocol/webrtc_transport.cc b/remoting/protocol/webrtc_transport.cc
index 31b781c..0f2eb2b6 100644
--- a/remoting/protocol/webrtc_transport.cc
+++ b/remoting/protocol/webrtc_transport.cc
@@ -635,6 +635,13 @@
       new_state == webrtc::PeerConnectionInterface::kIceConnectionConnected) {
     connected_ = true;
     event_handler_->OnWebrtcTransportConnected();
+  } else if (connected_ &&
+             new_state ==
+                 webrtc::PeerConnectionInterface::kIceConnectionDisconnected &&
+             transport_context_->role() == TransportRole::SERVER) {
+    connected_ = false;
+    want_ice_restart_ = true;
+    RequestNegotiation();
   }
 }
 
@@ -699,6 +706,11 @@
       webrtc::MediaConstraintsInterface::kValueFalse);
   offer_config.AddMandatory(webrtc::MediaConstraintsInterface::kEnableDtlsSrtp,
                             webrtc::MediaConstraintsInterface::kValueTrue);
+  if (want_ice_restart_) {
+    offer_config.AddMandatory(webrtc::MediaConstraintsInterface::kIceRestart,
+                              webrtc::MediaConstraintsInterface::kValueTrue);
+    want_ice_restart_ = false;
+  }
   peer_connection()->CreateOffer(
       CreateSessionDescriptionObserver::Create(
           base::Bind(&WebrtcTransport::OnLocalSessionDescriptionCreated,
diff --git a/remoting/protocol/webrtc_transport.h b/remoting/protocol/webrtc_transport.h
index 21e56ceb6..b065352 100644
--- a/remoting/protocol/webrtc_transport.h
+++ b/remoting/protocol/webrtc_transport.h
@@ -141,6 +141,8 @@
 
   bool connected_ = false;
 
+  bool want_ice_restart_ = false;
+
   std::unique_ptr<buzz::XmlElement> pending_transport_info_message_;
   base::OneShotTimer transport_info_timer_;
 
diff --git a/services/BUILD.gn b/services/BUILD.gn
index 69475e1..90e7b0d 100644
--- a/services/BUILD.gn
+++ b/services/BUILD.gn
@@ -6,6 +6,7 @@
 import("//services/catalog/public/tools/catalog.gni")
 import("//services/service_manager/public/tools/test/service_test.gni")
 import("//testing/test.gni")
+import("//tools/v8_context_snapshot/v8_context_snapshot.gni")
 
 # One Big Target for services to register their unit test sources. This exists
 # to avoid having to maintain a separate test binary for every service.
@@ -67,10 +68,14 @@
 
       # Some tests make network requests.
       "//net/android:net_java",
-
-      # Some tests need to initialize V8.
-      "//v8:v8_external_startup_data_assets",
     ]
+
+    # Some tests need to initialize V8.
+    if (use_v8_context_snapshot) {
+      deps += [ "//tools/v8_context_snapshot:v8_context_snapshot_assets" ]
+    } else {
+      deps += [ "//v8:v8_external_startup_data_assets" ]
+    }
   }
 
   if (!is_android && !is_ios) {
diff --git a/services/audio/BUILD.gn b/services/audio/BUILD.gn
index f29ae802..b5a0b53 100644
--- a/services/audio/BUILD.gn
+++ b/services/audio/BUILD.gn
@@ -19,6 +19,8 @@
     "debug_recording.h",
     "in_process_audio_manager_accessor.cc",
     "in_process_audio_manager_accessor.h",
+    "output_stream.cc",
+    "output_stream.h",
     "service.cc",
     "service.h",
     "service_factory.cc",
@@ -40,15 +42,19 @@
 
   sources = [
     "debug_recording_unittest.cc",
+    "output_stream_unittest.cc",
     "test/audio_system_to_service_adapter_test.cc",
     "test/debug_recording_session_unittest.cc",
     "test/in_process_service_test.cc",
+    "test/mock_log.cc",
+    "test/mock_log.h",
   ]
 
   deps = [
     ":lib",
     "//base/test:test_support",
     "//media:test_support",
+    "//mojo/edk/system:system",
     "//services/audio/public/cpp",
     "//services/audio/public/cpp:test_support",
     "//services/audio/public/mojom",
diff --git a/services/audio/output_stream.cc b/services/audio/output_stream.cc
new file mode 100644
index 0000000..e4b2477
--- /dev/null
+++ b/services/audio/output_stream.cc
@@ -0,0 +1,238 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "services/audio/output_stream.h"
+
+#include <utility>
+
+#include "base/bind.h"
+#include "base/threading/sequenced_task_runner_handle.h"
+#include "media/audio/audio_sync_reader.h"
+
+namespace audio {
+
+const float kSilenceThresholdDBFS = -72.24719896f;
+
+// Desired polling frequency.  Note: If this is set too low, short-duration
+// "blip" sounds won't be detected.  http://crbug.com/339133#c4
+const int kPowerMeasurementsPerSecond = 15;
+
+OutputStream::OutputStream(
+    CreatedCallback created_callback,
+    DeleteCallback delete_callback,
+    media::mojom::AudioOutputStreamRequest stream_request,
+    media::mojom::AudioOutputStreamClientPtr client,
+    media::mojom::AudioOutputStreamObserverAssociatedPtr observer,
+    media::mojom::AudioLogPtr log,
+    media::AudioManager* audio_manager,
+    const std::string& output_device_id,
+    const media::AudioParameters& params)
+    : foreign_socket_(),
+      created_callback_(std::move(created_callback)),
+      delete_callback_(std::move(delete_callback)),
+      binding_(this, std::move(stream_request)),
+      client_(std::move(client)),
+      observer_(std::move(observer)),
+      log_(media::mojom::ThreadSafeAudioLogPtr::Create(std::move(log))),
+      // Unretained is safe since we own |reader_|
+      reader_(media::AudioSyncReader::Create(
+          base::BindRepeating(&media::mojom::AudioLog::OnLogMessage,
+                              base::Unretained(log_->get())),
+          params,
+          &foreign_socket_)),
+      weak_factory_(this) {
+  DCHECK(audio_manager);
+  DCHECK(binding_.is_bound());
+  DCHECK(client_.is_bound());
+  DCHECK(observer_.is_bound());
+  DCHECK(created_callback_);
+  DCHECK(delete_callback_);
+
+  // |this| owns these objects, so unretained is safe.
+  base::RepeatingClosure error_handler =
+      base::BindRepeating(&OutputStream::OnError, base::Unretained(this));
+  binding_.set_connection_error_handler(error_handler);
+  client_.set_connection_error_handler(error_handler);
+
+  // We allow the observer to terminate the stream by closing the message pipe.
+  observer_.set_connection_error_handler(std::move(error_handler));
+
+  log_->get()->OnCreated(params, output_device_id);
+
+  if (!reader_) {
+    // Failed to create reader. Since we failed to initialize, don't bind the
+    // request.
+    OnError();
+    return;
+  }
+
+  controller_ = media::AudioOutputController::Create(
+      audio_manager, this, params, output_device_id, reader_.get());
+}
+
+OutputStream::~OutputStream() {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(owning_sequence_);
+
+  log_->get()->OnClosed();
+
+  if (created_callback_) {
+    // Didn't manage to create the stream. Call the callback anyways as mandated
+    // by mojo.
+    std::move(created_callback_).Run(nullptr);
+  }
+
+  if (!controller_) {
+    // Didn't initialize properly, nothing to clean up.
+    return;
+  }
+
+  // TODO(803102): remove AudioOutputController::Close() after content/ streams
+  // are removed, destructor should suffice.
+  controller_->Close(base::OnceClosure());
+}
+
+void OutputStream::Play() {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(owning_sequence_);
+
+  controller_->Play();
+  log_->get()->OnStarted();
+}
+
+void OutputStream::Pause() {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(owning_sequence_);
+
+  controller_->Pause();
+  log_->get()->OnStopped();
+}
+
+void OutputStream::SetVolume(double volume) {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(owning_sequence_);
+
+  if (volume < 0 || volume > 1) {
+    mojo::ReportBadMessage("Invalid volume");
+    OnError();
+    return;
+  }
+
+  controller_->SetVolume(volume);
+  log_->get()->OnSetVolume(volume);
+}
+
+void OutputStream::OnControllerCreated() {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(owning_sequence_);
+
+  // TODO(803102): Get rid of the OnControllerCreated event after removing
+  // content/ streams.
+  const base::SharedMemory* memory = reader_->shared_memory();
+
+  base::SharedMemoryHandle foreign_memory_handle =
+      base::SharedMemory::DuplicateHandle(memory->handle());
+  if (!base::SharedMemory::IsHandleValid(foreign_memory_handle)) {
+    OnError();
+    return;
+  }
+
+  mojo::ScopedSharedBufferHandle buffer_handle = mojo::WrapSharedMemoryHandle(
+      foreign_memory_handle, memory->requested_size(),
+      mojo::UnwrappedSharedMemoryHandleProtection::kReadWrite);
+
+  mojo::ScopedHandle socket_handle =
+      mojo::WrapPlatformFile(foreign_socket_.Release());
+
+  DCHECK(buffer_handle.is_valid());
+  DCHECK(socket_handle.is_valid());
+
+  std::move(created_callback_)
+      .Run(
+          {base::in_place, std::move(buffer_handle), std::move(socket_handle)});
+}
+
+void OutputStream::OnControllerPlaying() {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(owning_sequence_);
+
+  if (playing_)
+    return;
+
+  playing_ = true;
+  observer_->DidStartPlaying();
+  if (media::AudioOutputController::will_monitor_audio_levels()) {
+    DCHECK(!poll_timer_.IsRunning());
+    // base::Unretained is safe because |this| owns |poll_timer_|.
+    poll_timer_.Start(
+        FROM_HERE,
+        base::TimeDelta::FromSeconds(1) / kPowerMeasurementsPerSecond,
+        base::BindRepeating(&OutputStream::PollAudioLevel,
+                            base::Unretained(this)));
+    return;
+  }
+
+  // In case we don't monitor audio levels, we assume a stream is audible when
+  // it's playing.
+  observer_->DidChangeAudibleState(true);
+}
+
+void OutputStream::OnControllerPaused() {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(owning_sequence_);
+
+  if (!playing_)
+    return;
+
+  playing_ = false;
+  if (media::AudioOutputController::will_monitor_audio_levels()) {
+    DCHECK(poll_timer_.IsRunning());
+    poll_timer_.Stop();
+  }
+  observer_->DidStopPlaying();
+}
+
+void OutputStream::OnControllerError() {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(owning_sequence_);
+
+  // Only propagate platform errors to the renderer.
+  client_->OnError();
+  log_->get()->OnError();
+  OnError();
+}
+
+void OutputStream::OnLog(base::StringPiece message) {
+  // No sequence check: |log_| is thread-safe.
+  log_->get()->OnLogMessage(message.as_string());
+}
+
+void OutputStream::OnError() {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(owning_sequence_);
+
+  // Defer callback so we're not destructed while in the constructor.
+  base::SequencedTaskRunnerHandle::Get()->PostTask(
+      FROM_HERE,
+      base::BindOnce(&OutputStream::CallDeleter, weak_factory_.GetWeakPtr()));
+
+  // Ignore any incoming calls.
+  binding_.Close();
+}
+
+void OutputStream::CallDeleter() {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(owning_sequence_);
+
+  std::move(delete_callback_).Run(this);
+}
+
+void OutputStream::PollAudioLevel() {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(owning_sequence_);
+
+  bool was_audible = is_audible_;
+  is_audible_ = IsAudible();
+
+  if (is_audible_ != was_audible)
+    observer_->DidChangeAudibleState(is_audible_);
+}
+
+bool OutputStream::IsAudible() const {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(owning_sequence_);
+
+  float power_dbfs = controller_->ReadCurrentPowerAndClip().first;
+  return power_dbfs >= kSilenceThresholdDBFS;
+}
+
+}  // namespace audio
diff --git a/services/audio/output_stream.h b/services/audio/output_stream.h
new file mode 100644
index 0000000..a1416a3
--- /dev/null
+++ b/services/audio/output_stream.h
@@ -0,0 +1,100 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef SERVICES_AUDIO_OUTPUT_STREAM_H_
+#define SERVICES_AUDIO_OUTPUT_STREAM_H_
+
+#include <memory>
+#include <string>
+
+#include "base/callback.h"
+#include "base/macros.h"
+#include "base/memory/weak_ptr.h"
+#include "base/sequence_checker.h"
+#include "base/strings/string_piece.h"
+#include "base/sync_socket.h"
+#include "base/timer/timer.h"
+#include "media/audio/audio_output_controller.h"
+#include "media/mojo/interfaces/audio_data_pipe.mojom.h"
+#include "media/mojo/interfaces/audio_logging.mojom.h"
+#include "media/mojo/interfaces/audio_output_stream.mojom.h"
+#include "mojo/public/cpp/bindings/binding.h"
+#include "mojo/public/cpp/system/buffer.h"
+#include "mojo/public/cpp/system/handle.h"
+#include "mojo/public/cpp/system/platform_handle.h"
+
+namespace media {
+class AudioManager;
+class AudioParameters;
+class AudioSyncReader;
+}  // namespace media
+
+namespace audio {
+
+class OutputStream final : public media::mojom::AudioOutputStream,
+                           public media::AudioOutputController::EventHandler {
+ public:
+  using DeleteCallback = base::OnceCallback<void(OutputStream*)>;
+  using CreatedCallback =
+      base::OnceCallback<void(media::mojom::AudioDataPipePtr)>;
+
+  OutputStream(CreatedCallback created_callback,
+               DeleteCallback delete_callback,
+               media::mojom::AudioOutputStreamRequest stream_request,
+               media::mojom::AudioOutputStreamClientPtr client,
+               media::mojom::AudioOutputStreamObserverAssociatedPtr observer,
+               media::mojom::AudioLogPtr log,
+               media::AudioManager* audio_manager,
+               const std::string& output_device_id,
+               const media::AudioParameters& params);
+
+  ~OutputStream() final;
+
+  // media::mojom::AudioOutputStream implementation.
+  void Play() final;
+  void Pause() final;
+  void SetVolume(double volume) final;
+
+  // AudioOutputController::EventHandler implementation.
+  void OnControllerCreated() final;
+  void OnControllerPlaying() final;
+  void OnControllerPaused() final;
+  void OnControllerError() final;
+  void OnLog(base::StringPiece message) final;
+
+ private:
+  void OnError();
+  void CallDeleter();
+  void PollAudioLevel();
+  bool IsAudible() const;
+
+  SEQUENCE_CHECKER(owning_sequence_);
+
+  base::CancelableSyncSocket foreign_socket_;
+  CreatedCallback created_callback_;
+  DeleteCallback delete_callback_;
+  mojo::Binding<AudioOutputStream> binding_;
+  media::mojom::AudioOutputStreamClientPtr client_;
+  media::mojom::AudioOutputStreamObserverAssociatedPtr observer_;
+  scoped_refptr<media::mojom::ThreadSafeAudioLogPtr> log_;
+
+  const std::unique_ptr<media::AudioSyncReader> reader_;
+  scoped_refptr<media::AudioOutputController> controller_;
+
+  // This flag ensures that we only send OnStreamStateChanged notifications
+  // and (de)register with the stream monitor when the state actually changes.
+  bool playing_ = false;
+
+  // Calls PollAudioLevel() at regular intervals while |playing_| is true.
+  base::RepeatingTimer poll_timer_;
+  bool is_audible_ = false;
+
+  base::WeakPtrFactory<OutputStream> weak_factory_;
+
+  DISALLOW_COPY_AND_ASSIGN(OutputStream);
+};
+
+}  // namespace audio
+
+#endif  // SERVICES_AUDIO_OUTPUT_STREAM_H_
diff --git a/services/audio/output_stream_unittest.cc b/services/audio/output_stream_unittest.cc
new file mode 100644
index 0000000..650b0fc3
--- /dev/null
+++ b/services/audio/output_stream_unittest.cc
@@ -0,0 +1,514 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "services/audio/output_stream.h"
+
+#include <utility>
+
+#include "base/test/mock_callback.h"
+#include "base/test/scoped_task_environment.h"
+#include "media/audio/audio_io.h"
+#include "media/audio/mock_audio_manager.h"
+#include "media/audio/test_audio_thread.h"
+#include "mojo/edk/system/core.h"
+#include "mojo/public/cpp/bindings/associated_binding.h"
+#include "services/audio/test/mock_log.h"
+#include "testing/gmock/include/gmock/gmock.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+using testing::AtMost;
+using testing::DeleteArg;
+using testing::Mock;
+using testing::NiceMock;
+using testing::NotNull;
+using testing::Return;
+using testing::SaveArg;
+using testing::StrictMock;
+using testing::_;
+
+namespace audio {
+
+class MockStream : public media::AudioOutputStream {
+ public:
+  MockStream() {}
+
+  MOCK_METHOD0(Open, bool());
+  MOCK_METHOD1(Start, void(AudioSourceCallback* callback));
+  MOCK_METHOD0(Stop, void());
+  MOCK_METHOD1(SetVolume, void(double volume));
+  MOCK_METHOD1(GetVolume, void(double* volume));
+  MOCK_METHOD0(Close, void());
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(MockStream);
+};
+
+class MockClient : public media::mojom::AudioOutputStreamClient {
+ public:
+  MockClient() : binding_(this) {}
+
+  // Should only be called once.
+  media::mojom::AudioOutputStreamClientPtr MakePtr() {
+    media::mojom::AudioOutputStreamClientPtr ptr;
+    binding_.Bind(mojo::MakeRequest(&ptr));
+    binding_.set_connection_error_handler(base::BindOnce(
+        &MockClient::BindingConnectionError, base::Unretained(this)));
+    return ptr;
+  }
+
+  void CloseBinding() { binding_.Close(); }
+
+  MOCK_METHOD0(OnError, void());
+
+  MOCK_METHOD0(BindingConnectionError, void());
+
+ private:
+  mojo::Binding<media::mojom::AudioOutputStreamClient> binding_;
+
+  DISALLOW_COPY_AND_ASSIGN(MockClient);
+};
+
+class MockObserver : public media::mojom::AudioOutputStreamObserver {
+ public:
+  MockObserver() : binding_(this) {}
+
+  // Should only be called once.
+  media::mojom::AudioOutputStreamObserverAssociatedPtr MakePtr() {
+    media::mojom::AudioOutputStreamObserverAssociatedPtr ptr;
+    binding_.Bind(mojo::MakeRequestAssociatedWithDedicatedPipe(&ptr));
+    binding_.set_connection_error_handler(base::BindOnce(
+        &MockObserver::BindingConnectionError, base::Unretained(this)));
+    return ptr;
+  }
+
+  void CloseBinding() { binding_.Close(); }
+
+  MOCK_METHOD0(DidStartPlaying, void());
+  MOCK_METHOD0(DidStopPlaying, void());
+  MOCK_METHOD1(DidChangeAudibleState, void(bool));
+
+  MOCK_METHOD0(BindingConnectionError, void());
+
+ private:
+  mojo::AssociatedBinding<media::mojom::AudioOutputStreamObserver> binding_;
+
+  DISALLOW_COPY_AND_ASSIGN(MockObserver);
+};
+
+// Aliases for use with MockCreatedCallback::Created().
+
+namespace {
+const bool successfully_ = true;
+const bool unsuccessfully_ = false;
+}  // namespace
+
+class MockCreatedCallback {
+ public:
+  MockCreatedCallback() {}
+
+  MOCK_METHOD1(Created, void(bool /*valid*/));
+
+  void OnCreated(media::mojom::AudioDataPipePtr ptr) { Created(!!ptr); }
+
+  OutputStream::CreatedCallback Get() {
+    return base::BindOnce(&MockCreatedCallback::OnCreated,
+                          base::Unretained(this));
+  }
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(MockCreatedCallback);
+};
+
+// Instantiates various classes that we're going to want in most test cases.
+class TestEnvironment {
+ public:
+  TestEnvironment()
+      : audio_manager_(std::make_unique<media::TestAudioThread>(false)) {
+    mojo::edk::SetDefaultProcessErrorCallback(bad_message_callback_.Get());
+  }
+
+  ~TestEnvironment() { audio_manager_.Shutdown(); }
+
+  using MockDeleteCallback = base::MockCallback<OutputStream::DeleteCallback>;
+  using MockBadMessageCallback =
+      base::MockCallback<base::RepeatingCallback<void(const std::string&)>>;
+
+  std::unique_ptr<OutputStream> CreateStream(
+      media::mojom::AudioOutputStreamRequest request) {
+    return std::make_unique<OutputStream>(
+        created_callback_.Get(), delete_callback_.Get(), std::move(request),
+        client_.MakePtr(), observer_.MakePtr(), log_.MakePtr(), &audio_manager_,
+        "", media::AudioParameters::UnavailableDeviceParams());
+  }
+
+  media::MockAudioManager& audio_manager() { return audio_manager_; }
+
+  MockClient& client() { return client_; }
+
+  MockObserver& observer() { return observer_; }
+
+  MockLog& log() { return log_; }
+
+  MockCreatedCallback& created_callback() { return created_callback_; }
+
+  MockDeleteCallback& delete_callback() { return delete_callback_; }
+
+  MockBadMessageCallback& bad_message_callback() {
+    return bad_message_callback_;
+  }
+
+ private:
+  base::test::ScopedTaskEnvironment tasks_;
+  media::MockAudioManager audio_manager_;
+  StrictMock<MockClient> client_;
+  StrictMock<MockObserver> observer_;
+  NiceMock<MockLog> log_;
+  StrictMock<MockCreatedCallback> created_callback_;
+  StrictMock<MockDeleteCallback> delete_callback_;
+  StrictMock<MockBadMessageCallback> bad_message_callback_;
+
+  DISALLOW_COPY_AND_ASSIGN(TestEnvironment);
+};
+
+TEST(OutputStreamTest, ConstructDestruct) {
+  TestEnvironment env;
+  MockStream mock_stream;
+  EXPECT_CALL(env.created_callback(), Created(successfully_));
+  env.audio_manager().SetMakeOutputStreamCB(base::BindRepeating(
+      [](media::AudioOutputStream* stream, const media::AudioParameters& params,
+         const std::string& device_id) { return stream; },
+      &mock_stream));
+
+  EXPECT_CALL(mock_stream, Open()).WillOnce(Return(true));
+  EXPECT_CALL(mock_stream, SetVolume(1));
+  EXPECT_CALL(env.log(), OnCreated(_, _));
+
+  media::mojom::AudioOutputStreamPtr stream_ptr;
+  std::unique_ptr<OutputStream> stream =
+      env.CreateStream(mojo::MakeRequest(&stream_ptr));
+  base::RunLoop().RunUntilIdle();
+  Mock::VerifyAndClear(&mock_stream);
+  Mock::VerifyAndClear(&env.created_callback());
+
+  EXPECT_CALL(env.log(), OnClosed());
+  EXPECT_CALL(mock_stream, Close());
+  EXPECT_CALL(env.observer(), BindingConnectionError());
+  EXPECT_CALL(env.client(), BindingConnectionError());
+}
+
+TEST(OutputStreamTest, ConstructStreamAndDestructObserver_DestructsStream) {
+  TestEnvironment env;
+  MockStream mock_stream;
+  env.audio_manager().SetMakeOutputStreamCB(base::BindRepeating(
+      [](media::AudioOutputStream* stream, const media::AudioParameters& params,
+         const std::string& device_id) { return stream; },
+      &mock_stream));
+
+  EXPECT_CALL(env.created_callback(), Created(successfully_));
+  EXPECT_CALL(mock_stream, Open()).WillOnce(Return(true));
+  EXPECT_CALL(mock_stream, SetVolume(1));
+
+  media::mojom::AudioOutputStreamPtr stream_ptr;
+  std::unique_ptr<OutputStream> stream =
+      env.CreateStream(mojo::MakeRequest(&stream_ptr));
+  base::RunLoop().RunUntilIdle();
+  Mock::VerifyAndClear(&mock_stream);
+  Mock::VerifyAndClear(&env.created_callback());
+
+  EXPECT_CALL(mock_stream, Close());
+  EXPECT_CALL(env.client(), BindingConnectionError());
+  EXPECT_CALL(env.delete_callback(), Run(stream.release()))
+      .WillOnce(DeleteArg<0>());
+
+  env.observer().CloseBinding();
+  base::RunLoop().RunUntilIdle();
+
+  Mock::VerifyAndClear(&env.delete_callback());
+  Mock::VerifyAndClear(&mock_stream);
+  Mock::VerifyAndClear(&env.client());
+}
+
+TEST(OutputStreamTest, ConstructStreamAndDestructClient_DestructsStream) {
+  TestEnvironment env;
+  MockStream mock_stream;
+  env.audio_manager().SetMakeOutputStreamCB(base::BindRepeating(
+      [](media::AudioOutputStream* stream, const media::AudioParameters& params,
+         const std::string& device_id) { return stream; },
+      &mock_stream));
+
+  EXPECT_CALL(env.created_callback(), Created(successfully_));
+  EXPECT_CALL(mock_stream, Open()).WillOnce(Return(true));
+  EXPECT_CALL(mock_stream, SetVolume(1));
+
+  media::mojom::AudioOutputStreamPtr stream_ptr;
+  std::unique_ptr<OutputStream> stream =
+      env.CreateStream(mojo::MakeRequest(&stream_ptr));
+  base::RunLoop().RunUntilIdle();
+  Mock::VerifyAndClear(&mock_stream);
+  Mock::VerifyAndClear(&env.created_callback());
+
+  EXPECT_CALL(mock_stream, Close());
+  EXPECT_CALL(env.observer(), BindingConnectionError());
+  EXPECT_CALL(env.delete_callback(), Run(stream.release()))
+      .WillOnce(DeleteArg<0>());
+
+  env.client().CloseBinding();
+  base::RunLoop().RunUntilIdle();
+
+  Mock::VerifyAndClear(&env.delete_callback());
+  Mock::VerifyAndClear(&mock_stream);
+  Mock::VerifyAndClear(&env.observer());
+}
+
+TEST(OutputStreamTest, ConstructStreamAndReleaseStreamPtr_DestructsStream) {
+  TestEnvironment env;
+  MockStream mock_stream;
+  env.audio_manager().SetMakeOutputStreamCB(base::BindRepeating(
+      [](media::AudioOutputStream* stream, const media::AudioParameters& params,
+         const std::string& device_id) { return stream; },
+      &mock_stream));
+
+  EXPECT_CALL(env.created_callback(), Created(successfully_));
+  EXPECT_CALL(mock_stream, Open()).WillOnce(Return(true));
+  EXPECT_CALL(mock_stream, SetVolume(1));
+
+  media::mojom::AudioOutputStreamPtr stream_ptr;
+  std::unique_ptr<OutputStream> stream =
+      env.CreateStream(mojo::MakeRequest(&stream_ptr));
+  base::RunLoop().RunUntilIdle();
+  Mock::VerifyAndClear(&mock_stream);
+  Mock::VerifyAndClear(&env.created_callback());
+
+  EXPECT_CALL(mock_stream, Close());
+  EXPECT_CALL(env.observer(), BindingConnectionError());
+  EXPECT_CALL(env.client(), BindingConnectionError());
+  EXPECT_CALL(env.delete_callback(), Run(stream.release()))
+      .WillOnce(DeleteArg<0>());
+
+  stream_ptr.reset();
+  base::RunLoop().RunUntilIdle();
+
+  Mock::VerifyAndClear(&env.delete_callback());
+  Mock::VerifyAndClear(&mock_stream);
+  Mock::VerifyAndClear(&env.client());
+  Mock::VerifyAndClear(&env.observer());
+}
+
+TEST(OutputStreamTest, Play_Plays) {
+  TestEnvironment env;
+  MockStream mock_stream;
+  EXPECT_CALL(env.created_callback(), Created(successfully_));
+  env.audio_manager().SetMakeOutputStreamCB(base::BindRepeating(
+      [](media::AudioOutputStream* stream, const media::AudioParameters& params,
+         const std::string& device_id) { return stream; },
+      &mock_stream));
+
+  EXPECT_CALL(mock_stream, Open()).WillOnce(Return(true));
+  EXPECT_CALL(mock_stream, SetVolume(1));
+
+  media::mojom::AudioOutputStreamPtr stream_ptr;
+  std::unique_ptr<OutputStream> stream =
+      env.CreateStream(mojo::MakeRequest(&stream_ptr));
+  base::RunLoop().RunUntilIdle();
+  Mock::VerifyAndClear(&mock_stream);
+  Mock::VerifyAndClear(&env.created_callback());
+
+  EXPECT_CALL(mock_stream, Start(NotNull()));
+  EXPECT_CALL(env.log(), OnStarted());
+  EXPECT_CALL(env.observer(), DidStartPlaying());
+  // May or may not get an audibility notification depending on if power
+  // monitoring is enabled.
+  EXPECT_CALL(env.observer(), DidChangeAudibleState(true)).Times(AtMost(1));
+  stream_ptr->Play();
+  base::RunLoop().RunUntilIdle();
+  Mock::VerifyAndClear(&mock_stream);
+  Mock::VerifyAndClear(&env.observer());
+
+  EXPECT_CALL(mock_stream, Stop());
+  EXPECT_CALL(mock_stream, Close());
+  EXPECT_CALL(env.observer(), DidChangeAudibleState(false)).Times(AtMost(1));
+  EXPECT_CALL(env.observer(), DidStopPlaying()).Times(AtMost(1));
+  EXPECT_CALL(env.observer(), BindingConnectionError());
+  EXPECT_CALL(env.client(), BindingConnectionError());
+}
+
+TEST(OutputStreamTest, PlayAndPause_PlaysAndStops) {
+  TestEnvironment env;
+  MockStream mock_stream;
+  EXPECT_CALL(env.created_callback(), Created(successfully_));
+  env.audio_manager().SetMakeOutputStreamCB(base::BindRepeating(
+      [](media::AudioOutputStream* stream, const media::AudioParameters& params,
+         const std::string& device_id) { return stream; },
+      &mock_stream));
+
+  EXPECT_CALL(mock_stream, Open()).WillOnce(Return(true));
+  EXPECT_CALL(mock_stream, SetVolume(1));
+
+  media::mojom::AudioOutputStreamPtr stream_ptr;
+  std::unique_ptr<OutputStream> stream =
+      env.CreateStream(mojo::MakeRequest(&stream_ptr));
+  base::RunLoop().RunUntilIdle();
+  Mock::VerifyAndClear(&mock_stream);
+  Mock::VerifyAndClear(&env.created_callback());
+
+  EXPECT_CALL(mock_stream, Start(NotNull()));
+  EXPECT_CALL(env.observer(), DidStartPlaying());
+  // May or may not get an audibility notification depending on if power
+  // monitoring is enabled.
+  EXPECT_CALL(env.observer(), DidChangeAudibleState(true)).Times(AtMost(1));
+  stream_ptr->Play();
+  base::RunLoop().RunUntilIdle();
+  Mock::VerifyAndClear(&mock_stream);
+  Mock::VerifyAndClear(&env.observer());
+
+  EXPECT_CALL(mock_stream, Stop());
+  EXPECT_CALL(env.log(), OnStopped());
+  EXPECT_CALL(env.observer(), DidChangeAudibleState(false)).Times(AtMost(1));
+  EXPECT_CALL(env.observer(), DidStopPlaying());
+  stream_ptr->Pause();
+  base::RunLoop().RunUntilIdle();
+  Mock::VerifyAndClear(&mock_stream);
+  Mock::VerifyAndClear(&env.observer());
+
+  EXPECT_CALL(mock_stream, Close());
+  EXPECT_CALL(env.observer(), BindingConnectionError());
+  EXPECT_CALL(env.client(), BindingConnectionError());
+}
+
+TEST(OutputStreamTest, SetVolume_SetsVolume) {
+  double new_volume = 0.618;
+  TestEnvironment env;
+  MockStream mock_stream;
+  EXPECT_CALL(env.created_callback(), Created(successfully_));
+  env.audio_manager().SetMakeOutputStreamCB(base::BindRepeating(
+      [](media::AudioOutputStream* stream, const media::AudioParameters& params,
+         const std::string& device_id) { return stream; },
+      &mock_stream));
+
+  EXPECT_CALL(mock_stream, Open()).WillOnce(Return(true));
+  EXPECT_CALL(mock_stream, SetVolume(1));
+
+  media::mojom::AudioOutputStreamPtr stream_ptr;
+  std::unique_ptr<OutputStream> stream =
+      env.CreateStream(mojo::MakeRequest(&stream_ptr));
+  base::RunLoop().RunUntilIdle();
+  Mock::VerifyAndClear(&mock_stream);
+  Mock::VerifyAndClear(&env.created_callback());
+
+  EXPECT_CALL(mock_stream, SetVolume(new_volume));
+  EXPECT_CALL(env.log(), OnSetVolume(new_volume));
+  stream_ptr->SetVolume(new_volume);
+  base::RunLoop().RunUntilIdle();
+  Mock::VerifyAndClear(&mock_stream);
+
+  EXPECT_CALL(mock_stream, Close());
+  EXPECT_CALL(env.observer(), BindingConnectionError());
+  EXPECT_CALL(env.client(), BindingConnectionError());
+}
+
+TEST(OutputStreamTest, SetNegativeVolume_BadMessage) {
+  TestEnvironment env;
+  MockStream mock_stream;
+  EXPECT_CALL(env.created_callback(), Created(successfully_));
+  env.audio_manager().SetMakeOutputStreamCB(base::BindRepeating(
+      [](media::AudioOutputStream* stream, const media::AudioParameters& params,
+         const std::string& device_id) { return stream; },
+      &mock_stream));
+
+  EXPECT_CALL(mock_stream, Open()).WillOnce(Return(true));
+  EXPECT_CALL(mock_stream, SetVolume(1));
+
+  media::mojom::AudioOutputStreamPtr stream_ptr;
+  std::unique_ptr<OutputStream> stream =
+      env.CreateStream(mojo::MakeRequest(&stream_ptr));
+  base::RunLoop().RunUntilIdle();
+  Mock::VerifyAndClear(&mock_stream);
+  Mock::VerifyAndClear(&env.created_callback());
+
+  EXPECT_CALL(mock_stream, Close());
+  EXPECT_CALL(env.observer(), BindingConnectionError());
+  EXPECT_CALL(env.client(), BindingConnectionError());
+  EXPECT_CALL(env.bad_message_callback(), Run(_));
+  EXPECT_CALL(env.delete_callback(), Run(stream.release()))
+      .WillOnce(DeleteArg<0>());
+  stream_ptr->SetVolume(-0.1);
+  base::RunLoop().RunUntilIdle();
+}
+
+TEST(OutputStreamTest, SetVolumeGreaterThanOne_BadMessage) {
+  TestEnvironment env;
+  MockStream mock_stream;
+  EXPECT_CALL(env.created_callback(), Created(successfully_));
+  env.audio_manager().SetMakeOutputStreamCB(base::BindRepeating(
+      [](media::AudioOutputStream* stream, const media::AudioParameters& params,
+         const std::string& device_id) { return stream; },
+      &mock_stream));
+
+  EXPECT_CALL(mock_stream, Open()).WillOnce(Return(true));
+  EXPECT_CALL(mock_stream, SetVolume(1));
+
+  media::mojom::AudioOutputStreamPtr stream_ptr;
+  std::unique_ptr<OutputStream> stream =
+      env.CreateStream(mojo::MakeRequest(&stream_ptr));
+  base::RunLoop().RunUntilIdle();
+  Mock::VerifyAndClear(&mock_stream);
+  Mock::VerifyAndClear(&env.created_callback());
+
+  EXPECT_CALL(mock_stream, Close());
+  EXPECT_CALL(env.observer(), BindingConnectionError());
+  EXPECT_CALL(env.client(), BindingConnectionError());
+  EXPECT_CALL(env.bad_message_callback(), Run(_));
+  EXPECT_CALL(env.delete_callback(), Run(stream.release()))
+      .WillOnce(DeleteArg<0>());
+  stream_ptr->SetVolume(1.1);
+  base::RunLoop().RunUntilIdle();
+}
+
+TEST(OutputStreamTest, ConstructWithStreamCreationFailure_SignalsError) {
+  TestEnvironment env;
+
+  // By default, the MockAudioManager fails to create a stream.
+
+  media::mojom::AudioOutputStreamPtr stream_ptr;
+  std::unique_ptr<OutputStream> stream =
+      env.CreateStream(mojo::MakeRequest(&stream_ptr));
+
+  EXPECT_CALL(env.created_callback(), Created(unsuccessfully_));
+  EXPECT_CALL(env.observer(), BindingConnectionError());
+  EXPECT_CALL(env.log(), OnError());
+  EXPECT_CALL(env.client(), OnError());
+  EXPECT_CALL(env.client(), BindingConnectionError());
+  EXPECT_CALL(env.delete_callback(), Run(stream.release()))
+      .WillOnce(DeleteArg<0>());
+  base::RunLoop().RunUntilIdle();
+  Mock::VerifyAndClear(&env.delete_callback());
+  Mock::VerifyAndClear(&env.client());
+  Mock::VerifyAndClear(&env.observer());
+}
+
+TEST(OutputStreamTest,
+     ConstructWithStreamCreationFailureAndDestructBeforeErrorFires_NoCrash) {
+  // The main purpose of this test is to make sure that that delete callback
+  // call is deferred, and that it is canceled in case of destruction.
+  TestEnvironment env;
+
+  // By default, the MockAudioManager fails to create a stream.
+
+  media::mojom::AudioOutputStreamPtr stream_ptr;
+  {
+    EXPECT_CALL(env.created_callback(), Created(unsuccessfully_));
+    std::unique_ptr<OutputStream> stream =
+        env.CreateStream(mojo::MakeRequest(&stream_ptr));
+
+    EXPECT_CALL(env.observer(), BindingConnectionError());
+    EXPECT_CALL(env.client(), OnError());
+    EXPECT_CALL(env.client(), BindingConnectionError());
+  }
+
+  base::RunLoop().RunUntilIdle();
+  Mock::VerifyAndClear(&env.client());
+  Mock::VerifyAndClear(&env.observer());
+}
+
+}  // namespace audio
diff --git a/services/audio/test/mock_log.cc b/services/audio/test/mock_log.cc
new file mode 100644
index 0000000..b4f59b7
--- /dev/null
+++ b/services/audio/test/mock_log.cc
@@ -0,0 +1,10 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "services/audio/test/mock_log.h"
+
+namespace audio {
+MockLog::MockLog() : binding_(this) {}
+MockLog::~MockLog() = default;
+}  // namespace audio
diff --git a/services/audio/test/mock_log.h b/services/audio/test/mock_log.h
new file mode 100644
index 0000000..42c138f
--- /dev/null
+++ b/services/audio/test/mock_log.h
@@ -0,0 +1,54 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef SERVICES_AUDIO_TEST_MOCK_LOG_H_
+#define SERVICES_AUDIO_TEST_MOCK_LOG_H_
+
+#include <string>
+
+#include "base/bind.h"
+#include "media/base/audio_parameters.h"
+#include "media/mojo/interfaces/audio_logging.mojom.h"
+#include "mojo/public/cpp/bindings/binding.h"
+#include "testing/gmock/include/gmock/gmock.h"
+
+namespace audio {
+
+class MockLog : public media::mojom::AudioLog {
+ public:
+  MockLog();
+  ~MockLog() override;
+
+  // Should only be called once.
+  media::mojom::AudioLogPtr MakePtr() {
+    media::mojom::AudioLogPtr ptr;
+    binding_.Bind(mojo::MakeRequest(&ptr));
+    binding_.set_connection_error_handler(base::BindOnce(
+        &MockLog::BindingConnectionError, base::Unretained(this)));
+    return ptr;
+  }
+
+  void CloseBinding() { binding_.Close(); }
+
+  MOCK_METHOD2(OnCreated,
+               void(const media::AudioParameters& params,
+                    const std::string& device_id));
+  MOCK_METHOD0(OnStarted, void());
+  MOCK_METHOD0(OnStopped, void());
+  MOCK_METHOD0(OnClosed, void());
+  MOCK_METHOD0(OnError, void());
+  MOCK_METHOD1(OnSetVolume, void(double));
+  MOCK_METHOD1(OnLogMessage, void(const std::string&));
+
+  MOCK_METHOD0(BindingConnectionError, void());
+
+ private:
+  mojo::Binding<media::mojom::AudioLog> binding_;
+
+  DISALLOW_COPY_AND_ASSIGN(MockLog);
+};
+
+}  // namespace audio
+
+#endif  // SERVICES_AUDIO_TEST_MOCK_LOG_H_
diff --git a/services/identity/public/cpp/identity_manager.cc b/services/identity/public/cpp/identity_manager.cc
index d349b80f..c34731f 100644
--- a/services/identity/public/cpp/identity_manager.cc
+++ b/services/identity/public/cpp/identity_manager.cc
@@ -95,11 +95,21 @@
     std::string gaia_id,
     std::string email_address,
     std::string refresh_token) {
+  DCHECK(!refresh_token.empty());
+  SetPrimaryAccountSynchronously(gaia_id, email_address, refresh_token);
+}
+
+void IdentityManager::SetPrimaryAccountSynchronously(
+    std::string gaia_id,
+    std::string email_address,
+    std::string refresh_token) {
   signin_manager_->SetAuthenticatedAccountInfo(gaia_id, email_address);
   primary_account_info_ = signin_manager_->GetAuthenticatedAccountInfo();
 
-  token_service_->UpdateCredentials(primary_account_info_.account_id,
-                                    refresh_token);
+  if (!refresh_token.empty()) {
+    token_service_->UpdateCredentials(primary_account_info_.account_id,
+                                      refresh_token);
+  }
 }
 
 #if !defined(OS_CHROMEOS)
diff --git a/services/identity/public/cpp/identity_manager.h b/services/identity/public/cpp/identity_manager.h
index cd7fabbc..45a2ac0 100644
--- a/services/identity/public/cpp/identity_manager.h
+++ b/services/identity/public/cpp/identity_manager.h
@@ -16,6 +16,11 @@
 #endif
 
 // Necessary to declare this class as a friend.
+namespace chromeos {
+class ChromeSessionManager;
+}
+
+// Necessary to declare this class as a friend.
 class ProfileSyncServiceHarness;
 
 // Necessary to declare functions in identity_test_utils.h as friends.
@@ -107,7 +112,7 @@
   void RemoveDiagnosticsObserver(DiagnosticsObserver* observer);
 
  private:
-  // This function calls the below test function.
+  // These clients need to call SetPrimaryAccountSynchronouslyForTests().
   friend void MakePrimaryAccountAvailable(
       SigninManagerForTest* signin_manager,
       ProfileOAuth2TokenService* token_service,
@@ -115,12 +120,27 @@
       const std::string& email);
   friend ProfileSyncServiceHarness;
 
+  // This client needs to call SetPrimaryAccountSynchronously().
+  friend chromeos::ChromeSessionManager;
+
   // Sets the primary account info synchronously with both the IdentityManager
   // and its backing SigninManager/ProfileOAuth2TokenService instances.
+  // Prefer using the methods in identity_test_{environment, utils}.h to using
+  // this method directly.
   void SetPrimaryAccountSynchronouslyForTests(std::string gaia_id,
                                               std::string email_address,
                                               std::string refresh_token);
 
+  // Sets the primary account info synchronously with both the IdentityManager
+  // and its backing SigninManager instance. If |refresh_token| is not empty,
+  // sets the refresh token with the backing ProfileOAuth2TokenService
+  // instance. This method should not be used directly; it exists only to serve
+  // one legacy use case at this point.
+  // TODO(https://crbug.com/814787): Eliminate the need for this method.
+  void SetPrimaryAccountSynchronously(std::string gaia_id,
+                                      std::string email_address,
+                                      std::string refresh_token);
+
   // SigninManagerBase::Observer:
   void GoogleSigninSucceeded(const AccountInfo& account_info) override;
   void GoogleSignedOut(const AccountInfo& account_info) override;
diff --git a/services/service_manager/sandbox/mac/gpu_v2.sb b/services/service_manager/sandbox/mac/gpu_v2.sb
index f7c37ae..2fa2a09 100644
--- a/services/service_manager/sandbox/mac/gpu_v2.sb
+++ b/services/service_manager/sandbox/mac/gpu_v2.sb
@@ -7,8 +7,8 @@
 ; Allow communication between the GPU process and the UI server.
 (allow mach-lookup
   (global-name "com.apple.CoreServices.coreservicesd")
+  (global-name "com.apple.coreservices.launchservicesd")
   (global-name "com.apple.cvmsServ")
-  (global-name "com.apple.lsd.mapdb")
   (global-name "com.apple.system.notification_center")
   (global-name "com.apple.tsm.uiserver")
   (global-name "com.apple.windowserver.active"))
diff --git a/services/ui/ime/ime_unittest.cc b/services/ui/ime/ime_unittest.cc
index 062b817..ba40341 100644
--- a/services/ui/ime/ime_unittest.cc
+++ b/services/ui/ime/ime_unittest.cc
@@ -33,7 +33,7 @@
   void SetCompositionText(const ui::CompositionText& composition) override {}
   void ConfirmCompositionText() override {}
   void ClearCompositionText() override {}
-  void InsertText(const std::string& text) override {}
+  void InsertText(const base::string16& text) override {}
   void InsertChar(std::unique_ptr<ui::Event> event) override {
     receieved_event_ = std::move(event);
     if (run_loop_)
diff --git a/services/ui/public/interfaces/ime/ime.mojom b/services/ui/public/interfaces/ime/ime.mojom
index 0f59599..582d083 100644
--- a/services/ui/public/interfaces/ime/ime.mojom
+++ b/services/ui/public/interfaces/ime/ime.mojom
@@ -5,6 +5,7 @@
 module ui.mojom;
 
 import "mojo/common/text_direction.mojom";
+import "mojo/public/mojom/base/string16.mojom";
 import "ui/events/mojo/event.mojom";
 import "ui/gfx/geometry/mojo/geometry.mojom";
 import "ui/gfx/range/mojo/range.mojom";
@@ -43,18 +44,18 @@
 // Represents a candidate window entry.
 struct CandidateWindowEntry {
   // Value of the candidate.
-  string value;
+  mojo_base.mojom.String16 value;
 
   // Short string displayed next to the candidate, often the shortcut key or
   // index.
-  string label;
+  mojo_base.mojom.String16 label;
 
   // Additional text describing the candidate.
-  string annotation;
+  mojo_base.mojom.String16 annotation;
 
   // The usage or detailed description of the candidate.
-  string description_title;
-  string description_body;
+  mojo_base.mojom.String16 description_title;
+  mojo_base.mojom.String16 description_body;
 };
 
 // See comments for ui::ImeTextSpan::Type for more details.
@@ -80,7 +81,7 @@
 // Represents a text currently being composed by IME. Corresponds to
 // ui::CompositionText.
 struct CompositionText {
-  string text;
+  mojo_base.mojom.String16 text;
   array<ImeTextSpan> ime_text_spans;
   gfx.mojom.Range selection;
 };
@@ -163,7 +164,7 @@
   // Inserts a given text at the insertion point. Current composition text or
   // selection will be removed. This method should never be called when the
   // current text input type is TEXT_INPUT_TYPE_NONE.
-  InsertText(string text);
+  InsertText(mojo_base.mojom.String16 text);
 
   // Inserts a single character at the insertion point. Unlike InsertText(),
   // the character is not processed. See ui::TextInputClient::InsertChar()
diff --git a/services/ui/public/interfaces/ime/ime_struct_traits.cc b/services/ui/public/interfaces/ime/ime_struct_traits.cc
index 0a445971..de4d4b4 100644
--- a/services/ui/public/interfaces/ime/ime_struct_traits.cc
+++ b/services/ui/public/interfaces/ime/ime_struct_traits.cc
@@ -4,6 +4,7 @@
 
 #include "services/ui/public/interfaces/ime/ime_struct_traits.h"
 
+#include "mojo/public/cpp/base/string16_mojom_traits.h"
 #include "ui/gfx/range/mojo/range_struct_traits.h"
 
 namespace mojo {
diff --git a/services/ui/public/interfaces/ime/ime_struct_traits.h b/services/ui/public/interfaces/ime/ime_struct_traits.h
index 42214de..1d942af 100644
--- a/services/ui/public/interfaces/ime/ime_struct_traits.h
+++ b/services/ui/public/interfaces/ime/ime_struct_traits.h
@@ -5,7 +5,6 @@
 #ifndef SERVICES_UI_PUBLIC_INTERFACES_IME_IME_STRUCT_TRAITS_H_
 #define SERVICES_UI_PUBLIC_INTERFACES_IME_IME_STRUCT_TRAITS_H_
 
-#include "base/strings/utf_string_conversions.h"
 #include "services/ui/public/interfaces/ime/ime.mojom-shared.h"
 #include "ui/base/ime/candidate_window.h"
 #include "ui/base/ime/composition_text.h"
@@ -54,20 +53,20 @@
 template <>
 struct StructTraits<ui::mojom::CandidateWindowEntryDataView,
                     ui::CandidateWindow::Entry> {
-  static std::string value(const ui::CandidateWindow::Entry& e) {
-    return base::UTF16ToUTF8(e.value);
+  static base::string16 value(const ui::CandidateWindow::Entry& e) {
+    return e.value;
   }
-  static std::string label(const ui::CandidateWindow::Entry& e) {
-    return base::UTF16ToUTF8(e.label);
+  static base::string16 label(const ui::CandidateWindow::Entry& e) {
+    return e.label;
   }
-  static std::string annotation(const ui::CandidateWindow::Entry& e) {
-    return base::UTF16ToUTF8(e.annotation);
+  static base::string16 annotation(const ui::CandidateWindow::Entry& e) {
+    return e.annotation;
   }
-  static std::string description_title(const ui::CandidateWindow::Entry& e) {
-    return base::UTF16ToUTF8(e.description_title);
+  static base::string16 description_title(const ui::CandidateWindow::Entry& e) {
+    return e.description_title;
   }
-  static std::string description_body(const ui::CandidateWindow::Entry& e) {
-    return base::UTF16ToUTF8(e.description_body);
+  static base::string16 description_body(const ui::CandidateWindow::Entry& e) {
+    return e.description_body;
   }
   static bool Read(ui::mojom::CandidateWindowEntryDataView data,
                    ui::CandidateWindow::Entry* out);
@@ -75,9 +74,7 @@
 
 template <>
 struct StructTraits<ui::mojom::CompositionTextDataView, ui::CompositionText> {
-  static std::string text(const ui::CompositionText& c) {
-    return base::UTF16ToUTF8(c.text);
-  }
+  static base::string16 text(const ui::CompositionText& c) { return c.text; }
   static ui::ImeTextSpans ime_text_spans(const ui::CompositionText& c) {
     return c.ime_text_spans;
   }
diff --git a/services/ui/public/interfaces/ime/ime_struct_traits_unittest.cc b/services/ui/public/interfaces/ime/ime_struct_traits_unittest.cc
index 812ed1a6..06846e2 100644
--- a/services/ui/public/interfaces/ime/ime_struct_traits_unittest.cc
+++ b/services/ui/public/interfaces/ime/ime_struct_traits_unittest.cc
@@ -8,6 +8,7 @@
 
 #include "base/message_loop/message_loop.h"
 #include "base/strings/utf_string_conversions.h"
+#include "mojo/public/cpp/base/string16_mojom_traits.h"
 #include "mojo/public/cpp/bindings/binding_set.h"
 #include "services/ui/public/interfaces/ime/ime_struct_traits_test.mojom.h"
 #include "testing/gtest/include/gtest/gtest.h"
diff --git a/services/ui/ws/access_policy_delegate.h b/services/ui/ws/access_policy_delegate.h
index 42056ef..378995dc4 100644
--- a/services/ui/ws/access_policy_delegate.h
+++ b/services/ui/ws/access_policy_delegate.h
@@ -5,13 +5,7 @@
 #ifndef SERVICES_UI_WS_ACCESS_POLICY_DELEGATE_H_
 #define SERVICES_UI_WS_ACCESS_POLICY_DELEGATE_H_
 
-#include <vector>
-
-#include "base/containers/hash_tables.h"
-#include "services/ui/ws/ids.h"
-
 namespace ui {
-
 namespace ws {
 
 class ServerWindow;
@@ -43,7 +37,6 @@
 };
 
 }  // namespace ws
-
 }  // namespace ui
 
 #endif  // SERVICES_UI_WS_ACCESS_POLICY_DELEGATE_H_
diff --git a/services/ui/ws/debug_utils.cc b/services/ui/ws/debug_utils.cc
index 351b416..a617aaf 100644
--- a/services/ui/ws/debug_utils.cc
+++ b/services/ui/ws/debug_utils.cc
@@ -10,7 +10,7 @@
 namespace ws {
 
 std::string DebugWindowId(const ServerWindow* window) {
-  return window ? window->id().ToString() : "null";
+  return window ? window->frame_sink_id().ToString() : "null";
 }
 
 }  // namespace ws
diff --git a/services/ui/ws/default_access_policy.cc b/services/ui/ws/default_access_policy.cc
index a8eda11..9d0c7a9 100644
--- a/services/ui/ws/default_access_policy.cc
+++ b/services/ui/ws/default_access_policy.cc
@@ -266,7 +266,7 @@
 
 bool DefaultAccessPolicy::WasCreatedByThisClient(
     const ServerWindow* window) const {
-  return window->id().client_id == client_id_;
+  return window->owning_tree_id() == client_id_;
 }
 
 bool DefaultAccessPolicy::IsValidIdForNewWindow(
diff --git a/services/ui/ws/display.cc b/services/ui/ws/display.cc
index 4d6d786..447b9b0c 100644
--- a/services/ui/ws/display.cc
+++ b/services/ui/ws/display.cc
@@ -129,16 +129,6 @@
   return root_->bounds().size();
 }
 
-ServerWindow* Display::GetRootWithId(const WindowId& id) {
-  if (id == root_->id())
-    return root_.get();
-  for (auto& pair : window_manager_display_root_map_) {
-    if (pair.second->root()->id() == id)
-      return pair.second->root();
-  }
-  return nullptr;
-}
-
 WindowManagerDisplayRoot* Display::GetWindowManagerDisplayRootWithRoot(
     const ServerWindow* window) {
   for (auto& pair : window_manager_display_root_map_) {
@@ -260,9 +250,9 @@
 void Display::CreateRootWindow(const gfx::Size& size) {
   DCHECK(!root_);
 
-  WindowId id = display_manager()->GetAndAdvanceNextRootId();
-  ClientWindowId client_window_id(id.client_id, id.window_id);
-  root_.reset(window_server_->CreateServerWindow(id, client_window_id,
+  const ClientWindowId client_window_id =
+      display_manager()->GetAndAdvanceNextRootId();
+  root_.reset(window_server_->CreateServerWindow(client_window_id,
                                                  ServerWindow::Properties()));
   root_->set_event_targeting_policy(
       mojom::EventTargetingPolicy::DESCENDANTS_ONLY);
@@ -362,7 +352,7 @@
 
   if (old_focused_window) {
     owning_tree_old =
-        window_server_->GetTreeWithId(old_focused_window->id().client_id);
+        window_server_->GetTreeWithId(old_focused_window->owning_tree_id());
     if (owning_tree_old) {
       owning_tree_old->ProcessFocusChanged(old_focused_window,
                                            new_focused_window);
@@ -378,7 +368,7 @@
   WindowTree* embedded_tree_new = nullptr;
   if (new_focused_window) {
     owning_tree_new =
-        window_server_->GetTreeWithId(new_focused_window->id().client_id);
+        window_server_->GetTreeWithId(new_focused_window->owning_tree_id());
     if (owning_tree_new && owning_tree_new != owning_tree_old &&
         owning_tree_new != embedded_tree_old) {
       owning_tree_new->ProcessFocusChanged(old_focused_window,
diff --git a/services/ui/ws/display.h b/services/ui/ws/display.h
index e4d7c68..e50adaf 100644
--- a/services/ui/ws/display.h
+++ b/services/ui/ws/display.h
@@ -99,13 +99,6 @@
   ServerWindow* root_window() { return root_.get(); }
   const ServerWindow* root_window() const { return root_.get(); }
 
-  // Returns the ServerWindow whose id is |id|. This does not do a search over
-  // all windows, rather just the display and window manager root windows.
-  //
-  // In general you shouldn't use this, rather use WindowServer::GetWindow(),
-  // which calls this as necessary.
-  ServerWindow* GetRootWithId(const WindowId& id);
-
   WindowManagerDisplayRoot* GetWindowManagerDisplayRootWithRoot(
       const ServerWindow* window);
   WindowManagerDisplayRoot* GetWindowManagerDisplayRootForUser(
diff --git a/services/ui/ws/display_manager.cc b/services/ui/ws/display_manager.cc
index d64f7db..32884b5d 100644
--- a/services/ui/ws/display_manager.cc
+++ b/services/ui/ws/display_manager.cc
@@ -45,7 +45,6 @@
     // 0 as invalid.
     : window_server_(window_server),
       user_id_tracker_(user_id_tracker),
-      next_root_id_(0),
       internal_display_id_(display::kInvalidDisplayId) {
 #if defined(OS_CHROMEOS)
   // TODO: http://crbug.com/701468 fix function key preferences and sticky keys.
@@ -337,11 +336,10 @@
   return GetDisplayById(display::kUnifiedDisplayId) != nullptr;
 }
 
-WindowId DisplayManager::GetAndAdvanceNextRootId() {
-  // TODO(sky): handle wrapping!
-  const uint16_t id = next_root_id_++;
-  DCHECK_LT(id, next_root_id_);
-  return RootWindowId(id);
+ClientWindowId DisplayManager::GetAndAdvanceNextRootId() {
+  const ClientSpecificId id = next_root_id_++;
+  CHECK_NE(0u, next_root_id_);
+  return ClientWindowId(kWindowServerClientId, id);
 }
 
 void DisplayManager::OnDisplayAcceleratedWidgetAvailable(Display* display) {
diff --git a/services/ui/ws/display_manager.h b/services/ui/ws/display_manager.h
index 2671ff9..2e720c8 100644
--- a/services/ui/ws/display_manager.h
+++ b/services/ui/ws/display_manager.h
@@ -112,7 +112,7 @@
 
   // Returns the id for the next root window (both for the root of a Display
   // as well as the root of WindowManagers).
-  WindowId GetAndAdvanceNextRootId();
+  ClientWindowId GetAndAdvanceNextRootId();
 
   // Called when the AcceleratedWidget is available for |display|.
   void OnDisplayAcceleratedWidgetAvailable(Display* display);
@@ -158,7 +158,8 @@
       cursor_location_managers_;
 
   // ID to use for next root node.
-  ClientSpecificId next_root_id_;
+  // TODO(sky): figure out why this starts at 2.
+  ClientSpecificId next_root_id_ = 2;
 
   bool got_initial_config_from_window_manager_ = false;
 
diff --git a/services/ui/ws/display_unittest.cc b/services/ui/ws/display_unittest.cc
index 01f37c8..aa86375 100644
--- a/services/ui/ws/display_unittest.cc
+++ b/services/ui/ws/display_unittest.cc
@@ -373,9 +373,9 @@
   ASSERT_EQ(2u, tree->roots().size());
   std::set<const ServerWindow*> roots = tree->roots();
   auto it = roots.begin();
-  ServerWindow* root1 = tree->GetWindow((*it)->id());
+  ServerWindow* root1 = const_cast<ServerWindow*>(*it);
   ++it;
-  ServerWindow* root2 = tree->GetWindow((*it)->id());
+  ServerWindow* root2 = const_cast<ServerWindow*>(*it);
   ASSERT_NE(root1, root2);
   Display* display1 = tree->GetDisplay(root1);
   WindowManagerState* display1_wms =
diff --git a/services/ui/ws/drag_controller.cc b/services/ui/ws/drag_controller.cc
index cc3b999..4faf1b3 100644
--- a/services/ui/ws/drag_controller.cc
+++ b/services/ui/ws/drag_controller.cc
@@ -260,18 +260,24 @@
       break;
     }
     case OperationType::ENTER: {
+      std::unique_ptr<ServerWindowTracker> tracker =
+          std::make_unique<ServerWindowTracker>();
+      tracker->Add(target);
       connection->PerformOnDragEnter(
           target, op.event_flags, op.screen_position, drag_operations_,
           base::Bind(&DragController::OnDragStatusCompleted,
-                     weak_factory_.GetWeakPtr(), target->id()));
+                     weak_factory_.GetWeakPtr(), base::Passed(&tracker)));
       state->waiting_on_reply = OperationType::ENTER;
       break;
     }
     case OperationType::OVER: {
+      std::unique_ptr<ServerWindowTracker> tracker =
+          std::make_unique<ServerWindowTracker>();
+      tracker->Add(target);
       connection->PerformOnDragOver(
           target, op.event_flags, op.screen_position, drag_operations_,
           base::Bind(&DragController::OnDragStatusCompleted,
-                     weak_factory_.GetWeakPtr(), target->id()));
+                     weak_factory_.GetWeakPtr(), base::Passed(&tracker)));
       state->waiting_on_reply = OperationType::OVER;
       break;
     }
@@ -281,10 +287,13 @@
       break;
     }
     case OperationType::DROP: {
+      std::unique_ptr<ServerWindowTracker> tracker =
+          std::make_unique<ServerWindowTracker>();
+      tracker->Add(target);
       connection->PerformOnCompleteDrop(
           target, op.event_flags, op.screen_position, drag_operations_,
           base::Bind(&DragController::OnDragDropCompleted,
-                     weak_factory_.GetWeakPtr(), target->id()));
+                     weak_factory_.GetWeakPtr(), base::Passed(&tracker)));
       state->waiting_on_reply = OperationType::DROP;
       break;
     }
@@ -301,23 +310,23 @@
     DispatchOperation(window, &state);
 }
 
-void DragController::OnDragStatusCompleted(const WindowId& id,
-                                           DropEffectBitmask bitmask) {
-  ServerWindow* window = source_->GetWindowById(id);
-  if (!window) {
+void DragController::OnDragStatusCompleted(
+    std::unique_ptr<ServerWindowTracker> tracker,
+    DropEffectBitmask bitmask) {
+  if (tracker->windows().empty()) {
     // The window has been deleted and its queue is empty.
     return;
   }
 
   // We must remove the completed item.
-  OnRespondToOperation(window);
-  SetWindowDropOperations(window, bitmask);
+  OnRespondToOperation(*(tracker->windows().begin()));
+  SetWindowDropOperations(*(tracker->windows().begin()), bitmask);
 }
 
-void DragController::OnDragDropCompleted(const WindowId& id,
-                                         DropEffect action) {
-  ServerWindow* window = source_->GetWindowById(id);
-  if (!window) {
+void DragController::OnDragDropCompleted(
+    std::unique_ptr<ServerWindowTracker> tracker,
+    DropEffect action) {
+  if (tracker->windows().empty()) {
     // The window has been deleted after we sent the drop message. It's really
     // hard to recover from this so just signal to the source that our drag
     // failed.
@@ -325,7 +334,7 @@
     return;
   }
 
-  OnRespondToOperation(window);
+  OnRespondToOperation(*(tracker->windows().begin()));
   MessageDragCompleted(action != 0u, action);
 }
 
diff --git a/services/ui/ws/drag_controller.h b/services/ui/ws/drag_controller.h
index 83e6abc..5a67b4b 100644
--- a/services/ui/ws/drag_controller.h
+++ b/services/ui/ws/drag_controller.h
@@ -6,6 +6,7 @@
 #define SERVICES_UI_WS_DRAG_CONTROLLER_H_
 
 #include <map>
+#include <memory>
 #include <set>
 
 #include "base/memory/weak_ptr.h"
@@ -13,6 +14,7 @@
 #include "services/ui/public/interfaces/cursor/cursor.mojom.h"
 #include "services/ui/ws/ids.h"
 #include "services/ui/ws/server_window_observer.h"
+#include "services/ui/ws/server_window_tracker.h"
 
 namespace gfx {
 class Point;
@@ -104,9 +106,12 @@
   void DispatchOperation(ServerWindow* window, WindowState* state);
   void OnRespondToOperation(ServerWindow* window);
 
-  // Callback methods.
-  void OnDragStatusCompleted(const WindowId& id, DropEffectBitmask bitmask);
-  void OnDragDropCompleted(const WindowId& id, DropEffect action);
+  // Callback methods. |tracker| contains the window being queried and is null
+  // if the window was destroyed while waiting for client.
+  void OnDragStatusCompleted(std::unique_ptr<ServerWindowTracker> tracker,
+                             DropEffectBitmask bitmask);
+  void OnDragDropCompleted(std::unique_ptr<ServerWindowTracker> tracker,
+                           DropEffect action);
 
   // ServerWindowObserver:
   void OnWindowDestroying(ServerWindow* window) override;
diff --git a/services/ui/ws/drag_controller_unittest.cc b/services/ui/ws/drag_controller_unittest.cc
index 764e1c6..50c4e43 100644
--- a/services/ui/ws/drag_controller_unittest.cc
+++ b/services/ui/ws/drag_controller_unittest.cc
@@ -41,7 +41,7 @@
 
   DragTestWindow(DragControllerTest* parent,
                  TestServerWindowDelegate* window_delegate,
-                 const WindowId& id)
+                 const viz::FrameSinkId& id)
       : parent_(parent),
         window_delegate_(window_delegate),
         window_(window_delegate_, id) {
@@ -146,10 +146,9 @@
                            public DragSource {
  public:
   std::unique_ptr<DragTestWindow> BuildWindow() {
-    WindowId id(1, ++window_id_);
+    viz::FrameSinkId id(1, ++window_id_);
     std::unique_ptr<DragTestWindow> p =
         std::make_unique<DragTestWindow>(this, window_delegate_.get(), id);
-    server_window_by_id_[id] = p->window();
     connection_by_window_[p->window()] = p.get();
     return p;
   }
@@ -196,7 +195,6 @@
 
   void OnTestWindowDestroyed(DragTestWindow* test_window) {
     drag_operation_->OnWillDestroyDragTargetConnection(test_window);
-    server_window_by_id_.erase(test_window->window()->id());
     connection_by_window_.erase(test_window->window());
   }
 
@@ -218,8 +216,8 @@
 
     window_delegate_ = std::make_unique<TestServerWindowDelegate>(
         ws_test_helper_.window_server()->GetVizHostProxy());
-    root_window_ =
-        std::make_unique<ServerWindow>(window_delegate_.get(), WindowId(1, 2));
+    root_window_ = std::make_unique<ServerWindow>(window_delegate_.get(),
+                                                  viz::FrameSinkId(1, 2));
     window_delegate_->set_root_window(root_window_.get());
     root_window_->SetVisible(true);
   }
@@ -229,7 +227,6 @@
     root_window_.reset();
     window_delegate_.reset();
 
-    DCHECK(server_window_by_id_.empty());
     DCHECK(connection_by_window_.empty());
 
     testing::Test::TearDown();
@@ -249,13 +246,6 @@
     drag_completed_value_ = success;
   }
 
-  ServerWindow* GetWindowById(const WindowId& id) override {
-    auto it = server_window_by_id_.find(id);
-    if (it == server_window_by_id_.end())
-      return nullptr;
-    return it->second;
-  }
-
   DragTargetConnection* GetDragTargetForWindow(
       const ServerWindow* window) override {
     auto it = connection_by_window_.find(const_cast<ServerWindow*>(window));
@@ -270,7 +260,6 @@
 
   ui::CursorType cursor_;
 
-  std::map<WindowId, ServerWindow*> server_window_by_id_;
   std::map<ServerWindow*, DragTargetConnection*> connection_by_window_;
 
   std::unique_ptr<TestServerWindowDelegate> window_delegate_;
diff --git a/services/ui/ws/drag_source.h b/services/ui/ws/drag_source.h
index 050a0ce..cb45039 100644
--- a/services/ui/ws/drag_source.h
+++ b/services/ui/ws/drag_source.h
@@ -10,7 +10,6 @@
 
 class DragTargetConnection;
 class ServerWindow;
-struct WindowId;
 
 // An interface implemented by the object that caused a DragController to
 // exist, and which acts as a delegate to it.
@@ -27,8 +26,6 @@
   // is one of the kDropEffect constants in window_tree_constants.mojom.
   virtual void OnDragCompleted(bool success, uint32_t action_taken) = 0;
 
-  virtual ServerWindow* GetWindowById(const WindowId& id) = 0;
-
   // Returns the client connection that created |window|.
   virtual DragTargetConnection* GetDragTargetForWindow(
       const ServerWindow* window) = 0;
diff --git a/services/ui/ws/event_dispatcher.cc b/services/ui/ws/event_dispatcher.cc
index 52c2d8f..a357852 100644
--- a/services/ui/ws/event_dispatcher.cc
+++ b/services/ui/ws/event_dispatcher.cc
@@ -205,7 +205,7 @@
   const ClientSpecificId target_client_id = delegate_->GetEventTargetClientId(
       mouse_cursor_source_window_, mouse_cursor_in_non_client_area_);
   const ServerWindow* window = mouse_cursor_source_window_;
-  while (window && window->id().client_id == target_client_id)
+  while (window && window->owning_tree_id() == target_client_id)
     window = window->parent();
   return window;
 }
diff --git a/services/ui/ws/event_dispatcher_unittest.cc b/services/ui/ws/event_dispatcher_unittest.cc
index 70b40a3..e68eb6c4 100644
--- a/services/ui/ws/event_dispatcher_unittest.cc
+++ b/services/ui/ws/event_dispatcher_unittest.cc
@@ -313,10 +313,10 @@
   // Deletes everything created during SetUp()
   void ClearSetup();
   std::unique_ptr<ServerWindow> CreateChildWindowWithParent(
-      const WindowId& id,
+      const viz::FrameSinkId& id,
       ServerWindow* parent);
   // Creates a window which is a child of |root_window_|.
-  std::unique_ptr<ServerWindow> CreateChildWindow(const WindowId& id);
+  std::unique_ptr<ServerWindow> CreateChildWindow(const viz::FrameSinkId& id);
   bool IsMouseButtonDown() const;
   bool IsWindowPointerTarget(const ServerWindow* window) const;
   int NumberPointerTargetsForWindow(ServerWindow* window) const;
@@ -395,7 +395,7 @@
 }
 
 std::unique_ptr<ServerWindow> EventDispatcherTest::CreateChildWindowWithParent(
-    const WindowId& id,
+    const viz::FrameSinkId& id,
     ServerWindow* parent) {
   std::unique_ptr<ServerWindow> child(
       new ServerWindow(window_delegate_.get(), id));
@@ -405,7 +405,7 @@
 }
 
 std::unique_ptr<ServerWindow> EventDispatcherTest::CreateChildWindow(
-    const WindowId& id) {
+    const viz::FrameSinkId& id) {
   return CreateChildWindowWithParent(id, root_window_.get());
 }
 
@@ -448,8 +448,8 @@
 
   window_delegate_ =
       std::make_unique<TestServerWindowDelegate>(viz_host_proxy());
-  root_window_ =
-      std::make_unique<ServerWindow>(window_delegate_.get(), WindowId(1, 2));
+  root_window_ = std::make_unique<ServerWindow>(window_delegate_.get(),
+                                                viz::FrameSinkId(1, 2));
   root_window_->set_is_activation_parent(true);
   window_delegate_->set_root_window(root_window_.get());
   root_window_->SetVisible(true);
@@ -492,7 +492,7 @@
     runloop.RunUntilIdle();
   }
 
-  std::unique_ptr<ServerWindow> CreateChildWindow(const WindowId& id) {
+  std::unique_ptr<ServerWindow> CreateChildWindow(const viz::FrameSinkId& id) {
     std::unique_ptr<ServerWindow> child(
         new ServerWindow(window_delegate_.get(), id));
     root_window_->Add(child.get());
@@ -534,8 +534,8 @@
 
   window_delegate_ =
       std::make_unique<TestServerWindowDelegate>(viz_host_proxy());
-  root_window_ =
-      std::make_unique<ServerWindow>(window_delegate_.get(), WindowId(1, 2));
+  root_window_ = std::make_unique<ServerWindow>(window_delegate_.get(),
+                                                viz::FrameSinkId(1, 2));
   root_window_->set_is_activation_parent(true);
   window_delegate_->set_root_window(root_window_.get());
   root_window_->SetVisible(true);
@@ -560,7 +560,8 @@
 }
 
 TEST_P(EventDispatcherTest, ProcessEvent) {
-  std::unique_ptr<ServerWindow> child = CreateChildWindow(WindowId(1, 3));
+  std::unique_ptr<ServerWindow> child =
+      CreateChildWindow(viz::FrameSinkId(1, 3));
 
   root_window()->SetBounds(gfx::Rect(0, 0, 100, 100));
   child->SetBounds(gfx::Rect(10, 10, 20, 20));
@@ -704,7 +705,8 @@
   EXPECT_FALSE(details);
 
   // Set focused window for EventDispatcher dispatches key events.
-  std::unique_ptr<ServerWindow> child = CreateChildWindow(WindowId(1, 3));
+  std::unique_ptr<ServerWindow> child =
+      CreateChildWindow(viz::FrameSinkId(1, 3));
   event_dispatcher_delegate->SetFocusedWindowFromEventDispatcher(child.get());
 
   // With a focused window the event should be dispatched.
@@ -749,7 +751,8 @@
   }
 
   // Set focused window for EventDispatcher dispatches key events.
-  std::unique_ptr<ServerWindow> child = CreateChildWindow(WindowId(1, 3));
+  std::unique_ptr<ServerWindow> child =
+      CreateChildWindow(viz::FrameSinkId(1, 3));
   event_dispatcher_delegate->SetFocusedWindowFromEventDispatcher(child.get());
 
   // Dispatch for ANY, which should trigger PRE and not call
@@ -773,7 +776,8 @@
 
 TEST_P(EventDispatcherTest, Capture) {
   ServerWindow* root = root_window();
-  std::unique_ptr<ServerWindow> child = CreateChildWindow(WindowId(1, 3));
+  std::unique_ptr<ServerWindow> child =
+      CreateChildWindow(viz::FrameSinkId(1, 3));
 
   root->SetBounds(gfx::Rect(0, 0, 100, 100));
   child->SetBounds(gfx::Rect(10, 10, 20, 20));
@@ -819,7 +823,8 @@
 }
 
 TEST_P(EventDispatcherTest, CaptureMultipleMouseButtons) {
-  std::unique_ptr<ServerWindow> child = CreateChildWindow(WindowId(1, 3));
+  std::unique_ptr<ServerWindow> child =
+      CreateChildWindow(viz::FrameSinkId(1, 3));
 
   root_window()->SetBounds(gfx::Rect(0, 0, 100, 100));
   child->SetBounds(gfx::Rect(10, 10, 20, 20));
@@ -865,7 +870,8 @@
 }
 
 TEST_P(EventDispatcherTest, ClientAreaGoesToOwner) {
-  std::unique_ptr<ServerWindow> child = CreateChildWindow(WindowId(1, 3));
+  std::unique_ptr<ServerWindow> child =
+      CreateChildWindow(viz::FrameSinkId(1, 3));
 
   root_window()->SetBounds(gfx::Rect(0, 0, 100, 100));
   child->SetBounds(gfx::Rect(10, 10, 20, 20));
@@ -938,7 +944,8 @@
 }
 
 TEST_P(EventDispatcherTest, AdditionalClientArea) {
-  std::unique_ptr<ServerWindow> child = CreateChildWindow(WindowId(1, 3));
+  std::unique_ptr<ServerWindow> child =
+      CreateChildWindow(viz::FrameSinkId(1, 3));
 
   root_window()->SetBounds(gfx::Rect(0, 0, 100, 100));
   child->SetBounds(gfx::Rect(10, 10, 20, 20));
@@ -965,7 +972,8 @@
 }
 
 TEST_P(EventDispatcherTest, HitTestMask) {
-  std::unique_ptr<ServerWindow> child = CreateChildWindow(WindowId(1, 3));
+  std::unique_ptr<ServerWindow> child =
+      CreateChildWindow(viz::FrameSinkId(1, 3));
 
   root_window()->SetBounds(gfx::Rect(0, 0, 100, 100));
   child->SetBounds(gfx::Rect(10, 10, 20, 20));
@@ -1006,7 +1014,8 @@
 }
 
 TEST_P(EventDispatcherTest, DontFocusOnSecondDown) {
-  std::unique_ptr<ServerWindow> child = CreateChildWindow(WindowId(1, 3));
+  std::unique_ptr<ServerWindow> child =
+      CreateChildWindow(viz::FrameSinkId(1, 3));
 
   root_window()->SetBounds(gfx::Rect(0, 0, 100, 100));
   child->SetBounds(gfx::Rect(10, 10, 20, 20));
@@ -1029,8 +1038,10 @@
 }
 
 TEST_P(EventDispatcherTest, TwoPointersActive) {
-  std::unique_ptr<ServerWindow> child1 = CreateChildWindow(WindowId(1, 3));
-  std::unique_ptr<ServerWindow> child2 = CreateChildWindow(WindowId(1, 4));
+  std::unique_ptr<ServerWindow> child1 =
+      CreateChildWindow(viz::FrameSinkId(1, 3));
+  std::unique_ptr<ServerWindow> child2 =
+      CreateChildWindow(viz::FrameSinkId(1, 4));
 
   root_window()->SetBounds(gfx::Rect(0, 0, 100, 100));
   child1->SetBounds(gfx::Rect(10, 10, 20, 20));
@@ -1101,7 +1112,8 @@
 }
 
 TEST_P(EventDispatcherTest, DestroyWindowWhileGettingEvents) {
-  std::unique_ptr<ServerWindow> child = CreateChildWindow(WindowId(1, 3));
+  std::unique_ptr<ServerWindow> child =
+      CreateChildWindow(viz::FrameSinkId(1, 3));
 
   root_window()->SetBounds(gfx::Rect(0, 0, 100, 100));
   child->SetBounds(gfx::Rect(10, 10, 20, 20));
@@ -1135,7 +1147,8 @@
 
 TEST_P(EventDispatcherTest, MouseInExtendedHitTestRegion) {
   ServerWindow* root = root_window();
-  std::unique_ptr<ServerWindow> child = CreateChildWindow(WindowId(1, 3));
+  std::unique_ptr<ServerWindow> child =
+      CreateChildWindow(viz::FrameSinkId(1, 3));
 
   root->SetBounds(gfx::Rect(0, 0, 100, 100));
   child->SetBounds(gfx::Rect(10, 10, 20, 20));
@@ -1187,8 +1200,10 @@
 }
 
 TEST_P(EventDispatcherTest, WheelWhileDown) {
-  std::unique_ptr<ServerWindow> child1 = CreateChildWindow(WindowId(1, 3));
-  std::unique_ptr<ServerWindow> child2 = CreateChildWindow(WindowId(1, 4));
+  std::unique_ptr<ServerWindow> child1 =
+      CreateChildWindow(viz::FrameSinkId(1, 3));
+  std::unique_ptr<ServerWindow> child2 =
+      CreateChildWindow(viz::FrameSinkId(1, 4));
 
   root_window()->SetBounds(gfx::Rect(0, 0, 100, 100));
   child1->SetBounds(gfx::Rect(10, 10, 20, 20));
@@ -1218,7 +1233,8 @@
 // appropriate target window.
 TEST_P(EventDispatcherTest, SetExplicitCapture) {
   ServerWindow* root = root_window();
-  std::unique_ptr<ServerWindow> child = CreateChildWindow(WindowId(1, 3));
+  std::unique_ptr<ServerWindow> child =
+      CreateChildWindow(viz::FrameSinkId(1, 3));
 
   root->SetBounds(gfx::Rect(0, 0, 100, 100));
   child->SetBounds(gfx::Rect(10, 10, 20, 20));
@@ -1320,7 +1336,8 @@
 // capture.
 TEST_P(EventDispatcherTest, ExplicitCaptureOverridesImplicitCapture) {
   ServerWindow* root = root_window();
-  std::unique_ptr<ServerWindow> child = CreateChildWindow(WindowId(1, 3));
+  std::unique_ptr<ServerWindow> child =
+      CreateChildWindow(viz::FrameSinkId(1, 3));
 
   root->SetBounds(gfx::Rect(0, 0, 100, 100));
   child->SetBounds(gfx::Rect(10, 10, 20, 20));
@@ -1451,8 +1468,10 @@
 // Tests that when explicit capture is changed, that the previous window with
 // capture is no longer being observed.
 TEST_P(EventDispatcherTest, UpdatingCaptureStopsObservingPreviousCapture) {
-  std::unique_ptr<ServerWindow> child1 = CreateChildWindow(WindowId(1, 3));
-  std::unique_ptr<ServerWindow> child2 = CreateChildWindow(WindowId(1, 4));
+  std::unique_ptr<ServerWindow> child1 =
+      CreateChildWindow(viz::FrameSinkId(1, 3));
+  std::unique_ptr<ServerWindow> child2 =
+      CreateChildWindow(viz::FrameSinkId(1, 4));
 
   root_window()->SetBounds(gfx::Rect(0, 0, 100, 100));
   child1->SetBounds(gfx::Rect(10, 10, 20, 20));
@@ -1474,7 +1493,8 @@
 // Tests that destroying a window with explicit capture clears the capture
 // state.
 TEST_P(EventDispatcherTest, DestroyingCaptureWindowRemovesExplicitCapture) {
-  std::unique_ptr<ServerWindow> child = CreateChildWindow(WindowId(1, 3));
+  std::unique_ptr<ServerWindow> child =
+      CreateChildWindow(viz::FrameSinkId(1, 3));
   child->SetBounds(gfx::Rect(10, 10, 20, 20));
 
   EventDispatcher* dispatcher = event_dispatcher();
@@ -1516,7 +1536,8 @@
 }
 
 TEST_P(EventDispatcherTest, ProcessPointerEvents) {
-  std::unique_ptr<ServerWindow> child = CreateChildWindow(WindowId(1, 3));
+  std::unique_ptr<ServerWindow> child =
+      CreateChildWindow(viz::FrameSinkId(1, 3));
 
   root_window()->SetBounds(gfx::Rect(0, 0, 100, 100));
   child->SetBounds(gfx::Rect(10, 10, 20, 20));
@@ -1566,7 +1587,8 @@
 }
 
 TEST_P(EventDispatcherTest, ResetClearsPointerDown) {
-  std::unique_ptr<ServerWindow> child = CreateChildWindow(WindowId(1, 3));
+  std::unique_ptr<ServerWindow> child =
+      CreateChildWindow(viz::FrameSinkId(1, 3));
 
   root_window()->SetBounds(gfx::Rect(0, 0, 100, 100));
   child->SetBounds(gfx::Rect(10, 10, 20, 20));
@@ -1605,8 +1627,8 @@
 
 // Tests that events on a parent of a modal window are blocked.
 TEST_P(EventDispatcherTest, ModalWindowEventOnModalParent) {
-  std::unique_ptr<ServerWindow> w1 = CreateChildWindow(WindowId(1, 3));
-  std::unique_ptr<ServerWindow> w2 = CreateChildWindow(WindowId(1, 5));
+  std::unique_ptr<ServerWindow> w1 = CreateChildWindow(viz::FrameSinkId(1, 3));
+  std::unique_ptr<ServerWindow> w2 = CreateChildWindow(viz::FrameSinkId(1, 5));
 
   root_window()->SetBounds(gfx::Rect(0, 0, 100, 100));
   w1->SetBounds(gfx::Rect(10, 10, 30, 30));
@@ -1658,8 +1680,8 @@
 
 // Tests that events on a modal child target the modal child itself.
 TEST_P(EventDispatcherTest, ModalWindowEventOnModalChild) {
-  std::unique_ptr<ServerWindow> w1 = CreateChildWindow(WindowId(1, 3));
-  std::unique_ptr<ServerWindow> w2 = CreateChildWindow(WindowId(1, 5));
+  std::unique_ptr<ServerWindow> w1 = CreateChildWindow(viz::FrameSinkId(1, 3));
+  std::unique_ptr<ServerWindow> w2 = CreateChildWindow(viz::FrameSinkId(1, 5));
 
   root_window()->SetBounds(gfx::Rect(0, 0, 100, 100));
   w1->SetBounds(gfx::Rect(10, 10, 30, 30));
@@ -1692,9 +1714,9 @@
 // Tests that events on an unrelated window are not affected by the modal
 // window.
 TEST_P(EventDispatcherTest, ModalWindowEventOnUnrelatedWindow) {
-  std::unique_ptr<ServerWindow> w1 = CreateChildWindow(WindowId(1, 3));
-  std::unique_ptr<ServerWindow> w2 = CreateChildWindow(WindowId(1, 5));
-  std::unique_ptr<ServerWindow> w3 = CreateChildWindow(WindowId(1, 6));
+  std::unique_ptr<ServerWindow> w1 = CreateChildWindow(viz::FrameSinkId(1, 3));
+  std::unique_ptr<ServerWindow> w2 = CreateChildWindow(viz::FrameSinkId(1, 5));
+  std::unique_ptr<ServerWindow> w3 = CreateChildWindow(viz::FrameSinkId(1, 6));
 
   root_window()->SetBounds(gfx::Rect(0, 0, 100, 100));
   w1->SetBounds(gfx::Rect(10, 10, 30, 30));
@@ -1727,10 +1749,10 @@
 
 // Tests that events on a descendant of a modal parent target the modal child.
 TEST_P(EventDispatcherTest, ModalWindowEventOnDescendantOfModalParent) {
-  std::unique_ptr<ServerWindow> w1 = CreateChildWindow(WindowId(1, 3));
+  std::unique_ptr<ServerWindow> w1 = CreateChildWindow(viz::FrameSinkId(1, 3));
   std::unique_ptr<ServerWindow> w11 =
-      CreateChildWindowWithParent(WindowId(1, 4), w1.get());
-  std::unique_ptr<ServerWindow> w2 = CreateChildWindow(WindowId(1, 5));
+      CreateChildWindowWithParent(viz::FrameSinkId(1, 4), w1.get());
+  std::unique_ptr<ServerWindow> w2 = CreateChildWindow(viz::FrameSinkId(1, 5));
 
   root_window()->SetBounds(gfx::Rect(0, 0, 100, 100));
   w1->SetBounds(gfx::Rect(10, 10, 30, 30));
@@ -1758,10 +1780,10 @@
        ModalWindowEventOnDescendantOfModalParentWithFallback) {
   test_event_dispatcher_delegate()->EnableFallbackToRoot();
 
-  std::unique_ptr<ServerWindow> w1 = CreateChildWindow(WindowId(1, 3));
+  std::unique_ptr<ServerWindow> w1 = CreateChildWindow(viz::FrameSinkId(1, 3));
   std::unique_ptr<ServerWindow> w11 =
-      CreateChildWindowWithParent(WindowId(1, 4), w1.get());
-  std::unique_ptr<ServerWindow> w2 = CreateChildWindow(WindowId(1, 5));
+      CreateChildWindowWithParent(viz::FrameSinkId(1, 4), w1.get());
+  std::unique_ptr<ServerWindow> w2 = CreateChildWindow(viz::FrameSinkId(1, 5));
 
   root_window()->SetBounds(gfx::Rect(0, 0, 100, 100));
   w1->SetBounds(gfx::Rect(10, 10, 30, 30));
@@ -1794,7 +1816,7 @@
 
 // Tests that events on a system modal window target the modal window itself.
 TEST_P(EventDispatcherTest, ModalWindowEventOnSystemModal) {
-  std::unique_ptr<ServerWindow> w1 = CreateChildWindow(WindowId(1, 3));
+  std::unique_ptr<ServerWindow> w1 = CreateChildWindow(viz::FrameSinkId(1, 3));
 
   root_window()->SetBounds(gfx::Rect(0, 0, 100, 100));
   w1->SetBounds(gfx::Rect(10, 10, 30, 30));
@@ -1823,7 +1845,7 @@
 
 // Tests that events outside of system modal window target the modal window.
 TEST_P(EventDispatcherTest, ModalWindowEventOutsideSystemModal) {
-  std::unique_ptr<ServerWindow> w1 = CreateChildWindow(WindowId(1, 3));
+  std::unique_ptr<ServerWindow> w1 = CreateChildWindow(viz::FrameSinkId(1, 3));
 
   root_window()->SetBounds(gfx::Rect(0, 0, 100, 100));
   w1->SetBounds(gfx::Rect(10, 10, 30, 30));
@@ -1848,7 +1870,7 @@
 TEST_P(EventDispatcherTest, ModalWindowEventOutsideSystemModalWithFallback) {
   test_event_dispatcher_delegate()->EnableFallbackToRoot();
 
-  std::unique_ptr<ServerWindow> w1 = CreateChildWindow(WindowId(1, 3));
+  std::unique_ptr<ServerWindow> w1 = CreateChildWindow(viz::FrameSinkId(1, 3));
 
   root_window()->SetBounds(gfx::Rect(0, 0, 100, 100));
   w1->SetBounds(gfx::Rect(10, 10, 30, 30));
@@ -1878,13 +1900,13 @@
 
 // Tests events on a sub-window of system modal window target the window itself.
 TEST_P(EventDispatcherTest, ModalWindowEventSubWindowSystemModal) {
-  std::unique_ptr<ServerWindow> w1 = CreateChildWindow(WindowId(1, 3));
+  std::unique_ptr<ServerWindow> w1 = CreateChildWindow(viz::FrameSinkId(1, 3));
   w1->SetModalType(MODAL_TYPE_SYSTEM);
   event_dispatcher()->AddSystemModalWindow(w1.get());
 
   std::unique_ptr<ServerWindow> w2 =
-      CreateChildWindowWithParent(WindowId(1, 4), w1.get());
-  std::unique_ptr<ServerWindow> w3 = CreateChildWindow(WindowId(1, 5));
+      CreateChildWindowWithParent(viz::FrameSinkId(1, 4), w1.get());
+  std::unique_ptr<ServerWindow> w3 = CreateChildWindow(viz::FrameSinkId(1, 5));
 
   root_window()->SetBounds(gfx::Rect(0, 0, 100, 100));
   w1->SetBounds(gfx::Rect(10, 10, 30, 30));
@@ -1929,10 +1951,10 @@
 
 // Tests that setting capture to a descendant of a modal parent fails.
 TEST_P(EventDispatcherTest, ModalWindowSetCaptureDescendantOfModalParent) {
-  std::unique_ptr<ServerWindow> w1 = CreateChildWindow(WindowId(1, 3));
+  std::unique_ptr<ServerWindow> w1 = CreateChildWindow(viz::FrameSinkId(1, 3));
   std::unique_ptr<ServerWindow> w11 =
-      CreateChildWindowWithParent(WindowId(1, 4), w1.get());
-  std::unique_ptr<ServerWindow> w2 = CreateChildWindow(WindowId(1, 5));
+      CreateChildWindowWithParent(viz::FrameSinkId(1, 4), w1.get());
+  std::unique_ptr<ServerWindow> w2 = CreateChildWindow(viz::FrameSinkId(1, 5));
 
   root_window()->SetBounds(gfx::Rect(0, 0, 100, 100));
   w1->SetBounds(gfx::Rect(10, 10, 30, 30));
@@ -1948,9 +1970,9 @@
 
 // Tests that setting capture to a window unrelated to a modal parent works.
 TEST_P(EventDispatcherTest, ModalWindowSetCaptureUnrelatedWindow) {
-  std::unique_ptr<ServerWindow> w1 = CreateChildWindow(WindowId(1, 3));
-  std::unique_ptr<ServerWindow> w2 = CreateChildWindow(WindowId(1, 4));
-  std::unique_ptr<ServerWindow> w3 = CreateChildWindow(WindowId(1, 5));
+  std::unique_ptr<ServerWindow> w1 = CreateChildWindow(viz::FrameSinkId(1, 3));
+  std::unique_ptr<ServerWindow> w2 = CreateChildWindow(viz::FrameSinkId(1, 4));
+  std::unique_ptr<ServerWindow> w3 = CreateChildWindow(viz::FrameSinkId(1, 5));
 
   root_window()->SetBounds(gfx::Rect(0, 0, 100, 100));
   w1->SetBounds(gfx::Rect(10, 10, 30, 30));
@@ -1966,8 +1988,8 @@
 
 // Tests that setting capture fails when there is a system modal window.
 TEST_P(EventDispatcherTest, ModalWindowSystemSetCapture) {
-  std::unique_ptr<ServerWindow> w1 = CreateChildWindow(WindowId(1, 3));
-  std::unique_ptr<ServerWindow> w2 = CreateChildWindow(WindowId(1, 4));
+  std::unique_ptr<ServerWindow> w1 = CreateChildWindow(viz::FrameSinkId(1, 3));
+  std::unique_ptr<ServerWindow> w2 = CreateChildWindow(viz::FrameSinkId(1, 4));
 
   root_window()->SetBounds(gfx::Rect(0, 0, 100, 100));
   w1->SetBounds(gfx::Rect(10, 10, 30, 30));
@@ -1982,9 +2004,9 @@
 
 // Tests having multiple system modal windows.
 TEST_P(EventDispatcherTest, ModalWindowMultipleSystemModals) {
-  std::unique_ptr<ServerWindow> w1 = CreateChildWindow(WindowId(1, 3));
-  std::unique_ptr<ServerWindow> w2 = CreateChildWindow(WindowId(1, 4));
-  std::unique_ptr<ServerWindow> w3 = CreateChildWindow(WindowId(1, 5));
+  std::unique_ptr<ServerWindow> w1 = CreateChildWindow(viz::FrameSinkId(1, 3));
+  std::unique_ptr<ServerWindow> w2 = CreateChildWindow(viz::FrameSinkId(1, 4));
+  std::unique_ptr<ServerWindow> w3 = CreateChildWindow(viz::FrameSinkId(1, 5));
 
   w2->SetVisible(false);
 
@@ -2027,11 +2049,11 @@
 }
 
 TEST_P(EventDispatcherTest, CaptureNotResetOnParentChange) {
-  std::unique_ptr<ServerWindow> w1 = CreateChildWindow(WindowId(1, 3));
+  std::unique_ptr<ServerWindow> w1 = CreateChildWindow(viz::FrameSinkId(1, 3));
   w1->set_event_targeting_policy(mojom::EventTargetingPolicy::DESCENDANTS_ONLY);
   std::unique_ptr<ServerWindow> w11 =
-      CreateChildWindowWithParent(WindowId(1, 4), w1.get());
-  std::unique_ptr<ServerWindow> w2 = CreateChildWindow(WindowId(1, 5));
+      CreateChildWindowWithParent(viz::FrameSinkId(1, 4), w1.get());
+  std::unique_ptr<ServerWindow> w2 = CreateChildWindow(viz::FrameSinkId(1, 5));
   w2->set_event_targeting_policy(mojom::EventTargetingPolicy::DESCENDANTS_ONLY);
 
   root_window()->SetBounds(gfx::Rect(0, 0, 100, 100));
@@ -2062,7 +2084,8 @@
 }
 
 TEST_P(EventDispatcherTest, ChangeCaptureFromClientToNonclient) {
-  std::unique_ptr<ServerWindow> child = CreateChildWindow(WindowId(1, 3));
+  std::unique_ptr<ServerWindow> child =
+      CreateChildWindow(viz::FrameSinkId(1, 3));
   event_dispatcher()->SetCaptureWindow(child.get(), kNonclientAreaId);
   EXPECT_EQ(kNonclientAreaId,
             event_dispatcher()->capture_window_client_id());
@@ -2080,7 +2103,8 @@
   ServerWindow* root = root_window();
   root->set_event_targeting_policy(
       mojom::EventTargetingPolicy::DESCENDANTS_ONLY);
-  std::unique_ptr<ServerWindow> child = CreateChildWindow(WindowId(1, 3));
+  std::unique_ptr<ServerWindow> child =
+      CreateChildWindow(viz::FrameSinkId(1, 3));
 
   root->SetBounds(gfx::Rect(0, 0, 100, 100));
   child->SetBounds(gfx::Rect(10, 10, 20, 20));
@@ -2108,7 +2132,8 @@
   ServerWindow* root = root_window();
   root->set_event_targeting_policy(
       mojom::EventTargetingPolicy::DESCENDANTS_ONLY);
-  std::unique_ptr<ServerWindow> child = CreateChildWindow(WindowId(1, 3));
+  std::unique_ptr<ServerWindow> child =
+      CreateChildWindow(viz::FrameSinkId(1, 3));
 
   root->SetBounds(gfx::Rect(0, 0, 100, 100));
   child->SetBounds(gfx::Rect(10, 10, 20, 20));
@@ -2143,8 +2168,8 @@
   ServerWindow* root = root_window();
   root->set_event_targeting_policy(
       mojom::EventTargetingPolicy::DESCENDANTS_ONLY);
-  std::unique_ptr<ServerWindow> c1 = CreateChildWindow(WindowId(1, 3));
-  std::unique_ptr<ServerWindow> c2 = CreateChildWindow(WindowId(1, 4));
+  std::unique_ptr<ServerWindow> c1 = CreateChildWindow(viz::FrameSinkId(1, 3));
+  std::unique_ptr<ServerWindow> c2 = CreateChildWindow(viz::FrameSinkId(1, 4));
 
   root->SetBounds(gfx::Rect(0, 0, 100, 100));
   c1->SetBounds(gfx::Rect(10, 10, 20, 20));
@@ -2177,7 +2202,7 @@
 TEST_P(EventDispatcherTest, MousePointerClearedOnDestroy) {
   root_window()->set_event_targeting_policy(
       mojom::EventTargetingPolicy::DESCENDANTS_ONLY);
-  std::unique_ptr<ServerWindow> c1 = CreateChildWindow(WindowId(1, 3));
+  std::unique_ptr<ServerWindow> c1 = CreateChildWindow(viz::FrameSinkId(1, 3));
 
   root_window()->SetBounds(gfx::Rect(0, 0, 100, 100));
   c1->SetBounds(gfx::Rect(10, 10, 20, 20));
@@ -2194,7 +2219,8 @@
 }
 
 TEST_P(EventDispatcherTest, LocationHonorsTransform) {
-  std::unique_ptr<ServerWindow> child = CreateChildWindow(WindowId(1, 3));
+  std::unique_ptr<ServerWindow> child =
+      CreateChildWindow(viz::FrameSinkId(1, 3));
 
   gfx::Transform transform;
   transform.Scale(SkIntToMScalar(2), SkIntToMScalar(2));
@@ -2246,7 +2272,8 @@
             event_dispatcher_delegate->last_cursor_visibility());
 
   // Set focused window for EventDispatcher dispatches key events.
-  std::unique_ptr<ServerWindow> child = CreateChildWindow(WindowId(1, 3));
+  std::unique_ptr<ServerWindow> child =
+      CreateChildWindow(viz::FrameSinkId(1, 3));
   event_dispatcher_delegate->SetFocusedWindowFromEventDispatcher(child.get());
 
   ui::KeyEvent key(ui::ET_KEY_PRESSED, ui::VKEY_A, ui::EF_NONE);
@@ -2266,7 +2293,8 @@
   // Set focused window for EventDispatcher dispatches key events.
   TestEventDispatcherDelegate* event_dispatcher_delegate =
       test_event_dispatcher_delegate();
-  std::unique_ptr<ServerWindow> child = CreateChildWindow(WindowId(1, 3));
+  std::unique_ptr<ServerWindow> child =
+      CreateChildWindow(viz::FrameSinkId(1, 3));
   event_dispatcher_delegate->SetFocusedWindowFromEventDispatcher(child.get());
 
   ui::KeyEvent key(ui::ET_KEY_PRESSED, ui::VKEY_A, ui::EF_NONE);
@@ -2286,7 +2314,8 @@
   // Set focused window for EventDispatcher dispatches key events.
   TestEventDispatcherDelegate* event_dispatcher_delegate =
       test_event_dispatcher_delegate();
-  std::unique_ptr<ServerWindow> child = CreateChildWindow(WindowId(1, 3));
+  std::unique_ptr<ServerWindow> child =
+      CreateChildWindow(viz::FrameSinkId(1, 3));
   event_dispatcher_delegate->SetFocusedWindowFromEventDispatcher(child.get());
 
   ui::KeyEvent key(ui::ET_KEY_PRESSED, ui::VKEY_A, ui::EF_NONE);
@@ -2299,9 +2328,9 @@
 
 TEST_P(EventDispatcherTest, ChildModal) {
   std::unique_ptr<ServerWindow> modal_parent =
-      CreateChildWindow(WindowId(1, 3));
+      CreateChildWindow(viz::FrameSinkId(1, 3));
   std::unique_ptr<ServerWindow> child_modal_window =
-      CreateChildWindow(WindowId(1, 4));
+      CreateChildWindow(viz::FrameSinkId(1, 4));
 
   root_window()->SetBounds(gfx::Rect(0, 0, 100, 100));
   modal_parent->SetBounds(gfx::Rect(10, 10, 30, 30));
@@ -2325,12 +2354,12 @@
 
 TEST_P(EventDispatcherTest, DontCancelWhenMovedToSeparateDisplay) {
   TestServerWindowDelegate window_delegate2(viz_host_proxy());
-  ServerWindow root2(&window_delegate2, WindowId(1, 100));
+  ServerWindow root2(&window_delegate2, viz::FrameSinkId(1, 100));
   root2.set_is_activation_parent(true);
   window_delegate2.set_root_window(&root2);
   root2.SetVisible(true);
 
-  std::unique_ptr<ServerWindow> w1 = CreateChildWindow(WindowId(1, 3));
+  std::unique_ptr<ServerWindow> w1 = CreateChildWindow(viz::FrameSinkId(1, 3));
   event_dispatcher()->SetCaptureWindow(w1.get(), kClientAreaId);
   ASSERT_EQ(w1.get(), event_dispatcher()->capture_window());
   test_event_dispatcher_delegate()->set_root(&root2);
@@ -2346,8 +2375,8 @@
   event_dispatcher()->modal_window_controller()->SetBlockingContainers(
       {blocking_containers});
 
-  std::unique_ptr<ServerWindow> w1 = CreateChildWindow(WindowId(1, 3));
-  std::unique_ptr<ServerWindow> w2 = CreateChildWindow(WindowId(1, 4));
+  std::unique_ptr<ServerWindow> w1 = CreateChildWindow(viz::FrameSinkId(1, 3));
+  std::unique_ptr<ServerWindow> w2 = CreateChildWindow(viz::FrameSinkId(1, 4));
 
   root_window()->SetBounds(gfx::Rect(0, 0, 100, 100));
   root_window()->set_is_activation_parent(true);
@@ -2376,7 +2405,8 @@
   if (!is_event_processing_async())
     return;
 
-  std::unique_ptr<ServerWindow> child = CreateChildWindow(WindowId(1, 3));
+  std::unique_ptr<ServerWindow> child =
+      CreateChildWindow(viz::FrameSinkId(1, 3));
 
   root_window()->SetBounds(gfx::Rect(0, 0, 100, 100));
   child->SetBounds(gfx::Rect(10, 10, 20, 20));
@@ -2398,7 +2428,8 @@
 }
 
 TEST_P(EventDispatcherVizTargeterTest, ProcessEvent) {
-  std::unique_ptr<ServerWindow> child = CreateChildWindow(WindowId(1, 3));
+  std::unique_ptr<ServerWindow> child =
+      CreateChildWindow(viz::FrameSinkId(1, 3));
 
   root_window()->SetBounds(gfx::Rect(0, 0, 100, 100));
   child->SetBounds(gfx::Rect(10, 10, 20, 20));
diff --git a/services/ui/ws/focus_controller_unittest.cc b/services/ui/ws/focus_controller_unittest.cc
index 985334d..4b8498f 100644
--- a/services/ui/ws/focus_controller_unittest.cc
+++ b/services/ui/ws/focus_controller_unittest.cc
@@ -92,21 +92,21 @@
 
 TEST_F(FocusControllerTest, Basic) {
   TestServerWindowDelegate server_window_delegate(viz_host_proxy());
-  ServerWindow root(&server_window_delegate, WindowId(1, 1));
+  ServerWindow root(&server_window_delegate, viz::FrameSinkId(1, 1));
   server_window_delegate.set_root_window(&root);
   root.SetVisible(true);
   root.set_is_activation_parent(true);
-  ServerWindow child(&server_window_delegate, WindowId(1, 2));
+  ServerWindow child(&server_window_delegate, viz::FrameSinkId(1, 2));
   child.SetVisible(true);
   child.set_is_activation_parent(true);
   root.Add(&child);
-  ServerWindow child_child(&server_window_delegate, WindowId(1, 3));
+  ServerWindow child_child(&server_window_delegate, viz::FrameSinkId(1, 3));
   child_child.SetVisible(true);
   child.Add(&child_child);
   child_child.set_is_activation_parent(true);
 
   // Sibling of |child|.
-  ServerWindow child2(&server_window_delegate, WindowId(1, 4));
+  ServerWindow child2(&server_window_delegate, viz::FrameSinkId(1, 4));
   child2.SetVisible(true);
   root.Add(&child2);
 
@@ -191,19 +191,19 @@
 
 TEST_F(FocusControllerTest, ActiveWindowMovesToDifferentDisplay) {
   TestServerWindowDelegate2 server_window_delegate(viz_host_proxy());
-  ServerWindow root1(&server_window_delegate, WindowId(1, 1));
+  ServerWindow root1(&server_window_delegate, viz::FrameSinkId(1, 1));
   root1.SetVisible(true);
   root1.set_is_activation_parent(true);
-  ServerWindow root2(&server_window_delegate, WindowId(1, 2));
+  ServerWindow root2(&server_window_delegate, viz::FrameSinkId(1, 2));
   root2.SetVisible(true);
   root2.set_is_activation_parent(true);
 
-  ServerWindow child(&server_window_delegate, WindowId(1, 3));
+  ServerWindow child(&server_window_delegate, viz::FrameSinkId(1, 3));
   root1.Add(&child);
   child.SetVisible(true);
   child.set_is_activation_parent(true);
 
-  ServerWindow child_child(&server_window_delegate, WindowId(1, 4));
+  ServerWindow child_child(&server_window_delegate, viz::FrameSinkId(1, 4));
   child.Add(&child_child);
   child_child.SetVisible(true);
 
diff --git a/services/ui/ws/ids.h b/services/ui/ws/ids.h
index 66ff58e..7713711 100644
--- a/services/ui/ws/ids.h
+++ b/services/ui/ws/ids.h
@@ -7,15 +7,8 @@
 
 #include <stdint.h>
 
-#include <string>
-#include <tuple>
-
-#include "base/containers/hash_tables.h"
-#include "base/hash.h"
-#include "base/strings/stringprintf.h"
 #include "components/viz/common/surfaces/frame_sink_id.h"
 #include "services/ui/common/types.h"
-#include "services/ui/common/util.h"
 
 namespace ui {
 namespace ws {
@@ -26,75 +19,14 @@
 
 const Id kInvalidTransportId = 0;
 
-// A client id used to indicate WindowServer.
+// Client id used to indicate the window was created by the WindowServer.
 const ClientSpecificId kWindowServerClientId = 1;
 
-// Every window has a unique id associated with it (WindowId). The id is a
-// combination of the id assigned to the client (the high order bits) and
-// a unique id for the window. Each client (WindowTree) refers to the window
-// by an id assigned by the client (ClientWindowId). To facilitate this
-// WindowTree maintains a mapping between WindowId and ClientWindowId.
-//
-// This model works when the client initiates creation of windows, which is
-// the typical use case. Embed roots and the WindowManager are special, they
-// get access to windows created by other clients. These clients see the
-// id assigned on the server. Such clients have to take care that they only
-// create windows using their client id. To do otherwise could result in
-// multiple windows having the same ClientWindowId. WindowTree enforces
-// that embed roots use the client id in creating the window id to avoid
-// possible conflicts.
-
 // Used for ids assigned by the client.
 using ClientWindowId = viz::FrameSinkId;
 
-struct WindowId {
-  constexpr WindowId(ClientSpecificId client_id, ClientSpecificId window_id)
-      : client_id(client_id), window_id(window_id) {}
-  constexpr WindowId() : client_id(0), window_id(0) {}
-
-  bool operator==(const WindowId& other) const {
-    return other.client_id == client_id && other.window_id == window_id;
-  }
-
-  bool operator!=(const WindowId& other) const { return !(*this == other); }
-
-  bool operator<(const WindowId& other) const {
-    return std::tie(client_id, window_id) <
-           std::tie(other.client_id, other.window_id);
-  }
-
-  std::string ToString() const {
-    return base::StringPrintf("%u:%u", client_id, window_id);
-  }
-
-  ClientSpecificId client_id;
-  ClientSpecificId window_id;
-};
-
-inline WindowId WindowIdFromTransportId(Id id) {
-  return WindowId(ClientIdFromTransportId(id),
-                  ClientWindowIdFromTransportId(id));
-}
-
-// Returns a WindowId that is reserved to indicate no window. That is, no window
-// will ever be created with this id.
-inline WindowId InvalidWindowId() {
-  return WindowId(kInvalidClientId, 0);
-}
-
-// Returns a root window id with a given index offset.
-inline WindowId RootWindowId(uint16_t index) {
-  return WindowId(kWindowServerClientId, 2 + index);
-}
-
 using ClientWindowIdHash = viz::FrameSinkIdHash;
 
-struct WindowIdHash {
-  size_t operator()(const WindowId& id) const {
-    return base::HashInts(id.client_id, id.window_id);
-  }
-};
-
 }  // namespace ws
 }  // namespace ui
 
diff --git a/services/ui/ws/modal_window_controller_unittest.cc b/services/ui/ws/modal_window_controller_unittest.cc
index d254f6a..9eb1dbe1 100644
--- a/services/ui/ws/modal_window_controller_unittest.cc
+++ b/services/ui/ws/modal_window_controller_unittest.cc
@@ -29,11 +29,11 @@
 
 TEST_F(ModalWindowControllerTest, MinContainer) {
   TestServerWindowDelegate window_delegate(viz_host_proxy());
-  ServerWindow root_window(&window_delegate, WindowId(1, 1));
+  ServerWindow root_window(&window_delegate, viz::FrameSinkId(1, 1));
   window_delegate.set_root_window(&root_window);
-  ServerWindow container1(&window_delegate, WindowId(1, 2));
-  ServerWindow container2(&window_delegate, WindowId(1, 3));
-  ServerWindow container3(&window_delegate, WindowId(1, 4));
+  ServerWindow container1(&window_delegate, viz::FrameSinkId(1, 2));
+  ServerWindow container2(&window_delegate, viz::FrameSinkId(1, 3));
+  ServerWindow container3(&window_delegate, viz::FrameSinkId(1, 4));
 
   root_window.SetVisible(true);
   container1.SetVisible(true);
@@ -47,7 +47,7 @@
   blocking_containers[0].min_container = &container2;
   modal_window_controller.SetBlockingContainers(blocking_containers);
 
-  ServerWindow window(&window_delegate, WindowId(1, 5));
+  ServerWindow window(&window_delegate, viz::FrameSinkId(1, 5));
   window.SetVisible(true);
 
   // Window should be blocked when not attached to hierarchy.
@@ -75,11 +75,11 @@
 
 TEST_F(ModalWindowControllerTest, SystemModalContainer) {
   TestServerWindowDelegate window_delegate(viz_host_proxy());
-  ServerWindow root_window(&window_delegate, WindowId(1, 1));
+  ServerWindow root_window(&window_delegate, viz::FrameSinkId(1, 1));
   window_delegate.set_root_window(&root_window);
-  ServerWindow container1(&window_delegate, WindowId(1, 2));
-  ServerWindow container2(&window_delegate, WindowId(1, 3));
-  ServerWindow container3(&window_delegate, WindowId(1, 4));
+  ServerWindow container1(&window_delegate, viz::FrameSinkId(1, 2));
+  ServerWindow container2(&window_delegate, viz::FrameSinkId(1, 3));
+  ServerWindow container3(&window_delegate, viz::FrameSinkId(1, 4));
 
   root_window.SetVisible(true);
   container1.SetVisible(true);
@@ -97,13 +97,13 @@
   blocking_containers[0].min_container = &container2;
   modal_window_controller.SetBlockingContainers(blocking_containers);
 
-  ServerWindow window(&window_delegate, WindowId(1, 5));
+  ServerWindow window(&window_delegate, viz::FrameSinkId(1, 5));
   window.SetVisible(true);
 
   container2.Add(&window);
   EXPECT_FALSE(modal_window_controller.IsWindowBlocked(&window));
 
-  ServerWindow modal_window(&window_delegate, WindowId(1, 6));
+  ServerWindow modal_window(&window_delegate, viz::FrameSinkId(1, 6));
   modal_window.SetModalType(MODAL_TYPE_SYSTEM);
   modal_window_controller.AddSystemModalWindow(&modal_window);
 
diff --git a/services/ui/ws/server_window.cc b/services/ui/ws/server_window.cc
index 5ac232a9..ced7f64 100644
--- a/services/ui/ws/server_window.cc
+++ b/services/ui/ws/server_window.cc
@@ -20,29 +20,15 @@
 namespace ui {
 namespace ws {
 
-ServerWindow::ServerWindow(ServerWindowDelegate* delegate, const WindowId& id)
-    : ServerWindow(delegate,
-                   id,
-                   viz::FrameSinkId(id.client_id, id.window_id),
-                   Properties()) {}
-
 ServerWindow::ServerWindow(ServerWindowDelegate* delegate,
-                           const WindowId& id,
                            const viz::FrameSinkId& frame_sink_id,
                            const Properties& properties)
     : delegate_(delegate),
-      id_(id),
-      parent_(nullptr),
-      stacking_target_(nullptr),
-      transient_parent_(nullptr),
-      modal_type_(MODAL_TYPE_NONE),
-      visible_(false),
+      owning_tree_id_(frame_sink_id.client_id()),
       // Default to kPointer as kNull doesn't change the cursor, it leaves
       // the last non-null cursor.
       cursor_(ui::CursorType::kPointer),
       non_client_cursor_(ui::CursorType::kPointer),
-      opacity_(1),
-      can_focus_(true),
       properties_(properties),
       // Don't notify newly added observers during notification. This causes
       // problems for code that adds an observer as part of an observer
@@ -267,19 +253,6 @@
   return delegate_->GetRootWindowForDrawn(this);
 }
 
-ServerWindow* ServerWindow::GetChildWindow(const WindowId& window_id) {
-  if (id_ == window_id)
-    return this;
-
-  for (ServerWindow* child : children_) {
-    ServerWindow* window = child->GetChildWindow(window_id);
-    if (window)
-      return window;
-  }
-
-  return nullptr;
-}
-
 bool ServerWindow::AddTransientWindow(ServerWindow* child) {
   if (child->transient_parent())
     child->transient_parent()->RemoveTransientWindow(child);
@@ -483,10 +456,9 @@
   if (has_created_compositor_frame_sink_)
     frame_sink = " [" + frame_sink_id_.ToString() + "]";
 
-  return base::StringPrintf("id=%s visible=%s bounds=%s name=%s%s",
-                            id_.ToString().c_str(), visible_ ? "true" : "false",
-                            bounds_.ToString().c_str(), name.c_str(),
-                            frame_sink.c_str());
+  return base::StringPrintf(
+      "visible=%s bounds=%s name=%s%s", visible_ ? "true" : "false",
+      bounds_.ToString().c_str(), name.c_str(), frame_sink.c_str());
 }
 
 void ServerWindow::BuildDebugInfo(const std::string& depth,
diff --git a/services/ui/ws/server_window.h b/services/ui/ws/server_window.h
index 2b13a6e4c..673e8ad 100644
--- a/services/ui/ws/server_window.h
+++ b/services/ui/ws/server_window.h
@@ -52,13 +52,11 @@
   using Properties = std::map<std::string, std::vector<uint8_t>>;
   using Windows = std::vector<ServerWindow*>;
 
-  ServerWindow(ServerWindowDelegate* delegate, const WindowId& id);
   // |frame_sink_id| needs to be an input here as we are creating frame_sink_id_
   // based on the ClientWindowId clients provided.
   ServerWindow(ServerWindowDelegate* delegate,
-               const WindowId& id,
                const viz::FrameSinkId& frame_sink_id,
-               const Properties& properties);
+               const Properties& properties = Properties());
   ~ServerWindow() override;
 
   void AddObserver(ServerWindowObserver* observer);
@@ -78,7 +76,8 @@
       viz::mojom::CompositorFrameSinkRequest request,
       viz::mojom::CompositorFrameSinkClientPtr client);
 
-  const WindowId& id() const { return id_; }
+  // Id of the tree that owns and created this window.
+  ClientSpecificId owning_tree_id() const { return owning_tree_id_; }
 
   const viz::FrameSinkId& frame_sink_id() const { return frame_sink_id_; }
   void UpdateFrameSinkId(const viz::FrameSinkId& frame_sink_id);
@@ -139,10 +138,6 @@
 
   const Windows& children() const { return children_; }
 
-  // Returns the ServerWindow object with the provided |id| if it lies in a
-  // subtree of |this|.
-  ServerWindow* GetChildWindow(const WindowId& id);
-
   // Transient window management.
   // Adding transient child fails if the child window is modal to system.
   bool AddTransientWindow(ServerWindow* child);
@@ -258,30 +253,32 @@
   void OnStackingChanged();
 
   ServerWindowDelegate* const delegate_;
-  const WindowId id_;
+  // This is the client id of the WindowTree that owns this window. This is
+  // cached as the |frame_sink_id_| may change.
+  const ClientSpecificId owning_tree_id_;
   // This may change for embed windows.
   viz::FrameSinkId frame_sink_id_;
   base::Optional<viz::LocalSurfaceId> current_local_surface_id_;
 
-  ServerWindow* parent_;
+  ServerWindow* parent_ = nullptr;
   Windows children_;
 
   // Transient window management.
   // If non-null we're actively restacking transient as the result of a
   // transient ancestor changing.
-  ServerWindow* stacking_target_;
-  ServerWindow* transient_parent_;
+  ServerWindow* stacking_target_ = nullptr;
+  ServerWindow* transient_parent_ = nullptr;
   Windows transient_children_;
 
-  ModalType modal_type_;
-  bool visible_;
+  ModalType modal_type_ = MODAL_TYPE_NONE;
+  bool visible_ = false;
   gfx::Rect bounds_;
   gfx::Insets client_area_;
   std::vector<gfx::Rect> additional_client_areas_;
   ui::CursorData cursor_;
   ui::CursorData non_client_cursor_;
-  float opacity_;
-  bool can_focus_;
+  float opacity_ = 1.0f;
+  bool can_focus_ = true;
   mojom::EventTargetingPolicy event_targeting_policy_ =
       mojom::EventTargetingPolicy::TARGET_AND_DESCENDANTS;
   gfx::Transform transform_;
diff --git a/services/ui/ws/server_window_drawn_tracker_unittest.cc b/services/ui/ws/server_window_drawn_tracker_unittest.cc
index 55f589bd..290d8111 100644
--- a/services/ui/ws/server_window_drawn_tracker_unittest.cc
+++ b/services/ui/ws/server_window_drawn_tracker_unittest.cc
@@ -70,10 +70,10 @@
   DISALLOW_COPY_AND_ASSIGN(TestServerWindowDrawnTrackerObserver);
 };
 
-WindowId MakeWindowId() {
+viz::FrameSinkId MakeFrameSinkId() {
   constexpr int client_id = 1;
   static int window_id = 0;
-  return WindowId(client_id, ++window_id);
+  return viz::FrameSinkId(client_id, ++window_id);
 }
 
 }  // namespace
@@ -96,7 +96,7 @@
 TEST_F(ServerWindowDrawnTrackerTest, ChangeBecauseOfDeletionAndVisibility) {
   TestServerWindowDelegate server_window_delegate(viz_host_proxy());
   std::unique_ptr<ServerWindow> window(
-      new ServerWindow(&server_window_delegate, MakeWindowId()));
+      new ServerWindow(&server_window_delegate, MakeFrameSinkId()));
   server_window_delegate.set_root_window(window.get());
   TestServerWindowDrawnTrackerObserver drawn_observer;
   ServerWindowDrawnTracker tracker(window.get(), &drawn_observer);
@@ -139,10 +139,10 @@
 
 TEST_F(ServerWindowDrawnTrackerTest, ChangeBecauseOfRemovingFromRoot) {
   TestServerWindowDelegate server_window_delegate(viz_host_proxy());
-  ServerWindow root(&server_window_delegate, MakeWindowId());
+  ServerWindow root(&server_window_delegate, MakeFrameSinkId());
   server_window_delegate.set_root_window(&root);
   root.SetVisible(true);
-  ServerWindow child(&server_window_delegate, MakeWindowId());
+  ServerWindow child(&server_window_delegate, MakeFrameSinkId());
   child.SetVisible(true);
   root.Add(&child);
 
@@ -168,14 +168,14 @@
 
 TEST_F(ServerWindowDrawnTrackerTest, ChangeBecauseOfRemovingAncestorFromRoot) {
   TestServerWindowDelegate server_window_delegate(viz_host_proxy());
-  ServerWindow root(&server_window_delegate, MakeWindowId());
+  ServerWindow root(&server_window_delegate, MakeFrameSinkId());
   server_window_delegate.set_root_window(&root);
   root.SetVisible(true);
-  ServerWindow child(&server_window_delegate, MakeWindowId());
+  ServerWindow child(&server_window_delegate, MakeFrameSinkId());
   child.SetVisible(true);
   root.Add(&child);
 
-  ServerWindow child_child(&server_window_delegate, MakeWindowId());
+  ServerWindow child_child(&server_window_delegate, MakeFrameSinkId());
   child_child.SetVisible(true);
   child.Add(&child_child);
 
@@ -201,10 +201,10 @@
 
 TEST_F(ServerWindowDrawnTrackerTest, VisibilityChangeFromNonParentAncestor) {
   TestServerWindowDelegate server_window_delegate(viz_host_proxy());
-  ServerWindow root(&server_window_delegate, MakeWindowId());
-  ServerWindow child1(&server_window_delegate, MakeWindowId());
-  ServerWindow child2(&server_window_delegate, MakeWindowId());
-  ServerWindow child3(&server_window_delegate, MakeWindowId());
+  ServerWindow root(&server_window_delegate, MakeFrameSinkId());
+  ServerWindow child1(&server_window_delegate, MakeFrameSinkId());
+  ServerWindow child2(&server_window_delegate, MakeFrameSinkId());
+  ServerWindow child3(&server_window_delegate, MakeFrameSinkId());
   server_window_delegate.set_root_window(&root);
 
   root.Add(&child1);
@@ -244,11 +244,11 @@
 
 TEST_F(ServerWindowDrawnTrackerTest, TreeHierarchyChangeFromNonParentAncestor) {
   TestServerWindowDelegate server_window_delegate(viz_host_proxy());
-  ServerWindow root(&server_window_delegate, MakeWindowId());
-  ServerWindow child1(&server_window_delegate, MakeWindowId());
-  ServerWindow child2(&server_window_delegate, MakeWindowId());
-  ServerWindow child11(&server_window_delegate, MakeWindowId());
-  ServerWindow child111(&server_window_delegate, MakeWindowId());
+  ServerWindow root(&server_window_delegate, MakeFrameSinkId());
+  ServerWindow child1(&server_window_delegate, MakeFrameSinkId());
+  ServerWindow child2(&server_window_delegate, MakeFrameSinkId());
+  ServerWindow child11(&server_window_delegate, MakeFrameSinkId());
+  ServerWindow child111(&server_window_delegate, MakeFrameSinkId());
   server_window_delegate.set_root_window(&root);
 
   root.Add(&child1);
diff --git a/services/ui/ws/test_utils.cc b/services/ui/ws/test_utils.cc
index 80dad18..89ff45d 100644
--- a/services/ui/ws/test_utils.cc
+++ b/services/ui/ws/test_utils.cc
@@ -803,7 +803,7 @@
 
 ServerWindow* FirstRoot(WindowTree* tree) {
   return tree->roots().size() == 1u
-             ? tree->GetWindow((*tree->roots().begin())->id())
+             ? const_cast<ServerWindow*>(*(tree->roots().begin()))
              : nullptr;
 }
 
diff --git a/services/ui/ws/transient_windows_unittest.cc b/services/ui/ws/transient_windows_unittest.cc
index a26ec35..19dca6b 100644
--- a/services/ui/ws/transient_windows_unittest.cc
+++ b/services/ui/ws/transient_windows_unittest.cc
@@ -42,9 +42,9 @@
 };
 
 ServerWindow* CreateTestWindow(TestServerWindowDelegate* delegate,
-                               const WindowId& window_id,
+                               const viz::FrameSinkId& frame_sink_id,
                                ServerWindow* parent) {
-  ServerWindow* window = new ServerWindow(delegate, window_id);
+  ServerWindow* window = new ServerWindow(delegate, frame_sink_id);
   window->SetVisible(true);
   if (parent)
     parent->Add(window);
@@ -59,12 +59,12 @@
        ++i) {
     if (!result.empty())
       result += " ";
-    WindowId id = (*i)->id();
-    if (id.client_id != 0) {
+    const viz::FrameSinkId& id = (*i)->frame_sink_id();
+    if (id.client_id() != 0) {
       // All use cases of this expect the client_id to be 0.
       return "unexpected-client-id";
     }
-    result += base::IntToString(id.window_id);
+    result += base::IntToString(id.sink_id());
   }
   return result;
 }
@@ -89,15 +89,15 @@
 TEST_F(TransientWindowsTest, TransientChildren) {
   TestServerWindowDelegate server_window_delegate(viz_host_proxy());
 
-  std::unique_ptr<ServerWindow> parent(
-      CreateTestWindow(&server_window_delegate, WindowId(1, 0), nullptr));
-  std::unique_ptr<ServerWindow> w1(
-      CreateTestWindow(&server_window_delegate, WindowId(1, 1), parent.get()));
-  std::unique_ptr<ServerWindow> w3(
-      CreateTestWindow(&server_window_delegate, WindowId(1, 2), parent.get()));
+  std::unique_ptr<ServerWindow> parent(CreateTestWindow(
+      &server_window_delegate, viz::FrameSinkId(1, 0), nullptr));
+  std::unique_ptr<ServerWindow> w1(CreateTestWindow(
+      &server_window_delegate, viz::FrameSinkId(1, 1), parent.get()));
+  std::unique_ptr<ServerWindow> w3(CreateTestWindow(
+      &server_window_delegate, viz::FrameSinkId(1, 2), parent.get()));
 
-  ServerWindow* w2 =
-      CreateTestWindow(&server_window_delegate, WindowId(1, 3), parent.get());
+  ServerWindow* w2 = CreateTestWindow(&server_window_delegate,
+                                      viz::FrameSinkId(1, 3), parent.get());
 
   // w2 is now owned by w1.
   w1->AddTransientWindow(w2);
@@ -115,14 +115,14 @@
 TEST_F(TransientWindowsTest, DontStackUponCreation) {
   TestServerWindowDelegate delegate(viz_host_proxy());
   std::unique_ptr<ServerWindow> parent(
-      CreateTestWindow(&delegate, WindowId(0, 1), nullptr));
+      CreateTestWindow(&delegate, viz::FrameSinkId(0, 1), nullptr));
   std::unique_ptr<ServerWindow> window0(
-      CreateTestWindow(&delegate, WindowId(0, 2), parent.get()));
+      CreateTestWindow(&delegate, viz::FrameSinkId(0, 2), parent.get()));
   std::unique_ptr<ServerWindow> window1(
-      CreateTestWindow(&delegate, WindowId(0, 3), parent.get()));
+      CreateTestWindow(&delegate, viz::FrameSinkId(0, 3), parent.get()));
 
   ServerWindow* window2 =
-      CreateTestWindow(&delegate, WindowId(0, 4), parent.get());
+      CreateTestWindow(&delegate, viz::FrameSinkId(0, 4), parent.get());
   window0->AddTransientWindow(window2);
   EXPECT_EQ("2 3 4", ChildWindowIDsAsString(parent.get()));
 }
@@ -132,11 +132,11 @@
 TEST_F(TransientWindowsTest, RestackUponAddOrRemoveTransientWindow) {
   TestServerWindowDelegate delegate(viz_host_proxy());
   std::unique_ptr<ServerWindow> parent(
-      CreateTestWindow(&delegate, WindowId(0, 1), nullptr));
+      CreateTestWindow(&delegate, viz::FrameSinkId(0, 1), nullptr));
   std::unique_ptr<ServerWindow> windows[4];
   for (int i = 0; i < 4; i++)
     windows[i].reset(
-        CreateTestWindow(&delegate, WindowId(0, i + 2), parent.get()));
+        CreateTestWindow(&delegate, viz::FrameSinkId(0, i + 2), parent.get()));
 
   EXPECT_EQ("2 3 4 5", ChildWindowIDsAsString(parent.get()));
 
@@ -169,9 +169,9 @@
 TEST_F(TransientWindowsTest, TransientWindowObserverNotified) {
   TestServerWindowDelegate delegate(viz_host_proxy());
   std::unique_ptr<ServerWindow> parent(
-      CreateTestWindow(&delegate, WindowId(0, 1), nullptr));
+      CreateTestWindow(&delegate, viz::FrameSinkId(0, 1), nullptr));
   std::unique_ptr<ServerWindow> w1(
-      CreateTestWindow(&delegate, WindowId(0, 2), parent.get()));
+      CreateTestWindow(&delegate, viz::FrameSinkId(0, 2), parent.get()));
 
   TestTransientWindowObserver test_observer;
   parent->AddObserver(&test_observer);
diff --git a/services/ui/ws/window_coordinate_conversions_unittest.cc b/services/ui/ws/window_coordinate_conversions_unittest.cc
index 9978c9c7..5e25ec80 100644
--- a/services/ui/ws/window_coordinate_conversions_unittest.cc
+++ b/services/ui/ws/window_coordinate_conversions_unittest.cc
@@ -29,12 +29,12 @@
 
 TEST_F(WindowCoordinateConversions, Transform) {
   TestServerWindowDelegate window_delegate(viz_host_proxy());
-  ServerWindow root(&window_delegate, WindowId(1, 2));
+  ServerWindow root(&window_delegate, viz::FrameSinkId(1, 2));
   root.set_event_targeting_policy(
       mojom::EventTargetingPolicy::DESCENDANTS_ONLY);
   root.SetVisible(true);
   root.SetBounds(gfx::Rect(0, 0, 100, 100), base::nullopt);
-  ServerWindow child(&window_delegate, WindowId(1, 3));
+  ServerWindow child(&window_delegate, viz::FrameSinkId(1, 3));
   root.Add(&child);
   child.SetVisible(true);
   child.SetBounds(gfx::Rect(0, 0, 20, 20), base::nullopt);
@@ -45,7 +45,7 @@
   transform.Scale(SkIntToMScalar(2), SkIntToMScalar(2));
   child.SetTransform(transform);
 
-  ServerWindow child_child(&window_delegate, WindowId(1, 4));
+  ServerWindow child_child(&window_delegate, viz::FrameSinkId(1, 4));
   child.Add(&child_child);
   child_child.SetVisible(true);
   child_child.SetBounds(gfx::Rect(4, 6, 12, 24), base::nullopt);
diff --git a/services/ui/ws/window_finder_unittest.cc b/services/ui/ws/window_finder_unittest.cc
index fadedfe..f6a28af 100644
--- a/services/ui/ws/window_finder_unittest.cc
+++ b/services/ui/ws/window_finder_unittest.cc
@@ -29,19 +29,19 @@
 
 TEST_F(WindowFinderTest, FindDeepestVisibleWindow) {
   TestServerWindowDelegate window_delegate(viz_host_proxy());
-  ServerWindow root(&window_delegate, WindowId(1, 2));
+  ServerWindow root(&window_delegate, viz::FrameSinkId(1, 2));
   root.set_event_targeting_policy(
       mojom::EventTargetingPolicy::DESCENDANTS_ONLY);
   window_delegate.set_root_window(&root);
   root.SetVisible(true);
   root.SetBounds(gfx::Rect(0, 0, 100, 100), base::nullopt);
 
-  ServerWindow child1(&window_delegate, WindowId(1, 3));
+  ServerWindow child1(&window_delegate, viz::FrameSinkId(1, 3));
   root.Add(&child1);
   child1.SetVisible(true);
   child1.SetBounds(gfx::Rect(10, 10, 20, 20), base::nullopt);
 
-  ServerWindow child2(&window_delegate, WindowId(1, 4));
+  ServerWindow child2(&window_delegate, viz::FrameSinkId(1, 4));
   root.Add(&child2);
   child2.SetVisible(true);
   child2.SetBounds(gfx::Rect(15, 15, 20, 20), base::nullopt);
@@ -74,12 +74,12 @@
 
 TEST_F(WindowFinderTest, FindDeepestVisibleWindowNonClientArea) {
   TestServerWindowDelegate window_delegate(viz_host_proxy());
-  ServerWindow root(&window_delegate, WindowId(1, 2));
+  ServerWindow root(&window_delegate, viz::FrameSinkId(1, 2));
   window_delegate.set_root_window(&root);
   root.SetVisible(true);
   root.SetBounds(gfx::Rect(0, 0, 100, 100), base::nullopt);
 
-  ServerWindow child1(&window_delegate, WindowId(1, 3));
+  ServerWindow child1(&window_delegate, viz::FrameSinkId(1, 3));
   root.Add(&child1);
   child1.SetVisible(true);
   child1.SetBounds(gfx::Rect(10, 10, 20, 20), base::nullopt);
@@ -125,12 +125,12 @@
 
 TEST_F(WindowFinderTest, FindDeepestVisibleWindowHitTestMask) {
   TestServerWindowDelegate window_delegate(viz_host_proxy());
-  ServerWindow root(&window_delegate, WindowId(1, 2));
+  ServerWindow root(&window_delegate, viz::FrameSinkId(1, 2));
   window_delegate.set_root_window(&root);
   root.SetVisible(true);
   root.SetBounds(gfx::Rect(0, 0, 100, 100), base::nullopt);
 
-  ServerWindow child_with_mask(&window_delegate, WindowId(1, 4));
+  ServerWindow child_with_mask(&window_delegate, viz::FrameSinkId(1, 4));
   root.Add(&child_with_mask);
   child_with_mask.SetVisible(true);
   child_with_mask.SetBounds(gfx::Rect(10, 10, 20, 20), base::nullopt);
@@ -149,19 +149,19 @@
 
 TEST_F(WindowFinderTest, FindDeepestVisibleWindowOverNonTarget) {
   TestServerWindowDelegate window_delegate(viz_host_proxy());
-  ServerWindow root(&window_delegate, WindowId(1, 2));
+  ServerWindow root(&window_delegate, viz::FrameSinkId(1, 2));
   window_delegate.set_root_window(&root);
   root.SetVisible(true);
   root.SetBounds(gfx::Rect(0, 0, 100, 100), base::nullopt);
 
   // Create two windows, |child1| and |child2|. The two overlap but |child2| is
   // not a valid event target.
-  ServerWindow child1(&window_delegate, WindowId(1, 3));
+  ServerWindow child1(&window_delegate, viz::FrameSinkId(1, 3));
   root.Add(&child1);
   child1.SetVisible(true);
   child1.SetBounds(gfx::Rect(10, 10, 20, 20), base::nullopt);
 
-  ServerWindow child2(&window_delegate, WindowId(1, 4));
+  ServerWindow child2(&window_delegate, viz::FrameSinkId(1, 4));
   root.Add(&child2);
   child2.set_event_targeting_policy(mojom::EventTargetingPolicy::NONE);
   child2.SetVisible(true);
@@ -176,7 +176,7 @@
 
 TEST_F(WindowFinderTest, NonClientPreferredOverChild) {
   TestServerWindowDelegate window_delegate(viz_host_proxy());
-  ServerWindow root(&window_delegate, WindowId(1, 2));
+  ServerWindow root(&window_delegate, viz::FrameSinkId(1, 2));
   window_delegate.set_root_window(&root);
   root.SetVisible(true);
   root.SetBounds(gfx::Rect(0, 0, 100, 100), base::nullopt);
@@ -184,13 +184,13 @@
   // Create two windows, |child| and |child_child|; |child| is a child of the
   // root and |child_child| and child of |child|. All share the same size with
   // |child| having a non-client area.
-  ServerWindow child(&window_delegate, WindowId(1, 3));
+  ServerWindow child(&window_delegate, viz::FrameSinkId(1, 3));
   root.Add(&child);
   child.SetVisible(true);
   child.SetBounds(gfx::Rect(0, 0, 100, 100), base::nullopt);
   child.SetClientArea(gfx::Insets(2, 3, 4, 5), std::vector<gfx::Rect>());
 
-  ServerWindow child_child(&window_delegate, WindowId(1, 4));
+  ServerWindow child_child(&window_delegate, viz::FrameSinkId(1, 4));
   child.Add(&child_child);
   child_child.SetVisible(true);
   child_child.SetBounds(gfx::Rect(0, 0, 100, 100), base::nullopt);
@@ -203,13 +203,13 @@
 
 TEST_F(WindowFinderTest, FindDeepestVisibleWindowWithTransform) {
   TestServerWindowDelegate window_delegate(viz_host_proxy());
-  ServerWindow root(&window_delegate, WindowId(1, 2));
+  ServerWindow root(&window_delegate, viz::FrameSinkId(1, 2));
   root.set_event_targeting_policy(
       mojom::EventTargetingPolicy::DESCENDANTS_ONLY);
   window_delegate.set_root_window(&root);
   root.SetVisible(true);
   root.SetBounds(gfx::Rect(0, 0, 100, 100), base::nullopt);
-  ServerWindow child(&window_delegate, WindowId(1, 3));
+  ServerWindow child(&window_delegate, viz::FrameSinkId(1, 3));
   root.Add(&child);
   child.SetVisible(true);
   child.SetBounds(gfx::Rect(10, 10, 20, 20), base::nullopt);
@@ -224,7 +224,7 @@
                          &root, EventSource::MOUSE, gfx::Point(9, 9))
                          .window);
 
-  ServerWindow child_child(&window_delegate, WindowId(1, 4));
+  ServerWindow child_child(&window_delegate, viz::FrameSinkId(1, 4));
   child.Add(&child_child);
   child_child.SetVisible(true);
   child_child.SetBounds(gfx::Rect(12, 12, 4, 4), base::nullopt);
@@ -249,12 +249,12 @@
 
 TEST_F(WindowFinderTest, FindDeepestVisibleWindowWithTransformOnParent) {
   TestServerWindowDelegate window_delegate(viz_host_proxy());
-  ServerWindow root(&window_delegate, WindowId(1, 2));
+  ServerWindow root(&window_delegate, viz::FrameSinkId(1, 2));
   root.set_event_targeting_policy(
       mojom::EventTargetingPolicy::DESCENDANTS_ONLY);
   root.SetVisible(true);
   root.SetBounds(gfx::Rect(0, 0, 100, 100), base::nullopt);
-  ServerWindow child(&window_delegate, WindowId(1, 3));
+  ServerWindow child(&window_delegate, viz::FrameSinkId(1, 3));
   root.Add(&child);
   child.SetVisible(true);
   child.SetBounds(gfx::Rect(10, 10, 10, 10), base::nullopt);
@@ -283,13 +283,13 @@
 TEST_F(WindowFinderTest,
        FindDeepestVisibleWindowWithTransformOnParentMagnified) {
   TestServerWindowDelegate window_delegate(viz_host_proxy());
-  ServerWindow root(&window_delegate, WindowId(1, 2));
+  ServerWindow root(&window_delegate, viz::FrameSinkId(1, 2));
   root.set_event_targeting_policy(
       mojom::EventTargetingPolicy::TARGET_AND_DESCENDANTS);
   root.SetVisible(true);
   root.SetBounds(gfx::Rect(0, 0, 100, 100), base::nullopt);
   window_delegate.set_root_window(&root);
-  ServerWindow c1(&window_delegate, WindowId(1, 3));
+  ServerWindow c1(&window_delegate, viz::FrameSinkId(1, 3));
   root.Add(&c1);
   c1.SetVisible(true);
   c1.SetBounds(gfx::Rect(0, 0, 100, 100), base::nullopt);
@@ -297,12 +297,12 @@
   transform.Scale(SkFloatToMScalar(.5f), SkFloatToMScalar(.5f));
   c1.SetTransform(transform);
 
-  ServerWindow c2(&window_delegate, WindowId(1, 4));
+  ServerWindow c2(&window_delegate, viz::FrameSinkId(1, 4));
   c1.Add(&c2);
   c2.SetVisible(true);
   c2.SetBounds(gfx::Rect(0, 0, 200, 200), base::nullopt);
 
-  ServerWindow c3(&window_delegate, WindowId(1, 5));
+  ServerWindow c3(&window_delegate, viz::FrameSinkId(1, 5));
   c2.Add(&c3);
   c3.SetVisible(true);
   c3.SetBounds(gfx::Rect(0, 190, 200, 10), base::nullopt);
diff --git a/services/ui/ws/window_manager_access_policy.cc b/services/ui/ws/window_manager_access_policy.cc
index 20d99da8..fe53b8e 100644
--- a/services/ui/ws/window_manager_access_policy.cc
+++ b/services/ui/ws/window_manager_access_policy.cc
@@ -231,7 +231,7 @@
 
 bool WindowManagerAccessPolicy::WasCreatedByThisClient(
     const ServerWindow* window) const {
-  return window->id().client_id == client_id_;
+  return window->owning_tree_id() == client_id_;
 }
 
 }  // namespace ws
diff --git a/services/ui/ws/window_manager_display_root.cc b/services/ui/ws/window_manager_display_root.cc
index 9b5f1242..0e41987 100644
--- a/services/ui/ws/window_manager_display_root.cc
+++ b/services/ui/ws/window_manager_display_root.cc
@@ -25,10 +25,10 @@
   properties[mojom::WindowManager::kName_Property] =
       std::vector<uint8_t>(name.begin(), name.end());
 
-  WindowId id = window_server()->display_manager()->GetAndAdvanceNextRootId();
-  ClientWindowId client_window_id(id.client_id, id.window_id);
+  const ClientWindowId client_window_id =
+      window_server()->display_manager()->GetAndAdvanceNextRootId();
   root_.reset(
-      window_server()->CreateServerWindow(id, client_window_id, properties));
+      window_server()->CreateServerWindow(client_window_id, properties));
   root_->set_event_targeting_policy(
       mojom::EventTargetingPolicy::DESCENDANTS_ONLY);
   // Our root is always a child of the Display's root. Do this
diff --git a/services/ui/ws/window_manager_state.cc b/services/ui/ws/window_manager_state.cc
index 890799f..a8a5af1 100644
--- a/services/ui/ws/window_manager_state.cc
+++ b/services/ui/ws/window_manager_state.cc
@@ -74,8 +74,10 @@
 const ServerWindow* GetEmbedRoot(const ServerWindow* window) {
   DCHECK(window);
   const ServerWindow* embed_root = window->parent();
-  while (embed_root && embed_root->id().client_id == window->id().client_id)
+  while (embed_root &&
+         embed_root->owning_tree_id() == window->owning_tree_id()) {
     embed_root = embed_root->parent();
+  }
   return embed_root;
 }
 
@@ -317,14 +319,6 @@
                                   : mojom::EventResult::UNHANDLED);
 }
 
-ServerWindow* WindowManagerState::GetOrphanedRootWithId(const WindowId& id) {
-  for (auto& display_root_ptr : orphaned_window_manager_display_roots_) {
-    if (display_root_ptr->root()->id() == id)
-      return display_root_ptr->root();
-  }
-  return nullptr;
-}
-
 bool WindowManagerState::IsActive() const {
   return window_server()->user_id_tracker()->active_id() == user_id();
 }
@@ -576,7 +570,8 @@
   }
   ServerWindow* focused_window = GetFocusedWindowForEventDispatcher(display_id);
   LOG(ERROR) << "Focused window: "
-             << (focused_window ? focused_window->id().ToString() : "(null)");
+             << (focused_window ? focused_window->frame_sink_id().ToString()
+                                : "(null)");
 #endif
 }
 
@@ -863,7 +858,7 @@
   WindowTree* tree = window_server()->GetTreeWithRoot(window);
   if (!tree) {
     // Window is not an embed root, event goes to owner of the window.
-    tree = window_server()->GetTreeWithId(window->id().client_id);
+    tree = window_server()->GetTreeWithId(window->owning_tree_id());
   }
   DCHECK(tree);
 
@@ -872,7 +867,7 @@
       tree->HasRoot(window) ? window : GetEmbedRoot(window);
   while (tree && tree->embedder_intercepts_events()) {
     DCHECK(tree->HasRoot(embed_root));
-    tree = window_server()->GetTreeWithId(embed_root->id().client_id);
+    tree = window_server()->GetTreeWithId(embed_root->owning_tree_id());
     embed_root = GetEmbedRoot(embed_root);
   }
   DCHECK(tree);
diff --git a/services/ui/ws/window_manager_state.h b/services/ui/ws/window_manager_state.h
index ed9ac9d..7204352 100644
--- a/services/ui/ws/window_manager_state.h
+++ b/services/ui/ws/window_manager_state.h
@@ -95,11 +95,6 @@
   // Deletes the WindowManagerDisplayRoot whose root is |display_root|.
   void DeleteWindowManagerDisplayRoot(ServerWindow* display_root);
 
-  // Returns the ServerWindow corresponding to an orphaned root with the
-  // specified id. See |orphaned_window_manager_display_roots_| for details on
-  // what on orphaned root is.
-  ServerWindow* GetOrphanedRootWithId(const WindowId& id);
-
   // TODO(sky): EventDispatcher is really an implementation detail and should
   // not be exposed.
   EventDispatcher* event_dispatcher() { return &event_dispatcher_; }
diff --git a/services/ui/ws/window_manager_state_unittest.cc b/services/ui/ws/window_manager_state_unittest.cc
index bdd273a6..88255f8 100644
--- a/services/ui/ws/window_manager_state_unittest.cc
+++ b/services/ui/ws/window_manager_state_unittest.cc
@@ -568,22 +568,19 @@
       "InputEvent window=" + kWindowManagerClientIdString + ",1 event_action=7",
       ChangesToDescription1(*tracker->changes())[0]);
 
-  OnEventAckTimeout(window()->id().client_id);
+  OnEventAckTimeout(window()->owning_tree_id());
   EXPECT_TRUE(window_manager()->on_accelerator_called());
   EXPECT_EQ(accelerator->id(), window_manager()->on_accelerator_id());
 }
 
 TEST_F(WindowManagerStateTest, InterceptingEmbedderReceivesEvents) {
   WindowTree* embedder_tree = tree();
-  ServerWindow* embedder_root = window();
   const ClientWindowId embed_window_id(embedder_tree->id(), 12);
   embedder_tree->NewWindow(embed_window_id, ServerWindow::Properties());
   ServerWindow* embedder_window =
       embedder_tree->GetWindowByClientId(embed_window_id);
   ASSERT_TRUE(
-      embedder_tree->AddWindow(ClientWindowId(embedder_root->id().client_id,
-                                              embedder_root->id().window_id),
-                               embed_window_id));
+      embedder_tree->AddWindow(FirstRootId(embedder_tree), embed_window_id));
 
   TestWindowTreeClient* embedder_client = wm_client();
 
diff --git a/services/ui/ws/window_server.cc b/services/ui/ws/window_server.cc
index bff07c8..6307fb7 100644
--- a/services/ui/ws/window_server.cc
+++ b/services/ui/ws/window_server.cc
@@ -188,10 +188,9 @@
 }
 
 ServerWindow* WindowServer::CreateServerWindow(
-    const WindowId& id,
     const viz::FrameSinkId& frame_sink_id,
     const std::map<std::string, std::vector<uint8_t>>& properties) {
-  ServerWindow* window = new ServerWindow(this, id, frame_sink_id, properties);
+  ServerWindow* window = new ServerWindow(this, frame_sink_id, properties);
   window->AddObserver(this);
   return window;
 }
@@ -308,29 +307,6 @@
   return nullptr;
 }
 
-ServerWindow* WindowServer::GetWindow(const WindowId& id) {
-  // kWindowServerClientId is used for Display and WindowManager nodes.
-  if (id.client_id == kWindowServerClientId) {
-    for (Display* display : display_manager_->displays()) {
-      ServerWindow* window = display->GetRootWithId(id);
-      if (window)
-        return window;
-    }
-    // WindowManagerDisplayRoots are destroyed by the client and not held by
-    // the Display.
-    for (auto& pair : tree_map_) {
-      if (pair.second->window_manager_state()) {
-        ServerWindow* window =
-            pair.second->window_manager_state()->GetOrphanedRootWithId(id);
-        if (window)
-          return window;
-      }
-    }
-  }
-  WindowTree* tree = GetTreeWithId(id.client_id);
-  return tree ? tree->GetWindow(id) : nullptr;
-}
-
 void WindowServer::OnTreeMessagedClient(ClientSpecificId id) {
   if (current_operation_)
     current_operation_->MarkTreeAsMessaged(id);
@@ -448,7 +424,7 @@
     WindowManagerSentBogusMessage();
     return;
   }
-  if (window && (window->id().client_id != wm_tree->id() ||
+  if (window && (window->owning_tree_id() != wm_tree->id() ||
                  !window->children().empty() || GetTreeWithRoot(window))) {
     DVLOG(1)
         << "WindowManager responded with invalid window; window should "
@@ -705,7 +681,7 @@
 
   // We always use the owner of the window's id (even for an embedded window),
   // because an embedded window's id is allocated by the parent's window tree.
-  WindowTree* window_tree = GetTreeWithId(window->id().client_id);
+  WindowTree* window_tree = GetTreeWithId(window->owning_tree_id());
   if (window_tree)
     window_tree->ProcessWindowSurfaceChanged(window, surface_info);
 }
@@ -793,7 +769,7 @@
     ServerWindow* window) {
   DCHECK(host_frame_sink_manager_);
   // TODO(kylechar): Investigate adding tests for this.
-  const ClientSpecificId window_client_id = window->id().client_id;
+  const ClientSpecificId window_client_id = window->owning_tree_id();
 
   // Find the root ServerWindow for the client that embeds |window|, which is
   // the root of the client that embeds |surface_id|. The client that embeds
@@ -802,7 +778,7 @@
   // embedder, so the first ServerWindow with a different client id will be the
   // root of the embedder.
   ServerWindow* current = window->parent();
-  while (current && current->id().client_id == window_client_id)
+  while (current && current->owning_tree_id() == window_client_id)
     current = current->parent();
 
   // The client that embeds |window| is expected to submit a CompositorFrame
diff --git a/services/ui/ws/window_server.h b/services/ui/ws/window_server.h
index e4c291d..88d4227 100644
--- a/services/ui/ws/window_server.h
+++ b/services/ui/ws/window_server.h
@@ -86,7 +86,6 @@
   // Creates a new ServerWindow. The return value is owned by the caller, but
   // must be destroyed before WindowServer.
   ServerWindow* CreateServerWindow(
-      const WindowId& id,
       const viz::FrameSinkId& frame_sink_id,
       const std::map<std::string, std::vector<uint8_t>>& properties);
 
@@ -121,9 +120,6 @@
 
   size_t num_trees() const { return tree_map_.size(); }
 
-  // Returns the Window identified by |id|.
-  ServerWindow* GetWindow(const WindowId& id);
-
   OperationType current_operation_type() const {
     return current_operation_ ? current_operation_->type()
                               : OperationType::NONE;
diff --git a/services/ui/ws/window_tree.cc b/services/ui/ws/window_tree.cc
index 5f5838b..c47d563 100644
--- a/services/ui/ws/window_tree.cc
+++ b/services/ui/ws/window_tree.cc
@@ -14,6 +14,7 @@
 #include "base/memory/ptr_util.h"
 #include "build/build_config.h"
 #include "mojo/public/cpp/bindings/map.h"
+#include "services/ui/common/util.h"
 #include "services/ui/display/screen_manager.h"
 #include "services/ui/ws/cursor_location_manager.h"
 #include "services/ui/ws/debug_utils.h"
@@ -130,7 +131,6 @@
     : window_server_(window_server),
       user_id_(user_id),
       id_(window_server_->GetAndAdvanceNextClientId()),
-      next_window_id_(1),
       access_policy_(std::move(access_policy)),
       event_ack_id_(0),
       window_manager_internal_(nullptr),
@@ -204,20 +204,12 @@
   window_manager_state_ = std::make_unique<WindowManagerState>(this);
 }
 
-const ServerWindow* WindowTree::GetWindow(const WindowId& id) const {
-  if (id_ == id.client_id) {
-    auto iter = created_window_map_.find(id);
-    return iter == created_window_map_.end() ? nullptr : iter->second;
-  }
-  return window_server_->GetWindow(id);
-}
-
 bool WindowTree::IsWindowKnown(const ServerWindow* window,
                                ClientWindowId* id) const {
   if (!window)
     return false;
-  auto iter = window_id_to_client_id_map_.find(window->id());
-  if (iter == window_id_to_client_id_map_.end())
+  auto iter = window_to_client_id_map_.find(window);
+  if (iter == window_to_client_id_map_.end())
     return false;
   if (id)
     *id = iter->second;
@@ -230,9 +222,8 @@
 
 const ServerWindow* WindowTree::GetWindowByClientId(
     const ClientWindowId& id) const {
-  auto iter = client_id_to_window_id_map_.find(id);
-  return iter == client_id_to_window_id_map_.end() ? nullptr
-                                                   : GetWindow(iter->second);
+  auto iter = client_id_to_window_map_.find(id);
+  return iter == client_id_to_window_map_.end() ? nullptr : iter->second;
 }
 
 const Display* WindowTree::GetDisplay(const ServerWindow* window) const {
@@ -267,9 +258,7 @@
   DCHECK(automatically_create_display_roots_);
   DCHECK(window_manager_internal_);
   const ClientWindowId client_window_id = root->frame_sink_id();
-  DCHECK_EQ(0u, client_id_to_window_id_map_.count(client_window_id));
-  client_id_to_window_id_map_[client_window_id] = root->id();
-  window_id_to_client_id_map_[root->id()] = client_window_id;
+  AddToMaps(root, client_window_id);
   roots_.insert(root);
 
   Display* ws_display = GetDisplay(root);
@@ -286,7 +275,7 @@
 
   // Notify our client if |tree| was embedded in any of our windows.
   for (const auto* tree_root : tree->roots_) {
-    const bool owns_tree_root = tree_root->id().client_id == id_;
+    const bool owns_tree_root = tree_root->owning_tree_id() == id_;
     if (owns_tree_root)
       client()->OnEmbeddedAppDisconnected(TransportIdForWindow(tree_root));
   }
@@ -498,13 +487,11 @@
     return false;
   }
   DCHECK(!GetWindowByClientId(client_window_id));
-  const WindowId window_id = GenerateNewWindowId();
-  DCHECK(!GetWindow(window_id));
-  ServerWindow* window = window_server_->CreateServerWindow(
-      window_id, client_window_id, properties);
-  created_window_map_[window_id] = window;
-  client_id_to_window_id_map_[client_window_id] = window_id;
-  window_id_to_client_id_map_[window_id] = client_window_id;
+  DCHECK_EQ(id_, client_window_id.client_id());
+  ServerWindow* window =
+      window_server_->CreateServerWindow(client_window_id, properties);
+  created_windows_.insert(window);
+  AddToMaps(window, client_window_id);
   return true;
 }
 
@@ -575,7 +562,7 @@
   }
 
   // Have the owner of the tree service the actual delete.
-  WindowTree* tree = window_server_->GetTreeWithId(window->id().client_id);
+  WindowTree* tree = window_server_->GetTreeWithId(window->owning_tree_id());
   return tree && tree->DeleteWindowImpl(this, window);
 }
 
@@ -771,10 +758,7 @@
     client()->OnChangeCompleted(client_change_id, false);
     return viz::FrameSinkId();
   }
-  client_id_to_window_id_map_[waiting_for_top_level_window_info
-                                  ->client_window_id] = window->id();
-  window_id_to_client_id_map_[window->id()] =
-      waiting_for_top_level_window_info->client_window_id;
+  AddToMaps(window, waiting_for_top_level_window_info->client_window_id);
   roots_.insert(window);
   Display* display = GetDisplay(window);
   int64_t display_id = display ? display->GetId() : display::kInvalidDisplayId;
@@ -819,7 +803,7 @@
     const ServerWindow* modal_window) {
   DCHECK(window_manager_internal_);
   // Only tell the window manager about windows it created.
-  if (modal_window->id().client_id != id_)
+  if (modal_window->owning_tree_id() != id_)
     return;
 
   ClientWindowId client_window_id;
@@ -990,8 +974,7 @@
 
 void WindowTree::ProcessWindowDeleted(ServerWindow* window,
                                       bool originated_change) {
-  if (window->id().client_id == id_)
-    created_window_map_.erase(window->id());
+  created_windows_.erase(window);
 
   ClientWindowId client_window_id;
   if (!IsWindowKnown(window, &client_window_id))
@@ -1148,7 +1131,7 @@
     return false;  // We are the window manager, don't route to ourself.
 
   // If the client created this window, then do not route it through the WM.
-  if (window->id().client_id == id_)
+  if (window->owning_tree_id() == id_)
     return false;
 
   // If the client did not create the window, then it must be the root of the
@@ -1185,23 +1168,17 @@
 }
 
 Id WindowTree::TransportIdForWindow(const ServerWindow* window) const {
-  auto iter = window_id_to_client_id_map_.find(window->id());
-  DCHECK(iter != window_id_to_client_id_map_.end());
+  auto iter = window_to_client_id_map_.find(window);
+  DCHECK(iter != window_to_client_id_map_.end());
   return ClientWindowIdToTransportId(iter->second);
 }
 
 bool WindowTree::IsValidIdForNewWindow(const ClientWindowId& id) const {
   // Reserve 0 to indicate a null window.
-  return client_id_to_window_id_map_.count(id) == 0u &&
+  return client_id_to_window_map_.count(id) == 0u &&
          access_policy_->IsValidIdForNewWindow(id) && id != ClientWindowId();
 }
 
-WindowId WindowTree::GenerateNewWindowId() {
-  const ClientSpecificId client_window_id = next_window_id_++;
-  CHECK_NE(0u, next_window_id_);
-  return WindowId(id_, client_window_id);
-}
-
 bool WindowTree::CanReorderWindow(const ServerWindow* window,
                                   const ServerWindow* relative_window,
                                   mojom::OrderDirection direction) const {
@@ -1272,7 +1249,7 @@
 
 bool WindowTree::DeleteWindowImpl(WindowTree* source, ServerWindow* window) {
   DCHECK(window);
-  DCHECK_EQ(window->id().client_id, id_);
+  DCHECK_EQ(window->owning_tree_id(), id_);
   Operation op(source, window_server_, OperationType::DELETE_WINDOW);
   delete window;
   return true;
@@ -1292,9 +1269,7 @@
     return;
 
   const ClientWindowId client_window_id = window->frame_sink_id();
-  DCHECK_EQ(0u, client_id_to_window_id_map_.count(client_window_id));
-  client_id_to_window_id_map_[client_window_id] = window->id();
-  window_id_to_client_id_map_[window->id()] = client_window_id;
+  AddToMaps(window, client_window_id);
   if (!access_policy_->CanDescendIntoWindowForWindowTree(window))
     return;
   const ServerWindow::Windows& children = window->children();
@@ -1302,36 +1277,43 @@
     GetUnknownWindowsFrom(child, windows);
 }
 
+void WindowTree::AddToMaps(const ServerWindow* window,
+                           const ClientWindowId& client_window_id) {
+  DCHECK_EQ(0u, client_id_to_window_map_.count(client_window_id));
+  client_id_to_window_map_[client_window_id] = window;
+  window_to_client_id_map_[window] = client_window_id;
+}
+
 bool WindowTree::RemoveFromMaps(const ServerWindow* window) {
-  auto iter = window_id_to_client_id_map_.find(window->id());
-  if (iter == window_id_to_client_id_map_.end())
+  auto iter = window_to_client_id_map_.find(window);
+  if (iter == window_to_client_id_map_.end())
     return false;
 
-  client_id_to_window_id_map_.erase(iter->second);
-  window_id_to_client_id_map_.erase(iter);
+  client_id_to_window_map_.erase(iter->second);
+  window_to_client_id_map_.erase(iter);
   return true;
 }
 
 void WindowTree::RemoveFromKnown(const ServerWindow* window,
-                                 std::vector<ServerWindow*>* local_windows) {
-  if (window->id().client_id == id_) {
-    if (local_windows)
-      local_windows->push_back(GetWindow(window->id()));
+                                 std::vector<ServerWindow*>* created_windows) {
+  // TODO(sky): const_cast here is a bit ick.
+  if (created_windows_.count(const_cast<ServerWindow*>(window))) {
+    if (created_windows)
+      created_windows->push_back(const_cast<ServerWindow*>(window));
     return;
   }
 
   RemoveFromMaps(window);
 
-  const ServerWindow::Windows& children = window->children();
-  for (ServerWindow* child : children)
-    RemoveFromKnown(child, local_windows);
+  for (ServerWindow* child : window->children())
+    RemoveFromKnown(child, created_windows);
 }
 
 void WindowTree::RemoveRoot(ServerWindow* window, RemoveRootReason reason) {
   DCHECK(roots_.count(window) > 0);
   roots_.erase(window);
 
-  if (window->id().client_id == id_) {
+  if (window->owning_tree_id() == id_) {
     // This client created the window. If this client is the window manager and
     // display roots are manually created, then |window| is a display root and
     // needs be cleaned.
@@ -1351,19 +1333,19 @@
     window_server_->OnTreeMessagedClient(id_);
   }
 
-  // This client no longer knows about the window. Unparent any windows that
-  // were parented to windows in the root.
-  std::vector<ServerWindow*> local_windows;
-  RemoveFromKnown(window, &local_windows);
-  for (size_t i = 0; i < local_windows.size(); ++i)
-    local_windows[i]->parent()->Remove(local_windows[i]);
+  // This client no longer knows about |window|. Unparent any windows created
+  // by this client that were parented to descendants of |window|.
+  std::vector<ServerWindow*> created_windows;
+  RemoveFromKnown(window, &created_windows);
+  for (ServerWindow* created_window : created_windows)
+    created_window->parent()->Remove(created_window);
 
   if (reason == RemoveRootReason::UNEMBED) {
     // Notify the owner of the window it no longer has a client embedded in it.
     // Owner is null in the case of the windowmanager unembedding itself from
     // a root.
     WindowTree* owning_tree =
-        window_server_->GetTreeWithId(window->id().client_id);
+        window_server_->GetTreeWithId(window->owning_tree_id());
     if (owning_tree) {
       DCHECK(owning_tree && owning_tree != this);
       owning_tree->client()->OnEmbeddedAppDisconnected(
@@ -1441,26 +1423,25 @@
 }
 
 void WindowTree::DestroyWindows() {
-  if (created_window_map_.empty())
+  if (created_windows_.empty())
     return;
 
   Operation op(this, window_server_, OperationType::DELETE_WINDOW);
   // If we get here from the destructor we're not going to get
   // ProcessWindowDeleted(). Copy the map and delete from the copy so that we
-  // don't have to worry about whether |created_window_map_| changes or not.
-  std::unordered_map<WindowId, ServerWindow*, WindowIdHash>
-      created_window_map_copy;
-  created_window_map_.swap(created_window_map_copy);
+  // don't have to worry about whether |created_windows_| changes or not.
+  std::set<ServerWindow*> created_windows_copy;
+  created_windows_.swap(created_windows_copy);
   // A sibling can be a transient parent of another window so we detach windows
   // from their transient parents to avoid double deletes.
-  for (auto& pair : created_window_map_copy) {
-    ServerWindow* transient_parent = pair.second->transient_parent();
+  for (ServerWindow* window : created_windows_copy) {
+    ServerWindow* transient_parent = window->transient_parent();
     if (transient_parent)
-      transient_parent->RemoveTransientWindow(pair.second);
+      transient_parent->RemoveTransientWindow(window);
   }
 
-  for (auto& window_pair : created_window_map_copy)
-    delete window_pair.second;
+  for (ServerWindow* window : created_windows_copy)
+    delete window;
 }
 
 bool WindowTree::CanEmbed(const ClientWindowId& window_id) const {
@@ -1574,7 +1555,8 @@
   if (roots_.size() != 1)
     return nullptr;
   const ServerWindow* root = *roots_.begin();
-  WindowTree* owning_tree = window_server_->GetTreeWithId(root->id().client_id);
+  WindowTree* owning_tree =
+      window_server_->GetTreeWithId(root->owning_tree_id());
   if (!owning_tree)
     return nullptr;
   DCHECK_NE(this, owning_tree);
@@ -2489,7 +2471,7 @@
     DVLOG(1) << "SetExtendedHitRegionForChildren failed (invalid window id)";
     return;
   }
-  if (window->id().client_id != id_) {
+  if (window->owning_tree_id() != id_) {
     DVLOG(1) << "SetExtendedHitRegionForChildren failed (supplied window that "
              << "client does not own)";
     return;
@@ -2560,7 +2542,7 @@
       window_server_->GetCurrentMoveLoopChangeId() == change_id) {
     ServerWindow* window = window_server_->GetCurrentMoveLoopWindow();
 
-    if (window->id().client_id != id_) {
+    if (window->owning_tree_id() != id_) {
       window_server_->WindowManagerSentBogusMessage();
       window = nullptr;
     } else {
@@ -2679,7 +2661,7 @@
                                            Id transport_window_id) {
   ServerWindow* window =
       GetWindowByClientId(MakeClientWindowId(transport_window_id));
-  if (window && window->id().client_id != id_) {
+  if (window && window->owning_tree_id() != id_) {
     DVLOG(1) << "OnWmCreatedTopLevelWindow failed (invalid window id)";
     window_server_->WindowManagerSentBogusMessage();
     window = nullptr;
@@ -2727,7 +2709,7 @@
     return false;
 
   return display_root->window_manager_state()->window_tree()->id() ==
-         window->id().client_id;
+         window->owning_tree_id();
 }
 
 bool WindowTree::ShouldInterceptEventsForAccessPolicy(
@@ -2739,7 +2721,7 @@
   while (window) {
     // Find the first window created by this client. If there is an embedding,
     // it'll be here.
-    if (window->id().client_id == id_) {
+    if (window->owning_tree_id() == id_) {
       // embedded_tree->embedder_intercepts_events() indicates Embed() was
       // called with kEmbedFlagEmbedderInterceptsEvents. In this case the
       // embedder needs to see the window so that it knows the event is
@@ -2796,10 +2778,6 @@
   client()->OnPerformDragDropCompleted(change_id, success, action_taken);
 }
 
-ServerWindow* WindowTree::GetWindowById(const WindowId& id) {
-  return GetWindow(id);
-}
-
 DragTargetConnection* WindowTree::GetDragTargetForWindow(
     const ServerWindow* window) {
   if (!window)
@@ -2807,7 +2785,7 @@
   DragTargetConnection* connection = window_server_->GetTreeWithRoot(window);
   if (connection)
     return connection;
-  return window_server_->GetTreeWithId(window->id().client_id);
+  return window_server_->GetTreeWithId(window->owning_tree_id());
 }
 
 void WindowTree::PerformOnDragDropStart(
diff --git a/services/ui/ws/window_tree.h b/services/ui/ws/window_tree.h
index 071fb33..b8bc76b 100644
--- a/services/ui/ws/window_tree.h
+++ b/services/ui/ws/window_tree.h
@@ -110,13 +110,6 @@
 
   mojom::WindowTreeClient* client() { return binding_->client(); }
 
-  // Returns the Window with the specified id.
-  ServerWindow* GetWindow(const WindowId& id) {
-    return const_cast<ServerWindow*>(
-        const_cast<const WindowTree*>(this)->GetWindow(id));
-  }
-  const ServerWindow* GetWindow(const WindowId& id) const;
-
   // Returns the Window with the specified client id *only* if known to this
   // client, returns null if not known.
   ServerWindow* GetWindowByClientId(const ClientWindowId& id) {
@@ -350,8 +343,6 @@
   // Returns true if |id| is a valid WindowId for a new window.
   bool IsValidIdForNewWindow(const ClientWindowId& id) const;
 
-  WindowId GenerateNewWindowId();
-
   // These functions return true if the corresponding mojom function is allowed
   // for this tree.
   bool CanReorderWindow(const ServerWindow* window,
@@ -367,15 +358,18 @@
   void GetUnknownWindowsFrom(const ServerWindow* window,
                              std::vector<const ServerWindow*>* windows);
 
+  void AddToMaps(const ServerWindow* window,
+                 const ClientWindowId& client_window_id);
+
   // Removes |window| from the appropriate maps. If |window| is known to this
   // client true is returned.
   bool RemoveFromMaps(const ServerWindow* window);
 
   // Removes |window| and all its descendants from the necessary maps. This
   // does not recurse through windows that were created by this tree. All
-  // windows owned by this tree are added to |local_windows|.
+  // windows created by this tree are added to |created_windows|.
   void RemoveFromKnown(const ServerWindow* window,
-                       std::vector<ServerWindow*>* local_windows);
+                       std::vector<ServerWindow*>* created_windows);
 
   // Removes a root from set of roots of this tree. This does not remove
   // the window from the window tree, only from the set of roots.
@@ -636,7 +630,6 @@
   // DragSource:
   void OnDragMoved(const gfx::Point& location) override;
   void OnDragCompleted(bool success, uint32_t action_taken) override;
-  ServerWindow* GetWindowById(const WindowId& id) override;
   DragTargetConnection* GetDragTargetForWindow(
       const ServerWindow* window) override;
 
@@ -673,8 +666,6 @@
   const ClientSpecificId id_;
   std::string name_;
 
-  ClientSpecificId next_window_id_;
-
   std::unique_ptr<WindowTreeBinding> binding_;
 
   std::unique_ptr<ui::ws::AccessPolicy> access_policy_;
@@ -684,15 +675,13 @@
   std::set<const ServerWindow*> roots_;
 
   // The windows created by this tree. This tree owns these objects.
-  std::unordered_map<WindowId, ServerWindow*, WindowIdHash> created_window_map_;
+  std::set<ServerWindow*> created_windows_;
 
-  // The client is allowed to assign ids. These two maps providing the mapping
-  // from the ids native to the server (WindowId) to those understood by the
-  // client (ClientWindowId).
-  std::unordered_map<ClientWindowId, WindowId, ClientWindowIdHash>
-      client_id_to_window_id_map_;
-  std::unordered_map<WindowId, ClientWindowId, WindowIdHash>
-      window_id_to_client_id_map_;
+  // The client is allowed to assign ids.
+  std::unordered_map<ClientWindowId, const ServerWindow*, ClientWindowIdHash>
+      client_id_to_window_map_;
+  std::unordered_map<const ServerWindow*, ClientWindowId>
+      window_to_client_id_map_;
 
   // Id passed to the client and expected to be supplied back to
   // OnWindowInputEventAck() or OnAcceleratorAck().
diff --git a/services/ui/ws/window_tree_client_unittest.cc b/services/ui/ws/window_tree_client_unittest.cc
index dd38789..7aa0794 100644
--- a/services/ui/ws/window_tree_client_unittest.cc
+++ b/services/ui/ws/window_tree_client_unittest.cc
@@ -16,6 +16,7 @@
 #include "mojo/public/cpp/bindings/binding.h"
 #include "services/service_manager/public/cpp/binder_registry.h"
 #include "services/service_manager/public/cpp/service_test.h"
+#include "services/ui/common/util.h"
 #include "services/ui/public/interfaces/constants.mojom.h"
 #include "services/ui/public/interfaces/window_tree.mojom.h"
 #include "services/ui/public/interfaces/window_tree_host_factory.mojom.h"
diff --git a/services/ui/ws/window_tree_unittest.cc b/services/ui/ws/window_tree_unittest.cc
index 673b73b7..8ce261b6 100644
--- a/services/ui/ws/window_tree_unittest.cc
+++ b/services/ui/ws/window_tree_unittest.cc
@@ -1264,22 +1264,17 @@
   ServerWindow* window = nullptr;
   EXPECT_NO_FATAL_FAILURE(SetupEventTargeting(&embed_client, &tree, &window));
 
-  TestServerWindowDelegate delegate(window_server()->GetVizHostProxy());
-  WindowId window_id(42, 1337);
-  ServerWindow unknown_window(&delegate, window_id);
-  const float new_opacity = 0.5f;
-  ASSERT_NE(new_opacity, unknown_window.opacity());
+  const ClientWindowId root_id = FirstRootId(tree);
 
   EXPECT_FALSE(tree->SetWindowOpacity(
-      ClientWindowId(window_id.client_id, window_id.window_id), new_opacity));
-  EXPECT_NE(new_opacity, unknown_window.opacity());
+      ClientWindowId(root_id.client_id(), root_id.sink_id() + 10), .5f));
 }
 
 TEST_F(WindowTreeTest, SetCaptureTargetsRightConnection) {
   ServerWindow* window = window_event_targeting_helper_.CreatePrimaryTree(
       gfx::Rect(0, 0, 100, 100), gfx::Rect(0, 0, 50, 50));
   WindowTree* owning_tree =
-      window_server()->GetTreeWithId(window->id().client_id);
+      window_server()->GetTreeWithId(window->owning_tree_id());
   WindowTree* embed_tree = window_server()->GetTreeWithRoot(window);
   ASSERT_NE(owning_tree, embed_tree);
   ASSERT_TRUE(
@@ -1561,7 +1556,7 @@
       gfx::Rect(0, 0, 100, 100), gfx::Rect(0, 0, 50, 50));
   TestWindowTreeClient* embed_client = last_window_tree_client();
   WindowTree* owning_tree =
-      window_server()->GetTreeWithId(window->id().client_id);
+      window_server()->GetTreeWithId(window->owning_tree_id());
   WindowTree* embed_tree = window_server()->GetTreeWithRoot(window);
   ASSERT_NE(owning_tree, embed_tree);
 
@@ -1838,7 +1833,8 @@
                   .ProcessSetDisplayRoot(display1, metrics, is_primary_display,
                                          display_root_id));
   ASSERT_TRUE(display_root->parent());
-  const WindowId display1_parent_id = display_root->parent()->id();
+  const viz::FrameSinkId display1_parent_id =
+      display_root->parent()->frame_sink_id();
   EXPECT_TRUE(window_server_delegate()
                   ->last_binding()
                   ->client()
@@ -1855,7 +1851,7 @@
                   .ProcessSetDisplayRoot(display2, metrics, is_primary_display,
                                          display_root_id));
   ASSERT_TRUE(display_root->parent());
-  EXPECT_NE(display1_parent_id, display_root->parent()->id());
+  EXPECT_NE(display1_parent_id, display_root->parent()->frame_sink_id());
   EXPECT_TRUE(window_server_delegate()
                   ->last_binding()
                   ->client()
diff --git a/storage/browser/blob/blob_builder_from_stream.cc b/storage/browser/blob/blob_builder_from_stream.cc
index d696634..0fa1041 100644
--- a/storage/browser/blob/blob_builder_from_stream.cc
+++ b/storage/browser/blob/blob_builder_from_stream.cc
@@ -19,6 +19,35 @@
 // limit is the min of this and limits_.max_bytes_data_item_size.
 constexpr size_t kMaxMemoryChunkSize = 512 * 1024;
 
+// Helper for RunCallbackWhenDataPipeReady, called when the watcher signals us.
+void OnPipeReady(
+    mojo::ScopedDataPipeConsumerHandle pipe,
+    base::OnceCallback<void(mojo::ScopedDataPipeConsumerHandle)> callback,
+    std::unique_ptr<mojo::SimpleWatcher> watcher,
+    MojoResult result,
+    const mojo::HandleSignalsState& state) {
+  // If no more data can be read we must be done, so invalidate the pipe.
+  if (!state.readable())
+    pipe.reset();
+  std::move(callback).Run(std::move(pipe));
+}
+
+// Method that calls a callback when the provided data pipe becomes readable, or
+// is closed.
+void RunCallbackWhenDataPipeReady(
+    mojo::ScopedDataPipeConsumerHandle pipe,
+    base::OnceCallback<void(mojo::ScopedDataPipeConsumerHandle)> callback) {
+  auto watcher = std::make_unique<mojo::SimpleWatcher>(
+      FROM_HERE, mojo::SimpleWatcher::ArmingPolicy::AUTOMATIC);
+  auto* watcher_ptr = watcher.get();
+  auto raw_pipe = pipe.get();
+  watcher_ptr->Watch(
+      raw_pipe, MOJO_HANDLE_SIGNAL_READABLE, MOJO_WATCH_CONDITION_SATISFIED,
+      base::BindRepeating(&OnPipeReady, base::Passed(std::move(pipe)),
+                          base::Passed(std::move(callback)),
+                          base::Passed(std::move(watcher))));
+}
+
 // Helper base-class that reads upto a certain number of bytes from a data pipe.
 // Deletes itself when done.
 class DataPipeConsumerHelper {
@@ -197,6 +226,7 @@
       kMaxBytesInMemory(
           context->memory_controller().limits().min_page_file_size),
       kFileBlockSize(context->memory_controller().limits().min_page_file_size),
+      kMaxFileSize(context->memory_controller().limits().max_file_size),
       context_(std::move(context)),
       callback_(std::move(callback)),
       content_type_(std::move(content_type)),
@@ -204,73 +234,108 @@
       weak_factory_(this) {
   DCHECK(context_);
 
-  // TODO(mek): Take length_hint into account to determine strategy.
-  AllocateMoreSpace(std::move(data));
+  AllocateMoreMemorySpace(length_hint, std::move(data));
 }
 
 BlobBuilderFromStream::~BlobBuilderFromStream() {
   OnError();
 }
 
-void BlobBuilderFromStream::AllocateMoreSpace(
+void BlobBuilderFromStream::AllocateMoreMemorySpace(
+    uint64_t length_hint,
     mojo::ScopedDataPipeConsumerHandle pipe) {
   if (!context_ || !callback_) {
     OnError();
     return;
   }
+  if (!pipe.is_valid()) {
+    OnSuccess();
+    return;
+  }
 
   // If too much data has already been saved in memory, switch to using disk
   // backed data.
-  if (ShouldStoreNextBlockOnDisk()) {
-    AllocateMoreFileSpace(std::move(pipe));
+  if (ShouldStoreNextBlockOnDisk(length_hint)) {
+    AllocateMoreFileSpace(length_hint, std::move(pipe));
     return;
   }
 
+  if (!length_hint)
+    length_hint = kMemoryBlockSize;
+
   if (context_->memory_controller().GetAvailableMemoryForBlobs() <
-      kMemoryBlockSize) {
+      length_hint) {
     OnError();
     return;
   }
-  auto item = base::MakeRefCounted<ShareableBlobDataItem>(
-      BlobDataItem::CreateBytesDescription(kMemoryBlockSize),
-      ShareableBlobDataItem::QUOTA_NEEDED);
+
+  std::vector<scoped_refptr<ShareableBlobDataItem>> chunk_items;
+  while (length_hint > 0) {
+    const auto block_size = std::min<uint64_t>(kMemoryBlockSize, length_hint);
+    chunk_items.push_back(base::MakeRefCounted<ShareableBlobDataItem>(
+        BlobDataItem::CreateBytesDescription(block_size),
+        ShareableBlobDataItem::QUOTA_NEEDED));
+    length_hint -= block_size;
+  }
+  auto items_copy = chunk_items;
   pending_quota_task_ =
       context_->mutable_memory_controller()->ReserveMemoryQuota(
-          {item},
-          base::BindOnce(&BlobBuilderFromStream::QuotaAllocated,
-                         base::Unretained(this), std::move(pipe), item));
+          std::move(chunk_items),
+          base::BindOnce(&BlobBuilderFromStream::MemoryQuotaAllocated,
+                         base::Unretained(this), std::move(pipe),
+                         std::move(items_copy), 0));
 }
 
-void BlobBuilderFromStream::QuotaAllocated(
+void BlobBuilderFromStream::MemoryQuotaAllocated(
     mojo::ScopedDataPipeConsumerHandle pipe,
-    scoped_refptr<ShareableBlobDataItem> item,
+    std::vector<scoped_refptr<ShareableBlobDataItem>> chunk_items,
+    size_t item_to_populate,
     bool success) {
   if (!success || !context_ || !callback_) {
     OnError();
     return;
   }
+  DCHECK_LT(item_to_populate, chunk_items.size());
+  auto item = chunk_items[item_to_populate];
   WritePipeToFutureDataHelper::CreateAndStart(
       std::move(pipe), item->item(),
       base::BindOnce(&BlobBuilderFromStream::DidWriteToMemory,
-                     weak_factory_.GetWeakPtr(), item));
+                     weak_factory_.GetWeakPtr(), std::move(chunk_items),
+                     item_to_populate));
 }
 
 void BlobBuilderFromStream::DidWriteToMemory(
-    scoped_refptr<ShareableBlobDataItem> item,
+    std::vector<scoped_refptr<ShareableBlobDataItem>> chunk_items,
+    size_t populated_item_index,
     uint64_t bytes_written,
     mojo::ScopedDataPipeConsumerHandle pipe) {
   if (!context_ || !callback_) {
     OnError();
     return;
   }
+  DCHECK_LE(populated_item_index, chunk_items.size());
+  auto item = chunk_items[populated_item_index];
   item->set_state(ShareableBlobDataItem::POPULATED_WITH_QUOTA);
   current_total_size_ += bytes_written;
   if (pipe.is_valid()) {
     DCHECK_EQ(item->item()->length(), bytes_written);
     items_.push_back(std::move(item));
-    AllocateMoreSpace(std::move(pipe));
+    // If we still have allocated items for this chunk, just keep going with
+    // those items.
+    if (populated_item_index + 1 < chunk_items.size()) {
+      MemoryQuotaAllocated(std::move(pipe), std::move(chunk_items),
+                           populated_item_index + 1, true);
+    } else {
+      RunCallbackWhenDataPipeReady(
+          std::move(pipe),
+          base::BindOnce(&BlobBuilderFromStream::AllocateMoreMemorySpace,
+                         weak_factory_.GetWeakPtr(), 0));
+    }
   } else {
-    // Pipe has closed, so we must be done.
+    // Pipe has closed, so we must be done. If we allocated more items than we
+    // ended up filling, those remaining items in |chunk_items| will just go out
+    // of scope, resulting in them being destroyed and their allocations to be
+    // freed.
     DCHECK_LE(bytes_written, item->item()->length());
     if (bytes_written > 0) {
       item->item()->ShrinkBytes(bytes_written);
@@ -282,48 +347,70 @@
 }
 
 void BlobBuilderFromStream::AllocateMoreFileSpace(
+    uint64_t length_hint,
     mojo::ScopedDataPipeConsumerHandle pipe) {
   if (!context_ || !callback_) {
     OnError();
     return;
   }
+  if (!pipe.is_valid()) {
+    OnSuccess();
+    return;
+  }
+
+  if (!length_hint)
+    length_hint = kFileBlockSize;
 
   // TODO(mek): Extend existing file until max_page_file_size is reached, rather
   // then creating multiple min_page_file_size files.
 
   if (context_->memory_controller().GetAvailableFileSpaceForBlobs() <
-      kFileBlockSize) {
+      length_hint) {
     OnError();
     return;
   }
-  auto item = base::MakeRefCounted<ShareableBlobDataItem>(
-      BlobDataItem::CreateFutureFile(0, kFileBlockSize, 0),
-      ShareableBlobDataItem::QUOTA_NEEDED);
+
+  std::vector<scoped_refptr<ShareableBlobDataItem>> chunk_items;
+  while (length_hint > 0) {
+    const auto file_size = std::min(kMaxFileSize, length_hint);
+    chunk_items.push_back(base::MakeRefCounted<ShareableBlobDataItem>(
+        BlobDataItem::CreateFutureFile(0, file_size, chunk_items.size()),
+        ShareableBlobDataItem::QUOTA_NEEDED));
+    length_hint -= file_size;
+  }
+  auto items_copy = chunk_items;
   pending_quota_task_ = context_->mutable_memory_controller()->ReserveFileQuota(
-      {item},
+      std::move(chunk_items),
       base::BindOnce(&BlobBuilderFromStream::FileQuotaAllocated,
-                     weak_factory_.GetWeakPtr(), std::move(pipe), item));
+                     base::Unretained(this), std::move(pipe),
+                     std::move(items_copy), 0));
 }
 
 void BlobBuilderFromStream::FileQuotaAllocated(
     mojo::ScopedDataPipeConsumerHandle pipe,
-    scoped_refptr<ShareableBlobDataItem> item,
+    std::vector<scoped_refptr<ShareableBlobDataItem>> chunk_items,
+    size_t item_to_populate,
     std::vector<BlobMemoryController::FileCreationInfo> info,
     bool success) {
   if (!success || !context_ || !callback_) {
     OnError();
     return;
   }
-  DCHECK_EQ(1u, info.size());
+  DCHECK_EQ(chunk_items.size(), info.size());
+  DCHECK_LT(item_to_populate, chunk_items.size());
+  auto item = chunk_items[item_to_populate];
+  base::File file = std::move(info[item_to_populate].file);
   WritePipeToFileHelper::CreateAndStart(
-      std::move(pipe), std::move(info[0].file), item->item()->length(),
+      std::move(pipe), std::move(file), item->item()->length(),
       base::BindOnce(&BlobBuilderFromStream::DidWriteToFile,
-                     weak_factory_.GetWeakPtr(), item, info[0].file_reference));
+                     weak_factory_.GetWeakPtr(), std::move(chunk_items),
+                     std::move(info), item_to_populate));
 }
 
 void BlobBuilderFromStream::DidWriteToFile(
-    scoped_refptr<ShareableBlobDataItem> item,
-    scoped_refptr<ShareableFileReference> file,
+    std::vector<scoped_refptr<ShareableBlobDataItem>> chunk_items,
+    std::vector<BlobMemoryController::FileCreationInfo> info,
+    size_t populated_item_index,
     uint64_t bytes_written,
     mojo::ScopedDataPipeConsumerHandle pipe,
     const base::Time& modification_time) {
@@ -331,16 +418,33 @@
     OnError();
     return;
   }
+  DCHECK_EQ(chunk_items.size(), info.size());
+  DCHECK_LE(populated_item_index, chunk_items.size());
+  auto item = chunk_items[populated_item_index];
+  auto file = info[populated_item_index].file_reference;
   item->item()->PopulateFile(file->path(), modification_time, file);
   item->set_state(ShareableBlobDataItem::POPULATED_WITH_QUOTA);
   current_total_size_ += bytes_written;
   if (pipe.is_valid()) {
     DCHECK_EQ(item->item()->length(), bytes_written);
     items_.push_back(std::move(item));
-    // Once we start writing to file, we keep writing to file.
-    AllocateMoreFileSpace(std::move(pipe));
+    // If we still have allocated items for this chunk, just keep going with
+    // those items.
+    if (populated_item_index + 1 < chunk_items.size()) {
+      FileQuotaAllocated(std::move(pipe), std::move(chunk_items),
+                         populated_item_index + 1, std::move(info), true);
+    } else {
+      // Once we start writing to file, we keep writing to file.
+      RunCallbackWhenDataPipeReady(
+          std::move(pipe),
+          base::BindOnce(&BlobBuilderFromStream::AllocateMoreFileSpace,
+                         weak_factory_.GetWeakPtr(), 0));
+    }
   } else {
-    // Pipe has closed, so we must be done.
+    // Pipe has closed, so we must be done. If we allocated more items than we
+    // ended up filling, those remaining items in |chunk_items| will just go out
+    // of scope, resulting in them being destroyed and their allocations to be
+    // freed.
     DCHECK_LE(bytes_written, item->item()->length());
     if (bytes_written > 0) {
       context_->mutable_memory_controller()->ShrinkFileAllocation(
@@ -372,15 +476,27 @@
                                       content_disposition_, std::move(items_)));
 }
 
-bool BlobBuilderFromStream::ShouldStoreNextBlockOnDisk() {
+bool BlobBuilderFromStream::ShouldStoreNextBlockOnDisk(uint64_t length_hint) {
   DCHECK(context_);
   const BlobMemoryController& controller = context_->memory_controller();
+
+  // Can't write to disk if paging isn't enabled.
   if (!controller.file_paging_enabled())
     return false;
+
+  // If we need more space than we want to fit in memory, immediately
+  // start writing to disk.
+  if (length_hint > kMaxBytesInMemory)
+    return true;
+
+  // If the next memory block would cause us to use more memory than we'd like,
+  // switch to disk.
   if (current_total_size_ + kMemoryBlockSize > kMaxBytesInMemory &&
       controller.GetAvailableFileSpaceForBlobs() >= kFileBlockSize) {
     return true;
   }
+
+  // Switch to disk if otherwise we'd need to page out some other blob.
   return controller.GetAvailableMemoryForBlobs() < kMemoryBlockSize;
 }
 
diff --git a/storage/browser/blob/blob_builder_from_stream.h b/storage/browser/blob/blob_builder_from_stream.h
index b6ad4fc..a9366e4 100644
--- a/storage/browser/blob/blob_builder_from_stream.h
+++ b/storage/browser/blob/blob_builder_from_stream.h
@@ -5,6 +5,7 @@
 #ifndef STORAGE_BROWSER_BLOB_BLOB_BUILDER_FROM_STREAM_H
 #define STORAGE_BROWSER_BLOB_BLOB_BUILDER_FROM_STREAM_H
 
+#include "base/containers/queue.h"
 #include "mojo/public/cpp/system/data_pipe.h"
 #include "mojo/public/cpp/system/simple_watcher.h"
 #include "storage/browser/blob/blob_data_handle.h"
@@ -60,29 +61,39 @@
   class WritePipeToFileHelper;
   class WritePipeToFutureDataHelper;
 
-  void AllocateMoreSpace(mojo::ScopedDataPipeConsumerHandle pipe);
-  void QuotaAllocated(mojo::ScopedDataPipeConsumerHandle pipe,
-                      scoped_refptr<ShareableBlobDataItem> item,
-                      bool success);
-  void DidWriteToMemory(scoped_refptr<ShareableBlobDataItem> item,
-                        uint64_t bytes_written,
-                        mojo::ScopedDataPipeConsumerHandle pipe);
+  void AllocateMoreMemorySpace(uint64_t length_hint,
+                               mojo::ScopedDataPipeConsumerHandle pipe);
+  void MemoryQuotaAllocated(
+      mojo::ScopedDataPipeConsumerHandle pipe,
+      std::vector<scoped_refptr<ShareableBlobDataItem>> chunk_items,
+      size_t item_to_populate,
+      bool success);
+  void DidWriteToMemory(
+      std::vector<scoped_refptr<ShareableBlobDataItem>> chunk_items,
+      size_t populated_item_index,
+      uint64_t bytes_written,
+      mojo::ScopedDataPipeConsumerHandle pipe);
 
-  void AllocateMoreFileSpace(mojo::ScopedDataPipeConsumerHandle pipe);
+  void AllocateMoreFileSpace(uint64_t length_hint,
+                             mojo::ScopedDataPipeConsumerHandle pipe);
   void FileQuotaAllocated(
       mojo::ScopedDataPipeConsumerHandle pipe,
-      scoped_refptr<ShareableBlobDataItem> item,
+      std::vector<scoped_refptr<ShareableBlobDataItem>> chunk_items,
+      size_t item_to_populate,
       std::vector<BlobMemoryController::FileCreationInfo> info,
       bool success);
-  void DidWriteToFile(scoped_refptr<ShareableBlobDataItem> item,
-                      scoped_refptr<ShareableFileReference> file,
-                      uint64_t bytes_written,
-                      mojo::ScopedDataPipeConsumerHandle pipe,
-                      const base::Time& modification_time);
+  void DidWriteToFile(
+      std::vector<scoped_refptr<ShareableBlobDataItem>> chunk_items,
+      std::vector<BlobMemoryController::FileCreationInfo> info,
+      size_t populated_item_index,
+      uint64_t bytes_written,
+      mojo::ScopedDataPipeConsumerHandle pipe,
+      const base::Time& modification_time);
+
   void OnError();
   void OnSuccess();
 
-  bool ShouldStoreNextBlockOnDisk();
+  bool ShouldStoreNextBlockOnDisk(uint64_t length_hint);
 
   // Amount of memory space we allocate at a time.
   const size_t kMemoryBlockSize;
@@ -94,6 +105,9 @@
   // Amount of file space we allocate at a time.
   const uint64_t kFileBlockSize;
 
+  // Maximum size of individual files.
+  const uint64_t kMaxFileSize;
+
   base::WeakPtr<BlobStorageContext> context_;
   ResultCallback callback_;
 
diff --git a/storage/browser/blob/blob_builder_from_stream_unittest.cc b/storage/browser/blob/blob_builder_from_stream_unittest.cc
index 7632546..105b0c8 100644
--- a/storage/browser/blob/blob_builder_from_stream_unittest.cc
+++ b/storage/browser/blob/blob_builder_from_stream_unittest.cc
@@ -12,6 +12,7 @@
 #include "base/test/bind_test_util.h"
 #include "base/test/scoped_task_environment.h"
 #include "mojo/common/data_pipe_utils.h"
+#include "storage/browser/blob/blob_data_item.h"
 #include "storage/browser/blob/blob_storage_context.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
@@ -23,9 +24,18 @@
 constexpr size_t kTestBlobStorageMaxBlobMemorySize = 500;
 constexpr uint64_t kTestBlobStorageMinFileSizeBytes = 32;
 constexpr uint64_t kTestBlobStorageMaxDiskSpace = 1000;
+
+enum class LengthHintTestType {
+  kUnknownSize,
+  kCorrectSize,
+  kTooLargeSize,
+  kTooSmallSize
+};
+
 }  // namespace
 
-class BlobBuilderFromStreamTest : public testing::Test {
+class BlobBuilderFromStreamTest
+    : public testing::TestWithParam<LengthHintTestType> {
  public:
   void SetUp() override {
     ASSERT_TRUE(data_dir_.CreateUniqueTempDir());
@@ -48,13 +58,31 @@
     base::RunLoop().RunUntilIdle();
   }
 
-  std::unique_ptr<BlobDataHandle> BuildFromString(std::string data) {
+  uint64_t GetLengthHint(uint64_t actual_size) {
+    switch (GetParam()) {
+      case LengthHintTestType::kUnknownSize:
+        return 0;
+      case LengthHintTestType::kCorrectSize:
+        return actual_size;
+      case LengthHintTestType::kTooLargeSize:
+        return actual_size + actual_size / 2;
+      case LengthHintTestType::kTooSmallSize:
+        return actual_size / 2;
+    }
+    NOTREACHED();
+    return 0;
+  }
+
+  std::unique_ptr<BlobDataHandle> BuildFromString(
+      std::string data,
+      bool initial_allocation_should_succeed = true) {
     mojo::DataPipe pipe;
     base::RunLoop loop;
     std::unique_ptr<BlobDataHandle> result;
+    uint64_t length_hint = GetLengthHint(data.length());
     BlobBuilderFromStream* finished_builder = nullptr;
     BlobBuilderFromStream builder(
-        context_->AsWeakPtr(), kContentType, kContentDisposition, 0,
+        context_->AsWeakPtr(), kContentType, kContentDisposition, length_hint,
         std::move(pipe.consumer_handle),
         base::BindLambdaForTesting([&](BlobBuilderFromStream* result_builder,
                                        std::unique_ptr<BlobDataHandle> blob) {
@@ -63,6 +91,16 @@
           loop.Quit();
         }));
 
+    // Make sure the initial memory allocation done by the builder matches the
+    // length hint passed in.
+    if (initial_allocation_should_succeed &&
+        GetParam() != LengthHintTestType::kUnknownSize && length_hint != 0) {
+      EXPECT_EQ(length_hint, context_->memory_controller().memory_usage() +
+                                 context_->memory_controller().disk_usage())
+          << " memory_usage: " << context_->memory_controller().memory_usage()
+          << ", disk_usage: " << context_->memory_controller().disk_usage();
+    }
+
     mojo::common::BlockingCopyFromString(data, pipe.producer_handle);
     pipe.producer_handle.reset();
 
@@ -81,13 +119,14 @@
   std::unique_ptr<BlobStorageContext> context_;
 };
 
-TEST_F(BlobBuilderFromStreamTest, CallbackCalledOnDeletion) {
+TEST_P(BlobBuilderFromStreamTest, CallbackCalledOnDeletion) {
   mojo::DataPipe pipe;
 
   base::RunLoop loop;
   BlobBuilderFromStream* builder_ptr = nullptr;
   auto builder = std::make_unique<BlobBuilderFromStream>(
-      context_->AsWeakPtr(), "", "", 0, std::move(pipe.consumer_handle),
+      context_->AsWeakPtr(), "", "", GetLengthHint(16),
+      std::move(pipe.consumer_handle),
       base::BindLambdaForTesting([&](BlobBuilderFromStream* result_builder,
                                      std::unique_ptr<BlobDataHandle> blob) {
         EXPECT_EQ(builder_ptr, result_builder);
@@ -99,7 +138,7 @@
   loop.Run();
 }
 
-TEST_F(BlobBuilderFromStreamTest, EmptyStream) {
+TEST_P(BlobBuilderFromStreamTest, EmptyStream) {
   std::unique_ptr<BlobDataHandle> result = BuildFromString("");
 
   ASSERT_TRUE(result);
@@ -114,7 +153,7 @@
   EXPECT_EQ(0u, context_->memory_controller().disk_usage());
 }
 
-TEST_F(BlobBuilderFromStreamTest, SmallStream) {
+TEST_P(BlobBuilderFromStreamTest, SmallStream) {
   const std::string kData =
       base::RandBytesAsString(kTestBlobStorageMaxBytesDataItemSize + 5);
   std::unique_ptr<BlobDataHandle> result = BuildFromString(kData);
@@ -129,7 +168,7 @@
   EXPECT_EQ(0u, context_->memory_controller().disk_usage());
 }
 
-TEST_F(BlobBuilderFromStreamTest, MediumStream) {
+TEST_P(BlobBuilderFromStreamTest, MediumStream) {
   const std::string kData =
       base::RandBytesAsString(kTestBlobStorageMinFileSizeBytes * 3 + 13);
   std::unique_ptr<BlobDataHandle> result = BuildFromString(kData);
@@ -140,26 +179,128 @@
   EXPECT_EQ(kData.size(), result->size());
 
   // Verify memory usage.
-  EXPECT_EQ(2 * kTestBlobStorageMaxBytesDataItemSize,
-            context_->memory_controller().memory_usage());
-  EXPECT_EQ(kData.size() - 2 * kTestBlobStorageMaxBytesDataItemSize,
-            context_->memory_controller().disk_usage());
+  if (GetParam() == LengthHintTestType::kUnknownSize) {
+    EXPECT_EQ(2 * kTestBlobStorageMaxBytesDataItemSize,
+              context_->memory_controller().memory_usage());
+    EXPECT_EQ(kData.size() - 2 * kTestBlobStorageMaxBytesDataItemSize,
+              context_->memory_controller().disk_usage());
+  } else {
+    EXPECT_EQ(0u, context_->memory_controller().memory_usage());
+    EXPECT_EQ(kData.size(), context_->memory_controller().disk_usage());
+  }
 }
 
-TEST_F(BlobBuilderFromStreamTest, TooLargeForQuota) {
+TEST_P(BlobBuilderFromStreamTest, LargeStream) {
+  const std::string kData = base::RandBytesAsString(
+      kTestBlobStorageMaxDiskSpace - kTestBlobStorageMinFileSizeBytes);
+  std::unique_ptr<BlobDataHandle> result =
+      BuildFromString(kData, GetParam() != LengthHintTestType::kTooLargeSize);
+
+  if (GetParam() == LengthHintTestType::kTooLargeSize) {
+    EXPECT_FALSE(result);
+    EXPECT_EQ(0u, context_->memory_controller().memory_usage());
+    EXPECT_EQ(0u, context_->memory_controller().disk_usage());
+    return;
+  }
+
+  ASSERT_TRUE(result);
+  EXPECT_FALSE(result->uuid().empty());
+  EXPECT_EQ(BlobStatus::DONE, result->GetBlobStatus());
+  EXPECT_EQ(kData.size(), result->size());
+
+  // Verify memory usage.
+  if (GetParam() == LengthHintTestType::kUnknownSize) {
+    EXPECT_EQ(2 * kTestBlobStorageMaxBytesDataItemSize,
+              context_->memory_controller().memory_usage());
+    EXPECT_EQ(kData.size() - 2 * kTestBlobStorageMaxBytesDataItemSize,
+              context_->memory_controller().disk_usage());
+  } else {
+    EXPECT_EQ(0u, context_->memory_controller().memory_usage());
+    EXPECT_EQ(kData.size(), context_->memory_controller().disk_usage());
+  }
+}
+
+TEST_P(BlobBuilderFromStreamTest, TooLargeForQuota) {
   const std::string kData = base::RandBytesAsString(
       kTestBlobStorageMaxDiskSpace + kTestBlobStorageMaxBlobMemorySize + 1);
-  std::unique_ptr<BlobDataHandle> result = BuildFromString(kData);
+  std::unique_ptr<BlobDataHandle> result =
+      BuildFromString(kData, GetParam() == LengthHintTestType::kTooSmallSize);
   EXPECT_FALSE(result);
+
+  // Make sure we clean up files.
+  base::RunLoop().RunUntilIdle();
+  base::TaskScheduler::GetInstance()->FlushForTesting();
+  base::RunLoop().RunUntilIdle();
+
+  EXPECT_EQ(0u, context_->memory_controller().memory_usage());
+  EXPECT_EQ(0u, context_->memory_controller().disk_usage());
 }
 
-TEST_F(BlobBuilderFromStreamTest, TooLargeForQuotaAndNoDisk) {
+TEST_P(BlobBuilderFromStreamTest, TooLargeForQuotaAndNoDisk) {
   context_->DisableFilePagingForTesting();
 
   const std::string kData =
       base::RandBytesAsString(kTestBlobStorageMaxBlobMemorySize + 1);
-  std::unique_ptr<BlobDataHandle> result = BuildFromString(kData);
+  std::unique_ptr<BlobDataHandle> result =
+      BuildFromString(kData, GetParam() == LengthHintTestType::kTooSmallSize);
   EXPECT_FALSE(result);
+  EXPECT_EQ(0u, context_->memory_controller().memory_usage());
+  EXPECT_EQ(0u, context_->memory_controller().disk_usage());
 }
 
+// The next two tests are similar to the previous two, except they don't send
+// any data over the datapipe, but should still result in failure as the
+// initial memory/file allocation should fail.
+TEST_F(BlobBuilderFromStreamTest, HintTooLargeForQuota) {
+  const uint64_t kLengthHint =
+      kTestBlobStorageMaxDiskSpace + kTestBlobStorageMaxBlobMemorySize + 1;
+  mojo::DataPipe pipe;
+  base::RunLoop loop;
+  std::unique_ptr<BlobDataHandle> result;
+  BlobBuilderFromStream builder(
+      context_->AsWeakPtr(), "", "", kLengthHint,
+      std::move(pipe.consumer_handle),
+      base::BindLambdaForTesting(
+          [&](BlobBuilderFromStream*, std::unique_ptr<BlobDataHandle> blob) {
+            result = std::move(blob);
+            loop.Quit();
+          }));
+  pipe.producer_handle.reset();
+  loop.Run();
+
+  EXPECT_FALSE(result);
+  EXPECT_EQ(0u, context_->memory_controller().memory_usage());
+  EXPECT_EQ(0u, context_->memory_controller().disk_usage());
+}
+
+TEST_F(BlobBuilderFromStreamTest, HintTooLargeForQuotaAndNoDisk) {
+  context_->DisableFilePagingForTesting();
+
+  const uint64_t kLengthHint = kTestBlobStorageMaxBlobMemorySize + 1;
+  mojo::DataPipe pipe;
+  base::RunLoop loop;
+  std::unique_ptr<BlobDataHandle> result;
+  BlobBuilderFromStream builder(
+      context_->AsWeakPtr(), "", "", kLengthHint,
+      std::move(pipe.consumer_handle),
+      base::BindLambdaForTesting(
+          [&](BlobBuilderFromStream*, std::unique_ptr<BlobDataHandle> blob) {
+            result = std::move(blob);
+            loop.Quit();
+          }));
+  pipe.producer_handle.reset();
+  loop.Run();
+
+  EXPECT_FALSE(result);
+  EXPECT_EQ(0u, context_->memory_controller().memory_usage());
+  EXPECT_EQ(0u, context_->memory_controller().disk_usage());
+}
+
+INSTANTIATE_TEST_CASE_P(BlobBuilderFromStreamTest,
+                        BlobBuilderFromStreamTest,
+                        ::testing::Values(LengthHintTestType::kUnknownSize,
+                                          LengthHintTestType::kCorrectSize,
+                                          LengthHintTestType::kTooLargeSize,
+                                          LengthHintTestType::kTooSmallSize));
+
 }  // namespace storage
diff --git a/storage/browser/blob/shareable_file_reference.h b/storage/browser/blob/shareable_file_reference.h
index 81dce8c..7b935a0f 100644
--- a/storage/browser/blob/shareable_file_reference.h
+++ b/storage/browser/blob/shareable_file_reference.h
@@ -56,8 +56,10 @@
   // The |callback| is fired when the final reference of this instance
   // is released. If release policy is DELETE_ON_FINAL_RELEASE the
   // callback task(s) is/are posted before the deletion is scheduled.
-  // The callbacks are posted in reverse of the order they were added, as LIFO
-  // generally makes most sense for cleanup work.
+  // The callbacks are posted in reverse of the order they were added, because
+  // LIFO order makes it possible for later cleanup callbacks to restore state
+  // earlier added callbacks might rely on (this is relied on by for example
+  // code in BlobMemoryController, when shrinking file allocations).
   void AddFinalReleaseCallback(FinalReleaseCallback callback);
 
  private:
diff --git a/storage/browser/database/database_quota_client.cc b/storage/browser/database/database_quota_client.cc
index be296e6..bcc8c83 100644
--- a/storage/browser/database/database_quota_client.cc
+++ b/storage/browser/database/database_quota_client.cc
@@ -21,7 +21,7 @@
 #include "storage/browser/database/database_tracker.h"
 #include "storage/browser/database/database_util.h"
 #include "storage/common/database/database_identifier.h"
-#include "third_party/WebKit/common/quota/quota_types.mojom.h"
+#include "third_party/WebKit/public/mojom/quota/quota_types.mojom.h"
 
 using blink::mojom::StorageType;
 using storage::QuotaClient;
diff --git a/storage/browser/database/database_quota_client.h b/storage/browser/database/database_quota_client.h
index 0f1b7c9..7560c65e 100644
--- a/storage/browser/database/database_quota_client.h
+++ b/storage/browser/database/database_quota_client.h
@@ -13,7 +13,7 @@
 #include "base/single_thread_task_runner.h"
 #include "storage/browser/quota/quota_client.h"
 #include "storage/browser/storage_browser_export.h"
-#include "third_party/WebKit/common/quota/quota_types.mojom.h"
+#include "third_party/WebKit/public/mojom/quota/quota_types.mojom.h"
 #include "url/origin.h"
 
 namespace storage {
diff --git a/storage/browser/database/database_tracker.cc b/storage/browser/database/database_tracker.cc
index 45c73631..f6986c4b 100644
--- a/storage/browser/database/database_tracker.cc
+++ b/storage/browser/database/database_tracker.cc
@@ -25,7 +25,7 @@
 #include "storage/browser/quota/quota_manager_proxy.h"
 #include "storage/browser/quota/special_storage_policy.h"
 #include "storage/common/database/database_identifier.h"
-#include "third_party/WebKit/common/quota/quota_types.mojom.h"
+#include "third_party/WebKit/public/mojom/quota/quota_types.mojom.h"
 #include "third_party/sqlite/sqlite3.h"
 #include "url/origin.h"
 
diff --git a/storage/browser/fileapi/file_system_operation_impl.h b/storage/browser/fileapi/file_system_operation_impl.h
index 99de22c..7b63794 100644
--- a/storage/browser/fileapi/file_system_operation_impl.h
+++ b/storage/browser/fileapi/file_system_operation_impl.h
@@ -19,7 +19,7 @@
 #include "storage/browser/fileapi/file_system_url.h"
 #include "storage/browser/fileapi/file_writer_delegate.h"
 #include "storage/browser/storage_browser_export.h"
-#include "third_party/WebKit/common/quota/quota_types.mojom.h"
+#include "third_party/WebKit/public/mojom/quota/quota_types.mojom.h"
 
 namespace storage {
 
diff --git a/storage/browser/fileapi/file_system_quota_client.cc b/storage/browser/fileapi/file_system_quota_client.cc
index a5f151a..e77861c 100644
--- a/storage/browser/fileapi/file_system_quota_client.cc
+++ b/storage/browser/fileapi/file_system_quota_client.cc
@@ -18,7 +18,7 @@
 #include "storage/browser/fileapi/file_system_usage_cache.h"
 #include "storage/browser/fileapi/sandbox_file_system_backend.h"
 #include "storage/common/fileapi/file_system_util.h"
-#include "third_party/WebKit/common/quota/quota_types.mojom.h"
+#include "third_party/WebKit/public/mojom/quota/quota_types.mojom.h"
 #include "url/gurl.h"
 
 using blink::mojom::StorageType;
diff --git a/storage/browser/fileapi/file_system_quota_client.h b/storage/browser/fileapi/file_system_quota_client.h
index 5325de1..1cbaba7 100644
--- a/storage/browser/fileapi/file_system_quota_client.h
+++ b/storage/browser/fileapi/file_system_quota_client.h
@@ -17,7 +17,7 @@
 #include "storage/browser/quota/quota_client.h"
 #include "storage/browser/storage_browser_export.h"
 #include "storage/common/fileapi/file_system_types.h"
-#include "third_party/WebKit/common/quota/quota_types.mojom.h"
+#include "third_party/WebKit/public/mojom/quota/quota_types.mojom.h"
 #include "url/origin.h"
 
 namespace base {
diff --git a/storage/browser/fileapi/file_system_quota_client_unittest.cc b/storage/browser/fileapi/file_system_quota_client_unittest.cc
index c72ebd73..e8b4c830 100644
--- a/storage/browser/fileapi/file_system_quota_client_unittest.cc
+++ b/storage/browser/fileapi/file_system_quota_client_unittest.cc
@@ -21,7 +21,7 @@
 #include "storage/common/fileapi/file_system_types.h"
 #include "storage/common/fileapi/file_system_util.h"
 #include "testing/gtest/include/gtest/gtest.h"
-#include "third_party/WebKit/common/quota/quota_types.mojom.h"
+#include "third_party/WebKit/public/mojom/quota/quota_types.mojom.h"
 #include "url/gurl.h"
 
 using blink::mojom::StorageType;
diff --git a/storage/browser/fileapi/quota/quota_backend_impl.h b/storage/browser/fileapi/quota/quota_backend_impl.h
index 1a3edcf..79f004b 100644
--- a/storage/browser/fileapi/quota/quota_backend_impl.h
+++ b/storage/browser/fileapi/quota/quota_backend_impl.h
@@ -13,7 +13,7 @@
 #include "storage/browser/fileapi/quota/quota_reservation_manager.h"
 #include "storage/browser/fileapi/sandbox_file_system_backend_delegate.h"
 #include "storage/browser/storage_browser_export.h"
-#include "third_party/WebKit/common/quota/quota_types.mojom.h"
+#include "third_party/WebKit/public/mojom/quota/quota_types.mojom.h"
 
 namespace base {
 class SequencedTaskRunner;
diff --git a/storage/browser/fileapi/sandbox_file_stream_writer.h b/storage/browser/fileapi/sandbox_file_stream_writer.h
index 625b799..8471ee7 100644
--- a/storage/browser/fileapi/sandbox_file_stream_writer.h
+++ b/storage/browser/fileapi/sandbox_file_stream_writer.h
@@ -18,7 +18,7 @@
 #include "storage/browser/fileapi/task_runner_bound_observer_list.h"
 #include "storage/browser/storage_browser_export.h"
 #include "storage/common/fileapi/file_system_types.h"
-#include "third_party/WebKit/common/quota/quota_types.mojom.h"
+#include "third_party/WebKit/public/mojom/quota/quota_types.mojom.h"
 #include "url/gurl.h"
 
 namespace storage {
diff --git a/storage/browser/quota/client_usage_tracker.h b/storage/browser/quota/client_usage_tracker.h
index d897579..c2dad19 100644
--- a/storage/browser/quota/client_usage_tracker.h
+++ b/storage/browser/quota/client_usage_tracker.h
@@ -21,7 +21,7 @@
 #include "storage/browser/quota/quota_task.h"
 #include "storage/browser/quota/special_storage_policy.h"
 #include "storage/browser/storage_browser_export.h"
-#include "third_party/WebKit/common/quota/quota_types.mojom.h"
+#include "third_party/WebKit/public/mojom/quota/quota_types.mojom.h"
 #include "url/gurl.h"
 #include "url/origin.h"
 
diff --git a/storage/browser/quota/quota_callbacks.h b/storage/browser/quota/quota_callbacks.h
index e534691..1b5b6ce 100644
--- a/storage/browser/quota/quota_callbacks.h
+++ b/storage/browser/quota/quota_callbacks.h
@@ -16,7 +16,7 @@
 #include "base/callback.h"
 #include "base/containers/flat_map.h"
 #include "storage/browser/quota/quota_client.h"
-#include "third_party/WebKit/common/quota/quota_types.mojom.h"
+#include "third_party/WebKit/public/mojom/quota/quota_types.mojom.h"
 
 class GURL;
 
diff --git a/storage/browser/quota/quota_client.h b/storage/browser/quota/quota_client.h
index 1d48dd3a..5b8e2fde 100644
--- a/storage/browser/quota/quota_client.h
+++ b/storage/browser/quota/quota_client.h
@@ -13,7 +13,7 @@
 
 #include "base/callback.h"
 #include "storage/browser/storage_browser_export.h"
-#include "third_party/WebKit/common/quota/quota_types.mojom.h"
+#include "third_party/WebKit/public/mojom/quota/quota_types.mojom.h"
 #include "url/origin.h"
 
 namespace storage {
diff --git a/storage/browser/quota/quota_database.h b/storage/browser/quota/quota_database.h
index c2a0faeb..b47757b 100644
--- a/storage/browser/quota/quota_database.h
+++ b/storage/browser/quota/quota_database.h
@@ -18,7 +18,7 @@
 #include "base/time/time.h"
 #include "base/timer/timer.h"
 #include "storage/browser/storage_browser_export.h"
-#include "third_party/WebKit/common/quota/quota_types.mojom.h"
+#include "third_party/WebKit/public/mojom/quota/quota_types.mojom.h"
 #include "url/gurl.h"
 
 namespace content {
diff --git a/storage/browser/quota/quota_manager.h b/storage/browser/quota/quota_manager.h
index 9735d89..22914399 100644
--- a/storage/browser/quota/quota_manager.h
+++ b/storage/browser/quota/quota_manager.h
@@ -32,7 +32,7 @@
 #include "storage/browser/quota/special_storage_policy.h"
 #include "storage/browser/quota/storage_observer.h"
 #include "storage/browser/storage_browser_export.h"
-#include "third_party/WebKit/common/quota/quota_types.mojom.h"
+#include "third_party/WebKit/public/mojom/quota/quota_types.mojom.h"
 
 namespace base {
 class FilePath;
diff --git a/storage/browser/quota/quota_manager_proxy.cc b/storage/browser/quota/quota_manager_proxy.cc
index 82d2d62..77626796 100644
--- a/storage/browser/quota/quota_manager_proxy.cc
+++ b/storage/browser/quota/quota_manager_proxy.cc
@@ -13,7 +13,7 @@
 #include "base/strings/string_number_conversions.h"
 #include "base/task_runner_util.h"
 #include "base/trace_event/trace_event.h"
-#include "third_party/WebKit/common/quota/quota_types.mojom.h"
+#include "third_party/WebKit/public/mojom/quota/quota_types.mojom.h"
 
 namespace storage {
 
diff --git a/storage/browser/quota/quota_manager_proxy.h b/storage/browser/quota/quota_manager_proxy.h
index b122271..886ae8ce 100644
--- a/storage/browser/quota/quota_manager_proxy.h
+++ b/storage/browser/quota/quota_manager_proxy.h
@@ -22,7 +22,7 @@
 #include "storage/browser/quota/quota_task.h"
 #include "storage/browser/quota/special_storage_policy.h"
 #include "storage/browser/storage_browser_export.h"
-#include "third_party/WebKit/common/quota/quota_types.mojom.h"
+#include "third_party/WebKit/public/mojom/quota/quota_types.mojom.h"
 #include "url/origin.h"
 
 namespace base {
diff --git a/storage/browser/quota/quota_temporary_storage_evictor.cc b/storage/browser/quota/quota_temporary_storage_evictor.cc
index a0d3017c..2d7687c 100644
--- a/storage/browser/quota/quota_temporary_storage_evictor.cc
+++ b/storage/browser/quota/quota_temporary_storage_evictor.cc
@@ -12,7 +12,7 @@
 #include "base/bind.h"
 #include "base/metrics/histogram_macros.h"
 #include "storage/browser/quota/quota_manager.h"
-#include "third_party/WebKit/common/quota/quota_types.mojom.h"
+#include "third_party/WebKit/public/mojom/quota/quota_types.mojom.h"
 #include "url/gurl.h"
 
 #define UMA_HISTOGRAM_MBYTES(name, sample)          \
diff --git a/storage/browser/quota/quota_temporary_storage_evictor.h b/storage/browser/quota/quota_temporary_storage_evictor.h
index 0932a74..a08ffdc 100644
--- a/storage/browser/quota/quota_temporary_storage_evictor.h
+++ b/storage/browser/quota/quota_temporary_storage_evictor.h
@@ -16,7 +16,7 @@
 #include "base/sequence_checker.h"
 #include "base/timer/timer.h"
 #include "storage/browser/storage_browser_export.h"
-#include "third_party/WebKit/common/quota/quota_types.mojom.h"
+#include "third_party/WebKit/public/mojom/quota/quota_types.mojom.h"
 
 class GURL;
 
diff --git a/storage/browser/quota/storage_monitor.h b/storage/browser/quota/storage_monitor.h
index e4f76828..765068f 100644
--- a/storage/browser/quota/storage_monitor.h
+++ b/storage/browser/quota/storage_monitor.h
@@ -15,7 +15,7 @@
 #include "base/time/time.h"
 #include "base/timer/timer.h"
 #include "storage/browser/quota/storage_observer.h"
-#include "third_party/WebKit/common/quota/quota_types.mojom.h"
+#include "third_party/WebKit/public/mojom/quota/quota_types.mojom.h"
 
 namespace content {
 class StorageMonitorTestBase;
diff --git a/storage/browser/quota/storage_observer.h b/storage/browser/quota/storage_observer.h
index bdb47c2..651f29e 100644
--- a/storage/browser/quota/storage_observer.h
+++ b/storage/browser/quota/storage_observer.h
@@ -9,7 +9,7 @@
 
 #include "base/time/time.h"
 #include "storage/browser/quota/quota_client.h"
-#include "third_party/WebKit/common/quota/quota_types.mojom.h"
+#include "third_party/WebKit/public/mojom/quota/quota_types.mojom.h"
 #include "url/gurl.h"
 
 namespace storage {
diff --git a/storage/browser/quota/usage_tracker.h b/storage/browser/quota/usage_tracker.h
index e42d010..1a1dcca 100644
--- a/storage/browser/quota/usage_tracker.h
+++ b/storage/browser/quota/usage_tracker.h
@@ -20,7 +20,7 @@
 #include "storage/browser/quota/quota_task.h"
 #include "storage/browser/quota/special_storage_policy.h"
 #include "storage/browser/storage_browser_export.h"
-#include "third_party/WebKit/common/quota/quota_types.mojom.h"
+#include "third_party/WebKit/public/mojom/quota/quota_types.mojom.h"
 #include "url/gurl.h"
 
 namespace storage {
diff --git a/storage/browser/test/async_file_test_helper.h b/storage/browser/test/async_file_test_helper.h
index 746388c..bd6645ae 100644
--- a/storage/browser/test/async_file_test_helper.h
+++ b/storage/browser/test/async_file_test_helper.h
@@ -10,7 +10,7 @@
 
 #include "storage/browser/fileapi/file_system_operation.h"
 #include "storage/common/fileapi/file_system_types.h"
-#include "third_party/WebKit/common/quota/quota_types.mojom.h"
+#include "third_party/WebKit/public/mojom/quota/quota_types.mojom.h"
 
 class GURL;
 
diff --git a/storage/browser/test/mock_quota_manager.h b/storage/browser/test/mock_quota_manager.h
index 154f42c5..e0be05f 100644
--- a/storage/browser/test/mock_quota_manager.h
+++ b/storage/browser/test/mock_quota_manager.h
@@ -17,7 +17,7 @@
 #include "storage/browser/quota/quota_client.h"
 #include "storage/browser/quota/quota_manager.h"
 #include "storage/browser/quota/quota_task.h"
-#include "third_party/WebKit/common/quota/quota_types.mojom.h"
+#include "third_party/WebKit/public/mojom/quota/quota_types.mojom.h"
 #include "url/gurl.h"
 
 using blink::mojom::StorageType;
diff --git a/storage/browser/test/mock_quota_manager_proxy.h b/storage/browser/test/mock_quota_manager_proxy.h
index 450e30ae..38294d6 100644
--- a/storage/browser/test/mock_quota_manager_proxy.h
+++ b/storage/browser/test/mock_quota_manager_proxy.h
@@ -11,7 +11,7 @@
 #include "storage/browser/quota/quota_client.h"
 #include "storage/browser/quota/quota_manager_proxy.h"
 #include "storage/browser/test/mock_quota_manager.h"
-#include "third_party/WebKit/common/quota/quota_types.mojom.h"
+#include "third_party/WebKit/public/mojom/quota/quota_types.mojom.h"
 #include "url/gurl.h"
 
 using storage::QuotaManagerProxy;
diff --git a/storage/browser/test/mock_storage_client.h b/storage/browser/test/mock_storage_client.h
index 34d3af7..59403a4d 100644
--- a/storage/browser/test/mock_storage_client.h
+++ b/storage/browser/test/mock_storage_client.h
@@ -18,7 +18,7 @@
 #include "base/memory/weak_ptr.h"
 #include "base/time/time.h"
 #include "storage/browser/quota/quota_client.h"
-#include "third_party/WebKit/common/quota/quota_types.mojom.h"
+#include "third_party/WebKit/public/mojom/quota/quota_types.mojom.h"
 #include "url/origin.h"
 
 namespace storage {
diff --git a/storage/browser/test/sandbox_file_system_test_helper.h b/storage/browser/test/sandbox_file_system_test_helper.h
index 80cd27ea..f8e2ae1a 100644
--- a/storage/browser/test/sandbox_file_system_test_helper.h
+++ b/storage/browser/test/sandbox_file_system_test_helper.h
@@ -16,7 +16,7 @@
 #include "storage/browser/fileapi/task_runner_bound_observer_list.h"
 #include "storage/common/fileapi/file_system_types.h"
 #include "storage/common/fileapi/file_system_util.h"
-#include "third_party/WebKit/common/quota/quota_types.mojom.h"
+#include "third_party/WebKit/public/mojom/quota/quota_types.mojom.h"
 #include "url/gurl.h"
 
 namespace base {
diff --git a/storage/common/fileapi/file_system_util.h b/storage/common/fileapi/file_system_util.h
index 540e526d..97530d1 100644
--- a/storage/common/fileapi/file_system_util.h
+++ b/storage/common/fileapi/file_system_util.h
@@ -13,7 +13,7 @@
 #include "storage/common/fileapi/file_system_info.h"
 #include "storage/common/fileapi/file_system_types.h"
 #include "storage/common/storage_common_export.h"
-#include "third_party/WebKit/common/quota/quota_types.mojom.h"
+#include "third_party/WebKit/public/mojom/quota/quota_types.mojom.h"
 #include "third_party/WebKit/public/platform/WebFileError.h"
 #include "third_party/WebKit/public/platform/WebFileSystemType.h"
 
diff --git a/testing/buildbot/filters/mash.browser_tests.filter b/testing/buildbot/filters/mash.browser_tests.filter
index 0bcf3402..bb83ebd 100644
--- a/testing/buildbot/filters/mash.browser_tests.filter
+++ b/testing/buildbot/filters/mash.browser_tests.filter
@@ -253,9 +253,6 @@
 -WebViewTests/WebViewSizeTest.*
 -WebViewTests/WebViewTest.*
 
-# crbug.com/792641 - Disable tests on mash during Wallpaper re-factoring
--WallPaperPrivateApiTest.*
-
 # Sending invalid FrameSinkIds crbug.com/796999
 -WebviewLoginTest.AllowNewUser
 -EnterpriseEnrollmentTest.TestAuthCodeGetsProperlyReceivedFromGaia
diff --git a/testing/buildbot/filters/mojo.fyi.network_browser_tests.filter b/testing/buildbot/filters/mojo.fyi.network_browser_tests.filter
index f531204..cc744e9 100644
--- a/testing/buildbot/filters/mojo.fyi.network_browser_tests.filter
+++ b/testing/buildbot/filters/mojo.fyi.network_browser_tests.filter
@@ -148,7 +148,10 @@
 -DnsProbeBrowserTest.NoInternetProbeResultWithSlowBrokenCorrections
 
 # crbug.com/776589 Intercepting requests with net::URLRequestFilter.
+-ClientHintsBrowserTest.ClientHintsHttpsSubresourceDifferentOrigin
 -ClientHintsBrowserTest.ClientHintsLifetimeNotAttachedCookiesBlocked
+-ClientHintsBrowserTest.ClientHintsNoLifetimeCookiesNotAllowed
+-ClientHintsBrowserTest.ClientHintsNoLifetimeScriptNotAllowed
 -ContinueWhereILeftOffTest.CookiesClearedOnExit
 -DevToolsSanityTest.TestNetworkPushTime
 -DownloadExtensionTest.DownloadExtensionTest_Download_FileSystemURL
@@ -261,8 +264,6 @@
 
 # http://crbug.com/721414
 # TODO(rockot): add support for webRequest API.
--DeclarativeNetRequestBrowserTest.RendererCacheCleared/0
--DeclarativeNetRequestBrowserTest.RendererCacheCleared/1
 -DevToolsFrontendInWebRequestApiTest.HiddenRequests
 -ExtensionWebRequestApiTest.PostData1
 -ExtensionWebRequestApiTest.PostData2
@@ -272,24 +273,6 @@
 -ExtensionWebRequestApiTest.WebRequestDiceHeaderProtection
 -ExtensionWebRequestApiTest.WebRequestTypes
 -ExtensionWebRequestApiTest.WebRequestWithWithheldPermissions
--WebViewTests/WebViewTest.Shim_TestDeclarativeWebRequestAPI/0
--WebViewTests/WebViewTest.Shim_TestDeclarativeWebRequestAPI/1
--WebViewTests/WebViewTest.Shim_TestDeclarativeWebRequestAPISendMessage/0
--WebViewTests/WebViewTest.Shim_TestDeclarativeWebRequestAPISendMessage/1
--WebViewTests/WebViewTest.Shim_TestDeclarativeWebRequestAPISendMessageSecondWebView/0
--WebViewTests/WebViewTest.Shim_TestDeclarativeWebRequestAPISendMessageSecondWebView/1
--WebViewTests/WebViewTest.Shim_TestWebRequestAPI/0
--WebViewTests/WebViewTest.Shim_TestWebRequestAPI/1
--WebViewTests/WebViewTest.Shim_TestWebRequestAPIErrorOccurred/0
--WebViewTests/WebViewTest.Shim_TestWebRequestAPIErrorOccurred/1
--WebViewTests/WebViewTest.Shim_TestWebRequestAPIGoogleProperty/0
--WebViewTests/WebViewTest.Shim_TestWebRequestAPIGoogleProperty/1
--WebViewTests/WebViewTest.Shim_TestWebRequestAPIOnlyForInstance/0
--WebViewTests/WebViewTest.Shim_TestWebRequestAPIOnlyForInstance/1
--WebViewTests/WebViewTest.Shim_TestWebRequestAPIWithHeaders/0
--WebViewTests/WebViewTest.Shim_TestWebRequestAPIWithHeaders/1
--WebViewTests/WebViewTest.Shim_TestWebRequestListenerSurvivesReparenting/0
--WebViewTests/WebViewTest.Shim_TestWebRequestListenerSurvivesReparenting/1
 
 # http://crbug.com/705114
 # Remove streams concept from code and replace with data pipe passing.
diff --git a/testing/buildbot/filters/mojo.fyi.viz.content_browsertests.filter b/testing/buildbot/filters/mojo.fyi.viz.content_browsertests.filter
index b7e4417..fc3d0e2 100644
--- a/testing/buildbot/filters/mojo.fyi.viz.content_browsertests.filter
+++ b/testing/buildbot/filters/mojo.fyi.viz.content_browsertests.filter
@@ -32,6 +32,7 @@
 -SitePerProcessBrowserTest.PhysicalBackingSizeTest
 -SitePerProcessBrowserTest.ScrollBubblingFromNestedOOPIFTest
 -SitePerProcessBrowserTest.ScrollBubblingFromOOPIFTest
+-SitePerProcessBrowserTest.ScrollBubblingFromOOPIFWithBodyOverflowHidden
 -SitePerProcessBrowserTest.TwoSubframesCreatePopupMenuWidgetsSimultaneously
 -SitePerProcessBrowserTest.ViewBoundsInNestedFrameTest
 -SitePerProcessHitTestBrowserTest.AsynchronousHitTestChildTimeout*
diff --git a/testing/buildbot/filters/viz.content_browsertests.filter b/testing/buildbot/filters/viz.content_browsertests.filter
index 9c4344b9..e690a0fc 100644
--- a/testing/buildbot/filters/viz.content_browsertests.filter
+++ b/testing/buildbot/filters/viz.content_browsertests.filter
@@ -35,6 +35,7 @@
 -SitePerProcessBrowserTest.OOPIFDetachDuringAnimation
 -SitePerProcessBrowserTest.ScrollBubblingFromNestedOOPIFTest
 -SitePerProcessBrowserTest.ScrollBubblingFromOOPIFTest
+-SitePerProcessBrowserTest.ScrollBubblingFromOOPIFWithBodyOverflowHidden
 -SitePerProcessBrowserTest.TwoSubframesCreatePopupMenuWidgetsSimultaneously
 -SitePerProcessBrowserTest.ViewBoundsInNestedFrameTest
 -SitePerProcessBrowserTest.PhysicalBackingSizeTest
diff --git a/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG b/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
index a9e9a88..f345579 100644
--- a/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
+++ b/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
@@ -1,19 +1,22 @@
 # These tests currently fail when they run with --enable-blink-features=LayoutNG
 # See https://crbug.com/591099.
 
-# Need support for getBoundingClientRect() with LayoutNG.
+# Need support for Range.getClientRects() and Range.getBoundingClientRect()
 crbug.com/755750 accessibility/selection-affinity.html [ Failure ]
+crbug.com/755750 fast/dom/Document/CaretRangeFromPoint/caretRangeFromPoint-in-zoom-and-scroll.html [ Failure ]
 
 ## Reverse hosting of editable block
 crbug.com/707656 editing/execCommand/format-block-crash.html [ Crash Pass ]
 crbug.com/707656 editing/input/scroll-viewport-page-up-down.html [ Failure ]
 crbug.com/707656 editing/undo/undo-indent.html [ Crash Pass ]
+crbug.com/707656 editing/selection/click-on-body-margin.html [ Failure ]
 crbug.com/707656 external/wpt/html/editing/editing-0/spelling-and-grammar-checking/spelling-markers-001.html [ Crash Pass ]
 crbug.com/707656 external/wpt/html/editing/focus/processing-model/focus-fixup-rule-one-no-dialogs.html [ Crash Pass ]
 crbug.com/789878 fast/css/first-letter-capitalized-edit-select-crash.html [ Failure ]
 crbug.com/707656 fast/css/readwrite-contenteditable-recalc.html [ Crash Pass ]
 crbug.com/789878 fast/css/readwrite-contenteditable.html [ Failure ]
 crbug.com/789878 fast/inline/inline-focus-ring.html [ Failure ]
+crbug.com/707656 fast/inline-block/14498-positionForCoordinates.html [ Failure ]
 
 # NGPhysicalFragment has stale style.
 crbug.com/812981 scrollbars/scrollbar-pointer-events.html [ Failure ]
@@ -2661,14 +2664,6 @@
 crbug.com/591099 fast/doctypes/004.html [ Failure ]
 crbug.com/591099 fast/dom/34176.html [ Failure ]
 crbug.com/591099 fast/dom/52776.html [ Failure ]
-crbug.com/714962 fast/dom/Document/CaretRangeFromPoint/basic.html [ Failure ]
-crbug.com/714962 fast/dom/Document/CaretRangeFromPoint/caretRangeFromPoint-in-strict-mode-wtih-checkbox.html [ Failure ]
-crbug.com/714962 fast/dom/Document/CaretRangeFromPoint/caretRangeFromPoint-in-user-select-none.html [ Failure ]
-crbug.com/714962 fast/dom/Document/CaretRangeFromPoint/caretRangeFromPoint-in-zoom-and-scroll.html [ Failure ]
-crbug.com/591099 fast/dom/Document/CaretRangeFromPoint/caretRangeFromPoint-with-before-style.html [ Failure ]
-crbug.com/714962 fast/dom/Document/CaretRangeFromPoint/caretRangeFromPoint-with-first-letter-style.html [ Failure ]
-crbug.com/714962 fast/dom/Document/CaretRangeFromPoint/hittest-relative-to-viewport.html [ Failure ]
-crbug.com/714962 fast/dom/Document/CaretRangeFromPoint/replace-element.html [ Failure ]
 crbug.com/714962 fast/dom/Element/client-rect-list-argument.html [ Failure ]
 crbug.com/591099 fast/dom/Element/getBoundingClientRect.html [ Failure ]
 crbug.com/714962 fast/dom/Element/getClientRects.html [ Failure ]
diff --git a/third_party/WebKit/LayoutTests/FlagExpectations/enable-features=NetworkService b/third_party/WebKit/LayoutTests/FlagExpectations/enable-features=NetworkService
index 02e83e82..aac0001e 100644
--- a/third_party/WebKit/LayoutTests/FlagExpectations/enable-features=NetworkService
+++ b/third_party/WebKit/LayoutTests/FlagExpectations/enable-features=NetworkService
@@ -26,7 +26,6 @@
 crbug.com/807271 external/wpt/service-workers/service-worker/fetch-canvas-tainting-video-cache.https.html [ Failure ]
 Bug(none) external/wpt/service-workers/service-worker/fetch-header-visibility.https.html [ Pass Failure Crash ]
 Bug(none) external/wpt/service-workers/service-worker/fetch-request-xhr-sync.https.html [ Timeout ]
-Bug(none) external/wpt/service-workers/service-worker/import-scripts-resource-map.https.html [ Failure Crash ]
 crbug.com/771118 external/wpt/service-workers/service-worker/mime-sniffing.https.html [ Failure ]
 Bug(none) external/wpt/service-workers/service-worker/registration-updateviacache.https.html [ Failure Timeout ]
 Bug(none) external/wpt/service-workers/service-worker/shared-worker-controlled.https.html [ Timeout ]
diff --git a/third_party/WebKit/LayoutTests/TestExpectations b/third_party/WebKit/LayoutTests/TestExpectations
index 08d72be..297a38f 100644
--- a/third_party/WebKit/LayoutTests/TestExpectations
+++ b/third_party/WebKit/LayoutTests/TestExpectations
@@ -1479,8 +1479,8 @@
 crbug.com/600248 external/wpt/web-animations/interfaces/Animation/oncancel.html [ Pass Failure ]
 crbug.com/771977 external/wpt/web-animations/interfaces/Animation/onfinish.html [ Failure ]
 crbug.com/772048 crbug.com/772060 external/wpt/web-animations/timing-model/animations/updating-the-finished-state.html [ Timeout ]
-crbug.com/772014 external/wpt/web-animations/animation-model/animation-types/interpolation-per-property.html [ Timeout ]
-crbug.com/772014 external/wpt/web-animations/animation-model/animation-types/addition-per-property.html [ Timeout ]
+crbug.com/816534 external/wpt/web-animations/animation-model/animation-types/interpolation-per-property.html [ Pass Crash ]
+crbug.com/816534 external/wpt/web-animations/animation-model/animation-types/addition-per-property.html [ Pass Crash ]
 crbug.com/771722 external/wpt/web-animations/timing-model/animations/the-current-time-of-an-animation.html [ Failure ]
 crbug.com/771722 crbug.com/771751 crbug.com/772060 external/wpt/web-animations/timing-model/animations/setting-the-start-time-of-an-animation.html [ Failure ]
 
@@ -2050,9 +2050,8 @@
 crbug.com/626703 external/wpt/wasm/wasm_local_iframe_test.html [ Failure ]
 crbug.com/626703 external/wpt/wasm/wasm_serialization_tests.html [ Failure ]
 crbug.com/626703 external/wpt/wasm/wasm_service_worker_test.https.html [ Failure ]
-crbug.com/626703 external/wpt/web-animations/animation-model/animation-types/accumulation-per-property.html [ Timeout ]
+crbug.com/816534 external/wpt/web-animations/animation-model/animation-types/accumulation-per-property.html [ Pass Crash ]
 crbug.com/626703 external/wpt/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/mediaElementAudioSourceToScriptProcessorTest.html [ Timeout ]
-crbug.com/626703 [ Mac10.13 ] external/wpt/webauthn/interfaces.https.html [ Timeout ]
 crbug.com/626703 external/wpt/webrtc/RTCPeerConnection-setLocalDescription-rollback.html [ Timeout ]
 crbug.com/626703 external/wpt/webrtc/RTCPeerConnection-setRemoteDescription.html [ Timeout ]
 crbug.com/626703 external/wpt/webrtc/RTCPeerConnection-setRemoteDescription-rollback.html [ Timeout ]
@@ -3416,8 +3415,6 @@
 crbug.com/417782 http/tests/misc/acid3.html [ Failure ]
 crbug.com/417782 inspector-protocol/css/css-get-background-colors.js [ Failure ]
 crbug.com/417782 inspector-protocol/dom-snapshot/dom-snapshot-getSnapshot.js [ Failure ]
-crbug.com/417782 [ Mac ] paint/invalidation/forms/checkbox-focus-by-mouse-then-keydown.html [ Failure Pass ]
-crbug.com/417782 [ Mac ] paint/invalidation/forms/radio-focus-by-mouse-then-keydown.html [ Failure Pass ]
 crbug.com/417782 paint/invalidation/window-resize/window-resize-vertical-writing-mode.html [ Crash ]
 crbug.com/417782 virtual/disable-spv175/paint/invalidation/window-resize/window-resize-vertical-writing-mode.html [ Skip ]
 crbug.com/417782 [ Linux ] virtual/android/fullscreen/compositor-touch-hit-rects-fullscreen-video-controls.html [ Failure ]
@@ -3492,3 +3489,26 @@
 
 # Sheriff 2018-02-26
 crbug.com/816475 [ Win7 ] external/wpt/webrtc/RTCDTMFSender-ontonechange.https.html [ Failure Pass ]
+crbug.com/816868 [ Win7 ] external/wpt/css/css-text/text-align/text-align-end-007.html [ Failure Pass ]
+crbug.com/816868 [ Win7 ] external/wpt/css/css-text/text-align/text-align-end-008.html [ Failure Pass ]
+crbug.com/816868 [ Win7 ] external/wpt/css/css-text/text-align/text-align-end-016.html [ Failure Pass ]
+crbug.com/816868 [ Win7 ] external/wpt/css/css-text/text-align/text-align-end-017.html [ Failure Pass ]
+crbug.com/816868 [ Win7 ] external/wpt/css/css-text/text-align/text-align-justify-001.html [ Failure Pass ]
+crbug.com/816868 [ Win7 ] external/wpt/css/css-text/text-align/text-align-justify-002.html [ Failure Pass ]
+crbug.com/816868 [ Win7 ] external/wpt/css/css-text/text-align/text-align-justify-003.html [ Failure Pass ]
+crbug.com/816868 [ Win7 ] external/wpt/css/css-text/text-align/text-align-start-015.html [ Failure Pass ]
+crbug.com/816868 [ Win7 ] external/wpt/css/css-text/text-align/text-align-start-016.html [ Failure Pass ]
+crbug.com/816868 [ Win7 ] external/wpt/css/css-text/text-align/text-align-start-017.html [ Failure Pass ]
+crbug.com/816868 [ Win7 ] external/wpt/css/css-text/white-space/pre-wrap-001.html [ Failure Pass ]
+crbug.com/816868 [ Win7 ] external/wpt/css/css-text/white-space/pre-wrap-003.html [ Failure Pass ]
+crbug.com/816868 [ Win7 ] external/wpt/css/css-text/white-space/pre-wrap-007.html [ Failure Pass ]
+crbug.com/816868 [ Win7 ] external/wpt/css/css-text/white-space/pre-wrap-009.html [ Failure Pass ]
+crbug.com/816868 [ Win7 ] external/wpt/css/css-text/white-space/pre-wrap-012.html [ Failure Pass ]
+crbug.com/816868 [ Win7 ] external/wpt/css/css-text/white-space/pre-wrap-014.html [ Failure Pass ]
+crbug.com/816868 [ Win7 ] external/wpt/css/css-text/white-space/textarea-pre-wrap-003.html [ Failure Pass ]
+crbug.com/816868 [ Win7 ] external/wpt/css/css-text/white-space/textarea-pre-wrap-004.html [ Failure Pass ]
+crbug.com/816868 [ Win7 ] external/wpt/css/css-text/white-space/textarea-pre-wrap-006.html [ Failure Pass ]
+crbug.com/816868 [ Win7 ] external/wpt/css/css-text/white-space/textarea-pre-wrap-011.html [ Failure Pass ]
+crbug.com/816914 [ Mac ] fast/canvas/canvas-drawImage-live-video.html [ Failure Pass ]
+crbug.com/816766 [ Mac ] fast/dom/Window/window-focus-self.html [ Failure Pass ]
+crbug.com/817167 http/tests/devtools/oopif/oopif-cookies-refresh.js [ Failure Timeout Pass ]
diff --git a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/idlharness.https.worker-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/idlharness.https.worker-expected.txt
index f9ad717..a83da9a 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/idlharness.https.worker-expected.txt
+++ b/third_party/WebKit/LayoutTests/external/wpt/WebCryptoAPI/idlharness.https.worker-expected.txt
@@ -7,8 +7,11 @@
 PASS Crypto interface object name
 PASS Crypto interface: existence and properties of interface prototype object
 PASS Crypto interface: existence and properties of interface prototype object's "constructor" property
+PASS Crypto interface: existence and properties of interface prototype object's @@unscopables property
 PASS Crypto interface: attribute subtle
+PASS Unscopable handled correctly for subtle property on Crypto
 PASS Crypto interface: operation getRandomValues(ArrayBufferView)
+PASS Unscopable handled correctly for getRandomValues(ArrayBufferView) on Crypto
 PASS Crypto must be primary interface of crypto
 PASS Stringification of crypto
 PASS Crypto interface: crypto must inherit property "subtle" with the proper type
@@ -19,27 +22,45 @@
 PASS CryptoKey interface object name
 PASS CryptoKey interface: existence and properties of interface prototype object
 PASS CryptoKey interface: existence and properties of interface prototype object's "constructor" property
+PASS CryptoKey interface: existence and properties of interface prototype object's @@unscopables property
 PASS CryptoKey interface: attribute type
+PASS Unscopable handled correctly for type property on CryptoKey
 PASS CryptoKey interface: attribute extractable
+PASS Unscopable handled correctly for extractable property on CryptoKey
 PASS CryptoKey interface: attribute algorithm
+PASS Unscopable handled correctly for algorithm property on CryptoKey
 PASS CryptoKey interface: attribute usages
+PASS Unscopable handled correctly for usages property on CryptoKey
 PASS SubtleCrypto interface: existence and properties of interface object
 PASS SubtleCrypto interface object length
 PASS SubtleCrypto interface object name
 PASS SubtleCrypto interface: existence and properties of interface prototype object
 PASS SubtleCrypto interface: existence and properties of interface prototype object's "constructor" property
+PASS SubtleCrypto interface: existence and properties of interface prototype object's @@unscopables property
 PASS SubtleCrypto interface: operation encrypt(AlgorithmIdentifier, CryptoKey, BufferSource)
+PASS Unscopable handled correctly for encrypt(AlgorithmIdentifier, CryptoKey, BufferSource) on SubtleCrypto
 PASS SubtleCrypto interface: operation decrypt(AlgorithmIdentifier, CryptoKey, BufferSource)
+PASS Unscopable handled correctly for decrypt(AlgorithmIdentifier, CryptoKey, BufferSource) on SubtleCrypto
 PASS SubtleCrypto interface: operation sign(AlgorithmIdentifier, CryptoKey, BufferSource)
+PASS Unscopable handled correctly for sign(AlgorithmIdentifier, CryptoKey, BufferSource) on SubtleCrypto
 PASS SubtleCrypto interface: operation verify(AlgorithmIdentifier, CryptoKey, BufferSource, BufferSource)
+PASS Unscopable handled correctly for verify(AlgorithmIdentifier, CryptoKey, BufferSource, BufferSource) on SubtleCrypto
 PASS SubtleCrypto interface: operation digest(AlgorithmIdentifier, BufferSource)
+PASS Unscopable handled correctly for digest(AlgorithmIdentifier, BufferSource) on SubtleCrypto
 PASS SubtleCrypto interface: operation generateKey(AlgorithmIdentifier, boolean, [object Object])
+PASS Unscopable handled correctly for generateKey(AlgorithmIdentifier, boolean, [object Object]) on SubtleCrypto
 PASS SubtleCrypto interface: operation deriveKey(AlgorithmIdentifier, CryptoKey, AlgorithmIdentifier, boolean, [object Object])
+PASS Unscopable handled correctly for deriveKey(AlgorithmIdentifier, CryptoKey, AlgorithmIdentifier, boolean, [object Object]) on SubtleCrypto
 PASS SubtleCrypto interface: operation deriveBits(AlgorithmIdentifier, CryptoKey, unsigned long)
+PASS Unscopable handled correctly for deriveBits(AlgorithmIdentifier, CryptoKey, unsigned long) on SubtleCrypto
 PASS SubtleCrypto interface: operation importKey(KeyFormat, [object Object],[object Object], AlgorithmIdentifier, boolean, [object Object])
+PASS Unscopable handled correctly for importKey(KeyFormat, [object Object],[object Object], AlgorithmIdentifier, boolean, [object Object]) on SubtleCrypto
 PASS SubtleCrypto interface: operation exportKey(KeyFormat, CryptoKey)
+PASS Unscopable handled correctly for exportKey(KeyFormat, CryptoKey) on SubtleCrypto
 PASS SubtleCrypto interface: operation wrapKey(KeyFormat, CryptoKey, CryptoKey, AlgorithmIdentifier)
+PASS Unscopable handled correctly for wrapKey(KeyFormat, CryptoKey, CryptoKey, AlgorithmIdentifier) on SubtleCrypto
 PASS SubtleCrypto interface: operation unwrapKey(KeyFormat, BufferSource, CryptoKey, AlgorithmIdentifier, AlgorithmIdentifier, boolean, [object Object])
+PASS Unscopable handled correctly for unwrapKey(KeyFormat, BufferSource, CryptoKey, AlgorithmIdentifier, AlgorithmIdentifier, boolean, [object Object]) on SubtleCrypto
 PASS SubtleCrypto must be primary interface of crypto.subtle
 PASS Stringification of crypto.subtle
 PASS SubtleCrypto interface: crypto.subtle must inherit property "encrypt(AlgorithmIdentifier, CryptoKey, BufferSource)" with the proper type
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/WebIDL/ecmascript-binding/default-iterator-object-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/WebIDL/ecmascript-binding/default-iterator-object-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/WebIDL/ecmascript-binding/default-iterator-object-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/WebIDL/ecmascript-binding/default-iterator-object-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/WebIDL/ecmascript-binding/iterator-prototype-object-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/WebIDL/ecmascript-binding/iterator-prototype-object-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/WebIDL/ecmascript-binding/iterator-prototype-object-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/WebIDL/ecmascript-binding/iterator-prototype-object-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accelerometer/LinearAccelerationSensor-shake-threshold-manual.https-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accelerometer/LinearAccelerationSensor-shake-threshold-manual.https-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accelerometer/LinearAccelerationSensor-shake-threshold-manual.https-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accelerometer/LinearAccelerationSensor-shake-threshold-manual.https-expected.txt
diff --git a/third_party/WebKit/LayoutTests/external/wpt/accelerometer/idlharness.https-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accelerometer/idlharness.https-expected.txt
index dba6f07..1911e73ae 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/accelerometer/idlharness.https-expected.txt
+++ b/third_party/WebKit/LayoutTests/external/wpt/accelerometer/idlharness.https-expected.txt
@@ -5,22 +5,35 @@
 PASS Sensor interface object name
 PASS Sensor interface: existence and properties of interface prototype object
 PASS Sensor interface: existence and properties of interface prototype object's "constructor" property
+PASS Sensor interface: existence and properties of interface prototype object's @@unscopables property
 PASS Sensor interface: attribute activated
+PASS Unscopable handled correctly for activated property on Sensor
 PASS Sensor interface: attribute hasReading
+PASS Unscopable handled correctly for hasReading property on Sensor
 PASS Sensor interface: attribute timestamp
+PASS Unscopable handled correctly for timestamp property on Sensor
 PASS Sensor interface: operation start()
+PASS Unscopable handled correctly for start() on Sensor
 PASS Sensor interface: operation stop()
+PASS Unscopable handled correctly for stop() on Sensor
 PASS Sensor interface: attribute onreading
+PASS Unscopable handled correctly for onreading property on Sensor
 PASS Sensor interface: attribute onactivate
+PASS Unscopable handled correctly for onactivate property on Sensor
 PASS Sensor interface: attribute onerror
+PASS Unscopable handled correctly for onerror property on Sensor
 PASS Accelerometer interface: existence and properties of interface object
 PASS Accelerometer interface object length
 PASS Accelerometer interface object name
 PASS Accelerometer interface: existence and properties of interface prototype object
 PASS Accelerometer interface: existence and properties of interface prototype object's "constructor" property
+PASS Accelerometer interface: existence and properties of interface prototype object's @@unscopables property
 PASS Accelerometer interface: attribute x
+PASS Unscopable handled correctly for x property on Accelerometer
 PASS Accelerometer interface: attribute y
+PASS Unscopable handled correctly for y property on Accelerometer
 PASS Accelerometer interface: attribute z
+PASS Unscopable handled correctly for z property on Accelerometer
 PASS Accelerometer must be primary interface of new Accelerometer();
 PASS Stringification of new Accelerometer();
 PASS Accelerometer interface: new Accelerometer(); must inherit property "x" with the proper type
@@ -39,6 +52,7 @@
 PASS LinearAccelerationSensor interface object name
 PASS LinearAccelerationSensor interface: existence and properties of interface prototype object
 PASS LinearAccelerationSensor interface: existence and properties of interface prototype object's "constructor" property
+PASS LinearAccelerationSensor interface: existence and properties of interface prototype object's @@unscopables property
 PASS LinearAccelerationSensor must be primary interface of new LinearAccelerationSensor();
 PASS Stringification of new LinearAccelerationSensor();
 PASS Accelerometer interface: new LinearAccelerationSensor(); must inherit property "x" with the proper type
@@ -57,6 +71,7 @@
 FAIL GravitySensor interface object name assert_own_property: self does not have own property "GravitySensor" expected property "GravitySensor" missing
 FAIL GravitySensor interface: existence and properties of interface prototype object assert_own_property: self does not have own property "GravitySensor" expected property "GravitySensor" missing
 FAIL GravitySensor interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "GravitySensor" expected property "GravitySensor" missing
+FAIL GravitySensor interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "GravitySensor" expected property "GravitySensor" missing
 FAIL GravitySensor must be primary interface of new GravitySensor(); assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GravitySensor is not defined"
 FAIL Stringification of new GravitySensor(); assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GravitySensor is not defined"
 FAIL Accelerometer interface: new GravitySensor(); must inherit property "x" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GravitySensor is not defined"
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/description_from_content_of_describedby_element-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/description_from_content_of_describedby_element-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/description_from_content_of_describedby_element-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/description_from_content_of_describedby_element-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/description_from_content_of_describedby_element_which_is_hidden-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/description_from_content_of_describedby_element_which_is_hidden-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/description_from_content_of_describedby_element_which_is_hidden-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/description_from_content_of_describedby_element_which_is_hidden-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/description_test_case_664-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/description_test_case_664-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/description_test_case_664-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/description_test_case_664-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/description_test_case_665-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/description_test_case_665-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/description_test_case_665-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/description_test_case_665-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/description_test_case_666-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/description_test_case_666-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/description_test_case_666-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/description_test_case_666-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_checkbox-label-embedded-combobox-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_checkbox-label-embedded-combobox-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_checkbox-label-embedded-combobox-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_checkbox-label-embedded-combobox-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_checkbox-label-embedded-menu-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_checkbox-label-embedded-menu-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_checkbox-label-embedded-menu-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_checkbox-label-embedded-menu-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_checkbox-label-embedded-select-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_checkbox-label-embedded-select-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_checkbox-label-embedded-select-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_checkbox-label-embedded-select-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_checkbox-label-embedded-slider-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_checkbox-label-embedded-slider-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_checkbox-label-embedded-slider-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_checkbox-label-embedded-slider-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_checkbox-label-embedded-spinbutton-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_checkbox-label-embedded-spinbutton-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_checkbox-label-embedded-spinbutton-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_checkbox-label-embedded-spinbutton-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_checkbox-title-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_checkbox-title-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_checkbox-title-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_checkbox-title-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_file-label-embedded-combobox-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_file-label-embedded-combobox-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_file-label-embedded-combobox-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_file-label-embedded-combobox-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_file-label-embedded-menu-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_file-label-embedded-menu-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_file-label-embedded-menu-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_file-label-embedded-menu-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_file-label-embedded-select-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_file-label-embedded-select-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_file-label-embedded-select-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_file-label-embedded-select-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_file-label-embedded-slider-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_file-label-embedded-slider-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_file-label-embedded-slider-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_file-label-embedded-slider-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_file-label-embedded-spinbutton-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_file-label-embedded-spinbutton-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_file-label-embedded-spinbutton-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_file-label-embedded-spinbutton-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_file-title-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_file-title-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_file-title-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_file-title-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_from_content-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_from_content-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_from_content-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_from_content-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_from_content_of_label-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_from_content_of_label-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_from_content_of_label-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_from_content_of_label-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_from_content_of_labelledby_element-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_from_content_of_labelledby_element-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_from_content_of_labelledby_element-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_from_content_of_labelledby_element-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_from_content_of_labelledby_elements_one_of_which_is_hidden-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_from_content_of_labelledby_elements_one_of_which_is_hidden-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_from_content_of_labelledby_elements_one_of_which_is_hidden-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_from_content_of_labelledby_elements_one_of_which_is_hidden-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_image-title-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_image-title-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_image-title-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_image-title-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_password-label-embedded-combobox-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_password-label-embedded-combobox-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_password-label-embedded-combobox-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_password-label-embedded-combobox-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_password-label-embedded-menu-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_password-label-embedded-menu-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_password-label-embedded-menu-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_password-label-embedded-menu-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_password-label-embedded-select-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_password-label-embedded-select-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_password-label-embedded-select-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_password-label-embedded-select-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_password-label-embedded-slider-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_password-label-embedded-slider-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_password-label-embedded-slider-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_password-label-embedded-slider-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_password-label-embedded-spinbutton-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_password-label-embedded-spinbutton-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_password-label-embedded-spinbutton-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_password-label-embedded-spinbutton-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_password-title-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_password-title-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_password-title-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_password-title-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_radio-label-embedded-combobox-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_radio-label-embedded-combobox-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_radio-label-embedded-combobox-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_radio-label-embedded-combobox-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_radio-label-embedded-menu-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_radio-label-embedded-menu-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_radio-label-embedded-menu-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_radio-label-embedded-menu-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_radio-label-embedded-select-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_radio-label-embedded-select-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_radio-label-embedded-select-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_radio-label-embedded-select-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_radio-label-embedded-slider-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_radio-label-embedded-slider-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_radio-label-embedded-slider-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_radio-label-embedded-slider-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_radio-label-embedded-spinbutton-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_radio-label-embedded-spinbutton-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_radio-label-embedded-spinbutton-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_radio-label-embedded-spinbutton-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_radio-title-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_radio-title-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_radio-title-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_radio-title-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_539-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_539-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_539-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_539-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_540-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_540-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_540-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_540-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_541-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_541-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_541-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_541-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_543-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_543-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_543-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_543-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_544-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_544-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_544-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_544-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_545-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_545-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_545-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_545-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_546-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_546-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_546-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_546-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_547-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_547-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_547-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_547-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_548-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_548-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_548-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_548-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_549-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_549-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_549-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_549-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_550-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_550-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_550-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_550-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_551-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_551-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_551-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_551-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_552-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_552-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_552-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_552-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_553-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_553-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_553-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_553-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_556-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_556-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_556-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_556-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_557-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_557-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_557-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_557-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_558-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_558-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_558-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_558-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_559-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_559-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_559-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_559-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_560-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_560-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_560-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_560-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_561-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_561-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_561-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_561-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_562-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_562-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_562-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_562-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_563-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_563-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_563-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_563-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_564-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_564-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_564-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_564-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_565-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_565-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_565-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_565-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_566-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_566-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_566-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_566-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_596-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_596-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_596-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_596-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_597-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_597-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_597-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_597-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_598-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_598-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_598-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_598-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_599-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_599-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_599-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_599-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_600-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_600-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_600-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_600-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_601-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_601-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_601-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_601-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_602-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_602-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_602-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_602-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_603-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_603-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_603-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_603-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_604-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_604-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_604-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_604-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_605-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_605-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_605-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_605-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_606-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_606-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_606-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_606-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_607-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_607-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_607-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_607-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_608-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_608-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_608-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_608-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_609-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_609-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_609-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_609-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_610-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_610-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_610-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_610-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_611-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_611-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_611-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_611-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_612-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_612-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_612-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_612-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_613-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_613-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_613-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_613-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_614-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_614-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_614-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_614-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_615-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_615-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_615-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_615-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_616-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_616-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_616-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_616-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_617-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_617-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_617-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_617-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_618-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_618-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_618-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_618-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_619-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_619-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_619-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_619-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_620-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_620-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_620-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_620-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_621-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_621-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_621-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_621-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_659-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_659-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_659-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_659-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_660-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_660-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_660-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_660-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_661-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_661-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_661-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_661-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_662-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_662-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_662-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_662-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_663-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_663-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_663-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_663-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_663a-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_663a-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_663a-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_663a-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_721-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_721-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_721-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_721-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_723-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_723-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_723-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_723-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_724-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_724-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_724-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_724-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_725-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_725-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_725-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_725-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_726-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_726-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_726-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_726-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_727-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_727-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_727-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_727-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_728-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_728-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_728-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_728-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_729-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_729-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_729-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_729-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_730-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_730-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_730-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_730-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_731-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_731-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_731-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_731-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_733-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_733-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_733-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_733-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_734-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_734-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_734-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_734-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_735-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_735-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_735-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_735-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_736-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_736-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_736-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_736-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_737-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_737-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_737-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_737-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_738-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_738-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_738-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_738-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_739-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_739-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_739-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_739-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_740-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_740-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_740-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_740-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_741-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_741-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_741-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_741-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_742-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_742-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_742-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_742-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_743-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_743-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_743-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_743-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_744-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_744-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_744-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_744-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_745-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_745-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_745-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_745-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_746-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_746-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_746-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_746-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_747-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_747-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_747-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_747-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_748-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_748-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_748-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_748-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_749-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_749-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_749-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_749-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_750-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_750-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_750-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_750-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_751-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_751-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_751-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_751-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_752-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_752-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_752-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_752-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_753-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_753-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_753-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_753-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_754-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_754-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_754-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_754-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_755-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_755-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_755-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_755-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_756-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_756-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_756-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_756-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_757-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_757-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_757-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_757-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_758-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_758-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_758-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_758-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_759-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_759-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_759-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_759-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_760-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_760-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_760-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_760-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_761-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_761-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_761-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_761-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_762-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_762-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_test_case_762-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_test_case_762-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_text-label-embedded-combobox-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_text-label-embedded-combobox-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_text-label-embedded-combobox-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_text-label-embedded-combobox-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_text-label-embedded-menu-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_text-label-embedded-menu-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_text-label-embedded-menu-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_text-label-embedded-menu-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_text-label-embedded-select-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_text-label-embedded-select-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_text-label-embedded-select-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_text-label-embedded-select-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_text-label-embedded-slider-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_text-label-embedded-slider-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_text-label-embedded-slider-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_text-label-embedded-slider-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_text-label-embedded-spinbutton-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_text-label-embedded-spinbutton-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_text-label-embedded-spinbutton-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_text-label-embedded-spinbutton-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_text-title-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/accname/name_text-title-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/accname/name_text-title-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/accname/name_text-title-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/external/wpt/background-fetch/interfaces-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/background-fetch/interfaces-expected.txt
index f29d844..dbd51c5 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/background-fetch/interfaces-expected.txt
+++ b/third_party/WebKit/LayoutTests/external/wpt/background-fetch/interfaces-expected.txt
@@ -1,47 +1,69 @@
 This is a testharness.js-based test.
+Found 70 tests; 52 PASS, 18 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS Exposed interfaces in a Document.
 PASS ServiceWorkerRegistration interface: attribute backgroundFetch
+PASS Unscopable handled correctly for backgroundFetch property on ServiceWorkerRegistration
 PASS ServiceWorkerGlobalScope interface: existence and properties of interface object
 PASS BackgroundFetchManager interface: existence and properties of interface object
 PASS BackgroundFetchManager interface object length
 PASS BackgroundFetchManager interface object name
 PASS BackgroundFetchManager interface: existence and properties of interface prototype object
 PASS BackgroundFetchManager interface: existence and properties of interface prototype object's "constructor" property
+PASS BackgroundFetchManager interface: existence and properties of interface prototype object's @@unscopables property
 PASS BackgroundFetchManager interface: operation fetch(DOMString, [object Object],[object Object], BackgroundFetchOptions)
+PASS Unscopable handled correctly for fetch(DOMString, [object Object],[object Object], BackgroundFetchOptions) on BackgroundFetchManager
 PASS BackgroundFetchManager interface: operation get(DOMString)
+PASS Unscopable handled correctly for get(DOMString) on BackgroundFetchManager
 PASS BackgroundFetchManager interface: operation getIds()
+PASS Unscopable handled correctly for getIds() on BackgroundFetchManager
 FAIL BackgroundFetchRegistration interface: existence and properties of interface object Cannot read property 'has_extended_attribute' of undefined
 PASS BackgroundFetchRegistration interface object length
 PASS BackgroundFetchRegistration interface object name
 FAIL BackgroundFetchRegistration interface: existence and properties of interface prototype object Cannot read property 'has_extended_attribute' of undefined
 PASS BackgroundFetchRegistration interface: existence and properties of interface prototype object's "constructor" property
+PASS BackgroundFetchRegistration interface: existence and properties of interface prototype object's @@unscopables property
 PASS BackgroundFetchRegistration interface: attribute id
+PASS Unscopable handled correctly for id property on BackgroundFetchRegistration
 PASS BackgroundFetchRegistration interface: attribute uploadTotal
+PASS Unscopable handled correctly for uploadTotal property on BackgroundFetchRegistration
 PASS BackgroundFetchRegistration interface: attribute uploaded
+PASS Unscopable handled correctly for uploaded property on BackgroundFetchRegistration
 PASS BackgroundFetchRegistration interface: attribute downloadTotal
+PASS Unscopable handled correctly for downloadTotal property on BackgroundFetchRegistration
 PASS BackgroundFetchRegistration interface: attribute downloaded
+PASS Unscopable handled correctly for downloaded property on BackgroundFetchRegistration
 FAIL BackgroundFetchRegistration interface: attribute activeFetches assert_true: The prototype object must have a property "activeFetches" expected true got false
+PASS Unscopable handled correctly for activeFetches property on BackgroundFetchRegistration
 PASS BackgroundFetchRegistration interface: attribute onprogress
+PASS Unscopable handled correctly for onprogress property on BackgroundFetchRegistration
 PASS BackgroundFetchRegistration interface: operation abort()
+PASS Unscopable handled correctly for abort() on BackgroundFetchRegistration
 PASS BackgroundFetchFetch interface: existence and properties of interface object
 PASS BackgroundFetchFetch interface object length
 PASS BackgroundFetchFetch interface object name
 PASS BackgroundFetchFetch interface: existence and properties of interface prototype object
 PASS BackgroundFetchFetch interface: existence and properties of interface prototype object's "constructor" property
+PASS BackgroundFetchFetch interface: existence and properties of interface prototype object's @@unscopables property
 PASS BackgroundFetchFetch interface: attribute request
+PASS Unscopable handled correctly for request property on BackgroundFetchFetch
 FAIL BackgroundFetchActiveFetches interface: existence and properties of interface object assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
 FAIL BackgroundFetchActiveFetches interface object length assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
 FAIL BackgroundFetchActiveFetches interface object name assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
 FAIL BackgroundFetchActiveFetches interface: existence and properties of interface prototype object assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
 FAIL BackgroundFetchActiveFetches interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
+FAIL BackgroundFetchActiveFetches interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
 FAIL BackgroundFetchActiveFetches interface: operation match(RequestInfo) assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
+PASS Unscopable handled correctly for match(RequestInfo) on BackgroundFetchActiveFetches
 FAIL BackgroundFetchActiveFetches interface: operation values() assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
+PASS Unscopable handled correctly for values() on BackgroundFetchActiveFetches
 FAIL BackgroundFetchActiveFetch interface: existence and properties of interface object assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
 FAIL BackgroundFetchActiveFetch interface object length assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
 FAIL BackgroundFetchActiveFetch interface object name assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
 FAIL BackgroundFetchActiveFetch interface: existence and properties of interface prototype object assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
 FAIL BackgroundFetchActiveFetch interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
+FAIL BackgroundFetchActiveFetch interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
 FAIL BackgroundFetchActiveFetch interface: attribute responseReady assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
+PASS Unscopable handled correctly for responseReady property on BackgroundFetchActiveFetch
 PASS BackgroundFetchEvent interface: existence and properties of interface object
 PASS BackgroundFetchSettledEvent interface: existence and properties of interface object
 PASS BackgroundFetchSettledFetches interface: existence and properties of interface object
diff --git a/third_party/WebKit/LayoutTests/external/wpt/background-fetch/interfaces-worker.https-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/background-fetch/interfaces-worker.https-expected.txt
index 7d204a4b..9831c3d5 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/background-fetch/interfaces-worker.https-expected.txt
+++ b/third_party/WebKit/LayoutTests/external/wpt/background-fetch/interfaces-worker.https-expected.txt
@@ -3,85 +3,122 @@
 PASS Exposed interfaces in a Service Worker.
 FAIL ServiceWorkerRegistration interface: existence and properties of interface object assert_false: expected false got true
 FAIL ServiceWorkerGlobalScope interface: attribute onbackgroundfetched assert_true: The prototype object must have a property "onbackgroundfetched" expected true got false
+PASS Unscopable handled correctly for onbackgroundfetched property on ServiceWorkerGlobalScope
 FAIL ServiceWorkerGlobalScope interface: attribute onbackgroundfetchfail assert_true: The prototype object must have a property "onbackgroundfetchfail" expected true got false
+PASS Unscopable handled correctly for onbackgroundfetchfail property on ServiceWorkerGlobalScope
 FAIL ServiceWorkerGlobalScope interface: attribute onbackgroundfetchabort assert_true: The prototype object must have a property "onbackgroundfetchabort" expected true got false
+PASS Unscopable handled correctly for onbackgroundfetchabort property on ServiceWorkerGlobalScope
 FAIL ServiceWorkerGlobalScope interface: attribute onbackgroundfetchclick assert_true: The prototype object must have a property "onbackgroundfetchclick" expected true got false
+PASS Unscopable handled correctly for onbackgroundfetchclick property on ServiceWorkerGlobalScope
 PASS BackgroundFetchManager interface: existence and properties of interface object
 PASS BackgroundFetchManager interface object length
 PASS BackgroundFetchManager interface object name
 PASS BackgroundFetchManager interface: existence and properties of interface prototype object
 PASS BackgroundFetchManager interface: existence and properties of interface prototype object's "constructor" property
+PASS BackgroundFetchManager interface: existence and properties of interface prototype object's @@unscopables property
 PASS BackgroundFetchManager interface: operation fetch(DOMString, [object Object],[object Object], BackgroundFetchOptions)
+PASS Unscopable handled correctly for fetch(DOMString, [object Object],[object Object], BackgroundFetchOptions) on BackgroundFetchManager
 PASS BackgroundFetchManager interface: operation get(DOMString)
+PASS Unscopable handled correctly for get(DOMString) on BackgroundFetchManager
 PASS BackgroundFetchManager interface: operation getIds()
+PASS Unscopable handled correctly for getIds() on BackgroundFetchManager
 FAIL BackgroundFetchRegistration interface: existence and properties of interface object Cannot read property 'has_extended_attribute' of undefined
 PASS BackgroundFetchRegistration interface object length
 PASS BackgroundFetchRegistration interface object name
 FAIL BackgroundFetchRegistration interface: existence and properties of interface prototype object Cannot read property 'has_extended_attribute' of undefined
 PASS BackgroundFetchRegistration interface: existence and properties of interface prototype object's "constructor" property
+PASS BackgroundFetchRegistration interface: existence and properties of interface prototype object's @@unscopables property
 PASS BackgroundFetchRegistration interface: attribute id
+PASS Unscopable handled correctly for id property on BackgroundFetchRegistration
 PASS BackgroundFetchRegistration interface: attribute uploadTotal
+PASS Unscopable handled correctly for uploadTotal property on BackgroundFetchRegistration
 PASS BackgroundFetchRegistration interface: attribute uploaded
+PASS Unscopable handled correctly for uploaded property on BackgroundFetchRegistration
 PASS BackgroundFetchRegistration interface: attribute downloadTotal
+PASS Unscopable handled correctly for downloadTotal property on BackgroundFetchRegistration
 PASS BackgroundFetchRegistration interface: attribute downloaded
+PASS Unscopable handled correctly for downloaded property on BackgroundFetchRegistration
 FAIL BackgroundFetchRegistration interface: attribute activeFetches assert_true: The prototype object must have a property "activeFetches" expected true got false
+PASS Unscopable handled correctly for activeFetches property on BackgroundFetchRegistration
 PASS BackgroundFetchRegistration interface: attribute onprogress
+PASS Unscopable handled correctly for onprogress property on BackgroundFetchRegistration
 PASS BackgroundFetchRegistration interface: operation abort()
+PASS Unscopable handled correctly for abort() on BackgroundFetchRegistration
 PASS BackgroundFetchFetch interface: existence and properties of interface object
 PASS BackgroundFetchFetch interface object length
 PASS BackgroundFetchFetch interface object name
 PASS BackgroundFetchFetch interface: existence and properties of interface prototype object
 PASS BackgroundFetchFetch interface: existence and properties of interface prototype object's "constructor" property
+PASS BackgroundFetchFetch interface: existence and properties of interface prototype object's @@unscopables property
 PASS BackgroundFetchFetch interface: attribute request
+PASS Unscopable handled correctly for request property on BackgroundFetchFetch
 FAIL BackgroundFetchActiveFetches interface: existence and properties of interface object assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
 FAIL BackgroundFetchActiveFetches interface object length assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
 FAIL BackgroundFetchActiveFetches interface object name assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
 FAIL BackgroundFetchActiveFetches interface: existence and properties of interface prototype object assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
 FAIL BackgroundFetchActiveFetches interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
+FAIL BackgroundFetchActiveFetches interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
 FAIL BackgroundFetchActiveFetches interface: operation match(RequestInfo) assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
+PASS Unscopable handled correctly for match(RequestInfo) on BackgroundFetchActiveFetches
 FAIL BackgroundFetchActiveFetches interface: operation values() assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
+PASS Unscopable handled correctly for values() on BackgroundFetchActiveFetches
 FAIL BackgroundFetchActiveFetch interface: existence and properties of interface object assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
 FAIL BackgroundFetchActiveFetch interface object length assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
 FAIL BackgroundFetchActiveFetch interface object name assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
 FAIL BackgroundFetchActiveFetch interface: existence and properties of interface prototype object assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
 FAIL BackgroundFetchActiveFetch interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
+FAIL BackgroundFetchActiveFetch interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
 FAIL BackgroundFetchActiveFetch interface: attribute responseReady assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
+PASS Unscopable handled correctly for responseReady property on BackgroundFetchActiveFetch
 FAIL BackgroundFetchEvent interface: existence and properties of interface object Cannot read property 'has_extended_attribute' of undefined
 PASS BackgroundFetchEvent interface object length
 PASS BackgroundFetchEvent interface object name
 FAIL BackgroundFetchEvent interface: existence and properties of interface prototype object Cannot read property 'has_extended_attribute' of undefined
 PASS BackgroundFetchEvent interface: existence and properties of interface prototype object's "constructor" property
+PASS BackgroundFetchEvent interface: existence and properties of interface prototype object's @@unscopables property
 PASS BackgroundFetchEvent interface: attribute id
+PASS Unscopable handled correctly for id property on BackgroundFetchEvent
 FAIL BackgroundFetchSettledEvent interface: existence and properties of interface object assert_own_property: self does not have own property "BackgroundFetchSettledEvent" expected property "BackgroundFetchSettledEvent" missing
 FAIL BackgroundFetchSettledEvent interface object length assert_own_property: self does not have own property "BackgroundFetchSettledEvent" expected property "BackgroundFetchSettledEvent" missing
 FAIL BackgroundFetchSettledEvent interface object name assert_own_property: self does not have own property "BackgroundFetchSettledEvent" expected property "BackgroundFetchSettledEvent" missing
 FAIL BackgroundFetchSettledEvent interface: existence and properties of interface prototype object assert_own_property: self does not have own property "BackgroundFetchSettledEvent" expected property "BackgroundFetchSettledEvent" missing
 FAIL BackgroundFetchSettledEvent interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "BackgroundFetchSettledEvent" expected property "BackgroundFetchSettledEvent" missing
+FAIL BackgroundFetchSettledEvent interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "BackgroundFetchSettledEvent" expected property "BackgroundFetchSettledEvent" missing
 FAIL BackgroundFetchSettledEvent interface: attribute fetches assert_own_property: self does not have own property "BackgroundFetchSettledEvent" expected property "BackgroundFetchSettledEvent" missing
+PASS Unscopable handled correctly for fetches property on BackgroundFetchSettledEvent
 FAIL BackgroundFetchSettledFetches interface: existence and properties of interface object assert_own_property: self does not have own property "BackgroundFetchSettledFetches" expected property "BackgroundFetchSettledFetches" missing
 FAIL BackgroundFetchSettledFetches interface object length assert_own_property: self does not have own property "BackgroundFetchSettledFetches" expected property "BackgroundFetchSettledFetches" missing
 FAIL BackgroundFetchSettledFetches interface object name assert_own_property: self does not have own property "BackgroundFetchSettledFetches" expected property "BackgroundFetchSettledFetches" missing
 FAIL BackgroundFetchSettledFetches interface: existence and properties of interface prototype object assert_own_property: self does not have own property "BackgroundFetchSettledFetches" expected property "BackgroundFetchSettledFetches" missing
 FAIL BackgroundFetchSettledFetches interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "BackgroundFetchSettledFetches" expected property "BackgroundFetchSettledFetches" missing
+FAIL BackgroundFetchSettledFetches interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "BackgroundFetchSettledFetches" expected property "BackgroundFetchSettledFetches" missing
 FAIL BackgroundFetchSettledFetches interface: operation match(RequestInfo) assert_own_property: self does not have own property "BackgroundFetchSettledFetches" expected property "BackgroundFetchSettledFetches" missing
+PASS Unscopable handled correctly for match(RequestInfo) on BackgroundFetchSettledFetches
 FAIL BackgroundFetchSettledFetches interface: operation values() assert_own_property: self does not have own property "BackgroundFetchSettledFetches" expected property "BackgroundFetchSettledFetches" missing
+PASS Unscopable handled correctly for values() on BackgroundFetchSettledFetches
 PASS BackgroundFetchSettledFetch interface: existence and properties of interface object
 FAIL BackgroundFetchSettledFetch interface object length assert_equals: wrong value for BackgroundFetchSettledFetch.length expected 0 but got 2
 PASS BackgroundFetchSettledFetch interface object name
 PASS BackgroundFetchSettledFetch interface: existence and properties of interface prototype object
 PASS BackgroundFetchSettledFetch interface: existence and properties of interface prototype object's "constructor" property
+PASS BackgroundFetchSettledFetch interface: existence and properties of interface prototype object's @@unscopables property
 PASS BackgroundFetchSettledFetch interface: attribute response
+PASS Unscopable handled correctly for response property on BackgroundFetchSettledFetch
 FAIL BackgroundFetchUpdateEvent interface: existence and properties of interface object assert_own_property: self does not have own property "BackgroundFetchUpdateEvent" expected property "BackgroundFetchUpdateEvent" missing
 FAIL BackgroundFetchUpdateEvent interface object length assert_own_property: self does not have own property "BackgroundFetchUpdateEvent" expected property "BackgroundFetchUpdateEvent" missing
 FAIL BackgroundFetchUpdateEvent interface object name assert_own_property: self does not have own property "BackgroundFetchUpdateEvent" expected property "BackgroundFetchUpdateEvent" missing
 FAIL BackgroundFetchUpdateEvent interface: existence and properties of interface prototype object assert_own_property: self does not have own property "BackgroundFetchUpdateEvent" expected property "BackgroundFetchUpdateEvent" missing
 FAIL BackgroundFetchUpdateEvent interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "BackgroundFetchUpdateEvent" expected property "BackgroundFetchUpdateEvent" missing
+FAIL BackgroundFetchUpdateEvent interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "BackgroundFetchUpdateEvent" expected property "BackgroundFetchUpdateEvent" missing
 FAIL BackgroundFetchUpdateEvent interface: operation updateUI(DOMString) assert_own_property: self does not have own property "BackgroundFetchUpdateEvent" expected property "BackgroundFetchUpdateEvent" missing
+PASS Unscopable handled correctly for updateUI(DOMString) on BackgroundFetchUpdateEvent
 PASS BackgroundFetchClickEvent interface: existence and properties of interface object
 PASS BackgroundFetchClickEvent interface object length
 PASS BackgroundFetchClickEvent interface object name
 FAIL BackgroundFetchClickEvent interface: existence and properties of interface prototype object Cannot read property 'has_stringifier' of undefined
 PASS BackgroundFetchClickEvent interface: existence and properties of interface prototype object's "constructor" property
+PASS BackgroundFetchClickEvent interface: existence and properties of interface prototype object's @@unscopables property
 PASS BackgroundFetchClickEvent interface: attribute state
+PASS Unscopable handled correctly for state property on BackgroundFetchClickEvent
 Harness: the test ran to completion.
 
diff --git a/third_party/WebKit/LayoutTests/external/wpt/background-fetch/interfaces.worker-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/background-fetch/interfaces.worker-expected.txt
index 207da556..8340efd 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/background-fetch/interfaces.worker-expected.txt
+++ b/third_party/WebKit/LayoutTests/external/wpt/background-fetch/interfaces.worker-expected.txt
@@ -1,4 +1,5 @@
 This is a testharness.js-based test.
+Found 69 tests; 50 PASS, 19 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS Exposed interfaces in a Service Worker.
 FAIL ServiceWorkerRegistration interface: existence and properties of interface object assert_false: expected false got true
 PASS ServiceWorkerGlobalScope interface: existence and properties of interface object
@@ -7,41 +8,61 @@
 PASS BackgroundFetchManager interface object name
 PASS BackgroundFetchManager interface: existence and properties of interface prototype object
 PASS BackgroundFetchManager interface: existence and properties of interface prototype object's "constructor" property
+PASS BackgroundFetchManager interface: existence and properties of interface prototype object's @@unscopables property
 PASS BackgroundFetchManager interface: operation fetch(DOMString, [object Object],[object Object], BackgroundFetchOptions)
+PASS Unscopable handled correctly for fetch(DOMString, [object Object],[object Object], BackgroundFetchOptions) on BackgroundFetchManager
 PASS BackgroundFetchManager interface: operation get(DOMString)
+PASS Unscopable handled correctly for get(DOMString) on BackgroundFetchManager
 PASS BackgroundFetchManager interface: operation getIds()
+PASS Unscopable handled correctly for getIds() on BackgroundFetchManager
 FAIL BackgroundFetchRegistration interface: existence and properties of interface object Cannot read property 'has_extended_attribute' of undefined
 PASS BackgroundFetchRegistration interface object length
 PASS BackgroundFetchRegistration interface object name
 FAIL BackgroundFetchRegistration interface: existence and properties of interface prototype object Cannot read property 'has_extended_attribute' of undefined
 PASS BackgroundFetchRegistration interface: existence and properties of interface prototype object's "constructor" property
+PASS BackgroundFetchRegistration interface: existence and properties of interface prototype object's @@unscopables property
 PASS BackgroundFetchRegistration interface: attribute id
+PASS Unscopable handled correctly for id property on BackgroundFetchRegistration
 PASS BackgroundFetchRegistration interface: attribute uploadTotal
+PASS Unscopable handled correctly for uploadTotal property on BackgroundFetchRegistration
 PASS BackgroundFetchRegistration interface: attribute uploaded
+PASS Unscopable handled correctly for uploaded property on BackgroundFetchRegistration
 PASS BackgroundFetchRegistration interface: attribute downloadTotal
+PASS Unscopable handled correctly for downloadTotal property on BackgroundFetchRegistration
 PASS BackgroundFetchRegistration interface: attribute downloaded
+PASS Unscopable handled correctly for downloaded property on BackgroundFetchRegistration
 FAIL BackgroundFetchRegistration interface: attribute activeFetches assert_true: The prototype object must have a property "activeFetches" expected true got false
+PASS Unscopable handled correctly for activeFetches property on BackgroundFetchRegistration
 PASS BackgroundFetchRegistration interface: attribute onprogress
+PASS Unscopable handled correctly for onprogress property on BackgroundFetchRegistration
 PASS BackgroundFetchRegistration interface: operation abort()
+PASS Unscopable handled correctly for abort() on BackgroundFetchRegistration
 PASS BackgroundFetchFetch interface: existence and properties of interface object
 PASS BackgroundFetchFetch interface object length
 PASS BackgroundFetchFetch interface object name
 PASS BackgroundFetchFetch interface: existence and properties of interface prototype object
 PASS BackgroundFetchFetch interface: existence and properties of interface prototype object's "constructor" property
+PASS BackgroundFetchFetch interface: existence and properties of interface prototype object's @@unscopables property
 PASS BackgroundFetchFetch interface: attribute request
+PASS Unscopable handled correctly for request property on BackgroundFetchFetch
 FAIL BackgroundFetchActiveFetches interface: existence and properties of interface object assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
 FAIL BackgroundFetchActiveFetches interface object length assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
 FAIL BackgroundFetchActiveFetches interface object name assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
 FAIL BackgroundFetchActiveFetches interface: existence and properties of interface prototype object assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
 FAIL BackgroundFetchActiveFetches interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
+FAIL BackgroundFetchActiveFetches interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
 FAIL BackgroundFetchActiveFetches interface: operation match(RequestInfo) assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
+PASS Unscopable handled correctly for match(RequestInfo) on BackgroundFetchActiveFetches
 FAIL BackgroundFetchActiveFetches interface: operation values() assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
+PASS Unscopable handled correctly for values() on BackgroundFetchActiveFetches
 FAIL BackgroundFetchActiveFetch interface: existence and properties of interface object assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
 FAIL BackgroundFetchActiveFetch interface object length assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
 FAIL BackgroundFetchActiveFetch interface object name assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
 FAIL BackgroundFetchActiveFetch interface: existence and properties of interface prototype object assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
 FAIL BackgroundFetchActiveFetch interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
+FAIL BackgroundFetchActiveFetch interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
 FAIL BackgroundFetchActiveFetch interface: attribute responseReady assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
+PASS Unscopable handled correctly for responseReady property on BackgroundFetchActiveFetch
 PASS BackgroundFetchEvent interface: existence and properties of interface object
 PASS BackgroundFetchSettledEvent interface: existence and properties of interface object
 PASS BackgroundFetchSettledFetches interface: existence and properties of interface object
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-backgrounds/background-331-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/css/css-backgrounds/background-331-expected.txt
deleted file mode 100644
index fc45ee8..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-backgrounds/background-331-expected.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-This is a testharness.js-based test.
-PASS background_initial_image
-PASS background_initial_position
-PASS background_initial_size
-PASS background_initial_repeat
-PASS background_initial_attachment
-PASS background_initial_origin
-PASS background_initial_clip
-FAIL background_initial_color assert_equals: background initial value for background-color expected "transparent" but got "rgba(0, 0, 0, 0)"
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-backgrounds/background-332-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/css/css-backgrounds/background-332-expected.txt
index f98db8f..28192fd 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-backgrounds/background-332-expected.txt
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-backgrounds/background-332-expected.txt
@@ -6,6 +6,6 @@
 PASS background_specified_attachment
 PASS background_specified_origin
 PASS background_specified_clip
-FAIL background_specified_color assert_equals: background specified value for background-color expected "gray" but got "rgb(128, 128, 128)"
+PASS background_specified_color
 Harness: the test ran to completion.
 
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-backgrounds/background-333-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/css/css-backgrounds/background-333-expected.txt
deleted file mode 100644
index 5d18192..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-backgrounds/background-333-expected.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-This is a testharness.js-based test.
-PASS background_specified_color_image
-PASS background_specified_color_position
-PASS background_specified_color_size
-PASS background_specified_color_repeat
-PASS background_specified_color_attachment
-PASS background_specified_color_origin
-PASS background_specified_color_clip
-FAIL background_specified_color_color assert_equals: background specified value for background-color expected "red" but got "rgb(255, 0, 0)"
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/css/css-color/color-function-parsing-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/css/css-color/color-function-parsing-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/css/css-color/color-function-parsing-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/css/css-color/color-function-parsing-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/css/css-fonts/font-variation-settings-serialization-001-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/css/css-fonts/font-variation-settings-serialization-001-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/css/css-fonts/font-variation-settings-serialization-001-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/css/css-fonts/font-variation-settings-serialization-001-expected.txt
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/interfaces-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/interfaces-expected.txt
index 2f6a4b5..f64d713 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/interfaces-expected.txt
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/interfaces-expected.txt
@@ -1,250 +1,355 @@
 This is a testharness.js-based test.
-Found 228 tests; 218 PASS, 10 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 333 tests; 323 PASS, 10 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS CSS Typed OM IDL test
 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(DOMString, DOMString)
+PASS Unscopable handled correctly for parse(DOMString, DOMString) on CSSStyleValue
 PASS CSSStyleValue interface: operation parseAll(DOMString, DOMString)
+PASS Unscopable handled correctly for parseAll(DOMString, DOMString) on CSSStyleValue
 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 Testing Symbol.iterator property of iterable interface StylePropertyMapReadOnly
 PASS Testing pair iterable interface StylePropertyMapReadOnly
 PASS StylePropertyMapReadOnly interface: operation get(DOMString)
+PASS Unscopable handled correctly for get(DOMString) on StylePropertyMapReadOnly
 PASS StylePropertyMapReadOnly interface: operation getAll(DOMString)
+PASS Unscopable handled correctly for getAll(DOMString) on StylePropertyMapReadOnly
 PASS StylePropertyMapReadOnly interface: operation has(DOMString)
+PASS Unscopable handled correctly for has(DOMString) on StylePropertyMapReadOnly
 PASS StylePropertyMapReadOnly interface: attribute size
+PASS Unscopable handled correctly for size property on StylePropertyMapReadOnly
 PASS StylePropertyMapReadOnly interface: operation entries()
+PASS Unscopable handled correctly for entries() on StylePropertyMapReadOnly
 PASS StylePropertyMapReadOnly interface: operation keys()
+PASS Unscopable handled correctly for keys() on StylePropertyMapReadOnly
 PASS StylePropertyMapReadOnly interface: operation values()
+PASS Unscopable handled correctly for values() on StylePropertyMapReadOnly
 PASS StylePropertyMapReadOnly interface: operation forEach(function, any)
+PASS Unscopable handled correctly for forEach(function, any) on StylePropertyMapReadOnly
 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(DOMString, [object Object],[object Object])
+PASS Unscopable handled correctly for set(DOMString, [object Object],[object Object]) on StylePropertyMap
 PASS StylePropertyMap interface: operation append(DOMString, [object Object],[object Object])
+PASS Unscopable handled correctly for append(DOMString, [object Object],[object Object]) on StylePropertyMap
 PASS StylePropertyMap interface: operation delete(DOMString)
+PASS Unscopable handled correctly for delete(DOMString) on StylePropertyMap
 PASS StylePropertyMap interface: operation clear()
+PASS Unscopable handled correctly for clear() on StylePropertyMap
 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 Testing Symbol.iterator property of iterable interface CSSUnparsedValue
 PASS Testing value iterable interface CSSUnparsedValue
 PASS CSSUnparsedValue interface: attribute length
+PASS Unscopable handled correctly for length property on CSSUnparsedValue
 FAIL CSSUnparsedValue interface: operation entries() assert_throws: calling operation with this = {} didn't throw TypeError function "function() {
             fn.apply(obj, args);
         }" did not throw
+PASS Unscopable handled correctly for entries() on CSSUnparsedValue
 FAIL CSSUnparsedValue interface: operation keys() assert_throws: calling operation with this = {} didn't throw TypeError function "function() {
             fn.apply(obj, args);
         }" did not throw
+PASS Unscopable handled correctly for keys() on CSSUnparsedValue
 FAIL CSSUnparsedValue interface: operation values() assert_throws: calling operation with this = {} didn't throw TypeError function "function() {
             fn.apply(obj, args);
         }" did not throw
+PASS Unscopable handled correctly for values() on CSSUnparsedValue
 PASS CSSUnparsedValue interface: operation forEach(function, any)
+PASS Unscopable handled correctly for forEach(function, any) on CSSUnparsedValue
 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 Unscopable handled correctly for variable property on CSSVariableReferenceValue
 PASS CSSVariableReferenceValue interface: attribute fallback
+PASS Unscopable handled correctly for fallback property on CSSVariableReferenceValue
 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 Unscopable handled correctly for value property on CSSKeywordValue
 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 Unscopable handled correctly for add(CSSNumberish) on CSSNumericValue
 PASS CSSNumericValue interface: operation sub(CSSNumberish)
+PASS Unscopable handled correctly for sub(CSSNumberish) on CSSNumericValue
 PASS CSSNumericValue interface: operation mul(CSSNumberish)
+PASS Unscopable handled correctly for mul(CSSNumberish) on CSSNumericValue
 PASS CSSNumericValue interface: operation div(CSSNumberish)
+PASS Unscopable handled correctly for div(CSSNumberish) on CSSNumericValue
 PASS CSSNumericValue interface: operation min(CSSNumberish)
+PASS Unscopable handled correctly for min(CSSNumberish) on CSSNumericValue
 PASS CSSNumericValue interface: operation max(CSSNumberish)
+PASS Unscopable handled correctly for max(CSSNumberish) on CSSNumericValue
 PASS CSSNumericValue interface: operation equals(CSSNumberish)
+PASS Unscopable handled correctly for equals(CSSNumberish) on CSSNumericValue
 PASS CSSNumericValue interface: operation to(DOMString)
+PASS Unscopable handled correctly for to(DOMString) on CSSNumericValue
 PASS CSSNumericValue interface: operation toSum(DOMString)
+PASS Unscopable handled correctly for toSum(DOMString) on CSSNumericValue
 PASS CSSNumericValue interface: operation type()
+PASS Unscopable handled correctly for type() on CSSNumericValue
 PASS CSSNumericValue interface: operation parse(DOMString)
+PASS Unscopable handled correctly for parse(DOMString) on CSSNumericValue
 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 Unscopable handled correctly for value property on CSSUnitValue
 PASS CSSUnitValue interface: attribute unit
+PASS Unscopable handled correctly for unit property on CSSUnitValue
 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 Unscopable handled correctly for operator property on CSSMathValue
 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 Unscopable handled correctly for values property on CSSMathSum
 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 Unscopable handled correctly for values property on CSSMathProduct
 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 Unscopable handled correctly for value property on CSSMathNegate
 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 Unscopable handled correctly for value property on CSSMathInvert
 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 Unscopable handled correctly for values property on CSSMathMin
 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
+PASS Unscopable handled correctly for values property on CSSMathMax
 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 Testing Symbol.iterator property of iterable interface CSSNumericArray
 PASS Testing value iterable interface CSSNumericArray
 PASS CSSNumericArray interface: attribute length
+PASS Unscopable handled correctly for length property on CSSNumericArray
 FAIL CSSNumericArray interface: operation entries() assert_throws: calling operation with this = {} didn't throw TypeError function "function() {
             fn.apply(obj, args);
         }" did not throw
+PASS Unscopable handled correctly for entries() on CSSNumericArray
 FAIL CSSNumericArray interface: operation keys() assert_throws: calling operation with this = {} didn't throw TypeError function "function() {
             fn.apply(obj, args);
         }" did not throw
+PASS Unscopable handled correctly for keys() on CSSNumericArray
 FAIL CSSNumericArray interface: operation values() assert_throws: calling operation with this = {} didn't throw TypeError function "function() {
             fn.apply(obj, args);
         }" did not throw
+PASS Unscopable handled correctly for values() on CSSNumericArray
 PASS CSSNumericArray interface: operation forEach(function, any)
+PASS Unscopable handled correctly for forEach(function, any) on CSSNumericArray
 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 Testing Symbol.iterator property of iterable interface CSSTransformValue
 PASS Testing value iterable interface CSSTransformValue
 PASS CSSTransformValue interface: attribute length
+PASS Unscopable handled correctly for length property on CSSTransformValue
 PASS CSSTransformValue interface: attribute is2D
+PASS Unscopable handled correctly for is2D property on CSSTransformValue
 PASS CSSTransformValue interface: operation toMatrix()
+PASS Unscopable handled correctly for toMatrix() on CSSTransformValue
 FAIL CSSTransformValue interface: operation entries() assert_throws: calling operation with this = {} didn't throw TypeError function "function() {
             fn.apply(obj, args);
         }" did not throw
+PASS Unscopable handled correctly for entries() on CSSTransformValue
 FAIL CSSTransformValue interface: operation keys() assert_throws: calling operation with this = {} didn't throw TypeError function "function() {
             fn.apply(obj, args);
         }" did not throw
+PASS Unscopable handled correctly for keys() on CSSTransformValue
 FAIL CSSTransformValue interface: operation values() assert_throws: calling operation with this = {} didn't throw TypeError function "function() {
             fn.apply(obj, args);
         }" did not throw
+PASS Unscopable handled correctly for values() on CSSTransformValue
 PASS CSSTransformValue interface: operation forEach(function, any)
+PASS Unscopable handled correctly for forEach(function, any) on CSSTransformValue
 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 Unscopable handled correctly for is2D property on CSSTransformComponent
 PASS CSSTransformComponent interface: operation toMatrix()
+PASS Unscopable handled correctly for toMatrix() on CSSTransformComponent
 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 Unscopable handled correctly for x property on CSSTranslate
 PASS CSSTranslate interface: attribute y
+PASS Unscopable handled correctly for y property on CSSTranslate
 PASS CSSTranslate interface: attribute z
+PASS Unscopable handled correctly for z property on CSSTranslate
 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 Unscopable handled correctly for x property on CSSRotate
 PASS CSSRotate interface: attribute y
+PASS Unscopable handled correctly for y property on CSSRotate
 PASS CSSRotate interface: attribute z
+PASS Unscopable handled correctly for z property on CSSRotate
 PASS CSSRotate interface: attribute angle
+PASS Unscopable handled correctly for angle property on CSSRotate
 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 Unscopable handled correctly for x property on CSSScale
 PASS CSSScale interface: attribute y
+PASS Unscopable handled correctly for y property on CSSScale
 PASS CSSScale interface: attribute z
+PASS Unscopable handled correctly for z property on CSSScale
 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 Unscopable handled correctly for ax property on CSSSkew
 PASS CSSSkew interface: attribute ay
+PASS Unscopable handled correctly for ay property on CSSSkew
 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 Unscopable handled correctly for ax property on CSSSkewX
 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 Unscopable handled correctly for ay property on CSSSkewY
 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 Unscopable handled correctly for length property on CSSPerspective
 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 Unscopable handled correctly for matrix property on CSSMatrixComponent
 PASS CSSPositionValue interface: existence and properties of interface object
 PASS CSSPositionValue interface object length
 PASS CSSPositionValue interface object name
 PASS CSSPositionValue interface: existence and properties of interface prototype object
 PASS CSSPositionValue interface: existence and properties of interface prototype object's "constructor" property
+PASS CSSPositionValue interface: existence and properties of interface prototype object's @@unscopables property
 PASS CSSPositionValue interface: attribute x
+PASS Unscopable handled correctly for x property on CSSPositionValue
 PASS CSSPositionValue interface: attribute y
+PASS Unscopable handled correctly for y property on CSSPositionValue
 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
 PASS Element interface: operation computedStyleMap()
+PASS Unscopable handled correctly for computedStyleMap() on Element
 PASS CSSStyleRule interface: attribute styleMap
+PASS Unscopable handled correctly for styleMap property on CSSStyleRule
 FAIL ElementCSSInlineStyle interface: attribute attributeStyleMap assert_own_property: self does not have own property "ElementCSSInlineStyle" expected property "ElementCSSInlineStyle" missing
+PASS Unscopable handled correctly for attributeStyleMap property on ElementCSSInlineStyle
 Harness: the test ran to completion.
 
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/computed/get-shorthand.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/computed/get-shorthand.html
new file mode 100644
index 0000000..a940422
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/computed/get-shorthand.html
@@ -0,0 +1,31 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>Computed StylePropertyMap.get with shorthands</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#get-a-value-from-a-stylepropertymap">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../../resources/testhelper.js"></script>
+<body>
+<div id="log">
+<script>
+'use strict';
+
+test(t => {
+  const styleMap = createComputedStyleMap(t, 'margin: 1px 2px 3px 4px');
+  const result = styleMap.get('margin');
+  assert_not_equals(result, null, 'Shorthand value must not be null');
+  assert_class_string(result, 'CSSStyleValue',
+    'Shorthand value must be a base CSSStyleValue');
+}, 'Getting an shorthand property set explicitly in computed style returns ' +
+   'a base CSSStyleValue');
+
+test(t => {
+  const styleMap = createComputedStyleMap(t);
+  const result = styleMap.get('margin');
+  assert_not_equals(result, null, 'Shorthand value must not be null');
+  assert_class_string(result, 'CSSStyleValue',
+    'Shorthand value must be a base CSSStyleValue');
+}, 'Getting a shorthand property from initial computed style returns ' +
+   'a base CSSStyleValue');
+
+</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/computed/getAll-shorthand.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/computed/getAll-shorthand.html
new file mode 100644
index 0000000..6d367c8
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/computed/getAll-shorthand.html
@@ -0,0 +1,33 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>Computed StylePropertyMap.getAll with shorthands</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymapreadonly-getall">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../../resources/testhelper.js"></script>
+<body>
+<div id="log">
+<script>
+'use strict';
+
+test(t => {
+  const styleMap = createComputedStyleMap(t, 'margin: 1px 2px 3px 4px');
+  const result = styleMap.getAll('margin');
+  assert_not_equals(result, null, 'Result must not be null');
+  assert_equals(result.length, 1, 'Result must be a list with one item');
+  assert_class_string(result[0], 'CSSStyleValue',
+    'Only item in result must be a base CSSStyleValue');
+}, 'StylePropertyMap.getAll() with a shorthand property set explicitly in ' +
+   'computed style returns a list containing a base CSSStyleValue');
+
+test(t => {
+  const styleMap = createComputedStyleMap(t);
+  const result = styleMap.getAll('margin');
+  assert_not_equals(result, null, 'Result must not be null');
+  assert_equals(result.length, 1, 'Result must be a list with one item');
+  assert_class_string(result[0], 'CSSStyleValue',
+    'Only item in result must be a base CSSStyleValue');
+}, 'StylePropertyMap.getAll() with a shorthand property from initial ' +
+   'computed style returns a list containing a base CSSStyleValue');
+
+</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/computed/has.tentative.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/computed/has.tentative.html
index 6992689c..d387304d 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/computed/has.tentative.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/computed/has.tentative.html
@@ -18,6 +18,7 @@
   { property: '--Foo', expected: false, desc: 'a custom property not in the property model' },
   { property: 'width', expected: true, desc: 'a valid property' },
   { property: 'wIdTh', expected: true, desc: 'a valid property in mixed case' },
+  { property: 'margin', expected: true, desc: 'a valid shorthand property' },
   { property: '--foo', expected: true, desc: 'a valid custom property' },
   { property: 'transition-duration', expected: true, desc: 'a valid list-valued property' },
 ];
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/declared/get-shorthand.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/declared/get-shorthand.html
new file mode 100644
index 0000000..0a83ca4d
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/declared/get-shorthand.html
@@ -0,0 +1,30 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>Declared StylePropertyMap.get with shorthands</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#get-a-value-from-a-stylepropertymap">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../../resources/testhelper.js"></script>
+<body>
+<div id="log">
+<script>
+'use strict';
+
+test(t => {
+  const styleMap = createDeclaredStyleMap(t, 'margin: 1px 2px 3px 4px');
+  const result = styleMap.get('margin');
+  assert_not_equals(result, null, 'Shorthand value must not be null');
+  assert_class_string(result, 'CSSStyleValue',
+    'Shorthand value must be a base CSSStyleValue');
+}, 'Getting a shorthand property set explicitly in css rule returns ' +
+   'a base CSSStyleValue');
+
+test(t => {
+  const styleMap = createDeclaredStyleMap(t, 'margin-top: 1px');
+  const result = styleMap.get('margin');
+  assert_equals(result, null,
+    'Shorthand value must be null as it is not explicitly set');
+}, 'Getting a shorthand property that is partially set in css rule ' +
+   'returns null');
+
+</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/declared/getAll-shorthand.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/declared/getAll-shorthand.html
new file mode 100644
index 0000000..16dda493
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/declared/getAll-shorthand.html
@@ -0,0 +1,30 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>Declared StylePropertyMap.getAll with shorthands</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymapreadonly-getall">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../../resources/testhelper.js"></script>
+<body>
+<div id="log">
+<script>
+'use strict';
+
+test(t => {
+  const styleMap = createDeclaredStyleMap(t, 'margin: 1px 2px 3px 4px');
+  const result = styleMap.getAll('margin');
+  assert_not_equals(result, null, 'Result must not be null');
+  assert_equals(result.length, 1, 'Result must be a list with one item');
+  assert_class_string(result[0], 'CSSStyleValue',
+    'Only item in result must be a base CSSStyleValue');
+}, 'StylePropertyMap.getAll() with a shorthand property set explicitly in ' +
+   'css rule returns a base CSSStyleValue');
+
+test(t => {
+  const styleMap = createDeclaredStyleMap(t, 'margin-top: 1px');
+  const result = styleMap.getAll('margin');
+  assert_equals(result.length, 0, 'Result must be an empty list');
+}, 'StylePropertyMap.getAll() with a shorthand property that is partially ' +
+   'in css rule returns empty list');
+
+</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/declared/has.tentative.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/declared/has.tentative.html
index 7304f80..93d29d9 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/declared/has.tentative.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/declared/has.tentative.html
@@ -19,13 +19,16 @@
   { property: '--Foo', expected: false, desc: 'a custom property not in the property model' },
   { property: 'width', expected: true, desc: 'a valid property' },
   { property: 'wIdTh', expected: true, desc: 'a valid property in mixed case' },
+  { property: 'margin', expected: true, desc: 'a valid shorthand specified explicitly' },
+  { property: 'padding', expected: false, desc: 'a valid shorthand only partially specified' },
   { property: '--foo', expected: true, desc: 'a valid custom property' },
   { property: 'transition-duration', expected: true, desc: 'a valid list-valued property' },
 ];
 
 for (const {property, expected, desc} of gTestCases) {
   test(t => {
-    const styleMap = createDeclaredStyleMap(t, 'width: 10px; --foo: auto; transition-duration: 1s, 2s');
+    const styleMap = createDeclaredStyleMap(t,
+      'width: 10px; --foo: auto; transition-duration: 1s, 2s; margin: 1px 2px 3px 4px; padding-left: 1px');
     assert_equals(styleMap.has(property), expected);
   }, 'Calling StylePropertyMap.has with ' + desc + ' returns ' + expected);
 }
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/inline/get-shorthand.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/inline/get-shorthand.html
new file mode 100644
index 0000000..0355e39
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/inline/get-shorthand.html
@@ -0,0 +1,30 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>Inline StylePropertyMap.get with shorthands</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#get-a-value-from-a-stylepropertymap">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../../resources/testhelper.js"></script>
+<body>
+<div id="log">
+<script>
+'use strict';
+
+test(t => {
+  const styleMap = createInlineStyleMap(t, 'margin: 1px 2px 3px 4px');
+  const result = styleMap.get('margin');
+  assert_not_equals(result, null, 'Shorthand value must not be null');
+  assert_class_string(result, 'CSSStyleValue',
+    'Shorthand value must be a base CSSStyleValue');
+}, 'Getting an shorthand property set explicitly in inline style returns ' +
+   'a base CSSStyleValue');
+
+test(t => {
+  const styleMap = createInlineStyleMap(t, 'margin-top: 1px');
+  const result = styleMap.get('margin');
+  assert_equals(result, null,
+    'Shorthand value must be null as it is not explicitly set');
+}, 'Getting a shorthand property that is partially set in inline style ' +
+   'returns null');
+
+</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/inline/getAll-shorthand.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/inline/getAll-shorthand.html
new file mode 100644
index 0000000..f7051dd
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/inline/getAll-shorthand.html
@@ -0,0 +1,30 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>Inline StylePropertyMap.getAll with shorthands</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymapreadonly-getall">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../../resources/testhelper.js"></script>
+<body>
+<div id="log">
+<script>
+'use strict';
+
+test(t => {
+  const styleMap = createInlineStyleMap(t, 'margin: 1px 2px 3px 4px');
+  const result = styleMap.getAll('margin');
+  assert_not_equals(result, null, 'Result must not be null');
+  assert_equals(result.length, 1, 'Result must be a list with one item');
+  assert_class_string(result[0], 'CSSStyleValue',
+    'Only item in result must be a base CSSStyleValue');
+}, 'StylePropertyMap.getAll() with a shorthand property set explicitly in ' +
+   'inline style returns a base CSSStyleValue');
+
+test(t => {
+  const styleMap = createInlineStyleMap(t, 'margin-top: 1px');
+  const result = styleMap.getAll('margin');
+  assert_equals(result.length, 0, 'Result must be an empty list');
+}, 'StylePropertyMap.getAll() with a shorthand property that is partially ' +
+   'in inline style returns empty list');
+
+</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/inline/has.tentative.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/inline/has.tentative.html
index 1f4e4f9..d252883 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/inline/has.tentative.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/inline/has.tentative.html
@@ -17,6 +17,7 @@
 const gTestCases = [
   { property: 'height', expected: false, desc: 'a property not in the property model' },
   { property: '--Foo', expected: false, desc: 'a custom property not in the property model' },
+  { property: 'margin', expected: false, desc: 'a valid property in mixed case' },
   { property: 'width', expected: true, desc: 'a valid property' },
   { property: 'wIdTh', expected: true, desc: 'a valid property in mixed case' },
   { property: '--foo', expected: true, desc: 'a valid custom property' },
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/white-space.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/white-space.html
index 9cd2d6e..f050da2 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/white-space.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/white-space.html
@@ -15,8 +15,10 @@
 
 runPropertyTests('white-space', [
   { syntax: 'normal'},
-  { syntax: 'nowrap' }
-  // and other keywords
+  { syntax: 'pre' },
+  { syntax: 'nowrap' },
+  { syntax: 'pre-wrap' },
+  { syntax: 'pre-line' },
 ]);
 
 </script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/whitespace.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/whitespace.html
deleted file mode 100644
index f050da2..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/whitespace.html
+++ /dev/null
@@ -1,24 +0,0 @@
-<!doctype html>
-<meta charset="utf-8">
-<title>'white-space' property</title>
-<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-get">
-<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-set">
-<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#property-stle-value-normalization">
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../../resources/testhelper.js"></script>
-<script src="resources/testsuite.js"></script>
-<body>
-<div id="log"></div>
-<script>
-'use strict';
-
-runPropertyTests('white-space', [
-  { syntax: 'normal'},
-  { syntax: 'pre' },
-  { syntax: 'nowrap' },
-  { syntax: 'pre-wrap' },
-  { syntax: 'pre-line' },
-]);
-
-</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/cssom-view/interfaces-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/css/cssom-view/interfaces-expected.txt
index 436bd416..3514a3c4 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/cssom-view/interfaces-expected.txt
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/cssom-view/interfaces-expected.txt
@@ -1,11 +1,16 @@
 This is a testharness.js-based test.
-Found 300 tests; 226 PASS, 74 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 385 tests; 310 PASS, 75 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS Test driver
 PASS HTMLElement interface: attribute offsetParent
+PASS Unscopable handled correctly for offsetParent property on HTMLElement
 PASS HTMLElement interface: attribute offsetTop
+PASS Unscopable handled correctly for offsetTop property on HTMLElement
 PASS HTMLElement interface: attribute offsetLeft
+PASS Unscopable handled correctly for offsetLeft property on HTMLElement
 PASS HTMLElement interface: attribute offsetWidth
+PASS Unscopable handled correctly for offsetWidth property on HTMLElement
 PASS HTMLElement interface: attribute offsetHeight
+PASS Unscopable handled correctly for offsetHeight property on HTMLElement
 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
@@ -44,7 +49,9 @@
 FAIL Element interface: document.createElement('div') must inherit property "convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertPointFromNode" not found in prototype chain
 FAIL Element interface: calling convertPointFromNode(DOMPointInit, GeometryNode, 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 Unscopable handled correctly for x property on HTMLImageElement
 PASS HTMLImageElement interface: attribute y
+PASS Unscopable handled correctly for y property on HTMLImageElement
 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
@@ -85,28 +92,51 @@
 FAIL Element interface: document.createElement('img') must inherit property "convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertPointFromNode" not found in prototype chain
 FAIL Element interface: calling convertPointFromNode(DOMPointInit, GeometryNode, 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 Unscopable handled correctly for matchMedia(CSSOMString) on Window
 PASS Window interface: attribute screen
+PASS Unscopable handled correctly for screen property on Window
 PASS Window interface: operation moveTo(long, long)
+PASS Unscopable handled correctly for moveTo(long, long) on Window
 PASS Window interface: operation moveBy(long, long)
+PASS Unscopable handled correctly for moveBy(long, long) on Window
 PASS Window interface: operation resizeTo(long, long)
+PASS Unscopable handled correctly for resizeTo(long, long) on Window
 PASS Window interface: operation resizeBy(long, long)
+PASS Unscopable handled correctly for resizeBy(long, long) on Window
 PASS Window interface: attribute innerWidth
+PASS Unscopable handled correctly for innerWidth property on Window
 PASS Window interface: attribute innerHeight
+PASS Unscopable handled correctly for innerHeight property on Window
 PASS Window interface: attribute scrollX
+PASS Unscopable handled correctly for scrollX property on Window
 PASS Window interface: attribute pageXOffset
+PASS Unscopable handled correctly for pageXOffset property on Window
 PASS Window interface: attribute scrollY
+PASS Unscopable handled correctly for scrollY property on Window
 PASS Window interface: attribute pageYOffset
+PASS Unscopable handled correctly for pageYOffset property on Window
 FAIL Window interface: operation scroll(ScrollToOptions) assert_equals: property has wrong .length expected 0 but got 2
+PASS Unscopable handled correctly for scroll(ScrollToOptions) on Window
 FAIL Window interface: operation scroll(unrestricted double, unrestricted double) assert_equals: property has wrong .length expected 0 but got 2
+PASS Unscopable handled correctly for scroll(unrestricted double, unrestricted double) on Window
 FAIL Window interface: operation scrollTo(ScrollToOptions) assert_equals: property has wrong .length expected 0 but got 2
+PASS Unscopable handled correctly for scrollTo(ScrollToOptions) on Window
 FAIL Window interface: operation scrollTo(unrestricted double, unrestricted double) assert_equals: property has wrong .length expected 0 but got 2
+PASS Unscopable handled correctly for scrollTo(unrestricted double, unrestricted double) on Window
 FAIL Window interface: operation scrollBy(ScrollToOptions) assert_equals: property has wrong .length expected 0 but got 2
+PASS Unscopable handled correctly for scrollBy(ScrollToOptions) on Window
 FAIL Window interface: operation scrollBy(unrestricted double, unrestricted double) assert_equals: property has wrong .length expected 0 but got 2
+PASS Unscopable handled correctly for scrollBy(unrestricted double, unrestricted double) on Window
 PASS Window interface: attribute screenX
+PASS Unscopable handled correctly for screenX property on Window
 PASS Window interface: attribute screenY
+PASS Unscopable handled correctly for screenY property on Window
 PASS Window interface: attribute outerWidth
+PASS Unscopable handled correctly for outerWidth property on Window
 PASS Window interface: attribute outerHeight
+PASS Unscopable handled correctly for outerHeight property on Window
 PASS Window interface: attribute devicePixelRatio
+PASS Unscopable handled correctly for devicePixelRatio property on Window
 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
@@ -147,13 +177,21 @@
 PASS WorkerNavigator interface: existence and properties of interface object
 PASS WorkerLocation interface: existence and properties of interface object
 PASS Document interface: operation elementFromPoint(double, double)
+PASS Unscopable handled correctly for elementFromPoint(double, double) on Document
 PASS Document interface: operation elementsFromPoint(double, double)
+PASS Unscopable handled correctly for elementsFromPoint(double, double) on Document
 FAIL Document interface: operation caretPositionFromPoint(double, double) assert_own_property: interface prototype object missing non-static operation expected property "caretPositionFromPoint" missing
+PASS Unscopable handled correctly for caretPositionFromPoint(double, double) on Document
 PASS Document interface: attribute scrollingElement
+PASS Unscopable handled correctly for scrollingElement property on Document
 FAIL Document interface: operation getBoxQuads(BoxQuadOptions) assert_own_property: interface prototype object missing non-static operation expected property "getBoxQuads" missing
+PASS Unscopable handled correctly for getBoxQuads(BoxQuadOptions) on Document
 FAIL Document interface: operation convertQuadFromNode(DOMQuadInit, GeometryNode, ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertQuadFromNode" missing
+PASS Unscopable handled correctly for convertQuadFromNode(DOMQuadInit, GeometryNode, ConvertCoordinateOptions) on Document
 FAIL Document interface: operation convertRectFromNode(DOMRectReadOnly, GeometryNode, ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertRectFromNode" missing
+PASS Unscopable handled correctly for convertRectFromNode(DOMRectReadOnly, GeometryNode, ConvertCoordinateOptions) on Document
 FAIL Document interface: operation convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertPointFromNode" missing
+PASS Unscopable handled correctly for convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions) on Document
 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
@@ -170,26 +208,47 @@
 FAIL Document interface: document must inherit property "convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertPointFromNode" not found in prototype chain
 FAIL Document interface: calling convertPointFromNode(DOMPointInit, GeometryNode, 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 Unscopable handled correctly for getClientRects() on Element
 PASS Element interface: operation getBoundingClientRect()
+PASS Unscopable handled correctly for getBoundingClientRect() on Element
 PASS Element interface: operation scrollIntoView([object Object],[object Object])
+PASS Unscopable handled correctly for scrollIntoView([object Object],[object Object]) on Element
 PASS Element interface: operation scroll(ScrollToOptions)
+PASS Unscopable handled correctly for scroll(ScrollToOptions) on Element
 PASS Element interface: operation scroll(unrestricted double, unrestricted double)
+PASS Unscopable handled correctly for scroll(unrestricted double, unrestricted double) on Element
 PASS Element interface: operation scrollTo(ScrollToOptions)
+PASS Unscopable handled correctly for scrollTo(ScrollToOptions) on Element
 PASS Element interface: operation scrollTo(unrestricted double, unrestricted double)
+PASS Unscopable handled correctly for scrollTo(unrestricted double, unrestricted double) on Element
 PASS Element interface: operation scrollBy(ScrollToOptions)
+PASS Unscopable handled correctly for scrollBy(ScrollToOptions) on Element
 PASS Element interface: operation scrollBy(unrestricted double, unrestricted double)
+PASS Unscopable handled correctly for scrollBy(unrestricted double, unrestricted double) on Element
 PASS Element interface: attribute scrollTop
+PASS Unscopable handled correctly for scrollTop property on Element
 PASS Element interface: attribute scrollLeft
+PASS Unscopable handled correctly for scrollLeft property on Element
 PASS Element interface: attribute scrollWidth
+PASS Unscopable handled correctly for scrollWidth property on Element
 PASS Element interface: attribute scrollHeight
+PASS Unscopable handled correctly for scrollHeight property on Element
 PASS Element interface: attribute clientTop
+PASS Unscopable handled correctly for clientTop property on Element
 PASS Element interface: attribute clientLeft
+PASS Unscopable handled correctly for clientLeft property on Element
 PASS Element interface: attribute clientWidth
+PASS Unscopable handled correctly for clientWidth property on Element
 PASS Element interface: attribute clientHeight
+PASS Unscopable handled correctly for clientHeight property on Element
 FAIL Element interface: operation getBoxQuads(BoxQuadOptions) assert_own_property: interface prototype object missing non-static operation expected property "getBoxQuads" missing
+PASS Unscopable handled correctly for getBoxQuads(BoxQuadOptions) on Element
 FAIL Element interface: operation convertQuadFromNode(DOMQuadInit, GeometryNode, ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertQuadFromNode" missing
+PASS Unscopable handled correctly for convertQuadFromNode(DOMQuadInit, GeometryNode, ConvertCoordinateOptions) on Element
 FAIL Element interface: operation convertRectFromNode(DOMRectReadOnly, GeometryNode, ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertRectFromNode" missing
+PASS Unscopable handled correctly for convertRectFromNode(DOMRectReadOnly, GeometryNode, ConvertCoordinateOptions) on Element
 FAIL Element interface: operation convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertPointFromNode" missing
+PASS Unscopable handled correctly for convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions) on Element
 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([object Object],[object Object])" with the proper type
@@ -223,9 +282,13 @@
 FAIL Element interface: document.createElementNS('x', 'y') must inherit property "convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertPointFromNode" not found in prototype chain
 FAIL Element interface: calling convertPointFromNode(DOMPointInit, GeometryNode, 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(BoxQuadOptions) assert_own_property: interface prototype object missing non-static operation expected property "getBoxQuads" missing
+PASS Unscopable handled correctly for getBoxQuads(BoxQuadOptions) on Text
 FAIL Text interface: operation convertQuadFromNode(DOMQuadInit, GeometryNode, ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertQuadFromNode" missing
+PASS Unscopable handled correctly for convertQuadFromNode(DOMQuadInit, GeometryNode, ConvertCoordinateOptions) on Text
 FAIL Text interface: operation convertRectFromNode(DOMRectReadOnly, GeometryNode, ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertRectFromNode" missing
+PASS Unscopable handled correctly for convertRectFromNode(DOMRectReadOnly, GeometryNode, ConvertCoordinateOptions) on Text
 FAIL Text interface: operation convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertPointFromNode" missing
+PASS Unscopable handled correctly for convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions) on Text
 FAIL Text interface: document.createTextNode('x') must inherit property "getBoxQuads(BoxQuadOptions)" with the proper type assert_inherits: property "getBoxQuads" not found in prototype chain
 FAIL Text interface: calling getBoxQuads(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, ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertQuadFromNode" not found in prototype chain
@@ -235,7 +298,9 @@
 FAIL Text interface: document.createTextNode('x') must inherit property "convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertPointFromNode" not found in prototype chain
 FAIL Text interface: calling convertPointFromNode(DOMPointInit, GeometryNode, 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 Unscopable handled correctly for getClientRects() on Range
 PASS Range interface: operation getBoundingClientRect()
+PASS Unscopable handled correctly for getBoundingClientRect() on Range
 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
 PASS MediaQueryList interface: existence and properties of interface object
@@ -243,11 +308,17 @@
 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 Unscopable handled correctly for media property on MediaQueryList
 PASS MediaQueryList interface: attribute matches
+PASS Unscopable handled correctly for matches property on MediaQueryList
 PASS MediaQueryList interface: operation addListener(EventListener)
+PASS Unscopable handled correctly for addListener(EventListener) on MediaQueryList
 PASS MediaQueryList interface: operation removeListener(EventListener)
+PASS Unscopable handled correctly for removeListener(EventListener) on MediaQueryList
 PASS MediaQueryList interface: attribute onchange
+PASS Unscopable handled correctly for onchange property on MediaQueryList
 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
@@ -262,8 +333,11 @@
 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 Unscopable handled correctly for media property on MediaQueryListEvent
 PASS MediaQueryListEvent interface: attribute matches
+PASS Unscopable handled correctly for matches property on MediaQueryListEvent
 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
@@ -273,12 +347,19 @@
 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 Unscopable handled correctly for availWidth property on Screen
 PASS Screen interface: attribute availHeight
+PASS Unscopable handled correctly for availHeight property on Screen
 PASS Screen interface: attribute width
+PASS Unscopable handled correctly for width property on Screen
 PASS Screen interface: attribute height
+PASS Unscopable handled correctly for height property on Screen
 PASS Screen interface: attribute colorDepth
+PASS Unscopable handled correctly for colorDepth property on Screen
 PASS Screen interface: attribute pixelDepth
+PASS Unscopable handled correctly for pixelDepth property on Screen
 PASS Screen must be primary interface of screen
 PASS Stringification of screen
 PASS Screen interface: screen must inherit property "availWidth" with the proper type
@@ -292,9 +373,13 @@
 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
+PASS Unscopable handled correctly for offsetNode property on CaretPosition
 FAIL CaretPosition interface: attribute offset assert_own_property: self does not have own property "CaretPosition" expected property "CaretPosition" missing
+PASS Unscopable handled correctly for offset property on CaretPosition
 FAIL CaretPosition interface: operation getClientRect() assert_own_property: self does not have own property "CaretPosition" expected property "CaretPosition" missing
+PASS Unscopable handled correctly for getClientRect() on CaretPosition
 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"
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/cssom/interfaces-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/css/cssom/interfaces-expected.txt
index 251fb4c..6c6c499 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/cssom/interfaces-expected.txt
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/cssom/interfaces-expected.txt
@@ -1,12 +1,16 @@
 This is a testharness.js-based test.
-Found 399 tests; 315 PASS, 84 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 470 tests; 385 PASS, 85 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS Test driver
 PASS HTMLElement interface: attribute style
+PASS Unscopable handled correctly for style property on HTMLElement
 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 Unscopable handled correctly for sheet property on HTMLLinkElement
 PASS HTMLStyleElement interface: attribute sheet
+PASS Unscopable handled correctly for sheet property on HTMLStyleElement
 PASS Window interface: operation getComputedStyle(Element, CSSOMString)
+PASS Unscopable handled correctly for getComputedStyle(Element, CSSOMString) on Window
 PASS Window interface: window must inherit property "getComputedStyle(Element, CSSOMString)" with the proper type
 PASS Window interface: calling getComputedStyle(Element, CSSOMString) on window with too few arguments must throw TypeError
 PASS WorkerGlobalScope interface: existence and properties of interface object
@@ -15,23 +19,32 @@
 PASS WorkerNavigator interface: existence and properties of interface object
 PASS WorkerLocation interface: existence and properties of interface object
 PASS Document interface: attribute styleSheets
+PASS Unscopable handled correctly for styleSheets property on Document
 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 ProcessingInstruction interface: attribute sheet
+PASS Unscopable handled correctly for sheet property on ProcessingInstruction
 PASS ProcessingInstruction interface: xmlss_pi must inherit property "sheet" with the proper type
 PASS SVGElement interface: attribute style
+PASS Unscopable handled correctly for style property on SVGElement
 PASS SVGElement interface: svg_element must inherit property "style" with the proper type
 PASS MediaList interface: existence and properties of interface object
 PASS MediaList interface object length
 PASS MediaList interface object name
 FAIL MediaList interface: existence and properties of interface prototype object assert_equals: prototype of MediaList.prototype is not Array.prototype expected [] but got object "[object 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 Unscopable handled correctly for mediaText property on MediaList
 PASS MediaList interface: stringifier
 PASS MediaList interface: attribute length
+PASS Unscopable handled correctly for length property on MediaList
 PASS MediaList interface: operation item(unsigned long)
+PASS Unscopable handled correctly for item(unsigned long) on MediaList
 PASS MediaList interface: operation appendMedium(CSSOMString)
+PASS Unscopable handled correctly for appendMedium(CSSOMString) on MediaList
 PASS MediaList interface: operation deleteMedium(CSSOMString)
+PASS Unscopable handled correctly for deleteMedium(CSSOMString) on MediaList
 PASS MediaList must be primary interface of style_element.sheet.media
 PASS Stringification of style_element.sheet.media
 PASS MediaList interface: style_element.sheet.media must inherit property "mediaText" with the proper type
@@ -47,22 +60,35 @@
 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 Unscopable handled correctly for type property on StyleSheet
 PASS StyleSheet interface: attribute href
+PASS Unscopable handled correctly for href property on StyleSheet
 PASS StyleSheet interface: attribute ownerNode
+PASS Unscopable handled correctly for ownerNode property on StyleSheet
 PASS StyleSheet interface: attribute parentStyleSheet
+PASS Unscopable handled correctly for parentStyleSheet property on StyleSheet
 PASS StyleSheet interface: attribute title
+PASS Unscopable handled correctly for title property on StyleSheet
 PASS StyleSheet interface: attribute media
+PASS Unscopable handled correctly for media property on StyleSheet
 PASS StyleSheet interface: attribute disabled
+PASS Unscopable handled correctly for disabled property on StyleSheet
 PASS CSSStyleSheet interface: existence and properties of interface object
 FAIL CSSStyleSheet interface object length assert_equals: wrong value for CSSStyleSheet.length expected 0 but got 1
 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 Unscopable handled correctly for ownerRule property on CSSStyleSheet
 PASS CSSStyleSheet interface: attribute cssRules
+PASS Unscopable handled correctly for cssRules property on CSSStyleSheet
 PASS CSSStyleSheet interface: operation insertRule(CSSOMString, unsigned long)
+PASS Unscopable handled correctly for insertRule(CSSOMString, unsigned long) on CSSStyleSheet
 PASS CSSStyleSheet interface: operation deleteRule(unsigned long)
+PASS Unscopable handled correctly for deleteRule(unsigned long) on CSSStyleSheet
 PASS CSSStyleSheet must be primary interface of style_element.sheet
 PASS Stringification of style_element.sheet
 PASS CSSStyleSheet interface: style_element.sheet must inherit property "ownerRule" with the proper type
@@ -83,8 +109,11 @@
 PASS StyleSheetList interface object name
 FAIL StyleSheetList interface: existence and properties of interface prototype object assert_equals: prototype of StyleSheetList.prototype is not Array.prototype expected [] but got object "[object 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 Unscopable handled correctly for item(unsigned long) on StyleSheetList
 PASS StyleSheetList interface: attribute length
+PASS Unscopable handled correctly for length property on StyleSheetList
 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
@@ -95,8 +124,11 @@
 PASS CSSRuleList interface object name
 FAIL CSSRuleList interface: existence and properties of interface prototype object assert_equals: prototype of CSSRuleList.prototype is not Array.prototype expected [] but got object "[object 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 Unscopable handled correctly for item(unsigned long) on CSSRuleList
 PASS CSSRuleList interface: attribute length
+PASS Unscopable handled correctly for length property on CSSRuleList
 PASS CSSRuleList must be primary interface of style_element.sheet.cssRules
 PASS Stringification of style_element.sheet.cssRules
 PASS CSSRuleList interface: style_element.sheet.cssRules must inherit property "item(unsigned long)" with the proper type
@@ -107,6 +139,7 @@
 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: 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
@@ -124,16 +157,23 @@
 PASS CSSRule interface: constant NAMESPACE_RULE on interface object
 PASS CSSRule interface: constant NAMESPACE_RULE on interface prototype object
 PASS CSSRule interface: attribute type
+PASS Unscopable handled correctly for type property on CSSRule
 PASS CSSRule interface: attribute cssText
+PASS Unscopable handled correctly for cssText property on CSSRule
 PASS CSSRule interface: attribute parentRule
+PASS Unscopable handled correctly for parentRule property on CSSRule
 PASS CSSRule interface: attribute parentStyleSheet
+PASS Unscopable handled correctly for parentStyleSheet property on CSSRule
 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 Unscopable handled correctly for selectorText property on CSSStyleRule
 PASS CSSStyleRule interface: attribute style
+PASS Unscopable handled correctly for style property on CSSStyleRule
 PASS CSSStyleRule must be primary interface of style_element.sheet.cssRules[4]
 PASS Stringification of style_element.sheet.cssRules[4]
 PASS CSSStyleRule interface: style_element.sheet.cssRules[4] must inherit property "selectorText" with the proper type
@@ -155,9 +195,13 @@
 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 Unscopable handled correctly for href property on CSSImportRule
 PASS CSSImportRule interface: attribute media
+PASS Unscopable handled correctly for media property on CSSImportRule
 PASS CSSImportRule interface: attribute styleSheet
+PASS Unscopable handled correctly for styleSheet property on CSSImportRule
 PASS CSSImportRule must be primary interface of style_element.sheet.cssRules[0]
 PASS Stringification of style_element.sheet.cssRules[0]
 PASS CSSImportRule interface: style_element.sheet.cssRules[0] must inherit property "href" with the proper type
@@ -180,16 +224,23 @@
 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
+PASS Unscopable handled correctly for cssRules property on CSSGroupingRule
 FAIL CSSGroupingRule interface: operation insertRule(CSSOMString, unsigned long) assert_equals: property has wrong .length expected 1 but got 2
+PASS Unscopable handled correctly for insertRule(CSSOMString, unsigned long) on CSSGroupingRule
 PASS CSSGroupingRule interface: operation deleteRule(unsigned long)
+PASS Unscopable handled correctly for deleteRule(unsigned long) on CSSGroupingRule
 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 Unscopable handled correctly for selectorText property on CSSPageRule
 PASS CSSPageRule interface: attribute style
+PASS Unscopable handled correctly for style property on CSSPageRule
 PASS CSSPageRule must be primary interface of style_element.sheet.cssRules[2]
 PASS Stringification of style_element.sheet.cssRules[2]
 PASS CSSPageRule interface: style_element.sheet.cssRules[2] must inherit property "selectorText" with the proper type
@@ -216,8 +267,11 @@
 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
+PASS Unscopable handled correctly for name property on CSSMarginRule
 FAIL CSSMarginRule interface: attribute style assert_own_property: self does not have own property "CSSMarginRule" expected property "CSSMarginRule" missing
+PASS Unscopable handled correctly for style property on CSSMarginRule
 FAIL CSSMarginRule must be primary interface of style_element.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 style_element.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: style_element.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"
@@ -239,8 +293,11 @@
 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 Unscopable handled correctly for namespaceURI property on CSSNamespaceRule
 PASS CSSNamespaceRule interface: attribute prefix
+PASS Unscopable handled correctly for prefix property on CSSNamespaceRule
 PASS CSSNamespaceRule must be primary interface of style_element.sheet.cssRules[1]
 PASS Stringification of style_element.sheet.cssRules[1]
 PASS CSSNamespaceRule interface: style_element.sheet.cssRules[1] must inherit property "namespaceURI" with the proper type
@@ -262,17 +319,29 @@
 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 Unscopable handled correctly for cssText property on CSSStyleDeclaration
 PASS CSSStyleDeclaration interface: attribute length
+PASS Unscopable handled correctly for length property on CSSStyleDeclaration
 PASS CSSStyleDeclaration interface: operation item(unsigned long)
+PASS Unscopable handled correctly for item(unsigned long) on CSSStyleDeclaration
 PASS CSSStyleDeclaration interface: operation getPropertyValue(CSSOMString)
+PASS Unscopable handled correctly for getPropertyValue(CSSOMString) on CSSStyleDeclaration
 PASS CSSStyleDeclaration interface: operation getPropertyPriority(CSSOMString)
+PASS Unscopable handled correctly for getPropertyPriority(CSSOMString) on CSSStyleDeclaration
 PASS CSSStyleDeclaration interface: operation setProperty(CSSOMString, CSSOMString, CSSOMString)
+PASS Unscopable handled correctly for setProperty(CSSOMString, CSSOMString, CSSOMString) on CSSStyleDeclaration
 FAIL CSSStyleDeclaration interface: operation setPropertyValue(CSSOMString, CSSOMString) assert_own_property: interface prototype object missing non-static operation expected property "setPropertyValue" missing
+PASS Unscopable handled correctly for setPropertyValue(CSSOMString, CSSOMString) on CSSStyleDeclaration
 FAIL CSSStyleDeclaration interface: operation setPropertyPriority(CSSOMString, CSSOMString) assert_own_property: interface prototype object missing non-static operation expected property "setPropertyPriority" missing
+PASS Unscopable handled correctly for setPropertyPriority(CSSOMString, CSSOMString) on CSSStyleDeclaration
 PASS CSSStyleDeclaration interface: operation removeProperty(CSSOMString)
+PASS Unscopable handled correctly for removeProperty(CSSOMString) on CSSStyleDeclaration
 PASS CSSStyleDeclaration interface: attribute parentRule
+PASS Unscopable handled correctly for parentRule property on CSSStyleDeclaration
 PASS CSSStyleDeclaration interface: attribute cssFloat
+PASS Unscopable handled correctly for cssFloat property on CSSStyleDeclaration
 PASS CSSStyleDeclaration must be primary interface of style_element.sheet.cssRules[4].style
 PASS Stringification of style_element.sheet.cssRules[4].style
 PASS CSSStyleDeclaration interface: style_element.sheet.cssRules[4].style must inherit property "cssText" with the proper type
@@ -398,6 +467,8 @@
 PASS CSS interface object name
 PASS CSS interface: existence and properties of interface prototype object
 PASS CSS interface: existence and properties of interface prototype object's "constructor" property
+PASS CSS interface: existence and properties of interface prototype object's @@unscopables property
 PASS CSS interface: operation escape(CSSOMString)
+PASS Unscopable handled correctly for escape(CSSOMString) on CSS
 Harness: the test ran to completion.
 
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/geometry/interfaces-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/css/geometry/interfaces-expected.txt
index 59cdc967..87bbfe9 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/geometry/interfaces-expected.txt
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/geometry/interfaces-expected.txt
@@ -1,17 +1,24 @@
 This is a testharness.js-based test.
-Found 552 tests; 549 PASS, 3 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 670 tests; 667 PASS, 3 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS Test driver
 PASS DOMPointReadOnly interface: existence and properties of interface object
 PASS DOMPointReadOnly interface object length
 PASS DOMPointReadOnly interface object name
 PASS DOMPointReadOnly interface: existence and properties of interface prototype object
 PASS DOMPointReadOnly interface: existence and properties of interface prototype object's "constructor" property
+PASS DOMPointReadOnly interface: existence and properties of interface prototype object's @@unscopables property
 PASS DOMPointReadOnly interface: operation fromPoint(DOMPointInit)
+PASS Unscopable handled correctly for fromPoint(DOMPointInit) on DOMPointReadOnly
 PASS DOMPointReadOnly interface: attribute x
+PASS Unscopable handled correctly for x property on DOMPointReadOnly
 PASS DOMPointReadOnly interface: attribute y
+PASS Unscopable handled correctly for y property on DOMPointReadOnly
 PASS DOMPointReadOnly interface: attribute z
+PASS Unscopable handled correctly for z property on DOMPointReadOnly
 PASS DOMPointReadOnly interface: attribute w
+PASS Unscopable handled correctly for w property on DOMPointReadOnly
 PASS DOMPointReadOnly interface: operation matrixTransform(DOMMatrixInit)
+PASS Unscopable handled correctly for matrixTransform(DOMMatrixInit) on DOMPointReadOnly
 PASS DOMPointReadOnly must be primary interface of new DOMPointReadOnly()
 PASS Stringification of new DOMPointReadOnly()
 PASS DOMPointReadOnly interface: new DOMPointReadOnly() must inherit property "fromPoint(DOMPointInit)" with the proper type
@@ -28,11 +35,17 @@
 FAIL DOMPoint interface: legacy window alias assert_equals: self.SVGPoint should be the same value as self.DOMPoint expected function "function DOMPoint() { [native code] }" but got function "function SVGPoint() { [native code] }"
 PASS DOMPoint interface: existence and properties of interface prototype object
 PASS DOMPoint interface: existence and properties of interface prototype object's "constructor" property
+PASS DOMPoint interface: existence and properties of interface prototype object's @@unscopables property
 PASS DOMPoint interface: operation fromPoint(DOMPointInit)
+PASS Unscopable handled correctly for fromPoint(DOMPointInit) on DOMPoint
 PASS DOMPoint interface: attribute x
+PASS Unscopable handled correctly for x property on DOMPoint
 PASS DOMPoint interface: attribute y
+PASS Unscopable handled correctly for y property on DOMPoint
 PASS DOMPoint interface: attribute z
+PASS Unscopable handled correctly for z property on DOMPoint
 PASS DOMPoint interface: attribute w
+PASS Unscopable handled correctly for w property on DOMPoint
 PASS DOMPoint must be primary interface of new DOMPoint()
 PASS Stringification of new DOMPoint()
 PASS DOMPoint interface: new DOMPoint() must inherit property "fromPoint(DOMPointInit)" with the proper type
@@ -54,15 +67,25 @@
 PASS DOMRectReadOnly interface object name
 PASS DOMRectReadOnly interface: existence and properties of interface prototype object
 PASS DOMRectReadOnly interface: existence and properties of interface prototype object's "constructor" property
+PASS DOMRectReadOnly interface: existence and properties of interface prototype object's @@unscopables property
 PASS DOMRectReadOnly interface: operation fromRect(DOMRectInit)
+PASS Unscopable handled correctly for fromRect(DOMRectInit) on DOMRectReadOnly
 PASS DOMRectReadOnly interface: attribute x
+PASS Unscopable handled correctly for x property on DOMRectReadOnly
 PASS DOMRectReadOnly interface: attribute y
+PASS Unscopable handled correctly for y property on DOMRectReadOnly
 PASS DOMRectReadOnly interface: attribute width
+PASS Unscopable handled correctly for width property on DOMRectReadOnly
 PASS DOMRectReadOnly interface: attribute height
+PASS Unscopable handled correctly for height property on DOMRectReadOnly
 PASS DOMRectReadOnly interface: attribute top
+PASS Unscopable handled correctly for top property on DOMRectReadOnly
 PASS DOMRectReadOnly interface: attribute right
+PASS Unscopable handled correctly for right property on DOMRectReadOnly
 PASS DOMRectReadOnly interface: attribute bottom
+PASS Unscopable handled correctly for bottom property on DOMRectReadOnly
 PASS DOMRectReadOnly interface: attribute left
+PASS Unscopable handled correctly for left property on DOMRectReadOnly
 PASS DOMRectReadOnly must be primary interface of new DOMRectReadOnly()
 PASS Stringification of new DOMRectReadOnly()
 PASS DOMRectReadOnly interface: new DOMRectReadOnly() must inherit property "fromRect(DOMRectInit)" with the proper type
@@ -81,11 +104,17 @@
 FAIL DOMRect interface: legacy window alias assert_equals: self.SVGRect should be the same value as self.DOMRect expected function "function DOMRect() { [native code] }" but got function "function SVGRect() { [native code] }"
 PASS DOMRect interface: existence and properties of interface prototype object
 PASS DOMRect interface: existence and properties of interface prototype object's "constructor" property
+PASS DOMRect interface: existence and properties of interface prototype object's @@unscopables property
 PASS DOMRect interface: operation fromRect(DOMRectInit)
+PASS Unscopable handled correctly for fromRect(DOMRectInit) on DOMRect
 PASS DOMRect interface: attribute x
+PASS Unscopable handled correctly for x property on DOMRect
 PASS DOMRect interface: attribute y
+PASS Unscopable handled correctly for y property on DOMRect
 PASS DOMRect interface: attribute width
+PASS Unscopable handled correctly for width property on DOMRect
 PASS DOMRect interface: attribute height
+PASS Unscopable handled correctly for height property on DOMRect
 PASS DOMRect must be primary interface of new DOMRect()
 PASS Stringification of new DOMRect()
 PASS DOMRect interface: new DOMRect() must inherit property "fromRect(DOMRectInit)" with the proper type
@@ -113,13 +142,21 @@
 PASS DOMQuad interface object name
 PASS DOMQuad interface: existence and properties of interface prototype object
 PASS DOMQuad interface: existence and properties of interface prototype object's "constructor" property
+PASS DOMQuad interface: existence and properties of interface prototype object's @@unscopables property
 PASS DOMQuad interface: operation fromRect(DOMRectInit)
+PASS Unscopable handled correctly for fromRect(DOMRectInit) on DOMQuad
 PASS DOMQuad interface: operation fromQuad(DOMQuadInit)
+PASS Unscopable handled correctly for fromQuad(DOMQuadInit) on DOMQuad
 PASS DOMQuad interface: attribute p1
+PASS Unscopable handled correctly for p1 property on DOMQuad
 PASS DOMQuad interface: attribute p2
+PASS Unscopable handled correctly for p2 property on DOMQuad
 PASS DOMQuad interface: attribute p3
+PASS Unscopable handled correctly for p3 property on DOMQuad
 PASS DOMQuad interface: attribute p4
+PASS Unscopable handled correctly for p4 property on DOMQuad
 PASS DOMQuad interface: operation getBounds()
+PASS Unscopable handled correctly for getBounds() on DOMQuad
 PASS DOMQuad must be primary interface of new DOMQuad()
 PASS Stringification of new DOMQuad()
 PASS DOMQuad interface: new DOMQuad() must inherit property "fromRect(DOMRectInit)" with the proper type
@@ -136,48 +173,91 @@
 PASS DOMMatrixReadOnly interface object name
 PASS DOMMatrixReadOnly interface: existence and properties of interface prototype object
 PASS DOMMatrixReadOnly interface: existence and properties of interface prototype object's "constructor" property
+PASS DOMMatrixReadOnly interface: existence and properties of interface prototype object's @@unscopables property
 PASS DOMMatrixReadOnly interface: operation fromMatrix(DOMMatrixInit)
+PASS Unscopable handled correctly for fromMatrix(DOMMatrixInit) on DOMMatrixReadOnly
 PASS DOMMatrixReadOnly interface: operation fromFloat32Array(Float32Array)
+PASS Unscopable handled correctly for fromFloat32Array(Float32Array) on DOMMatrixReadOnly
 PASS DOMMatrixReadOnly interface: operation fromFloat64Array(Float64Array)
+PASS Unscopable handled correctly for fromFloat64Array(Float64Array) on DOMMatrixReadOnly
 PASS DOMMatrixReadOnly interface: attribute a
+PASS Unscopable handled correctly for a property on DOMMatrixReadOnly
 PASS DOMMatrixReadOnly interface: attribute b
+PASS Unscopable handled correctly for b property on DOMMatrixReadOnly
 PASS DOMMatrixReadOnly interface: attribute c
+PASS Unscopable handled correctly for c property on DOMMatrixReadOnly
 PASS DOMMatrixReadOnly interface: attribute d
+PASS Unscopable handled correctly for d property on DOMMatrixReadOnly
 PASS DOMMatrixReadOnly interface: attribute e
+PASS Unscopable handled correctly for e property on DOMMatrixReadOnly
 PASS DOMMatrixReadOnly interface: attribute f
+PASS Unscopable handled correctly for f property on DOMMatrixReadOnly
 PASS DOMMatrixReadOnly interface: attribute m11
+PASS Unscopable handled correctly for m11 property on DOMMatrixReadOnly
 PASS DOMMatrixReadOnly interface: attribute m12
+PASS Unscopable handled correctly for m12 property on DOMMatrixReadOnly
 PASS DOMMatrixReadOnly interface: attribute m13
+PASS Unscopable handled correctly for m13 property on DOMMatrixReadOnly
 PASS DOMMatrixReadOnly interface: attribute m14
+PASS Unscopable handled correctly for m14 property on DOMMatrixReadOnly
 PASS DOMMatrixReadOnly interface: attribute m21
+PASS Unscopable handled correctly for m21 property on DOMMatrixReadOnly
 PASS DOMMatrixReadOnly interface: attribute m22
+PASS Unscopable handled correctly for m22 property on DOMMatrixReadOnly
 PASS DOMMatrixReadOnly interface: attribute m23
+PASS Unscopable handled correctly for m23 property on DOMMatrixReadOnly
 PASS DOMMatrixReadOnly interface: attribute m24
+PASS Unscopable handled correctly for m24 property on DOMMatrixReadOnly
 PASS DOMMatrixReadOnly interface: attribute m31
+PASS Unscopable handled correctly for m31 property on DOMMatrixReadOnly
 PASS DOMMatrixReadOnly interface: attribute m32
+PASS Unscopable handled correctly for m32 property on DOMMatrixReadOnly
 PASS DOMMatrixReadOnly interface: attribute m33
+PASS Unscopable handled correctly for m33 property on DOMMatrixReadOnly
 PASS DOMMatrixReadOnly interface: attribute m34
+PASS Unscopable handled correctly for m34 property on DOMMatrixReadOnly
 PASS DOMMatrixReadOnly interface: attribute m41
+PASS Unscopable handled correctly for m41 property on DOMMatrixReadOnly
 PASS DOMMatrixReadOnly interface: attribute m42
+PASS Unscopable handled correctly for m42 property on DOMMatrixReadOnly
 PASS DOMMatrixReadOnly interface: attribute m43
+PASS Unscopable handled correctly for m43 property on DOMMatrixReadOnly
 PASS DOMMatrixReadOnly interface: attribute m44
+PASS Unscopable handled correctly for m44 property on DOMMatrixReadOnly
 PASS DOMMatrixReadOnly interface: attribute is2D
+PASS Unscopable handled correctly for is2D property on DOMMatrixReadOnly
 PASS DOMMatrixReadOnly interface: attribute isIdentity
+PASS Unscopable handled correctly for isIdentity property on DOMMatrixReadOnly
 PASS DOMMatrixReadOnly interface: operation translate(unrestricted double, unrestricted double, unrestricted double)
+PASS Unscopable handled correctly for translate(unrestricted double, unrestricted double, unrestricted double) on DOMMatrixReadOnly
 PASS DOMMatrixReadOnly interface: operation scale(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
+PASS Unscopable handled correctly for scale(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on DOMMatrixReadOnly
 PASS DOMMatrixReadOnly interface: operation scale3d(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
+PASS Unscopable handled correctly for scale3d(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on DOMMatrixReadOnly
 PASS DOMMatrixReadOnly interface: operation rotate(unrestricted double, unrestricted double, unrestricted double)
+PASS Unscopable handled correctly for rotate(unrestricted double, unrestricted double, unrestricted double) on DOMMatrixReadOnly
 PASS DOMMatrixReadOnly interface: operation rotateFromVector(unrestricted double, unrestricted double)
+PASS Unscopable handled correctly for rotateFromVector(unrestricted double, unrestricted double) on DOMMatrixReadOnly
 PASS DOMMatrixReadOnly interface: operation rotateAxisAngle(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
+PASS Unscopable handled correctly for rotateAxisAngle(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on DOMMatrixReadOnly
 PASS DOMMatrixReadOnly interface: operation skewX(unrestricted double)
+PASS Unscopable handled correctly for skewX(unrestricted double) on DOMMatrixReadOnly
 PASS DOMMatrixReadOnly interface: operation skewY(unrestricted double)
+PASS Unscopable handled correctly for skewY(unrestricted double) on DOMMatrixReadOnly
 PASS DOMMatrixReadOnly interface: operation multiply(DOMMatrixInit)
+PASS Unscopable handled correctly for multiply(DOMMatrixInit) on DOMMatrixReadOnly
 PASS DOMMatrixReadOnly interface: operation flipX()
+PASS Unscopable handled correctly for flipX() on DOMMatrixReadOnly
 PASS DOMMatrixReadOnly interface: operation flipY()
+PASS Unscopable handled correctly for flipY() on DOMMatrixReadOnly
 PASS DOMMatrixReadOnly interface: operation inverse()
+PASS Unscopable handled correctly for inverse() on DOMMatrixReadOnly
 PASS DOMMatrixReadOnly interface: operation transformPoint(DOMPointInit)
+PASS Unscopable handled correctly for transformPoint(DOMPointInit) on DOMMatrixReadOnly
 PASS DOMMatrixReadOnly interface: operation toFloat32Array()
+PASS Unscopable handled correctly for toFloat32Array() on DOMMatrixReadOnly
 PASS DOMMatrixReadOnly interface: operation toFloat64Array()
+PASS Unscopable handled correctly for toFloat64Array() on DOMMatrixReadOnly
 PASS DOMMatrixReadOnly interface: stringifier
 PASS DOMMatrixReadOnly must be primary interface of new DOMMatrixReadOnly()
 PASS Stringification of new DOMMatrixReadOnly()
@@ -299,43 +379,81 @@
 FAIL DOMMatrix interface: legacy window alias assert_equals: self.SVGMatrix should be the same value as self.DOMMatrix expected function "function DOMMatrix() { [native code] }" but got function "function SVGMatrix() { [native code] }"
 PASS DOMMatrix interface: existence and properties of interface prototype object
 PASS DOMMatrix interface: existence and properties of interface prototype object's "constructor" property
+PASS DOMMatrix interface: existence and properties of interface prototype object's @@unscopables property
 PASS DOMMatrix interface: operation fromMatrix(DOMMatrixInit)
+PASS Unscopable handled correctly for fromMatrix(DOMMatrixInit) on DOMMatrix
 PASS DOMMatrix interface: operation fromFloat32Array(Float32Array)
+PASS Unscopable handled correctly for fromFloat32Array(Float32Array) on DOMMatrix
 PASS DOMMatrix interface: operation fromFloat64Array(Float64Array)
+PASS Unscopable handled correctly for fromFloat64Array(Float64Array) on DOMMatrix
 PASS DOMMatrix interface: attribute a
+PASS Unscopable handled correctly for a property on DOMMatrix
 PASS DOMMatrix interface: attribute b
+PASS Unscopable handled correctly for b property on DOMMatrix
 PASS DOMMatrix interface: attribute c
+PASS Unscopable handled correctly for c property on DOMMatrix
 PASS DOMMatrix interface: attribute d
+PASS Unscopable handled correctly for d property on DOMMatrix
 PASS DOMMatrix interface: attribute e
+PASS Unscopable handled correctly for e property on DOMMatrix
 PASS DOMMatrix interface: attribute f
+PASS Unscopable handled correctly for f property on DOMMatrix
 PASS DOMMatrix interface: attribute m11
+PASS Unscopable handled correctly for m11 property on DOMMatrix
 PASS DOMMatrix interface: attribute m12
+PASS Unscopable handled correctly for m12 property on DOMMatrix
 PASS DOMMatrix interface: attribute m13
+PASS Unscopable handled correctly for m13 property on DOMMatrix
 PASS DOMMatrix interface: attribute m14
+PASS Unscopable handled correctly for m14 property on DOMMatrix
 PASS DOMMatrix interface: attribute m21
+PASS Unscopable handled correctly for m21 property on DOMMatrix
 PASS DOMMatrix interface: attribute m22
+PASS Unscopable handled correctly for m22 property on DOMMatrix
 PASS DOMMatrix interface: attribute m23
+PASS Unscopable handled correctly for m23 property on DOMMatrix
 PASS DOMMatrix interface: attribute m24
+PASS Unscopable handled correctly for m24 property on DOMMatrix
 PASS DOMMatrix interface: attribute m31
+PASS Unscopable handled correctly for m31 property on DOMMatrix
 PASS DOMMatrix interface: attribute m32
+PASS Unscopable handled correctly for m32 property on DOMMatrix
 PASS DOMMatrix interface: attribute m33
+PASS Unscopable handled correctly for m33 property on DOMMatrix
 PASS DOMMatrix interface: attribute m34
+PASS Unscopable handled correctly for m34 property on DOMMatrix
 PASS DOMMatrix interface: attribute m41
+PASS Unscopable handled correctly for m41 property on DOMMatrix
 PASS DOMMatrix interface: attribute m42
+PASS Unscopable handled correctly for m42 property on DOMMatrix
 PASS DOMMatrix interface: attribute m43
+PASS Unscopable handled correctly for m43 property on DOMMatrix
 PASS DOMMatrix interface: attribute m44
+PASS Unscopable handled correctly for m44 property on DOMMatrix
 PASS DOMMatrix interface: operation multiplySelf(DOMMatrixInit)
+PASS Unscopable handled correctly for multiplySelf(DOMMatrixInit) on DOMMatrix
 PASS DOMMatrix interface: operation preMultiplySelf(DOMMatrixInit)
+PASS Unscopable handled correctly for preMultiplySelf(DOMMatrixInit) on DOMMatrix
 PASS DOMMatrix interface: operation translateSelf(unrestricted double, unrestricted double, unrestricted double)
+PASS Unscopable handled correctly for translateSelf(unrestricted double, unrestricted double, unrestricted double) on DOMMatrix
 PASS DOMMatrix interface: operation scaleSelf(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
+PASS Unscopable handled correctly for scaleSelf(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on DOMMatrix
 PASS DOMMatrix interface: operation scale3dSelf(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
+PASS Unscopable handled correctly for scale3dSelf(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on DOMMatrix
 PASS DOMMatrix interface: operation rotateSelf(unrestricted double, unrestricted double, unrestricted double)
+PASS Unscopable handled correctly for rotateSelf(unrestricted double, unrestricted double, unrestricted double) on DOMMatrix
 PASS DOMMatrix interface: operation rotateFromVectorSelf(unrestricted double, unrestricted double)
+PASS Unscopable handled correctly for rotateFromVectorSelf(unrestricted double, unrestricted double) on DOMMatrix
 PASS DOMMatrix interface: operation rotateAxisAngleSelf(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
+PASS Unscopable handled correctly for rotateAxisAngleSelf(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on DOMMatrix
 PASS DOMMatrix interface: operation skewXSelf(unrestricted double)
+PASS Unscopable handled correctly for skewXSelf(unrestricted double) on DOMMatrix
 PASS DOMMatrix interface: operation skewYSelf(unrestricted double)
+PASS Unscopable handled correctly for skewYSelf(unrestricted double) on DOMMatrix
 PASS DOMMatrix interface: operation invertSelf()
+PASS Unscopable handled correctly for invertSelf() on DOMMatrix
 PASS DOMMatrix interface: operation setMatrixValue(DOMString)
+PASS Unscopable handled correctly for setMatrixValue(DOMString) on DOMMatrix
 PASS DOMMatrix must be primary interface of new DOMMatrix()
 PASS Stringification of new DOMMatrix()
 PASS DOMMatrix interface: new DOMMatrix() must inherit property "fromMatrix(DOMMatrixInit)" with the proper type
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/dom/interfaces-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/dom/interfaces-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/dom/interfaces-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/dom/interfaces-expected.txt
diff --git a/third_party/WebKit/LayoutTests/external/wpt/entries-api/interfaces-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/entries-api/interfaces-expected.txt
index beaece0..275fe697 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/entries-api/interfaces-expected.txt
+++ b/third_party/WebKit/LayoutTests/external/wpt/entries-api/interfaces-expected.txt
@@ -1,66 +1,96 @@
 This is a testharness.js-based test.
-Found 62 tests; 24 PASS, 38 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 92 tests; 49 PASS, 43 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS Entries API: IDL
 PASS File interface: attribute webkitRelativePath
+PASS Unscopable handled correctly for webkitRelativePath property on File
 PASS File interface: new File([], "example.txt") must inherit property "webkitRelativePath" with the proper type
 PASS HTMLInputElement interface: attribute webkitdirectory
+PASS Unscopable handled correctly for webkitdirectory property on HTMLInputElement
 PASS HTMLInputElement interface: attribute webkitEntries
+PASS Unscopable handled correctly for webkitEntries property on HTMLInputElement
 PASS HTMLInputElement interface: document.createElement("input") must inherit property "webkitdirectory" with the proper type
 PASS HTMLInputElement interface: document.createElement("input") must inherit property "webkitEntries" with the proper type
 PASS DataTransferItem interface: operation webkitGetAsEntry()
+PASS Unscopable handled correctly for webkitGetAsEntry() on DataTransferItem
 PASS ErrorCallback interface: existence and properties of interface object
 PASS ErrorCallback interface: existence and properties of interface prototype object
 PASS ErrorCallback interface: existence and properties of interface prototype object's "constructor" property
+PASS ErrorCallback interface: existence and properties of interface prototype object's @@unscopables property
 PASS ErrorCallback interface: operation handleEvent(DOMException)
+PASS Unscopable handled correctly for handleEvent(DOMException) on ErrorCallback
 FAIL FileSystemEntry interface: existence and properties of interface object assert_own_property: self does not have own property "FileSystemEntry" expected property "FileSystemEntry" missing
 FAIL FileSystemEntry interface object length assert_own_property: self does not have own property "FileSystemEntry" expected property "FileSystemEntry" missing
 FAIL FileSystemEntry interface object name assert_own_property: self does not have own property "FileSystemEntry" expected property "FileSystemEntry" missing
 FAIL FileSystemEntry interface: existence and properties of interface prototype object assert_own_property: self does not have own property "FileSystemEntry" expected property "FileSystemEntry" missing
 FAIL FileSystemEntry interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "FileSystemEntry" expected property "FileSystemEntry" missing
+FAIL FileSystemEntry interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "FileSystemEntry" expected property "FileSystemEntry" missing
 FAIL FileSystemEntry interface: attribute isFile assert_own_property: self does not have own property "FileSystemEntry" expected property "FileSystemEntry" missing
+PASS Unscopable handled correctly for isFile property on FileSystemEntry
 FAIL FileSystemEntry interface: attribute isDirectory assert_own_property: self does not have own property "FileSystemEntry" expected property "FileSystemEntry" missing
+PASS Unscopable handled correctly for isDirectory property on FileSystemEntry
 FAIL FileSystemEntry interface: attribute name assert_own_property: self does not have own property "FileSystemEntry" expected property "FileSystemEntry" missing
+PASS Unscopable handled correctly for name property on FileSystemEntry
 FAIL FileSystemEntry interface: attribute fullPath assert_own_property: self does not have own property "FileSystemEntry" expected property "FileSystemEntry" missing
+PASS Unscopable handled correctly for fullPath property on FileSystemEntry
 FAIL FileSystemEntry interface: attribute filesystem assert_own_property: self does not have own property "FileSystemEntry" expected property "FileSystemEntry" missing
+PASS Unscopable handled correctly for filesystem property on FileSystemEntry
 FAIL FileSystemEntry interface: operation getParent(FileSystemEntryCallback, ErrorCallback) assert_own_property: self does not have own property "FileSystemEntry" expected property "FileSystemEntry" missing
+PASS Unscopable handled correctly for getParent(FileSystemEntryCallback, ErrorCallback) on FileSystemEntry
 FAIL FileSystemDirectoryEntry interface: existence and properties of interface object assert_own_property: self does not have own property "FileSystemDirectoryEntry" expected property "FileSystemDirectoryEntry" missing
 FAIL FileSystemDirectoryEntry interface object length assert_own_property: self does not have own property "FileSystemDirectoryEntry" expected property "FileSystemDirectoryEntry" missing
 FAIL FileSystemDirectoryEntry interface object name assert_own_property: self does not have own property "FileSystemDirectoryEntry" expected property "FileSystemDirectoryEntry" missing
 FAIL FileSystemDirectoryEntry interface: existence and properties of interface prototype object assert_own_property: self does not have own property "FileSystemDirectoryEntry" expected property "FileSystemDirectoryEntry" missing
 FAIL FileSystemDirectoryEntry interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "FileSystemDirectoryEntry" expected property "FileSystemDirectoryEntry" missing
+FAIL FileSystemDirectoryEntry interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "FileSystemDirectoryEntry" expected property "FileSystemDirectoryEntry" missing
 FAIL FileSystemDirectoryEntry interface: operation createReader() assert_own_property: self does not have own property "FileSystemDirectoryEntry" expected property "FileSystemDirectoryEntry" missing
+PASS Unscopable handled correctly for createReader() on FileSystemDirectoryEntry
 FAIL FileSystemDirectoryEntry interface: operation getFile(USVString, FileSystemFlags, FileSystemEntryCallback, ErrorCallback) assert_own_property: self does not have own property "FileSystemDirectoryEntry" expected property "FileSystemDirectoryEntry" missing
+PASS Unscopable handled correctly for getFile(USVString, FileSystemFlags, FileSystemEntryCallback, ErrorCallback) on FileSystemDirectoryEntry
 FAIL FileSystemDirectoryEntry interface: operation getDirectory(USVString, FileSystemFlags, FileSystemEntryCallback, ErrorCallback) assert_own_property: self does not have own property "FileSystemDirectoryEntry" expected property "FileSystemDirectoryEntry" missing
+PASS Unscopable handled correctly for getDirectory(USVString, FileSystemFlags, FileSystemEntryCallback, ErrorCallback) on FileSystemDirectoryEntry
 PASS FileSystemEntryCallback interface: existence and properties of interface object
 PASS FileSystemEntryCallback interface: existence and properties of interface prototype object
 PASS FileSystemEntryCallback interface: existence and properties of interface prototype object's "constructor" property
+PASS FileSystemEntryCallback interface: existence and properties of interface prototype object's @@unscopables property
 PASS FileSystemEntryCallback interface: operation handleEvent(FileSystemEntry)
+PASS Unscopable handled correctly for handleEvent(FileSystemEntry) on FileSystemEntryCallback
 FAIL FileSystemDirectoryReader interface: existence and properties of interface object assert_own_property: self does not have own property "FileSystemDirectoryReader" expected property "FileSystemDirectoryReader" missing
 FAIL FileSystemDirectoryReader interface object length assert_own_property: self does not have own property "FileSystemDirectoryReader" expected property "FileSystemDirectoryReader" missing
 FAIL FileSystemDirectoryReader interface object name assert_own_property: self does not have own property "FileSystemDirectoryReader" expected property "FileSystemDirectoryReader" missing
 FAIL FileSystemDirectoryReader interface: existence and properties of interface prototype object assert_own_property: self does not have own property "FileSystemDirectoryReader" expected property "FileSystemDirectoryReader" missing
 FAIL FileSystemDirectoryReader interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "FileSystemDirectoryReader" expected property "FileSystemDirectoryReader" missing
+FAIL FileSystemDirectoryReader interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "FileSystemDirectoryReader" expected property "FileSystemDirectoryReader" missing
 FAIL FileSystemDirectoryReader interface: operation readEntries(FileSystemEntriesCallback, ErrorCallback) assert_own_property: self does not have own property "FileSystemDirectoryReader" expected property "FileSystemDirectoryReader" missing
+PASS Unscopable handled correctly for readEntries(FileSystemEntriesCallback, ErrorCallback) on FileSystemDirectoryReader
 PASS FileSystemEntriesCallback interface: existence and properties of interface object
 PASS FileSystemEntriesCallback interface: existence and properties of interface prototype object
 PASS FileSystemEntriesCallback interface: existence and properties of interface prototype object's "constructor" property
+PASS FileSystemEntriesCallback interface: existence and properties of interface prototype object's @@unscopables property
 PASS FileSystemEntriesCallback interface: operation handleEvent([object Object])
+PASS Unscopable handled correctly for handleEvent([object Object]) on FileSystemEntriesCallback
 FAIL FileSystemFileEntry interface: existence and properties of interface object assert_own_property: self does not have own property "FileSystemFileEntry" expected property "FileSystemFileEntry" missing
 FAIL FileSystemFileEntry interface object length assert_own_property: self does not have own property "FileSystemFileEntry" expected property "FileSystemFileEntry" missing
 FAIL FileSystemFileEntry interface object name assert_own_property: self does not have own property "FileSystemFileEntry" expected property "FileSystemFileEntry" missing
 FAIL FileSystemFileEntry interface: existence and properties of interface prototype object assert_own_property: self does not have own property "FileSystemFileEntry" expected property "FileSystemFileEntry" missing
 FAIL FileSystemFileEntry interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "FileSystemFileEntry" expected property "FileSystemFileEntry" missing
+FAIL FileSystemFileEntry interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "FileSystemFileEntry" expected property "FileSystemFileEntry" missing
 FAIL FileSystemFileEntry interface: operation file(FileCallback, ErrorCallback) assert_own_property: self does not have own property "FileSystemFileEntry" expected property "FileSystemFileEntry" missing
+PASS Unscopable handled correctly for file(FileCallback, ErrorCallback) on FileSystemFileEntry
 PASS FileCallback interface: existence and properties of interface object
 PASS FileCallback interface: existence and properties of interface prototype object
 PASS FileCallback interface: existence and properties of interface prototype object's "constructor" property
+PASS FileCallback interface: existence and properties of interface prototype object's @@unscopables property
 PASS FileCallback interface: operation handleEvent(File)
+PASS Unscopable handled correctly for handleEvent(File) on FileCallback
 FAIL FileSystem interface: existence and properties of interface object assert_own_property: self does not have own property "FileSystem" expected property "FileSystem" missing
 FAIL FileSystem interface object length assert_own_property: self does not have own property "FileSystem" expected property "FileSystem" missing
 FAIL FileSystem interface object name assert_own_property: self does not have own property "FileSystem" expected property "FileSystem" missing
 FAIL FileSystem interface: existence and properties of interface prototype object assert_own_property: self does not have own property "FileSystem" expected property "FileSystem" missing
 FAIL FileSystem interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "FileSystem" expected property "FileSystem" missing
+FAIL FileSystem interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "FileSystem" expected property "FileSystem" missing
 FAIL FileSystem interface: attribute name assert_own_property: self does not have own property "FileSystem" expected property "FileSystem" missing
+PASS Unscopable handled correctly for name property on FileSystem
 FAIL FileSystem interface: attribute root assert_own_property: self does not have own property "FileSystem" expected property "FileSystem" missing
+PASS Unscopable handled correctly for root property on FileSystem
 Harness: the test ran to completion.
 
diff --git a/third_party/WebKit/LayoutTests/external/wpt/fetch/api/request/request-idl-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/fetch/api/request/request-idl-expected.txt
index 2c55c1b..fe8cfccb 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/fetch/api/request/request-idl-expected.txt
+++ b/third_party/WebKit/LayoutTests/external/wpt/fetch/api/request/request-idl-expected.txt
@@ -1,28 +1,49 @@
 This is a testharness.js-based test.
+Found 65 tests; 63 PASS, 2 FAIL, 0 TIMEOUT, 0 NOTRUN.
 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 Unscopable handled correctly for method property on Request
 PASS Request interface: attribute url
+PASS Unscopable handled correctly for url property on Request
 PASS Request interface: attribute headers
+PASS Unscopable handled correctly for headers property on Request
 PASS Request interface: attribute destination
+PASS Unscopable handled correctly for destination property on Request
 PASS Request interface: attribute referrer
+PASS Unscopable handled correctly for referrer property on Request
 PASS Request interface: attribute referrerPolicy
+PASS Unscopable handled correctly for referrerPolicy property on Request
 PASS Request interface: attribute mode
+PASS Unscopable handled correctly for mode property on Request
 PASS Request interface: attribute credentials
+PASS Unscopable handled correctly for credentials property on Request
 PASS Request interface: attribute cache
+PASS Unscopable handled correctly for cache property on Request
 PASS Request interface: attribute redirect
+PASS Unscopable handled correctly for redirect property on Request
 PASS Request interface: attribute integrity
+PASS Unscopable handled correctly for integrity property on Request
 PASS Request interface: operation clone()
+PASS Unscopable handled correctly for clone() on Request
 FAIL Request interface: attribute body assert_true: The prototype object must have a property "body" expected true got false
+PASS Unscopable handled correctly for body property on Request
 PASS Request interface: attribute bodyUsed
+PASS Unscopable handled correctly for bodyUsed property on Request
 PASS Request interface: operation arrayBuffer()
+PASS Unscopable handled correctly for arrayBuffer() on Request
 PASS Request interface: operation blob()
+PASS Unscopable handled correctly for blob() on Request
 PASS Request interface: operation formData()
+PASS Unscopable handled correctly for formData() on Request
 PASS Request interface: operation json()
+PASS Unscopable handled correctly for json() on Request
 PASS Request interface: operation text()
+PASS Unscopable handled correctly for text() on Request
 PASS Request must be primary interface of new Request("")
 PASS Stringification of new Request("")
 PASS Request interface: new Request("") must inherit property "method" with the proper type
diff --git a/third_party/WebKit/LayoutTests/external/wpt/fetch/api/response/response-idl-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/fetch/api/response/response-idl-expected.txt
index f4315aa..81ae70e 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/fetch/api/response/response-idl-expected.txt
+++ b/third_party/WebKit/LayoutTests/external/wpt/fetch/api/response/response-idl-expected.txt
@@ -1,26 +1,45 @@
 This is a testharness.js-based test.
+Found 60 tests; 58 PASS, 2 FAIL, 0 TIMEOUT, 0 NOTRUN.
 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 Unscopable handled correctly for error() on Response
 PASS Response interface: operation redirect(USVString, unsigned short)
+PASS Unscopable handled correctly for redirect(USVString, unsigned short) on Response
 PASS Response interface: attribute type
+PASS Unscopable handled correctly for type property on Response
 PASS Response interface: attribute url
+PASS Unscopable handled correctly for url property on Response
 PASS Response interface: attribute status
+PASS Unscopable handled correctly for status property on Response
 PASS Response interface: attribute ok
+PASS Unscopable handled correctly for ok property on Response
 PASS Response interface: attribute statusText
+PASS Unscopable handled correctly for statusText property on Response
 PASS Response interface: attribute headers
+PASS Unscopable handled correctly for headers property on Response
 FAIL Response interface: attribute trailer assert_true: The prototype object must have a property "trailer" expected true got false
+PASS Unscopable handled correctly for trailer property on Response
 PASS Response interface: operation clone()
+PASS Unscopable handled correctly for clone() on Response
 PASS Response interface: attribute body
+PASS Unscopable handled correctly for body property on Response
 PASS Response interface: attribute bodyUsed
+PASS Unscopable handled correctly for bodyUsed property on Response
 PASS Response interface: operation arrayBuffer()
+PASS Unscopable handled correctly for arrayBuffer() on Response
 PASS Response interface: operation blob()
+PASS Unscopable handled correctly for blob() on Response
 PASS Response interface: operation formData()
+PASS Unscopable handled correctly for formData() on Response
 PASS Response interface: operation json()
+PASS Unscopable handled correctly for json() on Response
 PASS Response interface: operation text()
+PASS Unscopable handled correctly for text() on Response
 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
diff --git a/third_party/WebKit/LayoutTests/external/wpt/fullscreen/interfaces-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/fullscreen/interfaces-expected.txt
index 341d80b3..ed3cce9 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/fullscreen/interfaces-expected.txt
+++ b/third_party/WebKit/LayoutTests/external/wpt/fullscreen/interfaces-expected.txt
@@ -1,11 +1,17 @@
 This is a testharness.js-based test.
 PASS Test driver
 FAIL Document interface: attribute fullscreenEnabled assert_equals: setter must be function for PutForwards, Replaceable, or non-readonly attributes expected "function" but got "undefined"
+PASS Unscopable handled correctly for fullscreenEnabled property on Document
 FAIL Document interface: attribute fullscreen assert_true: The prototype object must have a property "fullscreen" expected true got false
+FAIL Unscopable handled correctly for fullscreen property on Document assert_equals: Document.prototype[Symbol.unscopables].fullscreen must exist expected "object" but got "undefined"
 FAIL Document interface: operation exitFullscreen() assert_unreached: Throws "TypeError: Illegal invocation" instead of rejecting promise Reached unreachable code
+PASS Unscopable handled correctly for exitFullscreen() on Document
 PASS Document interface: attribute onfullscreenchange
+PASS Unscopable handled correctly for onfullscreenchange property on Document
 PASS Document interface: attribute onfullscreenerror
+PASS Unscopable handled correctly for onfullscreenerror property on Document
 FAIL Document interface: attribute fullscreenElement assert_equals: setter must be function for PutForwards, Replaceable, or non-readonly attributes expected "function" but got "undefined"
+PASS Unscopable handled correctly for fullscreenElement property on Document
 PASS Document interface: new Document must inherit property "fullscreenEnabled" with the proper type
 FAIL Document interface: new Document must inherit property "fullscreen" with the proper type assert_inherits: property "fullscreen" not found in prototype chain
 PASS Document interface: new Document must inherit property "exitFullscreen()" with the proper type
@@ -13,9 +19,13 @@
 PASS Document interface: new Document must inherit property "onfullscreenerror" with the proper type
 PASS Document interface: new Document must inherit property "fullscreenElement" with the proper type
 FAIL ShadowRoot interface: attribute fullscreenElement assert_equals: setter must be function for PutForwards, Replaceable, or non-readonly attributes expected "function" but got "undefined"
+PASS Unscopable handled correctly for fullscreenElement property on ShadowRoot
 FAIL Element interface: operation requestFullscreen() assert_unreached: Throws "TypeError: Illegal invocation" instead of rejecting promise Reached unreachable code
+PASS Unscopable handled correctly for requestFullscreen() on Element
 PASS Element interface: attribute onfullscreenchange
+PASS Unscopable handled correctly for onfullscreenchange property on Element
 PASS Element interface: attribute onfullscreenerror
+PASS Unscopable handled correctly for onfullscreenerror property on Element
 PASS Element interface: document.createElementNS(null, "test") must inherit property "requestFullscreen()" with the proper type
 PASS Element interface: document.createElementNS(null, "test") must inherit property "onfullscreenchange" with the proper type
 PASS Element interface: document.createElementNS(null, "test") must inherit property "onfullscreenerror" with the proper type
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/fullscreen/model/move-to-fullscreen-iframe-manual-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/fullscreen/model/move-to-fullscreen-iframe-manual-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/fullscreen/model/move-to-fullscreen-iframe-manual-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/fullscreen/model/move-to-fullscreen-iframe-manual-expected.txt
diff --git a/third_party/WebKit/LayoutTests/external/wpt/geolocation-sensor/idlharness.https-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/geolocation-sensor/idlharness.https-expected.txt
index 6bd664c..03447b6 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/geolocation-sensor/idlharness.https-expected.txt
+++ b/third_party/WebKit/LayoutTests/external/wpt/geolocation-sensor/idlharness.https-expected.txt
@@ -5,28 +5,49 @@
 PASS Sensor interface object name
 PASS Sensor interface: existence and properties of interface prototype object
 PASS Sensor interface: existence and properties of interface prototype object's "constructor" property
+PASS Sensor interface: existence and properties of interface prototype object's @@unscopables property
 PASS Sensor interface: attribute activated
+PASS Unscopable handled correctly for activated property on Sensor
 PASS Sensor interface: attribute hasReading
+PASS Unscopable handled correctly for hasReading property on Sensor
 PASS Sensor interface: attribute timestamp
+PASS Unscopable handled correctly for timestamp property on Sensor
 PASS Sensor interface: operation start()
+PASS Unscopable handled correctly for start() on Sensor
 PASS Sensor interface: operation stop()
+PASS Unscopable handled correctly for stop() on Sensor
 PASS Sensor interface: attribute onreading
+PASS Unscopable handled correctly for onreading property on Sensor
 PASS Sensor interface: attribute onactivate
+PASS Unscopable handled correctly for onactivate property on Sensor
 PASS Sensor interface: attribute onerror
+PASS Unscopable handled correctly for onerror property on Sensor
 FAIL GeolocationSensor interface: existence and properties of interface object assert_own_property: self does not have own property "GeolocationSensor" expected property "GeolocationSensor" missing
 FAIL GeolocationSensor interface object length assert_own_property: self does not have own property "GeolocationSensor" expected property "GeolocationSensor" missing
 FAIL GeolocationSensor interface object name assert_own_property: self does not have own property "GeolocationSensor" expected property "GeolocationSensor" missing
 FAIL GeolocationSensor interface: existence and properties of interface prototype object assert_own_property: self does not have own property "GeolocationSensor" expected property "GeolocationSensor" missing
 FAIL GeolocationSensor interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "GeolocationSensor" expected property "GeolocationSensor" missing
+FAIL GeolocationSensor interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "GeolocationSensor" expected property "GeolocationSensor" missing
+FAIL GeolocationSensor interface: operation read(ReadOptions) assert_own_property: self does not have own property "GeolocationSensor" expected property "GeolocationSensor" missing
+PASS Unscopable handled correctly for read(ReadOptions) on GeolocationSensor
 FAIL GeolocationSensor interface: attribute latitude assert_own_property: self does not have own property "GeolocationSensor" expected property "GeolocationSensor" missing
+PASS Unscopable handled correctly for latitude property on GeolocationSensor
 FAIL GeolocationSensor interface: attribute longitude assert_own_property: self does not have own property "GeolocationSensor" expected property "GeolocationSensor" missing
+PASS Unscopable handled correctly for longitude property on GeolocationSensor
 FAIL GeolocationSensor interface: attribute altitude assert_own_property: self does not have own property "GeolocationSensor" expected property "GeolocationSensor" missing
+PASS Unscopable handled correctly for altitude property on GeolocationSensor
 FAIL GeolocationSensor interface: attribute accuracy assert_own_property: self does not have own property "GeolocationSensor" expected property "GeolocationSensor" missing
+PASS Unscopable handled correctly for accuracy property on GeolocationSensor
 FAIL GeolocationSensor interface: attribute altitudeAccuracy assert_own_property: self does not have own property "GeolocationSensor" expected property "GeolocationSensor" missing
+PASS Unscopable handled correctly for altitudeAccuracy property on GeolocationSensor
 FAIL GeolocationSensor interface: attribute heading assert_own_property: self does not have own property "GeolocationSensor" expected property "GeolocationSensor" missing
+PASS Unscopable handled correctly for heading property on GeolocationSensor
 FAIL GeolocationSensor interface: attribute speed assert_own_property: self does not have own property "GeolocationSensor" expected property "GeolocationSensor" missing
+PASS Unscopable handled correctly for speed property on GeolocationSensor
 FAIL GeolocationSensor must be primary interface of new GeolocationSensor assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GeolocationSensor is not defined"
 FAIL Stringification of new GeolocationSensor assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GeolocationSensor is not defined"
+FAIL GeolocationSensor interface: new GeolocationSensor must inherit property "read(ReadOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GeolocationSensor is not defined"
+FAIL GeolocationSensor interface: calling read(ReadOptions) on new GeolocationSensor with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GeolocationSensor is not defined"
 FAIL GeolocationSensor interface: new GeolocationSensor must inherit property "latitude" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GeolocationSensor is not defined"
 FAIL GeolocationSensor interface: new GeolocationSensor must inherit property "longitude" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GeolocationSensor is not defined"
 FAIL GeolocationSensor interface: new GeolocationSensor must inherit property "altitude" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GeolocationSensor is not defined"
diff --git a/third_party/WebKit/LayoutTests/external/wpt/html-media-capture/idlharness-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/html-media-capture/idlharness-expected.txt
index 9239268..ee3ce07 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/html-media-capture/idlharness-expected.txt
+++ b/third_party/WebKit/LayoutTests/external/wpt/html-media-capture/idlharness-expected.txt
@@ -1,5 +1,6 @@
 This is a testharness.js-based test.
 FAIL HTMLInputElement interface: attribute capture assert_true: The prototype object must have a property "capture" expected true got false
+PASS Unscopable handled correctly for capture property on HTMLInputElement
 FAIL HTMLInputElement interface: [object HTMLInputElement] must inherit property "capture" with the proper type assert_inherits: property "capture" not found in prototype chain
 Harness: the test ran to completion.
 
diff --git a/third_party/WebKit/LayoutTests/external/wpt/html/browsers/origin/cross-origin-objects/cross-origin-objects-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/html/browsers/origin/cross-origin-objects/cross-origin-objects-expected.txt
index b272766..5026c25 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/html/browsers/origin/cross-origin-objects/cross-origin-objects-expected.txt
+++ b/third_party/WebKit/LayoutTests/external/wpt/html/browsers/origin/cross-origin-objects/cross-origin-objects-expected.txt
@@ -7,12 +7,14 @@
 FAIL [[PreventExtensions]] should throw for cross-origin objects assert_throws: preventExtensions on cross-origin Window should throw function "function() { Object.preventExtensions(C) }" threw object "SecurityError: Blocked a frame with origin "http://web-platform.test:8001" from accessing a cross-origin frame." ("SecurityError") expected object "TypeError" ("TypeError")
 FAIL [[GetOwnProperty]] - Properties on cross-origin objects should be reported |own| Blocked a frame with origin "http://web-platform.test:8001" from accessing a cross-origin frame.
 FAIL [[GetOwnProperty]] - Property descriptors for cross-origin properties should be set up correctly assert_equals: property descriptor for 0 should be enumerable expected true but got false
+PASS [[GetOwnProperty]] - Subframe named 'then' should shadow the default 'then' value
 PASS [[Delete]] Should throw on cross-origin objects
 PASS [[DefineOwnProperty]] Should throw for cross-origin objects
 FAIL Can only enumerate safelisted enumerable properties assert_equals: Enumerate all enumerable safelisted cross-origin Window properties expected 2 but got 0
-FAIL [[OwnPropertyKeys]] should return all properties from cross-origin objects assert_array_equals: Object.getOwnPropertyNames() gives the right answer for cross-origin Window lengths differ, expected 15 got 13
+FAIL [[OwnPropertyKeys]] should return all properties from cross-origin objects assert_array_equals: Object.getOwnPropertyNames() gives the right answer for cross-origin Window lengths differ, expected 16 got 13
 FAIL [[OwnPropertyKeys]] should return the right symbol-named properties for cross-origin objects assert_array_equals: Object.getOwnPropertySymbols() should return the three symbol-named properties that are exposed on a cross-origin Window lengths differ, expected 3 got 0
-FAIL [[OwnPropertyKeys]] should place the symbols after the property names after the subframe indices assert_array_equals: Reflect.ownKeys should start with the indices exposed on the cross-origin window. property 0, expected "0" but got "window"
+FAIL [[OwnPropertyKeys]] should place the symbols after the property names after the subframe indices assert_equals: 'then' property should be added to the end of the string list if not there expected "then" but got "close"
+FAIL [[OwnPropertyKeys]] should not reorder where 'then' appears if it's a named subframe, nor add another copy of 'then' assert_equals: expected "then" but got "postMessage"
 PASS A and B jointly observe the same identity for cross-origin Window and Location
 PASS Cross-origin functions get local Function.prototype
 FAIL Cross-origin Window accessors get local Function.prototype Cannot read property 'name' of undefined
@@ -20,5 +22,8 @@
 FAIL Same-origin observers get different accessors for cross-origin Window assert_true: different Window accessors per-incumbent script settings object expected true got false
 FAIL Same-origin observers get different accessors for cross-origin Location Blocked a frame with origin "http://web-platform.test:8001" from accessing a cross-origin frame.
 FAIL {}.toString.call() does the right thing on cross-origin objects assert_equals: expected "[object Object]" but got "[object Location]"
+PASS Resolving a promise with a cross-origin window without a 'then' subframe should work.
+PASS Resolving a promise with a cross-origin window with a 'then' subframe should work.
+PASS Resolving a promise with a cross-origin location should work.
 Harness: the test ran to completion.
 
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/html/browsers/windows/auxiliary-browsing-contexts/opener-setter.window-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/html/browsers/windows/auxiliary-browsing-contexts/opener-setter.window-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/html/browsers/windows/auxiliary-browsing-contexts/opener-setter.window-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/html/browsers/windows/auxiliary-browsing-contexts/opener-setter.window-expected.txt
diff --git a/third_party/WebKit/LayoutTests/external/wpt/html/dom/interfaces-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/html/dom/interfaces-expected.txt
index 0e968dd8..dfcde73 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/html/dom/interfaces-expected.txt
+++ b/third_party/WebKit/LayoutTests/external/wpt/html/dom/interfaces-expected.txt
@@ -1,115 +1,224 @@
 This is a testharness.js-based test.
-Found 5258 tests; 5152 PASS, 106 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 6702 tests; 6596 PASS, 106 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS Test driver
 PASS Document interface: attribute domain
+PASS Unscopable handled correctly for domain property on Document
 PASS Document interface: attribute referrer
+PASS Unscopable handled correctly for referrer property on Document
 PASS Document interface: attribute cookie
+PASS Unscopable handled correctly for cookie property on Document
 PASS Document interface: attribute lastModified
+PASS Unscopable handled correctly for lastModified property on Document
 PASS Document interface: attribute readyState
+PASS Unscopable handled correctly for readyState property on Document
 PASS Document interface: attribute title
+PASS Unscopable handled correctly for title property on Document
 PASS Document interface: attribute dir
+PASS Unscopable handled correctly for dir property on Document
 PASS Document interface: attribute body
+PASS Unscopable handled correctly for body property on Document
 PASS Document interface: attribute head
+PASS Unscopable handled correctly for head property on Document
 PASS Document interface: attribute images
+PASS Unscopable handled correctly for images property on Document
 PASS Document interface: attribute embeds
+PASS Unscopable handled correctly for embeds property on Document
 PASS Document interface: attribute plugins
+PASS Unscopable handled correctly for plugins property on Document
 PASS Document interface: attribute links
+PASS Unscopable handled correctly for links property on Document
 PASS Document interface: attribute forms
+PASS Unscopable handled correctly for forms property on Document
 PASS Document interface: attribute scripts
+PASS Unscopable handled correctly for scripts property on Document
 PASS Document interface: operation getElementsByName(DOMString)
+PASS Unscopable handled correctly for getElementsByName(DOMString) on Document
 PASS Document interface: attribute currentScript
+PASS Unscopable handled correctly for currentScript property on Document
 PASS Document interface: operation open(DOMString, DOMString)
+PASS Unscopable handled correctly for open(DOMString, DOMString) on Document
 PASS Document interface: operation open(USVString, DOMString, DOMString)
+PASS Unscopable handled correctly for open(USVString, DOMString, DOMString) on Document
 PASS Document interface: operation close()
+PASS Unscopable handled correctly for close() on Document
 PASS Document interface: operation write(DOMString)
+PASS Unscopable handled correctly for write(DOMString) on Document
 PASS Document interface: operation writeln(DOMString)
+PASS Unscopable handled correctly for writeln(DOMString) on Document
 PASS Document interface: attribute defaultView
+PASS Unscopable handled correctly for defaultView property on Document
 PASS Document interface: attribute activeElement
+PASS Unscopable handled correctly for activeElement property on Document
 PASS Document interface: operation hasFocus()
+PASS Unscopable handled correctly for hasFocus() on Document
 PASS Document interface: attribute designMode
+PASS Unscopable handled correctly for designMode property on Document
 PASS Document interface: operation execCommand(DOMString, boolean, DOMString)
+PASS Unscopable handled correctly for execCommand(DOMString, boolean, DOMString) on Document
 PASS Document interface: operation queryCommandEnabled(DOMString)
+PASS Unscopable handled correctly for queryCommandEnabled(DOMString) on Document
 PASS Document interface: operation queryCommandIndeterm(DOMString)
+PASS Unscopable handled correctly for queryCommandIndeterm(DOMString) on Document
 PASS Document interface: operation queryCommandState(DOMString)
+PASS Unscopable handled correctly for queryCommandState(DOMString) on Document
 PASS Document interface: operation queryCommandSupported(DOMString)
+PASS Unscopable handled correctly for queryCommandSupported(DOMString) on Document
 PASS Document interface: operation queryCommandValue(DOMString)
+PASS Unscopable handled correctly for queryCommandValue(DOMString) on Document
 PASS Document interface: attribute onreadystatechange
+PASS Unscopable handled correctly for onreadystatechange property on Document
 PASS Document interface: attribute fgColor
+PASS Unscopable handled correctly for fgColor property on Document
 PASS Document interface: attribute linkColor
+PASS Unscopable handled correctly for linkColor property on Document
 PASS Document interface: attribute vlinkColor
+PASS Unscopable handled correctly for vlinkColor property on Document
 PASS Document interface: attribute alinkColor
+PASS Unscopable handled correctly for alinkColor property on Document
 PASS Document interface: attribute bgColor
+PASS Unscopable handled correctly for bgColor property on Document
 PASS Document interface: attribute anchors
+PASS Unscopable handled correctly for anchors property on Document
 PASS Document interface: attribute applets
+PASS Unscopable handled correctly for applets property on Document
 PASS Document interface: operation clear()
+PASS Unscopable handled correctly for clear() on Document
 PASS Document interface: operation captureEvents()
+PASS Unscopable handled correctly for captureEvents() on Document
 PASS Document interface: operation releaseEvents()
+PASS Unscopable handled correctly for releaseEvents() on Document
 PASS Document interface: attribute all
+PASS Unscopable handled correctly for all property on Document
 PASS Document interface: attribute onabort
+PASS Unscopable handled correctly for onabort property on Document
 PASS Document interface: attribute onauxclick
+PASS Unscopable handled correctly for onauxclick property on Document
 PASS Document interface: attribute onblur
+PASS Unscopable handled correctly for onblur property on Document
 PASS Document interface: attribute oncancel
+PASS Unscopable handled correctly for oncancel property on Document
 PASS Document interface: attribute oncanplay
+PASS Unscopable handled correctly for oncanplay property on Document
 PASS Document interface: attribute oncanplaythrough
+PASS Unscopable handled correctly for oncanplaythrough property on Document
 PASS Document interface: attribute onchange
+PASS Unscopable handled correctly for onchange property on Document
 PASS Document interface: attribute onclick
+PASS Unscopable handled correctly for onclick property on Document
 PASS Document interface: attribute onclose
+PASS Unscopable handled correctly for onclose property on Document
 PASS Document interface: attribute oncontextmenu
+PASS Unscopable handled correctly for oncontextmenu property on Document
 PASS Document interface: attribute oncuechange
+PASS Unscopable handled correctly for oncuechange property on Document
 PASS Document interface: attribute ondblclick
+PASS Unscopable handled correctly for ondblclick property on Document
 PASS Document interface: attribute ondrag
+PASS Unscopable handled correctly for ondrag property on Document
 PASS Document interface: attribute ondragend
+PASS Unscopable handled correctly for ondragend property on Document
 PASS Document interface: attribute ondragenter
+PASS Unscopable handled correctly for ondragenter property on Document
 FAIL Document interface: attribute ondragexit assert_true: The prototype object must have a property "ondragexit" expected true got false
+PASS Unscopable handled correctly for ondragexit property on Document
 PASS Document interface: attribute ondragleave
+PASS Unscopable handled correctly for ondragleave property on Document
 PASS Document interface: attribute ondragover
+PASS Unscopable handled correctly for ondragover property on Document
 PASS Document interface: attribute ondragstart
+PASS Unscopable handled correctly for ondragstart property on Document
 PASS Document interface: attribute ondrop
+PASS Unscopable handled correctly for ondrop property on Document
 PASS Document interface: attribute ondurationchange
+PASS Unscopable handled correctly for ondurationchange property on Document
 PASS Document interface: attribute onemptied
+PASS Unscopable handled correctly for onemptied property on Document
 PASS Document interface: attribute onended
+PASS Unscopable handled correctly for onended property on Document
 PASS Document interface: attribute onerror
+PASS Unscopable handled correctly for onerror property on Document
 PASS Document interface: attribute onfocus
+PASS Unscopable handled correctly for onfocus property on Document
 PASS Document interface: attribute oninput
+PASS Unscopable handled correctly for oninput property on Document
 PASS Document interface: attribute oninvalid
+PASS Unscopable handled correctly for oninvalid property on Document
 PASS Document interface: attribute onkeydown
+PASS Unscopable handled correctly for onkeydown property on Document
 PASS Document interface: attribute onkeypress
+PASS Unscopable handled correctly for onkeypress property on Document
 PASS Document interface: attribute onkeyup
+PASS Unscopable handled correctly for onkeyup property on Document
 PASS Document interface: attribute onload
+PASS Unscopable handled correctly for onload property on Document
 PASS Document interface: attribute onloadeddata
+PASS Unscopable handled correctly for onloadeddata property on Document
 PASS Document interface: attribute onloadedmetadata
+PASS Unscopable handled correctly for onloadedmetadata property on Document
 FAIL Document interface: attribute onloadend assert_true: The prototype object must have a property "onloadend" expected true got false
+PASS Unscopable handled correctly for onloadend property on Document
 PASS Document interface: attribute onloadstart
+PASS Unscopable handled correctly for onloadstart property on Document
 PASS Document interface: attribute onmousedown
+PASS Unscopable handled correctly for onmousedown property on Document
 PASS Document interface: attribute onmouseenter
+PASS Unscopable handled correctly for onmouseenter property on Document
 PASS Document interface: attribute onmouseleave
+PASS Unscopable handled correctly for onmouseleave property on Document
 PASS Document interface: attribute onmousemove
+PASS Unscopable handled correctly for onmousemove property on Document
 PASS Document interface: attribute onmouseout
+PASS Unscopable handled correctly for onmouseout property on Document
 PASS Document interface: attribute onmouseover
+PASS Unscopable handled correctly for onmouseover property on Document
 PASS Document interface: attribute onmouseup
+PASS Unscopable handled correctly for onmouseup property on Document
 PASS Document interface: attribute onwheel
+PASS Unscopable handled correctly for onwheel property on Document
 PASS Document interface: attribute onpause
+PASS Unscopable handled correctly for onpause property on Document
 PASS Document interface: attribute onplay
+PASS Unscopable handled correctly for onplay property on Document
 PASS Document interface: attribute onplaying
+PASS Unscopable handled correctly for onplaying property on Document
 PASS Document interface: attribute onprogress
+PASS Unscopable handled correctly for onprogress property on Document
 PASS Document interface: attribute onratechange
+PASS Unscopable handled correctly for onratechange property on Document
 PASS Document interface: attribute onreset
+PASS Unscopable handled correctly for onreset property on Document
 PASS Document interface: attribute onresize
+PASS Unscopable handled correctly for onresize property on Document
 PASS Document interface: attribute onscroll
+PASS Unscopable handled correctly for onscroll property on Document
 PASS Document interface: attribute onsecuritypolicyviolation
+PASS Unscopable handled correctly for onsecuritypolicyviolation property on Document
 PASS Document interface: attribute onseeked
+PASS Unscopable handled correctly for onseeked property on Document
 PASS Document interface: attribute onseeking
+PASS Unscopable handled correctly for onseeking property on Document
 PASS Document interface: attribute onselect
+PASS Unscopable handled correctly for onselect property on Document
 PASS Document interface: attribute onstalled
+PASS Unscopable handled correctly for onstalled property on Document
 PASS Document interface: attribute onsubmit
+PASS Unscopable handled correctly for onsubmit property on Document
 PASS Document interface: attribute onsuspend
+PASS Unscopable handled correctly for onsuspend property on Document
 PASS Document interface: attribute ontimeupdate
+PASS Unscopable handled correctly for ontimeupdate property on Document
 PASS Document interface: attribute ontoggle
+PASS Unscopable handled correctly for ontoggle property on Document
 PASS Document interface: attribute onvolumechange
+PASS Unscopable handled correctly for onvolumechange property on Document
 PASS Document interface: attribute onwaiting
+PASS Unscopable handled correctly for onwaiting property on Document
 PASS Document interface: attribute oncopy
+PASS Unscopable handled correctly for oncopy property on Document
 PASS Document interface: attribute oncut
+PASS Unscopable handled correctly for oncut property on Document
 PASS Document interface: attribute onpaste
+PASS Unscopable handled correctly for onpaste property on Document
 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
@@ -478,9 +587,13 @@
 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 Unscopable handled correctly for length property on HTMLAllCollection
 PASS HTMLAllCollection interface: operation namedItem(DOMString)
+PASS Unscopable handled correctly for namedItem(DOMString) on HTMLAllCollection
 PASS HTMLAllCollection interface: operation item(DOMString)
+PASS Unscopable handled correctly for item(DOMString) on HTMLAllCollection
 FAIL HTMLAllCollection must be primary interface of document.all assert_equals: wrong typeof object expected "object" but got "undefined"
 FAIL Stringification of document.all assert_equals: wrong typeof object expected "object" but got "undefined"
 FAIL HTMLAllCollection interface: document.all must inherit property "length" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
@@ -493,7 +606,9 @@
 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 Unscopable handled correctly for namedItem(DOMString) on HTMLFormControlsCollection
 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
@@ -503,16 +618,23 @@
 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 Unscopable handled correctly for value property on RadioNodeList
 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 Unscopable handled correctly for length property on HTMLOptionsCollection
 PASS HTMLOptionsCollection interface: operation add([object Object],[object Object], [object Object],[object Object])
+PASS Unscopable handled correctly for add([object Object],[object Object], [object Object],[object Object]) on HTMLOptionsCollection
 PASS HTMLOptionsCollection interface: operation remove(long)
+PASS Unscopable handled correctly for remove(long) on HTMLOptionsCollection
 PASS HTMLOptionsCollection interface: attribute selectedIndex
+PASS Unscopable handled correctly for selectedIndex property on HTMLOptionsCollection
 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
@@ -526,97 +648,185 @@
 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 Unscopable handled correctly for length property on DOMStringList
 PASS DOMStringList interface: operation item(unsigned long)
+PASS Unscopable handled correctly for item(unsigned long) on DOMStringList
 PASS DOMStringList interface: operation contains(DOMString)
+PASS Unscopable handled correctly for contains(DOMString) on DOMStringList
 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 Unscopable handled correctly for title property on HTMLElement
 PASS HTMLElement interface: attribute lang
+PASS Unscopable handled correctly for lang property on HTMLElement
 PASS HTMLElement interface: attribute translate
+PASS Unscopable handled correctly for translate property on HTMLElement
 PASS HTMLElement interface: attribute dir
+PASS Unscopable handled correctly for dir property on HTMLElement
 PASS HTMLElement interface: attribute dataset
+PASS Unscopable handled correctly for dataset property on HTMLElement
 PASS HTMLElement interface: attribute hidden
+PASS Unscopable handled correctly for hidden property on HTMLElement
 PASS HTMLElement interface: operation click()
+PASS Unscopable handled correctly for click() on HTMLElement
 PASS HTMLElement interface: attribute tabIndex
+PASS Unscopable handled correctly for tabIndex property on HTMLElement
 PASS HTMLElement interface: operation focus(FocusOptions)
+PASS Unscopable handled correctly for focus(FocusOptions) on HTMLElement
 PASS HTMLElement interface: operation blur()
+PASS Unscopable handled correctly for blur() on HTMLElement
 PASS HTMLElement interface: attribute accessKey
+PASS Unscopable handled correctly for accessKey property on HTMLElement
 FAIL HTMLElement interface: attribute accessKeyLabel assert_true: The prototype object must have a property "accessKeyLabel" expected true got false
+PASS Unscopable handled correctly for accessKeyLabel property on HTMLElement
 PASS HTMLElement interface: attribute draggable
+PASS Unscopable handled correctly for draggable property on HTMLElement
 PASS HTMLElement interface: attribute spellcheck
+PASS Unscopable handled correctly for spellcheck property on HTMLElement
 PASS HTMLElement interface: attribute innerText
+PASS Unscopable handled correctly for innerText property on HTMLElement
 PASS HTMLElement interface: attribute onabort
+PASS Unscopable handled correctly for onabort property on HTMLElement
 PASS HTMLElement interface: attribute onauxclick
+PASS Unscopable handled correctly for onauxclick property on HTMLElement
 PASS HTMLElement interface: attribute onblur
+PASS Unscopable handled correctly for onblur property on HTMLElement
 PASS HTMLElement interface: attribute oncancel
+PASS Unscopable handled correctly for oncancel property on HTMLElement
 PASS HTMLElement interface: attribute oncanplay
+PASS Unscopable handled correctly for oncanplay property on HTMLElement
 PASS HTMLElement interface: attribute oncanplaythrough
+PASS Unscopable handled correctly for oncanplaythrough property on HTMLElement
 PASS HTMLElement interface: attribute onchange
+PASS Unscopable handled correctly for onchange property on HTMLElement
 PASS HTMLElement interface: attribute onclick
+PASS Unscopable handled correctly for onclick property on HTMLElement
 PASS HTMLElement interface: attribute onclose
+PASS Unscopable handled correctly for onclose property on HTMLElement
 PASS HTMLElement interface: attribute oncontextmenu
+PASS Unscopable handled correctly for oncontextmenu property on HTMLElement
 PASS HTMLElement interface: attribute oncuechange
+PASS Unscopable handled correctly for oncuechange property on HTMLElement
 PASS HTMLElement interface: attribute ondblclick
+PASS Unscopable handled correctly for ondblclick property on HTMLElement
 PASS HTMLElement interface: attribute ondrag
+PASS Unscopable handled correctly for ondrag property on HTMLElement
 PASS HTMLElement interface: attribute ondragend
+PASS Unscopable handled correctly for ondragend property on HTMLElement
 PASS HTMLElement interface: attribute ondragenter
+PASS Unscopable handled correctly for ondragenter property on HTMLElement
 FAIL HTMLElement interface: attribute ondragexit assert_true: The prototype object must have a property "ondragexit" expected true got false
+PASS Unscopable handled correctly for ondragexit property on HTMLElement
 PASS HTMLElement interface: attribute ondragleave
+PASS Unscopable handled correctly for ondragleave property on HTMLElement
 PASS HTMLElement interface: attribute ondragover
+PASS Unscopable handled correctly for ondragover property on HTMLElement
 PASS HTMLElement interface: attribute ondragstart
+PASS Unscopable handled correctly for ondragstart property on HTMLElement
 PASS HTMLElement interface: attribute ondrop
+PASS Unscopable handled correctly for ondrop property on HTMLElement
 PASS HTMLElement interface: attribute ondurationchange
+PASS Unscopable handled correctly for ondurationchange property on HTMLElement
 PASS HTMLElement interface: attribute onemptied
+PASS Unscopable handled correctly for onemptied property on HTMLElement
 PASS HTMLElement interface: attribute onended
+PASS Unscopable handled correctly for onended property on HTMLElement
 PASS HTMLElement interface: attribute onerror
+PASS Unscopable handled correctly for onerror property on HTMLElement
 PASS HTMLElement interface: attribute onfocus
+PASS Unscopable handled correctly for onfocus property on HTMLElement
 PASS HTMLElement interface: attribute oninput
+PASS Unscopable handled correctly for oninput property on HTMLElement
 PASS HTMLElement interface: attribute oninvalid
+PASS Unscopable handled correctly for oninvalid property on HTMLElement
 PASS HTMLElement interface: attribute onkeydown
+PASS Unscopable handled correctly for onkeydown property on HTMLElement
 PASS HTMLElement interface: attribute onkeypress
+PASS Unscopable handled correctly for onkeypress property on HTMLElement
 PASS HTMLElement interface: attribute onkeyup
+PASS Unscopable handled correctly for onkeyup property on HTMLElement
 PASS HTMLElement interface: attribute onload
+PASS Unscopable handled correctly for onload property on HTMLElement
 PASS HTMLElement interface: attribute onloadeddata
+PASS Unscopable handled correctly for onloadeddata property on HTMLElement
 PASS HTMLElement interface: attribute onloadedmetadata
+PASS Unscopable handled correctly for onloadedmetadata property on HTMLElement
 FAIL HTMLElement interface: attribute onloadend assert_true: The prototype object must have a property "onloadend" expected true got false
+PASS Unscopable handled correctly for onloadend property on HTMLElement
 PASS HTMLElement interface: attribute onloadstart
+PASS Unscopable handled correctly for onloadstart property on HTMLElement
 PASS HTMLElement interface: attribute onmousedown
+PASS Unscopable handled correctly for onmousedown property on HTMLElement
 PASS HTMLElement interface: attribute onmouseenter
+PASS Unscopable handled correctly for onmouseenter property on HTMLElement
 PASS HTMLElement interface: attribute onmouseleave
+PASS Unscopable handled correctly for onmouseleave property on HTMLElement
 PASS HTMLElement interface: attribute onmousemove
+PASS Unscopable handled correctly for onmousemove property on HTMLElement
 PASS HTMLElement interface: attribute onmouseout
+PASS Unscopable handled correctly for onmouseout property on HTMLElement
 PASS HTMLElement interface: attribute onmouseover
+PASS Unscopable handled correctly for onmouseover property on HTMLElement
 PASS HTMLElement interface: attribute onmouseup
+PASS Unscopable handled correctly for onmouseup property on HTMLElement
 PASS HTMLElement interface: attribute onwheel
+PASS Unscopable handled correctly for onwheel property on HTMLElement
 PASS HTMLElement interface: attribute onpause
+PASS Unscopable handled correctly for onpause property on HTMLElement
 PASS HTMLElement interface: attribute onplay
+PASS Unscopable handled correctly for onplay property on HTMLElement
 PASS HTMLElement interface: attribute onplaying
+PASS Unscopable handled correctly for onplaying property on HTMLElement
 PASS HTMLElement interface: attribute onprogress
+PASS Unscopable handled correctly for onprogress property on HTMLElement
 PASS HTMLElement interface: attribute onratechange
+PASS Unscopable handled correctly for onratechange property on HTMLElement
 PASS HTMLElement interface: attribute onreset
+PASS Unscopable handled correctly for onreset property on HTMLElement
 PASS HTMLElement interface: attribute onresize
+PASS Unscopable handled correctly for onresize property on HTMLElement
 PASS HTMLElement interface: attribute onscroll
+PASS Unscopable handled correctly for onscroll property on HTMLElement
 FAIL HTMLElement interface: attribute onsecuritypolicyviolation assert_true: The prototype object must have a property "onsecuritypolicyviolation" expected true got false
+PASS Unscopable handled correctly for onsecuritypolicyviolation property on HTMLElement
 PASS HTMLElement interface: attribute onseeked
+PASS Unscopable handled correctly for onseeked property on HTMLElement
 PASS HTMLElement interface: attribute onseeking
+PASS Unscopable handled correctly for onseeking property on HTMLElement
 PASS HTMLElement interface: attribute onselect
+PASS Unscopable handled correctly for onselect property on HTMLElement
 PASS HTMLElement interface: attribute onstalled
+PASS Unscopable handled correctly for onstalled property on HTMLElement
 PASS HTMLElement interface: attribute onsubmit
+PASS Unscopable handled correctly for onsubmit property on HTMLElement
 PASS HTMLElement interface: attribute onsuspend
+PASS Unscopable handled correctly for onsuspend property on HTMLElement
 PASS HTMLElement interface: attribute ontimeupdate
+PASS Unscopable handled correctly for ontimeupdate property on HTMLElement
 PASS HTMLElement interface: attribute ontoggle
+PASS Unscopable handled correctly for ontoggle property on HTMLElement
 PASS HTMLElement interface: attribute onvolumechange
+PASS Unscopable handled correctly for onvolumechange property on HTMLElement
 PASS HTMLElement interface: attribute onwaiting
+PASS Unscopable handled correctly for onwaiting property on HTMLElement
 FAIL HTMLElement interface: attribute oncopy assert_own_property: expected property "oncopy" missing
+PASS Unscopable handled correctly for oncopy property on HTMLElement
 FAIL HTMLElement interface: attribute oncut assert_own_property: expected property "oncut" missing
+PASS Unscopable handled correctly for oncut property on HTMLElement
 FAIL HTMLElement interface: attribute onpaste assert_own_property: expected property "onpaste" missing
+PASS Unscopable handled correctly for onpaste property on HTMLElement
 PASS HTMLElement interface: attribute contentEditable
+PASS Unscopable handled correctly for contentEditable property on HTMLElement
 PASS HTMLElement interface: attribute isContentEditable
+PASS Unscopable handled correctly for isContentEditable property on HTMLElement
 PASS HTMLElement interface: attribute inputMode
+PASS Unscopable handled correctly for inputMode property on HTMLElement
 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
@@ -708,6 +918,7 @@
 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 DOMStringMap interface: existence and properties of interface object
@@ -715,6 +926,7 @@
 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 HTMLHtmlElement interface: existence and properties of interface object
@@ -722,7 +934,9 @@
 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 Unscopable handled correctly for version property on HTMLHtmlElement
 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
@@ -731,6 +945,7 @@
 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
@@ -738,7 +953,9 @@
 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 Unscopable handled correctly for text property on HTMLTitleElement
 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
@@ -747,8 +964,11 @@
 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 Unscopable handled correctly for href property on HTMLBaseElement
 PASS HTMLBaseElement interface: attribute target
+PASS Unscopable handled correctly for target property on HTMLBaseElement
 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
@@ -758,23 +978,41 @@
 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 Unscopable handled correctly for href property on HTMLLinkElement
 PASS HTMLLinkElement interface: attribute crossOrigin
+PASS Unscopable handled correctly for crossOrigin property on HTMLLinkElement
 PASS HTMLLinkElement interface: attribute rel
+PASS Unscopable handled correctly for rel property on HTMLLinkElement
 PASS HTMLLinkElement interface: attribute as
+PASS Unscopable handled correctly for as property on HTMLLinkElement
 PASS HTMLLinkElement interface: attribute relList
+PASS Unscopable handled correctly for relList property on HTMLLinkElement
 PASS HTMLLinkElement interface: attribute media
+PASS Unscopable handled correctly for media property on HTMLLinkElement
 FAIL HTMLLinkElement interface: attribute nonce assert_own_property: expected property "nonce" missing
+PASS Unscopable handled correctly for nonce property on HTMLLinkElement
 PASS HTMLLinkElement interface: attribute integrity
+PASS Unscopable handled correctly for integrity property on HTMLLinkElement
 PASS HTMLLinkElement interface: attribute hreflang
+PASS Unscopable handled correctly for hreflang property on HTMLLinkElement
 PASS HTMLLinkElement interface: attribute type
+PASS Unscopable handled correctly for type property on HTMLLinkElement
 PASS HTMLLinkElement interface: attribute sizes
+PASS Unscopable handled correctly for sizes property on HTMLLinkElement
 PASS HTMLLinkElement interface: attribute referrerPolicy
+PASS Unscopable handled correctly for referrerPolicy property on HTMLLinkElement
 FAIL HTMLLinkElement interface: attribute workerType assert_true: The prototype object must have a property "workerType" expected true got false
+PASS Unscopable handled correctly for workerType property on HTMLLinkElement
 FAIL HTMLLinkElement interface: attribute updateViaCache assert_true: The prototype object must have a property "updateViaCache" expected true got false
+PASS Unscopable handled correctly for updateViaCache property on HTMLLinkElement
 PASS HTMLLinkElement interface: attribute charset
+PASS Unscopable handled correctly for charset property on HTMLLinkElement
 PASS HTMLLinkElement interface: attribute rev
+PASS Unscopable handled correctly for rev property on HTMLLinkElement
 PASS HTMLLinkElement interface: attribute target
+PASS Unscopable handled correctly for target property on HTMLLinkElement
 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
@@ -799,10 +1037,15 @@
 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 Unscopable handled correctly for name property on HTMLMetaElement
 PASS HTMLMetaElement interface: attribute httpEquiv
+PASS Unscopable handled correctly for httpEquiv property on HTMLMetaElement
 PASS HTMLMetaElement interface: attribute content
+PASS Unscopable handled correctly for content property on HTMLMetaElement
 PASS HTMLMetaElement interface: attribute scheme
+PASS Unscopable handled correctly for scheme property on HTMLMetaElement
 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
@@ -814,9 +1057,13 @@
 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 Unscopable handled correctly for media property on HTMLStyleElement
 FAIL HTMLStyleElement interface: attribute nonce assert_own_property: expected property "nonce" missing
+PASS Unscopable handled correctly for nonce property on HTMLStyleElement
 PASS HTMLStyleElement interface: attribute type
+PASS Unscopable handled correctly for type property on HTMLStyleElement
 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
@@ -827,28 +1074,51 @@
 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 Unscopable handled correctly for text property on HTMLBodyElement
 PASS HTMLBodyElement interface: attribute link
+PASS Unscopable handled correctly for link property on HTMLBodyElement
 PASS HTMLBodyElement interface: attribute vLink
+PASS Unscopable handled correctly for vLink property on HTMLBodyElement
 PASS HTMLBodyElement interface: attribute aLink
+PASS Unscopable handled correctly for aLink property on HTMLBodyElement
 PASS HTMLBodyElement interface: attribute bgColor
+PASS Unscopable handled correctly for bgColor property on HTMLBodyElement
 PASS HTMLBodyElement interface: attribute background
+PASS Unscopable handled correctly for background property on HTMLBodyElement
 PASS HTMLBodyElement interface: attribute onafterprint
+PASS Unscopable handled correctly for onafterprint property on HTMLBodyElement
 PASS HTMLBodyElement interface: attribute onbeforeprint
+PASS Unscopable handled correctly for onbeforeprint property on HTMLBodyElement
 PASS HTMLBodyElement interface: attribute onbeforeunload
+PASS Unscopable handled correctly for onbeforeunload property on HTMLBodyElement
 PASS HTMLBodyElement interface: attribute onhashchange
+PASS Unscopable handled correctly for onhashchange property on HTMLBodyElement
 PASS HTMLBodyElement interface: attribute onlanguagechange
+PASS Unscopable handled correctly for onlanguagechange property on HTMLBodyElement
 PASS HTMLBodyElement interface: attribute onmessage
+PASS Unscopable handled correctly for onmessage property on HTMLBodyElement
 PASS HTMLBodyElement interface: attribute onmessageerror
+PASS Unscopable handled correctly for onmessageerror property on HTMLBodyElement
 PASS HTMLBodyElement interface: attribute onoffline
+PASS Unscopable handled correctly for onoffline property on HTMLBodyElement
 PASS HTMLBodyElement interface: attribute ononline
+PASS Unscopable handled correctly for ononline property on HTMLBodyElement
 PASS HTMLBodyElement interface: attribute onpagehide
+PASS Unscopable handled correctly for onpagehide property on HTMLBodyElement
 PASS HTMLBodyElement interface: attribute onpageshow
+PASS Unscopable handled correctly for onpageshow property on HTMLBodyElement
 PASS HTMLBodyElement interface: attribute onpopstate
+PASS Unscopable handled correctly for onpopstate property on HTMLBodyElement
 PASS HTMLBodyElement interface: attribute onrejectionhandled
+PASS Unscopable handled correctly for onrejectionhandled property on HTMLBodyElement
 PASS HTMLBodyElement interface: attribute onstorage
+PASS Unscopable handled correctly for onstorage property on HTMLBodyElement
 PASS HTMLBodyElement interface: attribute onunhandledrejection
+PASS Unscopable handled correctly for onunhandledrejection property on HTMLBodyElement
 PASS HTMLBodyElement interface: attribute onunload
+PASS Unscopable handled correctly for onunload property on HTMLBodyElement
 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
@@ -878,7 +1148,9 @@
 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 Unscopable handled correctly for align property on HTMLHeadingElement
 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
@@ -887,7 +1159,9 @@
 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 Unscopable handled correctly for align property on HTMLParagraphElement
 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
@@ -896,11 +1170,17 @@
 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 Unscopable handled correctly for align property on HTMLHRElement
 PASS HTMLHRElement interface: attribute color
+PASS Unscopable handled correctly for color property on HTMLHRElement
 PASS HTMLHRElement interface: attribute noShade
+PASS Unscopable handled correctly for noShade property on HTMLHRElement
 PASS HTMLHRElement interface: attribute size
+PASS Unscopable handled correctly for size property on HTMLHRElement
 PASS HTMLHRElement interface: attribute width
+PASS Unscopable handled correctly for width property on HTMLHRElement
 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
@@ -913,7 +1193,9 @@
 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 Unscopable handled correctly for width property on HTMLPreElement
 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
@@ -928,7 +1210,9 @@
 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 Unscopable handled correctly for cite property on HTMLQuoteElement
 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
@@ -940,23 +1224,33 @@
 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 Unscopable handled correctly for reversed property on HTMLOListElement
 PASS HTMLOListElement interface: attribute start
+PASS Unscopable handled correctly for start property on HTMLOListElement
 PASS HTMLOListElement interface: attribute type
+PASS Unscopable handled correctly for type property on HTMLOListElement
 PASS HTMLOListElement interface: attribute compact
+PASS Unscopable handled correctly for compact property on HTMLOListElement
 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 Unscopable handled correctly for compact property on HTMLUListElement
 PASS HTMLUListElement interface: attribute type
+PASS Unscopable handled correctly for type property on HTMLUListElement
 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 Unscopable handled correctly for compact property on HTMLMenuElement
 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
@@ -965,8 +1259,11 @@
 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 Unscopable handled correctly for value property on HTMLLIElement
 PASS HTMLLIElement interface: attribute type
+PASS Unscopable handled correctly for type property on HTMLLIElement
 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
@@ -976,13 +1273,17 @@
 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 Unscopable handled correctly for compact property on HTMLDListElement
 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 Unscopable handled correctly for align property on HTMLDivElement
 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
@@ -991,32 +1292,58 @@
 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 Unscopable handled correctly for target property on HTMLAnchorElement
 PASS HTMLAnchorElement interface: attribute download
+PASS Unscopable handled correctly for download property on HTMLAnchorElement
 PASS HTMLAnchorElement interface: attribute ping
+PASS Unscopable handled correctly for ping property on HTMLAnchorElement
 PASS HTMLAnchorElement interface: attribute rel
+PASS Unscopable handled correctly for rel property on HTMLAnchorElement
 PASS HTMLAnchorElement interface: attribute relList
+PASS Unscopable handled correctly for relList property on HTMLAnchorElement
 PASS HTMLAnchorElement interface: attribute hreflang
+PASS Unscopable handled correctly for hreflang property on HTMLAnchorElement
 PASS HTMLAnchorElement interface: attribute type
+PASS Unscopable handled correctly for type property on HTMLAnchorElement
 PASS HTMLAnchorElement interface: attribute text
+PASS Unscopable handled correctly for text property on HTMLAnchorElement
 PASS HTMLAnchorElement interface: attribute referrerPolicy
+PASS Unscopable handled correctly for referrerPolicy property on HTMLAnchorElement
 PASS HTMLAnchorElement interface: attribute coords
+PASS Unscopable handled correctly for coords property on HTMLAnchorElement
 PASS HTMLAnchorElement interface: attribute charset
+PASS Unscopable handled correctly for charset property on HTMLAnchorElement
 PASS HTMLAnchorElement interface: attribute name
+PASS Unscopable handled correctly for name property on HTMLAnchorElement
 PASS HTMLAnchorElement interface: attribute rev
+PASS Unscopable handled correctly for rev property on HTMLAnchorElement
 PASS HTMLAnchorElement interface: attribute shape
+PASS Unscopable handled correctly for shape property on HTMLAnchorElement
 PASS HTMLAnchorElement interface: attribute href
+PASS Unscopable handled correctly for href property on HTMLAnchorElement
 PASS HTMLAnchorElement interface: stringifier
 PASS HTMLAnchorElement interface: attribute origin
+PASS Unscopable handled correctly for origin property on HTMLAnchorElement
 PASS HTMLAnchorElement interface: attribute protocol
+PASS Unscopable handled correctly for protocol property on HTMLAnchorElement
 PASS HTMLAnchorElement interface: attribute username
+PASS Unscopable handled correctly for username property on HTMLAnchorElement
 PASS HTMLAnchorElement interface: attribute password
+PASS Unscopable handled correctly for password property on HTMLAnchorElement
 PASS HTMLAnchorElement interface: attribute host
+PASS Unscopable handled correctly for host property on HTMLAnchorElement
 PASS HTMLAnchorElement interface: attribute hostname
+PASS Unscopable handled correctly for hostname property on HTMLAnchorElement
 PASS HTMLAnchorElement interface: attribute port
+PASS Unscopable handled correctly for port property on HTMLAnchorElement
 PASS HTMLAnchorElement interface: attribute pathname
+PASS Unscopable handled correctly for pathname property on HTMLAnchorElement
 PASS HTMLAnchorElement interface: attribute search
+PASS Unscopable handled correctly for search property on HTMLAnchorElement
 PASS HTMLAnchorElement interface: attribute hash
+PASS Unscopable handled correctly for hash property on HTMLAnchorElement
 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
@@ -1049,7 +1376,9 @@
 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 Unscopable handled correctly for value property on HTMLDataElement
 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
@@ -1058,7 +1387,9 @@
 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 Unscopable handled correctly for dateTime property on HTMLTimeElement
 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
@@ -1067,6 +1398,7 @@
 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
@@ -1074,7 +1406,9 @@
 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 Unscopable handled correctly for clear property on HTMLBRElement
 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
@@ -1083,8 +1417,11 @@
 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 Unscopable handled correctly for cite property on HTMLModElement
 PASS HTMLModElement interface: attribute dateTime
+PASS Unscopable handled correctly for dateTime property on HTMLModElement
 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
@@ -1098,6 +1435,7 @@
 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
@@ -1105,11 +1443,17 @@
 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 Unscopable handled correctly for src property on HTMLSourceElement
 PASS HTMLSourceElement interface: attribute type
+PASS Unscopable handled correctly for type property on HTMLSourceElement
 PASS HTMLSourceElement interface: attribute srcset
+PASS Unscopable handled correctly for srcset property on HTMLSourceElement
 PASS HTMLSourceElement interface: attribute sizes
+PASS Unscopable handled correctly for sizes property on HTMLSourceElement
 PASS HTMLSourceElement interface: attribute media
+PASS Unscopable handled correctly for media property on HTMLSourceElement
 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
@@ -1122,28 +1466,51 @@
 PASS HTMLImageElement interface object name
 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 Unscopable handled correctly for alt property on HTMLImageElement
 PASS HTMLImageElement interface: attribute src
+PASS Unscopable handled correctly for src property on HTMLImageElement
 PASS HTMLImageElement interface: attribute srcset
+PASS Unscopable handled correctly for srcset property on HTMLImageElement
 PASS HTMLImageElement interface: attribute sizes
+PASS Unscopable handled correctly for sizes property on HTMLImageElement
 PASS HTMLImageElement interface: attribute crossOrigin
+PASS Unscopable handled correctly for crossOrigin property on HTMLImageElement
 PASS HTMLImageElement interface: attribute useMap
+PASS Unscopable handled correctly for useMap property on HTMLImageElement
 PASS HTMLImageElement interface: attribute isMap
+PASS Unscopable handled correctly for isMap property on HTMLImageElement
 PASS HTMLImageElement interface: attribute width
+PASS Unscopable handled correctly for width property on HTMLImageElement
 PASS HTMLImageElement interface: attribute height
+PASS Unscopable handled correctly for height property on HTMLImageElement
 PASS HTMLImageElement interface: attribute naturalWidth
+PASS Unscopable handled correctly for naturalWidth property on HTMLImageElement
 PASS HTMLImageElement interface: attribute naturalHeight
+PASS Unscopable handled correctly for naturalHeight property on HTMLImageElement
 PASS HTMLImageElement interface: attribute complete
+PASS Unscopable handled correctly for complete property on HTMLImageElement
 PASS HTMLImageElement interface: attribute currentSrc
+PASS Unscopable handled correctly for currentSrc property on HTMLImageElement
 PASS HTMLImageElement interface: attribute referrerPolicy
+PASS Unscopable handled correctly for referrerPolicy property on HTMLImageElement
 PASS HTMLImageElement interface: operation decode()
+PASS Unscopable handled correctly for decode() on HTMLImageElement
 PASS HTMLImageElement interface: attribute name
+PASS Unscopable handled correctly for name property on HTMLImageElement
 PASS HTMLImageElement interface: attribute lowsrc
+PASS Unscopable handled correctly for lowsrc property on HTMLImageElement
 PASS HTMLImageElement interface: attribute align
+PASS Unscopable handled correctly for align property on HTMLImageElement
 PASS HTMLImageElement interface: attribute hspace
+PASS Unscopable handled correctly for hspace property on HTMLImageElement
 PASS HTMLImageElement interface: attribute vspace
+PASS Unscopable handled correctly for vspace property on HTMLImageElement
 PASS HTMLImageElement interface: attribute longDesc
+PASS Unscopable handled correctly for longDesc property on HTMLImageElement
 PASS HTMLImageElement interface: attribute border
+PASS Unscopable handled correctly for border property on HTMLImageElement
 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
@@ -1197,38 +1564,67 @@
 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 Unscopable handled correctly for src property on HTMLIFrameElement
 PASS HTMLIFrameElement interface: attribute srcdoc
+PASS Unscopable handled correctly for srcdoc property on HTMLIFrameElement
 PASS HTMLIFrameElement interface: attribute name
+PASS Unscopable handled correctly for name property on HTMLIFrameElement
 PASS HTMLIFrameElement interface: attribute sandbox
+PASS Unscopable handled correctly for sandbox property on HTMLIFrameElement
 PASS HTMLIFrameElement interface: attribute allowFullscreen
+PASS Unscopable handled correctly for allowFullscreen property on HTMLIFrameElement
 PASS HTMLIFrameElement interface: attribute allowPaymentRequest
+PASS Unscopable handled correctly for allowPaymentRequest property on HTMLIFrameElement
 FAIL HTMLIFrameElement interface: attribute allowUserMedia assert_true: The prototype object must have a property "allowUserMedia" expected true got false
+PASS Unscopable handled correctly for allowUserMedia property on HTMLIFrameElement
 PASS HTMLIFrameElement interface: attribute width
+PASS Unscopable handled correctly for width property on HTMLIFrameElement
 PASS HTMLIFrameElement interface: attribute height
+PASS Unscopable handled correctly for height property on HTMLIFrameElement
 PASS HTMLIFrameElement interface: attribute referrerPolicy
+PASS Unscopable handled correctly for referrerPolicy property on HTMLIFrameElement
 PASS HTMLIFrameElement interface: attribute contentDocument
+PASS Unscopable handled correctly for contentDocument property on HTMLIFrameElement
 PASS HTMLIFrameElement interface: attribute contentWindow
+PASS Unscopable handled correctly for contentWindow property on HTMLIFrameElement
 PASS HTMLIFrameElement interface: operation getSVGDocument()
+PASS Unscopable handled correctly for getSVGDocument() on HTMLIFrameElement
 FAIL HTMLIFrameElement interface: attribute delegateStickyUserActivation assert_true: The prototype object must have a property "delegateStickyUserActivation" expected true got false
+PASS Unscopable handled correctly for delegateStickyUserActivation property on HTMLIFrameElement
 PASS HTMLIFrameElement interface: attribute align
+PASS Unscopable handled correctly for align property on HTMLIFrameElement
 PASS HTMLIFrameElement interface: attribute scrolling
+PASS Unscopable handled correctly for scrolling property on HTMLIFrameElement
 PASS HTMLIFrameElement interface: attribute frameBorder
+PASS Unscopable handled correctly for frameBorder property on HTMLIFrameElement
 PASS HTMLIFrameElement interface: attribute longDesc
+PASS Unscopable handled correctly for longDesc property on HTMLIFrameElement
 PASS HTMLIFrameElement interface: attribute marginHeight
+PASS Unscopable handled correctly for marginHeight property on HTMLIFrameElement
 PASS HTMLIFrameElement interface: attribute marginWidth
+PASS Unscopable handled correctly for marginWidth property on HTMLIFrameElement
 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 Unscopable handled correctly for src property on HTMLEmbedElement
 PASS HTMLEmbedElement interface: attribute type
+PASS Unscopable handled correctly for type property on HTMLEmbedElement
 PASS HTMLEmbedElement interface: attribute width
+PASS Unscopable handled correctly for width property on HTMLEmbedElement
 PASS HTMLEmbedElement interface: attribute height
+PASS Unscopable handled correctly for height property on HTMLEmbedElement
 PASS HTMLEmbedElement interface: operation getSVGDocument()
+PASS Unscopable handled correctly for getSVGDocument() on HTMLEmbedElement
 PASS HTMLEmbedElement interface: attribute align
+PASS Unscopable handled correctly for align property on HTMLEmbedElement
 PASS HTMLEmbedElement interface: attribute name
+PASS Unscopable handled correctly for name property on HTMLEmbedElement
 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
@@ -1243,33 +1639,61 @@
 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 Unscopable handled correctly for data property on HTMLObjectElement
 PASS HTMLObjectElement interface: attribute type
+PASS Unscopable handled correctly for type property on HTMLObjectElement
 FAIL HTMLObjectElement interface: attribute typeMustMatch assert_true: The prototype object must have a property "typeMustMatch" expected true got false
+PASS Unscopable handled correctly for typeMustMatch property on HTMLObjectElement
 PASS HTMLObjectElement interface: attribute name
+PASS Unscopable handled correctly for name property on HTMLObjectElement
 PASS HTMLObjectElement interface: attribute useMap
+PASS Unscopable handled correctly for useMap property on HTMLObjectElement
 PASS HTMLObjectElement interface: attribute form
+PASS Unscopable handled correctly for form property on HTMLObjectElement
 PASS HTMLObjectElement interface: attribute width
+PASS Unscopable handled correctly for width property on HTMLObjectElement
 PASS HTMLObjectElement interface: attribute height
+PASS Unscopable handled correctly for height property on HTMLObjectElement
 PASS HTMLObjectElement interface: attribute contentDocument
+PASS Unscopable handled correctly for contentDocument property on HTMLObjectElement
 PASS HTMLObjectElement interface: attribute contentWindow
+PASS Unscopable handled correctly for contentWindow property on HTMLObjectElement
 PASS HTMLObjectElement interface: operation getSVGDocument()
+PASS Unscopable handled correctly for getSVGDocument() on HTMLObjectElement
 PASS HTMLObjectElement interface: attribute willValidate
+PASS Unscopable handled correctly for willValidate property on HTMLObjectElement
 PASS HTMLObjectElement interface: attribute validity
+PASS Unscopable handled correctly for validity property on HTMLObjectElement
 PASS HTMLObjectElement interface: attribute validationMessage
+PASS Unscopable handled correctly for validationMessage property on HTMLObjectElement
 PASS HTMLObjectElement interface: operation checkValidity()
+PASS Unscopable handled correctly for checkValidity() on HTMLObjectElement
 PASS HTMLObjectElement interface: operation reportValidity()
+PASS Unscopable handled correctly for reportValidity() on HTMLObjectElement
 PASS HTMLObjectElement interface: operation setCustomValidity(DOMString)
+PASS Unscopable handled correctly for setCustomValidity(DOMString) on HTMLObjectElement
 PASS HTMLObjectElement interface: attribute align
+PASS Unscopable handled correctly for align property on HTMLObjectElement
 PASS HTMLObjectElement interface: attribute archive
+PASS Unscopable handled correctly for archive property on HTMLObjectElement
 PASS HTMLObjectElement interface: attribute code
+PASS Unscopable handled correctly for code property on HTMLObjectElement
 PASS HTMLObjectElement interface: attribute declare
+PASS Unscopable handled correctly for declare property on HTMLObjectElement
 PASS HTMLObjectElement interface: attribute hspace
+PASS Unscopable handled correctly for hspace property on HTMLObjectElement
 PASS HTMLObjectElement interface: attribute standby
+PASS Unscopable handled correctly for standby property on HTMLObjectElement
 PASS HTMLObjectElement interface: attribute vspace
+PASS Unscopable handled correctly for vspace property on HTMLObjectElement
 PASS HTMLObjectElement interface: attribute codeBase
+PASS Unscopable handled correctly for codeBase property on HTMLObjectElement
 PASS HTMLObjectElement interface: attribute codeType
+PASS Unscopable handled correctly for codeType property on HTMLObjectElement
 PASS HTMLObjectElement interface: attribute border
+PASS Unscopable handled correctly for border property on HTMLObjectElement
 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
@@ -1305,10 +1729,15 @@
 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 Unscopable handled correctly for name property on HTMLParamElement
 PASS HTMLParamElement interface: attribute value
+PASS Unscopable handled correctly for value property on HTMLParamElement
 PASS HTMLParamElement interface: attribute type
+PASS Unscopable handled correctly for type property on HTMLParamElement
 PASS HTMLParamElement interface: attribute valueType
+PASS Unscopable handled correctly for valueType property on HTMLParamElement
 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
@@ -1320,12 +1749,19 @@
 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 Unscopable handled correctly for width property on HTMLVideoElement
 PASS HTMLVideoElement interface: attribute height
+PASS Unscopable handled correctly for height property on HTMLVideoElement
 PASS HTMLVideoElement interface: attribute videoWidth
+PASS Unscopable handled correctly for videoWidth property on HTMLVideoElement
 PASS HTMLVideoElement interface: attribute videoHeight
+PASS Unscopable handled correctly for videoHeight property on HTMLVideoElement
 PASS HTMLVideoElement interface: attribute poster
+PASS Unscopable handled correctly for poster property on HTMLVideoElement
 FAIL HTMLVideoElement interface: attribute playsInline assert_true: The prototype object must have a property "playsInline" expected true got false
+PASS Unscopable handled correctly for playsInline property on HTMLVideoElement
 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
@@ -1385,6 +1821,7 @@
 PASS HTMLAudioElement interface object name
 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
@@ -1486,11 +1923,17 @@
 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 Unscopable handled correctly for kind property on HTMLTrackElement
 PASS HTMLTrackElement interface: attribute src
+PASS Unscopable handled correctly for src property on HTMLTrackElement
 PASS HTMLTrackElement interface: attribute srclang
+PASS Unscopable handled correctly for srclang property on HTMLTrackElement
 PASS HTMLTrackElement interface: attribute label
+PASS Unscopable handled correctly for label property on HTMLTrackElement
 PASS HTMLTrackElement interface: attribute default
+PASS Unscopable handled correctly for default property on HTMLTrackElement
 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
@@ -1500,7 +1943,9 @@
 PASS HTMLTrackElement interface: constant ERROR on interface object
 PASS HTMLTrackElement interface: constant ERROR on interface prototype object
 PASS HTMLTrackElement interface: attribute readyState
+PASS Unscopable handled correctly for readyState property on HTMLTrackElement
 PASS HTMLTrackElement interface: attribute track
+PASS Unscopable handled correctly for track property on HTMLTrackElement
 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
@@ -1519,11 +1964,17 @@
 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 Unscopable handled correctly for error property on HTMLMediaElement
 PASS HTMLMediaElement interface: attribute src
+PASS Unscopable handled correctly for src property on HTMLMediaElement
 PASS HTMLMediaElement interface: attribute srcObject
+PASS Unscopable handled correctly for srcObject property on HTMLMediaElement
 PASS HTMLMediaElement interface: attribute currentSrc
+PASS Unscopable handled correctly for currentSrc property on HTMLMediaElement
 PASS HTMLMediaElement interface: attribute crossOrigin
+PASS Unscopable handled correctly for crossOrigin property on HTMLMediaElement
 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
@@ -1533,10 +1984,15 @@
 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 Unscopable handled correctly for networkState property on HTMLMediaElement
 PASS HTMLMediaElement interface: attribute preload
+PASS Unscopable handled correctly for preload property on HTMLMediaElement
 PASS HTMLMediaElement interface: attribute buffered
+PASS Unscopable handled correctly for buffered property on HTMLMediaElement
 PASS HTMLMediaElement interface: operation load()
+PASS Unscopable handled correctly for load() on HTMLMediaElement
 PASS HTMLMediaElement interface: operation canPlayType(DOMString)
+PASS Unscopable handled correctly for canPlayType(DOMString) on HTMLMediaElement
 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
@@ -1548,34 +2004,59 @@
 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 Unscopable handled correctly for readyState property on HTMLMediaElement
 PASS HTMLMediaElement interface: attribute seeking
+PASS Unscopable handled correctly for seeking property on HTMLMediaElement
 PASS HTMLMediaElement interface: attribute currentTime
+PASS Unscopable handled correctly for currentTime property on HTMLMediaElement
 FAIL HTMLMediaElement interface: operation fastSeek(double) assert_own_property: interface prototype object missing non-static operation expected property "fastSeek" missing
+PASS Unscopable handled correctly for fastSeek(double) on HTMLMediaElement
 PASS HTMLMediaElement interface: attribute duration
+PASS Unscopable handled correctly for duration property on HTMLMediaElement
 FAIL HTMLMediaElement interface: operation getStartDate() assert_own_property: interface prototype object missing non-static operation expected property "getStartDate" missing
+PASS Unscopable handled correctly for getStartDate() on HTMLMediaElement
 PASS HTMLMediaElement interface: attribute paused
+PASS Unscopable handled correctly for paused property on HTMLMediaElement
 PASS HTMLMediaElement interface: attribute defaultPlaybackRate
+PASS Unscopable handled correctly for defaultPlaybackRate property on HTMLMediaElement
 PASS HTMLMediaElement interface: attribute playbackRate
+PASS Unscopable handled correctly for playbackRate property on HTMLMediaElement
 PASS HTMLMediaElement interface: attribute played
+PASS Unscopable handled correctly for played property on HTMLMediaElement
 PASS HTMLMediaElement interface: attribute seekable
+PASS Unscopable handled correctly for seekable property on HTMLMediaElement
 PASS HTMLMediaElement interface: attribute ended
+PASS Unscopable handled correctly for ended property on HTMLMediaElement
 PASS HTMLMediaElement interface: attribute autoplay
+PASS Unscopable handled correctly for autoplay property on HTMLMediaElement
 PASS HTMLMediaElement interface: attribute loop
+PASS Unscopable handled correctly for loop property on HTMLMediaElement
 PASS HTMLMediaElement interface: operation play()
+PASS Unscopable handled correctly for play() on HTMLMediaElement
 PASS HTMLMediaElement interface: operation pause()
+PASS Unscopable handled correctly for pause() on HTMLMediaElement
 PASS HTMLMediaElement interface: attribute controls
+PASS Unscopable handled correctly for controls property on HTMLMediaElement
 PASS HTMLMediaElement interface: attribute volume
+PASS Unscopable handled correctly for volume property on HTMLMediaElement
 PASS HTMLMediaElement interface: attribute muted
+PASS Unscopable handled correctly for muted property on HTMLMediaElement
 PASS HTMLMediaElement interface: attribute defaultMuted
+PASS Unscopable handled correctly for defaultMuted property on HTMLMediaElement
 PASS HTMLMediaElement interface: attribute audioTracks
+PASS Unscopable handled correctly for audioTracks property on HTMLMediaElement
 PASS HTMLMediaElement interface: attribute videoTracks
+PASS Unscopable handled correctly for videoTracks property on HTMLMediaElement
 PASS HTMLMediaElement interface: attribute textTracks
+PASS Unscopable handled correctly for textTracks property on HTMLMediaElement
 PASS HTMLMediaElement interface: operation addTextTrack(TextTrackKind, DOMString, DOMString)
+PASS Unscopable handled correctly for addTextTrack(TextTrackKind, DOMString, DOMString) on HTMLMediaElement
 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
@@ -1585,7 +2066,9 @@
 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 Unscopable handled correctly for code property on MediaError
 PASS MediaError interface: attribute message
+PASS Unscopable handled correctly for message property on MediaError
 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
@@ -1599,52 +2082,83 @@
 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 Unscopable handled correctly for length property on AudioTrackList
 PASS AudioTrackList interface: operation getTrackById(DOMString)
+PASS Unscopable handled correctly for getTrackById(DOMString) on AudioTrackList
 PASS AudioTrackList interface: attribute onchange
+PASS Unscopable handled correctly for onchange property on AudioTrackList
 PASS AudioTrackList interface: attribute onaddtrack
+PASS Unscopable handled correctly for onaddtrack property on AudioTrackList
 PASS AudioTrackList interface: attribute onremovetrack
+PASS Unscopable handled correctly for onremovetrack property on AudioTrackList
 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 Unscopable handled correctly for id property on AudioTrack
 PASS AudioTrack interface: attribute kind
+PASS Unscopable handled correctly for kind property on AudioTrack
 PASS AudioTrack interface: attribute label
+PASS Unscopable handled correctly for label property on AudioTrack
 PASS AudioTrack interface: attribute language
+PASS Unscopable handled correctly for language property on AudioTrack
 PASS AudioTrack interface: attribute enabled
+PASS Unscopable handled correctly for enabled property on AudioTrack
 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 Unscopable handled correctly for length property on VideoTrackList
 PASS VideoTrackList interface: operation getTrackById(DOMString)
+PASS Unscopable handled correctly for getTrackById(DOMString) on VideoTrackList
 PASS VideoTrackList interface: attribute selectedIndex
+PASS Unscopable handled correctly for selectedIndex property on VideoTrackList
 PASS VideoTrackList interface: attribute onchange
+PASS Unscopable handled correctly for onchange property on VideoTrackList
 PASS VideoTrackList interface: attribute onaddtrack
+PASS Unscopable handled correctly for onaddtrack property on VideoTrackList
 PASS VideoTrackList interface: attribute onremovetrack
+PASS Unscopable handled correctly for onremovetrack property on VideoTrackList
 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 Unscopable handled correctly for id property on VideoTrack
 PASS VideoTrack interface: attribute kind
+PASS Unscopable handled correctly for kind property on VideoTrack
 PASS VideoTrack interface: attribute label
+PASS Unscopable handled correctly for label property on VideoTrack
 PASS VideoTrack interface: attribute language
+PASS Unscopable handled correctly for language property on VideoTrack
 PASS VideoTrack interface: attribute selected
+PASS Unscopable handled correctly for selected property on VideoTrack
 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 Unscopable handled correctly for length property on TextTrackList
 PASS TextTrackList interface: operation getTrackById(DOMString)
+PASS Unscopable handled correctly for getTrackById(DOMString) on TextTrackList
 PASS TextTrackList interface: attribute onchange
+PASS Unscopable handled correctly for onchange property on TextTrackList
 PASS TextTrackList interface: attribute onaddtrack
+PASS Unscopable handled correctly for onaddtrack property on TextTrackList
 PASS TextTrackList interface: attribute onremovetrack
+PASS Unscopable handled correctly for onremovetrack property on TextTrackList
 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
@@ -1658,17 +2172,29 @@
 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 Unscopable handled correctly for kind property on TextTrack
 PASS TextTrack interface: attribute label
+PASS Unscopable handled correctly for label property on TextTrack
 PASS TextTrack interface: attribute language
+PASS Unscopable handled correctly for language property on TextTrack
 PASS TextTrack interface: attribute id
+PASS Unscopable handled correctly for id property on TextTrack
 FAIL TextTrack interface: attribute inBandMetadataTrackDispatchType assert_true: The prototype object must have a property "inBandMetadataTrackDispatchType" expected true got false
+PASS Unscopable handled correctly for inBandMetadataTrackDispatchType property on TextTrack
 PASS TextTrack interface: attribute mode
+PASS Unscopable handled correctly for mode property on TextTrack
 PASS TextTrack interface: attribute cues
+PASS Unscopable handled correctly for cues property on TextTrack
 PASS TextTrack interface: attribute activeCues
+PASS Unscopable handled correctly for activeCues property on TextTrack
 PASS TextTrack interface: operation addCue(TextTrackCue)
+PASS Unscopable handled correctly for addCue(TextTrackCue) on TextTrack
 PASS TextTrack interface: operation removeCue(TextTrackCue)
+PASS Unscopable handled correctly for removeCue(TextTrackCue) on TextTrack
 PASS TextTrack interface: attribute oncuechange
+PASS Unscopable handled correctly for oncuechange property on TextTrack
 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
@@ -1689,8 +2215,11 @@
 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 Unscopable handled correctly for length property on TextTrackCueList
 PASS TextTrackCueList interface: operation getCueById(DOMString)
+PASS Unscopable handled correctly for getCueById(DOMString) on TextTrackCueList
 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
@@ -1701,21 +2230,33 @@
 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 Unscopable handled correctly for track property on TextTrackCue
 PASS TextTrackCue interface: attribute id
+PASS Unscopable handled correctly for id property on TextTrackCue
 PASS TextTrackCue interface: attribute startTime
+PASS Unscopable handled correctly for startTime property on TextTrackCue
 PASS TextTrackCue interface: attribute endTime
+PASS Unscopable handled correctly for endTime property on TextTrackCue
 PASS TextTrackCue interface: attribute pauseOnExit
+PASS Unscopable handled correctly for pauseOnExit property on TextTrackCue
 PASS TextTrackCue interface: attribute onenter
+PASS Unscopable handled correctly for onenter property on TextTrackCue
 PASS TextTrackCue interface: attribute onexit
+PASS Unscopable handled correctly for onexit property on TextTrackCue
 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 Unscopable handled correctly for length property on TimeRanges
 PASS TimeRanges interface: operation start(unsigned long)
+PASS Unscopable handled correctly for start(unsigned long) on TimeRanges
 PASS TimeRanges interface: operation end(unsigned long)
+PASS Unscopable handled correctly for end(unsigned long) on TimeRanges
 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
@@ -1728,7 +2269,9 @@
 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 Unscopable handled correctly for track property on TrackEvent
 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
@@ -1737,8 +2280,11 @@
 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 Unscopable handled correctly for name property on HTMLMapElement
 PASS HTMLMapElement interface: attribute areas
+PASS Unscopable handled correctly for areas property on HTMLMapElement
 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
@@ -1748,28 +2294,50 @@
 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 Unscopable handled correctly for alt property on HTMLAreaElement
 PASS HTMLAreaElement interface: attribute coords
+PASS Unscopable handled correctly for coords property on HTMLAreaElement
 PASS HTMLAreaElement interface: attribute shape
+PASS Unscopable handled correctly for shape property on HTMLAreaElement
 PASS HTMLAreaElement interface: attribute target
+PASS Unscopable handled correctly for target property on HTMLAreaElement
 PASS HTMLAreaElement interface: attribute download
+PASS Unscopable handled correctly for download property on HTMLAreaElement
 PASS HTMLAreaElement interface: attribute ping
+PASS Unscopable handled correctly for ping property on HTMLAreaElement
 PASS HTMLAreaElement interface: attribute rel
+PASS Unscopable handled correctly for rel property on HTMLAreaElement
 PASS HTMLAreaElement interface: attribute relList
+PASS Unscopable handled correctly for relList property on HTMLAreaElement
 PASS HTMLAreaElement interface: attribute referrerPolicy
+PASS Unscopable handled correctly for referrerPolicy property on HTMLAreaElement
 PASS HTMLAreaElement interface: attribute noHref
+PASS Unscopable handled correctly for noHref property on HTMLAreaElement
 PASS HTMLAreaElement interface: attribute href
+PASS Unscopable handled correctly for href property on HTMLAreaElement
 PASS HTMLAreaElement interface: stringifier
 PASS HTMLAreaElement interface: attribute origin
+PASS Unscopable handled correctly for origin property on HTMLAreaElement
 PASS HTMLAreaElement interface: attribute protocol
+PASS Unscopable handled correctly for protocol property on HTMLAreaElement
 PASS HTMLAreaElement interface: attribute username
+PASS Unscopable handled correctly for username property on HTMLAreaElement
 PASS HTMLAreaElement interface: attribute password
+PASS Unscopable handled correctly for password property on HTMLAreaElement
 PASS HTMLAreaElement interface: attribute host
+PASS Unscopable handled correctly for host property on HTMLAreaElement
 PASS HTMLAreaElement interface: attribute hostname
+PASS Unscopable handled correctly for hostname property on HTMLAreaElement
 PASS HTMLAreaElement interface: attribute port
+PASS Unscopable handled correctly for port property on HTMLAreaElement
 PASS HTMLAreaElement interface: attribute pathname
+PASS Unscopable handled correctly for pathname property on HTMLAreaElement
 PASS HTMLAreaElement interface: attribute search
+PASS Unscopable handled correctly for search property on HTMLAreaElement
 PASS HTMLAreaElement interface: attribute hash
+PASS Unscopable handled correctly for hash property on HTMLAreaElement
 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
@@ -1798,29 +2366,53 @@
 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 Unscopable handled correctly for caption property on HTMLTableElement
 PASS HTMLTableElement interface: operation createCaption()
+PASS Unscopable handled correctly for createCaption() on HTMLTableElement
 PASS HTMLTableElement interface: operation deleteCaption()
+PASS Unscopable handled correctly for deleteCaption() on HTMLTableElement
 PASS HTMLTableElement interface: attribute tHead
+PASS Unscopable handled correctly for tHead property on HTMLTableElement
 PASS HTMLTableElement interface: operation createTHead()
+PASS Unscopable handled correctly for createTHead() on HTMLTableElement
 PASS HTMLTableElement interface: operation deleteTHead()
+PASS Unscopable handled correctly for deleteTHead() on HTMLTableElement
 PASS HTMLTableElement interface: attribute tFoot
+PASS Unscopable handled correctly for tFoot property on HTMLTableElement
 PASS HTMLTableElement interface: operation createTFoot()
+PASS Unscopable handled correctly for createTFoot() on HTMLTableElement
 PASS HTMLTableElement interface: operation deleteTFoot()
+PASS Unscopable handled correctly for deleteTFoot() on HTMLTableElement
 PASS HTMLTableElement interface: attribute tBodies
+PASS Unscopable handled correctly for tBodies property on HTMLTableElement
 PASS HTMLTableElement interface: operation createTBody()
+PASS Unscopable handled correctly for createTBody() on HTMLTableElement
 PASS HTMLTableElement interface: attribute rows
+PASS Unscopable handled correctly for rows property on HTMLTableElement
 PASS HTMLTableElement interface: operation insertRow(long)
+PASS Unscopable handled correctly for insertRow(long) on HTMLTableElement
 PASS HTMLTableElement interface: operation deleteRow(long)
+PASS Unscopable handled correctly for deleteRow(long) on HTMLTableElement
 PASS HTMLTableElement interface: attribute align
+PASS Unscopable handled correctly for align property on HTMLTableElement
 PASS HTMLTableElement interface: attribute border
+PASS Unscopable handled correctly for border property on HTMLTableElement
 PASS HTMLTableElement interface: attribute frame
+PASS Unscopable handled correctly for frame property on HTMLTableElement
 PASS HTMLTableElement interface: attribute rules
+PASS Unscopable handled correctly for rules property on HTMLTableElement
 PASS HTMLTableElement interface: attribute summary
+PASS Unscopable handled correctly for summary property on HTMLTableElement
 PASS HTMLTableElement interface: attribute width
+PASS Unscopable handled correctly for width property on HTMLTableElement
 PASS HTMLTableElement interface: attribute bgColor
+PASS Unscopable handled correctly for bgColor property on HTMLTableElement
 PASS HTMLTableElement interface: attribute cellPadding
+PASS Unscopable handled correctly for cellPadding property on HTMLTableElement
 PASS HTMLTableElement interface: attribute cellSpacing
+PASS Unscopable handled correctly for cellSpacing property on HTMLTableElement
 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
@@ -1853,7 +2445,9 @@
 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 Unscopable handled correctly for align property on HTMLTableCaptionElement
 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
@@ -1862,12 +2456,19 @@
 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 Unscopable handled correctly for span property on HTMLTableColElement
 PASS HTMLTableColElement interface: attribute align
+PASS Unscopable handled correctly for align property on HTMLTableColElement
 PASS HTMLTableColElement interface: attribute ch
+PASS Unscopable handled correctly for ch property on HTMLTableColElement
 PASS HTMLTableColElement interface: attribute chOff
+PASS Unscopable handled correctly for chOff property on HTMLTableColElement
 PASS HTMLTableColElement interface: attribute vAlign
+PASS Unscopable handled correctly for vAlign property on HTMLTableColElement
 PASS HTMLTableColElement interface: attribute width
+PASS Unscopable handled correctly for width property on HTMLTableColElement
 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
@@ -1889,13 +2490,21 @@
 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 Unscopable handled correctly for rows property on HTMLTableSectionElement
 PASS HTMLTableSectionElement interface: operation insertRow(long)
+PASS Unscopable handled correctly for insertRow(long) on HTMLTableSectionElement
 PASS HTMLTableSectionElement interface: operation deleteRow(long)
+PASS Unscopable handled correctly for deleteRow(long) on HTMLTableSectionElement
 PASS HTMLTableSectionElement interface: attribute align
+PASS Unscopable handled correctly for align property on HTMLTableSectionElement
 PASS HTMLTableSectionElement interface: attribute ch
+PASS Unscopable handled correctly for ch property on HTMLTableSectionElement
 PASS HTMLTableSectionElement interface: attribute chOff
+PASS Unscopable handled correctly for chOff property on HTMLTableSectionElement
 PASS HTMLTableSectionElement interface: attribute vAlign
+PASS Unscopable handled correctly for vAlign property on HTMLTableSectionElement
 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
@@ -1934,16 +2543,27 @@
 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 Unscopable handled correctly for rowIndex property on HTMLTableRowElement
 PASS HTMLTableRowElement interface: attribute sectionRowIndex
+PASS Unscopable handled correctly for sectionRowIndex property on HTMLTableRowElement
 PASS HTMLTableRowElement interface: attribute cells
+PASS Unscopable handled correctly for cells property on HTMLTableRowElement
 PASS HTMLTableRowElement interface: operation insertCell(long)
+PASS Unscopable handled correctly for insertCell(long) on HTMLTableRowElement
 PASS HTMLTableRowElement interface: operation deleteCell(long)
+PASS Unscopable handled correctly for deleteCell(long) on HTMLTableRowElement
 PASS HTMLTableRowElement interface: attribute align
+PASS Unscopable handled correctly for align property on HTMLTableRowElement
 PASS HTMLTableRowElement interface: attribute ch
+PASS Unscopable handled correctly for ch property on HTMLTableRowElement
 PASS HTMLTableRowElement interface: attribute chOff
+PASS Unscopable handled correctly for chOff property on HTMLTableRowElement
 PASS HTMLTableRowElement interface: attribute vAlign
+PASS Unscopable handled correctly for vAlign property on HTMLTableRowElement
 PASS HTMLTableRowElement interface: attribute bgColor
+PASS Unscopable handled correctly for bgColor property on HTMLTableRowElement
 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
@@ -1963,21 +2583,37 @@
 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 Unscopable handled correctly for colSpan property on HTMLTableCellElement
 PASS HTMLTableCellElement interface: attribute rowSpan
+PASS Unscopable handled correctly for rowSpan property on HTMLTableCellElement
 PASS HTMLTableCellElement interface: attribute headers
+PASS Unscopable handled correctly for headers property on HTMLTableCellElement
 PASS HTMLTableCellElement interface: attribute cellIndex
+PASS Unscopable handled correctly for cellIndex property on HTMLTableCellElement
 PASS HTMLTableCellElement interface: attribute scope
+PASS Unscopable handled correctly for scope property on HTMLTableCellElement
 PASS HTMLTableCellElement interface: attribute abbr
+PASS Unscopable handled correctly for abbr property on HTMLTableCellElement
 PASS HTMLTableCellElement interface: attribute align
+PASS Unscopable handled correctly for align property on HTMLTableCellElement
 PASS HTMLTableCellElement interface: attribute axis
+PASS Unscopable handled correctly for axis property on HTMLTableCellElement
 PASS HTMLTableCellElement interface: attribute height
+PASS Unscopable handled correctly for height property on HTMLTableCellElement
 PASS HTMLTableCellElement interface: attribute width
+PASS Unscopable handled correctly for width property on HTMLTableCellElement
 PASS HTMLTableCellElement interface: attribute ch
+PASS Unscopable handled correctly for ch property on HTMLTableCellElement
 PASS HTMLTableCellElement interface: attribute chOff
+PASS Unscopable handled correctly for chOff property on HTMLTableCellElement
 PASS HTMLTableCellElement interface: attribute noWrap
+PASS Unscopable handled correctly for noWrap property on HTMLTableCellElement
 PASS HTMLTableCellElement interface: attribute vAlign
+PASS Unscopable handled correctly for vAlign property on HTMLTableCellElement
 PASS HTMLTableCellElement interface: attribute bgColor
+PASS Unscopable handled correctly for bgColor property on HTMLTableCellElement
 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
@@ -2017,21 +2653,37 @@
 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 Unscopable handled correctly for acceptCharset property on HTMLFormElement
 PASS HTMLFormElement interface: attribute action
+PASS Unscopable handled correctly for action property on HTMLFormElement
 PASS HTMLFormElement interface: attribute autocomplete
+PASS Unscopable handled correctly for autocomplete property on HTMLFormElement
 PASS HTMLFormElement interface: attribute enctype
+PASS Unscopable handled correctly for enctype property on HTMLFormElement
 PASS HTMLFormElement interface: attribute encoding
+PASS Unscopable handled correctly for encoding property on HTMLFormElement
 PASS HTMLFormElement interface: attribute method
+PASS Unscopable handled correctly for method property on HTMLFormElement
 PASS HTMLFormElement interface: attribute name
+PASS Unscopable handled correctly for name property on HTMLFormElement
 PASS HTMLFormElement interface: attribute noValidate
+PASS Unscopable handled correctly for noValidate property on HTMLFormElement
 PASS HTMLFormElement interface: attribute target
+PASS Unscopable handled correctly for target property on HTMLFormElement
 PASS HTMLFormElement interface: attribute elements
+PASS Unscopable handled correctly for elements property on HTMLFormElement
 PASS HTMLFormElement interface: attribute length
+PASS Unscopable handled correctly for length property on HTMLFormElement
 PASS HTMLFormElement interface: operation submit()
+PASS Unscopable handled correctly for submit() on HTMLFormElement
 PASS HTMLFormElement interface: operation reset()
+PASS Unscopable handled correctly for reset() on HTMLFormElement
 PASS HTMLFormElement interface: operation checkValidity()
+PASS Unscopable handled correctly for checkValidity() on HTMLFormElement
 PASS HTMLFormElement interface: operation reportValidity()
+PASS Unscopable handled correctly for reportValidity() on HTMLFormElement
 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
@@ -2054,9 +2706,13 @@
 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 Unscopable handled correctly for form property on HTMLLabelElement
 PASS HTMLLabelElement interface: attribute htmlFor
+PASS Unscopable handled correctly for htmlFor property on HTMLLabelElement
 PASS HTMLLabelElement interface: attribute control
+PASS Unscopable handled correctly for control property on HTMLLabelElement
 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
@@ -2067,61 +2723,117 @@
 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 Unscopable handled correctly for accept property on HTMLInputElement
 PASS HTMLInputElement interface: attribute alt
+PASS Unscopable handled correctly for alt property on HTMLInputElement
 PASS HTMLInputElement interface: attribute autocomplete
+PASS Unscopable handled correctly for autocomplete property on HTMLInputElement
 PASS HTMLInputElement interface: attribute autofocus
+PASS Unscopable handled correctly for autofocus property on HTMLInputElement
 PASS HTMLInputElement interface: attribute defaultChecked
+PASS Unscopable handled correctly for defaultChecked property on HTMLInputElement
 PASS HTMLInputElement interface: attribute checked
+PASS Unscopable handled correctly for checked property on HTMLInputElement
 PASS HTMLInputElement interface: attribute dirName
+PASS Unscopable handled correctly for dirName property on HTMLInputElement
 PASS HTMLInputElement interface: attribute disabled
+PASS Unscopable handled correctly for disabled property on HTMLInputElement
 PASS HTMLInputElement interface: attribute form
+PASS Unscopable handled correctly for form property on HTMLInputElement
 PASS HTMLInputElement interface: attribute files
+PASS Unscopable handled correctly for files property on HTMLInputElement
 PASS HTMLInputElement interface: attribute formAction
+PASS Unscopable handled correctly for formAction property on HTMLInputElement
 PASS HTMLInputElement interface: attribute formEnctype
+PASS Unscopable handled correctly for formEnctype property on HTMLInputElement
 PASS HTMLInputElement interface: attribute formMethod
+PASS Unscopable handled correctly for formMethod property on HTMLInputElement
 PASS HTMLInputElement interface: attribute formNoValidate
+PASS Unscopable handled correctly for formNoValidate property on HTMLInputElement
 PASS HTMLInputElement interface: attribute formTarget
+PASS Unscopable handled correctly for formTarget property on HTMLInputElement
 PASS HTMLInputElement interface: attribute height
+PASS Unscopable handled correctly for height property on HTMLInputElement
 PASS HTMLInputElement interface: attribute indeterminate
+PASS Unscopable handled correctly for indeterminate property on HTMLInputElement
 PASS HTMLInputElement interface: attribute list
+PASS Unscopable handled correctly for list property on HTMLInputElement
 PASS HTMLInputElement interface: attribute max
+PASS Unscopable handled correctly for max property on HTMLInputElement
 PASS HTMLInputElement interface: attribute maxLength
+PASS Unscopable handled correctly for maxLength property on HTMLInputElement
 PASS HTMLInputElement interface: attribute min
+PASS Unscopable handled correctly for min property on HTMLInputElement
 PASS HTMLInputElement interface: attribute minLength
+PASS Unscopable handled correctly for minLength property on HTMLInputElement
 PASS HTMLInputElement interface: attribute multiple
+PASS Unscopable handled correctly for multiple property on HTMLInputElement
 PASS HTMLInputElement interface: attribute name
+PASS Unscopable handled correctly for name property on HTMLInputElement
 PASS HTMLInputElement interface: attribute pattern
+PASS Unscopable handled correctly for pattern property on HTMLInputElement
 PASS HTMLInputElement interface: attribute placeholder
+PASS Unscopable handled correctly for placeholder property on HTMLInputElement
 PASS HTMLInputElement interface: attribute readOnly
+PASS Unscopable handled correctly for readOnly property on HTMLInputElement
 PASS HTMLInputElement interface: attribute required
+PASS Unscopable handled correctly for required property on HTMLInputElement
 PASS HTMLInputElement interface: attribute size
+PASS Unscopable handled correctly for size property on HTMLInputElement
 PASS HTMLInputElement interface: attribute src
+PASS Unscopable handled correctly for src property on HTMLInputElement
 PASS HTMLInputElement interface: attribute step
+PASS Unscopable handled correctly for step property on HTMLInputElement
 PASS HTMLInputElement interface: attribute type
+PASS Unscopable handled correctly for type property on HTMLInputElement
 PASS HTMLInputElement interface: attribute defaultValue
+PASS Unscopable handled correctly for defaultValue property on HTMLInputElement
 PASS HTMLInputElement interface: attribute value
+PASS Unscopable handled correctly for value property on HTMLInputElement
 PASS HTMLInputElement interface: attribute valueAsDate
+PASS Unscopable handled correctly for valueAsDate property on HTMLInputElement
 PASS HTMLInputElement interface: attribute valueAsNumber
+PASS Unscopable handled correctly for valueAsNumber property on HTMLInputElement
 PASS HTMLInputElement interface: attribute width
+PASS Unscopable handled correctly for width property on HTMLInputElement
 PASS HTMLInputElement interface: operation stepUp(long)
+PASS Unscopable handled correctly for stepUp(long) on HTMLInputElement
 PASS HTMLInputElement interface: operation stepDown(long)
+PASS Unscopable handled correctly for stepDown(long) on HTMLInputElement
 PASS HTMLInputElement interface: attribute willValidate
+PASS Unscopable handled correctly for willValidate property on HTMLInputElement
 PASS HTMLInputElement interface: attribute validity
+PASS Unscopable handled correctly for validity property on HTMLInputElement
 PASS HTMLInputElement interface: attribute validationMessage
+PASS Unscopable handled correctly for validationMessage property on HTMLInputElement
 PASS HTMLInputElement interface: operation checkValidity()
+PASS Unscopable handled correctly for checkValidity() on HTMLInputElement
 PASS HTMLInputElement interface: operation reportValidity()
+PASS Unscopable handled correctly for reportValidity() on HTMLInputElement
 PASS HTMLInputElement interface: operation setCustomValidity(DOMString)
+PASS Unscopable handled correctly for setCustomValidity(DOMString) on HTMLInputElement
 PASS HTMLInputElement interface: attribute labels
+PASS Unscopable handled correctly for labels property on HTMLInputElement
 PASS HTMLInputElement interface: operation select()
+PASS Unscopable handled correctly for select() on HTMLInputElement
 PASS HTMLInputElement interface: attribute selectionStart
+PASS Unscopable handled correctly for selectionStart property on HTMLInputElement
 PASS HTMLInputElement interface: attribute selectionEnd
+PASS Unscopable handled correctly for selectionEnd property on HTMLInputElement
 PASS HTMLInputElement interface: attribute selectionDirection
+PASS Unscopable handled correctly for selectionDirection property on HTMLInputElement
 PASS HTMLInputElement interface: operation setRangeText(DOMString)
+PASS Unscopable handled correctly for setRangeText(DOMString) on HTMLInputElement
 PASS HTMLInputElement interface: operation setRangeText(DOMString, unsigned long, unsigned long, SelectionMode)
+PASS Unscopable handled correctly for setRangeText(DOMString, unsigned long, unsigned long, SelectionMode) on HTMLInputElement
 PASS HTMLInputElement interface: operation setSelectionRange(unsigned long, unsigned long, DOMString)
+PASS Unscopable handled correctly for setSelectionRange(unsigned long, unsigned long, DOMString) on HTMLInputElement
 PASS HTMLInputElement interface: attribute align
+PASS Unscopable handled correctly for align property on HTMLInputElement
 PASS HTMLInputElement interface: attribute useMap
+PASS Unscopable handled correctly for useMap property on HTMLInputElement
 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
@@ -3576,24 +4288,43 @@
 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 autofocus
+PASS Unscopable handled correctly for autofocus property on HTMLButtonElement
 PASS HTMLButtonElement interface: attribute disabled
+PASS Unscopable handled correctly for disabled property on HTMLButtonElement
 PASS HTMLButtonElement interface: attribute form
+PASS Unscopable handled correctly for form property on HTMLButtonElement
 PASS HTMLButtonElement interface: attribute formAction
+PASS Unscopable handled correctly for formAction property on HTMLButtonElement
 PASS HTMLButtonElement interface: attribute formEnctype
+PASS Unscopable handled correctly for formEnctype property on HTMLButtonElement
 PASS HTMLButtonElement interface: attribute formMethod
+PASS Unscopable handled correctly for formMethod property on HTMLButtonElement
 PASS HTMLButtonElement interface: attribute formNoValidate
+PASS Unscopable handled correctly for formNoValidate property on HTMLButtonElement
 PASS HTMLButtonElement interface: attribute formTarget
+PASS Unscopable handled correctly for formTarget property on HTMLButtonElement
 PASS HTMLButtonElement interface: attribute name
+PASS Unscopable handled correctly for name property on HTMLButtonElement
 PASS HTMLButtonElement interface: attribute type
+PASS Unscopable handled correctly for type property on HTMLButtonElement
 PASS HTMLButtonElement interface: attribute value
+PASS Unscopable handled correctly for value property on HTMLButtonElement
 PASS HTMLButtonElement interface: attribute willValidate
+PASS Unscopable handled correctly for willValidate property on HTMLButtonElement
 PASS HTMLButtonElement interface: attribute validity
+PASS Unscopable handled correctly for validity property on HTMLButtonElement
 PASS HTMLButtonElement interface: attribute validationMessage
+PASS Unscopable handled correctly for validationMessage property on HTMLButtonElement
 PASS HTMLButtonElement interface: operation checkValidity()
+PASS Unscopable handled correctly for checkValidity() on HTMLButtonElement
 PASS HTMLButtonElement interface: operation reportValidity()
+PASS Unscopable handled correctly for reportValidity() on HTMLButtonElement
 PASS HTMLButtonElement interface: operation setCustomValidity(DOMString)
+PASS Unscopable handled correctly for setCustomValidity(DOMString) on HTMLButtonElement
 PASS HTMLButtonElement interface: attribute labels
+PASS Unscopable handled correctly for labels property on HTMLButtonElement
 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 "autofocus" with the proper type
@@ -3620,32 +4351,59 @@
 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 Unscopable handled correctly for autocomplete property on HTMLSelectElement
 PASS HTMLSelectElement interface: attribute autofocus
+PASS Unscopable handled correctly for autofocus property on HTMLSelectElement
 PASS HTMLSelectElement interface: attribute disabled
+PASS Unscopable handled correctly for disabled property on HTMLSelectElement
 PASS HTMLSelectElement interface: attribute form
+PASS Unscopable handled correctly for form property on HTMLSelectElement
 PASS HTMLSelectElement interface: attribute multiple
+PASS Unscopable handled correctly for multiple property on HTMLSelectElement
 PASS HTMLSelectElement interface: attribute name
+PASS Unscopable handled correctly for name property on HTMLSelectElement
 PASS HTMLSelectElement interface: attribute required
+PASS Unscopable handled correctly for required property on HTMLSelectElement
 PASS HTMLSelectElement interface: attribute size
+PASS Unscopable handled correctly for size property on HTMLSelectElement
 PASS HTMLSelectElement interface: attribute type
+PASS Unscopable handled correctly for type property on HTMLSelectElement
 PASS HTMLSelectElement interface: attribute options
+PASS Unscopable handled correctly for options property on HTMLSelectElement
 PASS HTMLSelectElement interface: attribute length
+PASS Unscopable handled correctly for length property on HTMLSelectElement
 PASS HTMLSelectElement interface: operation item(unsigned long)
+PASS Unscopable handled correctly for item(unsigned long) on HTMLSelectElement
 PASS HTMLSelectElement interface: operation namedItem(DOMString)
+PASS Unscopable handled correctly for namedItem(DOMString) on HTMLSelectElement
 PASS HTMLSelectElement interface: operation add([object Object],[object Object], [object Object],[object Object])
+PASS Unscopable handled correctly for add([object Object],[object Object], [object Object],[object Object]) on HTMLSelectElement
 PASS HTMLSelectElement interface: operation remove()
+PASS Unscopable handled correctly for remove() on HTMLSelectElement
 PASS HTMLSelectElement interface: operation remove(long)
+PASS Unscopable handled correctly for remove(long) on HTMLSelectElement
 PASS HTMLSelectElement interface: attribute selectedOptions
+PASS Unscopable handled correctly for selectedOptions property on HTMLSelectElement
 PASS HTMLSelectElement interface: attribute selectedIndex
+PASS Unscopable handled correctly for selectedIndex property on HTMLSelectElement
 PASS HTMLSelectElement interface: attribute value
+PASS Unscopable handled correctly for value property on HTMLSelectElement
 PASS HTMLSelectElement interface: attribute willValidate
+PASS Unscopable handled correctly for willValidate property on HTMLSelectElement
 PASS HTMLSelectElement interface: attribute validity
+PASS Unscopable handled correctly for validity property on HTMLSelectElement
 PASS HTMLSelectElement interface: attribute validationMessage
+PASS Unscopable handled correctly for validationMessage property on HTMLSelectElement
 PASS HTMLSelectElement interface: operation checkValidity()
+PASS Unscopable handled correctly for checkValidity() on HTMLSelectElement
 PASS HTMLSelectElement interface: operation reportValidity()
+PASS Unscopable handled correctly for reportValidity() on HTMLSelectElement
 PASS HTMLSelectElement interface: operation setCustomValidity(DOMString)
+PASS Unscopable handled correctly for setCustomValidity(DOMString) on HTMLSelectElement
 PASS HTMLSelectElement interface: attribute labels
+PASS Unscopable handled correctly for labels property on HTMLSelectElement
 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
@@ -3684,7 +4442,9 @@
 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 Unscopable handled correctly for options property on HTMLDataListElement
 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
@@ -3693,8 +4453,11 @@
 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 Unscopable handled correctly for disabled property on HTMLOptGroupElement
 PASS HTMLOptGroupElement interface: attribute label
+PASS Unscopable handled correctly for label property on HTMLOptGroupElement
 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
@@ -3704,14 +4467,23 @@
 PASS HTMLOptionElement interface object name
 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 Unscopable handled correctly for disabled property on HTMLOptionElement
 PASS HTMLOptionElement interface: attribute form
+PASS Unscopable handled correctly for form property on HTMLOptionElement
 PASS HTMLOptionElement interface: attribute label
+PASS Unscopable handled correctly for label property on HTMLOptionElement
 PASS HTMLOptionElement interface: attribute defaultSelected
+PASS Unscopable handled correctly for defaultSelected property on HTMLOptionElement
 PASS HTMLOptionElement interface: attribute selected
+PASS Unscopable handled correctly for selected property on HTMLOptionElement
 PASS HTMLOptionElement interface: attribute value
+PASS Unscopable handled correctly for value property on HTMLOptionElement
 PASS HTMLOptionElement interface: attribute text
+PASS Unscopable handled correctly for text property on HTMLOptionElement
 PASS HTMLOptionElement interface: attribute index
+PASS Unscopable handled correctly for index property on HTMLOptionElement
 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
@@ -3737,38 +4509,71 @@
 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 Unscopable handled correctly for autocomplete property on HTMLTextAreaElement
 PASS HTMLTextAreaElement interface: attribute autofocus
+PASS Unscopable handled correctly for autofocus property on HTMLTextAreaElement
 PASS HTMLTextAreaElement interface: attribute cols
+PASS Unscopable handled correctly for cols property on HTMLTextAreaElement
 PASS HTMLTextAreaElement interface: attribute dirName
+PASS Unscopable handled correctly for dirName property on HTMLTextAreaElement
 PASS HTMLTextAreaElement interface: attribute disabled
+PASS Unscopable handled correctly for disabled property on HTMLTextAreaElement
 PASS HTMLTextAreaElement interface: attribute form
+PASS Unscopable handled correctly for form property on HTMLTextAreaElement
 PASS HTMLTextAreaElement interface: attribute maxLength
+PASS Unscopable handled correctly for maxLength property on HTMLTextAreaElement
 PASS HTMLTextAreaElement interface: attribute minLength
+PASS Unscopable handled correctly for minLength property on HTMLTextAreaElement
 PASS HTMLTextAreaElement interface: attribute name
+PASS Unscopable handled correctly for name property on HTMLTextAreaElement
 PASS HTMLTextAreaElement interface: attribute placeholder
+PASS Unscopable handled correctly for placeholder property on HTMLTextAreaElement
 PASS HTMLTextAreaElement interface: attribute readOnly
+PASS Unscopable handled correctly for readOnly property on HTMLTextAreaElement
 PASS HTMLTextAreaElement interface: attribute required
+PASS Unscopable handled correctly for required property on HTMLTextAreaElement
 PASS HTMLTextAreaElement interface: attribute rows
+PASS Unscopable handled correctly for rows property on HTMLTextAreaElement
 PASS HTMLTextAreaElement interface: attribute wrap
+PASS Unscopable handled correctly for wrap property on HTMLTextAreaElement
 PASS HTMLTextAreaElement interface: attribute type
+PASS Unscopable handled correctly for type property on HTMLTextAreaElement
 PASS HTMLTextAreaElement interface: attribute defaultValue
+PASS Unscopable handled correctly for defaultValue property on HTMLTextAreaElement
 PASS HTMLTextAreaElement interface: attribute value
+PASS Unscopable handled correctly for value property on HTMLTextAreaElement
 PASS HTMLTextAreaElement interface: attribute textLength
+PASS Unscopable handled correctly for textLength property on HTMLTextAreaElement
 PASS HTMLTextAreaElement interface: attribute willValidate
+PASS Unscopable handled correctly for willValidate property on HTMLTextAreaElement
 PASS HTMLTextAreaElement interface: attribute validity
+PASS Unscopable handled correctly for validity property on HTMLTextAreaElement
 PASS HTMLTextAreaElement interface: attribute validationMessage
+PASS Unscopable handled correctly for validationMessage property on HTMLTextAreaElement
 PASS HTMLTextAreaElement interface: operation checkValidity()
+PASS Unscopable handled correctly for checkValidity() on HTMLTextAreaElement
 PASS HTMLTextAreaElement interface: operation reportValidity()
+PASS Unscopable handled correctly for reportValidity() on HTMLTextAreaElement
 PASS HTMLTextAreaElement interface: operation setCustomValidity(DOMString)
+PASS Unscopable handled correctly for setCustomValidity(DOMString) on HTMLTextAreaElement
 PASS HTMLTextAreaElement interface: attribute labels
+PASS Unscopable handled correctly for labels property on HTMLTextAreaElement
 PASS HTMLTextAreaElement interface: operation select()
+PASS Unscopable handled correctly for select() on HTMLTextAreaElement
 PASS HTMLTextAreaElement interface: attribute selectionStart
+PASS Unscopable handled correctly for selectionStart property on HTMLTextAreaElement
 PASS HTMLTextAreaElement interface: attribute selectionEnd
+PASS Unscopable handled correctly for selectionEnd property on HTMLTextAreaElement
 PASS HTMLTextAreaElement interface: attribute selectionDirection
+PASS Unscopable handled correctly for selectionDirection property on HTMLTextAreaElement
 PASS HTMLTextAreaElement interface: operation setRangeText(DOMString)
+PASS Unscopable handled correctly for setRangeText(DOMString) on HTMLTextAreaElement
 PASS HTMLTextAreaElement interface: operation setRangeText(DOMString, unsigned long, unsigned long, SelectionMode)
+PASS Unscopable handled correctly for setRangeText(DOMString, unsigned long, unsigned long, SelectionMode) on HTMLTextAreaElement
 PASS HTMLTextAreaElement interface: operation setSelectionRange(unsigned long, unsigned long, DOMString)
+PASS Unscopable handled correctly for setSelectionRange(unsigned long, unsigned long, DOMString) on HTMLTextAreaElement
 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
@@ -3812,19 +4617,33 @@
 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 Unscopable handled correctly for htmlFor property on HTMLOutputElement
 PASS HTMLOutputElement interface: attribute form
+PASS Unscopable handled correctly for form property on HTMLOutputElement
 PASS HTMLOutputElement interface: attribute name
+PASS Unscopable handled correctly for name property on HTMLOutputElement
 PASS HTMLOutputElement interface: attribute type
+PASS Unscopable handled correctly for type property on HTMLOutputElement
 PASS HTMLOutputElement interface: attribute defaultValue
+PASS Unscopable handled correctly for defaultValue property on HTMLOutputElement
 PASS HTMLOutputElement interface: attribute value
+PASS Unscopable handled correctly for value property on HTMLOutputElement
 PASS HTMLOutputElement interface: attribute willValidate
+PASS Unscopable handled correctly for willValidate property on HTMLOutputElement
 PASS HTMLOutputElement interface: attribute validity
+PASS Unscopable handled correctly for validity property on HTMLOutputElement
 PASS HTMLOutputElement interface: attribute validationMessage
+PASS Unscopable handled correctly for validationMessage property on HTMLOutputElement
 PASS HTMLOutputElement interface: operation checkValidity()
+PASS Unscopable handled correctly for checkValidity() on HTMLOutputElement
 PASS HTMLOutputElement interface: operation reportValidity()
+PASS Unscopable handled correctly for reportValidity() on HTMLOutputElement
 PASS HTMLOutputElement interface: operation setCustomValidity(DOMString)
+PASS Unscopable handled correctly for setCustomValidity(DOMString) on HTMLOutputElement
 PASS HTMLOutputElement interface: attribute labels
+PASS Unscopable handled correctly for labels property on HTMLOutputElement
 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
@@ -3846,10 +4665,15 @@
 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 Unscopable handled correctly for value property on HTMLProgressElement
 PASS HTMLProgressElement interface: attribute max
+PASS Unscopable handled correctly for max property on HTMLProgressElement
 PASS HTMLProgressElement interface: attribute position
+PASS Unscopable handled correctly for position property on HTMLProgressElement
 PASS HTMLProgressElement interface: attribute labels
+PASS Unscopable handled correctly for labels property on HTMLProgressElement
 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
@@ -3861,13 +4685,21 @@
 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 Unscopable handled correctly for value property on HTMLMeterElement
 PASS HTMLMeterElement interface: attribute min
+PASS Unscopable handled correctly for min property on HTMLMeterElement
 PASS HTMLMeterElement interface: attribute max
+PASS Unscopable handled correctly for max property on HTMLMeterElement
 PASS HTMLMeterElement interface: attribute low
+PASS Unscopable handled correctly for low property on HTMLMeterElement
 PASS HTMLMeterElement interface: attribute high
+PASS Unscopable handled correctly for high property on HTMLMeterElement
 PASS HTMLMeterElement interface: attribute optimum
+PASS Unscopable handled correctly for optimum property on HTMLMeterElement
 PASS HTMLMeterElement interface: attribute labels
+PASS Unscopable handled correctly for labels property on HTMLMeterElement
 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
@@ -3882,24 +4714,39 @@
 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 Unscopable handled correctly for disabled property on HTMLFieldSetElement
 PASS HTMLFieldSetElement interface: attribute form
+PASS Unscopable handled correctly for form property on HTMLFieldSetElement
 PASS HTMLFieldSetElement interface: attribute name
+PASS Unscopable handled correctly for name property on HTMLFieldSetElement
 PASS HTMLFieldSetElement interface: attribute type
+PASS Unscopable handled correctly for type property on HTMLFieldSetElement
 PASS HTMLFieldSetElement interface: attribute elements
+PASS Unscopable handled correctly for elements property on HTMLFieldSetElement
 PASS HTMLFieldSetElement interface: attribute willValidate
+PASS Unscopable handled correctly for willValidate property on HTMLFieldSetElement
 PASS HTMLFieldSetElement interface: attribute validity
+PASS Unscopable handled correctly for validity property on HTMLFieldSetElement
 PASS HTMLFieldSetElement interface: attribute validationMessage
+PASS Unscopable handled correctly for validationMessage property on HTMLFieldSetElement
 PASS HTMLFieldSetElement interface: operation checkValidity()
+PASS Unscopable handled correctly for checkValidity() on HTMLFieldSetElement
 PASS HTMLFieldSetElement interface: operation reportValidity()
+PASS Unscopable handled correctly for reportValidity() on HTMLFieldSetElement
 PASS HTMLFieldSetElement interface: operation setCustomValidity(DOMString)
+PASS Unscopable handled correctly for setCustomValidity(DOMString) on HTMLFieldSetElement
 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 Unscopable handled correctly for form property on HTMLLegendElement
 PASS HTMLLegendElement interface: attribute align
+PASS Unscopable handled correctly for align property on HTMLLegendElement
 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
@@ -3909,17 +4756,29 @@
 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 Unscopable handled correctly for valueMissing property on ValidityState
 PASS ValidityState interface: attribute typeMismatch
+PASS Unscopable handled correctly for typeMismatch property on ValidityState
 PASS ValidityState interface: attribute patternMismatch
+PASS Unscopable handled correctly for patternMismatch property on ValidityState
 PASS ValidityState interface: attribute tooLong
+PASS Unscopable handled correctly for tooLong property on ValidityState
 PASS ValidityState interface: attribute tooShort
+PASS Unscopable handled correctly for tooShort property on ValidityState
 PASS ValidityState interface: attribute rangeUnderflow
+PASS Unscopable handled correctly for rangeUnderflow property on ValidityState
 PASS ValidityState interface: attribute rangeOverflow
+PASS Unscopable handled correctly for rangeOverflow property on ValidityState
 PASS ValidityState interface: attribute stepMismatch
+PASS Unscopable handled correctly for stepMismatch property on ValidityState
 PASS ValidityState interface: attribute badInput
+PASS Unscopable handled correctly for badInput property on ValidityState
 PASS ValidityState interface: attribute customError
+PASS Unscopable handled correctly for customError property on ValidityState
 PASS ValidityState interface: attribute valid
+PASS Unscopable handled correctly for valid property on ValidityState
 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
@@ -3938,7 +4797,9 @@
 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 Unscopable handled correctly for open property on HTMLDetailsElement
 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
@@ -3947,28 +4808,47 @@
 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 Unscopable handled correctly for open property on HTMLDialogElement
 PASS HTMLDialogElement interface: attribute returnValue
+PASS Unscopable handled correctly for returnValue property on HTMLDialogElement
 PASS HTMLDialogElement interface: operation show()
+PASS Unscopable handled correctly for show() on HTMLDialogElement
 PASS HTMLDialogElement interface: operation showModal()
+PASS Unscopable handled correctly for showModal() on HTMLDialogElement
 PASS HTMLDialogElement interface: operation close(DOMString)
+PASS Unscopable handled correctly for close(DOMString) on HTMLDialogElement
 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 Unscopable handled correctly for src property on HTMLScriptElement
 PASS HTMLScriptElement interface: attribute type
+PASS Unscopable handled correctly for type property on HTMLScriptElement
 PASS HTMLScriptElement interface: attribute noModule
+PASS Unscopable handled correctly for noModule property on HTMLScriptElement
 PASS HTMLScriptElement interface: attribute async
+PASS Unscopable handled correctly for async property on HTMLScriptElement
 PASS HTMLScriptElement interface: attribute defer
+PASS Unscopable handled correctly for defer property on HTMLScriptElement
 PASS HTMLScriptElement interface: attribute crossOrigin
+PASS Unscopable handled correctly for crossOrigin property on HTMLScriptElement
 PASS HTMLScriptElement interface: attribute text
+PASS Unscopable handled correctly for text property on HTMLScriptElement
 FAIL HTMLScriptElement interface: attribute nonce assert_own_property: expected property "nonce" missing
+PASS Unscopable handled correctly for nonce property on HTMLScriptElement
 PASS HTMLScriptElement interface: attribute integrity
+PASS Unscopable handled correctly for integrity property on HTMLScriptElement
 PASS HTMLScriptElement interface: attribute charset
+PASS Unscopable handled correctly for charset property on HTMLScriptElement
 PASS HTMLScriptElement interface: attribute event
+PASS Unscopable handled correctly for event property on HTMLScriptElement
 PASS HTMLScriptElement interface: attribute htmlFor
+PASS Unscopable handled correctly for htmlFor property on HTMLScriptElement
 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
@@ -3988,7 +4868,9 @@
 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 Unscopable handled correctly for content property on HTMLTemplateElement
 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
@@ -3997,9 +4879,13 @@
 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 Unscopable handled correctly for name property on HTMLSlotElement
 PASS HTMLSlotElement interface: operation assignedNodes(AssignedNodesOptions)
+PASS Unscopable handled correctly for assignedNodes(AssignedNodesOptions) on HTMLSlotElement
 PASS HTMLSlotElement interface: operation assignedElements(AssignedNodesOptions)
+PASS Unscopable handled correctly for assignedElements(AssignedNodesOptions) on HTMLSlotElement
 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
@@ -4012,12 +4898,19 @@
 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 Unscopable handled correctly for width property on HTMLCanvasElement
 PASS HTMLCanvasElement interface: attribute height
+PASS Unscopable handled correctly for height property on HTMLCanvasElement
 PASS HTMLCanvasElement interface: operation getContext(DOMString, any)
+PASS Unscopable handled correctly for getContext(DOMString, any) on HTMLCanvasElement
 PASS HTMLCanvasElement interface: operation toDataURL(DOMString, any)
+PASS Unscopable handled correctly for toDataURL(DOMString, any) on HTMLCanvasElement
 PASS HTMLCanvasElement interface: operation toBlob(BlobCallback, DOMString, any)
+PASS Unscopable handled correctly for toBlob(BlobCallback, DOMString, any) on HTMLCanvasElement
 PASS HTMLCanvasElement interface: operation transferControlToOffscreen()
+PASS Unscopable handled correctly for transferControlToOffscreen() on HTMLCanvasElement
 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
@@ -4034,81 +4927,157 @@
 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 Unscopable handled correctly for canvas property on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: operation save()
+PASS Unscopable handled correctly for save() on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: operation restore()
+PASS Unscopable handled correctly for restore() on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: operation scale(unrestricted double, unrestricted double)
+PASS Unscopable handled correctly for scale(unrestricted double, unrestricted double) on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: operation rotate(unrestricted double)
+PASS Unscopable handled correctly for rotate(unrestricted double) on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: operation translate(unrestricted double, unrestricted double)
+PASS Unscopable handled correctly for translate(unrestricted double, unrestricted double) on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: operation transform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
+PASS Unscopable handled correctly for transform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on CanvasRenderingContext2D
 FAIL CanvasRenderingContext2D interface: operation getTransform() assert_own_property: interface prototype object missing non-static operation expected property "getTransform" missing
+PASS Unscopable handled correctly for getTransform() on CanvasRenderingContext2D
 FAIL CanvasRenderingContext2D interface: operation setTransform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) assert_equals: property has wrong .length expected 0 but got 6
+PASS Unscopable handled correctly for setTransform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on CanvasRenderingContext2D
 FAIL CanvasRenderingContext2D interface: operation setTransform(DOMMatrix2DInit) assert_equals: property has wrong .length expected 0 but got 6
+PASS Unscopable handled correctly for setTransform(DOMMatrix2DInit) on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: operation resetTransform()
+PASS Unscopable handled correctly for resetTransform() on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: attribute globalAlpha
+PASS Unscopable handled correctly for globalAlpha property on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: attribute globalCompositeOperation
+PASS Unscopable handled correctly for globalCompositeOperation property on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: attribute imageSmoothingEnabled
+PASS Unscopable handled correctly for imageSmoothingEnabled property on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: attribute imageSmoothingQuality
+PASS Unscopable handled correctly for imageSmoothingQuality property on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: attribute strokeStyle
+PASS Unscopable handled correctly for strokeStyle property on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: attribute fillStyle
+PASS Unscopable handled correctly for fillStyle property on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: operation createLinearGradient(double, double, double, double)
+PASS Unscopable handled correctly for createLinearGradient(double, double, double, double) on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: operation createRadialGradient(double, double, double, double, double, double)
+PASS Unscopable handled correctly for createRadialGradient(double, double, double, double, double, double) on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: operation createPattern(CanvasImageSource, DOMString)
+PASS Unscopable handled correctly for createPattern(CanvasImageSource, DOMString) on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: attribute shadowOffsetX
+PASS Unscopable handled correctly for shadowOffsetX property on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: attribute shadowOffsetY
+PASS Unscopable handled correctly for shadowOffsetY property on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: attribute shadowBlur
+PASS Unscopable handled correctly for shadowBlur property on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: attribute shadowColor
+PASS Unscopable handled correctly for shadowColor property on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: attribute filter
+PASS Unscopable handled correctly for filter property on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: operation clearRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
+PASS Unscopable handled correctly for clearRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: operation fillRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
+PASS Unscopable handled correctly for fillRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: operation strokeRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
+PASS Unscopable handled correctly for strokeRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: operation beginPath()
+PASS Unscopable handled correctly for beginPath() on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: operation fill(CanvasFillRule)
+PASS Unscopable handled correctly for fill(CanvasFillRule) on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: operation fill(Path2D, CanvasFillRule)
+PASS Unscopable handled correctly for fill(Path2D, CanvasFillRule) on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: operation stroke()
+PASS Unscopable handled correctly for stroke() on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: operation stroke(Path2D)
+PASS Unscopable handled correctly for stroke(Path2D) on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: operation clip(CanvasFillRule)
+PASS Unscopable handled correctly for clip(CanvasFillRule) on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: operation clip(Path2D, CanvasFillRule)
+PASS Unscopable handled correctly for clip(Path2D, CanvasFillRule) on CanvasRenderingContext2D
 FAIL CanvasRenderingContext2D interface: operation resetClip() assert_own_property: interface prototype object missing non-static operation expected property "resetClip" missing
+PASS Unscopable handled correctly for resetClip() on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: operation isPointInPath(unrestricted double, unrestricted double, CanvasFillRule)
+PASS Unscopable handled correctly for isPointInPath(unrestricted double, unrestricted double, CanvasFillRule) on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: operation isPointInPath(Path2D, unrestricted double, unrestricted double, CanvasFillRule)
+PASS Unscopable handled correctly for isPointInPath(Path2D, unrestricted double, unrestricted double, CanvasFillRule) on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: operation isPointInStroke(unrestricted double, unrestricted double)
+PASS Unscopable handled correctly for isPointInStroke(unrestricted double, unrestricted double) on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: operation isPointInStroke(Path2D, unrestricted double, unrestricted double)
+PASS Unscopable handled correctly for isPointInStroke(Path2D, unrestricted double, unrestricted double) on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: operation drawFocusIfNeeded(Element)
+PASS Unscopable handled correctly for drawFocusIfNeeded(Element) on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: operation drawFocusIfNeeded(Path2D, Element)
+PASS Unscopable handled correctly for drawFocusIfNeeded(Path2D, Element) on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: operation scrollPathIntoView()
+PASS Unscopable handled correctly for scrollPathIntoView() on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: operation scrollPathIntoView(Path2D)
+PASS Unscopable handled correctly for scrollPathIntoView(Path2D) on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: operation fillText(DOMString, unrestricted double, unrestricted double, unrestricted double)
+PASS Unscopable handled correctly for fillText(DOMString, unrestricted double, unrestricted double, unrestricted double) on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: operation strokeText(DOMString, unrestricted double, unrestricted double, unrestricted double)
+PASS Unscopable handled correctly for strokeText(DOMString, unrestricted double, unrestricted double, unrestricted double) on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: operation measureText(DOMString)
+PASS Unscopable handled correctly for measureText(DOMString) on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: operation drawImage(CanvasImageSource, unrestricted double, unrestricted double)
+PASS Unscopable handled correctly for drawImage(CanvasImageSource, unrestricted double, unrestricted double) on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: operation drawImage(CanvasImageSource, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
+PASS Unscopable handled correctly for drawImage(CanvasImageSource, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: operation drawImage(CanvasImageSource, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
+PASS Unscopable handled correctly for drawImage(CanvasImageSource, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: operation createImageData(long, long)
+PASS Unscopable handled correctly for createImageData(long, long) on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: operation createImageData(ImageData)
+PASS Unscopable handled correctly for createImageData(ImageData) on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: operation getImageData(long, long, long, long)
+PASS Unscopable handled correctly for getImageData(long, long, long, long) on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: operation putImageData(ImageData, long, long)
+PASS Unscopable handled correctly for putImageData(ImageData, long, long) on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: operation putImageData(ImageData, long, long, long, long, long, long)
+PASS Unscopable handled correctly for putImageData(ImageData, long, long, long, long, long, long) on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: attribute lineWidth
+PASS Unscopable handled correctly for lineWidth property on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: attribute lineCap
+PASS Unscopable handled correctly for lineCap property on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: attribute lineJoin
+PASS Unscopable handled correctly for lineJoin property on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: attribute miterLimit
+PASS Unscopable handled correctly for miterLimit property on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: operation setLineDash([object Object])
+PASS Unscopable handled correctly for setLineDash([object Object]) on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: operation getLineDash()
+PASS Unscopable handled correctly for getLineDash() on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: attribute lineDashOffset
+PASS Unscopable handled correctly for lineDashOffset property on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: attribute font
+PASS Unscopable handled correctly for font property on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: attribute textAlign
+PASS Unscopable handled correctly for textAlign property on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: attribute textBaseline
+PASS Unscopable handled correctly for textBaseline property on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: attribute direction
+PASS Unscopable handled correctly for direction property on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: operation closePath()
+PASS Unscopable handled correctly for closePath() on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: operation moveTo(unrestricted double, unrestricted double)
+PASS Unscopable handled correctly for moveTo(unrestricted double, unrestricted double) on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: operation lineTo(unrestricted double, unrestricted double)
+PASS Unscopable handled correctly for lineTo(unrestricted double, unrestricted double) on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: operation quadraticCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
+PASS Unscopable handled correctly for quadraticCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: operation bezierCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
+PASS Unscopable handled correctly for bezierCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: operation arcTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
+PASS Unscopable handled correctly for arcTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: operation rect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
+PASS Unscopable handled correctly for rect(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: operation arc(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, boolean)
+PASS Unscopable handled correctly for arc(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, boolean) on CanvasRenderingContext2D
 PASS CanvasRenderingContext2D interface: operation ellipse(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, boolean)
+PASS Unscopable handled correctly for ellipse(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, boolean) on CanvasRenderingContext2D
 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
@@ -4235,189 +5204,323 @@
 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 Unscopable handled correctly for addColorStop(double, DOMString) on CanvasGradient
 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
 FAIL CanvasPattern interface: operation setTransform(DOMMatrix2DInit) assert_equals: property has wrong .length expected 0 but got 1
+PASS Unscopable handled correctly for setTransform(DOMMatrix2DInit) on CanvasPattern
 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 Unscopable handled correctly for width property on TextMetrics
 PASS TextMetrics interface: attribute actualBoundingBoxLeft
+PASS Unscopable handled correctly for actualBoundingBoxLeft property on TextMetrics
 PASS TextMetrics interface: attribute actualBoundingBoxRight
+PASS Unscopable handled correctly for actualBoundingBoxRight property on TextMetrics
 PASS TextMetrics interface: attribute fontBoundingBoxAscent
+PASS Unscopable handled correctly for fontBoundingBoxAscent property on TextMetrics
 PASS TextMetrics interface: attribute fontBoundingBoxDescent
+PASS Unscopable handled correctly for fontBoundingBoxDescent property on TextMetrics
 PASS TextMetrics interface: attribute actualBoundingBoxAscent
+PASS Unscopable handled correctly for actualBoundingBoxAscent property on TextMetrics
 PASS TextMetrics interface: attribute actualBoundingBoxDescent
+PASS Unscopable handled correctly for actualBoundingBoxDescent property on TextMetrics
 PASS TextMetrics interface: attribute emHeightAscent
+PASS Unscopable handled correctly for emHeightAscent property on TextMetrics
 PASS TextMetrics interface: attribute emHeightDescent
+PASS Unscopable handled correctly for emHeightDescent property on TextMetrics
 PASS TextMetrics interface: attribute hangingBaseline
+PASS Unscopable handled correctly for hangingBaseline property on TextMetrics
 PASS TextMetrics interface: attribute alphabeticBaseline
+PASS Unscopable handled correctly for alphabeticBaseline property on TextMetrics
 PASS TextMetrics interface: attribute ideographicBaseline
+PASS Unscopable handled correctly for ideographicBaseline property on TextMetrics
 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 Unscopable handled correctly for width property on ImageData
 PASS ImageData interface: attribute height
+PASS Unscopable handled correctly for height property on ImageData
 PASS ImageData interface: attribute data
+PASS Unscopable handled correctly for data property on ImageData
 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, DOMMatrix2DInit)
+PASS Unscopable handled correctly for addPath(Path2D, DOMMatrix2DInit) on Path2D
 PASS Path2D interface: operation closePath()
+PASS Unscopable handled correctly for closePath() on Path2D
 PASS Path2D interface: operation moveTo(unrestricted double, unrestricted double)
+PASS Unscopable handled correctly for moveTo(unrestricted double, unrestricted double) on Path2D
 PASS Path2D interface: operation lineTo(unrestricted double, unrestricted double)
+PASS Unscopable handled correctly for lineTo(unrestricted double, unrestricted double) on Path2D
 PASS Path2D interface: operation quadraticCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
+PASS Unscopable handled correctly for quadraticCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on Path2D
 PASS Path2D interface: operation bezierCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
+PASS Unscopable handled correctly for bezierCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on Path2D
 PASS Path2D interface: operation arcTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
+PASS Unscopable handled correctly for arcTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on Path2D
 PASS Path2D interface: operation rect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
+PASS Unscopable handled correctly for rect(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on Path2D
 PASS Path2D interface: operation arc(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, boolean)
+PASS Unscopable handled correctly for arc(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, boolean) on Path2D
 PASS Path2D interface: operation ellipse(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, boolean)
+PASS Unscopable handled correctly for ellipse(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, boolean) on Path2D
 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 Unscopable handled correctly for canvas property on ImageBitmapRenderingContext
 PASS ImageBitmapRenderingContext interface: operation transferFromImageBitmap(ImageBitmap)
+PASS Unscopable handled correctly for transferFromImageBitmap(ImageBitmap) on ImageBitmapRenderingContext
 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 Unscopable handled correctly for width property on OffscreenCanvas
 PASS OffscreenCanvas interface: attribute height
+PASS Unscopable handled correctly for height property on OffscreenCanvas
 PASS OffscreenCanvas interface: operation getContext(OffscreenRenderingContextId, any)
+PASS Unscopable handled correctly for getContext(OffscreenRenderingContextId, any) on OffscreenCanvas
 PASS OffscreenCanvas interface: operation transferToImageBitmap()
+PASS Unscopable handled correctly for transferToImageBitmap() on OffscreenCanvas
 PASS OffscreenCanvas interface: operation convertToBlob(ImageEncodeOptions)
+PASS Unscopable handled correctly for convertToBlob(ImageEncodeOptions) on OffscreenCanvas
 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
 FAIL OffscreenCanvasRenderingContext2D interface: operation commit() assert_throws: calling operation with this = null didn't throw TypeError function "function() {
             fn.apply(obj, args);
         }" did not throw
+PASS Unscopable handled correctly for commit() on OffscreenCanvasRenderingContext2D
 PASS OffscreenCanvasRenderingContext2D interface: attribute canvas
+PASS Unscopable handled correctly for canvas property on OffscreenCanvasRenderingContext2D
 PASS OffscreenCanvasRenderingContext2D interface: operation save()
+PASS Unscopable handled correctly for save() on OffscreenCanvasRenderingContext2D
 PASS OffscreenCanvasRenderingContext2D interface: operation restore()
+PASS Unscopable handled correctly for restore() on OffscreenCanvasRenderingContext2D
 PASS OffscreenCanvasRenderingContext2D interface: operation scale(unrestricted double, unrestricted double)
+PASS Unscopable handled correctly for scale(unrestricted double, unrestricted double) on OffscreenCanvasRenderingContext2D
 PASS OffscreenCanvasRenderingContext2D interface: operation rotate(unrestricted double)
+PASS Unscopable handled correctly for rotate(unrestricted double) on OffscreenCanvasRenderingContext2D
 PASS OffscreenCanvasRenderingContext2D interface: operation translate(unrestricted double, unrestricted double)
+PASS Unscopable handled correctly for translate(unrestricted double, unrestricted double) on OffscreenCanvasRenderingContext2D
 PASS OffscreenCanvasRenderingContext2D interface: operation transform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
+PASS Unscopable handled correctly for transform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on OffscreenCanvasRenderingContext2D
 FAIL OffscreenCanvasRenderingContext2D interface: operation getTransform() assert_own_property: interface prototype object missing non-static operation expected property "getTransform" missing
+PASS Unscopable handled correctly for getTransform() on OffscreenCanvasRenderingContext2D
 FAIL OffscreenCanvasRenderingContext2D interface: operation setTransform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) assert_equals: property has wrong .length expected 0 but got 6
+PASS Unscopable handled correctly for setTransform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on OffscreenCanvasRenderingContext2D
 FAIL OffscreenCanvasRenderingContext2D interface: operation setTransform(DOMMatrix2DInit) assert_equals: property has wrong .length expected 0 but got 6
+PASS Unscopable handled correctly for setTransform(DOMMatrix2DInit) on OffscreenCanvasRenderingContext2D
 PASS OffscreenCanvasRenderingContext2D interface: operation resetTransform()
+PASS Unscopable handled correctly for resetTransform() on OffscreenCanvasRenderingContext2D
 PASS OffscreenCanvasRenderingContext2D interface: attribute globalAlpha
+PASS Unscopable handled correctly for globalAlpha property on OffscreenCanvasRenderingContext2D
 PASS OffscreenCanvasRenderingContext2D interface: attribute globalCompositeOperation
+PASS Unscopable handled correctly for globalCompositeOperation property on OffscreenCanvasRenderingContext2D
 PASS OffscreenCanvasRenderingContext2D interface: attribute imageSmoothingEnabled
+PASS Unscopable handled correctly for imageSmoothingEnabled property on OffscreenCanvasRenderingContext2D
 PASS OffscreenCanvasRenderingContext2D interface: attribute imageSmoothingQuality
+PASS Unscopable handled correctly for imageSmoothingQuality property on OffscreenCanvasRenderingContext2D
 PASS OffscreenCanvasRenderingContext2D interface: attribute strokeStyle
+PASS Unscopable handled correctly for strokeStyle property on OffscreenCanvasRenderingContext2D
 PASS OffscreenCanvasRenderingContext2D interface: attribute fillStyle
+PASS Unscopable handled correctly for fillStyle property on OffscreenCanvasRenderingContext2D
 PASS OffscreenCanvasRenderingContext2D interface: operation createLinearGradient(double, double, double, double)
+PASS Unscopable handled correctly for createLinearGradient(double, double, double, double) on OffscreenCanvasRenderingContext2D
 PASS OffscreenCanvasRenderingContext2D interface: operation createRadialGradient(double, double, double, double, double, double)
+PASS Unscopable handled correctly for createRadialGradient(double, double, double, double, double, double) on OffscreenCanvasRenderingContext2D
 PASS OffscreenCanvasRenderingContext2D interface: operation createPattern(CanvasImageSource, DOMString)
+PASS Unscopable handled correctly for createPattern(CanvasImageSource, DOMString) on OffscreenCanvasRenderingContext2D
 PASS OffscreenCanvasRenderingContext2D interface: attribute shadowOffsetX
+PASS Unscopable handled correctly for shadowOffsetX property on OffscreenCanvasRenderingContext2D
 PASS OffscreenCanvasRenderingContext2D interface: attribute shadowOffsetY
+PASS Unscopable handled correctly for shadowOffsetY property on OffscreenCanvasRenderingContext2D
 PASS OffscreenCanvasRenderingContext2D interface: attribute shadowBlur
+PASS Unscopable handled correctly for shadowBlur property on OffscreenCanvasRenderingContext2D
 PASS OffscreenCanvasRenderingContext2D interface: attribute shadowColor
+PASS Unscopable handled correctly for shadowColor property on OffscreenCanvasRenderingContext2D
 PASS OffscreenCanvasRenderingContext2D interface: attribute filter
+PASS Unscopable handled correctly for filter property on OffscreenCanvasRenderingContext2D
 PASS OffscreenCanvasRenderingContext2D interface: operation clearRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
+PASS Unscopable handled correctly for clearRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on OffscreenCanvasRenderingContext2D
 PASS OffscreenCanvasRenderingContext2D interface: operation fillRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
+PASS Unscopable handled correctly for fillRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on OffscreenCanvasRenderingContext2D
 PASS OffscreenCanvasRenderingContext2D interface: operation strokeRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
+PASS Unscopable handled correctly for strokeRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on OffscreenCanvasRenderingContext2D
 PASS OffscreenCanvasRenderingContext2D interface: operation beginPath()
+PASS Unscopable handled correctly for beginPath() on OffscreenCanvasRenderingContext2D
 PASS OffscreenCanvasRenderingContext2D interface: operation fill(CanvasFillRule)
+PASS Unscopable handled correctly for fill(CanvasFillRule) on OffscreenCanvasRenderingContext2D
 PASS OffscreenCanvasRenderingContext2D interface: operation fill(Path2D, CanvasFillRule)
+PASS Unscopable handled correctly for fill(Path2D, CanvasFillRule) on OffscreenCanvasRenderingContext2D
 PASS OffscreenCanvasRenderingContext2D interface: operation stroke()
+PASS Unscopable handled correctly for stroke() on OffscreenCanvasRenderingContext2D
 PASS OffscreenCanvasRenderingContext2D interface: operation stroke(Path2D)
+PASS Unscopable handled correctly for stroke(Path2D) on OffscreenCanvasRenderingContext2D
 PASS OffscreenCanvasRenderingContext2D interface: operation clip(CanvasFillRule)
+PASS Unscopable handled correctly for clip(CanvasFillRule) on OffscreenCanvasRenderingContext2D
 PASS OffscreenCanvasRenderingContext2D interface: operation clip(Path2D, CanvasFillRule)
+PASS Unscopable handled correctly for clip(Path2D, CanvasFillRule) on OffscreenCanvasRenderingContext2D
 FAIL OffscreenCanvasRenderingContext2D interface: operation resetClip() assert_own_property: interface prototype object missing non-static operation expected property "resetClip" missing
+PASS Unscopable handled correctly for resetClip() on OffscreenCanvasRenderingContext2D
 PASS OffscreenCanvasRenderingContext2D interface: operation isPointInPath(unrestricted double, unrestricted double, CanvasFillRule)
+PASS Unscopable handled correctly for isPointInPath(unrestricted double, unrestricted double, CanvasFillRule) on OffscreenCanvasRenderingContext2D
 PASS OffscreenCanvasRenderingContext2D interface: operation isPointInPath(Path2D, unrestricted double, unrestricted double, CanvasFillRule)
+PASS Unscopable handled correctly for isPointInPath(Path2D, unrestricted double, unrestricted double, CanvasFillRule) on OffscreenCanvasRenderingContext2D
 PASS OffscreenCanvasRenderingContext2D interface: operation isPointInStroke(unrestricted double, unrestricted double)
+PASS Unscopable handled correctly for isPointInStroke(unrestricted double, unrestricted double) on OffscreenCanvasRenderingContext2D
 PASS OffscreenCanvasRenderingContext2D interface: operation isPointInStroke(Path2D, unrestricted double, unrestricted double)
+PASS Unscopable handled correctly for isPointInStroke(Path2D, unrestricted double, unrestricted double) on OffscreenCanvasRenderingContext2D
 PASS OffscreenCanvasRenderingContext2D interface: operation drawImage(CanvasImageSource, unrestricted double, unrestricted double)
+PASS Unscopable handled correctly for drawImage(CanvasImageSource, unrestricted double, unrestricted double) on OffscreenCanvasRenderingContext2D
 PASS OffscreenCanvasRenderingContext2D interface: operation drawImage(CanvasImageSource, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
+PASS Unscopable handled correctly for drawImage(CanvasImageSource, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on OffscreenCanvasRenderingContext2D
 PASS OffscreenCanvasRenderingContext2D interface: operation drawImage(CanvasImageSource, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
+PASS Unscopable handled correctly for drawImage(CanvasImageSource, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on OffscreenCanvasRenderingContext2D
 PASS OffscreenCanvasRenderingContext2D interface: operation createImageData(long, long)
+PASS Unscopable handled correctly for createImageData(long, long) on OffscreenCanvasRenderingContext2D
 PASS OffscreenCanvasRenderingContext2D interface: operation createImageData(ImageData)
+PASS Unscopable handled correctly for createImageData(ImageData) on OffscreenCanvasRenderingContext2D
 PASS OffscreenCanvasRenderingContext2D interface: operation getImageData(long, long, long, long)
+PASS Unscopable handled correctly for getImageData(long, long, long, long) on OffscreenCanvasRenderingContext2D
 PASS OffscreenCanvasRenderingContext2D interface: operation putImageData(ImageData, long, long)
+PASS Unscopable handled correctly for putImageData(ImageData, long, long) on OffscreenCanvasRenderingContext2D
 PASS OffscreenCanvasRenderingContext2D interface: operation putImageData(ImageData, long, long, long, long, long, long)
+PASS Unscopable handled correctly for putImageData(ImageData, long, long, long, long, long, long) on OffscreenCanvasRenderingContext2D
 PASS OffscreenCanvasRenderingContext2D interface: attribute lineWidth
+PASS Unscopable handled correctly for lineWidth property on OffscreenCanvasRenderingContext2D
 PASS OffscreenCanvasRenderingContext2D interface: attribute lineCap
+PASS Unscopable handled correctly for lineCap property on OffscreenCanvasRenderingContext2D
 PASS OffscreenCanvasRenderingContext2D interface: attribute lineJoin
+PASS Unscopable handled correctly for lineJoin property on OffscreenCanvasRenderingContext2D
 PASS OffscreenCanvasRenderingContext2D interface: attribute miterLimit
+PASS Unscopable handled correctly for miterLimit property on OffscreenCanvasRenderingContext2D
 PASS OffscreenCanvasRenderingContext2D interface: operation setLineDash([object Object])
+PASS Unscopable handled correctly for setLineDash([object Object]) on OffscreenCanvasRenderingContext2D
 PASS OffscreenCanvasRenderingContext2D interface: operation getLineDash()
+PASS Unscopable handled correctly for getLineDash() on OffscreenCanvasRenderingContext2D
 PASS OffscreenCanvasRenderingContext2D interface: attribute lineDashOffset
+PASS Unscopable handled correctly for lineDashOffset property on OffscreenCanvasRenderingContext2D
 PASS OffscreenCanvasRenderingContext2D interface: operation closePath()
+PASS Unscopable handled correctly for closePath() on OffscreenCanvasRenderingContext2D
 PASS OffscreenCanvasRenderingContext2D interface: operation moveTo(unrestricted double, unrestricted double)
+PASS Unscopable handled correctly for moveTo(unrestricted double, unrestricted double) on OffscreenCanvasRenderingContext2D
 PASS OffscreenCanvasRenderingContext2D interface: operation lineTo(unrestricted double, unrestricted double)
+PASS Unscopable handled correctly for lineTo(unrestricted double, unrestricted double) on OffscreenCanvasRenderingContext2D
 PASS OffscreenCanvasRenderingContext2D interface: operation quadraticCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
+PASS Unscopable handled correctly for quadraticCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on OffscreenCanvasRenderingContext2D
 PASS OffscreenCanvasRenderingContext2D interface: operation bezierCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
+PASS Unscopable handled correctly for bezierCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on OffscreenCanvasRenderingContext2D
 PASS OffscreenCanvasRenderingContext2D interface: operation arcTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
+PASS Unscopable handled correctly for arcTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on OffscreenCanvasRenderingContext2D
 PASS OffscreenCanvasRenderingContext2D interface: operation rect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
+PASS Unscopable handled correctly for rect(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on OffscreenCanvasRenderingContext2D
 PASS OffscreenCanvasRenderingContext2D interface: operation arc(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, boolean)
+PASS Unscopable handled correctly for arc(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, boolean) on OffscreenCanvasRenderingContext2D
 PASS OffscreenCanvasRenderingContext2D interface: operation ellipse(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, boolean)
+PASS Unscopable handled correctly for ellipse(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, boolean) on OffscreenCanvasRenderingContext2D
 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, Function, ElementDefinitionOptions)
+PASS Unscopable handled correctly for define(DOMString, Function, ElementDefinitionOptions) on CustomElementRegistry
 PASS CustomElementRegistry interface: operation get(DOMString)
+PASS Unscopable handled correctly for get(DOMString) on CustomElementRegistry
 PASS CustomElementRegistry interface: operation whenDefined(DOMString)
+PASS Unscopable handled correctly for whenDefined(DOMString) on CustomElementRegistry
 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 Unscopable handled correctly for dropEffect property on DataTransfer
 PASS DataTransfer interface: attribute effectAllowed
+PASS Unscopable handled correctly for effectAllowed property on DataTransfer
 PASS DataTransfer interface: attribute items
+PASS Unscopable handled correctly for items property on DataTransfer
 PASS DataTransfer interface: operation setDragImage(Element, long, long)
+PASS Unscopable handled correctly for setDragImage(Element, long, long) on DataTransfer
 PASS DataTransfer interface: attribute types
+PASS Unscopable handled correctly for types property on DataTransfer
 PASS DataTransfer interface: operation getData(DOMString)
+PASS Unscopable handled correctly for getData(DOMString) on DataTransfer
 PASS DataTransfer interface: operation setData(DOMString, DOMString)
+PASS Unscopable handled correctly for setData(DOMString, DOMString) on DataTransfer
 PASS DataTransfer interface: operation clearData(DOMString)
+PASS Unscopable handled correctly for clearData(DOMString) on DataTransfer
 PASS DataTransfer interface: attribute files
+PASS Unscopable handled correctly for files property on DataTransfer
 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 Unscopable handled correctly for length property on DataTransferItemList
 PASS DataTransferItemList interface: operation add(DOMString, DOMString)
+PASS Unscopable handled correctly for add(DOMString, DOMString) on DataTransferItemList
 PASS DataTransferItemList interface: operation add(File)
+PASS Unscopable handled correctly for add(File) on DataTransferItemList
 PASS DataTransferItemList interface: operation remove(unsigned long)
+PASS Unscopable handled correctly for remove(unsigned long) on DataTransferItemList
 PASS DataTransferItemList interface: operation clear()
+PASS Unscopable handled correctly for clear() on DataTransferItemList
 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 Unscopable handled correctly for kind property on DataTransferItem
 PASS DataTransferItem interface: attribute type
+PASS Unscopable handled correctly for type property on DataTransferItem
 PASS DataTransferItem interface: operation getAsString(FunctionStringCallback)
+PASS Unscopable handled correctly for getAsString(FunctionStringCallback) on DataTransferItem
 PASS DataTransferItem interface: operation getAsFile()
+PASS Unscopable handled correctly for getAsFile() on DataTransferItem
 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 Unscopable handled correctly for dataTransfer property on DragEvent
 PASS Window interface: existence and properties of interface object
 PASS Window interface object length
 PASS Window interface object name
@@ -4429,130 +5532,255 @@
 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
 FAIL Window interface: attribute self assert_equals: "self" must have a getter expected "function" but got "undefined"
+PASS Unscopable handled correctly for self property on Window
 PASS Window interface: attribute name
+PASS Unscopable handled correctly for name property on Window
 PASS Window interface: attribute history
+PASS Unscopable handled correctly for history property on Window
 PASS Window interface: attribute customElements
+PASS Unscopable handled correctly for customElements property on Window
 PASS Window interface: attribute locationbar
+PASS Unscopable handled correctly for locationbar property on Window
 PASS Window interface: attribute menubar
+PASS Unscopable handled correctly for menubar property on Window
 PASS Window interface: attribute personalbar
+PASS Unscopable handled correctly for personalbar property on Window
 PASS Window interface: attribute scrollbars
+PASS Unscopable handled correctly for scrollbars property on Window
 PASS Window interface: attribute statusbar
+PASS Unscopable handled correctly for statusbar property on Window
 PASS Window interface: attribute toolbar
+PASS Unscopable handled correctly for toolbar property on Window
 PASS Window interface: attribute status
+PASS Unscopable handled correctly for status property on Window
 PASS Window interface: operation close()
+PASS Unscopable handled correctly for close() on Window
 FAIL Window interface: attribute closed assert_equals: "closed" must have a getter expected "function" but got "undefined"
+PASS Unscopable handled correctly for closed property on Window
 PASS Window interface: operation stop()
+PASS Unscopable handled correctly for stop() on Window
 PASS Window interface: operation focus()
+PASS Unscopable handled correctly for focus() on Window
 PASS Window interface: operation blur()
+PASS Unscopable handled correctly for blur() on Window
 FAIL Window interface: attribute frames assert_equals: "frames" must have a getter expected "function" but got "undefined"
+PASS Unscopable handled correctly for frames property on Window
 FAIL Window interface: attribute length assert_equals: "length" must have a getter expected "function" but got "undefined"
+PASS Unscopable handled correctly for length property on Window
 FAIL Window interface: attribute opener assert_equals: "opener" must have a getter expected "function" but got "undefined"
+PASS Unscopable handled correctly for opener property on Window
 FAIL Window interface: attribute parent assert_equals: "parent" must have a getter expected "function" but got "undefined"
+PASS Unscopable handled correctly for parent property on Window
 PASS Window interface: attribute frameElement
+PASS Unscopable handled correctly for frameElement property on Window
 PASS Window interface: operation open(USVString, DOMString, DOMString)
+PASS Unscopable handled correctly for open(USVString, DOMString, DOMString) on Window
 PASS Window interface: attribute navigator
+PASS Unscopable handled correctly for navigator property on Window
 PASS Window interface: attribute applicationCache
+PASS Unscopable handled correctly for applicationCache property on Window
 PASS Window interface: operation alert()
+PASS Unscopable handled correctly for alert() on Window
 PASS Window interface: operation alert(DOMString)
+PASS Unscopable handled correctly for alert(DOMString) on Window
 PASS Window interface: operation confirm(DOMString)
+PASS Unscopable handled correctly for confirm(DOMString) on Window
 PASS Window interface: operation prompt(DOMString, DOMString)
+PASS Unscopable handled correctly for prompt(DOMString, DOMString) on Window
 PASS Window interface: operation print()
+PASS Unscopable handled correctly for print() on Window
 PASS Window interface: operation requestAnimationFrame(FrameRequestCallback)
+PASS Unscopable handled correctly for requestAnimationFrame(FrameRequestCallback) on Window
 PASS Window interface: operation cancelAnimationFrame(unsigned long)
+PASS Unscopable handled correctly for cancelAnimationFrame(unsigned long) on Window
 PASS Window interface: operation postMessage(any, USVString, [object Object])
+PASS Unscopable handled correctly for postMessage(any, USVString, [object Object]) on Window
 PASS Window interface: operation captureEvents()
+PASS Unscopable handled correctly for captureEvents() on Window
 PASS Window interface: operation releaseEvents()
+PASS Unscopable handled correctly for releaseEvents() on Window
 PASS Window interface: attribute external
+PASS Unscopable handled correctly for external property on Window
 PASS Window interface: attribute onabort
+PASS Unscopable handled correctly for onabort property on Window
 PASS Window interface: attribute onauxclick
+PASS Unscopable handled correctly for onauxclick property on Window
 PASS Window interface: attribute onblur
+PASS Unscopable handled correctly for onblur property on Window
 PASS Window interface: attribute oncancel
+PASS Unscopable handled correctly for oncancel property on Window
 PASS Window interface: attribute oncanplay
+PASS Unscopable handled correctly for oncanplay property on Window
 PASS Window interface: attribute oncanplaythrough
+PASS Unscopable handled correctly for oncanplaythrough property on Window
 PASS Window interface: attribute onchange
+PASS Unscopable handled correctly for onchange property on Window
 PASS Window interface: attribute onclick
+PASS Unscopable handled correctly for onclick property on Window
 PASS Window interface: attribute onclose
+PASS Unscopable handled correctly for onclose property on Window
 PASS Window interface: attribute oncontextmenu
+PASS Unscopable handled correctly for oncontextmenu property on Window
 PASS Window interface: attribute oncuechange
+PASS Unscopable handled correctly for oncuechange property on Window
 PASS Window interface: attribute ondblclick
+PASS Unscopable handled correctly for ondblclick property on Window
 PASS Window interface: attribute ondrag
+PASS Unscopable handled correctly for ondrag property on Window
 PASS Window interface: attribute ondragend
+PASS Unscopable handled correctly for ondragend property on Window
 PASS Window interface: attribute ondragenter
+PASS Unscopable handled correctly for ondragenter property on Window
 FAIL Window interface: attribute ondragexit assert_own_property: The global object must have a property "ondragexit" expected property "ondragexit" missing
+PASS Unscopable handled correctly for ondragexit property on Window
 PASS Window interface: attribute ondragleave
+PASS Unscopable handled correctly for ondragleave property on Window
 PASS Window interface: attribute ondragover
+PASS Unscopable handled correctly for ondragover property on Window
 PASS Window interface: attribute ondragstart
+PASS Unscopable handled correctly for ondragstart property on Window
 PASS Window interface: attribute ondrop
+PASS Unscopable handled correctly for ondrop property on Window
 PASS Window interface: attribute ondurationchange
+PASS Unscopable handled correctly for ondurationchange property on Window
 PASS Window interface: attribute onemptied
+PASS Unscopable handled correctly for onemptied property on Window
 PASS Window interface: attribute onended
+PASS Unscopable handled correctly for onended property on Window
 PASS Window interface: attribute onerror
+PASS Unscopable handled correctly for onerror property on Window
 PASS Window interface: attribute onfocus
+PASS Unscopable handled correctly for onfocus property on Window
 PASS Window interface: attribute oninput
+PASS Unscopable handled correctly for oninput property on Window
 PASS Window interface: attribute oninvalid
+PASS Unscopable handled correctly for oninvalid property on Window
 PASS Window interface: attribute onkeydown
+PASS Unscopable handled correctly for onkeydown property on Window
 PASS Window interface: attribute onkeypress
+PASS Unscopable handled correctly for onkeypress property on Window
 PASS Window interface: attribute onkeyup
+PASS Unscopable handled correctly for onkeyup property on Window
 PASS Window interface: attribute onload
+PASS Unscopable handled correctly for onload property on Window
 PASS Window interface: attribute onloadeddata
+PASS Unscopable handled correctly for onloadeddata property on Window
 PASS Window interface: attribute onloadedmetadata
+PASS Unscopable handled correctly for onloadedmetadata property on Window
 FAIL Window interface: attribute onloadend assert_own_property: The global object must have a property "onloadend" expected property "onloadend" missing
+PASS Unscopable handled correctly for onloadend property on Window
 PASS Window interface: attribute onloadstart
+PASS Unscopable handled correctly for onloadstart property on Window
 PASS Window interface: attribute onmousedown
+PASS Unscopable handled correctly for onmousedown property on Window
 PASS Window interface: attribute onmouseenter
+PASS Unscopable handled correctly for onmouseenter property on Window
 PASS Window interface: attribute onmouseleave
+PASS Unscopable handled correctly for onmouseleave property on Window
 PASS Window interface: attribute onmousemove
+PASS Unscopable handled correctly for onmousemove property on Window
 PASS Window interface: attribute onmouseout
+PASS Unscopable handled correctly for onmouseout property on Window
 PASS Window interface: attribute onmouseover
+PASS Unscopable handled correctly for onmouseover property on Window
 PASS Window interface: attribute onmouseup
+PASS Unscopable handled correctly for onmouseup property on Window
 PASS Window interface: attribute onwheel
+PASS Unscopable handled correctly for onwheel property on Window
 PASS Window interface: attribute onpause
+PASS Unscopable handled correctly for onpause property on Window
 PASS Window interface: attribute onplay
+PASS Unscopable handled correctly for onplay property on Window
 PASS Window interface: attribute onplaying
+PASS Unscopable handled correctly for onplaying property on Window
 PASS Window interface: attribute onprogress
+PASS Unscopable handled correctly for onprogress property on Window
 PASS Window interface: attribute onratechange
+PASS Unscopable handled correctly for onratechange property on Window
 PASS Window interface: attribute onreset
+PASS Unscopable handled correctly for onreset property on Window
 PASS Window interface: attribute onresize
+PASS Unscopable handled correctly for onresize property on Window
 PASS Window interface: attribute onscroll
+PASS Unscopable handled correctly for onscroll property on Window
 FAIL Window interface: attribute onsecuritypolicyviolation assert_own_property: The global object must have a property "onsecuritypolicyviolation" expected property "onsecuritypolicyviolation" missing
+PASS Unscopable handled correctly for onsecuritypolicyviolation property on Window
 PASS Window interface: attribute onseeked
+PASS Unscopable handled correctly for onseeked property on Window
 PASS Window interface: attribute onseeking
+PASS Unscopable handled correctly for onseeking property on Window
 PASS Window interface: attribute onselect
+PASS Unscopable handled correctly for onselect property on Window
 PASS Window interface: attribute onstalled
+PASS Unscopable handled correctly for onstalled property on Window
 PASS Window interface: attribute onsubmit
+PASS Unscopable handled correctly for onsubmit property on Window
 PASS Window interface: attribute onsuspend
+PASS Unscopable handled correctly for onsuspend property on Window
 PASS Window interface: attribute ontimeupdate
+PASS Unscopable handled correctly for ontimeupdate property on Window
 PASS Window interface: attribute ontoggle
+PASS Unscopable handled correctly for ontoggle property on Window
 PASS Window interface: attribute onvolumechange
+PASS Unscopable handled correctly for onvolumechange property on Window
 PASS Window interface: attribute onwaiting
+PASS Unscopable handled correctly for onwaiting property on Window
 PASS Window interface: attribute onafterprint
+PASS Unscopable handled correctly for onafterprint property on Window
 PASS Window interface: attribute onbeforeprint
+PASS Unscopable handled correctly for onbeforeprint property on Window
 PASS Window interface: attribute onbeforeunload
+PASS Unscopable handled correctly for onbeforeunload property on Window
 PASS Window interface: attribute onhashchange
+PASS Unscopable handled correctly for onhashchange property on Window
 PASS Window interface: attribute onlanguagechange
+PASS Unscopable handled correctly for onlanguagechange property on Window
 PASS Window interface: attribute onmessage
+PASS Unscopable handled correctly for onmessage property on Window
 PASS Window interface: attribute onmessageerror
+PASS Unscopable handled correctly for onmessageerror property on Window
 PASS Window interface: attribute onoffline
+PASS Unscopable handled correctly for onoffline property on Window
 PASS Window interface: attribute ononline
+PASS Unscopable handled correctly for ononline property on Window
 PASS Window interface: attribute onpagehide
+PASS Unscopable handled correctly for onpagehide property on Window
 PASS Window interface: attribute onpageshow
+PASS Unscopable handled correctly for onpageshow property on Window
 PASS Window interface: attribute onpopstate
+PASS Unscopable handled correctly for onpopstate property on Window
 PASS Window interface: attribute onrejectionhandled
+PASS Unscopable handled correctly for onrejectionhandled property on Window
 PASS Window interface: attribute onstorage
+PASS Unscopable handled correctly for onstorage property on Window
 PASS Window interface: attribute onunhandledrejection
+PASS Unscopable handled correctly for onunhandledrejection property on Window
 PASS Window interface: attribute onunload
+PASS Unscopable handled correctly for onunload property on Window
 PASS Window interface: attribute origin
+PASS Unscopable handled correctly for origin property on Window
 PASS Window interface: operation btoa(DOMString)
+PASS Unscopable handled correctly for btoa(DOMString) on Window
 PASS Window interface: operation atob(DOMString)
+PASS Unscopable handled correctly for atob(DOMString) on Window
 PASS Window interface: operation setTimeout(TimerHandler, long, any)
+PASS Unscopable handled correctly for setTimeout(TimerHandler, long, any) on Window
 PASS Window interface: operation clearTimeout(long)
+PASS Unscopable handled correctly for clearTimeout(long) on Window
 PASS Window interface: operation setInterval(TimerHandler, long, any)
+PASS Unscopable handled correctly for setInterval(TimerHandler, long, any) on Window
 PASS Window interface: operation clearInterval(long)
+PASS Unscopable handled correctly for clearInterval(long) on Window
 PASS Window interface: operation createImageBitmap(ImageBitmapSource, ImageBitmapOptions)
+PASS Unscopable handled correctly for createImageBitmap(ImageBitmapSource, ImageBitmapOptions) on Window
 PASS Window interface: operation createImageBitmap(ImageBitmapSource, long, long, long, long, ImageBitmapOptions)
+PASS Unscopable handled correctly for createImageBitmap(ImageBitmapSource, long, long, long, long, ImageBitmapOptions) on Window
 PASS Window interface: attribute sessionStorage
+PASS Unscopable handled correctly for sessionStorage property on Window
 PASS Window interface: attribute localStorage
+PASS Unscopable handled correctly for localStorage property on Window
 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
@@ -4709,21 +5937,33 @@
 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 Unscopable handled correctly for visible property on BarProp
 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
 FAIL History interface: attribute index assert_true: The prototype object must have a property "index" expected true got false
+PASS Unscopable handled correctly for index property on History
 PASS History interface: attribute length
+PASS Unscopable handled correctly for length property on History
 PASS History interface: attribute scrollRestoration
+PASS Unscopable handled correctly for scrollRestoration property on History
 PASS History interface: attribute state
+PASS Unscopable handled correctly for state property on History
 PASS History interface: operation go(long)
+PASS Unscopable handled correctly for go(long) on History
 PASS History interface: operation back()
+PASS Unscopable handled correctly for back() on History
 PASS History interface: operation forward()
+PASS Unscopable handled correctly for forward() on History
 PASS History interface: operation pushState(any, DOMString, USVString)
+PASS Unscopable handled correctly for pushState(any, DOMString, USVString) on History
 PASS History interface: operation replaceState(any, DOMString, USVString)
+PASS Unscopable handled correctly for replaceState(any, DOMString, USVString) on History
 PASS History must be primary interface of window.history
 PASS Stringification of window.history
 FAIL History interface: window.history must inherit property "index" with the proper type assert_inherits: property "index" not found in prototype chain
@@ -4743,6 +5983,7 @@
 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
@@ -4766,7 +6007,9 @@
 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 Unscopable handled correctly for state property on PopStateEvent
 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
@@ -4775,25 +6018,33 @@
 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 Unscopable handled correctly for oldURL property on HashChangeEvent
 PASS HashChangeEvent interface: attribute newURL
+PASS Unscopable handled correctly for newURL property on HashChangeEvent
 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 Unscopable handled correctly for persisted property on PageTransitionEvent
 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 Unscopable handled correctly for returnValue property on BeforeUnloadEvent
 PASS ApplicationCache interface: existence and properties of interface object
 PASS ApplicationCache interface object length
 PASS ApplicationCache interface object name
 PASS ApplicationCache interface: existence and properties of interface prototype object
 PASS ApplicationCache interface: existence and properties of interface prototype object's "constructor" property
+PASS ApplicationCache interface: existence and properties of interface prototype object's @@unscopables property
 PASS ApplicationCache interface: constant UNCACHED on interface object
 PASS ApplicationCache interface: constant UNCACHED on interface prototype object
 PASS ApplicationCache interface: constant IDLE on interface object
@@ -4807,17 +6058,29 @@
 PASS ApplicationCache interface: constant OBSOLETE on interface object
 PASS ApplicationCache interface: constant OBSOLETE on interface prototype object
 PASS ApplicationCache interface: attribute status
+PASS Unscopable handled correctly for status property on ApplicationCache
 PASS ApplicationCache interface: operation update()
+PASS Unscopable handled correctly for update() on ApplicationCache
 PASS ApplicationCache interface: operation abort()
+PASS Unscopable handled correctly for abort() on ApplicationCache
 PASS ApplicationCache interface: operation swapCache()
+PASS Unscopable handled correctly for swapCache() on ApplicationCache
 PASS ApplicationCache interface: attribute onchecking
+PASS Unscopable handled correctly for onchecking property on ApplicationCache
 PASS ApplicationCache interface: attribute onerror
+PASS Unscopable handled correctly for onerror property on ApplicationCache
 PASS ApplicationCache interface: attribute onnoupdate
+PASS Unscopable handled correctly for onnoupdate property on ApplicationCache
 PASS ApplicationCache interface: attribute ondownloading
+PASS Unscopable handled correctly for ondownloading property on ApplicationCache
 PASS ApplicationCache interface: attribute onprogress
+PASS Unscopable handled correctly for onprogress property on ApplicationCache
 PASS ApplicationCache interface: attribute onupdateready
+PASS Unscopable handled correctly for onupdateready property on ApplicationCache
 PASS ApplicationCache interface: attribute oncached
+PASS Unscopable handled correctly for oncached property on ApplicationCache
 PASS ApplicationCache interface: attribute onobsolete
+PASS Unscopable handled correctly for onobsolete property on ApplicationCache
 PASS ApplicationCache must be primary interface of window.applicationCache
 PASS Stringification of window.applicationCache
 PASS ApplicationCache interface: window.applicationCache must inherit property "UNCACHED" with the proper type
@@ -4843,44 +6106,75 @@
 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 Unscopable handled correctly for message property on ErrorEvent
 PASS ErrorEvent interface: attribute filename
+PASS Unscopable handled correctly for filename property on ErrorEvent
 PASS ErrorEvent interface: attribute lineno
+PASS Unscopable handled correctly for lineno property on ErrorEvent
 PASS ErrorEvent interface: attribute colno
+PASS Unscopable handled correctly for colno property on ErrorEvent
 PASS ErrorEvent interface: attribute error
+PASS Unscopable handled correctly for error property on ErrorEvent
 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 Unscopable handled correctly for promise property on PromiseRejectionEvent
 PASS PromiseRejectionEvent interface: attribute reason
+PASS Unscopable handled correctly for reason property on PromiseRejectionEvent
 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 Unscopable handled correctly for appCodeName property on Navigator
 PASS Navigator interface: attribute appName
+PASS Unscopable handled correctly for appName property on Navigator
 PASS Navigator interface: attribute appVersion
+PASS Unscopable handled correctly for appVersion property on Navigator
 PASS Navigator interface: attribute platform
+PASS Unscopable handled correctly for platform property on Navigator
 PASS Navigator interface: attribute product
+PASS Unscopable handled correctly for product property on Navigator
 PASS Navigator interface: attribute productSub
+PASS Unscopable handled correctly for productSub property on Navigator
 PASS Navigator interface: attribute userAgent
+PASS Unscopable handled correctly for userAgent property on Navigator
 PASS Navigator interface: attribute vendor
+PASS Unscopable handled correctly for vendor property on Navigator
 PASS Navigator interface: attribute vendorSub
+PASS Unscopable handled correctly for vendorSub property on Navigator
 FAIL Navigator interface: operation taintEnabled() assert_own_property: interface prototype object missing non-static operation expected property "taintEnabled" missing
+PASS Unscopable handled correctly for taintEnabled() on Navigator
 FAIL Navigator interface: attribute oscpu assert_true: The prototype object must have a property "oscpu" expected true got false
+PASS Unscopable handled correctly for oscpu property on Navigator
 PASS Navigator interface: attribute language
+PASS Unscopable handled correctly for language property on Navigator
 PASS Navigator interface: attribute languages
+PASS Unscopable handled correctly for languages property on Navigator
 PASS Navigator interface: attribute onLine
+PASS Unscopable handled correctly for onLine property on Navigator
 PASS Navigator interface: operation registerProtocolHandler(DOMString, USVString, DOMString)
+PASS Unscopable handled correctly for registerProtocolHandler(DOMString, USVString, DOMString) on Navigator
 PASS Navigator interface: operation unregisterProtocolHandler(DOMString, USVString)
+PASS Unscopable handled correctly for unregisterProtocolHandler(DOMString, USVString) on Navigator
 PASS Navigator interface: attribute cookieEnabled
+PASS Unscopable handled correctly for cookieEnabled property on Navigator
 PASS Navigator interface: attribute plugins
+PASS Unscopable handled correctly for plugins property on Navigator
 PASS Navigator interface: attribute mimeTypes
+PASS Unscopable handled correctly for mimeTypes property on Navigator
 PASS Navigator interface: operation javaEnabled()
+PASS Unscopable handled correctly for javaEnabled() on Navigator
 PASS Navigator interface: attribute hardwareConcurrency
+PASS Unscopable handled correctly for hardwareConcurrency property on Navigator
 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
@@ -4911,57 +6205,89 @@
 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(boolean)
+PASS Unscopable handled correctly for refresh(boolean) on PluginArray
 PASS PluginArray interface: attribute length
+PASS Unscopable handled correctly for length property on PluginArray
 PASS PluginArray interface: operation item(unsigned long)
+PASS Unscopable handled correctly for item(unsigned long) on PluginArray
 PASS PluginArray interface: operation namedItem(DOMString)
+PASS Unscopable handled correctly for namedItem(DOMString) on PluginArray
 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 Unscopable handled correctly for length property on MimeTypeArray
 PASS MimeTypeArray interface: operation item(unsigned long)
+PASS Unscopable handled correctly for item(unsigned long) on MimeTypeArray
 PASS MimeTypeArray interface: operation namedItem(DOMString)
+PASS Unscopable handled correctly for namedItem(DOMString) on MimeTypeArray
 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 Unscopable handled correctly for name property on Plugin
 PASS Plugin interface: attribute description
+PASS Unscopable handled correctly for description property on Plugin
 PASS Plugin interface: attribute filename
+PASS Unscopable handled correctly for filename property on Plugin
 PASS Plugin interface: attribute length
+PASS Unscopable handled correctly for length property on Plugin
 PASS Plugin interface: operation item(unsigned long)
+PASS Unscopable handled correctly for item(unsigned long) on Plugin
 PASS Plugin interface: operation namedItem(DOMString)
+PASS Unscopable handled correctly for namedItem(DOMString) on Plugin
 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 Unscopable handled correctly for type property on MimeType
 PASS MimeType interface: attribute description
+PASS Unscopable handled correctly for description property on MimeType
 PASS MimeType interface: attribute suffixes
+PASS Unscopable handled correctly for suffixes property on MimeType
 PASS MimeType interface: attribute enabledPlugin
+PASS Unscopable handled correctly for enabledPlugin property on MimeType
 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 Unscopable handled correctly for width property on ImageBitmap
 PASS ImageBitmap interface: attribute height
+PASS Unscopable handled correctly for height property on ImageBitmap
 PASS ImageBitmap interface: operation close()
+PASS Unscopable handled correctly for close() on ImageBitmap
 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 Unscopable handled correctly for data property on MessageEvent
 PASS MessageEvent interface: attribute origin
+PASS Unscopable handled correctly for origin property on MessageEvent
 PASS MessageEvent interface: attribute lastEventId
+PASS Unscopable handled correctly for lastEventId property on MessageEvent
 PASS MessageEvent interface: attribute source
+PASS Unscopable handled correctly for source property on MessageEvent
 PASS MessageEvent interface: attribute ports
+PASS Unscopable handled correctly for ports property on MessageEvent
 PASS MessageEvent interface: operation initMessageEvent(DOMString, boolean, boolean, any, USVString, DOMString, MessageEventSource, [object Object])
+PASS Unscopable handled correctly for initMessageEvent(DOMString, boolean, boolean, any, USVString, DOMString, MessageEventSource, [object Object]) on MessageEvent
 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
@@ -4976,8 +6302,11 @@
 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 Unscopable handled correctly for url property on EventSource
 PASS EventSource interface: attribute withCredentials
+PASS Unscopable handled correctly for withCredentials property on EventSource
 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
@@ -4985,16 +6314,23 @@
 PASS EventSource interface: constant CLOSED on interface object
 PASS EventSource interface: constant CLOSED on interface prototype object
 PASS EventSource interface: attribute readyState
+PASS Unscopable handled correctly for readyState property on EventSource
 PASS EventSource interface: attribute onopen
+PASS Unscopable handled correctly for onopen property on EventSource
 PASS EventSource interface: attribute onmessage
+PASS Unscopable handled correctly for onmessage property on EventSource
 PASS EventSource interface: attribute onerror
+PASS Unscopable handled correctly for onerror property on EventSource
 PASS EventSource interface: operation close()
+PASS Unscopable handled correctly for close() on EventSource
 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 Unscopable handled correctly for url property on WebSocket
 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
@@ -5004,19 +6340,33 @@
 PASS WebSocket interface: constant CLOSED on interface object
 PASS WebSocket interface: constant CLOSED on interface prototype object
 PASS WebSocket interface: attribute readyState
+PASS Unscopable handled correctly for readyState property on WebSocket
 PASS WebSocket interface: attribute bufferedAmount
+PASS Unscopable handled correctly for bufferedAmount property on WebSocket
 PASS WebSocket interface: attribute onopen
+PASS Unscopable handled correctly for onopen property on WebSocket
 PASS WebSocket interface: attribute onerror
+PASS Unscopable handled correctly for onerror property on WebSocket
 PASS WebSocket interface: attribute onclose
+PASS Unscopable handled correctly for onclose property on WebSocket
 PASS WebSocket interface: attribute extensions
+PASS Unscopable handled correctly for extensions property on WebSocket
 PASS WebSocket interface: attribute protocol
+PASS Unscopable handled correctly for protocol property on WebSocket
 PASS WebSocket interface: operation close(unsigned short, USVString)
+PASS Unscopable handled correctly for close(unsigned short, USVString) on WebSocket
 PASS WebSocket interface: attribute onmessage
+PASS Unscopable handled correctly for onmessage property on WebSocket
 PASS WebSocket interface: attribute binaryType
+PASS Unscopable handled correctly for binaryType property on WebSocket
 PASS WebSocket interface: operation send(USVString)
+PASS Unscopable handled correctly for send(USVString) on WebSocket
 PASS WebSocket interface: operation send(Blob)
+PASS Unscopable handled correctly for send(Blob) on WebSocket
 PASS WebSocket interface: operation send(ArrayBuffer)
+PASS Unscopable handled correctly for send(ArrayBuffer) on WebSocket
 PASS WebSocket interface: operation send(ArrayBufferView)
+PASS Unscopable handled correctly for send(ArrayBufferView) on WebSocket
 PASS WebSocket must be primary interface of new WebSocket("ws://foo")
 PASS Stringification of new WebSocket("ws://foo")
 PASS WebSocket interface: new WebSocket("ws://foo") must inherit property "url" with the proper type
@@ -5048,9 +6398,13 @@
 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 Unscopable handled correctly for wasClean property on CloseEvent
 PASS CloseEvent interface: attribute code
+PASS Unscopable handled correctly for code property on CloseEvent
 PASS CloseEvent interface: attribute reason
+PASS Unscopable handled correctly for reason property on CloseEvent
 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
@@ -5061,28 +6415,43 @@
 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 Unscopable handled correctly for port1 property on MessageChannel
 PASS MessageChannel interface: attribute port2
+PASS Unscopable handled correctly for port2 property on MessageChannel
 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, [object Object])
+PASS Unscopable handled correctly for postMessage(any, [object Object]) on MessagePort
 PASS MessagePort interface: operation start()
+PASS Unscopable handled correctly for start() on MessagePort
 PASS MessagePort interface: operation close()
+PASS Unscopable handled correctly for close() on MessagePort
 PASS MessagePort interface: attribute onmessage
+PASS Unscopable handled correctly for onmessage property on MessagePort
 PASS MessagePort interface: attribute onmessageerror
+PASS Unscopable handled correctly for onmessageerror property on MessagePort
 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 Unscopable handled correctly for name property on BroadcastChannel
 PASS BroadcastChannel interface: operation postMessage(any)
+PASS Unscopable handled correctly for postMessage(any) on BroadcastChannel
 PASS BroadcastChannel interface: operation close()
+PASS Unscopable handled correctly for close() on BroadcastChannel
 PASS BroadcastChannel interface: attribute onmessage
+PASS Unscopable handled correctly for onmessage property on BroadcastChannel
 PASS BroadcastChannel interface: attribute onmessageerror
+PASS Unscopable handled correctly for onmessageerror property on BroadcastChannel
 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
@@ -5091,18 +6460,27 @@
 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 Unscopable handled correctly for terminate() on Worker
 PASS Worker interface: operation postMessage(any, [object Object])
+PASS Unscopable handled correctly for postMessage(any, [object Object]) on Worker
 PASS Worker interface: attribute onmessage
+PASS Unscopable handled correctly for onmessage property on Worker
 FAIL Worker interface: attribute onmessageerror assert_true: The prototype object must have a property "onmessageerror" expected true got false
+PASS Unscopable handled correctly for onmessageerror property on Worker
 PASS Worker interface: attribute onerror
+PASS Unscopable handled correctly for onerror property on Worker
 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 Unscopable handled correctly for port property on SharedWorker
 PASS SharedWorker interface: attribute onerror
+PASS Unscopable handled correctly for onerror property on SharedWorker
 PASS WorkerNavigator interface: existence and properties of interface object
 PASS WorkerLocation interface: existence and properties of interface object
 PASS Storage interface: existence and properties of interface object
@@ -5110,43 +6488,73 @@
 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 Unscopable handled correctly for length property on Storage
 PASS Storage interface: operation key(unsigned long)
+PASS Unscopable handled correctly for key(unsigned long) on Storage
 PASS Storage interface: operation getItem(DOMString)
+PASS Unscopable handled correctly for getItem(DOMString) on Storage
 PASS Storage interface: operation setItem(DOMString, DOMString)
+PASS Unscopable handled correctly for setItem(DOMString, DOMString) on Storage
 PASS Storage interface: operation removeItem(DOMString)
+PASS Unscopable handled correctly for removeItem(DOMString) on Storage
 PASS Storage interface: operation clear()
+PASS Unscopable handled correctly for clear() on Storage
 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 Unscopable handled correctly for key property on StorageEvent
 PASS StorageEvent interface: attribute oldValue
+PASS Unscopable handled correctly for oldValue property on StorageEvent
 PASS StorageEvent interface: attribute newValue
+PASS Unscopable handled correctly for newValue property on StorageEvent
 PASS StorageEvent interface: attribute url
+PASS Unscopable handled correctly for url property on StorageEvent
 PASS StorageEvent interface: attribute storageArea
+PASS Unscopable handled correctly for storageArea property on StorageEvent
 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 Unscopable handled correctly for behavior property on HTMLMarqueeElement
 PASS HTMLMarqueeElement interface: attribute bgColor
+PASS Unscopable handled correctly for bgColor property on HTMLMarqueeElement
 PASS HTMLMarqueeElement interface: attribute direction
+PASS Unscopable handled correctly for direction property on HTMLMarqueeElement
 PASS HTMLMarqueeElement interface: attribute height
+PASS Unscopable handled correctly for height property on HTMLMarqueeElement
 PASS HTMLMarqueeElement interface: attribute hspace
+PASS Unscopable handled correctly for hspace property on HTMLMarqueeElement
 PASS HTMLMarqueeElement interface: attribute loop
+PASS Unscopable handled correctly for loop property on HTMLMarqueeElement
 PASS HTMLMarqueeElement interface: attribute scrollAmount
+PASS Unscopable handled correctly for scrollAmount property on HTMLMarqueeElement
 PASS HTMLMarqueeElement interface: attribute scrollDelay
+PASS Unscopable handled correctly for scrollDelay property on HTMLMarqueeElement
 PASS HTMLMarqueeElement interface: attribute trueSpeed
+PASS Unscopable handled correctly for trueSpeed property on HTMLMarqueeElement
 PASS HTMLMarqueeElement interface: attribute vspace
+PASS Unscopable handled correctly for vspace property on HTMLMarqueeElement
 PASS HTMLMarqueeElement interface: attribute width
+PASS Unscopable handled correctly for width property on HTMLMarqueeElement
 FAIL HTMLMarqueeElement interface: attribute onbounce assert_true: The prototype object must have a property "onbounce" expected true got false
+PASS Unscopable handled correctly for onbounce property on HTMLMarqueeElement
 FAIL HTMLMarqueeElement interface: attribute onfinish assert_true: The prototype object must have a property "onfinish" expected true got false
+PASS Unscopable handled correctly for onfinish property on HTMLMarqueeElement
 FAIL HTMLMarqueeElement interface: attribute onstart assert_true: The prototype object must have a property "onstart" expected true got false
+PASS Unscopable handled correctly for onstart property on HTMLMarqueeElement
 PASS HTMLMarqueeElement interface: operation start()
+PASS Unscopable handled correctly for start() on HTMLMarqueeElement
 PASS HTMLMarqueeElement interface: operation stop()
+PASS Unscopable handled correctly for stop() on HTMLMarqueeElement
 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
@@ -5170,24 +6578,43 @@
 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 Unscopable handled correctly for cols property on HTMLFrameSetElement
 PASS HTMLFrameSetElement interface: attribute rows
+PASS Unscopable handled correctly for rows property on HTMLFrameSetElement
 PASS HTMLFrameSetElement interface: attribute onafterprint
+PASS Unscopable handled correctly for onafterprint property on HTMLFrameSetElement
 PASS HTMLFrameSetElement interface: attribute onbeforeprint
+PASS Unscopable handled correctly for onbeforeprint property on HTMLFrameSetElement
 PASS HTMLFrameSetElement interface: attribute onbeforeunload
+PASS Unscopable handled correctly for onbeforeunload property on HTMLFrameSetElement
 PASS HTMLFrameSetElement interface: attribute onhashchange
+PASS Unscopable handled correctly for onhashchange property on HTMLFrameSetElement
 PASS HTMLFrameSetElement interface: attribute onlanguagechange
+PASS Unscopable handled correctly for onlanguagechange property on HTMLFrameSetElement
 PASS HTMLFrameSetElement interface: attribute onmessage
+PASS Unscopable handled correctly for onmessage property on HTMLFrameSetElement
 PASS HTMLFrameSetElement interface: attribute onmessageerror
+PASS Unscopable handled correctly for onmessageerror property on HTMLFrameSetElement
 PASS HTMLFrameSetElement interface: attribute onoffline
+PASS Unscopable handled correctly for onoffline property on HTMLFrameSetElement
 PASS HTMLFrameSetElement interface: attribute ononline
+PASS Unscopable handled correctly for ononline property on HTMLFrameSetElement
 PASS HTMLFrameSetElement interface: attribute onpagehide
+PASS Unscopable handled correctly for onpagehide property on HTMLFrameSetElement
 PASS HTMLFrameSetElement interface: attribute onpageshow
+PASS Unscopable handled correctly for onpageshow property on HTMLFrameSetElement
 PASS HTMLFrameSetElement interface: attribute onpopstate
+PASS Unscopable handled correctly for onpopstate property on HTMLFrameSetElement
 PASS HTMLFrameSetElement interface: attribute onrejectionhandled
+PASS Unscopable handled correctly for onrejectionhandled property on HTMLFrameSetElement
 PASS HTMLFrameSetElement interface: attribute onstorage
+PASS Unscopable handled correctly for onstorage property on HTMLFrameSetElement
 PASS HTMLFrameSetElement interface: attribute onunhandledrejection
+PASS Unscopable handled correctly for onunhandledrejection property on HTMLFrameSetElement
 PASS HTMLFrameSetElement interface: attribute onunload
+PASS Unscopable handled correctly for onunload property on HTMLFrameSetElement
 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
@@ -5213,16 +6640,27 @@
 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 Unscopable handled correctly for name property on HTMLFrameElement
 PASS HTMLFrameElement interface: attribute scrolling
+PASS Unscopable handled correctly for scrolling property on HTMLFrameElement
 PASS HTMLFrameElement interface: attribute src
+PASS Unscopable handled correctly for src property on HTMLFrameElement
 PASS HTMLFrameElement interface: attribute frameBorder
+PASS Unscopable handled correctly for frameBorder property on HTMLFrameElement
 PASS HTMLFrameElement interface: attribute longDesc
+PASS Unscopable handled correctly for longDesc property on HTMLFrameElement
 PASS HTMLFrameElement interface: attribute noResize
+PASS Unscopable handled correctly for noResize property on HTMLFrameElement
 PASS HTMLFrameElement interface: attribute contentDocument
+PASS Unscopable handled correctly for contentDocument property on HTMLFrameElement
 PASS HTMLFrameElement interface: attribute contentWindow
+PASS Unscopable handled correctly for contentWindow property on HTMLFrameElement
 PASS HTMLFrameElement interface: attribute marginHeight
+PASS Unscopable handled correctly for marginHeight property on HTMLFrameElement
 PASS HTMLFrameElement interface: attribute marginWidth
+PASS Unscopable handled correctly for marginWidth property on HTMLFrameElement
 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
@@ -5240,7 +6678,9 @@
 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 Unscopable handled correctly for compact property on HTMLDirectoryElement
 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
@@ -5249,9 +6689,13 @@
 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 Unscopable handled correctly for color property on HTMLFontElement
 PASS HTMLFontElement interface: attribute face
+PASS Unscopable handled correctly for face property on HTMLFontElement
 PASS HTMLFontElement interface: attribute size
+PASS Unscopable handled correctly for size property on HTMLFontElement
 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
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/html/infrastructure/safe-passing-of-structured-data/structured_clone_bigint-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/html/infrastructure/safe-passing-of-structured-data/structured_clone_bigint-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/html/infrastructure/safe-passing-of-structured-data/structured_clone_bigint-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/html/infrastructure/safe-passing-of-structured-data/structured_clone_bigint-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/html/semantics/scripting-1/the-script-element/emptyish-script-elements-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/html/semantics/scripting-1/the-script-element/emptyish-script-elements-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/html/semantics/scripting-1/the-script-element/emptyish-script-elements-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/html/semantics/scripting-1/the-script-element/emptyish-script-elements-expected.txt
diff --git a/third_party/WebKit/LayoutTests/external/wpt/keyboard-lock/idlharness.https-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/keyboard-lock/idlharness.https-expected.txt
index 9903576..8d92ab67 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/keyboard-lock/idlharness.https-expected.txt
+++ b/third_party/WebKit/LayoutTests/external/wpt/keyboard-lock/idlharness.https-expected.txt
@@ -2,7 +2,9 @@
 FAIL Navigator interface: operation keyboardLock(sequence) assert_throws: calling operation with this = null didn't throw TypeError function "function() {
             fn.apply(obj, args);
         }" did not throw
+PASS Unscopable handled correctly for keyboardLock(sequence) on Navigator
 PASS Navigator interface: operation keyboardUnlock()
+PASS Unscopable handled correctly for keyboardUnlock() on Navigator
 PASS Navigator interface: navigator must inherit property "keyboardLock(sequence)" with the proper type
 PASS Navigator interface: calling keyboardLock(sequence) on navigator with too few arguments must throw TypeError
 PASS Navigator interface: navigator must inherit property "keyboardUnlock()" with the proper type
diff --git a/third_party/WebKit/LayoutTests/external/wpt/magnetometer/idlharness.https-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/magnetometer/idlharness.https-expected.txt
index 9607617..49822f4 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/magnetometer/idlharness.https-expected.txt
+++ b/third_party/WebKit/LayoutTests/external/wpt/magnetometer/idlharness.https-expected.txt
@@ -5,22 +5,35 @@
 PASS Sensor interface object name
 PASS Sensor interface: existence and properties of interface prototype object
 PASS Sensor interface: existence and properties of interface prototype object's "constructor" property
+PASS Sensor interface: existence and properties of interface prototype object's @@unscopables property
 PASS Sensor interface: attribute activated
+PASS Unscopable handled correctly for activated property on Sensor
 PASS Sensor interface: attribute hasReading
+PASS Unscopable handled correctly for hasReading property on Sensor
 PASS Sensor interface: attribute timestamp
+PASS Unscopable handled correctly for timestamp property on Sensor
 PASS Sensor interface: operation start()
+PASS Unscopable handled correctly for start() on Sensor
 PASS Sensor interface: operation stop()
+PASS Unscopable handled correctly for stop() on Sensor
 PASS Sensor interface: attribute onreading
+PASS Unscopable handled correctly for onreading property on Sensor
 PASS Sensor interface: attribute onactivate
+PASS Unscopable handled correctly for onactivate property on Sensor
 PASS Sensor interface: attribute onerror
+PASS Unscopable handled correctly for onerror property on Sensor
 PASS Magnetometer interface: existence and properties of interface object
 PASS Magnetometer interface object length
 PASS Magnetometer interface object name
 PASS Magnetometer interface: existence and properties of interface prototype object
 PASS Magnetometer interface: existence and properties of interface prototype object's "constructor" property
+PASS Magnetometer interface: existence and properties of interface prototype object's @@unscopables property
 PASS Magnetometer interface: attribute x
+PASS Unscopable handled correctly for x property on Magnetometer
 PASS Magnetometer interface: attribute y
+PASS Unscopable handled correctly for y property on Magnetometer
 PASS Magnetometer interface: attribute z
+PASS Unscopable handled correctly for z property on Magnetometer
 PASS Magnetometer must be primary interface of new Magnetometer();
 PASS Stringification of new Magnetometer();
 PASS Magnetometer interface: new Magnetometer(); must inherit property "x" with the proper type
@@ -39,12 +52,19 @@
 FAIL UncalibratedMagnetometer interface object name assert_own_property: self does not have own property "UncalibratedMagnetometer" expected property "UncalibratedMagnetometer" missing
 FAIL UncalibratedMagnetometer interface: existence and properties of interface prototype object assert_own_property: self does not have own property "UncalibratedMagnetometer" expected property "UncalibratedMagnetometer" missing
 FAIL UncalibratedMagnetometer interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "UncalibratedMagnetometer" expected property "UncalibratedMagnetometer" missing
+FAIL UncalibratedMagnetometer interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "UncalibratedMagnetometer" expected property "UncalibratedMagnetometer" missing
 FAIL UncalibratedMagnetometer interface: attribute x assert_own_property: self does not have own property "UncalibratedMagnetometer" expected property "UncalibratedMagnetometer" missing
+PASS Unscopable handled correctly for x property on UncalibratedMagnetometer
 FAIL UncalibratedMagnetometer interface: attribute y assert_own_property: self does not have own property "UncalibratedMagnetometer" expected property "UncalibratedMagnetometer" missing
+PASS Unscopable handled correctly for y property on UncalibratedMagnetometer
 FAIL UncalibratedMagnetometer interface: attribute z assert_own_property: self does not have own property "UncalibratedMagnetometer" expected property "UncalibratedMagnetometer" missing
+PASS Unscopable handled correctly for z property on UncalibratedMagnetometer
 FAIL UncalibratedMagnetometer interface: attribute xBias assert_own_property: self does not have own property "UncalibratedMagnetometer" expected property "UncalibratedMagnetometer" missing
+PASS Unscopable handled correctly for xBias property on UncalibratedMagnetometer
 FAIL UncalibratedMagnetometer interface: attribute yBias assert_own_property: self does not have own property "UncalibratedMagnetometer" expected property "UncalibratedMagnetometer" missing
+PASS Unscopable handled correctly for yBias property on UncalibratedMagnetometer
 FAIL UncalibratedMagnetometer interface: attribute zBias assert_own_property: self does not have own property "UncalibratedMagnetometer" expected property "UncalibratedMagnetometer" missing
+PASS Unscopable handled correctly for zBias property on UncalibratedMagnetometer
 FAIL UncalibratedMagnetometer must be primary interface of new UncalibratedMagnetometer(); assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: UncalibratedMagnetometer is not defined"
 FAIL Stringification of new UncalibratedMagnetometer(); assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: UncalibratedMagnetometer is not defined"
 FAIL UncalibratedMagnetometer interface: new UncalibratedMagnetometer(); must inherit property "x" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: UncalibratedMagnetometer is not defined"
diff --git a/third_party/WebKit/LayoutTests/external/wpt/media-capabilities/idlharness-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/media-capabilities/idlharness-expected.txt
index 0524a05..e99c181 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/media-capabilities/idlharness-expected.txt
+++ b/third_party/WebKit/LayoutTests/external/wpt/media-capabilities/idlharness-expected.txt
@@ -1,5 +1,6 @@
 This is a testharness.js-based test.
 PASS Navigator interface: attribute mediaCapabilities
+PASS Unscopable handled correctly for mediaCapabilities property on Navigator
 PASS Navigator interface: navigator must inherit property "mediaCapabilities" with the proper type
 PASS WorkerNavigator interface: existence and properties of interface object
 PASS MediaCapabilitiesInfo interface: existence and properties of interface object
@@ -7,19 +8,26 @@
 PASS MediaCapabilitiesInfo interface object name
 PASS MediaCapabilitiesInfo interface: existence and properties of interface prototype object
 PASS MediaCapabilitiesInfo interface: existence and properties of interface prototype object's "constructor" property
+PASS MediaCapabilitiesInfo interface: existence and properties of interface prototype object's @@unscopables property
 PASS MediaCapabilitiesInfo interface: attribute supported
+PASS Unscopable handled correctly for supported property on MediaCapabilitiesInfo
 PASS MediaCapabilitiesInfo interface: attribute smooth
+PASS Unscopable handled correctly for smooth property on MediaCapabilitiesInfo
 PASS MediaCapabilitiesInfo interface: attribute powerEfficient
+PASS Unscopable handled correctly for powerEfficient property on MediaCapabilitiesInfo
 PASS MediaCapabilities interface: existence and properties of interface object
 PASS MediaCapabilities interface object length
 PASS MediaCapabilities interface object name
 PASS MediaCapabilities interface: existence and properties of interface prototype object
 PASS MediaCapabilities interface: existence and properties of interface prototype object's "constructor" property
+PASS MediaCapabilities interface: existence and properties of interface prototype object's @@unscopables property
 FAIL MediaCapabilities interface: operation decodingInfo(MediaDecodingConfiguration) assert_throws: calling operation with this = null didn't throw TypeError function "function() {
             fn.apply(obj, args);
         }" did not throw
+PASS Unscopable handled correctly for decodingInfo(MediaDecodingConfiguration) on MediaCapabilities
 FAIL MediaCapabilities interface: operation encodingInfo(MediaEncodingConfiguration) assert_throws: calling operation with this = null didn't throw TypeError function "function() {
             fn.apply(obj, args);
         }" did not throw
+PASS Unscopable handled correctly for encodingInfo(MediaEncodingConfiguration) on MediaCapabilities
 Harness: the test ran to completion.
 
diff --git a/third_party/WebKit/LayoutTests/external/wpt/media-source/interfaces-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/media-source/interfaces-expected.txt
index e58a9b9..b626df4 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/media-source/interfaces-expected.txt
+++ b/third_party/WebKit/LayoutTests/external/wpt/media-source/interfaces-expected.txt
@@ -1,27 +1,45 @@
 This is a testharness.js-based test.
-Found 98 tests; 95 PASS, 3 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 138 tests; 135 PASS, 3 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS URL interface: operation createObjectURL(MediaSource)
+PASS Unscopable handled correctly for createObjectURL(MediaSource) on URL
 PASS AudioTrack interface: attribute sourceBuffer
+PASS Unscopable handled correctly for sourceBuffer property on AudioTrack
 PASS VideoTrack interface: attribute sourceBuffer
+PASS Unscopable handled correctly for sourceBuffer property on VideoTrack
 FAIL TextTrack interface: attribute sourceBuffer assert_true: The prototype object must have a property "sourceBuffer" expected true got false
+PASS Unscopable handled correctly for sourceBuffer property on TextTrack
 PASS MediaSource interface: existence and properties of interface object
 PASS MediaSource interface object length
 PASS MediaSource interface object name
 PASS MediaSource interface: existence and properties of interface prototype object
 PASS MediaSource interface: existence and properties of interface prototype object's "constructor" property
+PASS MediaSource interface: existence and properties of interface prototype object's @@unscopables property
 PASS MediaSource interface: attribute sourceBuffers
+PASS Unscopable handled correctly for sourceBuffers property on MediaSource
 PASS MediaSource interface: attribute activeSourceBuffers
+PASS Unscopable handled correctly for activeSourceBuffers property on MediaSource
 PASS MediaSource interface: attribute readyState
+PASS Unscopable handled correctly for readyState property on MediaSource
 PASS MediaSource interface: attribute duration
+PASS Unscopable handled correctly for duration property on MediaSource
 PASS MediaSource interface: attribute onsourceopen
+PASS Unscopable handled correctly for onsourceopen property on MediaSource
 PASS MediaSource interface: attribute onsourceended
+PASS Unscopable handled correctly for onsourceended property on MediaSource
 PASS MediaSource interface: attribute onsourceclose
+PASS Unscopable handled correctly for onsourceclose property on MediaSource
 PASS MediaSource interface: operation addSourceBuffer(DOMString)
+PASS Unscopable handled correctly for addSourceBuffer(DOMString) on MediaSource
 PASS MediaSource interface: operation removeSourceBuffer(SourceBuffer)
+PASS Unscopable handled correctly for removeSourceBuffer(SourceBuffer) on MediaSource
 PASS MediaSource interface: operation endOfStream(EndOfStreamError)
+PASS Unscopable handled correctly for endOfStream(EndOfStreamError) on MediaSource
 PASS MediaSource interface: operation setLiveSeekableRange(double, double)
+PASS Unscopable handled correctly for setLiveSeekableRange(double, double) on MediaSource
 PASS MediaSource interface: operation clearLiveSeekableRange()
+PASS Unscopable handled correctly for clearLiveSeekableRange() on MediaSource
 PASS MediaSource interface: operation isTypeSupported(DOMString)
+PASS Unscopable handled correctly for isTypeSupported(DOMString) on MediaSource
 PASS MediaSource must be primary interface of mediaSource
 PASS Stringification of mediaSource
 PASS MediaSource interface: mediaSource must inherit property "sourceBuffers" with the proper type
@@ -47,23 +65,41 @@
 PASS SourceBuffer interface object name
 PASS SourceBuffer interface: existence and properties of interface prototype object
 PASS SourceBuffer interface: existence and properties of interface prototype object's "constructor" property
+PASS SourceBuffer interface: existence and properties of interface prototype object's @@unscopables property
 PASS SourceBuffer interface: attribute mode
+PASS Unscopable handled correctly for mode property on SourceBuffer
 PASS SourceBuffer interface: attribute updating
+PASS Unscopable handled correctly for updating property on SourceBuffer
 PASS SourceBuffer interface: attribute buffered
+PASS Unscopable handled correctly for buffered property on SourceBuffer
 PASS SourceBuffer interface: attribute timestampOffset
+PASS Unscopable handled correctly for timestampOffset property on SourceBuffer
 PASS SourceBuffer interface: attribute audioTracks
+PASS Unscopable handled correctly for audioTracks property on SourceBuffer
 PASS SourceBuffer interface: attribute videoTracks
+PASS Unscopable handled correctly for videoTracks property on SourceBuffer
 FAIL SourceBuffer interface: attribute textTracks assert_true: The prototype object must have a property "textTracks" expected true got false
+PASS Unscopable handled correctly for textTracks property on SourceBuffer
 PASS SourceBuffer interface: attribute appendWindowStart
+PASS Unscopable handled correctly for appendWindowStart property on SourceBuffer
 PASS SourceBuffer interface: attribute appendWindowEnd
+PASS Unscopable handled correctly for appendWindowEnd property on SourceBuffer
 PASS SourceBuffer interface: attribute onupdatestart
+PASS Unscopable handled correctly for onupdatestart property on SourceBuffer
 PASS SourceBuffer interface: attribute onupdate
+PASS Unscopable handled correctly for onupdate property on SourceBuffer
 PASS SourceBuffer interface: attribute onupdateend
+PASS Unscopable handled correctly for onupdateend property on SourceBuffer
 PASS SourceBuffer interface: attribute onerror
+PASS Unscopable handled correctly for onerror property on SourceBuffer
 PASS SourceBuffer interface: attribute onabort
+PASS Unscopable handled correctly for onabort property on SourceBuffer
 PASS SourceBuffer interface: operation appendBuffer(BufferSource)
+PASS Unscopable handled correctly for appendBuffer(BufferSource) on SourceBuffer
 PASS SourceBuffer interface: operation abort()
+PASS Unscopable handled correctly for abort() on SourceBuffer
 PASS SourceBuffer interface: operation remove(double, unrestricted double)
+PASS Unscopable handled correctly for remove(double, unrestricted double) on SourceBuffer
 PASS SourceBuffer must be primary interface of sourceBuffer
 PASS Stringification of sourceBuffer
 PASS SourceBuffer interface: sourceBuffer must inherit property "mode" with the proper type
@@ -90,9 +126,13 @@
 PASS SourceBufferList interface object name
 PASS SourceBufferList interface: existence and properties of interface prototype object
 PASS SourceBufferList interface: existence and properties of interface prototype object's "constructor" property
+PASS SourceBufferList interface: existence and properties of interface prototype object's @@unscopables property
 PASS SourceBufferList interface: attribute length
+PASS Unscopable handled correctly for length property on SourceBufferList
 PASS SourceBufferList interface: attribute onaddsourcebuffer
+PASS Unscopable handled correctly for onaddsourcebuffer property on SourceBufferList
 PASS SourceBufferList interface: attribute onremovesourcebuffer
+PASS Unscopable handled correctly for onremovesourcebuffer property on SourceBufferList
 PASS SourceBufferList must be primary interface of mediaSource.sourceBuffers
 PASS Stringification of mediaSource.sourceBuffers
 PASS SourceBufferList interface: mediaSource.sourceBuffers must inherit property "length" with the proper type
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mediacapture-fromelement/idlharness-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/mediacapture-fromelement/idlharness-expected.txt
index fe7adc1d..dcbc5d1 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/mediacapture-fromelement/idlharness-expected.txt
+++ b/third_party/WebKit/LayoutTests/external/wpt/mediacapture-fromelement/idlharness-expected.txt
@@ -1,16 +1,21 @@
 This is a testharness.js-based test.
 PASS HTMLCanvasElement interface: operation captureStream(double)
+PASS Unscopable handled correctly for captureStream(double) on HTMLCanvasElement
 PASS HTMLCanvasElement interface: [object HTMLCanvasElement] must inherit property "captureStream(double)" with the proper type
 PASS HTMLCanvasElement interface: calling captureStream(double) on [object HTMLCanvasElement] with too few arguments must throw TypeError
 PASS HTMLMediaElement interface: operation captureStream()
+PASS Unscopable handled correctly for captureStream() on HTMLMediaElement
 FAIL HTMLMediaElement interface: [object HTMLUnknownElement] must inherit property "captureStream()" with the proper type assert_inherits: property "captureStream" not found in prototype chain
 PASS CanvasCaptureMediaStreamTrack interface: existence and properties of interface object
 PASS CanvasCaptureMediaStreamTrack interface object length
 PASS CanvasCaptureMediaStreamTrack interface object name
 PASS CanvasCaptureMediaStreamTrack interface: existence and properties of interface prototype object
 PASS CanvasCaptureMediaStreamTrack interface: existence and properties of interface prototype object's "constructor" property
+PASS CanvasCaptureMediaStreamTrack interface: existence and properties of interface prototype object's @@unscopables property
 PASS CanvasCaptureMediaStreamTrack interface: attribute canvas
+PASS Unscopable handled correctly for canvas property on CanvasCaptureMediaStreamTrack
 PASS CanvasCaptureMediaStreamTrack interface: operation requestFrame()
+PASS Unscopable handled correctly for requestFrame() on CanvasCaptureMediaStreamTrack
 PASS CanvasCaptureMediaStreamTrack must be primary interface of [object CanvasCaptureMediaStreamTrack]
 PASS Stringification of [object CanvasCaptureMediaStreamTrack]
 PASS CanvasCaptureMediaStreamTrack interface: [object CanvasCaptureMediaStreamTrack] must inherit property "canvas" with the proper type
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mediacapture-record/idlharness-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/mediacapture-record/idlharness-expected.txt
index fe3670b..cfb7068 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/mediacapture-record/idlharness-expected.txt
+++ b/third_party/WebKit/LayoutTests/external/wpt/mediacapture-record/idlharness-expected.txt
@@ -1,27 +1,45 @@
 This is a testharness.js-based test.
-Found 56 tests; 50 PASS, 6 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 79 tests; 72 PASS, 7 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS MediaRecorder interface: existence and properties of interface object
 PASS MediaRecorder interface object length
 PASS MediaRecorder interface object name
 PASS MediaRecorder interface: existence and properties of interface prototype object
 PASS MediaRecorder interface: existence and properties of interface prototype object's "constructor" property
+PASS MediaRecorder interface: existence and properties of interface prototype object's @@unscopables property
 PASS MediaRecorder interface: attribute stream
+PASS Unscopable handled correctly for stream property on MediaRecorder
 PASS MediaRecorder interface: attribute mimeType
+PASS Unscopable handled correctly for mimeType property on MediaRecorder
 PASS MediaRecorder interface: attribute state
+PASS Unscopable handled correctly for state property on MediaRecorder
 PASS MediaRecorder interface: attribute onstart
+PASS Unscopable handled correctly for onstart property on MediaRecorder
 PASS MediaRecorder interface: attribute onstop
+PASS Unscopable handled correctly for onstop property on MediaRecorder
 PASS MediaRecorder interface: attribute ondataavailable
+PASS Unscopable handled correctly for ondataavailable property on MediaRecorder
 PASS MediaRecorder interface: attribute onpause
+PASS Unscopable handled correctly for onpause property on MediaRecorder
 PASS MediaRecorder interface: attribute onresume
+PASS Unscopable handled correctly for onresume property on MediaRecorder
 PASS MediaRecorder interface: attribute onerror
+PASS Unscopable handled correctly for onerror property on MediaRecorder
 PASS MediaRecorder interface: attribute videoBitsPerSecond
+PASS Unscopable handled correctly for videoBitsPerSecond property on MediaRecorder
 PASS MediaRecorder interface: attribute audioBitsPerSecond
+PASS Unscopable handled correctly for audioBitsPerSecond property on MediaRecorder
 PASS MediaRecorder interface: operation start(long)
+PASS Unscopable handled correctly for start(long) on MediaRecorder
 PASS MediaRecorder interface: operation stop()
+PASS Unscopable handled correctly for stop() on MediaRecorder
 PASS MediaRecorder interface: operation pause()
+PASS Unscopable handled correctly for pause() on MediaRecorder
 PASS MediaRecorder interface: operation resume()
+PASS Unscopable handled correctly for resume() on MediaRecorder
 PASS MediaRecorder interface: operation requestData()
+PASS Unscopable handled correctly for requestData() on MediaRecorder
 PASS MediaRecorder interface: operation isTypeSupported(DOMString)
+PASS Unscopable handled correctly for isTypeSupported(DOMString) on MediaRecorder
 PASS MediaRecorder must be primary interface of [object MediaRecorder]
 PASS Stringification of [object MediaRecorder]
 PASS MediaRecorder interface: [object MediaRecorder] must inherit property "stream" with the proper type
@@ -48,13 +66,18 @@
 PASS BlobEvent interface object name
 PASS BlobEvent interface: existence and properties of interface prototype object
 PASS BlobEvent interface: existence and properties of interface prototype object's "constructor" property
+PASS BlobEvent interface: existence and properties of interface prototype object's @@unscopables property
 PASS BlobEvent interface: attribute data
+PASS Unscopable handled correctly for data property on BlobEvent
 PASS BlobEvent interface: attribute timecode
+PASS Unscopable handled correctly for timecode property on BlobEvent
 FAIL MediaRecorderErrorEvent interface: existence and properties of interface object assert_own_property: self does not have own property "MediaRecorderErrorEvent" expected property "MediaRecorderErrorEvent" missing
 FAIL MediaRecorderErrorEvent interface object length assert_own_property: self does not have own property "MediaRecorderErrorEvent" expected property "MediaRecorderErrorEvent" missing
 FAIL MediaRecorderErrorEvent interface object name assert_own_property: self does not have own property "MediaRecorderErrorEvent" expected property "MediaRecorderErrorEvent" missing
 FAIL MediaRecorderErrorEvent interface: existence and properties of interface prototype object assert_own_property: self does not have own property "MediaRecorderErrorEvent" expected property "MediaRecorderErrorEvent" missing
 FAIL MediaRecorderErrorEvent interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "MediaRecorderErrorEvent" expected property "MediaRecorderErrorEvent" missing
+FAIL MediaRecorderErrorEvent interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "MediaRecorderErrorEvent" expected property "MediaRecorderErrorEvent" missing
 FAIL MediaRecorderErrorEvent interface: attribute error assert_own_property: self does not have own property "MediaRecorderErrorEvent" expected property "MediaRecorderErrorEvent" missing
+PASS Unscopable handled correctly for error property on MediaRecorderErrorEvent
 Harness: the test ran to completion.
 
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mediacapture-streams/MediaDevices-IDL-all-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/mediacapture-streams/MediaDevices-IDL-all-expected.txt
index bb39da9a3..66f2aaf 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/mediacapture-streams/MediaDevices-IDL-all-expected.txt
+++ b/third_party/WebKit/LayoutTests/external/wpt/mediacapture-streams/MediaDevices-IDL-all-expected.txt
@@ -1,8 +1,10 @@
 This is a testharness.js-based test.
-Found 87 tests; 72 PASS, 15 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 135 tests; 118 PASS, 17 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS Test driver
 PASS Navigator interface: attribute mediaDevices
+PASS Unscopable handled correctly for mediaDevices property on Navigator
 PASS Navigator interface: operation getUserMedia(MediaStreamConstraints, NavigatorUserMediaSuccessCallback, NavigatorUserMediaErrorCallback)
+PASS Unscopable handled correctly for getUserMedia(MediaStreamConstraints, NavigatorUserMediaSuccessCallback, NavigatorUserMediaErrorCallback) on Navigator
 PASS Navigator interface: navigator must inherit property "mediaDevices" with the proper type
 PASS Navigator interface: navigator must inherit property "getUserMedia(MediaStreamConstraints, NavigatorUserMediaSuccessCallback, NavigatorUserMediaErrorCallback)" with the proper type
 PASS Navigator interface: calling getUserMedia(MediaStreamConstraints, NavigatorUserMediaSuccessCallback, NavigatorUserMediaErrorCallback) on navigator with too few arguments must throw TypeError
@@ -11,59 +13,97 @@
 PASS MediaStream interface object name
 PASS MediaStream interface: existence and properties of interface prototype object
 PASS MediaStream interface: existence and properties of interface prototype object's "constructor" property
+PASS MediaStream interface: existence and properties of interface prototype object's @@unscopables property
 PASS MediaStream interface: attribute id
+PASS Unscopable handled correctly for id property on MediaStream
 PASS MediaStream interface: operation getAudioTracks()
+PASS Unscopable handled correctly for getAudioTracks() on MediaStream
 PASS MediaStream interface: operation getVideoTracks()
+PASS Unscopable handled correctly for getVideoTracks() on MediaStream
 PASS MediaStream interface: operation getTracks()
+PASS Unscopable handled correctly for getTracks() on MediaStream
 PASS MediaStream interface: operation getTrackById(DOMString)
+PASS Unscopable handled correctly for getTrackById(DOMString) on MediaStream
 PASS MediaStream interface: operation addTrack(MediaStreamTrack)
+PASS Unscopable handled correctly for addTrack(MediaStreamTrack) on MediaStream
 PASS MediaStream interface: operation removeTrack(MediaStreamTrack)
+PASS Unscopable handled correctly for removeTrack(MediaStreamTrack) on MediaStream
 PASS MediaStream interface: operation clone()
+PASS Unscopable handled correctly for clone() on MediaStream
 PASS MediaStream interface: attribute active
+PASS Unscopable handled correctly for active property on MediaStream
 PASS MediaStream interface: attribute onaddtrack
+PASS Unscopable handled correctly for onaddtrack property on MediaStream
 PASS MediaStream interface: attribute onremovetrack
+PASS Unscopable handled correctly for onremovetrack property on MediaStream
 PASS MediaStreamTrack interface: existence and properties of interface object
 PASS MediaStreamTrack interface object length
 PASS MediaStreamTrack interface object name
 PASS MediaStreamTrack interface: existence and properties of interface prototype object
 PASS MediaStreamTrack interface: existence and properties of interface prototype object's "constructor" property
+PASS MediaStreamTrack interface: existence and properties of interface prototype object's @@unscopables property
 PASS MediaStreamTrack interface: attribute kind
+PASS Unscopable handled correctly for kind property on MediaStreamTrack
 PASS MediaStreamTrack interface: attribute id
+PASS Unscopable handled correctly for id property on MediaStreamTrack
 PASS MediaStreamTrack interface: attribute label
+PASS Unscopable handled correctly for label property on MediaStreamTrack
 PASS MediaStreamTrack interface: attribute enabled
+PASS Unscopable handled correctly for enabled property on MediaStreamTrack
 PASS MediaStreamTrack interface: attribute muted
+PASS Unscopable handled correctly for muted property on MediaStreamTrack
 PASS MediaStreamTrack interface: attribute onmute
+PASS Unscopable handled correctly for onmute property on MediaStreamTrack
 PASS MediaStreamTrack interface: attribute onunmute
+PASS Unscopable handled correctly for onunmute property on MediaStreamTrack
 PASS MediaStreamTrack interface: attribute readyState
+PASS Unscopable handled correctly for readyState property on MediaStreamTrack
 PASS MediaStreamTrack interface: attribute onended
+PASS Unscopable handled correctly for onended property on MediaStreamTrack
 PASS MediaStreamTrack interface: operation clone()
+PASS Unscopable handled correctly for clone() on MediaStreamTrack
 PASS MediaStreamTrack interface: operation stop()
+PASS Unscopable handled correctly for stop() on MediaStreamTrack
 PASS MediaStreamTrack interface: operation getCapabilities()
+PASS Unscopable handled correctly for getCapabilities() on MediaStreamTrack
 PASS MediaStreamTrack interface: operation getConstraints()
+PASS Unscopable handled correctly for getConstraints() on MediaStreamTrack
 PASS MediaStreamTrack interface: operation getSettings()
+PASS Unscopable handled correctly for getSettings() on MediaStreamTrack
 PASS MediaStreamTrack interface: operation applyConstraints(MediaTrackConstraints)
+PASS Unscopable handled correctly for applyConstraints(MediaTrackConstraints) on MediaStreamTrack
 FAIL MediaStreamTrack interface: attribute onoverconstrained assert_true: The prototype object must have a property "onoverconstrained" expected true got false
+PASS Unscopable handled correctly for onoverconstrained property on MediaStreamTrack
 FAIL MediaStreamTrackEvent interface: existence and properties of interface object Cannot read property 'has_extended_attribute' of undefined
 PASS MediaStreamTrackEvent interface object length
 PASS MediaStreamTrackEvent interface object name
 FAIL MediaStreamTrackEvent interface: existence and properties of interface prototype object Cannot read property 'has_extended_attribute' of undefined
 PASS MediaStreamTrackEvent interface: existence and properties of interface prototype object's "constructor" property
+PASS MediaStreamTrackEvent interface: existence and properties of interface prototype object's @@unscopables property
 PASS MediaStreamTrackEvent interface: attribute track
+PASS Unscopable handled correctly for track property on MediaStreamTrackEvent
 FAIL OverconstrainedErrorEvent interface: existence and properties of interface object assert_own_property: self does not have own property "OverconstrainedErrorEvent" expected property "OverconstrainedErrorEvent" missing
 FAIL OverconstrainedErrorEvent interface object length assert_own_property: self does not have own property "OverconstrainedErrorEvent" expected property "OverconstrainedErrorEvent" missing
 FAIL OverconstrainedErrorEvent interface object name assert_own_property: self does not have own property "OverconstrainedErrorEvent" expected property "OverconstrainedErrorEvent" missing
 FAIL OverconstrainedErrorEvent interface: existence and properties of interface prototype object assert_own_property: self does not have own property "OverconstrainedErrorEvent" expected property "OverconstrainedErrorEvent" missing
 FAIL OverconstrainedErrorEvent interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "OverconstrainedErrorEvent" expected property "OverconstrainedErrorEvent" missing
+FAIL OverconstrainedErrorEvent interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "OverconstrainedErrorEvent" expected property "OverconstrainedErrorEvent" missing
 FAIL OverconstrainedErrorEvent interface: attribute error assert_own_property: self does not have own property "OverconstrainedErrorEvent" expected property "OverconstrainedErrorEvent" missing
+PASS Unscopable handled correctly for error property on OverconstrainedErrorEvent
 PASS MediaDevices interface: existence and properties of interface object
 PASS MediaDevices interface object length
 PASS MediaDevices interface object name
 PASS MediaDevices interface: existence and properties of interface prototype object
 PASS MediaDevices interface: existence and properties of interface prototype object's "constructor" property
+PASS MediaDevices interface: existence and properties of interface prototype object's @@unscopables property
 PASS MediaDevices interface: attribute ondevicechange
+PASS Unscopable handled correctly for ondevicechange property on MediaDevices
 PASS MediaDevices interface: operation enumerateDevices()
+PASS Unscopable handled correctly for enumerateDevices() on MediaDevices
 PASS MediaDevices interface: operation getSupportedConstraints()
+PASS Unscopable handled correctly for getSupportedConstraints() on MediaDevices
 PASS MediaDevices interface: operation getUserMedia(MediaStreamConstraints)
+PASS Unscopable handled correctly for getUserMedia(MediaStreamConstraints) on MediaDevices
 PASS MediaDevices must be primary interface of navigator.mediaDevices
 PASS Stringification of navigator.mediaDevices
 PASS MediaDevices interface: navigator.mediaDevices must inherit property "ondevicechange" with the proper type
@@ -76,16 +116,24 @@
 PASS MediaDeviceInfo interface object name
 PASS MediaDeviceInfo interface: existence and properties of interface prototype object
 PASS MediaDeviceInfo interface: existence and properties of interface prototype object's "constructor" property
+PASS MediaDeviceInfo interface: existence and properties of interface prototype object's @@unscopables property
 PASS MediaDeviceInfo interface: attribute deviceId
+PASS Unscopable handled correctly for deviceId property on MediaDeviceInfo
 PASS MediaDeviceInfo interface: attribute kind
+PASS Unscopable handled correctly for kind property on MediaDeviceInfo
 PASS MediaDeviceInfo interface: attribute label
+PASS Unscopable handled correctly for label property on MediaDeviceInfo
 PASS MediaDeviceInfo interface: attribute groupId
+PASS Unscopable handled correctly for groupId property on MediaDeviceInfo
 PASS MediaDeviceInfo interface: operation toJSON()
+PASS Unscopable handled correctly for toJSON() on MediaDeviceInfo
 FAIL InputDeviceInfo interface: existence and properties of interface object assert_own_property: self does not have own property "InputDeviceInfo" expected property "InputDeviceInfo" missing
 FAIL InputDeviceInfo interface object length assert_own_property: self does not have own property "InputDeviceInfo" expected property "InputDeviceInfo" missing
 FAIL InputDeviceInfo interface object name assert_own_property: self does not have own property "InputDeviceInfo" expected property "InputDeviceInfo" missing
 FAIL InputDeviceInfo interface: existence and properties of interface prototype object assert_own_property: self does not have own property "InputDeviceInfo" expected property "InputDeviceInfo" missing
 FAIL InputDeviceInfo interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "InputDeviceInfo" expected property "InputDeviceInfo" missing
+FAIL InputDeviceInfo interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "InputDeviceInfo" expected property "InputDeviceInfo" missing
 FAIL InputDeviceInfo interface: operation getCapabilities() assert_own_property: self does not have own property "InputDeviceInfo" expected property "InputDeviceInfo" missing
+PASS Unscopable handled correctly for getCapabilities() on InputDeviceInfo
 Harness: the test ran to completion.
 
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mediacapture-streams/MediaDevices-IDL-enumerateDevices-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/mediacapture-streams/MediaDevices-IDL-enumerateDevices-expected.txt
index 7e4fd09..a50274d 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/mediacapture-streams/MediaDevices-IDL-enumerateDevices-expected.txt
+++ b/third_party/WebKit/LayoutTests/external/wpt/mediacapture-streams/MediaDevices-IDL-enumerateDevices-expected.txt
@@ -1,76 +1,122 @@
 This is a testharness.js-based test.
-Found 85 tests; 72 PASS, 13 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 133 tests; 118 PASS, 15 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS Test MediaDevices.enumerateDevices call and result. Types only.
 PASS Navigator interface: attribute mediaDevices
+PASS Unscopable handled correctly for mediaDevices property on Navigator
 PASS Navigator interface: operation getUserMedia(MediaStreamConstraints, NavigatorUserMediaSuccessCallback, NavigatorUserMediaErrorCallback)
+PASS Unscopable handled correctly for getUserMedia(MediaStreamConstraints, NavigatorUserMediaSuccessCallback, NavigatorUserMediaErrorCallback) on Navigator
 PASS MediaStream interface: existence and properties of interface object
 PASS MediaStream interface object length
 PASS MediaStream interface object name
 PASS MediaStream interface: existence and properties of interface prototype object
 PASS MediaStream interface: existence and properties of interface prototype object's "constructor" property
+PASS MediaStream interface: existence and properties of interface prototype object's @@unscopables property
 PASS MediaStream interface: attribute id
+PASS Unscopable handled correctly for id property on MediaStream
 PASS MediaStream interface: operation getAudioTracks()
+PASS Unscopable handled correctly for getAudioTracks() on MediaStream
 PASS MediaStream interface: operation getVideoTracks()
+PASS Unscopable handled correctly for getVideoTracks() on MediaStream
 PASS MediaStream interface: operation getTracks()
+PASS Unscopable handled correctly for getTracks() on MediaStream
 PASS MediaStream interface: operation getTrackById(DOMString)
+PASS Unscopable handled correctly for getTrackById(DOMString) on MediaStream
 PASS MediaStream interface: operation addTrack(MediaStreamTrack)
+PASS Unscopable handled correctly for addTrack(MediaStreamTrack) on MediaStream
 PASS MediaStream interface: operation removeTrack(MediaStreamTrack)
+PASS Unscopable handled correctly for removeTrack(MediaStreamTrack) on MediaStream
 PASS MediaStream interface: operation clone()
+PASS Unscopable handled correctly for clone() on MediaStream
 PASS MediaStream interface: attribute active
+PASS Unscopable handled correctly for active property on MediaStream
 PASS MediaStream interface: attribute onaddtrack
+PASS Unscopable handled correctly for onaddtrack property on MediaStream
 PASS MediaStream interface: attribute onremovetrack
+PASS Unscopable handled correctly for onremovetrack property on MediaStream
 PASS MediaStreamTrack interface: existence and properties of interface object
 PASS MediaStreamTrack interface object length
 PASS MediaStreamTrack interface object name
 PASS MediaStreamTrack interface: existence and properties of interface prototype object
 PASS MediaStreamTrack interface: existence and properties of interface prototype object's "constructor" property
+PASS MediaStreamTrack interface: existence and properties of interface prototype object's @@unscopables property
 PASS MediaStreamTrack interface: attribute kind
+PASS Unscopable handled correctly for kind property on MediaStreamTrack
 PASS MediaStreamTrack interface: attribute id
+PASS Unscopable handled correctly for id property on MediaStreamTrack
 PASS MediaStreamTrack interface: attribute label
+PASS Unscopable handled correctly for label property on MediaStreamTrack
 PASS MediaStreamTrack interface: attribute enabled
+PASS Unscopable handled correctly for enabled property on MediaStreamTrack
 PASS MediaStreamTrack interface: attribute muted
+PASS Unscopable handled correctly for muted property on MediaStreamTrack
 PASS MediaStreamTrack interface: attribute onmute
+PASS Unscopable handled correctly for onmute property on MediaStreamTrack
 PASS MediaStreamTrack interface: attribute onunmute
+PASS Unscopable handled correctly for onunmute property on MediaStreamTrack
 PASS MediaStreamTrack interface: attribute readyState
+PASS Unscopable handled correctly for readyState property on MediaStreamTrack
 PASS MediaStreamTrack interface: attribute onended
+PASS Unscopable handled correctly for onended property on MediaStreamTrack
 PASS MediaStreamTrack interface: operation clone()
+PASS Unscopable handled correctly for clone() on MediaStreamTrack
 PASS MediaStreamTrack interface: operation stop()
+PASS Unscopable handled correctly for stop() on MediaStreamTrack
 PASS MediaStreamTrack interface: operation getCapabilities()
+PASS Unscopable handled correctly for getCapabilities() on MediaStreamTrack
 PASS MediaStreamTrack interface: operation getConstraints()
+PASS Unscopable handled correctly for getConstraints() on MediaStreamTrack
 PASS MediaStreamTrack interface: operation getSettings()
+PASS Unscopable handled correctly for getSettings() on MediaStreamTrack
 PASS MediaStreamTrack interface: operation applyConstraints(MediaTrackConstraints)
+PASS Unscopable handled correctly for applyConstraints(MediaTrackConstraints) on MediaStreamTrack
 FAIL MediaStreamTrack interface: attribute onoverconstrained assert_true: The prototype object must have a property "onoverconstrained" expected true got false
+PASS Unscopable handled correctly for onoverconstrained property on MediaStreamTrack
 PASS MediaStreamTrackEvent interface: existence and properties of interface object
 PASS MediaStreamTrackEvent interface object length
 PASS MediaStreamTrackEvent interface object name
 PASS MediaStreamTrackEvent interface: existence and properties of interface prototype object
 PASS MediaStreamTrackEvent interface: existence and properties of interface prototype object's "constructor" property
+PASS MediaStreamTrackEvent interface: existence and properties of interface prototype object's @@unscopables property
 PASS MediaStreamTrackEvent interface: attribute track
+PASS Unscopable handled correctly for track property on MediaStreamTrackEvent
 FAIL OverconstrainedErrorEvent interface: existence and properties of interface object assert_own_property: self does not have own property "OverconstrainedErrorEvent" expected property "OverconstrainedErrorEvent" missing
 FAIL OverconstrainedErrorEvent interface object length assert_own_property: self does not have own property "OverconstrainedErrorEvent" expected property "OverconstrainedErrorEvent" missing
 FAIL OverconstrainedErrorEvent interface object name assert_own_property: self does not have own property "OverconstrainedErrorEvent" expected property "OverconstrainedErrorEvent" missing
 FAIL OverconstrainedErrorEvent interface: existence and properties of interface prototype object assert_own_property: self does not have own property "OverconstrainedErrorEvent" expected property "OverconstrainedErrorEvent" missing
 FAIL OverconstrainedErrorEvent interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "OverconstrainedErrorEvent" expected property "OverconstrainedErrorEvent" missing
+FAIL OverconstrainedErrorEvent interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "OverconstrainedErrorEvent" expected property "OverconstrainedErrorEvent" missing
 FAIL OverconstrainedErrorEvent interface: attribute error assert_own_property: self does not have own property "OverconstrainedErrorEvent" expected property "OverconstrainedErrorEvent" missing
+PASS Unscopable handled correctly for error property on OverconstrainedErrorEvent
 PASS MediaDevices interface: existence and properties of interface object
 PASS MediaDevices interface object length
 PASS MediaDevices interface object name
 PASS MediaDevices interface: existence and properties of interface prototype object
 PASS MediaDevices interface: existence and properties of interface prototype object's "constructor" property
+PASS MediaDevices interface: existence and properties of interface prototype object's @@unscopables property
 PASS MediaDevices interface: attribute ondevicechange
+PASS Unscopable handled correctly for ondevicechange property on MediaDevices
 PASS MediaDevices interface: operation enumerateDevices()
+PASS Unscopable handled correctly for enumerateDevices() on MediaDevices
 PASS MediaDevices interface: operation getSupportedConstraints()
+PASS Unscopable handled correctly for getSupportedConstraints() on MediaDevices
 PASS MediaDevices interface: operation getUserMedia(MediaStreamConstraints)
+PASS Unscopable handled correctly for getUserMedia(MediaStreamConstraints) on MediaDevices
 PASS MediaDeviceInfo interface: existence and properties of interface object
 PASS MediaDeviceInfo interface object length
 PASS MediaDeviceInfo interface object name
 PASS MediaDeviceInfo interface: existence and properties of interface prototype object
 PASS MediaDeviceInfo interface: existence and properties of interface prototype object's "constructor" property
+PASS MediaDeviceInfo interface: existence and properties of interface prototype object's @@unscopables property
 PASS MediaDeviceInfo interface: attribute deviceId
+PASS Unscopable handled correctly for deviceId property on MediaDeviceInfo
 PASS MediaDeviceInfo interface: attribute kind
+PASS Unscopable handled correctly for kind property on MediaDeviceInfo
 PASS MediaDeviceInfo interface: attribute label
+PASS Unscopable handled correctly for label property on MediaDeviceInfo
 PASS MediaDeviceInfo interface: attribute groupId
+PASS Unscopable handled correctly for groupId property on MediaDeviceInfo
 PASS MediaDeviceInfo interface: operation toJSON()
+PASS Unscopable handled correctly for toJSON() on MediaDeviceInfo
 PASS MediaDeviceInfo must be primary interface of _mediaInfo
 PASS Stringification of _mediaInfo
 PASS MediaDeviceInfo interface: _mediaInfo must inherit property "deviceId" with the proper type
@@ -84,6 +130,8 @@
 FAIL InputDeviceInfo interface object name assert_own_property: self does not have own property "InputDeviceInfo" expected property "InputDeviceInfo" missing
 FAIL InputDeviceInfo interface: existence and properties of interface prototype object assert_own_property: self does not have own property "InputDeviceInfo" expected property "InputDeviceInfo" missing
 FAIL InputDeviceInfo interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "InputDeviceInfo" expected property "InputDeviceInfo" missing
+FAIL InputDeviceInfo interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "InputDeviceInfo" expected property "InputDeviceInfo" missing
 FAIL InputDeviceInfo interface: operation getCapabilities() assert_own_property: self does not have own property "InputDeviceInfo" expected property "InputDeviceInfo" missing
+PASS Unscopable handled correctly for getCapabilities() on InputDeviceInfo
 Harness: the test ran to completion.
 
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mediacapture-streams/MediaStreamTrack-idl.https-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/mediacapture-streams/MediaStreamTrack-idl.https-expected.txt
index cb25ca42..124aa42 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/mediacapture-streams/MediaStreamTrack-idl.https-expected.txt
+++ b/third_party/WebKit/LayoutTests/external/wpt/mediacapture-streams/MediaStreamTrack-idl.https-expected.txt
@@ -5,22 +5,39 @@
 PASS MediaStreamTrack interface object name
 PASS MediaStreamTrack interface: existence and properties of interface prototype object
 PASS MediaStreamTrack interface: existence and properties of interface prototype object's "constructor" property
+PASS MediaStreamTrack interface: existence and properties of interface prototype object's @@unscopables property
 PASS MediaStreamTrack interface: attribute kind
+PASS Unscopable handled correctly for kind property on MediaStreamTrack
 PASS MediaStreamTrack interface: attribute id
+PASS Unscopable handled correctly for id property on MediaStreamTrack
 PASS MediaStreamTrack interface: attribute label
+PASS Unscopable handled correctly for label property on MediaStreamTrack
 PASS MediaStreamTrack interface: attribute enabled
+PASS Unscopable handled correctly for enabled property on MediaStreamTrack
 PASS MediaStreamTrack interface: attribute muted
+PASS Unscopable handled correctly for muted property on MediaStreamTrack
 PASS MediaStreamTrack interface: attribute onmute
+PASS Unscopable handled correctly for onmute property on MediaStreamTrack
 PASS MediaStreamTrack interface: attribute onunmute
+PASS Unscopable handled correctly for onunmute property on MediaStreamTrack
 PASS MediaStreamTrack interface: attribute readyState
+PASS Unscopable handled correctly for readyState property on MediaStreamTrack
 PASS MediaStreamTrack interface: attribute onended
+PASS Unscopable handled correctly for onended property on MediaStreamTrack
 FAIL MediaStreamTrack interface: attribute onoverconstrained assert_true: The prototype object must have a property "onoverconstrained" expected true got false
+PASS Unscopable handled correctly for onoverconstrained property on MediaStreamTrack
 PASS MediaStreamTrack interface: operation clone()
+PASS Unscopable handled correctly for clone() on MediaStreamTrack
 PASS MediaStreamTrack interface: operation stop()
+PASS Unscopable handled correctly for stop() on MediaStreamTrack
 PASS MediaStreamTrack interface: operation getCapabilities()
+PASS Unscopable handled correctly for getCapabilities() on MediaStreamTrack
 PASS MediaStreamTrack interface: operation getConstraints()
+PASS Unscopable handled correctly for getConstraints() on MediaStreamTrack
 PASS MediaStreamTrack interface: operation getSettings()
+PASS Unscopable handled correctly for getSettings() on MediaStreamTrack
 PASS MediaStreamTrack interface: operation applyConstraints(MediaTrackConstraints)
+PASS Unscopable handled correctly for applyConstraints(MediaTrackConstraints) on MediaStreamTrack
 PASS MediaStreamTrack must be primary interface of track
 PASS Stringification of track
 PASS MediaStreamTrack interface: track must inherit property "kind" with the proper type
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mediasession/idlharness-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/mediasession/idlharness-expected.txt
index 6a92e62..d5c3de3 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/mediasession/idlharness-expected.txt
+++ b/third_party/WebKit/LayoutTests/external/wpt/mediasession/idlharness-expected.txt
@@ -1,24 +1,34 @@
 This is a testharness.js-based test.
 FAIL Window interface: existence and properties of interface object assert_false: expected false got true
 PASS Navigator interface: attribute mediaSession
+PASS Unscopable handled correctly for mediaSession property on Navigator
 PASS Navigator interface: navigator must inherit property "mediaSession" with the proper type
 PASS MediaSession interface: existence and properties of interface object
 PASS MediaSession interface object length
 PASS MediaSession interface object name
 PASS MediaSession interface: existence and properties of interface prototype object
 PASS MediaSession interface: existence and properties of interface prototype object's "constructor" property
+PASS MediaSession interface: existence and properties of interface prototype object's @@unscopables property
 PASS MediaSession interface: attribute metadata
+PASS Unscopable handled correctly for metadata property on MediaSession
 PASS MediaSession interface: attribute playbackState
+PASS Unscopable handled correctly for playbackState property on MediaSession
 PASS MediaSession interface: operation setActionHandler(MediaSessionAction, MediaSessionActionHandler)
+PASS Unscopable handled correctly for setActionHandler(MediaSessionAction, MediaSessionActionHandler) on MediaSession
 PASS MediaMetadata interface: existence and properties of interface object
 PASS MediaMetadata interface object length
 PASS MediaMetadata interface object name
 PASS MediaMetadata interface: existence and properties of interface prototype object
 PASS MediaMetadata interface: existence and properties of interface prototype object's "constructor" property
+PASS MediaMetadata interface: existence and properties of interface prototype object's @@unscopables property
 PASS MediaMetadata interface: attribute title
+PASS Unscopable handled correctly for title property on MediaMetadata
 PASS MediaMetadata interface: attribute artist
+PASS Unscopable handled correctly for artist property on MediaMetadata
 PASS MediaMetadata interface: attribute album
+PASS Unscopable handled correctly for album property on MediaMetadata
 PASS MediaMetadata interface: attribute artwork
+PASS Unscopable handled correctly for artwork property on MediaMetadata
 PASS MediaMetadata must be primary interface of [object MediaMetadata]
 PASS Stringification of [object MediaMetadata]
 PASS MediaMetadata interface: [object MediaMetadata] must inherit property "title" with the proper type
diff --git a/third_party/WebKit/LayoutTests/external/wpt/navigation-timing/nav2_idlharness-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/navigation-timing/nav2_idlharness-expected.txt
index d7761ba0..2851111 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/navigation-timing/nav2_idlharness-expected.txt
+++ b/third_party/WebKit/LayoutTests/external/wpt/navigation-timing/nav2_idlharness-expected.txt
@@ -4,16 +4,28 @@
 PASS PerformanceNavigationTiming interface object name
 FAIL PerformanceNavigationTiming interface: existence and properties of interface prototype object Cannot read property 'has_stringifier' of undefined
 PASS PerformanceNavigationTiming interface: existence and properties of interface prototype object's "constructor" property
+PASS PerformanceNavigationTiming interface: existence and properties of interface prototype object's @@unscopables property
 PASS PerformanceNavigationTiming interface: attribute unloadEventStart
+PASS Unscopable handled correctly for unloadEventStart property on PerformanceNavigationTiming
 PASS PerformanceNavigationTiming interface: attribute unloadEventEnd
+PASS Unscopable handled correctly for unloadEventEnd property on PerformanceNavigationTiming
 PASS PerformanceNavigationTiming interface: attribute domInteractive
+PASS Unscopable handled correctly for domInteractive property on PerformanceNavigationTiming
 PASS PerformanceNavigationTiming interface: attribute domContentLoadedEventStart
+PASS Unscopable handled correctly for domContentLoadedEventStart property on PerformanceNavigationTiming
 PASS PerformanceNavigationTiming interface: attribute domContentLoadedEventEnd
+PASS Unscopable handled correctly for domContentLoadedEventEnd property on PerformanceNavigationTiming
 PASS PerformanceNavigationTiming interface: attribute domComplete
+PASS Unscopable handled correctly for domComplete property on PerformanceNavigationTiming
 PASS PerformanceNavigationTiming interface: attribute loadEventStart
+PASS Unscopable handled correctly for loadEventStart property on PerformanceNavigationTiming
 PASS PerformanceNavigationTiming interface: attribute loadEventEnd
+PASS Unscopable handled correctly for loadEventEnd property on PerformanceNavigationTiming
 PASS PerformanceNavigationTiming interface: attribute type
+PASS Unscopable handled correctly for type property on PerformanceNavigationTiming
 PASS PerformanceNavigationTiming interface: attribute redirectCount
+PASS Unscopable handled correctly for redirectCount property on PerformanceNavigationTiming
 PASS PerformanceNavigationTiming interface: operation toJSON()
+PASS Unscopable handled correctly for toJSON() on PerformanceNavigationTiming
 Harness: the test ran to completion.
 
diff --git a/third_party/WebKit/LayoutTests/external/wpt/orientation-event/idlharness-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/orientation-event/idlharness-expected.txt
index 99706d12..31e9ba4 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/orientation-event/idlharness-expected.txt
+++ b/third_party/WebKit/LayoutTests/external/wpt/orientation-event/idlharness-expected.txt
@@ -1,15 +1,22 @@
 This is a testharness.js-based test.
 FAIL Window interface: attribute ondeviceorientation assert_true: The prototype object must have a property "ondeviceorientation" expected true got false
+PASS Unscopable handled correctly for ondeviceorientation property on Window
 FAIL Window interface: attribute ondevicemotion assert_true: The prototype object must have a property "ondevicemotion" expected true got false
+PASS Unscopable handled correctly for ondevicemotion property on Window
 PASS DeviceOrientationEvent interface: existence and properties of interface object
 PASS DeviceOrientationEvent interface object length
 PASS DeviceOrientationEvent interface object name
 PASS DeviceOrientationEvent interface: existence and properties of interface prototype object
 PASS DeviceOrientationEvent interface: existence and properties of interface prototype object's "constructor" property
+PASS DeviceOrientationEvent interface: existence and properties of interface prototype object's @@unscopables property
 PASS DeviceOrientationEvent interface: attribute alpha
+PASS Unscopable handled correctly for alpha property on DeviceOrientationEvent
 PASS DeviceOrientationEvent interface: attribute beta
+PASS Unscopable handled correctly for beta property on DeviceOrientationEvent
 PASS DeviceOrientationEvent interface: attribute gamma
+PASS Unscopable handled correctly for gamma property on DeviceOrientationEvent
 PASS DeviceOrientationEvent interface: attribute absolute
+PASS Unscopable handled correctly for absolute property on DeviceOrientationEvent
 PASS DeviceOrientationEvent must be primary interface of new DeviceOrientationEvent("foo")
 PASS Stringification of new DeviceOrientationEvent("foo")
 PASS DeviceOrientationEvent interface: new DeviceOrientationEvent("foo") must inherit property "alpha" with the proper type
@@ -21,10 +28,15 @@
 PASS DeviceMotionEvent interface object name
 PASS DeviceMotionEvent interface: existence and properties of interface prototype object
 PASS DeviceMotionEvent interface: existence and properties of interface prototype object's "constructor" property
+PASS DeviceMotionEvent interface: existence and properties of interface prototype object's @@unscopables property
 PASS DeviceMotionEvent interface: attribute acceleration
+PASS Unscopable handled correctly for acceleration property on DeviceMotionEvent
 PASS DeviceMotionEvent interface: attribute accelerationIncludingGravity
+PASS Unscopable handled correctly for accelerationIncludingGravity property on DeviceMotionEvent
 PASS DeviceMotionEvent interface: attribute rotationRate
+PASS Unscopable handled correctly for rotationRate property on DeviceMotionEvent
 PASS DeviceMotionEvent interface: attribute interval
+PASS Unscopable handled correctly for interval property on DeviceMotionEvent
 PASS DeviceMotionEvent must be primary interface of new DeviceMotionEvent("foo")
 PASS Stringification of new DeviceMotionEvent("foo")
 PASS DeviceMotionEvent interface: new DeviceMotionEvent("foo") must inherit property "acceleration" with the proper type
diff --git a/third_party/WebKit/LayoutTests/external/wpt/payment-handler/interfaces.https.any-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/payment-handler/interfaces.https.any-expected.txt
index 0e8b19e..acb6e796 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/payment-handler/interfaces.https.any-expected.txt
+++ b/third_party/WebKit/LayoutTests/external/wpt/payment-handler/interfaces.https.any-expected.txt
@@ -5,19 +5,29 @@
 PASS PaymentManager interface object name
 PASS PaymentManager interface: existence and properties of interface prototype object
 PASS PaymentManager interface: existence and properties of interface prototype object's "constructor" property
+PASS PaymentManager interface: existence and properties of interface prototype object's @@unscopables property
 PASS PaymentManager interface: attribute instruments
+PASS Unscopable handled correctly for instruments property on PaymentManager
 FAIL PaymentManager interface: operation requestPermission() assert_own_property: interface object missing static operation expected property "requestPermission" missing
+PASS Unscopable handled correctly for requestPermission() on PaymentManager
 PASS PaymentInstruments interface: existence and properties of interface object
 PASS PaymentInstruments interface object length
 PASS PaymentInstruments interface object name
 PASS PaymentInstruments interface: existence and properties of interface prototype object
 PASS PaymentInstruments interface: existence and properties of interface prototype object's "constructor" property
+PASS PaymentInstruments interface: existence and properties of interface prototype object's @@unscopables property
 PASS PaymentInstruments interface: operation delete(DOMString)
+PASS Unscopable handled correctly for delete(DOMString) on PaymentInstruments
 PASS PaymentInstruments interface: operation get(DOMString)
+PASS Unscopable handled correctly for get(DOMString) on PaymentInstruments
 PASS PaymentInstruments interface: operation keys()
+PASS Unscopable handled correctly for keys() on PaymentInstruments
 PASS PaymentInstruments interface: operation has(DOMString)
+PASS Unscopable handled correctly for has(DOMString) on PaymentInstruments
 PASS PaymentInstruments interface: operation set(DOMString, PaymentInstrument)
+PASS Unscopable handled correctly for set(DOMString, PaymentInstrument) on PaymentInstruments
 PASS PaymentInstruments interface: operation clear()
+PASS Unscopable handled correctly for clear() on PaymentInstruments
 PASS PaymentRequestEvent interface: existence and properties of interface object
 Harness: the test ran to completion.
 
diff --git a/third_party/WebKit/LayoutTests/external/wpt/payment-handler/interfaces.https.any.worker-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/payment-handler/interfaces.https.any.worker-expected.txt
index 16088e33..234aac8 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/payment-handler/interfaces.https.any.worker-expected.txt
+++ b/third_party/WebKit/LayoutTests/external/wpt/payment-handler/interfaces.https.any.worker-expected.txt
@@ -5,19 +5,28 @@
 FAIL PaymentManager interface object name assert_own_property: self does not have own property "PaymentManager" expected property "PaymentManager" missing
 FAIL PaymentManager interface: existence and properties of interface prototype object assert_own_property: self does not have own property "PaymentManager" expected property "PaymentManager" missing
 FAIL PaymentManager interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "PaymentManager" expected property "PaymentManager" missing
+FAIL PaymentManager interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "PaymentManager" expected property "PaymentManager" missing
 FAIL PaymentManager interface: attribute instruments assert_own_property: self does not have own property "PaymentManager" expected property "PaymentManager" missing
+PASS Unscopable handled correctly for instruments property on PaymentManager
 FAIL PaymentManager interface: member requestPermission Cannot use 'in' operator to search for 'requestPermission' in undefined
 PASS PaymentInstruments interface: existence and properties of interface object
 PASS PaymentInstruments interface object length
 PASS PaymentInstruments interface object name
 PASS PaymentInstruments interface: existence and properties of interface prototype object
 PASS PaymentInstruments interface: existence and properties of interface prototype object's "constructor" property
+PASS PaymentInstruments interface: existence and properties of interface prototype object's @@unscopables property
 PASS PaymentInstruments interface: operation delete(DOMString)
+PASS Unscopable handled correctly for delete(DOMString) on PaymentInstruments
 PASS PaymentInstruments interface: operation get(DOMString)
+PASS Unscopable handled correctly for get(DOMString) on PaymentInstruments
 PASS PaymentInstruments interface: operation keys()
+PASS Unscopable handled correctly for keys() on PaymentInstruments
 PASS PaymentInstruments interface: operation has(DOMString)
+PASS Unscopable handled correctly for has(DOMString) on PaymentInstruments
 PASS PaymentInstruments interface: operation set(DOMString, PaymentInstrument)
+PASS Unscopable handled correctly for set(DOMString, PaymentInstrument) on PaymentInstruments
 PASS PaymentInstruments interface: operation clear()
+PASS Unscopable handled correctly for clear() on PaymentInstruments
 PASS PaymentRequestEvent interface: existence and properties of interface object
 Harness: the test ran to completion.
 
diff --git a/third_party/WebKit/LayoutTests/external/wpt/pointerlock/idlharness-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/pointerlock/idlharness-expected.txt
index 1bde47dc9..78ee28d 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/pointerlock/idlharness-expected.txt
+++ b/third_party/WebKit/LayoutTests/external/wpt/pointerlock/idlharness-expected.txt
@@ -1,16 +1,23 @@
 This is a testharness.js-based test.
 PASS Element interface: operation requestPointerLock()
+PASS Unscopable handled correctly for requestPointerLock() on Element
 PASS Element interface: window.document.documentElement must inherit property "requestPointerLock()" with the proper type
 PASS Document interface: attribute onpointerlockchange
+PASS Unscopable handled correctly for onpointerlockchange property on Document
 PASS Document interface: attribute onpointerlockerror
+PASS Unscopable handled correctly for onpointerlockerror property on Document
 PASS Document interface: attribute pointerLockElement
+PASS Unscopable handled correctly for pointerLockElement property on Document
 PASS Document interface: operation exitPointerLock()
+PASS Unscopable handled correctly for exitPointerLock() on Document
 FAIL Document interface: window.document must inherit property "onpointerlockchange" with the proper type Unrecognized type EventHandler
 FAIL Document interface: window.document must inherit property "onpointerlockerror" with the proper type Unrecognized type EventHandler
 PASS Document interface: window.document must inherit property "pointerLockElement" with the proper type
 PASS Document interface: window.document must inherit property "exitPointerLock()" with the proper type
 PASS MouseEvent interface: attribute movementX
+PASS Unscopable handled correctly for movementX property on MouseEvent
 PASS MouseEvent interface: attribute movementY
+PASS Unscopable handled correctly for movementY property on MouseEvent
 PASS MouseEvent interface: new MouseEvent('mousemove') must inherit property "movementX" with the proper type
 PASS MouseEvent interface: new MouseEvent('mousemove') must inherit property "movementY" with the proper type
 PASS MouseEvent interface: new MouseEvent('pointerlockchange') must inherit property "movementX" with the proper type
diff --git a/third_party/WebKit/LayoutTests/external/wpt/screen-orientation/lock-bad-argument-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/screen-orientation/lock-bad-argument-expected.txt
deleted file mode 100644
index 20f3d00d..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/screen-orientation/lock-bad-argument-expected.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-This is a testharness.js-based test.
-FAIL Test that screen.orientation.lock() throws when the input isn't valid. assert_throws: function "function() {
-        screen.orientation.lock('invalid-orientation');
-    }" did not throw
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/interfaces-sw.https-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/interfaces-sw.https-expected.txt
index d8dd6b5..379e5662 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/interfaces-sw.https-expected.txt
+++ b/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/interfaces-sw.https-expected.txt
@@ -14,14 +14,23 @@
 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 Unscopable handled correctly for clients property on ServiceWorkerGlobalScope
 PASS ServiceWorkerGlobalScope interface: attribute registration
+PASS Unscopable handled correctly for registration property on ServiceWorkerGlobalScope
 PASS ServiceWorkerGlobalScope interface: operation skipWaiting()
+PASS Unscopable handled correctly for skipWaiting() on ServiceWorkerGlobalScope
 PASS ServiceWorkerGlobalScope interface: attribute oninstall
+PASS Unscopable handled correctly for oninstall property on ServiceWorkerGlobalScope
 PASS ServiceWorkerGlobalScope interface: attribute onactivate
+PASS Unscopable handled correctly for onactivate property on ServiceWorkerGlobalScope
 PASS ServiceWorkerGlobalScope interface: attribute onfetch
+PASS Unscopable handled correctly for onfetch property on ServiceWorkerGlobalScope
 PASS ServiceWorkerGlobalScope interface: attribute onmessage
+PASS Unscopable handled correctly for onmessage property on ServiceWorkerGlobalScope
 FAIL ServiceWorkerGlobalScope interface: attribute onmessageerror assert_own_property: The global object must have a property "onmessageerror" expected property "onmessageerror" missing
+PASS Unscopable handled correctly for onmessageerror property on ServiceWorkerGlobalScope
 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
@@ -43,30 +52,47 @@
 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 Unscopable handled correctly for url property on Client
 PASS Client interface: attribute id
+PASS Unscopable handled correctly for id property on Client
 PASS Client interface: attribute type
+PASS Unscopable handled correctly for type property on Client
 FAIL Client interface: attribute reserved assert_true: The prototype object must have a property "reserved" expected true got false
+PASS Unscopable handled correctly for reserved property on Client
 PASS Client interface: operation postMessage(any, [object Object])
+PASS Unscopable handled correctly for postMessage(any, [object Object]) on Client
 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 Unscopable handled correctly for visibilityState property on WindowClient
 PASS WindowClient interface: attribute focused
+PASS Unscopable handled correctly for focused property on WindowClient
 FAIL WindowClient interface: attribute ancestorOrigins assert_true: The prototype object must have a property "ancestorOrigins" expected true got false
+PASS Unscopable handled correctly for ancestorOrigins property on WindowClient
 PASS WindowClient interface: operation focus()
+PASS Unscopable handled correctly for focus() on WindowClient
 PASS WindowClient interface: operation navigate(USVString)
+PASS Unscopable handled correctly for navigate(USVString) on WindowClient
 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 Unscopable handled correctly for get(DOMString) on Clients
 PASS Clients interface: operation matchAll(ClientQueryOptions)
+PASS Unscopable handled correctly for matchAll(ClientQueryOptions) on Clients
 PASS Clients interface: operation openWindow(USVString)
+PASS Unscopable handled correctly for openWindow(USVString) on Clients
 PASS Clients interface: operation claim()
+PASS Unscopable handled correctly for claim() on Clients
 PASS Clients must be primary interface of self.clients
 PASS Stringification of self.clients
 PASS Clients interface: self.clients must inherit property "get(DOMString)" with the proper type
@@ -81,24 +107,39 @@
 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
+PASS Unscopable handled correctly for scriptURL property on ServiceWorker
 FAIL ServiceWorker interface: attribute state assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
+PASS Unscopable handled correctly for state property on ServiceWorker
 FAIL ServiceWorker interface: operation postMessage(any, [object Object]) assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
+PASS Unscopable handled correctly for postMessage(any, [object Object]) on ServiceWorker
 FAIL ServiceWorker interface: attribute onstatechange assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
+PASS Unscopable handled correctly for onstatechange property on ServiceWorker
 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 Unscopable handled correctly for installing property on ServiceWorkerRegistration
 PASS ServiceWorkerRegistration interface: attribute waiting
+PASS Unscopable handled correctly for waiting property on ServiceWorkerRegistration
 PASS ServiceWorkerRegistration interface: attribute active
+PASS Unscopable handled correctly for active property on ServiceWorkerRegistration
 PASS ServiceWorkerRegistration interface: attribute navigationPreload
+PASS Unscopable handled correctly for navigationPreload property on ServiceWorkerRegistration
 PASS ServiceWorkerRegistration interface: attribute scope
+PASS Unscopable handled correctly for scope property on ServiceWorkerRegistration
 PASS ServiceWorkerRegistration interface: attribute updateViaCache
+PASS Unscopable handled correctly for updateViaCache property on ServiceWorkerRegistration
 PASS ServiceWorkerRegistration interface: operation update()
+PASS Unscopable handled correctly for update() on ServiceWorkerRegistration
 PASS ServiceWorkerRegistration interface: operation unregister()
+PASS Unscopable handled correctly for unregister() on ServiceWorkerRegistration
 PASS ServiceWorkerRegistration interface: attribute onupdatefound
+PASS Unscopable handled correctly for onupdatefound property on ServiceWorkerRegistration
 PASS ServiceWorkerRegistration must be primary interface of self.registration
 PASS Stringification of self.registration
 PASS ServiceWorkerRegistration interface: self.registration must inherit property "installing" with the proper type
@@ -121,30 +162,47 @@
 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, [object Object],[object Object])
+PASS Unscopable handled correctly for addEventListener(DOMString, EventListener, [object Object],[object Object]) on EventTarget
 PASS EventTarget interface: operation removeEventListener(DOMString, EventListener, [object Object],[object Object])
+PASS Unscopable handled correctly for removeEventListener(DOMString, EventListener, [object Object],[object Object]) on EventTarget
 PASS EventTarget interface: operation dispatchEvent(Event)
+PASS Unscopable handled correctly for dispatchEvent(Event) on EventTarget
 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 Unscopable handled correctly for enable() on NavigationPreloadManager
 PASS NavigationPreloadManager interface: operation disable()
+PASS Unscopable handled correctly for disable() on NavigationPreloadManager
 PASS NavigationPreloadManager interface: operation setHeaderValue(ByteString)
+PASS Unscopable handled correctly for setHeaderValue(ByteString) on NavigationPreloadManager
 PASS NavigationPreloadManager interface: operation getState()
+PASS Unscopable handled correctly for getState() on NavigationPreloadManager
 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, CacheQueryOptions)
+PASS Unscopable handled correctly for match(RequestInfo, CacheQueryOptions) on Cache
 PASS Cache interface: operation matchAll(RequestInfo, CacheQueryOptions)
+PASS Unscopable handled correctly for matchAll(RequestInfo, CacheQueryOptions) on Cache
 PASS Cache interface: operation add(RequestInfo)
+PASS Unscopable handled correctly for add(RequestInfo) on Cache
 PASS Cache interface: operation addAll([object Object])
+PASS Unscopable handled correctly for addAll([object Object]) on Cache
 PASS Cache interface: operation put(RequestInfo, Response)
+PASS Unscopable handled correctly for put(RequestInfo, Response) on Cache
 PASS Cache interface: operation delete(RequestInfo, CacheQueryOptions)
+PASS Unscopable handled correctly for delete(RequestInfo, CacheQueryOptions) on Cache
 PASS Cache interface: operation keys(RequestInfo, CacheQueryOptions)
+PASS Unscopable handled correctly for keys(RequestInfo, CacheQueryOptions) on Cache
 PASS Cache must be primary interface of self.cacheInstance
 PASS Stringification of self.cacheInstance
 PASS Cache interface: self.cacheInstance must inherit property "match(RequestInfo, CacheQueryOptions)" with the proper type
@@ -166,11 +224,17 @@
 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, CacheQueryOptions)
+PASS Unscopable handled correctly for match(RequestInfo, CacheQueryOptions) on CacheStorage
 PASS CacheStorage interface: operation has(DOMString)
+PASS Unscopable handled correctly for has(DOMString) on CacheStorage
 PASS CacheStorage interface: operation open(DOMString)
+PASS Unscopable handled correctly for open(DOMString) on CacheStorage
 PASS CacheStorage interface: operation delete(DOMString)
+PASS Unscopable handled correctly for delete(DOMString) on CacheStorage
 PASS CacheStorage interface: operation keys()
+PASS Unscopable handled correctly for keys() on CacheStorage
 PASS CacheStorage must be primary interface of self.caches
 PASS Stringification of self.caches
 PASS CacheStorage interface: self.caches must inherit property "match(RequestInfo, CacheQueryOptions)" with the proper type
diff --git a/third_party/WebKit/LayoutTests/external/wpt/streams/piping/close-propagation-forward-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/streams/piping/close-propagation-forward-expected.txt
index 46a878f..97077ba 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/streams/piping/close-propagation-forward-expected.txt
+++ b/third_party/WebKit/LayoutTests/external/wpt/streams/piping/close-propagation-forward-expected.txt
@@ -26,5 +26,7 @@
 PASS Closing must be propagated forward: becomes closed after one chunk; preventClose = true
 PASS Closing must be propagated forward: shutdown must not occur until the final write completes
 FAIL Closing must be propagated forward: shutdown must not occur until the final write completes; preventClose = true assert_equals: the pipe must not be complete expected false but got true
+PASS Closing must be propagated forward: shutdown must not occur until the final write completes; becomes closed after first write
+FAIL Closing must be propagated forward: shutdown must not occur until the final write completes; becomes closed after first write; preventClose = true assert_false: the pipe should not complete while the second write is pending expected false got true
 Harness: the test ran to completion.
 
diff --git a/third_party/WebKit/LayoutTests/external/wpt/streams/piping/close-propagation-forward.dedicatedworker-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/streams/piping/close-propagation-forward.dedicatedworker-expected.txt
index 46a878f..97077ba 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/streams/piping/close-propagation-forward.dedicatedworker-expected.txt
+++ b/third_party/WebKit/LayoutTests/external/wpt/streams/piping/close-propagation-forward.dedicatedworker-expected.txt
@@ -26,5 +26,7 @@
 PASS Closing must be propagated forward: becomes closed after one chunk; preventClose = true
 PASS Closing must be propagated forward: shutdown must not occur until the final write completes
 FAIL Closing must be propagated forward: shutdown must not occur until the final write completes; preventClose = true assert_equals: the pipe must not be complete expected false but got true
+PASS Closing must be propagated forward: shutdown must not occur until the final write completes; becomes closed after first write
+FAIL Closing must be propagated forward: shutdown must not occur until the final write completes; becomes closed after first write; preventClose = true assert_false: the pipe should not complete while the second write is pending expected false got true
 Harness: the test ran to completion.
 
diff --git a/third_party/WebKit/LayoutTests/external/wpt/streams/piping/close-propagation-forward.serviceworker.https-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/streams/piping/close-propagation-forward.serviceworker.https-expected.txt
index fe1fb2b..824b9f2b2 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/streams/piping/close-propagation-forward.serviceworker.https-expected.txt
+++ b/third_party/WebKit/LayoutTests/external/wpt/streams/piping/close-propagation-forward.serviceworker.https-expected.txt
@@ -27,5 +27,7 @@
 PASS Closing must be propagated forward: becomes closed after one chunk; preventClose = true
 PASS Closing must be propagated forward: shutdown must not occur until the final write completes
 FAIL Closing must be propagated forward: shutdown must not occur until the final write completes; preventClose = true assert_equals: the pipe must not be complete expected false but got true
+PASS Closing must be propagated forward: shutdown must not occur until the final write completes; becomes closed after first write
+FAIL Closing must be propagated forward: shutdown must not occur until the final write completes; becomes closed after first write; preventClose = true assert_false: the pipe should not complete while the second write is pending expected false got true
 Harness: the test ran to completion.
 
diff --git a/third_party/WebKit/LayoutTests/external/wpt/streams/piping/close-propagation-forward.sharedworker-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/streams/piping/close-propagation-forward.sharedworker-expected.txt
index 46a878f..97077ba 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/streams/piping/close-propagation-forward.sharedworker-expected.txt
+++ b/third_party/WebKit/LayoutTests/external/wpt/streams/piping/close-propagation-forward.sharedworker-expected.txt
@@ -26,5 +26,7 @@
 PASS Closing must be propagated forward: becomes closed after one chunk; preventClose = true
 PASS Closing must be propagated forward: shutdown must not occur until the final write completes
 FAIL Closing must be propagated forward: shutdown must not occur until the final write completes; preventClose = true assert_equals: the pipe must not be complete expected false but got true
+PASS Closing must be propagated forward: shutdown must not occur until the final write completes; becomes closed after first write
+FAIL Closing must be propagated forward: shutdown must not occur until the final write completes; becomes closed after first write; preventClose = true assert_false: the pipe should not complete while the second write is pending expected false got true
 Harness: the test ran to completion.
 
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/streams/piping/error-propagation-forward-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/streams/piping/error-propagation-forward-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/streams/piping/error-propagation-forward-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/streams/piping/error-propagation-forward-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/streams/piping/error-propagation-forward.dedicatedworker-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/streams/piping/error-propagation-forward.dedicatedworker-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/streams/piping/error-propagation-forward.dedicatedworker-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/streams/piping/error-propagation-forward.dedicatedworker-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/streams/piping/error-propagation-forward.serviceworker.https-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/streams/piping/error-propagation-forward.serviceworker.https-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/streams/piping/error-propagation-forward.serviceworker.https-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/streams/piping/error-propagation-forward.serviceworker.https-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/streams/piping/error-propagation-forward.sharedworker-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/streams/piping/error-propagation-forward.sharedworker-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/streams/piping/error-propagation-forward.sharedworker-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/streams/piping/error-propagation-forward.sharedworker-expected.txt
diff --git a/third_party/WebKit/LayoutTests/external/wpt/svg/interfaces-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/svg/interfaces-expected.txt
index 5d99c5d..645b555 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/svg/interfaces-expected.txt
+++ b/third_party/WebKit/LayoutTests/external/wpt/svg/interfaces-expected.txt
@@ -1,45 +1,69 @@
 This is a testharness.js-based test.
-Found 2491 tests; 2417 PASS, 74 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 3017 tests; 2935 PASS, 82 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS Document interface: attribute rootElement
+PASS Unscopable handled correctly for rootElement property on Document
 PASS SVGElement interface: existence and properties of interface object
 PASS SVGElement interface object length
 PASS SVGElement interface object name
 PASS SVGElement interface: existence and properties of interface prototype object
 PASS SVGElement interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGElement interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGElement interface: attribute className
+PASS Unscopable handled correctly for className property on SVGElement
 PASS SVGElement interface: attribute dataset
+PASS Unscopable handled correctly for dataset property on SVGElement
 PASS SVGElement interface: attribute ownerSVGElement
+PASS Unscopable handled correctly for ownerSVGElement property on SVGElement
 PASS SVGElement interface: attribute viewportElement
+PASS Unscopable handled correctly for viewportElement property on SVGElement
 PASS SVGElement interface: attribute tabIndex
+PASS Unscopable handled correctly for tabIndex property on SVGElement
 PASS SVGElement interface: operation focus()
+PASS Unscopable handled correctly for focus() on SVGElement
 PASS SVGElement interface: operation blur()
+PASS Unscopable handled correctly for blur() on SVGElement
 PASS SVGGraphicsElement interface: existence and properties of interface object
 PASS SVGGraphicsElement interface object length
 PASS SVGGraphicsElement interface object name
 PASS SVGGraphicsElement interface: existence and properties of interface prototype object
 PASS SVGGraphicsElement interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGGraphicsElement interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGGraphicsElement interface: attribute transform
+PASS Unscopable handled correctly for transform property on SVGGraphicsElement
 PASS SVGGraphicsElement interface: operation getBBox(SVGBoundingBoxOptions)
+PASS Unscopable handled correctly for getBBox(SVGBoundingBoxOptions) on SVGGraphicsElement
 PASS SVGGraphicsElement interface: operation getCTM()
+PASS Unscopable handled correctly for getCTM() on SVGGraphicsElement
 PASS SVGGraphicsElement interface: operation getScreenCTM()
+PASS Unscopable handled correctly for getScreenCTM() on SVGGraphicsElement
 PASS SVGGraphicsElement interface: attribute requiredExtensions
+PASS Unscopable handled correctly for requiredExtensions property on SVGGraphicsElement
 PASS SVGGraphicsElement interface: attribute systemLanguage
+PASS Unscopable handled correctly for systemLanguage property on SVGGraphicsElement
 PASS SVGGeometryElement interface: existence and properties of interface object
 PASS SVGGeometryElement interface object length
 PASS SVGGeometryElement interface object name
 PASS SVGGeometryElement interface: existence and properties of interface prototype object
 PASS SVGGeometryElement interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGGeometryElement interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGGeometryElement interface: attribute pathLength
+PASS Unscopable handled correctly for pathLength property on SVGGeometryElement
 PASS SVGGeometryElement interface: operation isPointInFill(DOMPoint)
+PASS Unscopable handled correctly for isPointInFill(DOMPoint) on SVGGeometryElement
 PASS SVGGeometryElement interface: operation isPointInStroke(DOMPoint)
+PASS Unscopable handled correctly for isPointInStroke(DOMPoint) on SVGGeometryElement
 PASS SVGGeometryElement interface: operation getTotalLength()
+PASS Unscopable handled correctly for getTotalLength() on SVGGeometryElement
 PASS SVGGeometryElement interface: operation getPointAtLength(float)
+PASS Unscopable handled correctly for getPointAtLength(float) on SVGGeometryElement
 PASS SVGNumber interface: existence and properties of interface object
 PASS SVGNumber interface object length
 PASS SVGNumber interface object name
 PASS SVGNumber interface: existence and properties of interface prototype object
 PASS SVGNumber interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGNumber interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGNumber interface: attribute value
+PASS Unscopable handled correctly for value property on SVGNumber
 PASS SVGNumber must be primary interface of svg.createSVGNumber()
 PASS Stringification of svg.createSVGNumber()
 PASS SVGNumber interface: svg.createSVGNumber() must inherit property "value" with the proper type
@@ -48,6 +72,7 @@
 PASS SVGLength interface object name
 PASS SVGLength interface: existence and properties of interface prototype object
 PASS SVGLength interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGLength interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGLength interface: constant SVG_LENGTHTYPE_UNKNOWN on interface object
 PASS SVGLength interface: constant SVG_LENGTHTYPE_UNKNOWN on interface prototype object
 PASS SVGLength interface: constant SVG_LENGTHTYPE_NUMBER on interface object
@@ -71,11 +96,17 @@
 PASS SVGLength interface: constant SVG_LENGTHTYPE_PC on interface object
 PASS SVGLength interface: constant SVG_LENGTHTYPE_PC on interface prototype object
 PASS SVGLength interface: attribute unitType
+PASS Unscopable handled correctly for unitType property on SVGLength
 PASS SVGLength interface: attribute value
+PASS Unscopable handled correctly for value property on SVGLength
 PASS SVGLength interface: attribute valueInSpecifiedUnits
+PASS Unscopable handled correctly for valueInSpecifiedUnits property on SVGLength
 PASS SVGLength interface: attribute valueAsString
+PASS Unscopable handled correctly for valueAsString property on SVGLength
 PASS SVGLength interface: operation newValueSpecifiedUnits(unsigned short, float)
+PASS Unscopable handled correctly for newValueSpecifiedUnits(unsigned short, float) on SVGLength
 PASS SVGLength interface: operation convertToSpecifiedUnits(unsigned short)
+PASS Unscopable handled correctly for convertToSpecifiedUnits(unsigned short) on SVGLength
 PASS SVGLength must be primary interface of svg.createSVGLength()
 PASS Stringification of svg.createSVGLength()
 PASS SVGLength interface: svg.createSVGLength() must inherit property "SVG_LENGTHTYPE_UNKNOWN" with the proper type
@@ -102,6 +133,7 @@
 PASS SVGAngle interface object name
 PASS SVGAngle interface: existence and properties of interface prototype object
 PASS SVGAngle interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGAngle interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGAngle interface: constant SVG_ANGLETYPE_UNKNOWN on interface object
 PASS SVGAngle interface: constant SVG_ANGLETYPE_UNKNOWN on interface prototype object
 PASS SVGAngle interface: constant SVG_ANGLETYPE_UNSPECIFIED on interface object
@@ -113,11 +145,17 @@
 PASS SVGAngle interface: constant SVG_ANGLETYPE_GRAD on interface object
 PASS SVGAngle interface: constant SVG_ANGLETYPE_GRAD on interface prototype object
 PASS SVGAngle interface: attribute unitType
+PASS Unscopable handled correctly for unitType property on SVGAngle
 PASS SVGAngle interface: attribute value
+PASS Unscopable handled correctly for value property on SVGAngle
 PASS SVGAngle interface: attribute valueInSpecifiedUnits
+PASS Unscopable handled correctly for valueInSpecifiedUnits property on SVGAngle
 PASS SVGAngle interface: attribute valueAsString
+PASS Unscopable handled correctly for valueAsString property on SVGAngle
 PASS SVGAngle interface: operation newValueSpecifiedUnits(unsigned short, float)
+PASS Unscopable handled correctly for newValueSpecifiedUnits(unsigned short, float) on SVGAngle
 PASS SVGAngle interface: operation convertToSpecifiedUnits(unsigned short)
+PASS Unscopable handled correctly for convertToSpecifiedUnits(unsigned short) on SVGAngle
 PASS SVGAngle must be primary interface of svg.createSVGAngle()
 PASS Stringification of svg.createSVGAngle()
 PASS SVGAngle interface: svg.createSVGAngle() must inherit property "SVG_ANGLETYPE_UNKNOWN" with the proper type
@@ -138,15 +176,25 @@
 PASS SVGNumberList interface object name
 PASS SVGNumberList interface: existence and properties of interface prototype object
 PASS SVGNumberList interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGNumberList interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGNumberList interface: attribute length
+PASS Unscopable handled correctly for length property on SVGNumberList
 PASS SVGNumberList interface: attribute numberOfItems
+PASS Unscopable handled correctly for numberOfItems property on SVGNumberList
 PASS SVGNumberList interface: operation clear()
+PASS Unscopable handled correctly for clear() on SVGNumberList
 PASS SVGNumberList interface: operation initialize(SVGNumber)
+PASS Unscopable handled correctly for initialize(SVGNumber) on SVGNumberList
 PASS SVGNumberList interface: operation getItem(unsigned long)
+PASS Unscopable handled correctly for getItem(unsigned long) on SVGNumberList
 PASS SVGNumberList interface: operation insertItemBefore(SVGNumber, unsigned long)
+PASS Unscopable handled correctly for insertItemBefore(SVGNumber, unsigned long) on SVGNumberList
 PASS SVGNumberList interface: operation replaceItem(SVGNumber, unsigned long)
+PASS Unscopable handled correctly for replaceItem(SVGNumber, unsigned long) on SVGNumberList
 PASS SVGNumberList interface: operation removeItem(unsigned long)
+PASS Unscopable handled correctly for removeItem(unsigned long) on SVGNumberList
 PASS SVGNumberList interface: operation appendItem(SVGNumber)
+PASS Unscopable handled correctly for appendItem(SVGNumber) on SVGNumberList
 PASS SVGNumberList must be primary interface of text.rotate.baseVal
 PASS Stringification of text.rotate.baseVal
 PASS SVGNumberList interface: text.rotate.baseVal must inherit property "length" with the proper type
@@ -169,22 +217,35 @@
 PASS SVGLengthList interface object name
 PASS SVGLengthList interface: existence and properties of interface prototype object
 PASS SVGLengthList interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGLengthList interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGLengthList interface: attribute length
+PASS Unscopable handled correctly for length property on SVGLengthList
 PASS SVGLengthList interface: attribute numberOfItems
+PASS Unscopable handled correctly for numberOfItems property on SVGLengthList
 PASS SVGLengthList interface: operation clear()
+PASS Unscopable handled correctly for clear() on SVGLengthList
 PASS SVGLengthList interface: operation initialize(SVGLength)
+PASS Unscopable handled correctly for initialize(SVGLength) on SVGLengthList
 PASS SVGLengthList interface: operation getItem(unsigned long)
+PASS Unscopable handled correctly for getItem(unsigned long) on SVGLengthList
 PASS SVGLengthList interface: operation insertItemBefore(SVGLength, unsigned long)
+PASS Unscopable handled correctly for insertItemBefore(SVGLength, unsigned long) on SVGLengthList
 PASS SVGLengthList interface: operation replaceItem(SVGLength, unsigned long)
+PASS Unscopable handled correctly for replaceItem(SVGLength, unsigned long) on SVGLengthList
 PASS SVGLengthList interface: operation removeItem(unsigned long)
+PASS Unscopable handled correctly for removeItem(unsigned long) on SVGLengthList
 PASS SVGLengthList interface: operation appendItem(SVGLength)
+PASS Unscopable handled correctly for appendItem(SVGLength) on SVGLengthList
 PASS SVGAnimatedBoolean interface: existence and properties of interface object
 PASS SVGAnimatedBoolean interface object length
 PASS SVGAnimatedBoolean interface object name
 PASS SVGAnimatedBoolean interface: existence and properties of interface prototype object
 PASS SVGAnimatedBoolean interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGAnimatedBoolean interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGAnimatedBoolean interface: attribute baseVal
+PASS Unscopable handled correctly for baseVal property on SVGAnimatedBoolean
 PASS SVGAnimatedBoolean interface: attribute animVal
+PASS Unscopable handled correctly for animVal property on SVGAnimatedBoolean
 PASS SVGAnimatedBoolean must be primary interface of feConvolveMatrix.preserveAlpha
 PASS Stringification of feConvolveMatrix.preserveAlpha
 PASS SVGAnimatedBoolean interface: feConvolveMatrix.preserveAlpha must inherit property "baseVal" with the proper type
@@ -194,8 +255,11 @@
 PASS SVGAnimatedEnumeration interface object name
 PASS SVGAnimatedEnumeration interface: existence and properties of interface prototype object
 PASS SVGAnimatedEnumeration interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGAnimatedEnumeration interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGAnimatedEnumeration interface: attribute baseVal
+PASS Unscopable handled correctly for baseVal property on SVGAnimatedEnumeration
 PASS SVGAnimatedEnumeration interface: attribute animVal
+PASS Unscopable handled correctly for animVal property on SVGAnimatedEnumeration
 PASS SVGAnimatedEnumeration must be primary interface of text.lengthAdjust
 PASS Stringification of text.lengthAdjust
 PASS SVGAnimatedEnumeration interface: text.lengthAdjust must inherit property "baseVal" with the proper type
@@ -205,8 +269,11 @@
 PASS SVGAnimatedInteger interface object name
 PASS SVGAnimatedInteger interface: existence and properties of interface prototype object
 PASS SVGAnimatedInteger interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGAnimatedInteger interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGAnimatedInteger interface: attribute baseVal
+PASS Unscopable handled correctly for baseVal property on SVGAnimatedInteger
 PASS SVGAnimatedInteger interface: attribute animVal
+PASS Unscopable handled correctly for animVal property on SVGAnimatedInteger
 PASS SVGAnimatedInteger must be primary interface of feConvolveMatrix.orderX
 PASS Stringification of feConvolveMatrix.orderX
 PASS SVGAnimatedInteger interface: feConvolveMatrix.orderX must inherit property "baseVal" with the proper type
@@ -216,8 +283,11 @@
 PASS SVGAnimatedNumber interface object name
 PASS SVGAnimatedNumber interface: existence and properties of interface prototype object
 PASS SVGAnimatedNumber interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGAnimatedNumber interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGAnimatedNumber interface: attribute baseVal
+PASS Unscopable handled correctly for baseVal property on SVGAnimatedNumber
 PASS SVGAnimatedNumber interface: attribute animVal
+PASS Unscopable handled correctly for animVal property on SVGAnimatedNumber
 PASS SVGAnimatedNumber must be primary interface of stop.offset
 PASS Stringification of stop.offset
 PASS SVGAnimatedNumber interface: stop.offset must inherit property "baseVal" with the proper type
@@ -227,8 +297,11 @@
 PASS SVGAnimatedLength interface object name
 PASS SVGAnimatedLength interface: existence and properties of interface prototype object
 PASS SVGAnimatedLength interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGAnimatedLength interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGAnimatedLength interface: attribute baseVal
+PASS Unscopable handled correctly for baseVal property on SVGAnimatedLength
 PASS SVGAnimatedLength interface: attribute animVal
+PASS Unscopable handled correctly for animVal property on SVGAnimatedLength
 PASS SVGAnimatedLength must be primary interface of svg.x
 PASS Stringification of svg.x
 PASS SVGAnimatedLength interface: svg.x must inherit property "baseVal" with the proper type
@@ -238,8 +311,11 @@
 PASS SVGAnimatedAngle interface object name
 PASS SVGAnimatedAngle interface: existence and properties of interface prototype object
 PASS SVGAnimatedAngle interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGAnimatedAngle interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGAnimatedAngle interface: attribute baseVal
+PASS Unscopable handled correctly for baseVal property on SVGAnimatedAngle
 PASS SVGAnimatedAngle interface: attribute animVal
+PASS Unscopable handled correctly for animVal property on SVGAnimatedAngle
 PASS SVGAnimatedAngle must be primary interface of marker.orientAngle
 PASS Stringification of marker.orientAngle
 PASS SVGAnimatedAngle interface: marker.orientAngle must inherit property "baseVal" with the proper type
@@ -249,8 +325,11 @@
 PASS SVGAnimatedString interface object name
 PASS SVGAnimatedString interface: existence and properties of interface prototype object
 PASS SVGAnimatedString interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGAnimatedString interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGAnimatedString interface: attribute baseVal
+PASS Unscopable handled correctly for baseVal property on SVGAnimatedString
 PASS SVGAnimatedString interface: attribute animVal
+PASS Unscopable handled correctly for animVal property on SVGAnimatedString
 PASS SVGAnimatedString must be primary interface of a.target
 PASS Stringification of a.target
 PASS SVGAnimatedString interface: a.target must inherit property "baseVal" with the proper type
@@ -260,8 +339,11 @@
 PASS SVGAnimatedRect interface object name
 PASS SVGAnimatedRect interface: existence and properties of interface prototype object
 PASS SVGAnimatedRect interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGAnimatedRect interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGAnimatedRect interface: attribute baseVal
+PASS Unscopable handled correctly for baseVal property on SVGAnimatedRect
 PASS SVGAnimatedRect interface: attribute animVal
+PASS Unscopable handled correctly for animVal property on SVGAnimatedRect
 PASS SVGAnimatedRect must be primary interface of svg.viewBox
 PASS Stringification of svg.viewBox
 FAIL SVGAnimatedRect interface: svg.viewBox must inherit property "baseVal" with the proper type assert_true: instanceof DOMRect expected true got false
@@ -271,8 +353,11 @@
 PASS SVGAnimatedNumberList interface object name
 PASS SVGAnimatedNumberList interface: existence and properties of interface prototype object
 PASS SVGAnimatedNumberList interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGAnimatedNumberList interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGAnimatedNumberList interface: attribute baseVal
+PASS Unscopable handled correctly for baseVal property on SVGAnimatedNumberList
 PASS SVGAnimatedNumberList interface: attribute animVal
+PASS Unscopable handled correctly for animVal property on SVGAnimatedNumberList
 PASS SVGAnimatedNumberList must be primary interface of text.rotate
 PASS Stringification of text.rotate
 PASS SVGAnimatedNumberList interface: text.rotate must inherit property "baseVal" with the proper type
@@ -282,8 +367,11 @@
 PASS SVGAnimatedLengthList interface object name
 PASS SVGAnimatedLengthList interface: existence and properties of interface prototype object
 PASS SVGAnimatedLengthList interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGAnimatedLengthList interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGAnimatedLengthList interface: attribute baseVal
+PASS Unscopable handled correctly for baseVal property on SVGAnimatedLengthList
 PASS SVGAnimatedLengthList interface: attribute animVal
+PASS Unscopable handled correctly for animVal property on SVGAnimatedLengthList
 PASS SVGAnimatedLengthList must be primary interface of text.x
 PASS Stringification of text.x
 PASS SVGAnimatedLengthList interface: text.x must inherit property "baseVal" with the proper type
@@ -293,15 +381,25 @@
 PASS SVGStringList interface object name
 PASS SVGStringList interface: existence and properties of interface prototype object
 PASS SVGStringList interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGStringList interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGStringList interface: attribute length
+PASS Unscopable handled correctly for length property on SVGStringList
 PASS SVGStringList interface: attribute numberOfItems
+PASS Unscopable handled correctly for numberOfItems property on SVGStringList
 PASS SVGStringList interface: operation clear()
+PASS Unscopable handled correctly for clear() on SVGStringList
 PASS SVGStringList interface: operation initialize(DOMString)
+PASS Unscopable handled correctly for initialize(DOMString) on SVGStringList
 PASS SVGStringList interface: operation getItem(unsigned long)
+PASS Unscopable handled correctly for getItem(unsigned long) on SVGStringList
 PASS SVGStringList interface: operation insertItemBefore(DOMString, unsigned long)
+PASS Unscopable handled correctly for insertItemBefore(DOMString, unsigned long) on SVGStringList
 PASS SVGStringList interface: operation replaceItem(DOMString, unsigned long)
+PASS Unscopable handled correctly for replaceItem(DOMString, unsigned long) on SVGStringList
 PASS SVGStringList interface: operation removeItem(unsigned long)
+PASS Unscopable handled correctly for removeItem(unsigned long) on SVGStringList
 PASS SVGStringList interface: operation appendItem(DOMString)
+PASS Unscopable handled correctly for appendItem(DOMString) on SVGStringList
 PASS SVGStringList must be primary interface of a.requiredExtensions
 PASS Stringification of a.requiredExtensions
 PASS SVGStringList interface: a.requiredExtensions must inherit property "length" with the proper type
@@ -324,6 +422,7 @@
 PASS SVGUnitTypes interface object name
 PASS SVGUnitTypes interface: existence and properties of interface prototype object
 PASS SVGUnitTypes interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGUnitTypes interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGUnitTypes interface: constant SVG_UNIT_TYPE_UNKNOWN on interface object
 PASS SVGUnitTypes interface: constant SVG_UNIT_TYPE_UNKNOWN on interface prototype object
 PASS SVGUnitTypes interface: constant SVG_UNIT_TYPE_USERSPACEONUSE on interface object
@@ -335,31 +434,57 @@
 PASS SVGSVGElement interface object name
 PASS SVGSVGElement interface: existence and properties of interface prototype object
 PASS SVGSVGElement interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGSVGElement interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGSVGElement interface: attribute x
+PASS Unscopable handled correctly for x property on SVGSVGElement
 PASS SVGSVGElement interface: attribute y
+PASS Unscopable handled correctly for y property on SVGSVGElement
 PASS SVGSVGElement interface: attribute width
+PASS Unscopable handled correctly for width property on SVGSVGElement
 PASS SVGSVGElement interface: attribute height
+PASS Unscopable handled correctly for height property on SVGSVGElement
 PASS SVGSVGElement interface: attribute currentScale
+PASS Unscopable handled correctly for currentScale property on SVGSVGElement
 PASS SVGSVGElement interface: attribute currentTranslate
+PASS Unscopable handled correctly for currentTranslate property on SVGSVGElement
 PASS SVGSVGElement interface: operation getIntersectionList(DOMRectReadOnly, SVGElement)
+PASS Unscopable handled correctly for getIntersectionList(DOMRectReadOnly, SVGElement) on SVGSVGElement
 PASS SVGSVGElement interface: operation getEnclosureList(DOMRectReadOnly, SVGElement)
+PASS Unscopable handled correctly for getEnclosureList(DOMRectReadOnly, SVGElement) on SVGSVGElement
 PASS SVGSVGElement interface: operation checkIntersection(SVGElement, DOMRectReadOnly)
+PASS Unscopable handled correctly for checkIntersection(SVGElement, DOMRectReadOnly) on SVGSVGElement
 PASS SVGSVGElement interface: operation checkEnclosure(SVGElement, DOMRectReadOnly)
+PASS Unscopable handled correctly for checkEnclosure(SVGElement, DOMRectReadOnly) on SVGSVGElement
 PASS SVGSVGElement interface: operation deselectAll()
+PASS Unscopable handled correctly for deselectAll() on SVGSVGElement
 PASS SVGSVGElement interface: operation createSVGNumber()
+PASS Unscopable handled correctly for createSVGNumber() on SVGSVGElement
 PASS SVGSVGElement interface: operation createSVGLength()
+PASS Unscopable handled correctly for createSVGLength() on SVGSVGElement
 PASS SVGSVGElement interface: operation createSVGAngle()
+PASS Unscopable handled correctly for createSVGAngle() on SVGSVGElement
 PASS SVGSVGElement interface: operation createSVGPoint()
+PASS Unscopable handled correctly for createSVGPoint() on SVGSVGElement
 PASS SVGSVGElement interface: operation createSVGMatrix()
+PASS Unscopable handled correctly for createSVGMatrix() on SVGSVGElement
 PASS SVGSVGElement interface: operation createSVGRect()
+PASS Unscopable handled correctly for createSVGRect() on SVGSVGElement
 PASS SVGSVGElement interface: operation createSVGTransform()
+PASS Unscopable handled correctly for createSVGTransform() on SVGSVGElement
 PASS SVGSVGElement interface: operation createSVGTransformFromMatrix(DOMMatrixReadOnly)
+PASS Unscopable handled correctly for createSVGTransformFromMatrix(DOMMatrixReadOnly) on SVGSVGElement
 PASS SVGSVGElement interface: operation suspendRedraw(unsigned long)
+PASS Unscopable handled correctly for suspendRedraw(unsigned long) on SVGSVGElement
 PASS SVGSVGElement interface: operation unsuspendRedraw(unsigned long)
+PASS Unscopable handled correctly for unsuspendRedraw(unsigned long) on SVGSVGElement
 PASS SVGSVGElement interface: operation unsuspendRedrawAll()
+PASS Unscopable handled correctly for unsuspendRedrawAll() on SVGSVGElement
 PASS SVGSVGElement interface: operation forceRedraw()
+PASS Unscopable handled correctly for forceRedraw() on SVGSVGElement
 PASS SVGSVGElement interface: attribute viewBox
+PASS Unscopable handled correctly for viewBox property on SVGSVGElement
 PASS SVGSVGElement interface: attribute preserveAspectRatio
+PASS Unscopable handled correctly for preserveAspectRatio property on SVGSVGElement
 PASS SVGSVGElement interface: constant SVG_ZOOMANDPAN_UNKNOWN on interface object
 PASS SVGSVGElement interface: constant SVG_ZOOMANDPAN_UNKNOWN on interface prototype object
 PASS SVGSVGElement interface: constant SVG_ZOOMANDPAN_DISABLE on interface object
@@ -367,6 +492,7 @@
 PASS SVGSVGElement interface: constant SVG_ZOOMANDPAN_MAGNIFY on interface object
 PASS SVGSVGElement interface: constant SVG_ZOOMANDPAN_MAGNIFY on interface prototype object
 PASS SVGSVGElement interface: attribute zoomAndPan
+PASS Unscopable handled correctly for zoomAndPan property on SVGSVGElement
 PASS SVGSVGElement must be primary interface of svg
 PASS Stringification of svg
 PASS SVGSVGElement interface: svg must inherit property "x" with the proper type
@@ -424,6 +550,7 @@
 PASS SVGGElement interface object name
 PASS SVGGElement interface: existence and properties of interface prototype object
 PASS SVGGElement interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGGElement interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGGElement must be primary interface of g
 PASS Stringification of g
 PASS SVGGraphicsElement interface: g must inherit property "transform" with the proper type
@@ -445,11 +572,13 @@
 FAIL SVGUnknownElement interface object name assert_own_property: self does not have own property "SVGUnknownElement" expected property "SVGUnknownElement" missing
 FAIL SVGUnknownElement interface: existence and properties of interface prototype object assert_own_property: self does not have own property "SVGUnknownElement" expected property "SVGUnknownElement" missing
 FAIL SVGUnknownElement interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "SVGUnknownElement" expected property "SVGUnknownElement" missing
+FAIL SVGUnknownElement interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "SVGUnknownElement" expected property "SVGUnknownElement" missing
 PASS SVGDefsElement interface: existence and properties of interface object
 PASS SVGDefsElement interface object length
 PASS SVGDefsElement interface object name
 PASS SVGDefsElement interface: existence and properties of interface prototype object
 PASS SVGDefsElement interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGDefsElement interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGDefsElement must be primary interface of defs
 PASS Stringification of defs
 PASS SVGGraphicsElement interface: defs must inherit property "transform" with the proper type
@@ -471,6 +600,7 @@
 PASS SVGDescElement interface object name
 PASS SVGDescElement interface: existence and properties of interface prototype object
 PASS SVGDescElement interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGDescElement interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGDescElement must be primary interface of Desc
 PASS Stringification of Desc
 PASS SVGElement interface: Desc must inherit property "className" with the proper type
@@ -485,6 +615,7 @@
 PASS SVGMetadataElement interface object name
 PASS SVGMetadataElement interface: existence and properties of interface prototype object
 PASS SVGMetadataElement interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGMetadataElement interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGMetadataElement must be primary interface of metadata
 PASS Stringification of metadata
 PASS SVGElement interface: metadata must inherit property "className" with the proper type
@@ -499,6 +630,7 @@
 PASS SVGTitleElement interface object name
 PASS SVGTitleElement interface: existence and properties of interface prototype object
 PASS SVGTitleElement interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGTitleElement interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGTitleElement must be primary interface of title
 PASS Stringification of title
 PASS SVGElement interface: title must inherit property "className" with the proper type
@@ -513,8 +645,11 @@
 PASS SVGSymbolElement interface object name
 PASS SVGSymbolElement interface: existence and properties of interface prototype object
 PASS SVGSymbolElement interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGSymbolElement interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGSymbolElement interface: attribute viewBox
+PASS Unscopable handled correctly for viewBox property on SVGSymbolElement
 PASS SVGSymbolElement interface: attribute preserveAspectRatio
+PASS Unscopable handled correctly for preserveAspectRatio property on SVGSymbolElement
 PASS SVGSymbolElement must be primary interface of symbol
 PASS Stringification of symbol
 PASS SVGSymbolElement interface: symbol must inherit property "viewBox" with the proper type
@@ -531,11 +666,17 @@
 PASS SVGUseElement interface object name
 PASS SVGUseElement interface: existence and properties of interface prototype object
 PASS SVGUseElement interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGUseElement interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGUseElement interface: attribute x
+PASS Unscopable handled correctly for x property on SVGUseElement
 PASS SVGUseElement interface: attribute y
+PASS Unscopable handled correctly for y property on SVGUseElement
 PASS SVGUseElement interface: attribute width
+PASS Unscopable handled correctly for width property on SVGUseElement
 PASS SVGUseElement interface: attribute height
+PASS Unscopable handled correctly for height property on SVGUseElement
 PASS SVGUseElement interface: attribute href
+PASS Unscopable handled correctly for href property on SVGUseElement
 PASS SVGUseElement must be primary interface of use
 PASS Stringification of use
 PASS SVGUseElement interface: use must inherit property "x" with the proper type
@@ -562,6 +703,7 @@
 PASS SVGSwitchElement interface object name
 PASS SVGSwitchElement interface: existence and properties of interface prototype object
 PASS SVGSwitchElement interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGSwitchElement interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGSwitchElement must be primary interface of Switch
 PASS Stringification of Switch
 PASS SVGGraphicsElement interface: Switch must inherit property "transform" with the proper type
@@ -583,9 +725,13 @@
 PASS SVGStyleElement interface object name
 PASS SVGStyleElement interface: existence and properties of interface prototype object
 PASS SVGStyleElement interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGStyleElement interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGStyleElement interface: attribute type
+PASS Unscopable handled correctly for type property on SVGStyleElement
 PASS SVGStyleElement interface: attribute media
+PASS Unscopable handled correctly for media property on SVGStyleElement
 PASS SVGStyleElement interface: attribute title
+PASS Unscopable handled correctly for title property on SVGStyleElement
 PASS SVGStyleElement must be primary interface of style
 PASS Stringification of style
 PASS SVGStyleElement interface: style must inherit property "type" with the proper type
@@ -603,6 +749,7 @@
 PASS SVGTransform interface object name
 PASS SVGTransform interface: existence and properties of interface prototype object
 PASS SVGTransform interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGTransform interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGTransform interface: constant SVG_TRANSFORM_UNKNOWN on interface object
 PASS SVGTransform interface: constant SVG_TRANSFORM_UNKNOWN on interface prototype object
 PASS SVGTransform interface: constant SVG_TRANSFORM_MATRIX on interface object
@@ -618,14 +765,23 @@
 PASS SVGTransform interface: constant SVG_TRANSFORM_SKEWY on interface object
 PASS SVGTransform interface: constant SVG_TRANSFORM_SKEWY on interface prototype object
 PASS SVGTransform interface: attribute type
+PASS Unscopable handled correctly for type property on SVGTransform
 PASS SVGTransform interface: attribute matrix
+PASS Unscopable handled correctly for matrix property on SVGTransform
 PASS SVGTransform interface: attribute angle
+PASS Unscopable handled correctly for angle property on SVGTransform
 PASS SVGTransform interface: operation setMatrix(DOMMatrixReadOnly)
+PASS Unscopable handled correctly for setMatrix(DOMMatrixReadOnly) on SVGTransform
 PASS SVGTransform interface: operation setTranslate(float, float)
+PASS Unscopable handled correctly for setTranslate(float, float) on SVGTransform
 PASS SVGTransform interface: operation setScale(float, float)
+PASS Unscopable handled correctly for setScale(float, float) on SVGTransform
 PASS SVGTransform interface: operation setRotate(float, float, float)
+PASS Unscopable handled correctly for setRotate(float, float, float) on SVGTransform
 PASS SVGTransform interface: operation setSkewX(float)
+PASS Unscopable handled correctly for setSkewX(float) on SVGTransform
 PASS SVGTransform interface: operation setSkewY(float)
+PASS Unscopable handled correctly for setSkewY(float) on SVGTransform
 PASS SVGTransform must be primary interface of svg.createSVGTransform()
 PASS Stringification of svg.createSVGTransform()
 PASS SVGTransform interface: svg.createSVGTransform() must inherit property "SVG_TRANSFORM_UNKNOWN" with the proper type
@@ -655,17 +811,29 @@
 PASS SVGTransformList interface object name
 PASS SVGTransformList interface: existence and properties of interface prototype object
 PASS SVGTransformList interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGTransformList interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGTransformList interface: attribute length
+PASS Unscopable handled correctly for length property on SVGTransformList
 PASS SVGTransformList interface: attribute numberOfItems
+PASS Unscopable handled correctly for numberOfItems property on SVGTransformList
 PASS SVGTransformList interface: operation clear()
+PASS Unscopable handled correctly for clear() on SVGTransformList
 PASS SVGTransformList interface: operation initialize(SVGTransform)
+PASS Unscopable handled correctly for initialize(SVGTransform) on SVGTransformList
 PASS SVGTransformList interface: operation getItem(unsigned long)
+PASS Unscopable handled correctly for getItem(unsigned long) on SVGTransformList
 PASS SVGTransformList interface: operation insertItemBefore(SVGTransform, unsigned long)
+PASS Unscopable handled correctly for insertItemBefore(SVGTransform, unsigned long) on SVGTransformList
 PASS SVGTransformList interface: operation replaceItem(SVGTransform, unsigned long)
+PASS Unscopable handled correctly for replaceItem(SVGTransform, unsigned long) on SVGTransformList
 PASS SVGTransformList interface: operation removeItem(unsigned long)
+PASS Unscopable handled correctly for removeItem(unsigned long) on SVGTransformList
 PASS SVGTransformList interface: operation appendItem(SVGTransform)
+PASS Unscopable handled correctly for appendItem(SVGTransform) on SVGTransformList
 PASS SVGTransformList interface: operation createSVGTransformFromMatrix(DOMMatrixReadOnly)
+PASS Unscopable handled correctly for createSVGTransformFromMatrix(DOMMatrixReadOnly) on SVGTransformList
 PASS SVGTransformList interface: operation consolidate()
+PASS Unscopable handled correctly for consolidate() on SVGTransformList
 PASS SVGTransformList must be primary interface of pattern.patternTransform.baseVal
 PASS Stringification of pattern.patternTransform.baseVal
 PASS SVGTransformList interface: pattern.patternTransform.baseVal must inherit property "length" with the proper type
@@ -691,8 +859,11 @@
 PASS SVGAnimatedTransformList interface object name
 PASS SVGAnimatedTransformList interface: existence and properties of interface prototype object
 PASS SVGAnimatedTransformList interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGAnimatedTransformList interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGAnimatedTransformList interface: attribute baseVal
+PASS Unscopable handled correctly for baseVal property on SVGAnimatedTransformList
 PASS SVGAnimatedTransformList interface: attribute animVal
+PASS Unscopable handled correctly for animVal property on SVGAnimatedTransformList
 PASS SVGAnimatedTransformList must be primary interface of pattern.patternTransform
 PASS Stringification of pattern.patternTransform
 PASS SVGAnimatedTransformList interface: pattern.patternTransform must inherit property "baseVal" with the proper type
@@ -702,6 +873,7 @@
 PASS SVGPreserveAspectRatio interface object name
 PASS SVGPreserveAspectRatio interface: existence and properties of interface prototype object
 PASS SVGPreserveAspectRatio interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGPreserveAspectRatio interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGPreserveAspectRatio interface: constant SVG_PRESERVEASPECTRATIO_UNKNOWN on interface object
 PASS SVGPreserveAspectRatio interface: constant SVG_PRESERVEASPECTRATIO_UNKNOWN on interface prototype object
 PASS SVGPreserveAspectRatio interface: constant SVG_PRESERVEASPECTRATIO_NONE on interface object
@@ -731,7 +903,9 @@
 PASS SVGPreserveAspectRatio interface: constant SVG_MEETORSLICE_SLICE on interface object
 PASS SVGPreserveAspectRatio interface: constant SVG_MEETORSLICE_SLICE on interface prototype object
 PASS SVGPreserveAspectRatio interface: attribute align
+PASS Unscopable handled correctly for align property on SVGPreserveAspectRatio
 PASS SVGPreserveAspectRatio interface: attribute meetOrSlice
+PASS Unscopable handled correctly for meetOrSlice property on SVGPreserveAspectRatio
 PASS SVGPreserveAspectRatio must be primary interface of image.preserveAspectRatio.baseVal
 PASS Stringification of image.preserveAspectRatio.baseVal
 PASS SVGPreserveAspectRatio interface: image.preserveAspectRatio.baseVal must inherit property "SVG_PRESERVEASPECTRATIO_UNKNOWN" with the proper type
@@ -755,8 +929,11 @@
 PASS SVGAnimatedPreserveAspectRatio interface object name
 PASS SVGAnimatedPreserveAspectRatio interface: existence and properties of interface prototype object
 PASS SVGAnimatedPreserveAspectRatio interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGAnimatedPreserveAspectRatio interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGAnimatedPreserveAspectRatio interface: attribute baseVal
+PASS Unscopable handled correctly for baseVal property on SVGAnimatedPreserveAspectRatio
 PASS SVGAnimatedPreserveAspectRatio interface: attribute animVal
+PASS Unscopable handled correctly for animVal property on SVGAnimatedPreserveAspectRatio
 PASS SVGAnimatedPreserveAspectRatio must be primary interface of image.preserveAspectRatio
 PASS Stringification of image.preserveAspectRatio
 PASS SVGAnimatedPreserveAspectRatio interface: image.preserveAspectRatio must inherit property "baseVal" with the proper type
@@ -766,6 +943,7 @@
 PASS SVGPathElement interface object name
 PASS SVGPathElement interface: existence and properties of interface prototype object
 PASS SVGPathElement interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGPathElement interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGPathElement must be primary interface of path
 PASS Stringification of path
 PASS SVGGeometryElement interface: path must inherit property "pathLength" with the proper type
@@ -795,12 +973,19 @@
 PASS SVGRectElement interface object name
 PASS SVGRectElement interface: existence and properties of interface prototype object
 PASS SVGRectElement interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGRectElement interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGRectElement interface: attribute x
+PASS Unscopable handled correctly for x property on SVGRectElement
 PASS SVGRectElement interface: attribute y
+PASS Unscopable handled correctly for y property on SVGRectElement
 PASS SVGRectElement interface: attribute width
+PASS Unscopable handled correctly for width property on SVGRectElement
 PASS SVGRectElement interface: attribute height
+PASS Unscopable handled correctly for height property on SVGRectElement
 PASS SVGRectElement interface: attribute rx
+PASS Unscopable handled correctly for rx property on SVGRectElement
 PASS SVGRectElement interface: attribute ry
+PASS Unscopable handled correctly for ry property on SVGRectElement
 PASS SVGRectElement must be primary interface of rect
 PASS Stringification of rect
 PASS SVGRectElement interface: rect must inherit property "x" with the proper type
@@ -836,9 +1021,13 @@
 PASS SVGCircleElement interface object name
 PASS SVGCircleElement interface: existence and properties of interface prototype object
 PASS SVGCircleElement interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGCircleElement interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGCircleElement interface: attribute cx
+PASS Unscopable handled correctly for cx property on SVGCircleElement
 PASS SVGCircleElement interface: attribute cy
+PASS Unscopable handled correctly for cy property on SVGCircleElement
 PASS SVGCircleElement interface: attribute r
+PASS Unscopable handled correctly for r property on SVGCircleElement
 PASS SVGCircleElement must be primary interface of circle
 PASS Stringification of circle
 PASS SVGCircleElement interface: circle must inherit property "cx" with the proper type
@@ -871,10 +1060,15 @@
 PASS SVGEllipseElement interface object name
 PASS SVGEllipseElement interface: existence and properties of interface prototype object
 PASS SVGEllipseElement interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGEllipseElement interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGEllipseElement interface: attribute cx
+PASS Unscopable handled correctly for cx property on SVGEllipseElement
 PASS SVGEllipseElement interface: attribute cy
+PASS Unscopable handled correctly for cy property on SVGEllipseElement
 PASS SVGEllipseElement interface: attribute rx
+PASS Unscopable handled correctly for rx property on SVGEllipseElement
 PASS SVGEllipseElement interface: attribute ry
+PASS Unscopable handled correctly for ry property on SVGEllipseElement
 PASS SVGEllipseElement must be primary interface of ellipse
 PASS Stringification of ellipse
 PASS SVGEllipseElement interface: ellipse must inherit property "cx" with the proper type
@@ -908,10 +1102,15 @@
 PASS SVGLineElement interface object name
 PASS SVGLineElement interface: existence and properties of interface prototype object
 PASS SVGLineElement interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGLineElement interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGLineElement interface: attribute x1
+PASS Unscopable handled correctly for x1 property on SVGLineElement
 PASS SVGLineElement interface: attribute y1
+PASS Unscopable handled correctly for y1 property on SVGLineElement
 PASS SVGLineElement interface: attribute x2
+PASS Unscopable handled correctly for x2 property on SVGLineElement
 PASS SVGLineElement interface: attribute y2
+PASS Unscopable handled correctly for y2 property on SVGLineElement
 PASS SVGLineElement must be primary interface of line
 PASS Stringification of line
 PASS SVGLineElement interface: line must inherit property "x1" with the proper type
@@ -945,15 +1144,25 @@
 PASS SVGPointList interface object name
 PASS SVGPointList interface: existence and properties of interface prototype object
 PASS SVGPointList interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGPointList interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGPointList interface: attribute length
+PASS Unscopable handled correctly for length property on SVGPointList
 PASS SVGPointList interface: attribute numberOfItems
+PASS Unscopable handled correctly for numberOfItems property on SVGPointList
 PASS SVGPointList interface: operation clear()
+PASS Unscopable handled correctly for clear() on SVGPointList
 PASS SVGPointList interface: operation initialize(DOMPoint)
+PASS Unscopable handled correctly for initialize(DOMPoint) on SVGPointList
 PASS SVGPointList interface: operation getItem(unsigned long)
+PASS Unscopable handled correctly for getItem(unsigned long) on SVGPointList
 PASS SVGPointList interface: operation insertItemBefore(DOMPoint, unsigned long)
+PASS Unscopable handled correctly for insertItemBefore(DOMPoint, unsigned long) on SVGPointList
 PASS SVGPointList interface: operation replaceItem(DOMPoint, unsigned long)
+PASS Unscopable handled correctly for replaceItem(DOMPoint, unsigned long) on SVGPointList
 PASS SVGPointList interface: operation removeItem(unsigned long)
+PASS Unscopable handled correctly for removeItem(unsigned long) on SVGPointList
 PASS SVGPointList interface: operation appendItem(DOMPoint)
+PASS Unscopable handled correctly for appendItem(DOMPoint) on SVGPointList
 PASS SVGPointList must be primary interface of polygon.points
 PASS Stringification of polygon.points
 PASS SVGPointList interface: polygon.points must inherit property "length" with the proper type
@@ -976,8 +1185,11 @@
 PASS SVGPolylineElement interface object name
 PASS SVGPolylineElement interface: existence and properties of interface prototype object
 PASS SVGPolylineElement interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGPolylineElement interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGPolylineElement interface: attribute points
+PASS Unscopable handled correctly for points property on SVGPolylineElement
 PASS SVGPolylineElement interface: attribute animatedPoints
+PASS Unscopable handled correctly for animatedPoints property on SVGPolylineElement
 PASS SVGPolylineElement must be primary interface of polyline
 PASS Stringification of polyline
 PASS SVGPolylineElement interface: polyline must inherit property "points" with the proper type
@@ -1009,8 +1221,11 @@
 PASS SVGPolygonElement interface object name
 PASS SVGPolygonElement interface: existence and properties of interface prototype object
 PASS SVGPolygonElement interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGPolygonElement interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGPolygonElement interface: attribute points
+PASS Unscopable handled correctly for points property on SVGPolygonElement
 PASS SVGPolygonElement interface: attribute animatedPoints
+PASS Unscopable handled correctly for animatedPoints property on SVGPolygonElement
 PASS SVGPolygonElement must be primary interface of polygon
 PASS Stringification of polygon
 PASS SVGPolygonElement interface: polygon must inherit property "points" with the proper type
@@ -1042,6 +1257,7 @@
 PASS SVGTextContentElement interface object name
 PASS SVGTextContentElement interface: existence and properties of interface prototype object
 PASS SVGTextContentElement interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGTextContentElement interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGTextContentElement interface: constant LENGTHADJUST_UNKNOWN on interface object
 PASS SVGTextContentElement interface: constant LENGTHADJUST_UNKNOWN on interface prototype object
 PASS SVGTextContentElement interface: constant LENGTHADJUST_SPACING on interface object
@@ -1049,31 +1265,49 @@
 PASS SVGTextContentElement interface: constant LENGTHADJUST_SPACINGANDGLYPHS on interface object
 PASS SVGTextContentElement interface: constant LENGTHADJUST_SPACINGANDGLYPHS on interface prototype object
 PASS SVGTextContentElement interface: attribute textLength
+PASS Unscopable handled correctly for textLength property on SVGTextContentElement
 PASS SVGTextContentElement interface: attribute lengthAdjust
+PASS Unscopable handled correctly for lengthAdjust property on SVGTextContentElement
 PASS SVGTextContentElement interface: operation getNumberOfChars()
+PASS Unscopable handled correctly for getNumberOfChars() on SVGTextContentElement
 PASS SVGTextContentElement interface: operation getComputedTextLength()
+PASS Unscopable handled correctly for getComputedTextLength() on SVGTextContentElement
 PASS SVGTextContentElement interface: operation getSubStringLength(unsigned long, unsigned long)
+PASS Unscopable handled correctly for getSubStringLength(unsigned long, unsigned long) on SVGTextContentElement
 PASS SVGTextContentElement interface: operation getStartPositionOfChar(unsigned long)
+PASS Unscopable handled correctly for getStartPositionOfChar(unsigned long) on SVGTextContentElement
 PASS SVGTextContentElement interface: operation getEndPositionOfChar(unsigned long)
+PASS Unscopable handled correctly for getEndPositionOfChar(unsigned long) on SVGTextContentElement
 PASS SVGTextContentElement interface: operation getExtentOfChar(unsigned long)
+PASS Unscopable handled correctly for getExtentOfChar(unsigned long) on SVGTextContentElement
 PASS SVGTextContentElement interface: operation getRotationOfChar(unsigned long)
+PASS Unscopable handled correctly for getRotationOfChar(unsigned long) on SVGTextContentElement
 PASS SVGTextContentElement interface: operation getCharNumAtPosition(DOMPoint)
+PASS Unscopable handled correctly for getCharNumAtPosition(DOMPoint) on SVGTextContentElement
 PASS SVGTextContentElement interface: operation selectSubString(unsigned long, unsigned long)
+PASS Unscopable handled correctly for selectSubString(unsigned long, unsigned long) on SVGTextContentElement
 PASS SVGTextPositioningElement interface: existence and properties of interface object
 PASS SVGTextPositioningElement interface object length
 PASS SVGTextPositioningElement interface object name
 PASS SVGTextPositioningElement interface: existence and properties of interface prototype object
 PASS SVGTextPositioningElement interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGTextPositioningElement interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGTextPositioningElement interface: attribute x
+PASS Unscopable handled correctly for x property on SVGTextPositioningElement
 PASS SVGTextPositioningElement interface: attribute y
+PASS Unscopable handled correctly for y property on SVGTextPositioningElement
 PASS SVGTextPositioningElement interface: attribute dx
+PASS Unscopable handled correctly for dx property on SVGTextPositioningElement
 PASS SVGTextPositioningElement interface: attribute dy
+PASS Unscopable handled correctly for dy property on SVGTextPositioningElement
 PASS SVGTextPositioningElement interface: attribute rotate
+PASS Unscopable handled correctly for rotate property on SVGTextPositioningElement
 PASS SVGTextElement interface: existence and properties of interface object
 PASS SVGTextElement interface object length
 PASS SVGTextElement interface object name
 PASS SVGTextElement interface: existence and properties of interface prototype object
 PASS SVGTextElement interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGTextElement interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGTextElement must be primary interface of text
 PASS Stringification of text
 PASS SVGTextPositioningElement interface: text must inherit property "x" with the proper type
@@ -1121,6 +1355,7 @@
 PASS SVGTSpanElement interface object name
 PASS SVGTSpanElement interface: existence and properties of interface prototype object
 PASS SVGTSpanElement interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGTSpanElement interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGTSpanElement must be primary interface of tspan
 PASS Stringification of tspan
 PASS SVGTextPositioningElement interface: tspan must inherit property "x" with the proper type
@@ -1168,6 +1403,7 @@
 PASS SVGTextPathElement interface object name
 PASS SVGTextPathElement interface: existence and properties of interface prototype object
 PASS SVGTextPathElement interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGTextPathElement interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGTextPathElement interface: constant TEXTPATH_METHODTYPE_UNKNOWN on interface object
 PASS SVGTextPathElement interface: constant TEXTPATH_METHODTYPE_UNKNOWN on interface prototype object
 PASS SVGTextPathElement interface: constant TEXTPATH_METHODTYPE_ALIGN on interface object
@@ -1181,9 +1417,13 @@
 PASS SVGTextPathElement interface: constant TEXTPATH_SPACINGTYPE_EXACT on interface object
 PASS SVGTextPathElement interface: constant TEXTPATH_SPACINGTYPE_EXACT on interface prototype object
 PASS SVGTextPathElement interface: attribute startOffset
+PASS Unscopable handled correctly for startOffset property on SVGTextPathElement
 PASS SVGTextPathElement interface: attribute method
+PASS Unscopable handled correctly for method property on SVGTextPathElement
 PASS SVGTextPathElement interface: attribute spacing
+PASS Unscopable handled correctly for spacing property on SVGTextPathElement
 PASS SVGTextPathElement interface: attribute href
+PASS Unscopable handled correctly for href property on SVGTextPathElement
 PASS SVGTextPathElement must be primary interface of textPath
 PASS Stringification of textPath
 PASS SVGTextPathElement interface: textPath must inherit property "TEXTPATH_METHODTYPE_UNKNOWN" with the proper type
@@ -1236,13 +1476,21 @@
 PASS SVGImageElement interface object name
 PASS SVGImageElement interface: existence and properties of interface prototype object
 PASS SVGImageElement interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGImageElement interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGImageElement interface: attribute x
+PASS Unscopable handled correctly for x property on SVGImageElement
 PASS SVGImageElement interface: attribute y
+PASS Unscopable handled correctly for y property on SVGImageElement
 PASS SVGImageElement interface: attribute width
+PASS Unscopable handled correctly for width property on SVGImageElement
 PASS SVGImageElement interface: attribute height
+PASS Unscopable handled correctly for height property on SVGImageElement
 PASS SVGImageElement interface: attribute preserveAspectRatio
+PASS Unscopable handled correctly for preserveAspectRatio property on SVGImageElement
 FAIL SVGImageElement interface: attribute crossOrigin assert_true: The prototype object must have a property "crossOrigin" expected true got false
+PASS Unscopable handled correctly for crossOrigin property on SVGImageElement
 PASS SVGImageElement interface: attribute href
+PASS Unscopable handled correctly for href property on SVGImageElement
 PASS SVGImageElement must be primary interface of image
 PASS Stringification of image
 PASS SVGImageElement interface: image must inherit property "x" with the proper type
@@ -1271,10 +1519,15 @@
 PASS SVGForeignObjectElement interface object name
 PASS SVGForeignObjectElement interface: existence and properties of interface prototype object
 PASS SVGForeignObjectElement interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGForeignObjectElement interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGForeignObjectElement interface: attribute x
+PASS Unscopable handled correctly for x property on SVGForeignObjectElement
 PASS SVGForeignObjectElement interface: attribute y
+PASS Unscopable handled correctly for y property on SVGForeignObjectElement
 PASS SVGForeignObjectElement interface: attribute width
+PASS Unscopable handled correctly for width property on SVGForeignObjectElement
 PASS SVGForeignObjectElement interface: attribute height
+PASS Unscopable handled correctly for height property on SVGForeignObjectElement
 PASS SVGForeignObjectElement must be primary interface of foreignObject
 PASS Stringification of foreignObject
 PASS SVGForeignObjectElement interface: foreignObject must inherit property "x" with the proper type
@@ -1300,6 +1553,7 @@
 PASS SVGMarkerElement interface object name
 PASS SVGMarkerElement interface: existence and properties of interface prototype object
 PASS SVGMarkerElement interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGMarkerElement interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGMarkerElement interface: constant SVG_MARKERUNITS_UNKNOWN on interface object
 PASS SVGMarkerElement interface: constant SVG_MARKERUNITS_UNKNOWN on interface prototype object
 PASS SVGMarkerElement interface: constant SVG_MARKERUNITS_USERSPACEONUSE on interface object
@@ -1313,17 +1567,29 @@
 PASS SVGMarkerElement interface: constant SVG_MARKER_ORIENT_ANGLE on interface object
 PASS SVGMarkerElement interface: constant SVG_MARKER_ORIENT_ANGLE on interface prototype object
 PASS SVGMarkerElement interface: attribute refX
+PASS Unscopable handled correctly for refX property on SVGMarkerElement
 PASS SVGMarkerElement interface: attribute refY
+PASS Unscopable handled correctly for refY property on SVGMarkerElement
 PASS SVGMarkerElement interface: attribute markerUnits
+PASS Unscopable handled correctly for markerUnits property on SVGMarkerElement
 PASS SVGMarkerElement interface: attribute markerWidth
+PASS Unscopable handled correctly for markerWidth property on SVGMarkerElement
 PASS SVGMarkerElement interface: attribute markerHeight
+PASS Unscopable handled correctly for markerHeight property on SVGMarkerElement
 PASS SVGMarkerElement interface: attribute orientType
+PASS Unscopable handled correctly for orientType property on SVGMarkerElement
 PASS SVGMarkerElement interface: attribute orientAngle
+PASS Unscopable handled correctly for orientAngle property on SVGMarkerElement
 FAIL SVGMarkerElement interface: attribute orient assert_true: The prototype object must have a property "orient" expected true got false
+PASS Unscopable handled correctly for orient property on SVGMarkerElement
 PASS SVGMarkerElement interface: operation setOrientToAuto()
+PASS Unscopable handled correctly for setOrientToAuto() on SVGMarkerElement
 PASS SVGMarkerElement interface: operation setOrientToAngle(SVGAngle)
+PASS Unscopable handled correctly for setOrientToAngle(SVGAngle) on SVGMarkerElement
 PASS SVGMarkerElement interface: attribute viewBox
+PASS Unscopable handled correctly for viewBox property on SVGMarkerElement
 PASS SVGMarkerElement interface: attribute preserveAspectRatio
+PASS Unscopable handled correctly for preserveAspectRatio property on SVGMarkerElement
 PASS SVGMarkerElement must be primary interface of marker
 PASS Stringification of marker
 PASS SVGMarkerElement interface: marker must inherit property "SVG_MARKERUNITS_UNKNOWN" with the proper type
@@ -1357,11 +1623,13 @@
 FAIL SVGSolidcolorElement interface object name assert_own_property: self does not have own property "SVGSolidcolorElement" expected property "SVGSolidcolorElement" missing
 FAIL SVGSolidcolorElement interface: existence and properties of interface prototype object assert_own_property: self does not have own property "SVGSolidcolorElement" expected property "SVGSolidcolorElement" missing
 FAIL SVGSolidcolorElement interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "SVGSolidcolorElement" expected property "SVGSolidcolorElement" missing
+FAIL SVGSolidcolorElement interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "SVGSolidcolorElement" expected property "SVGSolidcolorElement" missing
 PASS SVGGradientElement interface: existence and properties of interface object
 PASS SVGGradientElement interface object length
 PASS SVGGradientElement interface object name
 PASS SVGGradientElement interface: existence and properties of interface prototype object
 PASS SVGGradientElement interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGGradientElement interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGGradientElement interface: constant SVG_SPREADMETHOD_UNKNOWN on interface object
 PASS SVGGradientElement interface: constant SVG_SPREADMETHOD_UNKNOWN on interface prototype object
 PASS SVGGradientElement interface: constant SVG_SPREADMETHOD_PAD on interface object
@@ -1371,18 +1639,27 @@
 PASS SVGGradientElement interface: constant SVG_SPREADMETHOD_REPEAT on interface object
 PASS SVGGradientElement interface: constant SVG_SPREADMETHOD_REPEAT on interface prototype object
 PASS SVGGradientElement interface: attribute gradientUnits
+PASS Unscopable handled correctly for gradientUnits property on SVGGradientElement
 PASS SVGGradientElement interface: attribute gradientTransform
+PASS Unscopable handled correctly for gradientTransform property on SVGGradientElement
 PASS SVGGradientElement interface: attribute spreadMethod
+PASS Unscopable handled correctly for spreadMethod property on SVGGradientElement
 PASS SVGGradientElement interface: attribute href
+PASS Unscopable handled correctly for href property on SVGGradientElement
 PASS SVGLinearGradientElement interface: existence and properties of interface object
 PASS SVGLinearGradientElement interface object length
 PASS SVGLinearGradientElement interface object name
 PASS SVGLinearGradientElement interface: existence and properties of interface prototype object
 PASS SVGLinearGradientElement interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGLinearGradientElement interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGLinearGradientElement interface: attribute x1
+PASS Unscopable handled correctly for x1 property on SVGLinearGradientElement
 PASS SVGLinearGradientElement interface: attribute y1
+PASS Unscopable handled correctly for y1 property on SVGLinearGradientElement
 PASS SVGLinearGradientElement interface: attribute x2
+PASS Unscopable handled correctly for x2 property on SVGLinearGradientElement
 PASS SVGLinearGradientElement interface: attribute y2
+PASS Unscopable handled correctly for y2 property on SVGLinearGradientElement
 PASS SVGLinearGradientElement must be primary interface of linearGradient
 PASS Stringification of linearGradient
 PASS SVGLinearGradientElement interface: linearGradient must inherit property "x1" with the proper type
@@ -1409,12 +1686,19 @@
 PASS SVGRadialGradientElement interface object name
 PASS SVGRadialGradientElement interface: existence and properties of interface prototype object
 PASS SVGRadialGradientElement interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGRadialGradientElement interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGRadialGradientElement interface: attribute cx
+PASS Unscopable handled correctly for cx property on SVGRadialGradientElement
 PASS SVGRadialGradientElement interface: attribute cy
+PASS Unscopable handled correctly for cy property on SVGRadialGradientElement
 PASS SVGRadialGradientElement interface: attribute r
+PASS Unscopable handled correctly for r property on SVGRadialGradientElement
 PASS SVGRadialGradientElement interface: attribute fx
+PASS Unscopable handled correctly for fx property on SVGRadialGradientElement
 PASS SVGRadialGradientElement interface: attribute fy
+PASS Unscopable handled correctly for fy property on SVGRadialGradientElement
 PASS SVGRadialGradientElement interface: attribute fr
+PASS Unscopable handled correctly for fr property on SVGRadialGradientElement
 PASS SVGRadialGradientElement must be primary interface of radialGradient
 PASS Stringification of radialGradient
 PASS SVGRadialGradientElement interface: radialGradient must inherit property "cx" with the proper type
@@ -1443,22 +1727,27 @@
 FAIL SVGMeshElement interface object name assert_own_property: self does not have own property "SVGMeshElement" expected property "SVGMeshElement" missing
 FAIL SVGMeshElement interface: existence and properties of interface prototype object assert_own_property: self does not have own property "SVGMeshElement" expected property "SVGMeshElement" missing
 FAIL SVGMeshElement interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "SVGMeshElement" expected property "SVGMeshElement" missing
+FAIL SVGMeshElement interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "SVGMeshElement" expected property "SVGMeshElement" missing
 FAIL SVGMeshrowElement interface: existence and properties of interface object assert_own_property: self does not have own property "SVGMeshrowElement" expected property "SVGMeshrowElement" missing
 FAIL SVGMeshrowElement interface object length assert_own_property: self does not have own property "SVGMeshrowElement" expected property "SVGMeshrowElement" missing
 FAIL SVGMeshrowElement interface object name assert_own_property: self does not have own property "SVGMeshrowElement" expected property "SVGMeshrowElement" missing
 FAIL SVGMeshrowElement interface: existence and properties of interface prototype object assert_own_property: self does not have own property "SVGMeshrowElement" expected property "SVGMeshrowElement" missing
 FAIL SVGMeshrowElement interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "SVGMeshrowElement" expected property "SVGMeshrowElement" missing
+FAIL SVGMeshrowElement interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "SVGMeshrowElement" expected property "SVGMeshrowElement" missing
 FAIL SVGMeshpatchElement interface: existence and properties of interface object assert_own_property: self does not have own property "SVGMeshpatchElement" expected property "SVGMeshpatchElement" missing
 FAIL SVGMeshpatchElement interface object length assert_own_property: self does not have own property "SVGMeshpatchElement" expected property "SVGMeshpatchElement" missing
 FAIL SVGMeshpatchElement interface object name assert_own_property: self does not have own property "SVGMeshpatchElement" expected property "SVGMeshpatchElement" missing
 FAIL SVGMeshpatchElement interface: existence and properties of interface prototype object assert_own_property: self does not have own property "SVGMeshpatchElement" expected property "SVGMeshpatchElement" missing
 FAIL SVGMeshpatchElement interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "SVGMeshpatchElement" expected property "SVGMeshpatchElement" missing
+FAIL SVGMeshpatchElement interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "SVGMeshpatchElement" expected property "SVGMeshpatchElement" missing
 PASS SVGStopElement interface: existence and properties of interface object
 PASS SVGStopElement interface object length
 PASS SVGStopElement interface object name
 PASS SVGStopElement interface: existence and properties of interface prototype object
 PASS SVGStopElement interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGStopElement interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGStopElement interface: attribute offset
+PASS Unscopable handled correctly for offset property on SVGStopElement
 PASS SVGStopElement must be primary interface of stop
 PASS Stringification of stop
 PASS SVGStopElement interface: stop must inherit property "offset" with the proper type
@@ -1474,16 +1763,27 @@
 PASS SVGPatternElement interface object name
 PASS SVGPatternElement interface: existence and properties of interface prototype object
 PASS SVGPatternElement interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGPatternElement interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGPatternElement interface: attribute patternUnits
+PASS Unscopable handled correctly for patternUnits property on SVGPatternElement
 PASS SVGPatternElement interface: attribute patternContentUnits
+PASS Unscopable handled correctly for patternContentUnits property on SVGPatternElement
 PASS SVGPatternElement interface: attribute patternTransform
+PASS Unscopable handled correctly for patternTransform property on SVGPatternElement
 PASS SVGPatternElement interface: attribute x
+PASS Unscopable handled correctly for x property on SVGPatternElement
 PASS SVGPatternElement interface: attribute y
+PASS Unscopable handled correctly for y property on SVGPatternElement
 PASS SVGPatternElement interface: attribute width
+PASS Unscopable handled correctly for width property on SVGPatternElement
 PASS SVGPatternElement interface: attribute height
+PASS Unscopable handled correctly for height property on SVGPatternElement
 PASS SVGPatternElement interface: attribute viewBox
+PASS Unscopable handled correctly for viewBox property on SVGPatternElement
 PASS SVGPatternElement interface: attribute preserveAspectRatio
+PASS Unscopable handled correctly for preserveAspectRatio property on SVGPatternElement
 PASS SVGPatternElement interface: attribute href
+PASS Unscopable handled correctly for href property on SVGPatternElement
 PASS SVGPatternElement must be primary interface of pattern
 PASS Stringification of pattern
 PASS SVGPatternElement interface: pattern must inherit property "patternUnits" with the proper type
@@ -1508,19 +1808,25 @@
 FAIL SVGHatchElement interface object name assert_own_property: self does not have own property "SVGHatchElement" expected property "SVGHatchElement" missing
 FAIL SVGHatchElement interface: existence and properties of interface prototype object assert_own_property: self does not have own property "SVGHatchElement" expected property "SVGHatchElement" missing
 FAIL SVGHatchElement interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "SVGHatchElement" expected property "SVGHatchElement" missing
+FAIL SVGHatchElement interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "SVGHatchElement" expected property "SVGHatchElement" missing
 FAIL SVGHatchpathElement interface: existence and properties of interface object assert_own_property: self does not have own property "SVGHatchpathElement" expected property "SVGHatchpathElement" missing
 FAIL SVGHatchpathElement interface object length assert_own_property: self does not have own property "SVGHatchpathElement" expected property "SVGHatchpathElement" missing
 FAIL SVGHatchpathElement interface object name assert_own_property: self does not have own property "SVGHatchpathElement" expected property "SVGHatchpathElement" missing
 FAIL SVGHatchpathElement interface: existence and properties of interface prototype object assert_own_property: self does not have own property "SVGHatchpathElement" expected property "SVGHatchpathElement" missing
 FAIL SVGHatchpathElement interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "SVGHatchpathElement" expected property "SVGHatchpathElement" missing
+FAIL SVGHatchpathElement interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "SVGHatchpathElement" expected property "SVGHatchpathElement" missing
 FAIL SVGCursorElement interface: existence and properties of interface object assert_own_property: self does not have own property "SVGCursorElement" expected property "SVGCursorElement" missing
 FAIL SVGCursorElement interface object length assert_own_property: self does not have own property "SVGCursorElement" expected property "SVGCursorElement" missing
 FAIL SVGCursorElement interface object name assert_own_property: self does not have own property "SVGCursorElement" expected property "SVGCursorElement" missing
 FAIL SVGCursorElement interface: existence and properties of interface prototype object assert_own_property: self does not have own property "SVGCursorElement" expected property "SVGCursorElement" missing
 FAIL SVGCursorElement interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "SVGCursorElement" expected property "SVGCursorElement" missing
+FAIL SVGCursorElement interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "SVGCursorElement" expected property "SVGCursorElement" missing
 FAIL SVGCursorElement interface: attribute x assert_own_property: self does not have own property "SVGCursorElement" expected property "SVGCursorElement" missing
+PASS Unscopable handled correctly for x property on SVGCursorElement
 FAIL SVGCursorElement interface: attribute y assert_own_property: self does not have own property "SVGCursorElement" expected property "SVGCursorElement" missing
+PASS Unscopable handled correctly for y property on SVGCursorElement
 FAIL SVGCursorElement interface: attribute href assert_own_property: self does not have own property "SVGCursorElement" expected property "SVGCursorElement" missing
+PASS Unscopable handled correctly for href property on SVGCursorElement
 FAIL SVGCursorElement must be primary interface of cursor assert_own_property: self does not have own property "SVGCursorElement" expected property "SVGCursorElement" missing
 FAIL Stringification of cursor assert_equals: class string of cursor expected "[object SVGCursorElement]" but got "[object SVGElement]"
 FAIL SVGCursorElement interface: cursor must inherit property "x" with the proper type assert_inherits: property "x" not found in prototype chain
@@ -1538,9 +1844,13 @@
 PASS SVGScriptElement interface object name
 PASS SVGScriptElement interface: existence and properties of interface prototype object
 PASS SVGScriptElement interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGScriptElement interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGScriptElement interface: attribute type
+PASS Unscopable handled correctly for type property on SVGScriptElement
 FAIL SVGScriptElement interface: attribute crossOrigin assert_true: The prototype object must have a property "crossOrigin" expected true got false
+PASS Unscopable handled correctly for crossOrigin property on SVGScriptElement
 PASS SVGScriptElement interface: attribute href
+PASS Unscopable handled correctly for href property on SVGScriptElement
 PASS SVGScriptElement must be primary interface of script
 PASS Stringification of script
 PASS SVGScriptElement interface: script must inherit property "type" with the proper type
@@ -1558,8 +1868,11 @@
 PASS SVGAElement interface object name
 PASS SVGAElement interface: existence and properties of interface prototype object
 PASS SVGAElement interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGAElement interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGAElement interface: attribute target
+PASS Unscopable handled correctly for target property on SVGAElement
 PASS SVGAElement interface: attribute href
+PASS Unscopable handled correctly for href property on SVGAElement
 PASS SVGAElement must be primary interface of a
 PASS Stringification of a
 PASS SVGAElement interface: a must inherit property "target" with the proper type
@@ -1583,8 +1896,11 @@
 PASS SVGViewElement interface object name
 PASS SVGViewElement interface: existence and properties of interface prototype object
 PASS SVGViewElement interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGViewElement interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGViewElement interface: attribute viewBox
+PASS Unscopable handled correctly for viewBox property on SVGViewElement
 PASS SVGViewElement interface: attribute preserveAspectRatio
+PASS Unscopable handled correctly for preserveAspectRatio property on SVGViewElement
 PASS SVGViewElement interface: constant SVG_ZOOMANDPAN_UNKNOWN on interface object
 PASS SVGViewElement interface: constant SVG_ZOOMANDPAN_UNKNOWN on interface prototype object
 PASS SVGViewElement interface: constant SVG_ZOOMANDPAN_DISABLE on interface object
@@ -1592,6 +1908,7 @@
 PASS SVGViewElement interface: constant SVG_ZOOMANDPAN_MAGNIFY on interface object
 PASS SVGViewElement interface: constant SVG_ZOOMANDPAN_MAGNIFY on interface prototype object
 PASS SVGViewElement interface: attribute zoomAndPan
+PASS Unscopable handled correctly for zoomAndPan property on SVGViewElement
 PASS SVGViewElement must be primary interface of view
 PASS Stringification of view
 PASS SVGViewElement interface: view must inherit property "viewBox" with the proper type
@@ -1612,13 +1929,21 @@
 PASS SVGFilterElement interface object name
 PASS SVGFilterElement interface: existence and properties of interface prototype object
 PASS SVGFilterElement interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGFilterElement interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGFilterElement interface: attribute filterUnits
+PASS Unscopable handled correctly for filterUnits property on SVGFilterElement
 PASS SVGFilterElement interface: attribute primitiveUnits
+PASS Unscopable handled correctly for primitiveUnits property on SVGFilterElement
 PASS SVGFilterElement interface: attribute x
+PASS Unscopable handled correctly for x property on SVGFilterElement
 PASS SVGFilterElement interface: attribute y
+PASS Unscopable handled correctly for y property on SVGFilterElement
 PASS SVGFilterElement interface: attribute width
+PASS Unscopable handled correctly for width property on SVGFilterElement
 PASS SVGFilterElement interface: attribute height
+PASS Unscopable handled correctly for height property on SVGFilterElement
 PASS SVGFilterElement interface: attribute href
+PASS Unscopable handled correctly for href property on SVGFilterElement
 PASS SVGFilterElement must be primary interface of filter
 PASS Stringification of filter
 PASS SVGFilterElement interface: filter must inherit property "filterUnits" with the proper type
@@ -1640,6 +1965,7 @@
 PASS SVGFEBlendElement interface object name
 PASS SVGFEBlendElement interface: existence and properties of interface prototype object
 PASS SVGFEBlendElement interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGFEBlendElement interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGFEBlendElement interface: constant SVG_FEBLEND_MODE_UNKNOWN on interface object
 PASS SVGFEBlendElement interface: constant SVG_FEBLEND_MODE_UNKNOWN on interface prototype object
 PASS SVGFEBlendElement interface: constant SVG_FEBLEND_MODE_NORMAL on interface object
@@ -1653,13 +1979,21 @@
 PASS SVGFEBlendElement interface: constant SVG_FEBLEND_MODE_LIGHTEN on interface object
 PASS SVGFEBlendElement interface: constant SVG_FEBLEND_MODE_LIGHTEN on interface prototype object
 PASS SVGFEBlendElement interface: attribute in1
+PASS Unscopable handled correctly for in1 property on SVGFEBlendElement
 PASS SVGFEBlendElement interface: attribute in2
+PASS Unscopable handled correctly for in2 property on SVGFEBlendElement
 PASS SVGFEBlendElement interface: attribute mode
+PASS Unscopable handled correctly for mode property on SVGFEBlendElement
 PASS SVGFEBlendElement interface: attribute x
+PASS Unscopable handled correctly for x property on SVGFEBlendElement
 PASS SVGFEBlendElement interface: attribute y
+PASS Unscopable handled correctly for y property on SVGFEBlendElement
 PASS SVGFEBlendElement interface: attribute width
+PASS Unscopable handled correctly for width property on SVGFEBlendElement
 PASS SVGFEBlendElement interface: attribute height
+PASS Unscopable handled correctly for height property on SVGFEBlendElement
 PASS SVGFEBlendElement interface: attribute result
+PASS Unscopable handled correctly for result property on SVGFEBlendElement
 PASS SVGFEBlendElement must be primary interface of feBlend
 PASS Stringification of feBlend
 PASS SVGFEBlendElement interface: feBlend must inherit property "SVG_FEBLEND_MODE_UNKNOWN" with the proper type
@@ -1688,6 +2022,7 @@
 PASS SVGFEColorMatrixElement interface object name
 PASS SVGFEColorMatrixElement interface: existence and properties of interface prototype object
 PASS SVGFEColorMatrixElement interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGFEColorMatrixElement interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGFEColorMatrixElement interface: constant SVG_FECOLORMATRIX_TYPE_UNKNOWN on interface object
 PASS SVGFEColorMatrixElement interface: constant SVG_FECOLORMATRIX_TYPE_UNKNOWN on interface prototype object
 PASS SVGFEColorMatrixElement interface: constant SVG_FECOLORMATRIX_TYPE_MATRIX on interface object
@@ -1699,13 +2034,21 @@
 PASS SVGFEColorMatrixElement interface: constant SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA on interface object
 PASS SVGFEColorMatrixElement interface: constant SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA on interface prototype object
 PASS SVGFEColorMatrixElement interface: attribute in1
+PASS Unscopable handled correctly for in1 property on SVGFEColorMatrixElement
 PASS SVGFEColorMatrixElement interface: attribute type
+PASS Unscopable handled correctly for type property on SVGFEColorMatrixElement
 PASS SVGFEColorMatrixElement interface: attribute values
+PASS Unscopable handled correctly for values property on SVGFEColorMatrixElement
 PASS SVGFEColorMatrixElement interface: attribute x
+PASS Unscopable handled correctly for x property on SVGFEColorMatrixElement
 PASS SVGFEColorMatrixElement interface: attribute y
+PASS Unscopable handled correctly for y property on SVGFEColorMatrixElement
 PASS SVGFEColorMatrixElement interface: attribute width
+PASS Unscopable handled correctly for width property on SVGFEColorMatrixElement
 PASS SVGFEColorMatrixElement interface: attribute height
+PASS Unscopable handled correctly for height property on SVGFEColorMatrixElement
 PASS SVGFEColorMatrixElement interface: attribute result
+PASS Unscopable handled correctly for result property on SVGFEColorMatrixElement
 PASS SVGFEColorMatrixElement must be primary interface of feColorMatrix
 PASS Stringification of feColorMatrix
 PASS SVGFEColorMatrixElement interface: feColorMatrix must inherit property "SVG_FECOLORMATRIX_TYPE_UNKNOWN" with the proper type
@@ -1733,12 +2076,19 @@
 PASS SVGFEComponentTransferElement interface object name
 PASS SVGFEComponentTransferElement interface: existence and properties of interface prototype object
 PASS SVGFEComponentTransferElement interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGFEComponentTransferElement interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGFEComponentTransferElement interface: attribute in1
+PASS Unscopable handled correctly for in1 property on SVGFEComponentTransferElement
 PASS SVGFEComponentTransferElement interface: attribute x
+PASS Unscopable handled correctly for x property on SVGFEComponentTransferElement
 PASS SVGFEComponentTransferElement interface: attribute y
+PASS Unscopable handled correctly for y property on SVGFEComponentTransferElement
 PASS SVGFEComponentTransferElement interface: attribute width
+PASS Unscopable handled correctly for width property on SVGFEComponentTransferElement
 PASS SVGFEComponentTransferElement interface: attribute height
+PASS Unscopable handled correctly for height property on SVGFEComponentTransferElement
 PASS SVGFEComponentTransferElement interface: attribute result
+PASS Unscopable handled correctly for result property on SVGFEComponentTransferElement
 PASS SVGFEComponentTransferElement must be primary interface of feComponentTransfer
 PASS Stringification of feComponentTransfer
 PASS SVGFEComponentTransferElement interface: feComponentTransfer must inherit property "in1" with the proper type
@@ -1759,6 +2109,7 @@
 PASS SVGComponentTransferFunctionElement interface object name
 PASS SVGComponentTransferFunctionElement interface: existence and properties of interface prototype object
 PASS SVGComponentTransferFunctionElement interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGComponentTransferFunctionElement interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGComponentTransferFunctionElement interface: constant SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN on interface object
 PASS SVGComponentTransferFunctionElement interface: constant SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN on interface prototype object
 PASS SVGComponentTransferFunctionElement interface: constant SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY on interface object
@@ -1772,17 +2123,25 @@
 PASS SVGComponentTransferFunctionElement interface: constant SVG_FECOMPONENTTRANSFER_TYPE_GAMMA on interface object
 PASS SVGComponentTransferFunctionElement interface: constant SVG_FECOMPONENTTRANSFER_TYPE_GAMMA on interface prototype object
 PASS SVGComponentTransferFunctionElement interface: attribute type
+PASS Unscopable handled correctly for type property on SVGComponentTransferFunctionElement
 PASS SVGComponentTransferFunctionElement interface: attribute tableValues
+PASS Unscopable handled correctly for tableValues property on SVGComponentTransferFunctionElement
 PASS SVGComponentTransferFunctionElement interface: attribute slope
+PASS Unscopable handled correctly for slope property on SVGComponentTransferFunctionElement
 PASS SVGComponentTransferFunctionElement interface: attribute intercept
+PASS Unscopable handled correctly for intercept property on SVGComponentTransferFunctionElement
 PASS SVGComponentTransferFunctionElement interface: attribute amplitude
+PASS Unscopable handled correctly for amplitude property on SVGComponentTransferFunctionElement
 PASS SVGComponentTransferFunctionElement interface: attribute exponent
+PASS Unscopable handled correctly for exponent property on SVGComponentTransferFunctionElement
 PASS SVGComponentTransferFunctionElement interface: attribute offset
+PASS Unscopable handled correctly for offset property on SVGComponentTransferFunctionElement
 PASS SVGFEFuncRElement interface: existence and properties of interface object
 PASS SVGFEFuncRElement interface object length
 PASS SVGFEFuncRElement interface object name
 PASS SVGFEFuncRElement interface: existence and properties of interface prototype object
 PASS SVGFEFuncRElement interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGFEFuncRElement interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGFEFuncRElement must be primary interface of feFuncR
 PASS Stringification of feFuncR
 PASS SVGComponentTransferFunctionElement interface: feFuncR must inherit property "SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN" with the proper type
@@ -1810,6 +2169,7 @@
 PASS SVGFEFuncGElement interface object name
 PASS SVGFEFuncGElement interface: existence and properties of interface prototype object
 PASS SVGFEFuncGElement interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGFEFuncGElement interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGFEFuncGElement must be primary interface of feFuncG
 PASS Stringification of feFuncG
 PASS SVGComponentTransferFunctionElement interface: feFuncG must inherit property "SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN" with the proper type
@@ -1837,6 +2197,7 @@
 PASS SVGFEFuncBElement interface object name
 PASS SVGFEFuncBElement interface: existence and properties of interface prototype object
 PASS SVGFEFuncBElement interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGFEFuncBElement interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGFEFuncBElement must be primary interface of feFuncB
 PASS Stringification of feFuncB
 PASS SVGComponentTransferFunctionElement interface: feFuncB must inherit property "SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN" with the proper type
@@ -1864,6 +2225,7 @@
 PASS SVGFEFuncAElement interface object name
 PASS SVGFEFuncAElement interface: existence and properties of interface prototype object
 PASS SVGFEFuncAElement interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGFEFuncAElement interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGFEFuncAElement must be primary interface of feFuncA
 PASS Stringification of feFuncA
 PASS SVGComponentTransferFunctionElement interface: feFuncA must inherit property "SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN" with the proper type
@@ -1891,6 +2253,7 @@
 PASS SVGFECompositeElement interface object name
 PASS SVGFECompositeElement interface: existence and properties of interface prototype object
 PASS SVGFECompositeElement interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGFECompositeElement interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGFECompositeElement interface: constant SVG_FECOMPOSITE_OPERATOR_UNKNOWN on interface object
 PASS SVGFECompositeElement interface: constant SVG_FECOMPOSITE_OPERATOR_UNKNOWN on interface prototype object
 PASS SVGFECompositeElement interface: constant SVG_FECOMPOSITE_OPERATOR_OVER on interface object
@@ -1906,17 +2269,29 @@
 PASS SVGFECompositeElement interface: constant SVG_FECOMPOSITE_OPERATOR_ARITHMETIC on interface object
 PASS SVGFECompositeElement interface: constant SVG_FECOMPOSITE_OPERATOR_ARITHMETIC on interface prototype object
 PASS SVGFECompositeElement interface: attribute in1
+PASS Unscopable handled correctly for in1 property on SVGFECompositeElement
 PASS SVGFECompositeElement interface: attribute in2
+PASS Unscopable handled correctly for in2 property on SVGFECompositeElement
 PASS SVGFECompositeElement interface: attribute operator
+PASS Unscopable handled correctly for operator property on SVGFECompositeElement
 PASS SVGFECompositeElement interface: attribute k1
+PASS Unscopable handled correctly for k1 property on SVGFECompositeElement
 PASS SVGFECompositeElement interface: attribute k2
+PASS Unscopable handled correctly for k2 property on SVGFECompositeElement
 PASS SVGFECompositeElement interface: attribute k3
+PASS Unscopable handled correctly for k3 property on SVGFECompositeElement
 PASS SVGFECompositeElement interface: attribute k4
+PASS Unscopable handled correctly for k4 property on SVGFECompositeElement
 PASS SVGFECompositeElement interface: attribute x
+PASS Unscopable handled correctly for x property on SVGFECompositeElement
 PASS SVGFECompositeElement interface: attribute y
+PASS Unscopable handled correctly for y property on SVGFECompositeElement
 PASS SVGFECompositeElement interface: attribute width
+PASS Unscopable handled correctly for width property on SVGFECompositeElement
 PASS SVGFECompositeElement interface: attribute height
+PASS Unscopable handled correctly for height property on SVGFECompositeElement
 PASS SVGFECompositeElement interface: attribute result
+PASS Unscopable handled correctly for result property on SVGFECompositeElement
 PASS SVGFECompositeElement must be primary interface of feComposite
 PASS Stringification of feComposite
 PASS SVGFECompositeElement interface: feComposite must inherit property "SVG_FECOMPOSITE_OPERATOR_UNKNOWN" with the proper type
@@ -1950,6 +2325,7 @@
 PASS SVGFEConvolveMatrixElement interface object name
 PASS SVGFEConvolveMatrixElement interface: existence and properties of interface prototype object
 PASS SVGFEConvolveMatrixElement interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGFEConvolveMatrixElement interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGFEConvolveMatrixElement interface: constant SVG_EDGEMODE_UNKNOWN on interface object
 PASS SVGFEConvolveMatrixElement interface: constant SVG_EDGEMODE_UNKNOWN on interface prototype object
 PASS SVGFEConvolveMatrixElement interface: constant SVG_EDGEMODE_DUPLICATE on interface object
@@ -1959,21 +2335,37 @@
 PASS SVGFEConvolveMatrixElement interface: constant SVG_EDGEMODE_NONE on interface object
 PASS SVGFEConvolveMatrixElement interface: constant SVG_EDGEMODE_NONE on interface prototype object
 PASS SVGFEConvolveMatrixElement interface: attribute in1
+PASS Unscopable handled correctly for in1 property on SVGFEConvolveMatrixElement
 PASS SVGFEConvolveMatrixElement interface: attribute orderX
+PASS Unscopable handled correctly for orderX property on SVGFEConvolveMatrixElement
 PASS SVGFEConvolveMatrixElement interface: attribute orderY
+PASS Unscopable handled correctly for orderY property on SVGFEConvolveMatrixElement
 PASS SVGFEConvolveMatrixElement interface: attribute kernelMatrix
+PASS Unscopable handled correctly for kernelMatrix property on SVGFEConvolveMatrixElement
 PASS SVGFEConvolveMatrixElement interface: attribute divisor
+PASS Unscopable handled correctly for divisor property on SVGFEConvolveMatrixElement
 PASS SVGFEConvolveMatrixElement interface: attribute bias
+PASS Unscopable handled correctly for bias property on SVGFEConvolveMatrixElement
 PASS SVGFEConvolveMatrixElement interface: attribute targetX
+PASS Unscopable handled correctly for targetX property on SVGFEConvolveMatrixElement
 PASS SVGFEConvolveMatrixElement interface: attribute targetY
+PASS Unscopable handled correctly for targetY property on SVGFEConvolveMatrixElement
 PASS SVGFEConvolveMatrixElement interface: attribute edgeMode
+PASS Unscopable handled correctly for edgeMode property on SVGFEConvolveMatrixElement
 PASS SVGFEConvolveMatrixElement interface: attribute kernelUnitLengthX
+PASS Unscopable handled correctly for kernelUnitLengthX property on SVGFEConvolveMatrixElement
 PASS SVGFEConvolveMatrixElement interface: attribute kernelUnitLengthY
+PASS Unscopable handled correctly for kernelUnitLengthY property on SVGFEConvolveMatrixElement
 PASS SVGFEConvolveMatrixElement interface: attribute x
+PASS Unscopable handled correctly for x property on SVGFEConvolveMatrixElement
 PASS SVGFEConvolveMatrixElement interface: attribute y
+PASS Unscopable handled correctly for y property on SVGFEConvolveMatrixElement
 PASS SVGFEConvolveMatrixElement interface: attribute width
+PASS Unscopable handled correctly for width property on SVGFEConvolveMatrixElement
 PASS SVGFEConvolveMatrixElement interface: attribute height
+PASS Unscopable handled correctly for height property on SVGFEConvolveMatrixElement
 PASS SVGFEConvolveMatrixElement interface: attribute result
+PASS Unscopable handled correctly for result property on SVGFEConvolveMatrixElement
 PASS SVGFEConvolveMatrixElement must be primary interface of feConvolveMatrix
 PASS Stringification of feConvolveMatrix
 PASS SVGFEConvolveMatrixElement interface: feConvolveMatrix must inherit property "SVG_EDGEMODE_UNKNOWN" with the proper type
@@ -2008,16 +2400,27 @@
 PASS SVGFEDiffuseLightingElement interface object name
 PASS SVGFEDiffuseLightingElement interface: existence and properties of interface prototype object
 PASS SVGFEDiffuseLightingElement interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGFEDiffuseLightingElement interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGFEDiffuseLightingElement interface: attribute in1
+PASS Unscopable handled correctly for in1 property on SVGFEDiffuseLightingElement
 PASS SVGFEDiffuseLightingElement interface: attribute surfaceScale
+PASS Unscopable handled correctly for surfaceScale property on SVGFEDiffuseLightingElement
 PASS SVGFEDiffuseLightingElement interface: attribute diffuseConstant
+PASS Unscopable handled correctly for diffuseConstant property on SVGFEDiffuseLightingElement
 PASS SVGFEDiffuseLightingElement interface: attribute kernelUnitLengthX
+PASS Unscopable handled correctly for kernelUnitLengthX property on SVGFEDiffuseLightingElement
 PASS SVGFEDiffuseLightingElement interface: attribute kernelUnitLengthY
+PASS Unscopable handled correctly for kernelUnitLengthY property on SVGFEDiffuseLightingElement
 PASS SVGFEDiffuseLightingElement interface: attribute x
+PASS Unscopable handled correctly for x property on SVGFEDiffuseLightingElement
 PASS SVGFEDiffuseLightingElement interface: attribute y
+PASS Unscopable handled correctly for y property on SVGFEDiffuseLightingElement
 PASS SVGFEDiffuseLightingElement interface: attribute width
+PASS Unscopable handled correctly for width property on SVGFEDiffuseLightingElement
 PASS SVGFEDiffuseLightingElement interface: attribute height
+PASS Unscopable handled correctly for height property on SVGFEDiffuseLightingElement
 PASS SVGFEDiffuseLightingElement interface: attribute result
+PASS Unscopable handled correctly for result property on SVGFEDiffuseLightingElement
 PASS SVGFEDiffuseLightingElement must be primary interface of feDiffuseLighting
 PASS Stringification of feDiffuseLighting
 PASS SVGFEDiffuseLightingElement interface: feDiffuseLighting must inherit property "in1" with the proper type
@@ -2042,16 +2445,23 @@
 PASS SVGFEDistantLightElement interface object name
 PASS SVGFEDistantLightElement interface: existence and properties of interface prototype object
 PASS SVGFEDistantLightElement interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGFEDistantLightElement interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGFEDistantLightElement interface: attribute azimuth
+PASS Unscopable handled correctly for azimuth property on SVGFEDistantLightElement
 PASS SVGFEDistantLightElement interface: attribute elevation
+PASS Unscopable handled correctly for elevation property on SVGFEDistantLightElement
 PASS SVGFEPointLightElement interface: existence and properties of interface object
 PASS SVGFEPointLightElement interface object length
 PASS SVGFEPointLightElement interface object name
 PASS SVGFEPointLightElement interface: existence and properties of interface prototype object
 PASS SVGFEPointLightElement interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGFEPointLightElement interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGFEPointLightElement interface: attribute x
+PASS Unscopable handled correctly for x property on SVGFEPointLightElement
 PASS SVGFEPointLightElement interface: attribute y
+PASS Unscopable handled correctly for y property on SVGFEPointLightElement
 PASS SVGFEPointLightElement interface: attribute z
+PASS Unscopable handled correctly for z property on SVGFEPointLightElement
 PASS SVGFEPointLightElement must be primary interface of fePointLight
 PASS Stringification of fePointLight
 PASS SVGFEPointLightElement interface: fePointLight must inherit property "x" with the proper type
@@ -2069,14 +2479,23 @@
 PASS SVGFESpotLightElement interface object name
 PASS SVGFESpotLightElement interface: existence and properties of interface prototype object
 PASS SVGFESpotLightElement interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGFESpotLightElement interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGFESpotLightElement interface: attribute x
+PASS Unscopable handled correctly for x property on SVGFESpotLightElement
 PASS SVGFESpotLightElement interface: attribute y
+PASS Unscopable handled correctly for y property on SVGFESpotLightElement
 PASS SVGFESpotLightElement interface: attribute z
+PASS Unscopable handled correctly for z property on SVGFESpotLightElement
 PASS SVGFESpotLightElement interface: attribute pointsAtX
+PASS Unscopable handled correctly for pointsAtX property on SVGFESpotLightElement
 PASS SVGFESpotLightElement interface: attribute pointsAtY
+PASS Unscopable handled correctly for pointsAtY property on SVGFESpotLightElement
 PASS SVGFESpotLightElement interface: attribute pointsAtZ
+PASS Unscopable handled correctly for pointsAtZ property on SVGFESpotLightElement
 PASS SVGFESpotLightElement interface: attribute specularExponent
+PASS Unscopable handled correctly for specularExponent property on SVGFESpotLightElement
 PASS SVGFESpotLightElement interface: attribute limitingConeAngle
+PASS Unscopable handled correctly for limitingConeAngle property on SVGFESpotLightElement
 PASS SVGFESpotLightElement must be primary interface of feSpotLight
 PASS Stringification of feSpotLight
 PASS SVGFESpotLightElement interface: feSpotLight must inherit property "x" with the proper type
@@ -2099,6 +2518,7 @@
 PASS SVGFEDisplacementMapElement interface object name
 PASS SVGFEDisplacementMapElement interface: existence and properties of interface prototype object
 PASS SVGFEDisplacementMapElement interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGFEDisplacementMapElement interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGFEDisplacementMapElement interface: constant SVG_CHANNEL_UNKNOWN on interface object
 PASS SVGFEDisplacementMapElement interface: constant SVG_CHANNEL_UNKNOWN on interface prototype object
 PASS SVGFEDisplacementMapElement interface: constant SVG_CHANNEL_R on interface object
@@ -2110,15 +2530,25 @@
 PASS SVGFEDisplacementMapElement interface: constant SVG_CHANNEL_A on interface object
 PASS SVGFEDisplacementMapElement interface: constant SVG_CHANNEL_A on interface prototype object
 PASS SVGFEDisplacementMapElement interface: attribute in1
+PASS Unscopable handled correctly for in1 property on SVGFEDisplacementMapElement
 PASS SVGFEDisplacementMapElement interface: attribute in2
+PASS Unscopable handled correctly for in2 property on SVGFEDisplacementMapElement
 PASS SVGFEDisplacementMapElement interface: attribute scale
+PASS Unscopable handled correctly for scale property on SVGFEDisplacementMapElement
 PASS SVGFEDisplacementMapElement interface: attribute xChannelSelector
+PASS Unscopable handled correctly for xChannelSelector property on SVGFEDisplacementMapElement
 PASS SVGFEDisplacementMapElement interface: attribute yChannelSelector
+PASS Unscopable handled correctly for yChannelSelector property on SVGFEDisplacementMapElement
 PASS SVGFEDisplacementMapElement interface: attribute x
+PASS Unscopable handled correctly for x property on SVGFEDisplacementMapElement
 PASS SVGFEDisplacementMapElement interface: attribute y
+PASS Unscopable handled correctly for y property on SVGFEDisplacementMapElement
 PASS SVGFEDisplacementMapElement interface: attribute width
+PASS Unscopable handled correctly for width property on SVGFEDisplacementMapElement
 PASS SVGFEDisplacementMapElement interface: attribute height
+PASS Unscopable handled correctly for height property on SVGFEDisplacementMapElement
 PASS SVGFEDisplacementMapElement interface: attribute result
+PASS Unscopable handled correctly for result property on SVGFEDisplacementMapElement
 PASS SVGFEDisplacementMapElement must be primary interface of feDisplacementMap
 PASS Stringification of feDisplacementMap
 PASS SVGFEDisplacementMapElement interface: feDisplacementMap must inherit property "SVG_CHANNEL_UNKNOWN" with the proper type
@@ -2148,17 +2578,29 @@
 PASS SVGFEDropShadowElement interface object name
 PASS SVGFEDropShadowElement interface: existence and properties of interface prototype object
 PASS SVGFEDropShadowElement interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGFEDropShadowElement interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGFEDropShadowElement interface: attribute in1
+PASS Unscopable handled correctly for in1 property on SVGFEDropShadowElement
 PASS SVGFEDropShadowElement interface: attribute dx
+PASS Unscopable handled correctly for dx property on SVGFEDropShadowElement
 PASS SVGFEDropShadowElement interface: attribute dy
+PASS Unscopable handled correctly for dy property on SVGFEDropShadowElement
 PASS SVGFEDropShadowElement interface: attribute stdDeviationX
+PASS Unscopable handled correctly for stdDeviationX property on SVGFEDropShadowElement
 PASS SVGFEDropShadowElement interface: attribute stdDeviationY
+PASS Unscopable handled correctly for stdDeviationY property on SVGFEDropShadowElement
 PASS SVGFEDropShadowElement interface: operation setStdDeviation(float, float)
+PASS Unscopable handled correctly for setStdDeviation(float, float) on SVGFEDropShadowElement
 PASS SVGFEDropShadowElement interface: attribute x
+PASS Unscopable handled correctly for x property on SVGFEDropShadowElement
 PASS SVGFEDropShadowElement interface: attribute y
+PASS Unscopable handled correctly for y property on SVGFEDropShadowElement
 PASS SVGFEDropShadowElement interface: attribute width
+PASS Unscopable handled correctly for width property on SVGFEDropShadowElement
 PASS SVGFEDropShadowElement interface: attribute height
+PASS Unscopable handled correctly for height property on SVGFEDropShadowElement
 PASS SVGFEDropShadowElement interface: attribute result
+PASS Unscopable handled correctly for result property on SVGFEDropShadowElement
 PASS SVGFEDropShadowElement must be primary interface of feDropShadow
 PASS Stringification of feDropShadow
 PASS SVGFEDropShadowElement interface: feDropShadow must inherit property "in1" with the proper type
@@ -2185,11 +2627,17 @@
 PASS SVGFEFloodElement interface object name
 PASS SVGFEFloodElement interface: existence and properties of interface prototype object
 PASS SVGFEFloodElement interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGFEFloodElement interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGFEFloodElement interface: attribute x
+PASS Unscopable handled correctly for x property on SVGFEFloodElement
 PASS SVGFEFloodElement interface: attribute y
+PASS Unscopable handled correctly for y property on SVGFEFloodElement
 PASS SVGFEFloodElement interface: attribute width
+PASS Unscopable handled correctly for width property on SVGFEFloodElement
 PASS SVGFEFloodElement interface: attribute height
+PASS Unscopable handled correctly for height property on SVGFEFloodElement
 PASS SVGFEFloodElement interface: attribute result
+PASS Unscopable handled correctly for result property on SVGFEFloodElement
 PASS SVGFEFloodElement must be primary interface of feFlood
 PASS Stringification of feFlood
 PASS SVGFEFloodElement interface: feFlood must inherit property "x" with the proper type
@@ -2209,6 +2657,7 @@
 PASS SVGFEGaussianBlurElement interface object name
 PASS SVGFEGaussianBlurElement interface: existence and properties of interface prototype object
 PASS SVGFEGaussianBlurElement interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGFEGaussianBlurElement interface: existence and properties of interface prototype object's @@unscopables property
 FAIL SVGFEGaussianBlurElement interface: constant SVG_EDGEMODE_UNKNOWN on interface object assert_own_property: expected property "SVG_EDGEMODE_UNKNOWN" missing
 FAIL SVGFEGaussianBlurElement interface: constant SVG_EDGEMODE_UNKNOWN on interface prototype object assert_own_property: expected property "SVG_EDGEMODE_UNKNOWN" missing
 FAIL SVGFEGaussianBlurElement interface: constant SVG_EDGEMODE_DUPLICATE on interface object assert_own_property: expected property "SVG_EDGEMODE_DUPLICATE" missing
@@ -2218,15 +2667,25 @@
 FAIL SVGFEGaussianBlurElement interface: constant SVG_EDGEMODE_NONE on interface object assert_own_property: expected property "SVG_EDGEMODE_NONE" missing
 FAIL SVGFEGaussianBlurElement interface: constant SVG_EDGEMODE_NONE on interface prototype object assert_own_property: expected property "SVG_EDGEMODE_NONE" missing
 PASS SVGFEGaussianBlurElement interface: attribute in1
+PASS Unscopable handled correctly for in1 property on SVGFEGaussianBlurElement
 PASS SVGFEGaussianBlurElement interface: attribute stdDeviationX
+PASS Unscopable handled correctly for stdDeviationX property on SVGFEGaussianBlurElement
 PASS SVGFEGaussianBlurElement interface: attribute stdDeviationY
+PASS Unscopable handled correctly for stdDeviationY property on SVGFEGaussianBlurElement
 FAIL SVGFEGaussianBlurElement interface: attribute edgeMode assert_true: The prototype object must have a property "edgeMode" expected true got false
+PASS Unscopable handled correctly for edgeMode property on SVGFEGaussianBlurElement
 PASS SVGFEGaussianBlurElement interface: operation setStdDeviation(float, float)
+PASS Unscopable handled correctly for setStdDeviation(float, float) on SVGFEGaussianBlurElement
 PASS SVGFEGaussianBlurElement interface: attribute x
+PASS Unscopable handled correctly for x property on SVGFEGaussianBlurElement
 PASS SVGFEGaussianBlurElement interface: attribute y
+PASS Unscopable handled correctly for y property on SVGFEGaussianBlurElement
 PASS SVGFEGaussianBlurElement interface: attribute width
+PASS Unscopable handled correctly for width property on SVGFEGaussianBlurElement
 PASS SVGFEGaussianBlurElement interface: attribute height
+PASS Unscopable handled correctly for height property on SVGFEGaussianBlurElement
 PASS SVGFEGaussianBlurElement interface: attribute result
+PASS Unscopable handled correctly for result property on SVGFEGaussianBlurElement
 PASS SVGFEGaussianBlurElement must be primary interface of feGaussianBlur
 PASS Stringification of feGaussianBlur
 FAIL SVGFEGaussianBlurElement interface: feGaussianBlur must inherit property "SVG_EDGEMODE_UNKNOWN" with the proper type assert_inherits: property "SVG_EDGEMODE_UNKNOWN" not found in prototype chain
@@ -2256,14 +2715,23 @@
 PASS SVGFEImageElement interface object name
 PASS SVGFEImageElement interface: existence and properties of interface prototype object
 PASS SVGFEImageElement interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGFEImageElement interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGFEImageElement interface: attribute preserveAspectRatio
+PASS Unscopable handled correctly for preserveAspectRatio property on SVGFEImageElement
 FAIL SVGFEImageElement interface: attribute crossOrigin assert_true: The prototype object must have a property "crossOrigin" expected true got false
+PASS Unscopable handled correctly for crossOrigin property on SVGFEImageElement
 PASS SVGFEImageElement interface: attribute x
+PASS Unscopable handled correctly for x property on SVGFEImageElement
 PASS SVGFEImageElement interface: attribute y
+PASS Unscopable handled correctly for y property on SVGFEImageElement
 PASS SVGFEImageElement interface: attribute width
+PASS Unscopable handled correctly for width property on SVGFEImageElement
 PASS SVGFEImageElement interface: attribute height
+PASS Unscopable handled correctly for height property on SVGFEImageElement
 PASS SVGFEImageElement interface: attribute result
+PASS Unscopable handled correctly for result property on SVGFEImageElement
 PASS SVGFEImageElement interface: attribute href
+PASS Unscopable handled correctly for href property on SVGFEImageElement
 PASS SVGFEImageElement must be primary interface of feImage
 PASS Stringification of feImage
 PASS SVGFEImageElement interface: feImage must inherit property "preserveAspectRatio" with the proper type
@@ -2286,11 +2754,17 @@
 PASS SVGFEMergeElement interface object name
 PASS SVGFEMergeElement interface: existence and properties of interface prototype object
 PASS SVGFEMergeElement interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGFEMergeElement interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGFEMergeElement interface: attribute x
+PASS Unscopable handled correctly for x property on SVGFEMergeElement
 PASS SVGFEMergeElement interface: attribute y
+PASS Unscopable handled correctly for y property on SVGFEMergeElement
 PASS SVGFEMergeElement interface: attribute width
+PASS Unscopable handled correctly for width property on SVGFEMergeElement
 PASS SVGFEMergeElement interface: attribute height
+PASS Unscopable handled correctly for height property on SVGFEMergeElement
 PASS SVGFEMergeElement interface: attribute result
+PASS Unscopable handled correctly for result property on SVGFEMergeElement
 PASS SVGFEMergeElement must be primary interface of feMerge
 PASS Stringification of feMerge
 PASS SVGFEMergeElement interface: feMerge must inherit property "x" with the proper type
@@ -2310,7 +2784,9 @@
 PASS SVGFEMergeNodeElement interface object name
 PASS SVGFEMergeNodeElement interface: existence and properties of interface prototype object
 PASS SVGFEMergeNodeElement interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGFEMergeNodeElement interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGFEMergeNodeElement interface: attribute in1
+PASS Unscopable handled correctly for in1 property on SVGFEMergeNodeElement
 PASS SVGFEMergeNodeElement must be primary interface of feMergeNode
 PASS Stringification of feMergeNode
 PASS SVGFEMergeNodeElement interface: feMergeNode must inherit property "in1" with the proper type
@@ -2326,6 +2802,7 @@
 PASS SVGFEMorphologyElement interface object name
 PASS SVGFEMorphologyElement interface: existence and properties of interface prototype object
 PASS SVGFEMorphologyElement interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGFEMorphologyElement interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGFEMorphologyElement interface: constant SVG_MORPHOLOGY_OPERATOR_UNKNOWN on interface object
 PASS SVGFEMorphologyElement interface: constant SVG_MORPHOLOGY_OPERATOR_UNKNOWN on interface prototype object
 PASS SVGFEMorphologyElement interface: constant SVG_MORPHOLOGY_OPERATOR_ERODE on interface object
@@ -2333,14 +2810,23 @@
 PASS SVGFEMorphologyElement interface: constant SVG_MORPHOLOGY_OPERATOR_DILATE on interface object
 PASS SVGFEMorphologyElement interface: constant SVG_MORPHOLOGY_OPERATOR_DILATE on interface prototype object
 PASS SVGFEMorphologyElement interface: attribute in1
+PASS Unscopable handled correctly for in1 property on SVGFEMorphologyElement
 PASS SVGFEMorphologyElement interface: attribute operator
+PASS Unscopable handled correctly for operator property on SVGFEMorphologyElement
 PASS SVGFEMorphologyElement interface: attribute radiusX
+PASS Unscopable handled correctly for radiusX property on SVGFEMorphologyElement
 PASS SVGFEMorphologyElement interface: attribute radiusY
+PASS Unscopable handled correctly for radiusY property on SVGFEMorphologyElement
 PASS SVGFEMorphologyElement interface: attribute x
+PASS Unscopable handled correctly for x property on SVGFEMorphologyElement
 PASS SVGFEMorphologyElement interface: attribute y
+PASS Unscopable handled correctly for y property on SVGFEMorphologyElement
 PASS SVGFEMorphologyElement interface: attribute width
+PASS Unscopable handled correctly for width property on SVGFEMorphologyElement
 PASS SVGFEMorphologyElement interface: attribute height
+PASS Unscopable handled correctly for height property on SVGFEMorphologyElement
 PASS SVGFEMorphologyElement interface: attribute result
+PASS Unscopable handled correctly for result property on SVGFEMorphologyElement
 PASS SVGFEMorphologyElement must be primary interface of feMorphology
 PASS Stringification of feMorphology
 PASS SVGFEMorphologyElement interface: feMorphology must inherit property "SVG_MORPHOLOGY_OPERATOR_UNKNOWN" with the proper type
@@ -2367,30 +2853,51 @@
 PASS SVGFEOffsetElement interface object name
 PASS SVGFEOffsetElement interface: existence and properties of interface prototype object
 PASS SVGFEOffsetElement interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGFEOffsetElement interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGFEOffsetElement interface: attribute in1
+PASS Unscopable handled correctly for in1 property on SVGFEOffsetElement
 PASS SVGFEOffsetElement interface: attribute dx
+PASS Unscopable handled correctly for dx property on SVGFEOffsetElement
 PASS SVGFEOffsetElement interface: attribute dy
+PASS Unscopable handled correctly for dy property on SVGFEOffsetElement
 PASS SVGFEOffsetElement interface: attribute x
+PASS Unscopable handled correctly for x property on SVGFEOffsetElement
 PASS SVGFEOffsetElement interface: attribute y
+PASS Unscopable handled correctly for y property on SVGFEOffsetElement
 PASS SVGFEOffsetElement interface: attribute width
+PASS Unscopable handled correctly for width property on SVGFEOffsetElement
 PASS SVGFEOffsetElement interface: attribute height
+PASS Unscopable handled correctly for height property on SVGFEOffsetElement
 PASS SVGFEOffsetElement interface: attribute result
+PASS Unscopable handled correctly for result property on SVGFEOffsetElement
 PASS SVGFESpecularLightingElement interface: existence and properties of interface object
 PASS SVGFESpecularLightingElement interface object length
 PASS SVGFESpecularLightingElement interface object name
 PASS SVGFESpecularLightingElement interface: existence and properties of interface prototype object
 PASS SVGFESpecularLightingElement interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGFESpecularLightingElement interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGFESpecularLightingElement interface: attribute in1
+PASS Unscopable handled correctly for in1 property on SVGFESpecularLightingElement
 PASS SVGFESpecularLightingElement interface: attribute surfaceScale
+PASS Unscopable handled correctly for surfaceScale property on SVGFESpecularLightingElement
 PASS SVGFESpecularLightingElement interface: attribute specularConstant
+PASS Unscopable handled correctly for specularConstant property on SVGFESpecularLightingElement
 PASS SVGFESpecularLightingElement interface: attribute specularExponent
+PASS Unscopable handled correctly for specularExponent property on SVGFESpecularLightingElement
 PASS SVGFESpecularLightingElement interface: attribute kernelUnitLengthX
+PASS Unscopable handled correctly for kernelUnitLengthX property on SVGFESpecularLightingElement
 PASS SVGFESpecularLightingElement interface: attribute kernelUnitLengthY
+PASS Unscopable handled correctly for kernelUnitLengthY property on SVGFESpecularLightingElement
 PASS SVGFESpecularLightingElement interface: attribute x
+PASS Unscopable handled correctly for x property on SVGFESpecularLightingElement
 PASS SVGFESpecularLightingElement interface: attribute y
+PASS Unscopable handled correctly for y property on SVGFESpecularLightingElement
 PASS SVGFESpecularLightingElement interface: attribute width
+PASS Unscopable handled correctly for width property on SVGFESpecularLightingElement
 PASS SVGFESpecularLightingElement interface: attribute height
+PASS Unscopable handled correctly for height property on SVGFESpecularLightingElement
 PASS SVGFESpecularLightingElement interface: attribute result
+PASS Unscopable handled correctly for result property on SVGFESpecularLightingElement
 PASS SVGFESpecularLightingElement must be primary interface of feSpecularLighting
 PASS Stringification of feSpecularLighting
 PASS SVGFESpecularLightingElement interface: feSpecularLighting must inherit property "in1" with the proper type
@@ -2416,12 +2923,19 @@
 PASS SVGFETileElement interface object name
 PASS SVGFETileElement interface: existence and properties of interface prototype object
 PASS SVGFETileElement interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGFETileElement interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGFETileElement interface: attribute in1
+PASS Unscopable handled correctly for in1 property on SVGFETileElement
 PASS SVGFETileElement interface: attribute x
+PASS Unscopable handled correctly for x property on SVGFETileElement
 PASS SVGFETileElement interface: attribute y
+PASS Unscopable handled correctly for y property on SVGFETileElement
 PASS SVGFETileElement interface: attribute width
+PASS Unscopable handled correctly for width property on SVGFETileElement
 PASS SVGFETileElement interface: attribute height
+PASS Unscopable handled correctly for height property on SVGFETileElement
 PASS SVGFETileElement interface: attribute result
+PASS Unscopable handled correctly for result property on SVGFETileElement
 PASS SVGFETileElement must be primary interface of feTile
 PASS Stringification of feTile
 PASS SVGFETileElement interface: feTile must inherit property "in1" with the proper type
@@ -2442,6 +2956,7 @@
 PASS SVGFETurbulenceElement interface object name
 PASS SVGFETurbulenceElement interface: existence and properties of interface prototype object
 PASS SVGFETurbulenceElement interface: existence and properties of interface prototype object's "constructor" property
+PASS SVGFETurbulenceElement interface: existence and properties of interface prototype object's @@unscopables property
 PASS SVGFETurbulenceElement interface: constant SVG_TURBULENCE_TYPE_UNKNOWN on interface object
 PASS SVGFETurbulenceElement interface: constant SVG_TURBULENCE_TYPE_UNKNOWN on interface prototype object
 PASS SVGFETurbulenceElement interface: constant SVG_TURBULENCE_TYPE_FRACTALNOISE on interface object
@@ -2455,16 +2970,27 @@
 PASS SVGFETurbulenceElement interface: constant SVG_STITCHTYPE_NOSTITCH on interface object
 PASS SVGFETurbulenceElement interface: constant SVG_STITCHTYPE_NOSTITCH on interface prototype object
 PASS SVGFETurbulenceElement interface: attribute baseFrequencyX
+PASS Unscopable handled correctly for baseFrequencyX property on SVGFETurbulenceElement
 PASS SVGFETurbulenceElement interface: attribute baseFrequencyY
+PASS Unscopable handled correctly for baseFrequencyY property on SVGFETurbulenceElement
 PASS SVGFETurbulenceElement interface: attribute numOctaves
+PASS Unscopable handled correctly for numOctaves property on SVGFETurbulenceElement
 PASS SVGFETurbulenceElement interface: attribute seed
+PASS Unscopable handled correctly for seed property on SVGFETurbulenceElement
 PASS SVGFETurbulenceElement interface: attribute stitchTiles
+PASS Unscopable handled correctly for stitchTiles property on SVGFETurbulenceElement
 PASS SVGFETurbulenceElement interface: attribute type
+PASS Unscopable handled correctly for type property on SVGFETurbulenceElement
 PASS SVGFETurbulenceElement interface: attribute x
+PASS Unscopable handled correctly for x property on SVGFETurbulenceElement
 PASS SVGFETurbulenceElement interface: attribute y
+PASS Unscopable handled correctly for y property on SVGFETurbulenceElement
 PASS SVGFETurbulenceElement interface: attribute width
+PASS Unscopable handled correctly for width property on SVGFETurbulenceElement
 PASS SVGFETurbulenceElement interface: attribute height
+PASS Unscopable handled correctly for height property on SVGFETurbulenceElement
 PASS SVGFETurbulenceElement interface: attribute result
+PASS Unscopable handled correctly for result property on SVGFETurbulenceElement
 PASS SVGFETurbulenceElement must be primary interface of feTurbulence
 PASS Stringification of feTurbulence
 PASS SVGFETurbulenceElement interface: feTurbulence must inherit property "SVG_TURBULENCE_TYPE_UNKNOWN" with the proper type
diff --git a/third_party/WebKit/LayoutTests/external/wpt/url/interfaces.any-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/url/interfaces.any-expected.txt
index 0540d48..4bd8ffd2 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/url/interfaces.any-expected.txt
+++ b/third_party/WebKit/LayoutTests/external/wpt/url/interfaces.any-expected.txt
@@ -1,25 +1,39 @@
 This is a testharness.js-based test.
-Found 75 tests; 72 PASS, 3 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 101 tests; 98 PASS, 3 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS URL interface: existence and properties of interface object
 PASS URL interface object length
 PASS URL interface object name
 PASS URL interface: legacy window alias
 PASS URL interface: existence and properties of interface prototype object
 PASS URL interface: existence and properties of interface prototype object's "constructor" property
+PASS URL interface: existence and properties of interface prototype object's @@unscopables property
 PASS URL interface: attribute href
+PASS Unscopable handled correctly for href property on URL
 PASS URL interface: stringifier
 PASS URL interface: attribute origin
+PASS Unscopable handled correctly for origin property on URL
 PASS URL interface: attribute protocol
+PASS Unscopable handled correctly for protocol property on URL
 PASS URL interface: attribute username
+PASS Unscopable handled correctly for username property on URL
 PASS URL interface: attribute password
+PASS Unscopable handled correctly for password property on URL
 PASS URL interface: attribute host
+PASS Unscopable handled correctly for host property on URL
 PASS URL interface: attribute hostname
+PASS Unscopable handled correctly for hostname property on URL
 PASS URL interface: attribute port
+PASS Unscopable handled correctly for port property on URL
 PASS URL interface: attribute pathname
+PASS Unscopable handled correctly for pathname property on URL
 PASS URL interface: attribute search
+PASS Unscopable handled correctly for search property on URL
 PASS URL interface: attribute searchParams
+PASS Unscopable handled correctly for searchParams property on URL
 PASS URL interface: attribute hash
+PASS Unscopable handled correctly for hash property on URL
 FAIL URL interface: operation toJSON() assert_own_property: interface prototype object missing non-static operation expected property "toJSON" missing
+PASS Unscopable handled correctly for toJSON() on URL
 PASS URL must be primary interface of new URL("http://foo")
 PASS Stringification of new URL("http://foo")
 PASS URL interface: new URL("http://foo") must inherit property "href" with the proper type
@@ -41,20 +55,32 @@
 PASS URLSearchParams interface object name
 PASS URLSearchParams interface: existence and properties of interface prototype object
 PASS URLSearchParams interface: existence and properties of interface prototype object's "constructor" property
+PASS URLSearchParams interface: existence and properties of interface prototype object's @@unscopables property
 PASS URLSearchParams interface: operation append(USVString, USVString)
+PASS Unscopable handled correctly for append(USVString, USVString) on URLSearchParams
 PASS URLSearchParams interface: operation delete(USVString)
+PASS Unscopable handled correctly for delete(USVString) on URLSearchParams
 PASS URLSearchParams interface: operation get(USVString)
+PASS Unscopable handled correctly for get(USVString) on URLSearchParams
 PASS URLSearchParams interface: operation getAll(USVString)
+PASS Unscopable handled correctly for getAll(USVString) on URLSearchParams
 PASS URLSearchParams interface: operation has(USVString)
+PASS Unscopable handled correctly for has(USVString) on URLSearchParams
 PASS URLSearchParams interface: operation set(USVString, USVString)
+PASS Unscopable handled correctly for set(USVString, USVString) on URLSearchParams
 PASS URLSearchParams interface: operation sort()
+PASS Unscopable handled correctly for sort() on URLSearchParams
 PASS Testing Symbol.iterator property of iterable interface URLSearchParams
 PASS Testing pair iterable interface URLSearchParams
 PASS URLSearchParams interface: stringifier
 PASS URLSearchParams interface: operation entries()
+PASS Unscopable handled correctly for entries() on URLSearchParams
 PASS URLSearchParams interface: operation keys()
+PASS Unscopable handled correctly for keys() on URLSearchParams
 PASS URLSearchParams interface: operation values()
+PASS Unscopable handled correctly for values() on URLSearchParams
 PASS URLSearchParams interface: operation forEach(function, any)
+PASS Unscopable handled correctly for forEach(function, any) on URLSearchParams
 PASS URLSearchParams must be primary interface of new URLSearchParams("hi=there&thank=you")
 PASS Stringification of new URLSearchParams("hi=there&thank=you")
 PASS URLSearchParams interface: new URLSearchParams("hi=there&thank=you") must inherit property "append(USVString, USVString)" with the proper type
diff --git a/third_party/WebKit/LayoutTests/external/wpt/url/interfaces.any.worker-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/url/interfaces.any.worker-expected.txt
index 0540d48..4bd8ffd2 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/url/interfaces.any.worker-expected.txt
+++ b/third_party/WebKit/LayoutTests/external/wpt/url/interfaces.any.worker-expected.txt
@@ -1,25 +1,39 @@
 This is a testharness.js-based test.
-Found 75 tests; 72 PASS, 3 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 101 tests; 98 PASS, 3 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS URL interface: existence and properties of interface object
 PASS URL interface object length
 PASS URL interface object name
 PASS URL interface: legacy window alias
 PASS URL interface: existence and properties of interface prototype object
 PASS URL interface: existence and properties of interface prototype object's "constructor" property
+PASS URL interface: existence and properties of interface prototype object's @@unscopables property
 PASS URL interface: attribute href
+PASS Unscopable handled correctly for href property on URL
 PASS URL interface: stringifier
 PASS URL interface: attribute origin
+PASS Unscopable handled correctly for origin property on URL
 PASS URL interface: attribute protocol
+PASS Unscopable handled correctly for protocol property on URL
 PASS URL interface: attribute username
+PASS Unscopable handled correctly for username property on URL
 PASS URL interface: attribute password
+PASS Unscopable handled correctly for password property on URL
 PASS URL interface: attribute host
+PASS Unscopable handled correctly for host property on URL
 PASS URL interface: attribute hostname
+PASS Unscopable handled correctly for hostname property on URL
 PASS URL interface: attribute port
+PASS Unscopable handled correctly for port property on URL
 PASS URL interface: attribute pathname
+PASS Unscopable handled correctly for pathname property on URL
 PASS URL interface: attribute search
+PASS Unscopable handled correctly for search property on URL
 PASS URL interface: attribute searchParams
+PASS Unscopable handled correctly for searchParams property on URL
 PASS URL interface: attribute hash
+PASS Unscopable handled correctly for hash property on URL
 FAIL URL interface: operation toJSON() assert_own_property: interface prototype object missing non-static operation expected property "toJSON" missing
+PASS Unscopable handled correctly for toJSON() on URL
 PASS URL must be primary interface of new URL("http://foo")
 PASS Stringification of new URL("http://foo")
 PASS URL interface: new URL("http://foo") must inherit property "href" with the proper type
@@ -41,20 +55,32 @@
 PASS URLSearchParams interface object name
 PASS URLSearchParams interface: existence and properties of interface prototype object
 PASS URLSearchParams interface: existence and properties of interface prototype object's "constructor" property
+PASS URLSearchParams interface: existence and properties of interface prototype object's @@unscopables property
 PASS URLSearchParams interface: operation append(USVString, USVString)
+PASS Unscopable handled correctly for append(USVString, USVString) on URLSearchParams
 PASS URLSearchParams interface: operation delete(USVString)
+PASS Unscopable handled correctly for delete(USVString) on URLSearchParams
 PASS URLSearchParams interface: operation get(USVString)
+PASS Unscopable handled correctly for get(USVString) on URLSearchParams
 PASS URLSearchParams interface: operation getAll(USVString)
+PASS Unscopable handled correctly for getAll(USVString) on URLSearchParams
 PASS URLSearchParams interface: operation has(USVString)
+PASS Unscopable handled correctly for has(USVString) on URLSearchParams
 PASS URLSearchParams interface: operation set(USVString, USVString)
+PASS Unscopable handled correctly for set(USVString, USVString) on URLSearchParams
 PASS URLSearchParams interface: operation sort()
+PASS Unscopable handled correctly for sort() on URLSearchParams
 PASS Testing Symbol.iterator property of iterable interface URLSearchParams
 PASS Testing pair iterable interface URLSearchParams
 PASS URLSearchParams interface: stringifier
 PASS URLSearchParams interface: operation entries()
+PASS Unscopable handled correctly for entries() on URLSearchParams
 PASS URLSearchParams interface: operation keys()
+PASS Unscopable handled correctly for keys() on URLSearchParams
 PASS URLSearchParams interface: operation values()
+PASS Unscopable handled correctly for values() on URLSearchParams
 PASS URLSearchParams interface: operation forEach(function, any)
+PASS Unscopable handled correctly for forEach(function, any) on URLSearchParams
 PASS URLSearchParams must be primary interface of new URLSearchParams("hi=there&thank=you")
 PASS Stringification of new URLSearchParams("hi=there&thank=you")
 PASS URLSearchParams interface: new URLSearchParams("hi=there&thank=you") must inherit property "append(USVString, USVString)" with the proper type
diff --git a/third_party/WebKit/LayoutTests/external/wpt/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt
new file mode 100644
index 0000000..25fb8502
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt
@@ -0,0 +1,652 @@
+This is a testharness.js-based test.
+Found 648 tests; 415 PASS, 233 FAIL, 0 TIMEOUT, 0 NOTRUN.
+PASS align-content (type: discrete) has testAccumulation function
+PASS align-content: "flex-end" onto "flex-start"
+PASS align-content: "flex-start" onto "flex-end"
+PASS align-items (type: discrete) has testAccumulation function
+PASS align-items: "flex-end" onto "flex-start"
+PASS align-items: "flex-start" onto "flex-end"
+PASS align-self (type: discrete) has testAccumulation function
+PASS align-self: "flex-end" onto "flex-start"
+PASS align-self: "flex-start" onto "flex-end"
+PASS backface-visibility (type: discrete) has testAccumulation function
+PASS backface-visibility: "hidden" onto "visible"
+PASS backface-visibility: "visible" onto "hidden"
+PASS background-attachment (type: discrete) has testAccumulation function
+PASS background-attachment: "local" onto "fixed"
+PASS background-attachment: "fixed" onto "local"
+PASS background-color (type: color) has testAccumulation function
+FAIL background-color supports animating as color of rgb() with overflowed  from and to values assert_equals: The value should be rgb(255, 128, 128) at 0ms expected "rgb(255, 128, 128)" but got "rgb(255, 0, 0)"
+FAIL background-color supports animating as color of #RGB assert_equals: The value should be rgb(255, 128, 128) at 0ms expected "rgb(255, 128, 128)" but got "rgb(255, 0, 0)"
+FAIL background-color supports animating as color of hsl() assert_equals: The value should be rgb(255, 128, 128) at 0ms expected "rgb(255, 128, 128)" but got "rgb(255, 0, 0)"
+FAIL background-color supports animating as color of #RGBa assert_equals: The value should be rgb(230, 128, 128) at 0ms expected "rgb(230, 128, 128)" but got "rgba(255, 0, 0, 0.4)"
+FAIL background-color supports animating as color of rgba() assert_equals: The value should be rgb(230, 128, 128) at 0ms expected "rgb(230, 128, 128)" but got "rgba(255, 0, 0, 0.4)"
+FAIL background-color supports animating as color of hsla() assert_equals: The value should be rgb(230, 128, 128) at 0ms expected "rgb(230, 128, 128)" but got "rgba(255, 0, 0, 0.4)"
+PASS background-blend-mode (type: discrete) has testAccumulation function
+PASS background-blend-mode: "screen" onto "multiply"
+PASS background-blend-mode: "multiply" onto "screen"
+PASS background-clip (type: discrete) has testAccumulation function
+PASS background-clip: "content-box" onto "padding-box"
+PASS background-clip: "padding-box" onto "content-box"
+PASS background-image (type: discrete) has testAccumulation function
+PASS background-image: "url("http://localhost/test-2")" onto "url("http://localhost/test-1")"
+PASS background-image: "url("http://localhost/test-1")" onto "url("http://localhost/test-2")"
+PASS background-origin (type: discrete) has testAccumulation function
+PASS background-origin: "content-box" onto "padding-box"
+PASS background-origin: "padding-box" onto "content-box"
+PASS background-repeat (type: discrete) has testAccumulation function
+PASS background-repeat: "round" onto "space"
+PASS background-repeat: "space" onto "round"
+PASS border-bottom-color (type: color) has testAccumulation function
+FAIL border-bottom-color supports animating as color of rgb() with overflowed  from and to values assert_equals: The value should be rgb(255, 128, 128) at 0ms expected "rgb(255, 128, 128)" but got "rgb(255, 0, 0)"
+FAIL border-bottom-color supports animating as color of #RGB assert_equals: The value should be rgb(255, 128, 128) at 0ms expected "rgb(255, 128, 128)" but got "rgb(255, 0, 0)"
+FAIL border-bottom-color supports animating as color of hsl() assert_equals: The value should be rgb(255, 128, 128) at 0ms expected "rgb(255, 128, 128)" but got "rgb(255, 0, 0)"
+FAIL border-bottom-color supports animating as color of #RGBa assert_equals: The value should be rgb(230, 128, 128) at 0ms expected "rgb(230, 128, 128)" but got "rgba(255, 0, 0, 0.4)"
+FAIL border-bottom-color supports animating as color of rgba() assert_equals: The value should be rgb(230, 128, 128) at 0ms expected "rgb(230, 128, 128)" but got "rgba(255, 0, 0, 0.4)"
+FAIL border-bottom-color supports animating as color of hsla() assert_equals: The value should be rgb(230, 128, 128) at 0ms expected "rgb(230, 128, 128)" but got "rgba(255, 0, 0, 0.4)"
+PASS border-bottom-style (type: discrete) has testAccumulation function
+PASS border-bottom-style: "solid" onto "dotted"
+PASS border-bottom-style: "dotted" onto "solid"
+PASS border-bottom-width (type: length) has testAccumulation function
+FAIL border-bottom-width: length assert_equals: The value should be 20px at 0ms expected "20px" but got "10px"
+FAIL border-bottom-width: length of rem assert_equals: The value should be 20px at 0ms expected "20px" but got "10px"
+PASS border-collapse (type: discrete) has testAccumulation function
+PASS border-collapse: "separate" onto "collapse"
+PASS border-collapse: "collapse" onto "separate"
+PASS border-image-outset (type: discrete) has testAccumulation function
+PASS border-image-outset: "5 6 7 8" onto "1 2 3 4"
+PASS border-image-outset: "1 2 3 4" onto "5 6 7 8"
+PASS border-image-repeat (type: discrete) has testAccumulation function
+FAIL border-image-repeat: "repeat repeat" onto "stretch stretch" assert_equals: The value should be repeat repeat at 0ms expected "repeat repeat" but got "repeat"
+FAIL border-image-repeat: "stretch stretch" onto "repeat repeat" assert_equals: The value should be stretch stretch at 0ms expected "stretch stretch" but got "stretch"
+PASS border-image-slice (type: discrete) has testAccumulation function
+PASS border-image-slice: "5 6 7 8" onto "1 2 3 4"
+PASS border-image-slice: "1 2 3 4" onto "5 6 7 8"
+PASS border-image-source (type: discrete) has testAccumulation function
+PASS border-image-source: "url("http://localhost/test-2")" onto "url("http://localhost/test-1")"
+PASS border-image-source: "url("http://localhost/test-1")" onto "url("http://localhost/test-2")"
+PASS border-image-width (type: discrete) has testAccumulation function
+PASS border-image-width: "5 6 7 8" onto "1 2 3 4"
+PASS border-image-width: "1 2 3 4" onto "5 6 7 8"
+PASS border-left-color (type: color) has testAccumulation function
+FAIL border-left-color supports animating as color of rgb() with overflowed  from and to values assert_equals: The value should be rgb(255, 128, 128) at 0ms expected "rgb(255, 128, 128)" but got "rgb(255, 0, 0)"
+FAIL border-left-color supports animating as color of #RGB assert_equals: The value should be rgb(255, 128, 128) at 0ms expected "rgb(255, 128, 128)" but got "rgb(255, 0, 0)"
+FAIL border-left-color supports animating as color of hsl() assert_equals: The value should be rgb(255, 128, 128) at 0ms expected "rgb(255, 128, 128)" but got "rgb(255, 0, 0)"
+FAIL border-left-color supports animating as color of #RGBa assert_equals: The value should be rgb(230, 128, 128) at 0ms expected "rgb(230, 128, 128)" but got "rgba(255, 0, 0, 0.4)"
+FAIL border-left-color supports animating as color of rgba() assert_equals: The value should be rgb(230, 128, 128) at 0ms expected "rgb(230, 128, 128)" but got "rgba(255, 0, 0, 0.4)"
+FAIL border-left-color supports animating as color of hsla() assert_equals: The value should be rgb(230, 128, 128) at 0ms expected "rgb(230, 128, 128)" but got "rgba(255, 0, 0, 0.4)"
+PASS border-left-style (type: discrete) has testAccumulation function
+PASS border-left-style: "solid" onto "dotted"
+PASS border-left-style: "dotted" onto "solid"
+PASS border-left-width (type: length) has testAccumulation function
+FAIL border-left-width: length assert_equals: The value should be 20px at 0ms expected "20px" but got "10px"
+FAIL border-left-width: length of rem assert_equals: The value should be 20px at 0ms expected "20px" but got "10px"
+PASS border-right-color (type: color) has testAccumulation function
+FAIL border-right-color supports animating as color of rgb() with overflowed  from and to values assert_equals: The value should be rgb(255, 128, 128) at 0ms expected "rgb(255, 128, 128)" but got "rgb(255, 0, 0)"
+FAIL border-right-color supports animating as color of #RGB assert_equals: The value should be rgb(255, 128, 128) at 0ms expected "rgb(255, 128, 128)" but got "rgb(255, 0, 0)"
+FAIL border-right-color supports animating as color of hsl() assert_equals: The value should be rgb(255, 128, 128) at 0ms expected "rgb(255, 128, 128)" but got "rgb(255, 0, 0)"
+FAIL border-right-color supports animating as color of #RGBa assert_equals: The value should be rgb(230, 128, 128) at 0ms expected "rgb(230, 128, 128)" but got "rgba(255, 0, 0, 0.4)"
+FAIL border-right-color supports animating as color of rgba() assert_equals: The value should be rgb(230, 128, 128) at 0ms expected "rgb(230, 128, 128)" but got "rgba(255, 0, 0, 0.4)"
+FAIL border-right-color supports animating as color of hsla() assert_equals: The value should be rgb(230, 128, 128) at 0ms expected "rgb(230, 128, 128)" but got "rgba(255, 0, 0, 0.4)"
+PASS border-right-style (type: discrete) has testAccumulation function
+PASS border-right-style: "solid" onto "dotted"
+PASS border-right-style: "dotted" onto "solid"
+PASS border-right-width (type: length) has testAccumulation function
+FAIL border-right-width: length assert_equals: The value should be 20px at 0ms expected "20px" but got "10px"
+FAIL border-right-width: length of rem assert_equals: The value should be 20px at 0ms expected "20px" but got "10px"
+PASS border-spacing (type: lengthPair) has testAccumulation function
+FAIL border-spacing: length pair assert_equals: The value should be 20px 20px at 0ms expected "20px 20px" but got "10px 10px"
+FAIL border-spacing: length pair of rem assert_equals: The value should be 20px 20px at 0ms expected "20px 20px" but got "10px 10px"
+PASS border-top-color (type: color) has testAccumulation function
+FAIL border-top-color supports animating as color of rgb() with overflowed  from and to values assert_equals: The value should be rgb(255, 128, 128) at 0ms expected "rgb(255, 128, 128)" but got "rgb(255, 0, 0)"
+FAIL border-top-color supports animating as color of #RGB assert_equals: The value should be rgb(255, 128, 128) at 0ms expected "rgb(255, 128, 128)" but got "rgb(255, 0, 0)"
+FAIL border-top-color supports animating as color of hsl() assert_equals: The value should be rgb(255, 128, 128) at 0ms expected "rgb(255, 128, 128)" but got "rgb(255, 0, 0)"
+FAIL border-top-color supports animating as color of #RGBa assert_equals: The value should be rgb(230, 128, 128) at 0ms expected "rgb(230, 128, 128)" but got "rgba(255, 0, 0, 0.4)"
+FAIL border-top-color supports animating as color of rgba() assert_equals: The value should be rgb(230, 128, 128) at 0ms expected "rgb(230, 128, 128)" but got "rgba(255, 0, 0, 0.4)"
+FAIL border-top-color supports animating as color of hsla() assert_equals: The value should be rgb(230, 128, 128) at 0ms expected "rgb(230, 128, 128)" but got "rgba(255, 0, 0, 0.4)"
+PASS border-top-style (type: discrete) has testAccumulation function
+PASS border-top-style: "solid" onto "dotted"
+PASS border-top-style: "dotted" onto "solid"
+PASS border-top-width (type: length) has testAccumulation function
+FAIL border-top-width: length assert_equals: The value should be 20px at 0ms expected "20px" but got "10px"
+FAIL border-top-width: length of rem assert_equals: The value should be 20px at 0ms expected "20px" but got "10px"
+PASS box-decoration-break (type: discrete) has testAccumulation function
+FAIL box-decoration-break: "clone" onto "slice" assert_equals: The value should be clone at 0ms expected (string) "clone" but got (undefined) undefined
+FAIL box-decoration-break: "slice" onto "clone" assert_equals: The value should be slice at 0ms expected (string) "slice" but got (undefined) undefined
+PASS box-shadow (type: boxShadowList) has testAccumulation function
+FAIL box-shadow: shadow assert_equals: The value should be rgb(240, 240, 240) 20px 20px 20px 20px at 0ms expected "rgb(240, 240, 240) 20px 20px 20px 20px" but got "rgb(120, 120, 120) 10px 10px 10px 10px"
+PASS box-sizing (type: discrete) has testAccumulation function
+PASS box-sizing: "border-box" onto "content-box"
+PASS box-sizing: "content-box" onto "border-box"
+PASS caption-side (type: discrete) has testAccumulation function
+PASS caption-side: "bottom" onto "top"
+PASS caption-side: "top" onto "bottom"
+PASS caret-color (type: color) has testAccumulation function
+FAIL caret-color supports animating as color of rgb() with overflowed  from and to values assert_equals: The value should be rgb(255, 128, 128) at 0ms expected "rgb(255, 128, 128)" but got "rgb(255, 0, 0)"
+FAIL caret-color supports animating as color of #RGB assert_equals: The value should be rgb(255, 128, 128) at 0ms expected "rgb(255, 128, 128)" but got "rgb(255, 0, 0)"
+FAIL caret-color supports animating as color of hsl() assert_equals: The value should be rgb(255, 128, 128) at 0ms expected "rgb(255, 128, 128)" but got "rgb(255, 0, 0)"
+FAIL caret-color supports animating as color of #RGBa assert_equals: The value should be rgb(230, 128, 128) at 0ms expected "rgb(230, 128, 128)" but got "rgba(255, 0, 0, 0.4)"
+FAIL caret-color supports animating as color of rgba() assert_equals: The value should be rgb(230, 128, 128) at 0ms expected "rgb(230, 128, 128)" but got "rgba(255, 0, 0, 0.4)"
+FAIL caret-color supports animating as color of hsla() assert_equals: The value should be rgb(230, 128, 128) at 0ms expected "rgb(230, 128, 128)" but got "rgba(255, 0, 0, 0.4)"
+PASS clear (type: discrete) has testAccumulation function
+PASS clear: "right" onto "left"
+PASS clear: "left" onto "right"
+PASS clip (type: rect) has testAccumulation function
+FAIL clip: rect assert_equals: The value should be rect(110px, 110px, 110px, 110px) at 0ms expected "rect(110px, 110px, 110px, 110px)" but got "rect(10px, 10px, 10px, 10px)"
+PASS clip (type: discrete) has testAccumulation function
+PASS clip: "auto" onto "rect(10px, 10px, 10px, 10px)"
+PASS clip: "rect(10px, 10px, 10px, 10px)" onto "auto"
+PASS clip: "rect(10px, 10px, 10px, auto)" onto "rect(10px, 10px, 10px, 10px)"
+PASS clip: "rect(10px, 10px, 10px, 10px)" onto "rect(10px, 10px, 10px, auto)"
+PASS clip-rule (type: discrete) has testAccumulation function
+PASS clip-rule: "nonzero" onto "evenodd"
+PASS clip-rule: "evenodd" onto "nonzero"
+PASS color (type: color) has testAccumulation function
+FAIL color supports animating as color of rgb() with overflowed  from and to values assert_equals: The value should be rgb(255, 128, 128) at 0ms expected "rgb(255, 128, 128)" but got "rgb(255, 0, 0)"
+FAIL color supports animating as color of #RGB assert_equals: The value should be rgb(255, 128, 128) at 0ms expected "rgb(255, 128, 128)" but got "rgb(255, 0, 0)"
+FAIL color supports animating as color of hsl() assert_equals: The value should be rgb(255, 128, 128) at 0ms expected "rgb(255, 128, 128)" but got "rgb(255, 0, 0)"
+FAIL color supports animating as color of #RGBa assert_equals: The value should be rgb(230, 128, 128) at 0ms expected "rgb(230, 128, 128)" but got "rgba(255, 0, 0, 0.4)"
+FAIL color supports animating as color of rgba() assert_equals: The value should be rgb(230, 128, 128) at 0ms expected "rgb(230, 128, 128)" but got "rgba(255, 0, 0, 0.4)"
+FAIL color supports animating as color of hsla() assert_equals: The value should be rgb(230, 128, 128) at 0ms expected "rgb(230, 128, 128)" but got "rgba(255, 0, 0, 0.4)"
+PASS color-adjust (type: discrete) has testAccumulation function
+FAIL color-adjust: "exact" onto "economy" assert_equals: The value should be exact at 0ms expected (string) "exact" but got (undefined) undefined
+FAIL color-adjust: "economy" onto "exact" assert_equals: The value should be economy at 0ms expected (string) "economy" but got (undefined) undefined
+PASS color-interpolation (type: discrete) has testAccumulation function
+PASS color-interpolation: "auto" onto "linearRGB"
+FAIL color-interpolation: "linearRGB" onto "auto" assert_equals: The value should be linearrgb at 0ms expected "linearrgb" but got "linearRGB"
+PASS color-interpolation-filters (type: discrete) has testAccumulation function
+FAIL color-interpolation-filters: "linearRGB" onto "sRGB" assert_equals: The value should be linearrgb at 0ms expected "linearrgb" but got "linearRGB"
+FAIL color-interpolation-filters: "sRGB" onto "linearRGB" assert_equals: The value should be srgb at 0ms expected "srgb" but got "sRGB"
+PASS column-count (type: positiveInteger) has testAccumulation function
+FAIL column-count: positive integer assert_equals: The value should be 3 at 0ms expected "3" but got "2"
+PASS column-count (type: discrete) has testAccumulation function
+PASS column-count: "10" onto "auto"
+PASS column-count: "auto" onto "10"
+PASS column-gap (type: length) has testAccumulation function
+FAIL column-gap: length assert_equals: The value should be 20px at 0ms expected "20px" but got "10px"
+FAIL column-gap: length of rem assert_equals: The value should be 20px at 0ms expected "20px" but got "10px"
+PASS column-gap (type: discrete) has testAccumulation function
+PASS column-gap: "200px" onto "normal"
+PASS column-gap: "normal" onto "200px"
+PASS column-rule-color (type: color) has testAccumulation function
+FAIL column-rule-color supports animating as color of rgb() with overflowed  from and to values assert_equals: The value should be rgb(255, 128, 128) at 0ms expected "rgb(255, 128, 128)" but got "rgb(255, 0, 0)"
+FAIL column-rule-color supports animating as color of #RGB assert_equals: The value should be rgb(255, 128, 128) at 0ms expected "rgb(255, 128, 128)" but got "rgb(255, 0, 0)"
+FAIL column-rule-color supports animating as color of hsl() assert_equals: The value should be rgb(255, 128, 128) at 0ms expected "rgb(255, 128, 128)" but got "rgb(255, 0, 0)"
+FAIL column-rule-color supports animating as color of #RGBa assert_equals: The value should be rgb(230, 128, 128) at 0ms expected "rgb(230, 128, 128)" but got "rgba(255, 0, 0, 0.4)"
+FAIL column-rule-color supports animating as color of rgba() assert_equals: The value should be rgb(230, 128, 128) at 0ms expected "rgb(230, 128, 128)" but got "rgba(255, 0, 0, 0.4)"
+FAIL column-rule-color supports animating as color of hsla() assert_equals: The value should be rgb(230, 128, 128) at 0ms expected "rgb(230, 128, 128)" but got "rgba(255, 0, 0, 0.4)"
+PASS column-fill (type: discrete) has testAccumulation function
+PASS column-fill: "balance" onto "auto"
+PASS column-fill: "auto" onto "balance"
+PASS column-rule-style (type: discrete) has testAccumulation function
+PASS column-rule-style: "dotted" onto "none"
+PASS column-rule-style: "none" onto "dotted"
+PASS column-rule-width (type: length) has testAccumulation function
+FAIL column-rule-width: length assert_equals: The value should be 20px at 0ms expected "20px" but got "10px"
+FAIL column-rule-width: length of rem assert_equals: The value should be 20px at 0ms expected "20px" but got "10px"
+PASS column-width (type: length) has testAccumulation function
+FAIL column-width: length assert_equals: The value should be 20px at 0ms expected "20px" but got "10px"
+FAIL column-width: length of rem assert_equals: The value should be 20px at 0ms expected "20px" but got "10px"
+PASS column-width (type: discrete) has testAccumulation function
+PASS column-width: "1px" onto "auto"
+PASS column-width: "auto" onto "1px"
+PASS contain (type: discrete) has testAccumulation function
+PASS contain: "none" onto "strict"
+PASS contain: "strict" onto "none"
+PASS content (type: discrete) has testAccumulation function
+FAIL content: ""b"" onto ""a"" assert_equals: expected (string) "::before" but got (undefined) undefined
+FAIL content: ""a"" onto ""b"" assert_equals: expected (string) "::before" but got (undefined) undefined
+PASS counter-increment (type: discrete) has testAccumulation function
+PASS counter-increment: "ident-2 2" onto "ident-1 1"
+PASS counter-increment: "ident-1 1" onto "ident-2 2"
+PASS counter-reset (type: discrete) has testAccumulation function
+PASS counter-reset: "ident-2 2" onto "ident-1 1"
+PASS counter-reset: "ident-1 1" onto "ident-2 2"
+PASS cursor (type: discrete) has testAccumulation function
+PASS cursor: "wait" onto "pointer"
+PASS cursor: "pointer" onto "wait"
+PASS direction (type: discrete) has testAccumulation function
+PASS direction: "rtl" onto "ltr"
+PASS direction: "ltr" onto "rtl"
+PASS dominant-baseline (type: discrete) has testAccumulation function
+PASS dominant-baseline: "alphabetic" onto "ideographic"
+PASS dominant-baseline: "ideographic" onto "alphabetic"
+PASS empty-cells (type: discrete) has testAccumulation function
+PASS empty-cells: "hide" onto "show"
+PASS empty-cells: "show" onto "hide"
+PASS fill-opacity (type: opacity) has testAccumulation function
+FAIL fill-opacity: [0, 1] number assert_equals: The value should be 0.6 at 0ms expected "0.6" but got "0.3"
+FAIL fill-opacity: [0, 1] number (clamped) assert_equals: The value should be 1 at 0ms expected "1" but got "0.3"
+PASS fill-rule (type: discrete) has testAccumulation function
+PASS fill-rule: "nonzero" onto "evenodd"
+PASS fill-rule: "evenodd" onto "nonzero"
+PASS filter (type: filterList) has testAccumulation function
+FAIL filter: same ordered filter functions assert_equals: The value should be blur(30px) brightness(0) at 0ms expected "blur(30px) brightness(0)" but got "blur(20px) brightness(0.1)"
+PASS filter: mismatched ordered filter functions
+PASS flex-basis (type: lengthPercentageOrCalc) has testAccumulation function
+PASS flex-basis: length
+PASS flex-basis: length of rem
+PASS flex-basis: percentage
+FAIL flex-basis: units "%" onto "px" assert_equals: The value should be calc(10px + 10%) at 0ms expected "calc(10px + 10%)" but got "10%"
+FAIL flex-basis: units "px" onto "%" assert_equals: The value should be calc(10px + 10%) at 0ms expected "calc(10px + 10%)" but got "10px"
+FAIL flex-basis: units "rem" onto "%" assert_equals: The value should be calc(20px + 10%) at 0ms expected "calc(20px + 10%)" but got "20px"
+FAIL flex-basis: units "%" onto "rem" assert_equals: The value should be calc(20px + 10%) at 0ms expected "calc(20px + 10%)" but got "10%"
+FAIL flex-basis: units "rem" onto "em" assert_equals: The value should be 40px at 0ms expected "40px" but got "20px"
+FAIL flex-basis: units "em" onto "rem" assert_equals: The value should be 40px at 0ms expected "40px" but got "20px"
+FAIL flex-basis: units "calc" onto "px" assert_equals: The value should be calc(30px + 20%) at 0ms expected "calc(30px + 20%)" but got "calc(20px + 20%)"
+FAIL flex-basis: calc assert_equals: The value should be calc(30px + 30%) at 0ms expected "calc(30px + 30%)" but got "calc(20px + 20%)"
+PASS flex-basis (type: discrete) has testAccumulation function
+PASS flex-basis: "10px" onto "auto"
+PASS flex-basis: "auto" onto "10px"
+PASS flex-direction (type: discrete) has testAccumulation function
+PASS flex-direction: "row-reverse" onto "row"
+PASS flex-direction: "row" onto "row-reverse"
+PASS flex-grow (type: positiveNumber) has testAccumulation function
+FAIL flex-grow: positive number assert_equals: The value should be 2.2 at 0ms expected "2.2" but got "1.1"
+PASS flex-shrink (type: positiveNumber) has testAccumulation function
+FAIL flex-shrink: positive number assert_equals: The value should be 2.2 at 0ms expected "2.2" but got "1.1"
+PASS flex-wrap (type: discrete) has testAccumulation function
+PASS flex-wrap: "wrap" onto "nowrap"
+PASS flex-wrap: "nowrap" onto "wrap"
+PASS flood-color (type: color) has testAccumulation function
+FAIL flood-color supports animating as color of rgb() with overflowed  from and to values assert_equals: The value should be rgb(255, 128, 128) at 0ms expected "rgb(255, 128, 128)" but got "rgb(255, 0, 0)"
+FAIL flood-color supports animating as color of #RGB assert_equals: The value should be rgb(255, 128, 128) at 0ms expected "rgb(255, 128, 128)" but got "rgb(255, 0, 0)"
+FAIL flood-color supports animating as color of hsl() assert_equals: The value should be rgb(255, 128, 128) at 0ms expected "rgb(255, 128, 128)" but got "rgb(255, 0, 0)"
+FAIL flood-color supports animating as color of #RGBa assert_equals: The value should be rgb(230, 128, 128) at 0ms expected "rgb(230, 128, 128)" but got "rgba(255, 0, 0, 0.4)"
+FAIL flood-color supports animating as color of rgba() assert_equals: The value should be rgb(230, 128, 128) at 0ms expected "rgb(230, 128, 128)" but got "rgba(255, 0, 0, 0.4)"
+FAIL flood-color supports animating as color of hsla() assert_equals: The value should be rgb(230, 128, 128) at 0ms expected "rgb(230, 128, 128)" but got "rgba(255, 0, 0, 0.4)"
+PASS flood-opacity (type: opacity) has testAccumulation function
+FAIL flood-opacity: [0, 1] number assert_equals: The value should be 0.6 at 0ms expected "0.6" but got "0.3"
+FAIL flood-opacity: [0, 1] number (clamped) assert_equals: The value should be 1 at 0ms expected "1" but got "0.3"
+PASS font-stretch (type: fontStretch) has testAccumulation function
+FAIL font-stretch uses font-stretch behavior for composite type accumulate assert_equals: The value should be normal at 0ms expected "normal" but got "125%"
+PASS font-style (type: discrete) has testAccumulation function
+FAIL font-style: "oblique" onto "italic" assert_equals: The value should be oblique at 0ms expected "oblique" but got "italic"
+PASS font-style: "italic" onto "oblique"
+PASS float (type: discrete) has testAccumulation function
+PASS float: "right" onto "left"
+PASS float: "left" onto "right"
+PASS font-family (type: discrete) has testAccumulation function
+PASS font-family: "verdana" onto "helvetica"
+PASS font-family: "helvetica" onto "verdana"
+PASS font-feature-settings (type: discrete) has testAccumulation function
+PASS font-feature-settings: "normal" onto ""liga" 5"
+PASS font-feature-settings: ""liga" 5" onto "normal"
+PASS font-kerning (type: discrete) has testAccumulation function
+PASS font-kerning: "normal" onto "auto"
+PASS font-kerning: "auto" onto "normal"
+PASS font-language-override (type: discrete) has testAccumulation function
+FAIL font-language-override: "normal" onto ""eng"" assert_equals: The value should be normal at 0ms expected (string) "normal" but got (undefined) undefined
+FAIL font-language-override: ""eng"" onto "normal" assert_equals: The value should be "eng" at 0ms expected (string) "\"eng\"" but got (undefined) undefined
+PASS font-synthesis (type: discrete) has testAccumulation function
+FAIL font-synthesis: "weight style" onto "none" assert_equals: The value should be weight style at 0ms expected (string) "weight style" but got (undefined) undefined
+FAIL font-synthesis: "none" onto "weight style" assert_equals: The value should be none at 0ms expected (string) "none" but got (undefined) undefined
+PASS font-variant-alternates (type: discrete) has testAccumulation function
+FAIL font-variant-alternates: "stylistic(unknown)" onto "swash(unknown)" assert_equals: The value should be stylistic(unknown) at 0ms expected (string) "stylistic(unknown)" but got (undefined) undefined
+FAIL font-variant-alternates: "swash(unknown)" onto "stylistic(unknown)" assert_equals: The value should be swash(unknown) at 0ms expected (string) "swash(unknown)" but got (undefined) undefined
+PASS font-variant-caps (type: discrete) has testAccumulation function
+PASS font-variant-caps: "unicase" onto "small-caps"
+PASS font-variant-caps: "small-caps" onto "unicase"
+PASS font-variant-east-asian (type: discrete) has testAccumulation function
+PASS font-variant-east-asian: "proportional-width" onto "full-width"
+PASS font-variant-east-asian: "full-width" onto "proportional-width"
+PASS font-variant-ligatures (type: discrete) has testAccumulation function
+PASS font-variant-ligatures: "no-common-ligatures" onto "common-ligatures"
+PASS font-variant-ligatures: "common-ligatures" onto "no-common-ligatures"
+PASS font-variant-numeric (type: discrete) has testAccumulation function
+PASS font-variant-numeric: "oldstyle-nums" onto "lining-nums"
+PASS font-variant-numeric: "lining-nums" onto "oldstyle-nums"
+PASS font-variant-position (type: discrete) has testAccumulation function
+FAIL font-variant-position: "super" onto "sub" assert_equals: The value should be super at 0ms expected (string) "super" but got (undefined) undefined
+FAIL font-variant-position: "sub" onto "super" assert_equals: The value should be sub at 0ms expected (string) "sub" but got (undefined) undefined
+PASS font-variation-settings (type: fontVariationSettings) has testAccumulation function
+FAIL font-variation-settings with composite type accumulate assert_equals: The value should be "wght" 2.2 at 250ms expected "\"wght\" 2.2" but got "\"wght\" 1.2"
+PASS font-variation-settings (type: discrete) has testAccumulation function
+PASS font-variation-settings: ""wdth" 5" onto ""wght" 1.1, "wdth" 1"
+PASS font-variation-settings: ""wght" 1.1, "wdth" 1" onto ""wdth" 5"
+PASS font-variation-settings: "normal" onto ""wdth" 5"
+PASS font-variation-settings: ""wdth" 5" onto "normal"
+PASS grid-auto-columns (type: discrete) has testAccumulation function
+PASS grid-auto-columns: "5px" onto "1px"
+PASS grid-auto-columns: "1px" onto "5px"
+PASS grid-auto-flow (type: discrete) has testAccumulation function
+PASS grid-auto-flow: "column" onto "row"
+PASS grid-auto-flow: "row" onto "column"
+PASS grid-auto-rows (type: discrete) has testAccumulation function
+PASS grid-auto-rows: "5px" onto "1px"
+PASS grid-auto-rows: "1px" onto "5px"
+PASS grid-column-end (type: discrete) has testAccumulation function
+PASS grid-column-end: "5" onto "1"
+PASS grid-column-end: "1" onto "5"
+PASS grid-column-start (type: discrete) has testAccumulation function
+PASS grid-column-start: "5" onto "1"
+PASS grid-column-start: "1" onto "5"
+PASS grid-row-end (type: discrete) has testAccumulation function
+PASS grid-row-end: "5" onto "1"
+PASS grid-row-end: "1" onto "5"
+PASS grid-row-start (type: discrete) has testAccumulation function
+PASS grid-row-start: "5" onto "1"
+PASS grid-row-start: "1" onto "5"
+PASS grid-template-areas (type: discrete) has testAccumulation function
+PASS grid-template-areas: "none" onto "". . a b" ". .a b""
+FAIL grid-template-areas: "". . a b" ". .a b"" onto "none" assert_equals: The value should be ". . a b" ". .a b" at 0ms expected "\". . a b\" \". .a b\"" but got "\". . a b\" \". . a b\""
+PASS grid-template-columns (type: discrete) has testAccumulation function
+PASS grid-template-columns: "5px" onto "1px"
+PASS grid-template-columns: "1px" onto "5px"
+PASS grid-template-rows (type: discrete) has testAccumulation function
+PASS grid-template-rows: "5px" onto "1px"
+PASS grid-template-rows: "1px" onto "5px"
+PASS hyphens (type: discrete) has testAccumulation function
+FAIL hyphens: "auto" onto "manual" assert_equals: The value should be auto at 0ms expected "auto" but got "manual"
+PASS hyphens: "manual" onto "auto"
+PASS image-orientation (type: discrete) has testAccumulation function
+FAIL image-orientation: "90deg" onto "0deg" assert_equals: The value should be 90deg at 0ms expected "90deg" but got "0deg"
+PASS image-orientation: "0deg" onto "90deg"
+PASS ime-mode (type: discrete) has testAccumulation function
+FAIL ime-mode: "auto" onto "disabled" assert_equals: The value should be auto at 0ms expected (string) "auto" but got (undefined) undefined
+FAIL ime-mode: "disabled" onto "auto" assert_equals: The value should be disabled at 0ms expected (string) "disabled" but got (undefined) undefined
+PASS initial-letter (type: discrete) has testAccumulation function
+FAIL initial-letter: "3 4" onto "1 2" assert_equals: The value should be 3 4 at 0ms expected (string) "3 4" but got (undefined) undefined
+FAIL initial-letter: "1 2" onto "3 4" assert_equals: The value should be 1 2 at 0ms expected (string) "1 2" but got (undefined) undefined
+PASS isolation (type: discrete) has testAccumulation function
+PASS isolation: "isolate" onto "auto"
+PASS isolation: "auto" onto "isolate"
+PASS justify-content (type: discrete) has testAccumulation function
+PASS justify-content: "end" onto "start"
+PASS justify-content: "start" onto "end"
+PASS justify-items (type: discrete) has testAccumulation function
+PASS justify-items: "end" onto "start"
+PASS justify-items: "start" onto "end"
+PASS justify-self (type: discrete) has testAccumulation function
+PASS justify-self: "end" onto "start"
+PASS justify-self: "start" onto "end"
+PASS letter-spacing (type: length) has testAccumulation function
+FAIL letter-spacing: length assert_equals: The value should be 20px at 0ms expected "20px" but got "10px"
+FAIL letter-spacing: length of rem assert_equals: The value should be 20px at 0ms expected "20px" but got "10px"
+PASS lighting-color (type: color) has testAccumulation function
+FAIL lighting-color supports animating as color of rgb() with overflowed  from and to values assert_equals: The value should be rgb(255, 128, 128) at 0ms expected "rgb(255, 128, 128)" but got "rgb(255, 0, 0)"
+FAIL lighting-color supports animating as color of #RGB assert_equals: The value should be rgb(255, 128, 128) at 0ms expected "rgb(255, 128, 128)" but got "rgb(255, 0, 0)"
+FAIL lighting-color supports animating as color of hsl() assert_equals: The value should be rgb(255, 128, 128) at 0ms expected "rgb(255, 128, 128)" but got "rgb(255, 0, 0)"
+FAIL lighting-color supports animating as color of #RGBa assert_equals: The value should be rgb(230, 128, 128) at 0ms expected "rgb(230, 128, 128)" but got "rgba(255, 0, 0, 0.4)"
+FAIL lighting-color supports animating as color of rgba() assert_equals: The value should be rgb(230, 128, 128) at 0ms expected "rgb(230, 128, 128)" but got "rgba(255, 0, 0, 0.4)"
+FAIL lighting-color supports animating as color of hsla() assert_equals: The value should be rgb(230, 128, 128) at 0ms expected "rgb(230, 128, 128)" but got "rgba(255, 0, 0, 0.4)"
+PASS list-style-image (type: discrete) has testAccumulation function
+PASS list-style-image: "url("http://localhost/test-2")" onto "url("http://localhost/test-1")"
+PASS list-style-image: "url("http://localhost/test-1")" onto "url("http://localhost/test-2")"
+PASS list-style-position (type: discrete) has testAccumulation function
+PASS list-style-position: "outside" onto "inside"
+PASS list-style-position: "inside" onto "outside"
+PASS list-style-type (type: discrete) has testAccumulation function
+PASS list-style-type: "square" onto "circle"
+PASS list-style-type: "circle" onto "square"
+PASS marker-end (type: discrete) has testAccumulation function
+FAIL marker-end: "url("http://localhost/test-2")" onto "url("http://localhost/test-1")" assert_equals: The value should be url("http://localhost/test-2") at 0ms expected "url(\"http://localhost/test-2\")" but got "none"
+FAIL marker-end: "url("http://localhost/test-1")" onto "url("http://localhost/test-2")" assert_equals: The value should be url("http://localhost/test-1") at 0ms expected "url(\"http://localhost/test-1\")" but got "none"
+PASS marker-mid (type: discrete) has testAccumulation function
+FAIL marker-mid: "url("http://localhost/test-2")" onto "url("http://localhost/test-1")" assert_equals: The value should be url("http://localhost/test-2") at 0ms expected "url(\"http://localhost/test-2\")" but got "none"
+FAIL marker-mid: "url("http://localhost/test-1")" onto "url("http://localhost/test-2")" assert_equals: The value should be url("http://localhost/test-1") at 0ms expected "url(\"http://localhost/test-1\")" but got "none"
+PASS marker-start (type: discrete) has testAccumulation function
+FAIL marker-start: "url("http://localhost/test-2")" onto "url("http://localhost/test-1")" assert_equals: The value should be url("http://localhost/test-2") at 0ms expected "url(\"http://localhost/test-2\")" but got "none"
+FAIL marker-start: "url("http://localhost/test-1")" onto "url("http://localhost/test-2")" assert_equals: The value should be url("http://localhost/test-1") at 0ms expected "url(\"http://localhost/test-1\")" but got "none"
+PASS mask (type: discrete) has testAccumulation function
+FAIL mask: "url("http://localhost/test-2")" onto "url("http://localhost/test-1")" assert_equals: The value should be url("http://localhost/test-2") at 0ms expected "url(\"http://localhost/test-2\")" but got "none"
+FAIL mask: "url("http://localhost/test-1")" onto "url("http://localhost/test-2")" assert_equals: The value should be url("http://localhost/test-1") at 0ms expected "url(\"http://localhost/test-1\")" but got "none"
+PASS mask-clip (type: discrete) has testAccumulation function
+FAIL mask-clip: "border-box" onto "content-box" assert_equals: The value should be border-box at 0ms expected (string) "border-box" but got (undefined) undefined
+FAIL mask-clip: "content-box" onto "border-box" assert_equals: The value should be content-box at 0ms expected (string) "content-box" but got (undefined) undefined
+PASS mask-composite (type: discrete) has testAccumulation function
+FAIL mask-composite: "subtract" onto "add" assert_equals: The value should be subtract at 0ms expected (string) "subtract" but got (undefined) undefined
+FAIL mask-composite: "add" onto "subtract" assert_equals: The value should be add at 0ms expected (string) "add" but got (undefined) undefined
+PASS mask-image (type: discrete) has testAccumulation function
+FAIL mask-image: "url("http://localhost/test-2")" onto "url("http://localhost/test-1")" assert_equals: The value should be url("http://localhost/test-2") at 0ms expected (string) "url(\"http://localhost/test-2\")" but got (undefined) undefined
+FAIL mask-image: "url("http://localhost/test-1")" onto "url("http://localhost/test-2")" assert_equals: The value should be url("http://localhost/test-1") at 0ms expected (string) "url(\"http://localhost/test-1\")" but got (undefined) undefined
+PASS mask-mode (type: discrete) has testAccumulation function
+FAIL mask-mode: "luminance" onto "alpha" assert_equals: The value should be luminance at 0ms expected (string) "luminance" but got (undefined) undefined
+FAIL mask-mode: "alpha" onto "luminance" assert_equals: The value should be alpha at 0ms expected (string) "alpha" but got (undefined) undefined
+PASS mask-origin (type: discrete) has testAccumulation function
+FAIL mask-origin: "border-box" onto "content-box" assert_equals: The value should be border-box at 0ms expected (string) "border-box" but got (undefined) undefined
+FAIL mask-origin: "content-box" onto "border-box" assert_equals: The value should be content-box at 0ms expected (string) "content-box" but got (undefined) undefined
+PASS mask-repeat (type: discrete) has testAccumulation function
+FAIL mask-repeat: "round" onto "space" assert_equals: The value should be round at 0ms expected (string) "round" but got (undefined) undefined
+FAIL mask-repeat: "space" onto "round" assert_equals: The value should be space at 0ms expected (string) "space" but got (undefined) undefined
+PASS mask-type (type: discrete) has testAccumulation function
+PASS mask-type: "luminance" onto "alpha"
+PASS mask-type: "alpha" onto "luminance"
+PASS mix-blend-mode (type: discrete) has testAccumulation function
+PASS mix-blend-mode: "screen" onto "multiply"
+PASS mix-blend-mode: "multiply" onto "screen"
+PASS object-fit (type: discrete) has testAccumulation function
+PASS object-fit: "contain" onto "fill"
+PASS object-fit: "fill" onto "contain"
+PASS order (type: integer) has testAccumulation function
+FAIL order: integer assert_equals: The value should be -3 at 0ms expected "-3" but got "-2"
+PASS outline-color (type: color) has testAccumulation function
+FAIL outline-color supports animating as color of rgb() with overflowed  from and to values assert_equals: The value should be rgb(255, 128, 128) at 0ms expected "rgb(255, 128, 128)" but got "rgb(255, 0, 0)"
+FAIL outline-color supports animating as color of #RGB assert_equals: The value should be rgb(255, 128, 128) at 0ms expected "rgb(255, 128, 128)" but got "rgb(255, 0, 0)"
+FAIL outline-color supports animating as color of hsl() assert_equals: The value should be rgb(255, 128, 128) at 0ms expected "rgb(255, 128, 128)" but got "rgb(255, 0, 0)"
+FAIL outline-color supports animating as color of #RGBa assert_equals: The value should be rgb(230, 128, 128) at 0ms expected "rgb(230, 128, 128)" but got "rgba(255, 0, 0, 0.4)"
+FAIL outline-color supports animating as color of rgba() assert_equals: The value should be rgb(230, 128, 128) at 0ms expected "rgb(230, 128, 128)" but got "rgba(255, 0, 0, 0.4)"
+FAIL outline-color supports animating as color of hsla() assert_equals: The value should be rgb(230, 128, 128) at 0ms expected "rgb(230, 128, 128)" but got "rgba(255, 0, 0, 0.4)"
+PASS outline-offset (type: length) has testAccumulation function
+FAIL outline-offset: length assert_equals: The value should be 20px at 0ms expected "20px" but got "0px"
+FAIL outline-offset: length of rem assert_equals: The value should be 20px at 0ms expected "20px" but got "0px"
+PASS outline-style (type: discrete) has testAccumulation function
+PASS outline-style: "dotted" onto "none"
+PASS outline-style: "none" onto "dotted"
+PASS outline-width (type: length) has testAccumulation function
+FAIL outline-width: length assert_equals: The value should be 20px at 0ms expected "20px" but got "10px"
+FAIL outline-width: length of rem assert_equals: The value should be 20px at 0ms expected "20px" but got "10px"
+PASS overflow-wrap (type: discrete) has testAccumulation function
+PASS overflow-wrap: "break-word" onto "normal"
+PASS overflow-wrap: "normal" onto "break-word"
+PASS overflow-x (type: discrete) has testAccumulation function
+PASS overflow-x: "hidden" onto "visible"
+PASS overflow-x: "visible" onto "hidden"
+PASS overflow-y (type: discrete) has testAccumulation function
+PASS overflow-y: "hidden" onto "visible"
+PASS overflow-y: "visible" onto "hidden"
+PASS page-break-after (type: discrete) has testAccumulation function
+PASS page-break-after: "auto" onto "always"
+PASS page-break-after: "always" onto "auto"
+PASS page-break-before (type: discrete) has testAccumulation function
+PASS page-break-before: "auto" onto "always"
+PASS page-break-before: "always" onto "auto"
+PASS page-break-inside (type: discrete) has testAccumulation function
+PASS page-break-inside: "avoid" onto "auto"
+PASS page-break-inside: "auto" onto "avoid"
+PASS paint-order (type: discrete) has testAccumulation function
+FAIL paint-order: "stroke" onto "fill" assert_equals: The value should be stroke at 0ms expected "stroke" but got "stroke fill markers"
+FAIL paint-order: "fill" onto "stroke" assert_equals: The value should be fill at 0ms expected "fill" but got "fill stroke markers"
+PASS perspective (type: length) has testAccumulation function
+FAIL perspective: length assert_equals: The value should be 20px at 0ms expected "20px" but got "10px"
+FAIL perspective: length of rem assert_equals: The value should be 20px at 0ms expected "20px" but got "10px"
+PASS perspective-origin (type: position) has testAccumulation function
+PASS perspective-origin: length pair
+PASS perspective-origin: length pair of rem
+FAIL perspective-origin: position of percentage assert_equals: The value should be 1019.19px 0px at 0ms expected "1019.19px 0px" but got "548.797px 0px"
+PASS pointer-events (type: discrete) has testAccumulation function
+PASS pointer-events: "none" onto "fill"
+PASS pointer-events: "fill" onto "none"
+PASS position (type: discrete) has testAccumulation function
+PASS position: "fixed" onto "absolute"
+PASS position: "absolute" onto "fixed"
+PASS quotes (type: discrete) has testAccumulation function
+PASS quotes: ""‘" "’" "“" "”"" onto ""“" "”" "‘" "’""
+PASS quotes: ""“" "”" "‘" "’"" onto ""‘" "’" "“" "”""
+PASS resize (type: discrete) has testAccumulation function
+PASS resize: "horizontal" onto "both"
+PASS resize: "both" onto "horizontal"
+PASS ruby-align (type: discrete) has testAccumulation function
+FAIL ruby-align: "center" onto "start" assert_equals: The value should be center at 0ms expected (string) "center" but got (undefined) undefined
+FAIL ruby-align: "start" onto "center" assert_equals: The value should be start at 0ms expected (string) "start" but got (undefined) undefined
+PASS ruby-position (type: discrete) has testAccumulation function
+FAIL ruby-position: "over" onto "under" assert_equals: The value should be over at 0ms expected (string) "over" but got (undefined) undefined
+FAIL ruby-position: "under" onto "over" assert_equals: The value should be under at 0ms expected (string) "under" but got (undefined) undefined
+PASS scroll-behavior (type: discrete) has testAccumulation function
+PASS scroll-behavior: "smooth" onto "auto"
+PASS scroll-behavior: "auto" onto "smooth"
+PASS scroll-snap-type-x (type: discrete) has testAccumulation function
+FAIL scroll-snap-type-x: "proximity" onto "mandatory" assert_equals: The value should be proximity at 0ms expected (string) "proximity" but got (undefined) undefined
+FAIL scroll-snap-type-x: "mandatory" onto "proximity" assert_equals: The value should be mandatory at 0ms expected (string) "mandatory" but got (undefined) undefined
+PASS scroll-snap-type-y (type: discrete) has testAccumulation function
+FAIL scroll-snap-type-y: "proximity" onto "mandatory" assert_equals: The value should be proximity at 0ms expected (string) "proximity" but got (undefined) undefined
+FAIL scroll-snap-type-y: "mandatory" onto "proximity" assert_equals: The value should be mandatory at 0ms expected (string) "mandatory" but got (undefined) undefined
+PASS shape-outside (type: discrete) has testAccumulation function
+PASS shape-outside: "url("http://localhost/test-2")" onto "url("http://localhost/test-1")"
+PASS shape-outside: "url("http://localhost/test-1")" onto "url("http://localhost/test-2")"
+PASS shape-rendering (type: discrete) has testAccumulation function
+FAIL shape-rendering: "crispEdges" onto "optimizeSpeed" assert_equals: The value should be crispedges at 0ms expected "crispedges" but got "crispEdges"
+FAIL shape-rendering: "optimizeSpeed" onto "crispEdges" assert_equals: The value should be optimizespeed at 0ms expected "optimizespeed" but got "optimizeSpeed"
+PASS stop-color (type: color) has testAccumulation function
+FAIL stop-color supports animating as color of rgb() with overflowed  from and to values assert_equals: The value should be rgb(255, 128, 128) at 0ms expected "rgb(255, 128, 128)" but got "rgb(255, 0, 0)"
+FAIL stop-color supports animating as color of #RGB assert_equals: The value should be rgb(255, 128, 128) at 0ms expected "rgb(255, 128, 128)" but got "rgb(255, 0, 0)"
+FAIL stop-color supports animating as color of hsl() assert_equals: The value should be rgb(255, 128, 128) at 0ms expected "rgb(255, 128, 128)" but got "rgb(255, 0, 0)"
+FAIL stop-color supports animating as color of #RGBa assert_equals: The value should be rgb(230, 128, 128) at 0ms expected "rgb(230, 128, 128)" but got "rgba(255, 0, 0, 0.4)"
+FAIL stop-color supports animating as color of rgba() assert_equals: The value should be rgb(230, 128, 128) at 0ms expected "rgb(230, 128, 128)" but got "rgba(255, 0, 0, 0.4)"
+FAIL stop-color supports animating as color of hsla() assert_equals: The value should be rgb(230, 128, 128) at 0ms expected "rgb(230, 128, 128)" but got "rgba(255, 0, 0, 0.4)"
+PASS stop-opacity (type: opacity) has testAccumulation function
+FAIL stop-opacity: [0, 1] number assert_equals: The value should be 0.6 at 0ms expected "0.6" but got "0.3"
+FAIL stop-opacity: [0, 1] number (clamped) assert_equals: The value should be 1 at 0ms expected "1" but got "0.3"
+PASS stroke-dasharray (type: dasharray) has testAccumulation function
+FAIL stroke-dasharray: dasharray assert_equals: The value should be 1, 2, 3, 4, 5 at 0ms expected "1, 2, 3, 4, 5" but got "1px, 2px, 3px, 4px, 5px"
+PASS stroke-dasharray (type: discrete) has testAccumulation function
+FAIL stroke-dasharray: "10, 20" onto "none" assert_equals: The value should be 10, 20 at 0ms expected "10, 20" but got "10px, 20px"
+PASS stroke-dasharray: "none" onto "10, 20"
+PASS stroke-linecap (type: discrete) has testAccumulation function
+PASS stroke-linecap: "square" onto "round"
+PASS stroke-linecap: "round" onto "square"
+PASS stroke-linejoin (type: discrete) has testAccumulation function
+PASS stroke-linejoin: "miter" onto "round"
+PASS stroke-linejoin: "round" onto "miter"
+PASS stroke-miterlimit (type: positiveNumber) has testAccumulation function
+FAIL stroke-miterlimit: positive number assert_equals: The value should be 2.2 at 0ms expected "2.2" but got "1.1"
+PASS stroke-opacity (type: opacity) has testAccumulation function
+FAIL stroke-opacity: [0, 1] number assert_equals: The value should be 0.6 at 0ms expected "0.6" but got "0.3"
+FAIL stroke-opacity: [0, 1] number (clamped) assert_equals: The value should be 1 at 0ms expected "1" but got "0.3"
+PASS table-layout (type: discrete) has testAccumulation function
+PASS table-layout: "fixed" onto "auto"
+PASS table-layout: "auto" onto "fixed"
+PASS text-align (type: discrete) has testAccumulation function
+PASS text-align: "end" onto "start"
+PASS text-align: "start" onto "end"
+PASS text-align-last (type: discrete) has testAccumulation function
+PASS text-align-last: "end" onto "start"
+PASS text-align-last: "start" onto "end"
+PASS text-anchor (type: discrete) has testAccumulation function
+PASS text-anchor: "end" onto "middle"
+PASS text-anchor: "middle" onto "end"
+PASS text-combine-upright (type: discrete) has testAccumulation function
+PASS text-combine-upright: "none" onto "all"
+PASS text-combine-upright: "all" onto "none"
+PASS text-decoration-color (type: color) has testAccumulation function
+FAIL text-decoration-color supports animating as color of rgb() with overflowed  from and to values assert_equals: The value should be rgb(255, 128, 128) at 0ms expected "rgb(255, 128, 128)" but got "rgb(255, 0, 0)"
+FAIL text-decoration-color supports animating as color of #RGB assert_equals: The value should be rgb(255, 128, 128) at 0ms expected "rgb(255, 128, 128)" but got "rgb(255, 0, 0)"
+FAIL text-decoration-color supports animating as color of hsl() assert_equals: The value should be rgb(255, 128, 128) at 0ms expected "rgb(255, 128, 128)" but got "rgb(255, 0, 0)"
+FAIL text-decoration-color supports animating as color of #RGBa assert_equals: The value should be rgb(230, 128, 128) at 0ms expected "rgb(230, 128, 128)" but got "rgba(255, 0, 0, 0.4)"
+FAIL text-decoration-color supports animating as color of rgba() assert_equals: The value should be rgb(230, 128, 128) at 0ms expected "rgb(230, 128, 128)" but got "rgba(255, 0, 0, 0.4)"
+FAIL text-decoration-color supports animating as color of hsla() assert_equals: The value should be rgb(230, 128, 128) at 0ms expected "rgb(230, 128, 128)" but got "rgba(255, 0, 0, 0.4)"
+PASS text-decoration-line (type: discrete) has testAccumulation function
+PASS text-decoration-line: "overline" onto "underline"
+PASS text-decoration-line: "underline" onto "overline"
+PASS text-decoration-style (type: discrete) has testAccumulation function
+PASS text-decoration-style: "dotted" onto "solid"
+PASS text-decoration-style: "solid" onto "dotted"
+PASS text-emphasis-color (type: color) has testAccumulation function
+FAIL text-emphasis-color supports animating as color of rgb() with overflowed  from and to values assert_equals: The value should be rgb(255, 128, 128) at 0ms expected (string) "rgb(255, 128, 128)" but got (undefined) undefined
+FAIL text-emphasis-color supports animating as color of #RGB assert_equals: The value should be rgb(255, 128, 128) at 0ms expected (string) "rgb(255, 128, 128)" but got (undefined) undefined
+FAIL text-emphasis-color supports animating as color of hsl() assert_equals: The value should be rgb(255, 128, 128) at 0ms expected (string) "rgb(255, 128, 128)" but got (undefined) undefined
+FAIL text-emphasis-color supports animating as color of #RGBa assert_equals: The value should be rgb(230, 128, 128) at 0ms expected (string) "rgb(230, 128, 128)" but got (undefined) undefined
+FAIL text-emphasis-color supports animating as color of rgba() assert_equals: The value should be rgb(230, 128, 128) at 0ms expected (string) "rgb(230, 128, 128)" but got (undefined) undefined
+FAIL text-emphasis-color supports animating as color of hsla() assert_equals: The value should be rgb(230, 128, 128) at 0ms expected (string) "rgb(230, 128, 128)" but got (undefined) undefined
+PASS text-emphasis-position (type: discrete) has testAccumulation function
+FAIL text-emphasis-position: "under left" onto "over right" assert_equals: The value should be under left at 0ms expected (string) "under left" but got (undefined) undefined
+FAIL text-emphasis-position: "over right" onto "under left" assert_equals: The value should be over right at 0ms expected (string) "over right" but got (undefined) undefined
+PASS text-emphasis-style (type: discrete) has testAccumulation function
+FAIL text-emphasis-style: "open dot" onto "filled circle" assert_equals: The value should be open dot at 0ms expected (string) "open dot" but got (undefined) undefined
+FAIL text-emphasis-style: "filled circle" onto "open dot" assert_equals: The value should be filled circle at 0ms expected (string) "filled circle" but got (undefined) undefined
+PASS text-orientation (type: discrete) has testAccumulation function
+PASS text-orientation: "sideways" onto "upright"
+PASS text-orientation: "upright" onto "sideways"
+PASS text-overflow (type: discrete) has testAccumulation function
+PASS text-overflow: "ellipsis" onto "clip"
+PASS text-overflow: "clip" onto "ellipsis"
+PASS text-rendering (type: discrete) has testAccumulation function
+FAIL text-rendering: "optimizeLegibility" onto "optimizeSpeed" assert_equals: The value should be optimizelegibility at 0ms expected "optimizelegibility" but got "optimizeLegibility"
+FAIL text-rendering: "optimizeSpeed" onto "optimizeLegibility" assert_equals: The value should be optimizespeed at 0ms expected "optimizespeed" but got "optimizeSpeed"
+PASS text-shadow (type: textShadowList) has testAccumulation function
+FAIL text-shadow: shadow assert_equals: The value should be rgb(240, 240, 240) 20px 20px 20px at 0ms expected "rgb(240, 240, 240) 20px 20px 20px" but got "rgb(120, 120, 120) 10px 10px 10px"
+PASS text-transform (type: discrete) has testAccumulation function
+PASS text-transform: "uppercase" onto "capitalize"
+PASS text-transform: "capitalize" onto "uppercase"
+PASS touch-action (type: discrete) has testAccumulation function
+PASS touch-action: "none" onto "auto"
+PASS touch-action: "auto" onto "none"
+PASS transform (type: transformList) has testAccumulation function
+FAIL transform: translate assert_approx_equals: expected matrix(1,0,0,1,-100,0) but got matrix(1, 0, 0, 1, -200, 0): The value should be matrix(1,0,0,1,-100,0) at 0ms but got matrix(1, 0, 0, 1, -200, 0) expected -100 +/- 0.0001 but got -200
+FAIL transform: rotate assert_approx_equals: expected matrix(0.7071067811865476,-0.7071067811865475,0.7071067811865475,0.7071067811865476,0,0) but got matrix(6.12323e-17, -1, 1, 6.12323e-17, 0, 0): The value should be matrix(0.7071067811865476,-0.7071067811865475,0.7071067811865475,0.7071067811865476,0,0) at 0ms but got matrix(6.12323e-17, -1, 1, 6.12323e-17, 0, 0) expected 0.7071067811865476 +/- 0.0001 but got 6.12323e-17
+FAIL transform: scale assert_approx_equals: expected matrix(-2,0,0,-2,0,0) but got matrix(-3, 0, 0, -3, 0, 0): The value should be matrix(-2,0,0,-2,0,0) at 0ms but got matrix(-3, 0, 0, -3, 0, 0) expected -2 +/- 0.0001 but got -3
+FAIL transform: skew assert_approx_equals: expected matrix(1,0.5773502691896257,-0.36397023426620234,1,0,0) but got matrix(1, 0.36397, -0.57735, 1, 0, 0): The value should be matrix(1,0.5773502691896257,-0.36397023426620234,1,0,0) at 0ms but got matrix(1, 0.36397, -0.57735, 1, 0, 0) expected 0.5773502691896257 +/- 0.0001 but got 0.36397
+FAIL transform: rotate on translate assert_approx_equals: expected matrix(0,1,-1,0,100,0) but got matrix(6.12323e-17, 1, -1, 6.12323e-17, 0, 0): The value should be matrix(0,1,-1,0,100,0) at 0ms but got matrix(6.12323e-17, 1, -1, 6.12323e-17, 0, 0) expected 100 +/- 0.0001 but got 0
+FAIL transform: translate on rotate assert_approx_equals: expected matrix(0,1,-1,0,100,0) but got matrix(1, 0, 0, 1, 100, 0): The value should be matrix(0,1,-1,0,100,0) at 0ms but got matrix(1, 0, 0, 1, 100, 0) expected 0 +/- 0.0001 but got 1
+FAIL transform: matrix assert_approx_equals: expected matrix(0,1,-1,0,100,0) but got matrix(1, 0, 0, 1, 100, 0): The value should be matrix(0,1,-1,0,100,0) at 0ms but got matrix(1, 0, 0, 1, 100, 0) expected 0 +/- 0.0001 but got 1
+FAIL transform: rotate3d assert_approx_equals: expected matrix3d(0.8535533905932737,0.1464466094067262,0.5,0,0.1464466094067262,0.8535533905932737,-0.5,0,-0.5,0.5,0.7071067811865476,0,0,0,0,1) but got matrix3d(0.5, 0.5, 0.707107, 0, 0.5, 0.5, -0.707107, 0, -0.707107, 0.707107, 6.12323e-17, 0, 0, 0, 0, 1): The value should be matrix3d(0.8535533905932737,0.1464466094067262,0.5,0,0.1464466094067262,0.8535533905932737,-0.5,0,-0.5,0.5,0.7071067811865476,0,0,0,0,1) at 0ms but got matrix3d(0.5, 0.5, 0.707107, 0, 0.5, 0.5, -0.707107, 0, -0.707107, 0.707107, 6.12323e-17, 0, 0, 0, 0, 1) expected 0.8535533905932737 +/- 0.0001 but got 0.5
+FAIL transform: matrix3d assert_approx_equals: expected matrix3d(0.8535533905932737,0.1464466094067262,0.5,0,0.1464466094067262,0.8535533905932737,-0.5,0,-0.5,0.5,0.7071067811865476,0,0,0,0,1) but got matrix3d(0.5, 0.5, 0.707107, 0, 0.5, 0.5, -0.707107, 0, -0.707107, 0.707107, 4.44089e-16, 0, 0, 0, 0, 1): The value should be matrix3d(0.8535533905932737,0.1464466094067262,0.5,0,0.1464466094067262,0.8535533905932737,-0.5,0,-0.5,0.5,0.7071067811865476,0,0,0,0,1) at 0ms but got matrix3d(0.5, 0.5, 0.707107, 0, 0.5, 0.5, -0.707107, 0, -0.707107, 0.707107, 4.44089e-16, 0, 0, 0, 0, 1) expected 0.8535533905932737 +/- 0.0001 but got 0.5
+FAIL transform: none assert_equals: dimension of the matrix: The value should be matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1) at 0ms but got matrix(1, 0, 0, 1, 0, 0) expected 16 but got 6
+PASS transform: non-invertible matrices (non-invertible onto invertible)
+PASS transform: non-invertible matrices (invertible onto non-invertible)
+PASS transform: non-invertible matrices in matched transform lists (non-invertible onto invertible)
+PASS transform: non-invertible matrices in matched transform lists (invertible onto non-invertible)
+PASS transform: non-invertible matrices in mismatched transform lists (non-invertible onto invertible)
+PASS transform: non-invertible matrices in mismatched transform lists (invertible onto non-invertible)
+PASS transform-box (type: discrete) has testAccumulation function
+FAIL transform-box: "border-box" onto "fill-box" assert_equals: The value should be border-box at 0ms expected "border-box" but got "view-box"
+PASS transform-box: "fill-box" onto "border-box"
+PASS transform-style (type: discrete) has testAccumulation function
+PASS transform-style: "preserve-3d" onto "flat"
+PASS transform-style: "flat" onto "preserve-3d"
+PASS rotate (type: rotateList) has testAccumulation function
+FAIL rotate without rotation axes assert_equals: The value should be -45deg at 0ms expected "-45deg" but got "-90deg"
+FAIL rotate with underlying transform assert_equals: The value should be 1 0 0 45deg at 0ms expected "1 0 0 45deg" but got "1 0 0 90deg"
+FAIL rotate with different rotation axes assert_approx_equals: expected 0.707107 0 0.707107 90deg but got 1 0 1 90deg: The value should be 0.707107 0 0.707107 90deg at 500ms but got 1 0 1 90deg expected 0.707107 +/- 0.0001 but got 1
+PASS translate (type: translateList) has testAccumulation function
+FAIL translate assert_equals: The value should be -100px at 0ms expected "-100px" but got "-200px"
+FAIL translate with transform assert_equals: The value should be -100px at 0ms expected "-100px" but got "-200px"
+PASS scale (type: scaleList) has testAccumulation function
+FAIL scale with two unspecified values assert_equals: The value should be -2 at 0ms expected "-2" but got "-3 1"
+FAIL scale with one unspecified value assert_equals: The value should be -2 -2 at 0ms expected "-2 -2" but got "-3 -3"
+FAIL scale assert_equals: The value should be 0 -1 -2 at 0ms expected "0 -1 -2" but got "-1 -2 -3"
+PASS unicode-bidi (type: discrete) has testAccumulation function
+PASS unicode-bidi: "bidi-override" onto "embed"
+PASS unicode-bidi: "embed" onto "bidi-override"
+PASS vector-effect (type: discrete) has testAccumulation function
+PASS vector-effect: "non-scaling-stroke" onto "none"
+PASS vector-effect: "none" onto "non-scaling-stroke"
+PASS visibility (type: visibility) has testAccumulation function
+FAIL visibility: onto "visible" assert_equals: The value should be visible at 1000ms expected "visible" but got "hidden"
+PASS visibility: onto "hidden"
+PASS white-space (type: discrete) has testAccumulation function
+PASS white-space: "nowrap" onto "pre"
+PASS white-space: "pre" onto "nowrap"
+PASS word-break (type: discrete) has testAccumulation function
+PASS word-break: "break-all" onto "keep-all"
+PASS word-break: "keep-all" onto "break-all"
+PASS word-spacing (type: lengthPercentageOrCalc) has testAccumulation function
+PASS word-spacing: length
+PASS word-spacing: length of rem
+FAIL word-spacing: percentage assert_equals: The value should be 130% at 0ms expected "130%" but got "0px"
+FAIL word-spacing: units "%" onto "px" assert_equals: The value should be calc(10px + 10%) at 0ms expected "calc(10px + 10%)" but got "10px"
+FAIL word-spacing: units "px" onto "%" assert_equals: The value should be calc(10px + 10%) at 0ms expected "calc(10px + 10%)" but got "10px"
+FAIL word-spacing: units "rem" onto "%" assert_equals: The value should be calc(20px + 10%) at 0ms expected "calc(20px + 10%)" but got "20px"
+FAIL word-spacing: units "%" onto "rem" assert_equals: The value should be calc(20px + 10%) at 0ms expected "calc(20px + 10%)" but got "20px"
+FAIL word-spacing: units "rem" onto "em" assert_equals: The value should be 40px at 0ms expected "40px" but got "20px"
+FAIL word-spacing: units "em" onto "rem" assert_equals: The value should be 40px at 0ms expected "40px" but got "20px"
+FAIL word-spacing: units "calc" onto "px" assert_equals: The value should be calc(30px + 20%) at 0ms expected "calc(30px + 20%)" but got "10px"
+FAIL word-spacing: calc assert_equals: The value should be calc(30px + 30%) at 0ms expected "calc(30px + 30%)" but got "0px"
+PASS will-change (type: discrete) has testAccumulation function
+PASS will-change: "contents" onto "scroll-position"
+PASS will-change: "scroll-position" onto "contents"
+PASS writing-mode (type: discrete) has testAccumulation function
+FAIL writing-mode: "sideways-rl" onto "vertical-rl" assert_equals: The value should be sideways-rl at 0ms expected "sideways-rl" but got "vertical-rl"
+PASS writing-mode: "vertical-rl" onto "sideways-rl"
+Harness: the test ran to completion.
+
diff --git a/third_party/WebKit/LayoutTests/external/wpt/web-animations/animation-model/animation-types/addition-per-property-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/web-animations/animation-model/animation-types/addition-per-property-expected.txt
new file mode 100644
index 0000000..fed9988
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/web-animations/animation-model/animation-types/addition-per-property-expected.txt
@@ -0,0 +1,649 @@
+This is a testharness.js-based test.
+Found 645 tests; 546 PASS, 99 FAIL, 0 TIMEOUT, 0 NOTRUN.
+PASS align-content (type: discrete) has testAddition function
+PASS align-content: "flex-end" onto "flex-start"
+PASS align-content: "flex-start" onto "flex-end"
+PASS align-items (type: discrete) has testAddition function
+PASS align-items: "flex-end" onto "flex-start"
+PASS align-items: "flex-start" onto "flex-end"
+PASS align-self (type: discrete) has testAddition function
+PASS align-self: "flex-end" onto "flex-start"
+PASS align-self: "flex-start" onto "flex-end"
+PASS backface-visibility (type: discrete) has testAddition function
+PASS backface-visibility: "hidden" onto "visible"
+PASS backface-visibility: "visible" onto "hidden"
+PASS background-attachment (type: discrete) has testAddition function
+PASS background-attachment: "local" onto "fixed"
+PASS background-attachment: "fixed" onto "local"
+PASS background-color (type: color) has testAddition function
+PASS background-color supports animating as color of rgb() with overflowed  from and to values
+PASS background-color supports animating as color of #RGB
+PASS background-color supports animating as color of hsl()
+PASS background-color supports animating as color of #RGBa
+PASS background-color supports animating as color of rgba()
+PASS background-color supports animating as color of hsla()
+PASS background-blend-mode (type: discrete) has testAddition function
+PASS background-blend-mode: "screen" onto "multiply"
+PASS background-blend-mode: "multiply" onto "screen"
+PASS background-clip (type: discrete) has testAddition function
+PASS background-clip: "content-box" onto "padding-box"
+PASS background-clip: "padding-box" onto "content-box"
+PASS background-image (type: discrete) has testAddition function
+PASS background-image: "url("http://localhost/test-2")" onto "url("http://localhost/test-1")"
+PASS background-image: "url("http://localhost/test-1")" onto "url("http://localhost/test-2")"
+PASS background-origin (type: discrete) has testAddition function
+PASS background-origin: "content-box" onto "padding-box"
+PASS background-origin: "padding-box" onto "content-box"
+PASS background-repeat (type: discrete) has testAddition function
+PASS background-repeat: "round" onto "space"
+PASS background-repeat: "space" onto "round"
+PASS border-bottom-color (type: color) has testAddition function
+PASS border-bottom-color supports animating as color of rgb() with overflowed  from and to values
+PASS border-bottom-color supports animating as color of #RGB
+PASS border-bottom-color supports animating as color of hsl()
+PASS border-bottom-color supports animating as color of #RGBa
+PASS border-bottom-color supports animating as color of rgba()
+PASS border-bottom-color supports animating as color of hsla()
+PASS border-bottom-style (type: discrete) has testAddition function
+PASS border-bottom-style: "solid" onto "dotted"
+PASS border-bottom-style: "dotted" onto "solid"
+PASS border-bottom-width (type: length) has testAddition function
+PASS border-bottom-width: length
+PASS border-bottom-width: length of rem
+PASS border-collapse (type: discrete) has testAddition function
+PASS border-collapse: "separate" onto "collapse"
+PASS border-collapse: "collapse" onto "separate"
+PASS border-image-outset (type: discrete) has testAddition function
+FAIL border-image-outset: "5 6 7 8" onto "1 2 3 4" assert_equals: The value should be 5 6 7 8 at 0ms expected "5 6 7 8" but got "6 8 10 12"
+FAIL border-image-outset: "1 2 3 4" onto "5 6 7 8" assert_equals: The value should be 1 2 3 4 at 0ms expected "1 2 3 4" but got "6 8 10 12"
+PASS border-image-repeat (type: discrete) has testAddition function
+FAIL border-image-repeat: "repeat repeat" onto "stretch stretch" assert_equals: The value should be repeat repeat at 0ms expected "repeat repeat" but got "repeat"
+FAIL border-image-repeat: "stretch stretch" onto "repeat repeat" assert_equals: The value should be stretch stretch at 0ms expected "stretch stretch" but got "stretch"
+PASS border-image-slice (type: discrete) has testAddition function
+FAIL border-image-slice: "5 6 7 8" onto "1 2 3 4" assert_equals: The value should be 5 6 7 8 at 0ms expected "5 6 7 8" but got "6 8 10 12"
+FAIL border-image-slice: "1 2 3 4" onto "5 6 7 8" assert_equals: The value should be 1 2 3 4 at 0ms expected "1 2 3 4" but got "6 8 10 12"
+PASS border-image-source (type: discrete) has testAddition function
+PASS border-image-source: "url("http://localhost/test-2")" onto "url("http://localhost/test-1")"
+PASS border-image-source: "url("http://localhost/test-1")" onto "url("http://localhost/test-2")"
+PASS border-image-width (type: discrete) has testAddition function
+FAIL border-image-width: "5 6 7 8" onto "1 2 3 4" assert_equals: The value should be 5 6 7 8 at 0ms expected "5 6 7 8" but got "6 8 10 12"
+FAIL border-image-width: "1 2 3 4" onto "5 6 7 8" assert_equals: The value should be 1 2 3 4 at 0ms expected "1 2 3 4" but got "6 8 10 12"
+PASS border-left-color (type: color) has testAddition function
+PASS border-left-color supports animating as color of rgb() with overflowed  from and to values
+PASS border-left-color supports animating as color of #RGB
+PASS border-left-color supports animating as color of hsl()
+PASS border-left-color supports animating as color of #RGBa
+PASS border-left-color supports animating as color of rgba()
+PASS border-left-color supports animating as color of hsla()
+PASS border-left-style (type: discrete) has testAddition function
+PASS border-left-style: "solid" onto "dotted"
+PASS border-left-style: "dotted" onto "solid"
+PASS border-left-width (type: length) has testAddition function
+PASS border-left-width: length
+PASS border-left-width: length of rem
+PASS border-right-color (type: color) has testAddition function
+PASS border-right-color supports animating as color of rgb() with overflowed  from and to values
+PASS border-right-color supports animating as color of #RGB
+PASS border-right-color supports animating as color of hsl()
+PASS border-right-color supports animating as color of #RGBa
+PASS border-right-color supports animating as color of rgba()
+PASS border-right-color supports animating as color of hsla()
+PASS border-right-style (type: discrete) has testAddition function
+PASS border-right-style: "solid" onto "dotted"
+PASS border-right-style: "dotted" onto "solid"
+PASS border-right-width (type: length) has testAddition function
+PASS border-right-width: length
+PASS border-right-width: length of rem
+PASS border-spacing (type: lengthPair) has testAddition function
+PASS border-spacing: length pair
+PASS border-spacing: length pair of rem
+PASS border-top-color (type: color) has testAddition function
+PASS border-top-color supports animating as color of rgb() with overflowed  from and to values
+PASS border-top-color supports animating as color of #RGB
+PASS border-top-color supports animating as color of hsl()
+PASS border-top-color supports animating as color of #RGBa
+PASS border-top-color supports animating as color of rgba()
+PASS border-top-color supports animating as color of hsla()
+PASS border-top-style (type: discrete) has testAddition function
+PASS border-top-style: "solid" onto "dotted"
+PASS border-top-style: "dotted" onto "solid"
+PASS border-top-width (type: length) has testAddition function
+PASS border-top-width: length
+PASS border-top-width: length of rem
+PASS box-decoration-break (type: discrete) has testAddition function
+FAIL box-decoration-break: "clone" onto "slice" assert_equals: The value should be clone at 0ms expected (string) "clone" but got (undefined) undefined
+FAIL box-decoration-break: "slice" onto "clone" assert_equals: The value should be slice at 0ms expected (string) "slice" but got (undefined) undefined
+PASS box-shadow (type: boxShadowList) has testAddition function
+FAIL box-shadow: shadow assert_equals: The value should be rgb(0, 0, 0) 0px 0px 0px 0px, rgb(120, 120, 120) 10px 10px 10px 0px at 0ms expected "rgb(0, 0, 0) 0px 0px 0px 0px, rgb(120, 120, 120) 10px 10px 10px 0px" but got "rgb(120, 120, 120) 10px 10px 10px 0px"
+PASS box-sizing (type: discrete) has testAddition function
+PASS box-sizing: "border-box" onto "content-box"
+PASS box-sizing: "content-box" onto "border-box"
+PASS caption-side (type: discrete) has testAddition function
+PASS caption-side: "bottom" onto "top"
+PASS caption-side: "top" onto "bottom"
+PASS caret-color (type: color) has testAddition function
+PASS caret-color supports animating as color of rgb() with overflowed  from and to values
+PASS caret-color supports animating as color of #RGB
+PASS caret-color supports animating as color of hsl()
+PASS caret-color supports animating as color of #RGBa
+PASS caret-color supports animating as color of rgba()
+PASS caret-color supports animating as color of hsla()
+PASS clear (type: discrete) has testAddition function
+PASS clear: "right" onto "left"
+PASS clear: "left" onto "right"
+PASS clip (type: rect) has testAddition function
+PASS clip: rect
+PASS clip (type: discrete) has testAddition function
+PASS clip: "auto" onto "rect(10px, 10px, 10px, 10px)"
+PASS clip: "rect(10px, 10px, 10px, 10px)" onto "auto"
+PASS clip: "rect(10px, 10px, 10px, auto)" onto "rect(10px, 10px, 10px, 10px)"
+PASS clip: "rect(10px, 10px, 10px, 10px)" onto "rect(10px, 10px, 10px, auto)"
+PASS clip-rule (type: discrete) has testAddition function
+PASS clip-rule: "nonzero" onto "evenodd"
+PASS clip-rule: "evenodd" onto "nonzero"
+PASS color (type: color) has testAddition function
+PASS color supports animating as color of rgb() with overflowed  from and to values
+PASS color supports animating as color of #RGB
+PASS color supports animating as color of hsl()
+PASS color supports animating as color of #RGBa
+PASS color supports animating as color of rgba()
+PASS color supports animating as color of hsla()
+PASS color-adjust (type: discrete) has testAddition function
+FAIL color-adjust: "exact" onto "economy" assert_equals: The value should be exact at 0ms expected (string) "exact" but got (undefined) undefined
+FAIL color-adjust: "economy" onto "exact" assert_equals: The value should be economy at 0ms expected (string) "economy" but got (undefined) undefined
+PASS color-interpolation (type: discrete) has testAddition function
+PASS color-interpolation: "auto" onto "linearRGB"
+FAIL color-interpolation: "linearRGB" onto "auto" assert_equals: The value should be linearrgb at 0ms expected "linearrgb" but got "linearRGB"
+PASS color-interpolation-filters (type: discrete) has testAddition function
+FAIL color-interpolation-filters: "linearRGB" onto "sRGB" assert_equals: The value should be linearrgb at 0ms expected "linearrgb" but got "linearRGB"
+FAIL color-interpolation-filters: "sRGB" onto "linearRGB" assert_equals: The value should be srgb at 0ms expected "srgb" but got "sRGB"
+PASS column-count (type: positiveInteger) has testAddition function
+PASS column-count: positive integer
+PASS column-count (type: discrete) has testAddition function
+PASS column-count: "10" onto "auto"
+PASS column-count: "auto" onto "10"
+PASS column-gap (type: length) has testAddition function
+PASS column-gap: length
+PASS column-gap: length of rem
+PASS column-gap (type: discrete) has testAddition function
+PASS column-gap: "200px" onto "normal"
+PASS column-gap: "normal" onto "200px"
+PASS column-rule-color (type: color) has testAddition function
+PASS column-rule-color supports animating as color of rgb() with overflowed  from and to values
+PASS column-rule-color supports animating as color of #RGB
+PASS column-rule-color supports animating as color of hsl()
+PASS column-rule-color supports animating as color of #RGBa
+PASS column-rule-color supports animating as color of rgba()
+PASS column-rule-color supports animating as color of hsla()
+PASS column-fill (type: discrete) has testAddition function
+PASS column-fill: "balance" onto "auto"
+PASS column-fill: "auto" onto "balance"
+PASS column-rule-style (type: discrete) has testAddition function
+PASS column-rule-style: "dotted" onto "none"
+PASS column-rule-style: "none" onto "dotted"
+PASS column-rule-width (type: length) has testAddition function
+PASS column-rule-width: length
+PASS column-rule-width: length of rem
+PASS column-width (type: length) has testAddition function
+PASS column-width: length
+PASS column-width: length of rem
+PASS column-width (type: discrete) has testAddition function
+PASS column-width: "1px" onto "auto"
+PASS column-width: "auto" onto "1px"
+PASS contain (type: discrete) has testAddition function
+PASS contain: "none" onto "strict"
+PASS contain: "strict" onto "none"
+PASS content (type: discrete) has testAddition function
+FAIL content: ""b"" onto ""a"" assert_equals: expected (string) "::before" but got (undefined) undefined
+FAIL content: ""a"" onto ""b"" assert_equals: expected (string) "::before" but got (undefined) undefined
+PASS counter-increment (type: discrete) has testAddition function
+PASS counter-increment: "ident-2 2" onto "ident-1 1"
+PASS counter-increment: "ident-1 1" onto "ident-2 2"
+PASS counter-reset (type: discrete) has testAddition function
+PASS counter-reset: "ident-2 2" onto "ident-1 1"
+PASS counter-reset: "ident-1 1" onto "ident-2 2"
+PASS cursor (type: discrete) has testAddition function
+PASS cursor: "wait" onto "pointer"
+PASS cursor: "pointer" onto "wait"
+PASS direction (type: discrete) has testAddition function
+PASS direction: "rtl" onto "ltr"
+PASS direction: "ltr" onto "rtl"
+PASS dominant-baseline (type: discrete) has testAddition function
+PASS dominant-baseline: "alphabetic" onto "ideographic"
+PASS dominant-baseline: "ideographic" onto "alphabetic"
+PASS empty-cells (type: discrete) has testAddition function
+PASS empty-cells: "hide" onto "show"
+PASS empty-cells: "show" onto "hide"
+PASS fill-opacity (type: opacity) has testAddition function
+PASS fill-opacity: [0, 1] number
+PASS fill-opacity: [0, 1] number (clamped)
+PASS fill-rule (type: discrete) has testAddition function
+PASS fill-rule: "nonzero" onto "evenodd"
+PASS fill-rule: "evenodd" onto "nonzero"
+PASS filter (type: filterList) has testAddition function
+FAIL filter: blur on blur assert_equals: The value should be blur(10px) blur(20px) at 0ms expected "blur(10px) blur(20px)" but got "blur(30px)"
+FAIL filter: different filter functions assert_equals: The value should be blur(10px) brightness(0.8) at 0ms expected "blur(10px) brightness(0.8)" but got "brightness(0.8)"
+PASS flex-basis (type: lengthPercentageOrCalc) has testAddition function
+PASS flex-basis: length
+PASS flex-basis: length of rem
+PASS flex-basis: percentage
+PASS flex-basis: units "%" onto "px"
+PASS flex-basis: units "px" onto "%"
+PASS flex-basis: units "rem" onto "%"
+PASS flex-basis: units "%" onto "rem"
+PASS flex-basis: units "rem" onto "em"
+PASS flex-basis: units "em" onto "rem"
+PASS flex-basis: units "calc" onto "px"
+PASS flex-basis: calc
+PASS flex-basis (type: discrete) has testAddition function
+PASS flex-basis: "10px" onto "auto"
+PASS flex-basis: "auto" onto "10px"
+PASS flex-direction (type: discrete) has testAddition function
+PASS flex-direction: "row-reverse" onto "row"
+PASS flex-direction: "row" onto "row-reverse"
+PASS flex-grow (type: positiveNumber) has testAddition function
+PASS flex-grow: positive number
+PASS flex-shrink (type: positiveNumber) has testAddition function
+PASS flex-shrink: positive number
+PASS flex-wrap (type: discrete) has testAddition function
+PASS flex-wrap: "wrap" onto "nowrap"
+PASS flex-wrap: "nowrap" onto "wrap"
+PASS flood-color (type: color) has testAddition function
+PASS flood-color supports animating as color of rgb() with overflowed  from and to values
+PASS flood-color supports animating as color of #RGB
+PASS flood-color supports animating as color of hsl()
+PASS flood-color supports animating as color of #RGBa
+PASS flood-color supports animating as color of rgba()
+PASS flood-color supports animating as color of hsla()
+PASS flood-opacity (type: opacity) has testAddition function
+PASS flood-opacity: [0, 1] number
+PASS flood-opacity: [0, 1] number (clamped)
+PASS font-stretch (type: fontStretch) has testAddition function
+FAIL font-stretch uses font-stretch behavior for composite type add assert_equals: The value should be normal at 0ms expected "normal" but got "125%"
+PASS font-style (type: discrete) has testAddition function
+FAIL font-style: "oblique" onto "italic" assert_equals: The value should be oblique at 0ms expected "oblique" but got "italic"
+PASS font-style: "italic" onto "oblique"
+PASS float (type: discrete) has testAddition function
+PASS float: "right" onto "left"
+PASS float: "left" onto "right"
+PASS font-family (type: discrete) has testAddition function
+PASS font-family: "verdana" onto "helvetica"
+PASS font-family: "helvetica" onto "verdana"
+PASS font-feature-settings (type: discrete) has testAddition function
+PASS font-feature-settings: "normal" onto ""liga" 5"
+PASS font-feature-settings: ""liga" 5" onto "normal"
+PASS font-kerning (type: discrete) has testAddition function
+PASS font-kerning: "normal" onto "auto"
+PASS font-kerning: "auto" onto "normal"
+PASS font-language-override (type: discrete) has testAddition function
+FAIL font-language-override: "normal" onto ""eng"" assert_equals: The value should be normal at 0ms expected (string) "normal" but got (undefined) undefined
+FAIL font-language-override: ""eng"" onto "normal" assert_equals: The value should be "eng" at 0ms expected (string) "\"eng\"" but got (undefined) undefined
+PASS font-synthesis (type: discrete) has testAddition function
+FAIL font-synthesis: "weight style" onto "none" assert_equals: The value should be weight style at 0ms expected (string) "weight style" but got (undefined) undefined
+FAIL font-synthesis: "none" onto "weight style" assert_equals: The value should be none at 0ms expected (string) "none" but got (undefined) undefined
+PASS font-variant-alternates (type: discrete) has testAddition function
+FAIL font-variant-alternates: "stylistic(unknown)" onto "swash(unknown)" assert_equals: The value should be stylistic(unknown) at 0ms expected (string) "stylistic(unknown)" but got (undefined) undefined
+FAIL font-variant-alternates: "swash(unknown)" onto "stylistic(unknown)" assert_equals: The value should be swash(unknown) at 0ms expected (string) "swash(unknown)" but got (undefined) undefined
+PASS font-variant-caps (type: discrete) has testAddition function
+PASS font-variant-caps: "unicase" onto "small-caps"
+PASS font-variant-caps: "small-caps" onto "unicase"
+PASS font-variant-east-asian (type: discrete) has testAddition function
+PASS font-variant-east-asian: "proportional-width" onto "full-width"
+PASS font-variant-east-asian: "full-width" onto "proportional-width"
+PASS font-variant-ligatures (type: discrete) has testAddition function
+PASS font-variant-ligatures: "no-common-ligatures" onto "common-ligatures"
+PASS font-variant-ligatures: "common-ligatures" onto "no-common-ligatures"
+PASS font-variant-numeric (type: discrete) has testAddition function
+PASS font-variant-numeric: "oldstyle-nums" onto "lining-nums"
+PASS font-variant-numeric: "lining-nums" onto "oldstyle-nums"
+PASS font-variant-position (type: discrete) has testAddition function
+FAIL font-variant-position: "super" onto "sub" assert_equals: The value should be super at 0ms expected (string) "super" but got (undefined) undefined
+FAIL font-variant-position: "sub" onto "super" assert_equals: The value should be sub at 0ms expected (string) "sub" but got (undefined) undefined
+PASS font-variation-settings (type: fontVariationSettings) has testAddition function
+PASS font-variation-settings with composite type add
+PASS font-variation-settings (type: discrete) has testAddition function
+PASS font-variation-settings: ""wdth" 5" onto ""wght" 1.1, "wdth" 1"
+PASS font-variation-settings: ""wght" 1.1, "wdth" 1" onto ""wdth" 5"
+PASS font-variation-settings: "normal" onto ""wdth" 5"
+PASS font-variation-settings: ""wdth" 5" onto "normal"
+PASS grid-auto-columns (type: discrete) has testAddition function
+PASS grid-auto-columns: "5px" onto "1px"
+PASS grid-auto-columns: "1px" onto "5px"
+PASS grid-auto-flow (type: discrete) has testAddition function
+PASS grid-auto-flow: "column" onto "row"
+PASS grid-auto-flow: "row" onto "column"
+PASS grid-auto-rows (type: discrete) has testAddition function
+PASS grid-auto-rows: "5px" onto "1px"
+PASS grid-auto-rows: "1px" onto "5px"
+PASS grid-column-end (type: discrete) has testAddition function
+PASS grid-column-end: "5" onto "1"
+PASS grid-column-end: "1" onto "5"
+PASS grid-column-start (type: discrete) has testAddition function
+PASS grid-column-start: "5" onto "1"
+PASS grid-column-start: "1" onto "5"
+PASS grid-row-end (type: discrete) has testAddition function
+PASS grid-row-end: "5" onto "1"
+PASS grid-row-end: "1" onto "5"
+PASS grid-row-start (type: discrete) has testAddition function
+PASS grid-row-start: "5" onto "1"
+PASS grid-row-start: "1" onto "5"
+PASS grid-template-areas (type: discrete) has testAddition function
+PASS grid-template-areas: "none" onto "". . a b" ". .a b""
+FAIL grid-template-areas: "". . a b" ". .a b"" onto "none" assert_equals: The value should be ". . a b" ". .a b" at 0ms expected "\". . a b\" \". .a b\"" but got "\". . a b\" \". . a b\""
+PASS grid-template-columns (type: discrete) has testAddition function
+PASS grid-template-columns: "5px" onto "1px"
+PASS grid-template-columns: "1px" onto "5px"
+PASS grid-template-rows (type: discrete) has testAddition function
+PASS grid-template-rows: "5px" onto "1px"
+PASS grid-template-rows: "1px" onto "5px"
+PASS hyphens (type: discrete) has testAddition function
+FAIL hyphens: "auto" onto "manual" assert_equals: The value should be auto at 0ms expected "auto" but got "manual"
+PASS hyphens: "manual" onto "auto"
+PASS image-orientation (type: discrete) has testAddition function
+FAIL image-orientation: "90deg" onto "0deg" assert_equals: The value should be 90deg at 0ms expected "90deg" but got "0deg"
+PASS image-orientation: "0deg" onto "90deg"
+PASS ime-mode (type: discrete) has testAddition function
+FAIL ime-mode: "auto" onto "disabled" assert_equals: The value should be auto at 0ms expected (string) "auto" but got (undefined) undefined
+FAIL ime-mode: "disabled" onto "auto" assert_equals: The value should be disabled at 0ms expected (string) "disabled" but got (undefined) undefined
+PASS initial-letter (type: discrete) has testAddition function
+FAIL initial-letter: "3 4" onto "1 2" assert_equals: The value should be 3 4 at 0ms expected (string) "3 4" but got (undefined) undefined
+FAIL initial-letter: "1 2" onto "3 4" assert_equals: The value should be 1 2 at 0ms expected (string) "1 2" but got (undefined) undefined
+PASS isolation (type: discrete) has testAddition function
+PASS isolation: "isolate" onto "auto"
+PASS isolation: "auto" onto "isolate"
+PASS justify-content (type: discrete) has testAddition function
+PASS justify-content: "end" onto "start"
+PASS justify-content: "start" onto "end"
+PASS justify-items (type: discrete) has testAddition function
+PASS justify-items: "end" onto "start"
+PASS justify-items: "start" onto "end"
+PASS justify-self (type: discrete) has testAddition function
+PASS justify-self: "end" onto "start"
+PASS justify-self: "start" onto "end"
+PASS letter-spacing (type: length) has testAddition function
+PASS letter-spacing: length
+PASS letter-spacing: length of rem
+PASS lighting-color (type: color) has testAddition function
+PASS lighting-color supports animating as color of rgb() with overflowed  from and to values
+PASS lighting-color supports animating as color of #RGB
+PASS lighting-color supports animating as color of hsl()
+PASS lighting-color supports animating as color of #RGBa
+PASS lighting-color supports animating as color of rgba()
+PASS lighting-color supports animating as color of hsla()
+PASS list-style-image (type: discrete) has testAddition function
+PASS list-style-image: "url("http://localhost/test-2")" onto "url("http://localhost/test-1")"
+PASS list-style-image: "url("http://localhost/test-1")" onto "url("http://localhost/test-2")"
+PASS list-style-position (type: discrete) has testAddition function
+PASS list-style-position: "outside" onto "inside"
+PASS list-style-position: "inside" onto "outside"
+PASS list-style-type (type: discrete) has testAddition function
+PASS list-style-type: "square" onto "circle"
+PASS list-style-type: "circle" onto "square"
+PASS marker-end (type: discrete) has testAddition function
+FAIL marker-end: "url("http://localhost/test-2")" onto "url("http://localhost/test-1")" assert_equals: The value should be url("http://localhost/test-2") at 0ms expected "url(\"http://localhost/test-2\")" but got "none"
+FAIL marker-end: "url("http://localhost/test-1")" onto "url("http://localhost/test-2")" assert_equals: The value should be url("http://localhost/test-1") at 0ms expected "url(\"http://localhost/test-1\")" but got "none"
+PASS marker-mid (type: discrete) has testAddition function
+FAIL marker-mid: "url("http://localhost/test-2")" onto "url("http://localhost/test-1")" assert_equals: The value should be url("http://localhost/test-2") at 0ms expected "url(\"http://localhost/test-2\")" but got "none"
+FAIL marker-mid: "url("http://localhost/test-1")" onto "url("http://localhost/test-2")" assert_equals: The value should be url("http://localhost/test-1") at 0ms expected "url(\"http://localhost/test-1\")" but got "none"
+PASS marker-start (type: discrete) has testAddition function
+FAIL marker-start: "url("http://localhost/test-2")" onto "url("http://localhost/test-1")" assert_equals: The value should be url("http://localhost/test-2") at 0ms expected "url(\"http://localhost/test-2\")" but got "none"
+FAIL marker-start: "url("http://localhost/test-1")" onto "url("http://localhost/test-2")" assert_equals: The value should be url("http://localhost/test-1") at 0ms expected "url(\"http://localhost/test-1\")" but got "none"
+PASS mask (type: discrete) has testAddition function
+FAIL mask: "url("http://localhost/test-2")" onto "url("http://localhost/test-1")" assert_equals: The value should be url("http://localhost/test-2") at 0ms expected "url(\"http://localhost/test-2\")" but got "none"
+FAIL mask: "url("http://localhost/test-1")" onto "url("http://localhost/test-2")" assert_equals: The value should be url("http://localhost/test-1") at 0ms expected "url(\"http://localhost/test-1\")" but got "none"
+PASS mask-clip (type: discrete) has testAddition function
+FAIL mask-clip: "border-box" onto "content-box" assert_equals: The value should be border-box at 0ms expected (string) "border-box" but got (undefined) undefined
+FAIL mask-clip: "content-box" onto "border-box" assert_equals: The value should be content-box at 0ms expected (string) "content-box" but got (undefined) undefined
+PASS mask-composite (type: discrete) has testAddition function
+FAIL mask-composite: "subtract" onto "add" assert_equals: The value should be subtract at 0ms expected (string) "subtract" but got (undefined) undefined
+FAIL mask-composite: "add" onto "subtract" assert_equals: The value should be add at 0ms expected (string) "add" but got (undefined) undefined
+PASS mask-image (type: discrete) has testAddition function
+FAIL mask-image: "url("http://localhost/test-2")" onto "url("http://localhost/test-1")" assert_equals: The value should be url("http://localhost/test-2") at 0ms expected (string) "url(\"http://localhost/test-2\")" but got (undefined) undefined
+FAIL mask-image: "url("http://localhost/test-1")" onto "url("http://localhost/test-2")" assert_equals: The value should be url("http://localhost/test-1") at 0ms expected (string) "url(\"http://localhost/test-1\")" but got (undefined) undefined
+PASS mask-mode (type: discrete) has testAddition function
+FAIL mask-mode: "luminance" onto "alpha" assert_equals: The value should be luminance at 0ms expected (string) "luminance" but got (undefined) undefined
+FAIL mask-mode: "alpha" onto "luminance" assert_equals: The value should be alpha at 0ms expected (string) "alpha" but got (undefined) undefined
+PASS mask-origin (type: discrete) has testAddition function
+FAIL mask-origin: "border-box" onto "content-box" assert_equals: The value should be border-box at 0ms expected (string) "border-box" but got (undefined) undefined
+FAIL mask-origin: "content-box" onto "border-box" assert_equals: The value should be content-box at 0ms expected (string) "content-box" but got (undefined) undefined
+PASS mask-repeat (type: discrete) has testAddition function
+FAIL mask-repeat: "round" onto "space" assert_equals: The value should be round at 0ms expected (string) "round" but got (undefined) undefined
+FAIL mask-repeat: "space" onto "round" assert_equals: The value should be space at 0ms expected (string) "space" but got (undefined) undefined
+PASS mask-type (type: discrete) has testAddition function
+PASS mask-type: "luminance" onto "alpha"
+PASS mask-type: "alpha" onto "luminance"
+PASS mix-blend-mode (type: discrete) has testAddition function
+PASS mix-blend-mode: "screen" onto "multiply"
+PASS mix-blend-mode: "multiply" onto "screen"
+PASS object-fit (type: discrete) has testAddition function
+PASS object-fit: "contain" onto "fill"
+PASS object-fit: "fill" onto "contain"
+PASS order (type: integer) has testAddition function
+PASS order: integer
+PASS outline-color (type: color) has testAddition function
+PASS outline-color supports animating as color of rgb() with overflowed  from and to values
+PASS outline-color supports animating as color of #RGB
+PASS outline-color supports animating as color of hsl()
+PASS outline-color supports animating as color of #RGBa
+PASS outline-color supports animating as color of rgba()
+PASS outline-color supports animating as color of hsla()
+PASS outline-offset (type: length) has testAddition function
+FAIL outline-offset: length assert_equals: The value should be 20px at 0ms expected "20px" but got "0px"
+FAIL outline-offset: length of rem assert_equals: The value should be 20px at 0ms expected "20px" but got "0px"
+PASS outline-style (type: discrete) has testAddition function
+PASS outline-style: "dotted" onto "none"
+PASS outline-style: "none" onto "dotted"
+PASS outline-width (type: length) has testAddition function
+PASS outline-width: length
+PASS outline-width: length of rem
+PASS overflow-wrap (type: discrete) has testAddition function
+PASS overflow-wrap: "break-word" onto "normal"
+PASS overflow-wrap: "normal" onto "break-word"
+PASS overflow-x (type: discrete) has testAddition function
+PASS overflow-x: "hidden" onto "visible"
+PASS overflow-x: "visible" onto "hidden"
+PASS overflow-y (type: discrete) has testAddition function
+PASS overflow-y: "hidden" onto "visible"
+PASS overflow-y: "visible" onto "hidden"
+PASS page-break-after (type: discrete) has testAddition function
+PASS page-break-after: "auto" onto "always"
+PASS page-break-after: "always" onto "auto"
+PASS page-break-before (type: discrete) has testAddition function
+PASS page-break-before: "auto" onto "always"
+PASS page-break-before: "always" onto "auto"
+PASS page-break-inside (type: discrete) has testAddition function
+PASS page-break-inside: "avoid" onto "auto"
+PASS page-break-inside: "auto" onto "avoid"
+PASS paint-order (type: discrete) has testAddition function
+FAIL paint-order: "stroke" onto "fill" assert_equals: The value should be stroke at 0ms expected "stroke" but got "stroke fill markers"
+FAIL paint-order: "fill" onto "stroke" assert_equals: The value should be fill at 0ms expected "fill" but got "fill stroke markers"
+PASS perspective (type: length) has testAddition function
+PASS perspective: length
+PASS perspective: length of rem
+PASS perspective-origin (type: position) has testAddition function
+PASS perspective-origin: length pair
+PASS perspective-origin: length pair of rem
+PASS perspective-origin: position of percentage
+PASS pointer-events (type: discrete) has testAddition function
+PASS pointer-events: "none" onto "fill"
+PASS pointer-events: "fill" onto "none"
+PASS position (type: discrete) has testAddition function
+PASS position: "fixed" onto "absolute"
+PASS position: "absolute" onto "fixed"
+PASS quotes (type: discrete) has testAddition function
+PASS quotes: ""‘" "’" "“" "”"" onto ""“" "”" "‘" "’""
+PASS quotes: ""“" "”" "‘" "’"" onto ""‘" "’" "“" "”""
+PASS resize (type: discrete) has testAddition function
+PASS resize: "horizontal" onto "both"
+PASS resize: "both" onto "horizontal"
+PASS ruby-align (type: discrete) has testAddition function
+FAIL ruby-align: "center" onto "start" assert_equals: The value should be center at 0ms expected (string) "center" but got (undefined) undefined
+FAIL ruby-align: "start" onto "center" assert_equals: The value should be start at 0ms expected (string) "start" but got (undefined) undefined
+PASS ruby-position (type: discrete) has testAddition function
+FAIL ruby-position: "over" onto "under" assert_equals: The value should be over at 0ms expected (string) "over" but got (undefined) undefined
+FAIL ruby-position: "under" onto "over" assert_equals: The value should be under at 0ms expected (string) "under" but got (undefined) undefined
+PASS scroll-behavior (type: discrete) has testAddition function
+PASS scroll-behavior: "smooth" onto "auto"
+PASS scroll-behavior: "auto" onto "smooth"
+PASS scroll-snap-type-x (type: discrete) has testAddition function
+FAIL scroll-snap-type-x: "proximity" onto "mandatory" assert_equals: The value should be proximity at 0ms expected (string) "proximity" but got (undefined) undefined
+FAIL scroll-snap-type-x: "mandatory" onto "proximity" assert_equals: The value should be mandatory at 0ms expected (string) "mandatory" but got (undefined) undefined
+PASS scroll-snap-type-y (type: discrete) has testAddition function
+FAIL scroll-snap-type-y: "proximity" onto "mandatory" assert_equals: The value should be proximity at 0ms expected (string) "proximity" but got (undefined) undefined
+FAIL scroll-snap-type-y: "mandatory" onto "proximity" assert_equals: The value should be mandatory at 0ms expected (string) "mandatory" but got (undefined) undefined
+PASS shape-outside (type: discrete) has testAddition function
+PASS shape-outside: "url("http://localhost/test-2")" onto "url("http://localhost/test-1")"
+PASS shape-outside: "url("http://localhost/test-1")" onto "url("http://localhost/test-2")"
+PASS shape-rendering (type: discrete) has testAddition function
+FAIL shape-rendering: "crispEdges" onto "optimizeSpeed" assert_equals: The value should be crispedges at 0ms expected "crispedges" but got "crispEdges"
+FAIL shape-rendering: "optimizeSpeed" onto "crispEdges" assert_equals: The value should be optimizespeed at 0ms expected "optimizespeed" but got "optimizeSpeed"
+PASS stop-color (type: color) has testAddition function
+PASS stop-color supports animating as color of rgb() with overflowed  from and to values
+PASS stop-color supports animating as color of #RGB
+PASS stop-color supports animating as color of hsl()
+PASS stop-color supports animating as color of #RGBa
+PASS stop-color supports animating as color of rgba()
+PASS stop-color supports animating as color of hsla()
+PASS stop-opacity (type: opacity) has testAddition function
+PASS stop-opacity: [0, 1] number
+PASS stop-opacity: [0, 1] number (clamped)
+PASS stroke-dasharray (type: dasharray) has testAddition function
+FAIL stroke-dasharray: dasharray assert_equals: The value should be 1, 2, 3, 4, 5 at 0ms expected "1, 2, 3, 4, 5" but got "7px, calc(2px + 30%), 5px, 10px, calc(5px + 30%), 3px, 8px, calc(3px + 30%), 6px, 11px, calc(1px + 30%), 4px, 9px, calc(4px + 30%), 7px"
+PASS stroke-dasharray (type: discrete) has testAddition function
+FAIL stroke-dasharray: "10, 20" onto "none" assert_equals: The value should be 10, 20 at 0ms expected "10, 20" but got "10px, 20px"
+PASS stroke-dasharray: "none" onto "10, 20"
+PASS stroke-linecap (type: discrete) has testAddition function
+PASS stroke-linecap: "square" onto "round"
+PASS stroke-linecap: "round" onto "square"
+PASS stroke-linejoin (type: discrete) has testAddition function
+PASS stroke-linejoin: "miter" onto "round"
+PASS stroke-linejoin: "round" onto "miter"
+PASS stroke-miterlimit (type: positiveNumber) has testAddition function
+PASS stroke-miterlimit: positive number
+PASS stroke-opacity (type: opacity) has testAddition function
+PASS stroke-opacity: [0, 1] number
+PASS stroke-opacity: [0, 1] number (clamped)
+PASS table-layout (type: discrete) has testAddition function
+PASS table-layout: "fixed" onto "auto"
+PASS table-layout: "auto" onto "fixed"
+PASS text-align (type: discrete) has testAddition function
+PASS text-align: "end" onto "start"
+PASS text-align: "start" onto "end"
+PASS text-align-last (type: discrete) has testAddition function
+PASS text-align-last: "end" onto "start"
+PASS text-align-last: "start" onto "end"
+PASS text-anchor (type: discrete) has testAddition function
+PASS text-anchor: "end" onto "middle"
+PASS text-anchor: "middle" onto "end"
+PASS text-combine-upright (type: discrete) has testAddition function
+PASS text-combine-upright: "none" onto "all"
+PASS text-combine-upright: "all" onto "none"
+PASS text-decoration-color (type: color) has testAddition function
+PASS text-decoration-color supports animating as color of rgb() with overflowed  from and to values
+PASS text-decoration-color supports animating as color of #RGB
+PASS text-decoration-color supports animating as color of hsl()
+PASS text-decoration-color supports animating as color of #RGBa
+PASS text-decoration-color supports animating as color of rgba()
+PASS text-decoration-color supports animating as color of hsla()
+PASS text-decoration-line (type: discrete) has testAddition function
+PASS text-decoration-line: "overline" onto "underline"
+PASS text-decoration-line: "underline" onto "overline"
+PASS text-decoration-style (type: discrete) has testAddition function
+PASS text-decoration-style: "dotted" onto "solid"
+PASS text-decoration-style: "solid" onto "dotted"
+PASS text-emphasis-color (type: color) has testAddition function
+FAIL text-emphasis-color supports animating as color of rgb() with overflowed  from and to values assert_equals: The value should be rgb(255, 128, 128) at 0ms expected (string) "rgb(255, 128, 128)" but got (undefined) undefined
+FAIL text-emphasis-color supports animating as color of #RGB assert_equals: The value should be rgb(255, 128, 128) at 0ms expected (string) "rgb(255, 128, 128)" but got (undefined) undefined
+FAIL text-emphasis-color supports animating as color of hsl() assert_equals: The value should be rgb(255, 128, 128) at 0ms expected (string) "rgb(255, 128, 128)" but got (undefined) undefined
+FAIL text-emphasis-color supports animating as color of #RGBa assert_equals: The value should be rgb(230, 128, 128) at 0ms expected (string) "rgb(230, 128, 128)" but got (undefined) undefined
+FAIL text-emphasis-color supports animating as color of rgba() assert_equals: The value should be rgb(230, 128, 128) at 0ms expected (string) "rgb(230, 128, 128)" but got (undefined) undefined
+FAIL text-emphasis-color supports animating as color of hsla() assert_equals: The value should be rgb(230, 128, 128) at 0ms expected (string) "rgb(230, 128, 128)" but got (undefined) undefined
+PASS text-emphasis-position (type: discrete) has testAddition function
+FAIL text-emphasis-position: "under left" onto "over right" assert_equals: The value should be under left at 0ms expected (string) "under left" but got (undefined) undefined
+FAIL text-emphasis-position: "over right" onto "under left" assert_equals: The value should be over right at 0ms expected (string) "over right" but got (undefined) undefined
+PASS text-emphasis-style (type: discrete) has testAddition function
+FAIL text-emphasis-style: "open dot" onto "filled circle" assert_equals: The value should be open dot at 0ms expected (string) "open dot" but got (undefined) undefined
+FAIL text-emphasis-style: "filled circle" onto "open dot" assert_equals: The value should be filled circle at 0ms expected (string) "filled circle" but got (undefined) undefined
+PASS text-orientation (type: discrete) has testAddition function
+PASS text-orientation: "sideways" onto "upright"
+PASS text-orientation: "upright" onto "sideways"
+PASS text-overflow (type: discrete) has testAddition function
+PASS text-overflow: "ellipsis" onto "clip"
+PASS text-overflow: "clip" onto "ellipsis"
+PASS text-rendering (type: discrete) has testAddition function
+FAIL text-rendering: "optimizeLegibility" onto "optimizeSpeed" assert_equals: The value should be optimizelegibility at 0ms expected "optimizelegibility" but got "optimizeLegibility"
+FAIL text-rendering: "optimizeSpeed" onto "optimizeLegibility" assert_equals: The value should be optimizespeed at 0ms expected "optimizespeed" but got "optimizeSpeed"
+PASS text-shadow (type: textShadowList) has testAddition function
+FAIL text-shadow: shadow assert_equals: The value should be rgb(0, 0, 0) 0px 0px 0px, rgb(120, 120, 120) 10px 10px 10px at 0ms expected "rgb(0, 0, 0) 0px 0px 0px, rgb(120, 120, 120) 10px 10px 10px" but got "rgb(120, 120, 120) 10px 10px 10px"
+PASS text-transform (type: discrete) has testAddition function
+PASS text-transform: "uppercase" onto "capitalize"
+PASS text-transform: "capitalize" onto "uppercase"
+PASS touch-action (type: discrete) has testAddition function
+PASS touch-action: "none" onto "auto"
+PASS touch-action: "auto" onto "none"
+PASS transform (type: transformList) has testAddition function
+PASS transform: translate
+PASS transform: rotate
+PASS transform: scale
+PASS transform: skew
+PASS transform: rotate on translate
+PASS transform: translate on rotate
+PASS transform: matrix
+PASS transform: rotate3d
+PASS transform: matrix3d
+PASS transform: non-invertible matrices
+PASS transform: non-invertible matrices in matched transform lists
+PASS transform: non-invertible matrices in mismatched transform lists
+PASS transform-box (type: discrete) has testAddition function
+FAIL transform-box: "border-box" onto "fill-box" assert_equals: The value should be border-box at 0ms expected "border-box" but got "view-box"
+PASS transform-box: "fill-box" onto "border-box"
+PASS transform-style (type: discrete) has testAddition function
+PASS transform-style: "preserve-3d" onto "flat"
+PASS transform-style: "flat" onto "preserve-3d"
+PASS rotate (type: rotateList) has testAddition function
+PASS rotate without rotation axes
+PASS rotate with underlying transform
+FAIL rotate with different rotation axes assert_approx_equals: expected 0.57735 0.57735 0.57735 135deg but got 1 1 1 135deg: The value should be 0.57735 0.57735 0.57735 135deg at 500ms but got 1 1 1 135deg expected 0.57735 +/- 0.0001 but got 1
+PASS translate (type: translateList) has testAddition function
+PASS translate
+PASS translate with underlying transform
+FAIL translate with underlying percentage value assert_equals: The value should be -150px at 0ms expected "-150px" but got "calc(-200px + 50%)"
+PASS scale (type: scaleList) has testAddition function
+FAIL scale with two unspecified values assert_equals: The value should be -6 at 0ms expected "-6" but got "-6 2"
+PASS scale with one unspecified value
+PASS scale
+PASS unicode-bidi (type: discrete) has testAddition function
+PASS unicode-bidi: "bidi-override" onto "embed"
+PASS unicode-bidi: "embed" onto "bidi-override"
+PASS vector-effect (type: discrete) has testAddition function
+PASS vector-effect: "non-scaling-stroke" onto "none"
+PASS vector-effect: "none" onto "non-scaling-stroke"
+PASS visibility (type: visibility) has testAddition function
+FAIL visibility: onto "visible" assert_equals: The value should be visible at 1000ms expected "visible" but got "hidden"
+PASS visibility: onto "hidden"
+PASS white-space (type: discrete) has testAddition function
+PASS white-space: "nowrap" onto "pre"
+PASS white-space: "pre" onto "nowrap"
+PASS word-break (type: discrete) has testAddition function
+PASS word-break: "break-all" onto "keep-all"
+PASS word-break: "keep-all" onto "break-all"
+PASS word-spacing (type: lengthPercentageOrCalc) has testAddition function
+PASS word-spacing: length
+PASS word-spacing: length of rem
+FAIL word-spacing: percentage assert_equals: The value should be 130% at 0ms expected "130%" but got "0px"
+FAIL word-spacing: units "%" onto "px" assert_equals: The value should be calc(10px + 10%) at 0ms expected "calc(10px + 10%)" but got "10px"
+FAIL word-spacing: units "px" onto "%" assert_equals: The value should be calc(10px + 10%) at 0ms expected "calc(10px + 10%)" but got "10px"
+FAIL word-spacing: units "rem" onto "%" assert_equals: The value should be calc(20px + 10%) at 0ms expected "calc(20px + 10%)" but got "20px"
+FAIL word-spacing: units "%" onto "rem" assert_equals: The value should be calc(20px + 10%) at 0ms expected "calc(20px + 10%)" but got "20px"
+PASS word-spacing: units "rem" onto "em"
+PASS word-spacing: units "em" onto "rem"
+FAIL word-spacing: units "calc" onto "px" assert_equals: The value should be calc(30px + 20%) at 0ms expected "calc(30px + 20%)" but got "10px"
+FAIL word-spacing: calc assert_equals: The value should be calc(30px + 30%) at 0ms expected "calc(30px + 30%)" but got "0px"
+PASS will-change (type: discrete) has testAddition function
+PASS will-change: "contents" onto "scroll-position"
+PASS will-change: "scroll-position" onto "contents"
+PASS writing-mode (type: discrete) has testAddition function
+FAIL writing-mode: "sideways-rl" onto "vertical-rl" assert_equals: The value should be sideways-rl at 0ms expected "sideways-rl" but got "vertical-rl"
+PASS writing-mode: "vertical-rl" onto "sideways-rl"
+Harness: the test ran to completion.
+
diff --git a/third_party/WebKit/LayoutTests/external/wpt/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt
new file mode 100644
index 0000000..160e564
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt
@@ -0,0 +1,813 @@
+This is a testharness.js-based test.
+Found 809 tests; 649 PASS, 160 FAIL, 0 TIMEOUT, 0 NOTRUN.
+PASS align-content (type: discrete) has testInterpolation function
+PASS align-content uses discrete animation when animating between "flex-start" and "flex-end" with linear easing
+PASS align-content uses discrete animation when animating between "flex-start" and "flex-end" with effect easing
+PASS align-content uses discrete animation when animating between "flex-start" and "flex-end" with keyframe easing
+PASS align-items (type: discrete) has testInterpolation function
+PASS align-items uses discrete animation when animating between "flex-start" and "flex-end" with linear easing
+PASS align-items uses discrete animation when animating between "flex-start" and "flex-end" with effect easing
+PASS align-items uses discrete animation when animating between "flex-start" and "flex-end" with keyframe easing
+PASS align-self (type: discrete) has testInterpolation function
+PASS align-self uses discrete animation when animating between "flex-start" and "flex-end" with linear easing
+PASS align-self uses discrete animation when animating between "flex-start" and "flex-end" with effect easing
+PASS align-self uses discrete animation when animating between "flex-start" and "flex-end" with keyframe easing
+PASS backface-visibility (type: discrete) has testInterpolation function
+PASS backface-visibility uses discrete animation when animating between "visible" and "hidden" with linear easing
+PASS backface-visibility uses discrete animation when animating between "visible" and "hidden" with effect easing
+PASS backface-visibility uses discrete animation when animating between "visible" and "hidden" with keyframe easing
+PASS background-attachment (type: discrete) has testInterpolation function
+PASS background-attachment uses discrete animation when animating between "fixed" and "local" with linear easing
+PASS background-attachment uses discrete animation when animating between "fixed" and "local" with effect easing
+PASS background-attachment uses discrete animation when animating between "fixed" and "local" with keyframe easing
+PASS background-color (type: color) has testInterpolation function
+PASS background-color supports animating as color of rgb()
+PASS background-color supports animating as color of #RGB
+PASS background-color supports animating as color of hsl()
+PASS background-color supports animating as color of #RGBa
+PASS background-color supports animating as color of rgba()
+PASS background-color supports animating as color of hsla()
+PASS background-blend-mode (type: discrete) has testInterpolation function
+PASS background-blend-mode uses discrete animation when animating between "multiply" and "screen" with linear easing
+PASS background-blend-mode uses discrete animation when animating between "multiply" and "screen" with effect easing
+PASS background-blend-mode uses discrete animation when animating between "multiply" and "screen" with keyframe easing
+PASS background-clip (type: discrete) has testInterpolation function
+PASS background-clip uses discrete animation when animating between "padding-box" and "content-box" with linear easing
+PASS background-clip uses discrete animation when animating between "padding-box" and "content-box" with effect easing
+PASS background-clip uses discrete animation when animating between "padding-box" and "content-box" with keyframe easing
+PASS background-image (type: discrete) has testInterpolation function
+FAIL background-image uses discrete animation when animating between "url("http://localhost/test-1")" and "url("http://localhost/test-2")" with linear easing assert_equals: The value should be url("http://localhost/test-1") at 499ms expected "url(\"http://localhost/test-1\")" but got "-webkit-cross-fade(url(\"http://localhost/test-1\"), url(\"http://localhost/test-2\"), 0.499)"
+FAIL background-image uses discrete animation when animating between "url("http://localhost/test-1")" and "url("http://localhost/test-2")" with effect easing assert_equals: The value should be url("http://localhost/test-1") at 940ms expected "url(\"http://localhost/test-1\")" but got "-webkit-cross-fade(url(\"http://localhost/test-1\"), url(\"http://localhost/test-2\"), 0.427878)"
+FAIL background-image uses discrete animation when animating between "url("http://localhost/test-1")" and "url("http://localhost/test-2")" with keyframe easing assert_equals: The value should be url("http://localhost/test-1") at 940ms expected "url(\"http://localhost/test-1\")" but got "-webkit-cross-fade(url(\"http://localhost/test-1\"), url(\"http://localhost/test-2\"), 0.427878)"
+PASS background-origin (type: discrete) has testInterpolation function
+PASS background-origin uses discrete animation when animating between "padding-box" and "content-box" with linear easing
+PASS background-origin uses discrete animation when animating between "padding-box" and "content-box" with effect easing
+PASS background-origin uses discrete animation when animating between "padding-box" and "content-box" with keyframe easing
+PASS background-repeat (type: discrete) has testInterpolation function
+PASS background-repeat uses discrete animation when animating between "space" and "round" with linear easing
+PASS background-repeat uses discrete animation when animating between "space" and "round" with effect easing
+PASS background-repeat uses discrete animation when animating between "space" and "round" with keyframe easing
+PASS border-bottom-color (type: color) has testInterpolation function
+PASS border-bottom-color supports animating as color of rgb()
+PASS border-bottom-color supports animating as color of #RGB
+PASS border-bottom-color supports animating as color of hsl()
+PASS border-bottom-color supports animating as color of #RGBa
+PASS border-bottom-color supports animating as color of rgba()
+PASS border-bottom-color supports animating as color of hsla()
+PASS border-bottom-style (type: discrete) has testInterpolation function
+PASS border-bottom-style uses discrete animation when animating between "dotted" and "solid" with linear easing
+PASS border-bottom-style uses discrete animation when animating between "dotted" and "solid" with effect easing
+PASS border-bottom-style uses discrete animation when animating between "dotted" and "solid" with keyframe easing
+PASS border-bottom-width (type: length) has testInterpolation function
+PASS border-bottom-width supports animating as a length
+PASS border-bottom-width supports animating as a length of rem
+PASS border-collapse (type: discrete) has testInterpolation function
+PASS border-collapse uses discrete animation when animating between "collapse" and "separate" with linear easing
+PASS border-collapse uses discrete animation when animating between "collapse" and "separate" with effect easing
+PASS border-collapse uses discrete animation when animating between "collapse" and "separate" with keyframe easing
+PASS border-image-outset (type: discrete) has testInterpolation function
+FAIL border-image-outset uses discrete animation when animating between "1 2 3 4" and "5 6 7 8" with linear easing assert_equals: The value should be 1 2 3 4 at 499ms expected "1 2 3 4" but got "2.996 3.996 4.996 5.996"
+FAIL border-image-outset uses discrete animation when animating between "1 2 3 4" and "5 6 7 8" with effect easing assert_equals: The value should be 1 2 3 4 at 940ms expected "1 2 3 4" but got "2.71151 3.71151 4.71151 5.71151"
+FAIL border-image-outset uses discrete animation when animating between "1 2 3 4" and "5 6 7 8" with keyframe easing assert_equals: The value should be 1 2 3 4 at 940ms expected "1 2 3 4" but got "2.71151 3.71151 4.71151 5.71151"
+PASS border-image-repeat (type: discrete) has testInterpolation function
+FAIL border-image-repeat uses discrete animation when animating between "stretch stretch" and "repeat repeat" with linear easing assert_equals: The value should be stretch stretch at 0ms expected "stretch stretch" but got "stretch"
+FAIL border-image-repeat uses discrete animation when animating between "stretch stretch" and "repeat repeat" with effect easing assert_equals: The value should be stretch stretch at 0ms expected "stretch stretch" but got "stretch"
+FAIL border-image-repeat uses discrete animation when animating between "stretch stretch" and "repeat repeat" with keyframe easing assert_equals: The value should be stretch stretch at 0ms expected "stretch stretch" but got "stretch"
+PASS border-image-slice (type: discrete) has testInterpolation function
+FAIL border-image-slice uses discrete animation when animating between "1 2 3 4" and "5 6 7 8" with linear easing assert_equals: The value should be 1 2 3 4 at 499ms expected "1 2 3 4" but got "2.996 3.996 4.996 5.996"
+FAIL border-image-slice uses discrete animation when animating between "1 2 3 4" and "5 6 7 8" with effect easing assert_equals: The value should be 1 2 3 4 at 940ms expected "1 2 3 4" but got "2.71151 3.71151 4.71151 5.71151"
+FAIL border-image-slice uses discrete animation when animating between "1 2 3 4" and "5 6 7 8" with keyframe easing assert_equals: The value should be 1 2 3 4 at 940ms expected "1 2 3 4" but got "2.71151 3.71151 4.71151 5.71151"
+PASS border-image-source (type: discrete) has testInterpolation function
+FAIL border-image-source uses discrete animation when animating between "url("http://localhost/test-1")" and "url("http://localhost/test-2")" with linear easing assert_equals: The value should be url("http://localhost/test-1") at 499ms expected "url(\"http://localhost/test-1\")" but got "-webkit-cross-fade(url(\"http://localhost/test-1\"), url(\"http://localhost/test-2\"), 0.499)"
+FAIL border-image-source uses discrete animation when animating between "url("http://localhost/test-1")" and "url("http://localhost/test-2")" with effect easing assert_equals: The value should be url("http://localhost/test-1") at 940ms expected "url(\"http://localhost/test-1\")" but got "-webkit-cross-fade(url(\"http://localhost/test-1\"), url(\"http://localhost/test-2\"), 0.427878)"
+FAIL border-image-source uses discrete animation when animating between "url("http://localhost/test-1")" and "url("http://localhost/test-2")" with keyframe easing assert_equals: The value should be url("http://localhost/test-1") at 940ms expected "url(\"http://localhost/test-1\")" but got "-webkit-cross-fade(url(\"http://localhost/test-1\"), url(\"http://localhost/test-2\"), 0.427878)"
+PASS border-image-width (type: discrete) has testInterpolation function
+FAIL border-image-width uses discrete animation when animating between "1 2 3 4" and "5 6 7 8" with linear easing assert_equals: The value should be 1 2 3 4 at 499ms expected "1 2 3 4" but got "2.996 3.996 4.996 5.996"
+FAIL border-image-width uses discrete animation when animating between "1 2 3 4" and "5 6 7 8" with effect easing assert_equals: The value should be 1 2 3 4 at 940ms expected "1 2 3 4" but got "2.71151 3.71151 4.71151 5.71151"
+FAIL border-image-width uses discrete animation when animating between "1 2 3 4" and "5 6 7 8" with keyframe easing assert_equals: The value should be 1 2 3 4 at 940ms expected "1 2 3 4" but got "2.71151 3.71151 4.71151 5.71151"
+PASS border-left-color (type: color) has testInterpolation function
+PASS border-left-color supports animating as color of rgb()
+PASS border-left-color supports animating as color of #RGB
+PASS border-left-color supports animating as color of hsl()
+PASS border-left-color supports animating as color of #RGBa
+PASS border-left-color supports animating as color of rgba()
+PASS border-left-color supports animating as color of hsla()
+PASS border-left-style (type: discrete) has testInterpolation function
+PASS border-left-style uses discrete animation when animating between "dotted" and "solid" with linear easing
+PASS border-left-style uses discrete animation when animating between "dotted" and "solid" with effect easing
+PASS border-left-style uses discrete animation when animating between "dotted" and "solid" with keyframe easing
+PASS border-left-width (type: length) has testInterpolation function
+PASS border-left-width supports animating as a length
+PASS border-left-width supports animating as a length of rem
+PASS border-right-color (type: color) has testInterpolation function
+PASS border-right-color supports animating as color of rgb()
+PASS border-right-color supports animating as color of #RGB
+PASS border-right-color supports animating as color of hsl()
+PASS border-right-color supports animating as color of #RGBa
+PASS border-right-color supports animating as color of rgba()
+PASS border-right-color supports animating as color of hsla()
+PASS border-right-style (type: discrete) has testInterpolation function
+PASS border-right-style uses discrete animation when animating between "dotted" and "solid" with linear easing
+PASS border-right-style uses discrete animation when animating between "dotted" and "solid" with effect easing
+PASS border-right-style uses discrete animation when animating between "dotted" and "solid" with keyframe easing
+PASS border-right-width (type: length) has testInterpolation function
+PASS border-right-width supports animating as a length
+PASS border-right-width supports animating as a length of rem
+PASS border-spacing (type: lengthPair) has testInterpolation function
+PASS border-spacing supports animating as a length pair
+PASS border-spacing supports animating as a length pair of rem
+PASS border-top-color (type: color) has testInterpolation function
+PASS border-top-color supports animating as color of rgb()
+PASS border-top-color supports animating as color of #RGB
+PASS border-top-color supports animating as color of hsl()
+PASS border-top-color supports animating as color of #RGBa
+PASS border-top-color supports animating as color of rgba()
+PASS border-top-color supports animating as color of hsla()
+PASS border-top-style (type: discrete) has testInterpolation function
+PASS border-top-style uses discrete animation when animating between "dotted" and "solid" with linear easing
+PASS border-top-style uses discrete animation when animating between "dotted" and "solid" with effect easing
+PASS border-top-style uses discrete animation when animating between "dotted" and "solid" with keyframe easing
+PASS border-top-width (type: length) has testInterpolation function
+PASS border-top-width supports animating as a length
+PASS border-top-width supports animating as a length of rem
+PASS box-decoration-break (type: discrete) has testInterpolation function
+FAIL box-decoration-break uses discrete animation when animating between "slice" and "clone" with linear easing assert_equals: The value should be slice at 0ms expected (string) "slice" but got (undefined) undefined
+FAIL box-decoration-break uses discrete animation when animating between "slice" and "clone" with effect easing assert_equals: The value should be slice at 0ms expected (string) "slice" but got (undefined) undefined
+FAIL box-decoration-break uses discrete animation when animating between "slice" and "clone" with keyframe easing assert_equals: The value should be slice at 0ms expected (string) "slice" but got (undefined) undefined
+PASS box-shadow (type: boxShadowList) has testInterpolation function
+PASS box-shadow: from none to other
+PASS box-shadow: from other to none
+PASS box-shadow: single shadow
+PASS box-shadow: shadow list
+PASS box-shadow: mismatched list length (from shorter to longer)
+PASS box-shadow: mismatched list length (from longer to shorter)
+PASS box-shadow: with currentcolor
+PASS box-sizing (type: discrete) has testInterpolation function
+PASS box-sizing uses discrete animation when animating between "content-box" and "border-box" with linear easing
+PASS box-sizing uses discrete animation when animating between "content-box" and "border-box" with effect easing
+PASS box-sizing uses discrete animation when animating between "content-box" and "border-box" with keyframe easing
+PASS caption-side (type: discrete) has testInterpolation function
+PASS caption-side uses discrete animation when animating between "top" and "bottom" with linear easing
+PASS caption-side uses discrete animation when animating between "top" and "bottom" with effect easing
+PASS caption-side uses discrete animation when animating between "top" and "bottom" with keyframe easing
+PASS caret-color (type: color) has testInterpolation function
+PASS caret-color supports animating as color of rgb()
+PASS caret-color supports animating as color of #RGB
+PASS caret-color supports animating as color of hsl()
+PASS caret-color supports animating as color of #RGBa
+PASS caret-color supports animating as color of rgba()
+PASS caret-color supports animating as color of hsla()
+PASS clear (type: discrete) has testInterpolation function
+PASS clear uses discrete animation when animating between "left" and "right" with linear easing
+PASS clear uses discrete animation when animating between "left" and "right" with effect easing
+PASS clear uses discrete animation when animating between "left" and "right" with keyframe easing
+PASS clip (type: rect) has testInterpolation function
+PASS clip supports animating as a rect
+PASS clip (type: discrete) has testInterpolation function
+PASS clip uses discrete animation when animating between "rect(10px, 10px, 10px, 10px)" and "auto" with linear easing
+PASS clip uses discrete animation when animating between "rect(10px, 10px, 10px, 10px)" and "auto" with effect easing
+PASS clip uses discrete animation when animating between "rect(10px, 10px, 10px, 10px)" and "auto" with keyframe easing
+PASS clip uses discrete animation when animating between "rect(10px, 10px, 10px, 10px)" and "rect(10px, 10px, 10px, auto)" with linear easing
+PASS clip uses discrete animation when animating between "rect(10px, 10px, 10px, 10px)" and "rect(10px, 10px, 10px, auto)" with effect easing
+PASS clip uses discrete animation when animating between "rect(10px, 10px, 10px, 10px)" and "rect(10px, 10px, 10px, auto)" with keyframe easing
+PASS clip-rule (type: discrete) has testInterpolation function
+PASS clip-rule uses discrete animation when animating between "evenodd" and "nonzero" with linear easing
+PASS clip-rule uses discrete animation when animating between "evenodd" and "nonzero" with effect easing
+PASS clip-rule uses discrete animation when animating between "evenodd" and "nonzero" with keyframe easing
+PASS color (type: color) has testInterpolation function
+PASS color supports animating as color of rgb()
+PASS color supports animating as color of #RGB
+PASS color supports animating as color of hsl()
+PASS color supports animating as color of #RGBa
+PASS color supports animating as color of rgba()
+PASS color supports animating as color of hsla()
+PASS color-adjust (type: discrete) has testInterpolation function
+FAIL color-adjust uses discrete animation when animating between "economy" and "exact" with linear easing assert_equals: The value should be economy at 0ms expected (string) "economy" but got (undefined) undefined
+FAIL color-adjust uses discrete animation when animating between "economy" and "exact" with effect easing assert_equals: The value should be economy at 0ms expected (string) "economy" but got (undefined) undefined
+FAIL color-adjust uses discrete animation when animating between "economy" and "exact" with keyframe easing assert_equals: The value should be economy at 0ms expected (string) "economy" but got (undefined) undefined
+PASS color-interpolation (type: discrete) has testInterpolation function
+FAIL color-interpolation uses discrete animation when animating between "linearRGB" and "auto" with linear easing assert_equals: The value should be linearrgb at 0ms expected "linearrgb" but got "linearRGB"
+FAIL color-interpolation uses discrete animation when animating between "linearRGB" and "auto" with effect easing assert_equals: The value should be linearrgb at 0ms expected "linearrgb" but got "linearRGB"
+FAIL color-interpolation uses discrete animation when animating between "linearRGB" and "auto" with keyframe easing assert_equals: The value should be linearrgb at 0ms expected "linearrgb" but got "linearRGB"
+PASS color-interpolation-filters (type: discrete) has testInterpolation function
+FAIL color-interpolation-filters uses discrete animation when animating between "sRGB" and "linearRGB" with linear easing assert_equals: The value should be srgb at 0ms expected "srgb" but got "sRGB"
+FAIL color-interpolation-filters uses discrete animation when animating between "sRGB" and "linearRGB" with effect easing assert_equals: The value should be srgb at 0ms expected "srgb" but got "sRGB"
+FAIL color-interpolation-filters uses discrete animation when animating between "sRGB" and "linearRGB" with keyframe easing assert_equals: The value should be srgb at 0ms expected "srgb" but got "sRGB"
+PASS column-count (type: positiveInteger) has testInterpolation function
+PASS column-count supports animating as a positive integer
+PASS column-count (type: discrete) has testInterpolation function
+PASS column-count uses discrete animation when animating between "auto" and "10" with linear easing
+PASS column-count uses discrete animation when animating between "auto" and "10" with effect easing
+PASS column-count uses discrete animation when animating between "auto" and "10" with keyframe easing
+PASS column-gap (type: length) has testInterpolation function
+PASS column-gap supports animating as a length
+PASS column-gap supports animating as a length of rem
+PASS column-gap (type: discrete) has testInterpolation function
+PASS column-gap uses discrete animation when animating between "normal" and "200px" with linear easing
+PASS column-gap uses discrete animation when animating between "normal" and "200px" with effect easing
+PASS column-gap uses discrete animation when animating between "normal" and "200px" with keyframe easing
+PASS column-rule-color (type: color) has testInterpolation function
+PASS column-rule-color supports animating as color of rgb()
+PASS column-rule-color supports animating as color of #RGB
+PASS column-rule-color supports animating as color of hsl()
+PASS column-rule-color supports animating as color of #RGBa
+PASS column-rule-color supports animating as color of rgba()
+PASS column-rule-color supports animating as color of hsla()
+PASS column-fill (type: discrete) has testInterpolation function
+PASS column-fill uses discrete animation when animating between "auto" and "balance" with linear easing
+PASS column-fill uses discrete animation when animating between "auto" and "balance" with effect easing
+PASS column-fill uses discrete animation when animating between "auto" and "balance" with keyframe easing
+PASS column-rule-style (type: discrete) has testInterpolation function
+PASS column-rule-style uses discrete animation when animating between "none" and "dotted" with linear easing
+PASS column-rule-style uses discrete animation when animating between "none" and "dotted" with effect easing
+PASS column-rule-style uses discrete animation when animating between "none" and "dotted" with keyframe easing
+PASS column-rule-width (type: length) has testInterpolation function
+PASS column-rule-width supports animating as a length
+PASS column-rule-width supports animating as a length of rem
+PASS column-width (type: length) has testInterpolation function
+PASS column-width supports animating as a length
+PASS column-width supports animating as a length of rem
+PASS column-width (type: discrete) has testInterpolation function
+PASS column-width uses discrete animation when animating between "auto" and "1px" with linear easing
+PASS column-width uses discrete animation when animating between "auto" and "1px" with effect easing
+PASS column-width uses discrete animation when animating between "auto" and "1px" with keyframe easing
+PASS contain (type: discrete) has testInterpolation function
+PASS contain uses discrete animation when animating between "strict" and "none" with linear easing
+PASS contain uses discrete animation when animating between "strict" and "none" with effect easing
+PASS contain uses discrete animation when animating between "strict" and "none" with keyframe easing
+PASS content (type: discrete) has testInterpolation function
+FAIL content uses discrete animation when animating between ""a"" and ""b"" with linear easing assert_equals: expected (string) "::before" but got (undefined) undefined
+FAIL content uses discrete animation when animating between ""a"" and ""b"" with effect easing assert_equals: expected (string) "::before" but got (undefined) undefined
+FAIL content uses discrete animation when animating between ""a"" and ""b"" with keyframe easing assert_equals: expected (string) "::before" but got (undefined) undefined
+PASS counter-increment (type: discrete) has testInterpolation function
+PASS counter-increment uses discrete animation when animating between "ident-1 1" and "ident-2 2" with linear easing
+PASS counter-increment uses discrete animation when animating between "ident-1 1" and "ident-2 2" with effect easing
+PASS counter-increment uses discrete animation when animating between "ident-1 1" and "ident-2 2" with keyframe easing
+PASS counter-reset (type: discrete) has testInterpolation function
+PASS counter-reset uses discrete animation when animating between "ident-1 1" and "ident-2 2" with linear easing
+PASS counter-reset uses discrete animation when animating between "ident-1 1" and "ident-2 2" with effect easing
+PASS counter-reset uses discrete animation when animating between "ident-1 1" and "ident-2 2" with keyframe easing
+PASS cursor (type: discrete) has testInterpolation function
+PASS cursor uses discrete animation when animating between "pointer" and "wait" with linear easing
+PASS cursor uses discrete animation when animating between "pointer" and "wait" with effect easing
+PASS cursor uses discrete animation when animating between "pointer" and "wait" with keyframe easing
+PASS direction (type: discrete) has testInterpolation function
+PASS direction uses discrete animation when animating between "ltr" and "rtl" with linear easing
+PASS direction uses discrete animation when animating between "ltr" and "rtl" with effect easing
+PASS direction uses discrete animation when animating between "ltr" and "rtl" with keyframe easing
+PASS dominant-baseline (type: discrete) has testInterpolation function
+PASS dominant-baseline uses discrete animation when animating between "ideographic" and "alphabetic" with linear easing
+PASS dominant-baseline uses discrete animation when animating between "ideographic" and "alphabetic" with effect easing
+PASS dominant-baseline uses discrete animation when animating between "ideographic" and "alphabetic" with keyframe easing
+PASS empty-cells (type: discrete) has testInterpolation function
+PASS empty-cells uses discrete animation when animating between "show" and "hide" with linear easing
+PASS empty-cells uses discrete animation when animating between "show" and "hide" with effect easing
+PASS empty-cells uses discrete animation when animating between "show" and "hide" with keyframe easing
+PASS fill-opacity (type: opacity) has testInterpolation function
+PASS fill-opacity supports animating as a [0, 1] number
+PASS fill-rule (type: discrete) has testInterpolation function
+PASS fill-rule uses discrete animation when animating between "evenodd" and "nonzero" with linear easing
+PASS fill-rule uses discrete animation when animating between "evenodd" and "nonzero" with effect easing
+PASS fill-rule uses discrete animation when animating between "evenodd" and "nonzero" with keyframe easing
+PASS filter (type: filterList) has testInterpolation function
+PASS filter: blur function
+PASS filter: hue-rotate function with same unit(deg)
+FAIL filter: hue-rotate function with different unit(deg -> rad) assert_equals: The value should be hue-rotate(50.0873rad) at 500ms expected "hue-rotate(50.0873rad)" but got "hue-rotate(2869.79deg)"
+PASS filter: drop-shadow function
+PASS filter: percentage or numeric-specifiable functions (number value)
+PASS filter: percentage or numeric-specifiable functions (percentage value)
+PASS filter: interpolate different length of filter-function-list with function which lacuna value is 1
+PASS filter: interpolate different length of filter-function-list with function which lacuna value is 0
+FAIL filter: interpolate different length of filter-function-list with drop-shadow function assert_equals: The value should be blur(5px) drop-shadow(rgba(85, 0, 170, 0.6) 5px 5px 5px at 500ms expected "blur(5px) drop-shadow(rgba(85, 0, 170, 0.6) 5px 5px 5px" but got "blur(5px) drop-shadow(rgba(0, 0, 255, 0.4) 5px 5px 5px)"
+PASS filter: interpolate from none
+PASS filter: url function (interpoalte as discrete)
+PASS flex-basis (type: lengthPercentageOrCalc) has testInterpolation function
+PASS flex-basis supports animating as a length
+PASS flex-basis supports animating as a length of rem
+PASS flex-basis supports animating as a percentage
+PASS flex-basis supports animating as combination units "px" and "%"
+PASS flex-basis supports animating as combination units "%" and "em"
+PASS flex-basis supports animating as combination units "em" and "rem"
+PASS flex-basis supports animating as combination units "px" and "calc"
+PASS flex-basis supports animating as a calc
+PASS flex-basis (type: discrete) has testInterpolation function
+PASS flex-basis uses discrete animation when animating between "auto" and "10px" with linear easing
+PASS flex-basis uses discrete animation when animating between "auto" and "10px" with effect easing
+PASS flex-basis uses discrete animation when animating between "auto" and "10px" with keyframe easing
+PASS flex-direction (type: discrete) has testInterpolation function
+PASS flex-direction uses discrete animation when animating between "row" and "row-reverse" with linear easing
+PASS flex-direction uses discrete animation when animating between "row" and "row-reverse" with effect easing
+PASS flex-direction uses discrete animation when animating between "row" and "row-reverse" with keyframe easing
+PASS flex-grow (type: positiveNumber) has testInterpolation function
+PASS flex-grow supports animating as a positive number
+PASS flex-shrink (type: positiveNumber) has testInterpolation function
+PASS flex-shrink supports animating as a positive number
+PASS flex-wrap (type: discrete) has testInterpolation function
+PASS flex-wrap uses discrete animation when animating between "nowrap" and "wrap" with linear easing
+PASS flex-wrap uses discrete animation when animating between "nowrap" and "wrap" with effect easing
+PASS flex-wrap uses discrete animation when animating between "nowrap" and "wrap" with keyframe easing
+PASS flood-color (type: color) has testInterpolation function
+PASS flood-color supports animating as color of rgb()
+PASS flood-color supports animating as color of #RGB
+PASS flood-color supports animating as color of hsl()
+PASS flood-color supports animating as color of #RGBa
+PASS flood-color supports animating as color of rgba()
+PASS flood-color supports animating as color of hsla()
+PASS flood-opacity (type: opacity) has testInterpolation function
+PASS flood-opacity supports animating as a [0, 1] number
+PASS font-stretch (type: fontStretch) has testInterpolation function
+FAIL font-stretch supports animating as a font-stretch (adjacent values) assert_equals: The value should be ultra-condensed at 499ms expected "ultra-condensed" but got "50%"
+FAIL font-stretch supports animating as a font-stretch (between value) assert_equals: The value should be extra-condensed at 500ms expected "extra-condensed" but got "75%"
+PASS font-style (type: discrete) has testInterpolation function
+FAIL font-style uses discrete animation when animating between "italic" and "oblique" with linear easing assert_equals: The value should be oblique at 500ms expected "oblique" but got "italic"
+FAIL font-style uses discrete animation when animating between "italic" and "oblique" with effect easing assert_equals: The value should be oblique at 960ms expected "oblique" but got "italic"
+FAIL font-style uses discrete animation when animating between "italic" and "oblique" with keyframe easing assert_equals: The value should be oblique at 960ms expected "oblique" but got "italic"
+PASS float (type: discrete) has testInterpolation function
+PASS float uses discrete animation when animating between "left" and "right" with linear easing
+PASS float uses discrete animation when animating between "left" and "right" with effect easing
+PASS float uses discrete animation when animating between "left" and "right" with keyframe easing
+PASS font-family (type: discrete) has testInterpolation function
+PASS font-family uses discrete animation when animating between "helvetica" and "verdana" with linear easing
+PASS font-family uses discrete animation when animating between "helvetica" and "verdana" with effect easing
+PASS font-family uses discrete animation when animating between "helvetica" and "verdana" with keyframe easing
+PASS font-feature-settings (type: discrete) has testInterpolation function
+PASS font-feature-settings uses discrete animation when animating between ""liga" 5" and "normal" with linear easing
+PASS font-feature-settings uses discrete animation when animating between ""liga" 5" and "normal" with effect easing
+PASS font-feature-settings uses discrete animation when animating between ""liga" 5" and "normal" with keyframe easing
+PASS font-kerning (type: discrete) has testInterpolation function
+PASS font-kerning uses discrete animation when animating between "auto" and "normal" with linear easing
+PASS font-kerning uses discrete animation when animating between "auto" and "normal" with effect easing
+PASS font-kerning uses discrete animation when animating between "auto" and "normal" with keyframe easing
+PASS font-language-override (type: discrete) has testInterpolation function
+FAIL font-language-override uses discrete animation when animating between ""eng"" and "normal" with linear easing assert_equals: The value should be "eng" at 0ms expected (string) "\"eng\"" but got (undefined) undefined
+FAIL font-language-override uses discrete animation when animating between ""eng"" and "normal" with effect easing assert_equals: The value should be "eng" at 0ms expected (string) "\"eng\"" but got (undefined) undefined
+FAIL font-language-override uses discrete animation when animating between ""eng"" and "normal" with keyframe easing assert_equals: The value should be "eng" at 0ms expected (string) "\"eng\"" but got (undefined) undefined
+PASS font-synthesis (type: discrete) has testInterpolation function
+FAIL font-synthesis uses discrete animation when animating between "none" and "weight style" with linear easing assert_equals: The value should be none at 0ms expected (string) "none" but got (undefined) undefined
+FAIL font-synthesis uses discrete animation when animating between "none" and "weight style" with effect easing assert_equals: The value should be none at 0ms expected (string) "none" but got (undefined) undefined
+FAIL font-synthesis uses discrete animation when animating between "none" and "weight style" with keyframe easing assert_equals: The value should be none at 0ms expected (string) "none" but got (undefined) undefined
+PASS font-variant-alternates (type: discrete) has testInterpolation function
+FAIL font-variant-alternates uses discrete animation when animating between "swash(unknown)" and "stylistic(unknown)" with linear easing assert_equals: The value should be swash(unknown) at 0ms expected (string) "swash(unknown)" but got (undefined) undefined
+FAIL font-variant-alternates uses discrete animation when animating between "swash(unknown)" and "stylistic(unknown)" with effect easing assert_equals: The value should be swash(unknown) at 0ms expected (string) "swash(unknown)" but got (undefined) undefined
+FAIL font-variant-alternates uses discrete animation when animating between "swash(unknown)" and "stylistic(unknown)" with keyframe easing assert_equals: The value should be swash(unknown) at 0ms expected (string) "swash(unknown)" but got (undefined) undefined
+PASS font-variant-caps (type: discrete) has testInterpolation function
+PASS font-variant-caps uses discrete animation when animating between "small-caps" and "unicase" with linear easing
+PASS font-variant-caps uses discrete animation when animating between "small-caps" and "unicase" with effect easing
+PASS font-variant-caps uses discrete animation when animating between "small-caps" and "unicase" with keyframe easing
+PASS font-variant-east-asian (type: discrete) has testInterpolation function
+PASS font-variant-east-asian uses discrete animation when animating between "full-width" and "proportional-width" with linear easing
+PASS font-variant-east-asian uses discrete animation when animating between "full-width" and "proportional-width" with effect easing
+PASS font-variant-east-asian uses discrete animation when animating between "full-width" and "proportional-width" with keyframe easing
+PASS font-variant-ligatures (type: discrete) has testInterpolation function
+PASS font-variant-ligatures uses discrete animation when animating between "common-ligatures" and "no-common-ligatures" with linear easing
+PASS font-variant-ligatures uses discrete animation when animating between "common-ligatures" and "no-common-ligatures" with effect easing
+PASS font-variant-ligatures uses discrete animation when animating between "common-ligatures" and "no-common-ligatures" with keyframe easing
+PASS font-variant-numeric (type: discrete) has testInterpolation function
+PASS font-variant-numeric uses discrete animation when animating between "lining-nums" and "oldstyle-nums" with linear easing
+PASS font-variant-numeric uses discrete animation when animating between "lining-nums" and "oldstyle-nums" with effect easing
+PASS font-variant-numeric uses discrete animation when animating between "lining-nums" and "oldstyle-nums" with keyframe easing
+PASS font-variant-position (type: discrete) has testInterpolation function
+FAIL font-variant-position uses discrete animation when animating between "sub" and "super" with linear easing assert_equals: The value should be sub at 0ms expected (string) "sub" but got (undefined) undefined
+FAIL font-variant-position uses discrete animation when animating between "sub" and "super" with effect easing assert_equals: The value should be sub at 0ms expected (string) "sub" but got (undefined) undefined
+FAIL font-variant-position uses discrete animation when animating between "sub" and "super" with keyframe easing assert_equals: The value should be sub at 0ms expected (string) "sub" but got (undefined) undefined
+PASS font-variation-settings (type: fontVariationSettings) has testInterpolation function
+PASS font-variation-settings supports animation as float
+FAIL font-variation-settings supports animation as float with multiple tags assert_array_equals: The computed values should be "wdth" 2,"wght" 1.2 at 250ms property 0, expected "\"wdth\" 2" but got "\"wdth\" 1"
+FAIL font-variation-settings supports animation as float with multiple duplicate tags assert_array_equals: The computed values should be "wdth" 2,"wght" 1.2 at 250ms property 0, expected "\"wdth\" 2" but got "\"wdth\" 1"
+PASS font-variation-settings (type: discrete) has testInterpolation function
+PASS font-variation-settings uses discrete animation when animating between ""wght" 1.1, "wdth" 1" and ""wdth" 5" with linear easing
+PASS font-variation-settings uses discrete animation when animating between ""wght" 1.1, "wdth" 1" and ""wdth" 5" with effect easing
+PASS font-variation-settings uses discrete animation when animating between ""wght" 1.1, "wdth" 1" and ""wdth" 5" with keyframe easing
+PASS font-variation-settings uses discrete animation when animating between ""wdth" 5" and "normal" with linear easing
+PASS font-variation-settings uses discrete animation when animating between ""wdth" 5" and "normal" with effect easing
+PASS font-variation-settings uses discrete animation when animating between ""wdth" 5" and "normal" with keyframe easing
+PASS grid-auto-columns (type: discrete) has testInterpolation function
+PASS grid-auto-columns uses discrete animation when animating between "1px" and "5px" with linear easing
+PASS grid-auto-columns uses discrete animation when animating between "1px" and "5px" with effect easing
+PASS grid-auto-columns uses discrete animation when animating between "1px" and "5px" with keyframe easing
+PASS grid-auto-flow (type: discrete) has testInterpolation function
+PASS grid-auto-flow uses discrete animation when animating between "row" and "column" with linear easing
+PASS grid-auto-flow uses discrete animation when animating between "row" and "column" with effect easing
+PASS grid-auto-flow uses discrete animation when animating between "row" and "column" with keyframe easing
+PASS grid-auto-rows (type: discrete) has testInterpolation function
+PASS grid-auto-rows uses discrete animation when animating between "1px" and "5px" with linear easing
+PASS grid-auto-rows uses discrete animation when animating between "1px" and "5px" with effect easing
+PASS grid-auto-rows uses discrete animation when animating between "1px" and "5px" with keyframe easing
+PASS grid-column-end (type: discrete) has testInterpolation function
+PASS grid-column-end uses discrete animation when animating between "1" and "5" with linear easing
+PASS grid-column-end uses discrete animation when animating between "1" and "5" with effect easing
+PASS grid-column-end uses discrete animation when animating between "1" and "5" with keyframe easing
+PASS grid-column-start (type: discrete) has testInterpolation function
+PASS grid-column-start uses discrete animation when animating between "1" and "5" with linear easing
+PASS grid-column-start uses discrete animation when animating between "1" and "5" with effect easing
+PASS grid-column-start uses discrete animation when animating between "1" and "5" with keyframe easing
+PASS grid-row-end (type: discrete) has testInterpolation function
+PASS grid-row-end uses discrete animation when animating between "1" and "5" with linear easing
+PASS grid-row-end uses discrete animation when animating between "1" and "5" with effect easing
+PASS grid-row-end uses discrete animation when animating between "1" and "5" with keyframe easing
+PASS grid-row-start (type: discrete) has testInterpolation function
+PASS grid-row-start uses discrete animation when animating between "1" and "5" with linear easing
+PASS grid-row-start uses discrete animation when animating between "1" and "5" with effect easing
+PASS grid-row-start uses discrete animation when animating between "1" and "5" with keyframe easing
+PASS grid-template-areas (type: discrete) has testInterpolation function
+FAIL grid-template-areas uses discrete animation when animating between "". . a b" ". .a b"" and "none" with linear easing assert_equals: The value should be ". . a b" ". .a b" at 0ms expected "\". . a b\" \". .a b\"" but got "\". . a b\" \". . a b\""
+FAIL grid-template-areas uses discrete animation when animating between "". . a b" ". .a b"" and "none" with effect easing assert_equals: The value should be ". . a b" ". .a b" at 0ms expected "\". . a b\" \". .a b\"" but got "\". . a b\" \". . a b\""
+FAIL grid-template-areas uses discrete animation when animating between "". . a b" ". .a b"" and "none" with keyframe easing assert_equals: The value should be ". . a b" ". .a b" at 0ms expected "\". . a b\" \". .a b\"" but got "\". . a b\" \". . a b\""
+PASS grid-template-columns (type: discrete) has testInterpolation function
+PASS grid-template-columns uses discrete animation when animating between "1px" and "5px" with linear easing
+PASS grid-template-columns uses discrete animation when animating between "1px" and "5px" with effect easing
+PASS grid-template-columns uses discrete animation when animating between "1px" and "5px" with keyframe easing
+PASS grid-template-rows (type: discrete) has testInterpolation function
+PASS grid-template-rows uses discrete animation when animating between "1px" and "5px" with linear easing
+PASS grid-template-rows uses discrete animation when animating between "1px" and "5px" with effect easing
+PASS grid-template-rows uses discrete animation when animating between "1px" and "5px" with keyframe easing
+PASS hyphens (type: discrete) has testInterpolation function
+FAIL hyphens uses discrete animation when animating between "manual" and "auto" with linear easing assert_equals: The value should be auto at 500ms expected "auto" but got "manual"
+FAIL hyphens uses discrete animation when animating between "manual" and "auto" with effect easing assert_equals: The value should be auto at 960ms expected "auto" but got "manual"
+FAIL hyphens uses discrete animation when animating between "manual" and "auto" with keyframe easing assert_equals: The value should be auto at 960ms expected "auto" but got "manual"
+PASS image-orientation (type: discrete) has testInterpolation function
+FAIL image-orientation uses discrete animation when animating between "0deg" and "90deg" with linear easing assert_equals: The value should be 90deg at 500ms expected "90deg" but got "0deg"
+FAIL image-orientation uses discrete animation when animating between "0deg" and "90deg" with effect easing assert_equals: The value should be 90deg at 960ms expected "90deg" but got "0deg"
+FAIL image-orientation uses discrete animation when animating between "0deg" and "90deg" with keyframe easing assert_equals: The value should be 90deg at 960ms expected "90deg" but got "0deg"
+PASS ime-mode (type: discrete) has testInterpolation function
+FAIL ime-mode uses discrete animation when animating between "disabled" and "auto" with linear easing assert_equals: The value should be disabled at 0ms expected (string) "disabled" but got (undefined) undefined
+FAIL ime-mode uses discrete animation when animating between "disabled" and "auto" with effect easing assert_equals: The value should be disabled at 0ms expected (string) "disabled" but got (undefined) undefined
+FAIL ime-mode uses discrete animation when animating between "disabled" and "auto" with keyframe easing assert_equals: The value should be disabled at 0ms expected (string) "disabled" but got (undefined) undefined
+PASS initial-letter (type: discrete) has testInterpolation function
+FAIL initial-letter uses discrete animation when animating between "1 2" and "3 4" with linear easing assert_equals: The value should be 1 2 at 0ms expected (string) "1 2" but got (undefined) undefined
+FAIL initial-letter uses discrete animation when animating between "1 2" and "3 4" with effect easing assert_equals: The value should be 1 2 at 0ms expected (string) "1 2" but got (undefined) undefined
+FAIL initial-letter uses discrete animation when animating between "1 2" and "3 4" with keyframe easing assert_equals: The value should be 1 2 at 0ms expected (string) "1 2" but got (undefined) undefined
+PASS isolation (type: discrete) has testInterpolation function
+PASS isolation uses discrete animation when animating between "auto" and "isolate" with linear easing
+PASS isolation uses discrete animation when animating between "auto" and "isolate" with effect easing
+PASS isolation uses discrete animation when animating between "auto" and "isolate" with keyframe easing
+PASS justify-content (type: discrete) has testInterpolation function
+PASS justify-content uses discrete animation when animating between "start" and "end" with linear easing
+PASS justify-content uses discrete animation when animating between "start" and "end" with effect easing
+PASS justify-content uses discrete animation when animating between "start" and "end" with keyframe easing
+PASS justify-items (type: discrete) has testInterpolation function
+PASS justify-items uses discrete animation when animating between "start" and "end" with linear easing
+PASS justify-items uses discrete animation when animating between "start" and "end" with effect easing
+PASS justify-items uses discrete animation when animating between "start" and "end" with keyframe easing
+PASS justify-self (type: discrete) has testInterpolation function
+PASS justify-self uses discrete animation when animating between "start" and "end" with linear easing
+PASS justify-self uses discrete animation when animating between "start" and "end" with effect easing
+PASS justify-self uses discrete animation when animating between "start" and "end" with keyframe easing
+PASS letter-spacing (type: length) has testInterpolation function
+PASS letter-spacing supports animating as a length
+PASS letter-spacing supports animating as a length of rem
+PASS lighting-color (type: color) has testInterpolation function
+PASS lighting-color supports animating as color of rgb()
+PASS lighting-color supports animating as color of #RGB
+PASS lighting-color supports animating as color of hsl()
+PASS lighting-color supports animating as color of #RGBa
+PASS lighting-color supports animating as color of rgba()
+PASS lighting-color supports animating as color of hsla()
+PASS list-style-image (type: discrete) has testInterpolation function
+FAIL list-style-image uses discrete animation when animating between "url("http://localhost/test-1")" and "url("http://localhost/test-2")" with linear easing assert_equals: The value should be url("http://localhost/test-1") at 499ms expected "url(\"http://localhost/test-1\")" but got "-webkit-cross-fade(url(\"http://localhost/test-1\"), url(\"http://localhost/test-2\"), 0.499)"
+FAIL list-style-image uses discrete animation when animating between "url("http://localhost/test-1")" and "url("http://localhost/test-2")" with effect easing assert_equals: The value should be url("http://localhost/test-1") at 940ms expected "url(\"http://localhost/test-1\")" but got "-webkit-cross-fade(url(\"http://localhost/test-1\"), url(\"http://localhost/test-2\"), 0.427878)"
+FAIL list-style-image uses discrete animation when animating between "url("http://localhost/test-1")" and "url("http://localhost/test-2")" with keyframe easing assert_equals: The value should be url("http://localhost/test-1") at 940ms expected "url(\"http://localhost/test-1\")" but got "-webkit-cross-fade(url(\"http://localhost/test-1\"), url(\"http://localhost/test-2\"), 0.427878)"
+PASS list-style-position (type: discrete) has testInterpolation function
+PASS list-style-position uses discrete animation when animating between "inside" and "outside" with linear easing
+PASS list-style-position uses discrete animation when animating between "inside" and "outside" with effect easing
+PASS list-style-position uses discrete animation when animating between "inside" and "outside" with keyframe easing
+PASS list-style-type (type: discrete) has testInterpolation function
+PASS list-style-type uses discrete animation when animating between "circle" and "square" with linear easing
+PASS list-style-type uses discrete animation when animating between "circle" and "square" with effect easing
+PASS list-style-type uses discrete animation when animating between "circle" and "square" with keyframe easing
+PASS marker-end (type: discrete) has testInterpolation function
+FAIL marker-end uses discrete animation when animating between "url("http://localhost/test-1")" and "url("http://localhost/test-2")" with linear easing assert_equals: The value should be url("http://localhost/test-1") at 0ms expected "url(\"http://localhost/test-1\")" but got "none"
+FAIL marker-end uses discrete animation when animating between "url("http://localhost/test-1")" and "url("http://localhost/test-2")" with effect easing assert_equals: The value should be url("http://localhost/test-1") at 0ms expected "url(\"http://localhost/test-1\")" but got "none"
+FAIL marker-end uses discrete animation when animating between "url("http://localhost/test-1")" and "url("http://localhost/test-2")" with keyframe easing assert_equals: The value should be url("http://localhost/test-1") at 0ms expected "url(\"http://localhost/test-1\")" but got "none"
+PASS marker-mid (type: discrete) has testInterpolation function
+FAIL marker-mid uses discrete animation when animating between "url("http://localhost/test-1")" and "url("http://localhost/test-2")" with linear easing assert_equals: The value should be url("http://localhost/test-1") at 0ms expected "url(\"http://localhost/test-1\")" but got "none"
+FAIL marker-mid uses discrete animation when animating between "url("http://localhost/test-1")" and "url("http://localhost/test-2")" with effect easing assert_equals: The value should be url("http://localhost/test-1") at 0ms expected "url(\"http://localhost/test-1\")" but got "none"
+FAIL marker-mid uses discrete animation when animating between "url("http://localhost/test-1")" and "url("http://localhost/test-2")" with keyframe easing assert_equals: The value should be url("http://localhost/test-1") at 0ms expected "url(\"http://localhost/test-1\")" but got "none"
+PASS marker-start (type: discrete) has testInterpolation function
+FAIL marker-start uses discrete animation when animating between "url("http://localhost/test-1")" and "url("http://localhost/test-2")" with linear easing assert_equals: The value should be url("http://localhost/test-1") at 0ms expected "url(\"http://localhost/test-1\")" but got "none"
+FAIL marker-start uses discrete animation when animating between "url("http://localhost/test-1")" and "url("http://localhost/test-2")" with effect easing assert_equals: The value should be url("http://localhost/test-1") at 0ms expected "url(\"http://localhost/test-1\")" but got "none"
+FAIL marker-start uses discrete animation when animating between "url("http://localhost/test-1")" and "url("http://localhost/test-2")" with keyframe easing assert_equals: The value should be url("http://localhost/test-1") at 0ms expected "url(\"http://localhost/test-1\")" but got "none"
+PASS mask (type: discrete) has testInterpolation function
+FAIL mask uses discrete animation when animating between "url("http://localhost/test-1")" and "url("http://localhost/test-2")" with linear easing assert_equals: The value should be url("http://localhost/test-1") at 0ms expected "url(\"http://localhost/test-1\")" but got "none"
+FAIL mask uses discrete animation when animating between "url("http://localhost/test-1")" and "url("http://localhost/test-2")" with effect easing assert_equals: The value should be url("http://localhost/test-1") at 0ms expected "url(\"http://localhost/test-1\")" but got "none"
+FAIL mask uses discrete animation when animating between "url("http://localhost/test-1")" and "url("http://localhost/test-2")" with keyframe easing assert_equals: The value should be url("http://localhost/test-1") at 0ms expected "url(\"http://localhost/test-1\")" but got "none"
+PASS mask-clip (type: discrete) has testInterpolation function
+FAIL mask-clip uses discrete animation when animating between "content-box" and "border-box" with linear easing assert_equals: The value should be content-box at 0ms expected (string) "content-box" but got (undefined) undefined
+FAIL mask-clip uses discrete animation when animating between "content-box" and "border-box" with effect easing assert_equals: The value should be content-box at 0ms expected (string) "content-box" but got (undefined) undefined
+FAIL mask-clip uses discrete animation when animating between "content-box" and "border-box" with keyframe easing assert_equals: The value should be content-box at 0ms expected (string) "content-box" but got (undefined) undefined
+PASS mask-composite (type: discrete) has testInterpolation function
+FAIL mask-composite uses discrete animation when animating between "add" and "subtract" with linear easing assert_equals: The value should be add at 0ms expected (string) "add" but got (undefined) undefined
+FAIL mask-composite uses discrete animation when animating between "add" and "subtract" with effect easing assert_equals: The value should be add at 0ms expected (string) "add" but got (undefined) undefined
+FAIL mask-composite uses discrete animation when animating between "add" and "subtract" with keyframe easing assert_equals: The value should be add at 0ms expected (string) "add" but got (undefined) undefined
+PASS mask-image (type: discrete) has testInterpolation function
+FAIL mask-image uses discrete animation when animating between "url("http://localhost/test-1")" and "url("http://localhost/test-2")" with linear easing assert_equals: The value should be url("http://localhost/test-1") at 0ms expected (string) "url(\"http://localhost/test-1\")" but got (undefined) undefined
+FAIL mask-image uses discrete animation when animating between "url("http://localhost/test-1")" and "url("http://localhost/test-2")" with effect easing assert_equals: The value should be url("http://localhost/test-1") at 0ms expected (string) "url(\"http://localhost/test-1\")" but got (undefined) undefined
+FAIL mask-image uses discrete animation when animating between "url("http://localhost/test-1")" and "url("http://localhost/test-2")" with keyframe easing assert_equals: The value should be url("http://localhost/test-1") at 0ms expected (string) "url(\"http://localhost/test-1\")" but got (undefined) undefined
+PASS mask-mode (type: discrete) has testInterpolation function
+FAIL mask-mode uses discrete animation when animating between "alpha" and "luminance" with linear easing assert_equals: The value should be alpha at 0ms expected (string) "alpha" but got (undefined) undefined
+FAIL mask-mode uses discrete animation when animating between "alpha" and "luminance" with effect easing assert_equals: The value should be alpha at 0ms expected (string) "alpha" but got (undefined) undefined
+FAIL mask-mode uses discrete animation when animating between "alpha" and "luminance" with keyframe easing assert_equals: The value should be alpha at 0ms expected (string) "alpha" but got (undefined) undefined
+PASS mask-origin (type: discrete) has testInterpolation function
+FAIL mask-origin uses discrete animation when animating between "content-box" and "border-box" with linear easing assert_equals: The value should be content-box at 0ms expected (string) "content-box" but got (undefined) undefined
+FAIL mask-origin uses discrete animation when animating between "content-box" and "border-box" with effect easing assert_equals: The value should be content-box at 0ms expected (string) "content-box" but got (undefined) undefined
+FAIL mask-origin uses discrete animation when animating between "content-box" and "border-box" with keyframe easing assert_equals: The value should be content-box at 0ms expected (string) "content-box" but got (undefined) undefined
+PASS mask-repeat (type: discrete) has testInterpolation function
+FAIL mask-repeat uses discrete animation when animating between "space" and "round" with linear easing assert_equals: The value should be space at 0ms expected (string) "space" but got (undefined) undefined
+FAIL mask-repeat uses discrete animation when animating between "space" and "round" with effect easing assert_equals: The value should be space at 0ms expected (string) "space" but got (undefined) undefined
+FAIL mask-repeat uses discrete animation when animating between "space" and "round" with keyframe easing assert_equals: The value should be space at 0ms expected (string) "space" but got (undefined) undefined
+PASS mask-type (type: discrete) has testInterpolation function
+PASS mask-type uses discrete animation when animating between "alpha" and "luminance" with linear easing
+PASS mask-type uses discrete animation when animating between "alpha" and "luminance" with effect easing
+PASS mask-type uses discrete animation when animating between "alpha" and "luminance" with keyframe easing
+PASS mix-blend-mode (type: discrete) has testInterpolation function
+PASS mix-blend-mode uses discrete animation when animating between "multiply" and "screen" with linear easing
+PASS mix-blend-mode uses discrete animation when animating between "multiply" and "screen" with effect easing
+PASS mix-blend-mode uses discrete animation when animating between "multiply" and "screen" with keyframe easing
+PASS object-fit (type: discrete) has testInterpolation function
+PASS object-fit uses discrete animation when animating between "fill" and "contain" with linear easing
+PASS object-fit uses discrete animation when animating between "fill" and "contain" with effect easing
+PASS object-fit uses discrete animation when animating between "fill" and "contain" with keyframe easing
+PASS order (type: integer) has testInterpolation function
+PASS order supports animating as an integer
+PASS outline-color (type: color) has testInterpolation function
+PASS outline-color supports animating as color of rgb()
+PASS outline-color supports animating as color of #RGB
+PASS outline-color supports animating as color of hsl()
+PASS outline-color supports animating as color of #RGBa
+PASS outline-color supports animating as color of rgba()
+PASS outline-color supports animating as color of hsla()
+PASS outline-offset (type: length) has testInterpolation function
+FAIL outline-offset supports animating as a length assert_equals: The value should be 30px at 500ms expected "30px" but got "0px"
+FAIL outline-offset supports animating as a length of rem assert_equals: The value should be 30px at 500ms expected "30px" but got "0px"
+PASS outline-style (type: discrete) has testInterpolation function
+PASS outline-style uses discrete animation when animating between "none" and "dotted" with linear easing
+PASS outline-style uses discrete animation when animating between "none" and "dotted" with effect easing
+PASS outline-style uses discrete animation when animating between "none" and "dotted" with keyframe easing
+PASS outline-width (type: length) has testInterpolation function
+PASS outline-width supports animating as a length
+PASS outline-width supports animating as a length of rem
+PASS overflow-wrap (type: discrete) has testInterpolation function
+PASS overflow-wrap uses discrete animation when animating between "normal" and "break-word" with linear easing
+PASS overflow-wrap uses discrete animation when animating between "normal" and "break-word" with effect easing
+PASS overflow-wrap uses discrete animation when animating between "normal" and "break-word" with keyframe easing
+PASS overflow-x (type: discrete) has testInterpolation function
+PASS overflow-x uses discrete animation when animating between "visible" and "hidden" with linear easing
+PASS overflow-x uses discrete animation when animating between "visible" and "hidden" with effect easing
+PASS overflow-x uses discrete animation when animating between "visible" and "hidden" with keyframe easing
+PASS overflow-y (type: discrete) has testInterpolation function
+PASS overflow-y uses discrete animation when animating between "visible" and "hidden" with linear easing
+PASS overflow-y uses discrete animation when animating between "visible" and "hidden" with effect easing
+PASS overflow-y uses discrete animation when animating between "visible" and "hidden" with keyframe easing
+PASS page-break-after (type: discrete) has testInterpolation function
+PASS page-break-after uses discrete animation when animating between "always" and "auto" with linear easing
+PASS page-break-after uses discrete animation when animating between "always" and "auto" with effect easing
+PASS page-break-after uses discrete animation when animating between "always" and "auto" with keyframe easing
+PASS page-break-before (type: discrete) has testInterpolation function
+PASS page-break-before uses discrete animation when animating between "always" and "auto" with linear easing
+PASS page-break-before uses discrete animation when animating between "always" and "auto" with effect easing
+PASS page-break-before uses discrete animation when animating between "always" and "auto" with keyframe easing
+PASS page-break-inside (type: discrete) has testInterpolation function
+PASS page-break-inside uses discrete animation when animating between "auto" and "avoid" with linear easing
+PASS page-break-inside uses discrete animation when animating between "auto" and "avoid" with effect easing
+PASS page-break-inside uses discrete animation when animating between "auto" and "avoid" with keyframe easing
+PASS paint-order (type: discrete) has testInterpolation function
+FAIL paint-order uses discrete animation when animating between "fill" and "stroke" with linear easing assert_equals: The value should be fill at 0ms expected "fill" but got "fill stroke markers"
+FAIL paint-order uses discrete animation when animating between "fill" and "stroke" with effect easing assert_equals: The value should be fill at 0ms expected "fill" but got "fill stroke markers"
+FAIL paint-order uses discrete animation when animating between "fill" and "stroke" with keyframe easing assert_equals: The value should be fill at 0ms expected "fill" but got "fill stroke markers"
+PASS perspective (type: length) has testInterpolation function
+PASS perspective supports animating as a length
+PASS perspective supports animating as a length of rem
+PASS perspective-origin (type: position) has testInterpolation function
+PASS perspective-origin supports animating as a length pair
+PASS perspective-origin supports animating as a length pair of rem
+PASS perspective-origin supports animating as a position of percent
+PASS pointer-events (type: discrete) has testInterpolation function
+PASS pointer-events uses discrete animation when animating between "fill" and "none" with linear easing
+PASS pointer-events uses discrete animation when animating between "fill" and "none" with effect easing
+PASS pointer-events uses discrete animation when animating between "fill" and "none" with keyframe easing
+PASS position (type: discrete) has testInterpolation function
+PASS position uses discrete animation when animating between "absolute" and "fixed" with linear easing
+PASS position uses discrete animation when animating between "absolute" and "fixed" with effect easing
+PASS position uses discrete animation when animating between "absolute" and "fixed" with keyframe easing
+PASS quotes (type: discrete) has testInterpolation function
+PASS quotes uses discrete animation when animating between ""“" "”" "‘" "’"" and ""‘" "’" "“" "”"" with linear easing
+PASS quotes uses discrete animation when animating between ""“" "”" "‘" "’"" and ""‘" "’" "“" "”"" with effect easing
+PASS quotes uses discrete animation when animating between ""“" "”" "‘" "’"" and ""‘" "’" "“" "”"" with keyframe easing
+PASS resize (type: discrete) has testInterpolation function
+PASS resize uses discrete animation when animating between "both" and "horizontal" with linear easing
+PASS resize uses discrete animation when animating between "both" and "horizontal" with effect easing
+PASS resize uses discrete animation when animating between "both" and "horizontal" with keyframe easing
+PASS ruby-align (type: discrete) has testInterpolation function
+FAIL ruby-align uses discrete animation when animating between "start" and "center" with linear easing assert_equals: The value should be start at 0ms expected (string) "start" but got (undefined) undefined
+FAIL ruby-align uses discrete animation when animating between "start" and "center" with effect easing assert_equals: The value should be start at 0ms expected (string) "start" but got (undefined) undefined
+FAIL ruby-align uses discrete animation when animating between "start" and "center" with keyframe easing assert_equals: The value should be start at 0ms expected (string) "start" but got (undefined) undefined
+PASS ruby-position (type: discrete) has testInterpolation function
+FAIL ruby-position uses discrete animation when animating between "under" and "over" with linear easing assert_equals: The value should be under at 0ms expected (string) "under" but got (undefined) undefined
+FAIL ruby-position uses discrete animation when animating between "under" and "over" with effect easing assert_equals: The value should be under at 0ms expected (string) "under" but got (undefined) undefined
+FAIL ruby-position uses discrete animation when animating between "under" and "over" with keyframe easing assert_equals: The value should be under at 0ms expected (string) "under" but got (undefined) undefined
+PASS scroll-behavior (type: discrete) has testInterpolation function
+PASS scroll-behavior uses discrete animation when animating between "auto" and "smooth" with linear easing
+PASS scroll-behavior uses discrete animation when animating between "auto" and "smooth" with effect easing
+PASS scroll-behavior uses discrete animation when animating between "auto" and "smooth" with keyframe easing
+PASS scroll-snap-type-x (type: discrete) has testInterpolation function
+FAIL scroll-snap-type-x uses discrete animation when animating between "mandatory" and "proximity" with linear easing assert_equals: The value should be mandatory at 0ms expected (string) "mandatory" but got (undefined) undefined
+FAIL scroll-snap-type-x uses discrete animation when animating between "mandatory" and "proximity" with effect easing assert_equals: The value should be mandatory at 0ms expected (string) "mandatory" but got (undefined) undefined
+FAIL scroll-snap-type-x uses discrete animation when animating between "mandatory" and "proximity" with keyframe easing assert_equals: The value should be mandatory at 0ms expected (string) "mandatory" but got (undefined) undefined
+PASS scroll-snap-type-y (type: discrete) has testInterpolation function
+FAIL scroll-snap-type-y uses discrete animation when animating between "mandatory" and "proximity" with linear easing assert_equals: The value should be mandatory at 0ms expected (string) "mandatory" but got (undefined) undefined
+FAIL scroll-snap-type-y uses discrete animation when animating between "mandatory" and "proximity" with effect easing assert_equals: The value should be mandatory at 0ms expected (string) "mandatory" but got (undefined) undefined
+FAIL scroll-snap-type-y uses discrete animation when animating between "mandatory" and "proximity" with keyframe easing assert_equals: The value should be mandatory at 0ms expected (string) "mandatory" but got (undefined) undefined
+PASS shape-outside (type: discrete) has testInterpolation function
+PASS shape-outside uses discrete animation when animating between "url("http://localhost/test-1")" and "url("http://localhost/test-2")" with linear easing
+PASS shape-outside uses discrete animation when animating between "url("http://localhost/test-1")" and "url("http://localhost/test-2")" with effect easing
+PASS shape-outside uses discrete animation when animating between "url("http://localhost/test-1")" and "url("http://localhost/test-2")" with keyframe easing
+PASS shape-rendering (type: discrete) has testInterpolation function
+FAIL shape-rendering uses discrete animation when animating between "optimizeSpeed" and "crispEdges" with linear easing assert_equals: The value should be optimizespeed at 0ms expected "optimizespeed" but got "optimizeSpeed"
+FAIL shape-rendering uses discrete animation when animating between "optimizeSpeed" and "crispEdges" with effect easing assert_equals: The value should be optimizespeed at 0ms expected "optimizespeed" but got "optimizeSpeed"
+FAIL shape-rendering uses discrete animation when animating between "optimizeSpeed" and "crispEdges" with keyframe easing assert_equals: The value should be optimizespeed at 0ms expected "optimizespeed" but got "optimizeSpeed"
+PASS stop-color (type: color) has testInterpolation function
+PASS stop-color supports animating as color of rgb()
+PASS stop-color supports animating as color of #RGB
+PASS stop-color supports animating as color of hsl()
+PASS stop-color supports animating as color of #RGBa
+PASS stop-color supports animating as color of rgba()
+PASS stop-color supports animating as color of hsla()
+PASS stop-opacity (type: opacity) has testInterpolation function
+PASS stop-opacity supports animating as a [0, 1] number
+PASS stroke-dasharray (type: dasharray) has testInterpolation function
+PASS stroke-dasharray supports animating as a percentage
+FAIL stroke-dasharray supports animating as a positive number assert_equals: The value should be 1.3 at 500ms expected "1.3" but got "1.3px"
+FAIL stroke-dasharray supports animating as a dasharray (mismatched length) assert_equals: The value should be 6, 12, 8, 12, 10, 6, 10, 16, 4, 8, 14, 10 at 500ms expected "6, 12, 8, 12, 10, 6, 10, 16, 4, 8, 14, 10" but got "6px, 12px, 8px, 12px, 10px, 6px, 10px, 16px, 4px, 8px, 14px, 10px"
+FAIL stroke-dasharray supports animating as a dasharray (mixed number and percentage) assert_equals: The value should be 4, 40%, 4, 6 at 500ms expected "4, 40%, 4, 6" but got "4px, 40%, 4px, 6px"
+PASS stroke-dasharray (type: discrete) has testInterpolation function
+FAIL stroke-dasharray uses discrete animation when animating between "none" and "10, 20" with linear easing assert_equals: The value should be 10, 20 at 500ms expected "10, 20" but got "10px, 20px"
+FAIL stroke-dasharray uses discrete animation when animating between "none" and "10, 20" with effect easing assert_equals: The value should be 10, 20 at 960ms expected "10, 20" but got "10px, 20px"
+FAIL stroke-dasharray uses discrete animation when animating between "none" and "10, 20" with keyframe easing assert_equals: The value should be 10, 20 at 960ms expected "10, 20" but got "10px, 20px"
+PASS stroke-linecap (type: discrete) has testInterpolation function
+PASS stroke-linecap uses discrete animation when animating between "round" and "square" with linear easing
+PASS stroke-linecap uses discrete animation when animating between "round" and "square" with effect easing
+PASS stroke-linecap uses discrete animation when animating between "round" and "square" with keyframe easing
+PASS stroke-linejoin (type: discrete) has testInterpolation function
+PASS stroke-linejoin uses discrete animation when animating between "round" and "miter" with linear easing
+PASS stroke-linejoin uses discrete animation when animating between "round" and "miter" with effect easing
+PASS stroke-linejoin uses discrete animation when animating between "round" and "miter" with keyframe easing
+PASS stroke-miterlimit (type: positiveNumber) has testInterpolation function
+PASS stroke-miterlimit supports animating as a positive number
+PASS stroke-opacity (type: opacity) has testInterpolation function
+PASS stroke-opacity supports animating as a [0, 1] number
+PASS table-layout (type: discrete) has testInterpolation function
+PASS table-layout uses discrete animation when animating between "auto" and "fixed" with linear easing
+PASS table-layout uses discrete animation when animating between "auto" and "fixed" with effect easing
+PASS table-layout uses discrete animation when animating between "auto" and "fixed" with keyframe easing
+PASS text-align (type: discrete) has testInterpolation function
+PASS text-align uses discrete animation when animating between "start" and "end" with linear easing
+PASS text-align uses discrete animation when animating between "start" and "end" with effect easing
+PASS text-align uses discrete animation when animating between "start" and "end" with keyframe easing
+PASS text-align-last (type: discrete) has testInterpolation function
+PASS text-align-last uses discrete animation when animating between "start" and "end" with linear easing
+PASS text-align-last uses discrete animation when animating between "start" and "end" with effect easing
+PASS text-align-last uses discrete animation when animating between "start" and "end" with keyframe easing
+PASS text-anchor (type: discrete) has testInterpolation function
+PASS text-anchor uses discrete animation when animating between "middle" and "end" with linear easing
+PASS text-anchor uses discrete animation when animating between "middle" and "end" with effect easing
+PASS text-anchor uses discrete animation when animating between "middle" and "end" with keyframe easing
+PASS text-combine-upright (type: discrete) has testInterpolation function
+PASS text-combine-upright uses discrete animation when animating between "all" and "none" with linear easing
+PASS text-combine-upright uses discrete animation when animating between "all" and "none" with effect easing
+PASS text-combine-upright uses discrete animation when animating between "all" and "none" with keyframe easing
+PASS text-decoration-color (type: color) has testInterpolation function
+PASS text-decoration-color supports animating as color of rgb()
+PASS text-decoration-color supports animating as color of #RGB
+PASS text-decoration-color supports animating as color of hsl()
+PASS text-decoration-color supports animating as color of #RGBa
+PASS text-decoration-color supports animating as color of rgba()
+PASS text-decoration-color supports animating as color of hsla()
+PASS text-decoration-line (type: discrete) has testInterpolation function
+PASS text-decoration-line uses discrete animation when animating between "underline" and "overline" with linear easing
+PASS text-decoration-line uses discrete animation when animating between "underline" and "overline" with effect easing
+PASS text-decoration-line uses discrete animation when animating between "underline" and "overline" with keyframe easing
+PASS text-decoration-style (type: discrete) has testInterpolation function
+PASS text-decoration-style uses discrete animation when animating between "solid" and "dotted" with linear easing
+PASS text-decoration-style uses discrete animation when animating between "solid" and "dotted" with effect easing
+PASS text-decoration-style uses discrete animation when animating between "solid" and "dotted" with keyframe easing
+PASS text-emphasis-color (type: color) has testInterpolation function
+FAIL text-emphasis-color supports animating as color of rgb() assert_equals: The value should be rgb(128, 0, 128) at 500ms expected (string) "rgb(128, 0, 128)" but got (undefined) undefined
+FAIL text-emphasis-color supports animating as color of #RGB assert_equals: The value should be rgb(128, 0, 128) at 500ms expected (string) "rgb(128, 0, 128)" but got (undefined) undefined
+FAIL text-emphasis-color supports animating as color of hsl() assert_equals: The value should be rgb(128, 0, 128) at 500ms expected (string) "rgb(128, 0, 128)" but got (undefined) undefined
+FAIL text-emphasis-color supports animating as color of #RGBa assert_equals: The value should be rgba(85, 0, 170, 0.6) at 500ms expected (string) "rgba(85, 0, 170, 0.6)" but got (undefined) undefined
+FAIL text-emphasis-color supports animating as color of rgba() assert_equals: The value should be rgba(85, 0, 170, 0.6) at 500ms expected (string) "rgba(85, 0, 170, 0.6)" but got (undefined) undefined
+FAIL text-emphasis-color supports animating as color of hsla() assert_equals: The value should be rgba(85, 0, 170, 0.6) at 500ms expected (string) "rgba(85, 0, 170, 0.6)" but got (undefined) undefined
+PASS text-emphasis-position (type: discrete) has testInterpolation function
+FAIL text-emphasis-position uses discrete animation when animating between "over right" and "under left" with linear easing assert_equals: The value should be over right at 0ms expected (string) "over right" but got (undefined) undefined
+FAIL text-emphasis-position uses discrete animation when animating between "over right" and "under left" with effect easing assert_equals: The value should be over right at 0ms expected (string) "over right" but got (undefined) undefined
+FAIL text-emphasis-position uses discrete animation when animating between "over right" and "under left" with keyframe easing assert_equals: The value should be over right at 0ms expected (string) "over right" but got (undefined) undefined
+PASS text-emphasis-style (type: discrete) has testInterpolation function
+FAIL text-emphasis-style uses discrete animation when animating between "filled circle" and "open dot" with linear easing assert_equals: The value should be filled circle at 0ms expected (string) "filled circle" but got (undefined) undefined
+FAIL text-emphasis-style uses discrete animation when animating between "filled circle" and "open dot" with effect easing assert_equals: The value should be filled circle at 0ms expected (string) "filled circle" but got (undefined) undefined
+FAIL text-emphasis-style uses discrete animation when animating between "filled circle" and "open dot" with keyframe easing assert_equals: The value should be filled circle at 0ms expected (string) "filled circle" but got (undefined) undefined
+PASS text-orientation (type: discrete) has testInterpolation function
+PASS text-orientation uses discrete animation when animating between "upright" and "sideways" with linear easing
+PASS text-orientation uses discrete animation when animating between "upright" and "sideways" with effect easing
+PASS text-orientation uses discrete animation when animating between "upright" and "sideways" with keyframe easing
+PASS text-overflow (type: discrete) has testInterpolation function
+PASS text-overflow uses discrete animation when animating between "clip" and "ellipsis" with linear easing
+PASS text-overflow uses discrete animation when animating between "clip" and "ellipsis" with effect easing
+PASS text-overflow uses discrete animation when animating between "clip" and "ellipsis" with keyframe easing
+PASS text-rendering (type: discrete) has testInterpolation function
+FAIL text-rendering uses discrete animation when animating between "optimizeSpeed" and "optimizeLegibility" with linear easing assert_equals: The value should be optimizespeed at 0ms expected "optimizespeed" but got "optimizeSpeed"
+FAIL text-rendering uses discrete animation when animating between "optimizeSpeed" and "optimizeLegibility" with effect easing assert_equals: The value should be optimizespeed at 0ms expected "optimizespeed" but got "optimizeSpeed"
+FAIL text-rendering uses discrete animation when animating between "optimizeSpeed" and "optimizeLegibility" with keyframe easing assert_equals: The value should be optimizespeed at 0ms expected "optimizespeed" but got "optimizeSpeed"
+PASS text-shadow (type: textShadowList) has testInterpolation function
+PASS text-shadow: from none to other
+PASS text-shadow: from other to none
+PASS text-shadow: single shadow
+PASS text-shadow: shadow list
+PASS text-shadow: mismatched list length (from longer to shorter)
+PASS text-shadow: mismatched list length (from shorter to longer)
+PASS text-shadow: with currentcolor
+PASS text-transform (type: discrete) has testInterpolation function
+PASS text-transform uses discrete animation when animating between "capitalize" and "uppercase" with linear easing
+PASS text-transform uses discrete animation when animating between "capitalize" and "uppercase" with effect easing
+PASS text-transform uses discrete animation when animating between "capitalize" and "uppercase" with keyframe easing
+PASS touch-action (type: discrete) has testInterpolation function
+PASS touch-action uses discrete animation when animating between "auto" and "none" with linear easing
+PASS touch-action uses discrete animation when animating between "auto" and "none" with effect easing
+PASS touch-action uses discrete animation when animating between "auto" and "none" with keyframe easing
+PASS transform (type: transformList) has testInterpolation function
+PASS transform: translate
+PASS transform: rotate
+PASS transform: scale
+PASS transform: skew
+PASS transform: rotate and translate
+PASS transform: translate and rotate
+FAIL transform: mismatch order of translate and rotate assert_approx_equals: expected matrix(-0.7071067811865475,0.7071067811865476,-0.7071067811865476,-0.7071067811865475,100,50) but got matrix(0.707107, -0.707107, 0.707107, 0.707107, 100, 50): The value should be matrix(-0.7071067811865475,0.7071067811865476,-0.7071067811865476,-0.7071067811865475,100,50) at 500ms but got matrix(0.707107, -0.707107, 0.707107, 0.707107, 100, 50) expected -0.7071067811865475 +/- 0.0001 but got 0.707107
+FAIL transform: matrix assert_approx_equals: expected matrix(-0.7071067811865475,0.7071067811865476,-0.7071067811865476,-0.7071067811865475,100,50) but got matrix(0.707107, -0.707107, 0.707107, 0.707107, 100, 50): The value should be matrix(-0.7071067811865475,0.7071067811865476,-0.7071067811865476,-0.7071067811865475,100,50) at 500ms but got matrix(0.707107, -0.707107, 0.707107, 0.707107, 100, 50) expected -0.7071067811865475 +/- 0.0001 but got 0.707107
+PASS transform: rotate3d
+PASS transform: matrix3d
+PASS transform: mismatched 3D transforms
+PASS transform: rotateY
+PASS transform: non-invertible matrices
+FAIL transform: non-invertible matrices in matched transform lists assert_approx_equals: expected matrix(0,-1,1,0,250,0) but got matrix(0.705995, -0.708217, 0.708217, 0.705995, 274.95, 0): The value should be matrix(0,-1,1,0,250,0) at 499ms but got matrix(0.705995, -0.708217, 0.708217, 0.705995, 274.95, 0) expected 0 +/- 0.0001 but got 0.705995
+PASS transform: non-invertible matrices in mismatched transform lists
+PASS transform-box (type: discrete) has testInterpolation function
+FAIL transform-box uses discrete animation when animating between "fill-box" and "border-box" with linear easing assert_equals: The value should be border-box at 500ms expected "border-box" but got "view-box"
+FAIL transform-box uses discrete animation when animating between "fill-box" and "border-box" with effect easing assert_equals: The value should be border-box at 960ms expected "border-box" but got "view-box"
+FAIL transform-box uses discrete animation when animating between "fill-box" and "border-box" with keyframe easing assert_equals: The value should be border-box at 960ms expected "border-box" but got "view-box"
+PASS transform-style (type: discrete) has testInterpolation function
+PASS transform-style uses discrete animation when animating between "flat" and "preserve-3d" with linear easing
+PASS transform-style uses discrete animation when animating between "flat" and "preserve-3d" with effect easing
+PASS transform-style uses discrete animation when animating between "flat" and "preserve-3d" with keyframe easing
+PASS rotate (type: rotateList) has testInterpolation function
+PASS rotate without rotation axes
+PASS rotate with rotation axes
+PASS rotate with rotation axes and range over 360 degrees
+FAIL rotate with different rotation axes assert_approx_equals: expected 0 0.707107 0.707107 45deg but got 0 1 1 45deg: The value should be 0 0.707107 0.707107 45deg at 500ms but got 0 1 1 45deg expected 0.707107 +/- 0.0001 but got 1
+PASS translate (type: translateList) has testInterpolation function
+PASS translate with two unspecified values
+PASS translate with one unspecified value
+PASS translate with all three values specified
+FAIL translate with combination of percentages and lengths assert_equals: The value should be 200px -25.5px 200px at 500ms expected "200px -25.5px 200px" but got "200px calc(-50.5px + 25%) 200px"
+PASS scale (type: scaleList) has testInterpolation function
+FAIL scale with two unspecified values assert_equals: The value should be 4 at 500ms expected "4" but got "4 1"
+PASS scale with one unspecified value
+PASS scale
+PASS unicode-bidi (type: discrete) has testInterpolation function
+PASS unicode-bidi uses discrete animation when animating between "embed" and "bidi-override" with linear easing
+PASS unicode-bidi uses discrete animation when animating between "embed" and "bidi-override" with effect easing
+PASS unicode-bidi uses discrete animation when animating between "embed" and "bidi-override" with keyframe easing
+PASS vector-effect (type: discrete) has testInterpolation function
+PASS vector-effect uses discrete animation when animating between "none" and "non-scaling-stroke" with linear easing
+PASS vector-effect uses discrete animation when animating between "none" and "non-scaling-stroke" with effect easing
+PASS vector-effect uses discrete animation when animating between "none" and "non-scaling-stroke" with keyframe easing
+PASS visibility (type: visibility) has testInterpolation function
+PASS visibility uses visibility animation when animating from "visible" to "hidden"
+PASS visibility uses visibility animation when animating from "hidden" to "visible"
+PASS visibility uses visibility animation when animating from "hidden" to "collapse"
+PASS visibility uses visibility animation when animating from "visible" to "hidden" with easeInOutBack easing
+PASS white-space (type: discrete) has testInterpolation function
+PASS white-space uses discrete animation when animating between "pre" and "nowrap" with linear easing
+PASS white-space uses discrete animation when animating between "pre" and "nowrap" with effect easing
+PASS white-space uses discrete animation when animating between "pre" and "nowrap" with keyframe easing
+PASS word-break (type: discrete) has testInterpolation function
+PASS word-break uses discrete animation when animating between "keep-all" and "break-all" with linear easing
+PASS word-break uses discrete animation when animating between "keep-all" and "break-all" with effect easing
+PASS word-break uses discrete animation when animating between "keep-all" and "break-all" with keyframe easing
+PASS word-spacing (type: lengthPercentageOrCalc) has testInterpolation function
+PASS word-spacing supports animating as a length
+PASS word-spacing supports animating as a length of rem
+FAIL word-spacing supports animating as a percentage assert_equals: The value should be 30% at 500ms expected "30%" but got "0px"
+FAIL word-spacing supports animating as combination units "px" and "%" assert_equals: The value should be calc(5px + 10%) at 500ms expected "calc(5px + 10%)" but got "5px"
+FAIL word-spacing supports animating as combination units "%" and "em" assert_equals: The value should be calc(10px + 5%) at 500ms expected "calc(10px + 5%)" but got "10px"
+PASS word-spacing supports animating as combination units "em" and "rem"
+FAIL word-spacing supports animating as combination units "px" and "calc" assert_equals: The value should be calc(10px + 10%) at 500ms expected "calc(10px + 10%)" but got "5px"
+FAIL word-spacing supports animating as a calc assert_equals: The value should be calc(15px + 15%) at 500ms expected "calc(15px + 15%)" but got "0px"
+PASS will-change (type: discrete) has testInterpolation function
+PASS will-change uses discrete animation when animating between "scroll-position" and "contents" with linear easing
+PASS will-change uses discrete animation when animating between "scroll-position" and "contents" with effect easing
+PASS will-change uses discrete animation when animating between "scroll-position" and "contents" with keyframe easing
+PASS writing-mode (type: discrete) has testInterpolation function
+FAIL writing-mode uses discrete animation when animating between "vertical-rl" and "sideways-rl" with linear easing assert_equals: The value should be sideways-rl at 500ms expected "sideways-rl" but got "horizontal-tb"
+FAIL writing-mode uses discrete animation when animating between "vertical-rl" and "sideways-rl" with effect easing assert_equals: The value should be sideways-rl at 960ms expected "sideways-rl" but got "horizontal-tb"
+FAIL writing-mode uses discrete animation when animating between "vertical-rl" and "sideways-rl" with keyframe easing assert_equals: The value should be sideways-rl at 960ms expected "sideways-rl" but got "horizontal-tb"
+Harness: the test ran to completion.
+
diff --git a/third_party/WebKit/LayoutTests/external/wpt/web-animations/interfaces/Animation/idlharness-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/web-animations/interfaces/Animation/idlharness-expected.txt
index 1213da7..d416e23b 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/web-animations/interfaces/Animation/idlharness-expected.txt
+++ b/third_party/WebKit/LayoutTests/external/wpt/web-animations/interfaces/Animation/idlharness-expected.txt
@@ -1,26 +1,47 @@
 This is a testharness.js-based test.
+Found 63 tests; 57 PASS, 6 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS Animation interface: existence and properties of interface object
 PASS Animation interface object length
 PASS Animation interface object name
 PASS Animation interface: existence and properties of interface prototype object
 PASS Animation interface: existence and properties of interface prototype object's "constructor" property
+PASS Animation interface: existence and properties of interface prototype object's @@unscopables property
 PASS Animation interface: attribute id
+PASS Unscopable handled correctly for id property on Animation
 PASS Animation interface: attribute effect
+PASS Unscopable handled correctly for effect property on Animation
 FAIL Animation interface: attribute timeline assert_equals: setter must be function for PutForwards, Replaceable, or non-readonly attributes expected "function" but got "undefined"
+PASS Unscopable handled correctly for timeline property on Animation
 PASS Animation interface: attribute startTime
+PASS Unscopable handled correctly for startTime property on Animation
 PASS Animation interface: attribute currentTime
+PASS Unscopable handled correctly for currentTime property on Animation
 PASS Animation interface: attribute playbackRate
+PASS Unscopable handled correctly for playbackRate property on Animation
 PASS Animation interface: attribute playState
+PASS Unscopable handled correctly for playState property on Animation
 FAIL Animation interface: attribute pending assert_true: The prototype object must have a property "pending" expected true got false
+PASS Unscopable handled correctly for pending property on Animation
 PASS Animation interface: attribute ready
+PASS Unscopable handled correctly for ready property on Animation
 PASS Animation interface: attribute finished
+PASS Unscopable handled correctly for finished property on Animation
 PASS Animation interface: attribute onfinish
+PASS Unscopable handled correctly for onfinish property on Animation
 PASS Animation interface: attribute oncancel
+PASS Unscopable handled correctly for oncancel property on Animation
 PASS Animation interface: operation cancel()
+PASS Unscopable handled correctly for cancel() on Animation
 PASS Animation interface: operation finish()
+PASS Unscopable handled correctly for finish() on Animation
 PASS Animation interface: operation play()
+PASS Unscopable handled correctly for play() on Animation
 PASS Animation interface: operation pause()
+PASS Unscopable handled correctly for pause() on Animation
+FAIL Animation interface: operation updatePlaybackRate(double) assert_own_property: interface prototype object missing non-static operation expected property "updatePlaybackRate" missing
+PASS Unscopable handled correctly for updatePlaybackRate(double) on Animation
 PASS Animation interface: operation reverse()
+PASS Unscopable handled correctly for reverse() on Animation
 PASS Animation must be primary interface of new Animation()
 PASS Stringification of new Animation()
 PASS Animation interface: new Animation() must inherit property "id" with the proper type
@@ -39,6 +60,8 @@
 PASS Animation interface: new Animation() must inherit property "finish()" with the proper type
 PASS Animation interface: new Animation() must inherit property "play()" with the proper type
 PASS Animation interface: new Animation() must inherit property "pause()" with the proper type
+FAIL Animation interface: new Animation() must inherit property "updatePlaybackRate(double)" with the proper type assert_inherits: property "updatePlaybackRate" not found in prototype chain
+FAIL Animation interface: calling updatePlaybackRate(double) on new Animation() with too few arguments must throw TypeError assert_inherits: property "updatePlaybackRate" not found in prototype chain
 PASS Animation interface: new Animation() must inherit property "reverse()" with the proper type
 Harness: the test ran to completion.
 
diff --git a/third_party/WebKit/LayoutTests/external/wpt/web-animations/interfaces/KeyframeEffect/idlharness-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/web-animations/interfaces/KeyframeEffect/idlharness-expected.txt
index 2ec626e..5c87a92 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/web-animations/interfaces/KeyframeEffect/idlharness-expected.txt
+++ b/third_party/WebKit/LayoutTests/external/wpt/web-animations/interfaces/KeyframeEffect/idlharness-expected.txt
@@ -1,20 +1,29 @@
 This is a testharness.js-based test.
+Found 59 tests; 53 PASS, 6 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS AnimationEffectReadOnly interface: existence and properties of interface object
 PASS AnimationEffectReadOnly interface object length
 PASS AnimationEffectReadOnly interface object name
 PASS AnimationEffectReadOnly interface: existence and properties of interface prototype object
 PASS AnimationEffectReadOnly interface: existence and properties of interface prototype object's "constructor" property
+PASS AnimationEffectReadOnly interface: existence and properties of interface prototype object's @@unscopables property
 PASS AnimationEffectReadOnly interface: attribute timing
+PASS Unscopable handled correctly for timing property on AnimationEffectReadOnly
 PASS AnimationEffectReadOnly interface: operation getComputedTiming()
+PASS Unscopable handled correctly for getComputedTiming() on AnimationEffectReadOnly
 PASS KeyframeEffectReadOnly interface: existence and properties of interface object
 PASS KeyframeEffectReadOnly interface object length
 PASS KeyframeEffectReadOnly interface object name
 PASS KeyframeEffectReadOnly interface: existence and properties of interface prototype object
 PASS KeyframeEffectReadOnly interface: existence and properties of interface prototype object's "constructor" property
+PASS KeyframeEffectReadOnly interface: existence and properties of interface prototype object's @@unscopables property
 PASS KeyframeEffectReadOnly interface: attribute target
+PASS Unscopable handled correctly for target property on KeyframeEffectReadOnly
 FAIL KeyframeEffectReadOnly interface: attribute iterationComposite assert_true: The prototype object must have a property "iterationComposite" expected true got false
+PASS Unscopable handled correctly for iterationComposite property on KeyframeEffectReadOnly
 PASS KeyframeEffectReadOnly interface: attribute composite
+PASS Unscopable handled correctly for composite property on KeyframeEffectReadOnly
 PASS KeyframeEffectReadOnly interface: operation getKeyframes()
+PASS Unscopable handled correctly for getKeyframes() on KeyframeEffectReadOnly
 PASS KeyframeEffectReadOnly must be primary interface of new KeyframeEffectReadOnly(null, null)
 PASS Stringification of new KeyframeEffectReadOnly(null, null)
 PASS KeyframeEffectReadOnly interface: new KeyframeEffectReadOnly(null, null) must inherit property "target" with the proper type
@@ -28,10 +37,15 @@
 PASS KeyframeEffect interface object name
 PASS KeyframeEffect interface: existence and properties of interface prototype object
 PASS KeyframeEffect interface: existence and properties of interface prototype object's "constructor" property
+PASS KeyframeEffect interface: existence and properties of interface prototype object's @@unscopables property
 FAIL KeyframeEffect interface: attribute target assert_own_property: expected property "target" missing
+PASS Unscopable handled correctly for target property on KeyframeEffect
 FAIL KeyframeEffect interface: attribute iterationComposite assert_true: The prototype object must have a property "iterationComposite" expected true got false
+PASS Unscopable handled correctly for iterationComposite property on KeyframeEffect
 PASS KeyframeEffect interface: attribute composite
+PASS Unscopable handled correctly for composite property on KeyframeEffect
 PASS KeyframeEffect interface: operation setKeyframes(object)
+PASS Unscopable handled correctly for setKeyframes(object) on KeyframeEffect
 PASS KeyframeEffect must be primary interface of new KeyframeEffect(null, null)
 PASS Stringification of new KeyframeEffect(null, null)
 PASS KeyframeEffect interface: new KeyframeEffect(null, null) must inherit property "target" with the proper type
diff --git a/third_party/WebKit/LayoutTests/external/wpt/web-animations/interfaces/KeyframeEffect/processing-a-keyframes-argument-001-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/web-animations/interfaces/KeyframeEffect/processing-a-keyframes-argument-001-expected.txt
index 4933230..6fc6397 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/web-animations/interfaces/KeyframeEffect/processing-a-keyframes-argument-001-expected.txt
+++ b/third_party/WebKit/LayoutTests/external/wpt/web-animations/interfaces/KeyframeEffect/processing-a-keyframes-argument-001-expected.txt
@@ -1,61 +1,54 @@
 This is a testharness.js-based test.
-Found 50 tests; 39 PASS, 11 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS non-animatable property 'animation' is not accessed when using a property-indexed keyframe object
-PASS non-animatable property 'animationDelay' is not accessed when using a property-indexed keyframe object
-PASS non-animatable property 'animationDirection' is not accessed when using a property-indexed keyframe object
-PASS non-animatable property 'animationDuration' is not accessed when using a property-indexed keyframe object
-PASS non-animatable property 'animationFillMode' is not accessed when using a property-indexed keyframe object
-PASS non-animatable property 'animationIterationCount' is not accessed when using a property-indexed keyframe object
-PASS non-animatable property 'animationName' is not accessed when using a property-indexed keyframe object
-PASS non-animatable property 'animationPlayState' is not accessed when using a property-indexed keyframe object
-PASS non-animatable property 'animationTimingFunction' is not accessed when using a property-indexed keyframe object
-PASS non-animatable property 'transition' is not accessed when using a property-indexed keyframe object
-PASS non-animatable property 'transitionDelay' is not accessed when using a property-indexed keyframe object
-PASS non-animatable property 'transitionDuration' is not accessed when using a property-indexed keyframe object
-PASS non-animatable property 'transitionProperty' is not accessed when using a property-indexed keyframe object
-PASS non-animatable property 'transitionTimingFunction' is not accessed when using a property-indexed keyframe object
-PASS non-animatable property 'display' is not accessed when using a property-indexed keyframe object
-PASS non-animatable property 'unsupportedProperty' is not accessed when using a property-indexed keyframe object
-PASS non-animatable property 'font-size' is not accessed when using a property-indexed keyframe object
-PASS non-animatable property 'animation' is not accessed when using a keyframe sequence
-PASS non-animatable property 'animationDelay' is not accessed when using a keyframe sequence
-PASS non-animatable property 'animationDirection' is not accessed when using a keyframe sequence
-PASS non-animatable property 'animationDuration' is not accessed when using a keyframe sequence
-PASS non-animatable property 'animationFillMode' is not accessed when using a keyframe sequence
-PASS non-animatable property 'animationIterationCount' is not accessed when using a keyframe sequence
-PASS non-animatable property 'animationName' is not accessed when using a keyframe sequence
-PASS non-animatable property 'animationPlayState' is not accessed when using a keyframe sequence
-PASS non-animatable property 'animationTimingFunction' is not accessed when using a keyframe sequence
-PASS non-animatable property 'transition' is not accessed when using a keyframe sequence
-PASS non-animatable property 'transitionDelay' is not accessed when using a keyframe sequence
-PASS non-animatable property 'transitionDuration' is not accessed when using a keyframe sequence
-PASS non-animatable property 'transitionProperty' is not accessed when using a keyframe sequence
-PASS non-animatable property 'transitionTimingFunction' is not accessed when using a keyframe sequence
-PASS non-animatable property 'display' is not accessed when using a keyframe sequence
-PASS non-animatable property 'unsupportedProperty' is not accessed when using a keyframe sequence
-PASS non-animatable property 'font-size' is not accessed when using a keyframe sequence
+Found 50 tests; 12 PASS, 38 FAIL, 0 TIMEOUT, 0 NOTRUN.
+FAIL non-animatable property 'animation' is not accessed when using a property-indexed keyframe object assert_equals: Accessor not called expected 0 but got 1
+FAIL non-animatable property 'animationDelay' is not accessed when using a property-indexed keyframe object assert_equals: Accessor not called expected 0 but got 1
+FAIL non-animatable property 'animationDirection' is not accessed when using a property-indexed keyframe object assert_equals: Accessor not called expected 0 but got 1
+FAIL non-animatable property 'animationDuration' is not accessed when using a property-indexed keyframe object assert_equals: Accessor not called expected 0 but got 1
+FAIL non-animatable property 'animationFillMode' is not accessed when using a property-indexed keyframe object assert_equals: Accessor not called expected 0 but got 1
+FAIL non-animatable property 'animationIterationCount' is not accessed when using a property-indexed keyframe object assert_equals: Accessor not called expected 0 but got 1
+FAIL non-animatable property 'animationName' is not accessed when using a property-indexed keyframe object assert_equals: Accessor not called expected 0 but got 1
+FAIL non-animatable property 'animationPlayState' is not accessed when using a property-indexed keyframe object assert_equals: Accessor not called expected 0 but got 1
+FAIL non-animatable property 'animationTimingFunction' is not accessed when using a property-indexed keyframe object assert_equals: Accessor not called expected 0 but got 1
+FAIL non-animatable property 'transition' is not accessed when using a property-indexed keyframe object assert_equals: Accessor not called expected 0 but got 1
+FAIL non-animatable property 'transitionDelay' is not accessed when using a property-indexed keyframe object assert_equals: Accessor not called expected 0 but got 1
+FAIL non-animatable property 'transitionDuration' is not accessed when using a property-indexed keyframe object assert_equals: Accessor not called expected 0 but got 1
+FAIL non-animatable property 'transitionProperty' is not accessed when using a property-indexed keyframe object assert_equals: Accessor not called expected 0 but got 1
+FAIL non-animatable property 'transitionTimingFunction' is not accessed when using a property-indexed keyframe object assert_equals: Accessor not called expected 0 but got 1
+FAIL non-animatable property 'display' is not accessed when using a property-indexed keyframe object assert_equals: Accessor not called expected 0 but got 1
+FAIL non-animatable property 'unsupportedProperty' is not accessed when using a property-indexed keyframe object assert_equals: Accessor not called expected 0 but got 1
+FAIL non-animatable property 'font-size' is not accessed when using a property-indexed keyframe object assert_equals: Accessor not called expected 0 but got 1
+FAIL non-animatable property 'animation' is not accessed when using a keyframe sequence assert_equals: Accessor not called expected 0 but got 1
+FAIL non-animatable property 'animationDelay' is not accessed when using a keyframe sequence assert_equals: Accessor not called expected 0 but got 1
+FAIL non-animatable property 'animationDirection' is not accessed when using a keyframe sequence assert_equals: Accessor not called expected 0 but got 1
+FAIL non-animatable property 'animationDuration' is not accessed when using a keyframe sequence assert_equals: Accessor not called expected 0 but got 1
+FAIL non-animatable property 'animationFillMode' is not accessed when using a keyframe sequence assert_equals: Accessor not called expected 0 but got 1
+FAIL non-animatable property 'animationIterationCount' is not accessed when using a keyframe sequence assert_equals: Accessor not called expected 0 but got 1
+FAIL non-animatable property 'animationName' is not accessed when using a keyframe sequence assert_equals: Accessor not called expected 0 but got 1
+FAIL non-animatable property 'animationPlayState' is not accessed when using a keyframe sequence assert_equals: Accessor not called expected 0 but got 1
+FAIL non-animatable property 'animationTimingFunction' is not accessed when using a keyframe sequence assert_equals: Accessor not called expected 0 but got 1
+FAIL non-animatable property 'transition' is not accessed when using a keyframe sequence assert_equals: Accessor not called expected 0 but got 1
+FAIL non-animatable property 'transitionDelay' is not accessed when using a keyframe sequence assert_equals: Accessor not called expected 0 but got 1
+FAIL non-animatable property 'transitionDuration' is not accessed when using a keyframe sequence assert_equals: Accessor not called expected 0 but got 1
+FAIL non-animatable property 'transitionProperty' is not accessed when using a keyframe sequence assert_equals: Accessor not called expected 0 but got 1
+FAIL non-animatable property 'transitionTimingFunction' is not accessed when using a keyframe sequence assert_equals: Accessor not called expected 0 but got 1
+FAIL non-animatable property 'display' is not accessed when using a keyframe sequence assert_equals: Accessor not called expected 0 but got 1
+FAIL non-animatable property 'unsupportedProperty' is not accessed when using a keyframe sequence assert_equals: Accessor not called expected 0 but got 1
+FAIL non-animatable property 'font-size' is not accessed when using a keyframe sequence assert_equals: Accessor not called expected 0 but got 1
 PASS Equivalent property-indexed and sequenced keyframes: two properties with one value
 PASS Equivalent property-indexed and sequenced keyframes: two properties with three values
 PASS Equivalent property-indexed and sequenced keyframes: two properties with different numbers of values
 PASS Equivalent property-indexed and sequenced keyframes: same easing applied to all keyframes
 PASS Equivalent property-indexed and sequenced keyframes: same composite applied to all keyframes
-FAIL Keyframes are read from a custom iterator assert_equals: number of frames expected 3 but got 0
-FAIL 'easing' and 'offset' are ignored on iterable objects assert_equals: number of frames expected 3 but got 0
-FAIL Keyframes are read from a custom iterator with multiple properties specified assert_equals: number of frames expected 3 but got 0
-FAIL Keyframes are read from a custom iterator with where an offset is specified assert_equals: number of frames expected 3 but got 0
-FAIL Reading from a custom iterator that returns a non-object keyframe should throw assert_throws: function "() => {
-    new KeyframeEffect(null, createIterable([
-      { done: false, value: { left: '100px' } },
-      { done: false, value: 1234 },
-      { done: false, value: { left: '200px' } },
-      { done: true },
-    ]));
-  }" did not throw
-FAIL A list of values returned from a custom iterator should be ignored assert_equals: number of frames expected 1 but got 0
-FAIL Only enumerable properties on keyframes are read assert_equals: number of frames expected 2 but got 0
-FAIL Only properties defined directly on keyframes are read assert_equals: number of frames expected 2 but got 0
-FAIL Only enumerable properties on property-indexed keyframes are read assert_equals: number of frames expected 2 but got 0
-FAIL Only properties defined directly on property-indexed keyframes are read assert_equals: number of frames expected 2 but got 0
+PASS Keyframes are read from a custom iterator
+PASS 'easing' and 'offset' are ignored on iterable objects
+PASS Keyframes are read from a custom iterator with multiple properties specified
+PASS Keyframes are read from a custom iterator with where an offset is specified
+PASS Reading from a custom iterator that returns a non-object keyframe should throw
+FAIL A list of values returned from a custom iterator should be ignored Failed to construct 'KeyframeEffect': Lists of values not permitted in array-form list of keyframes
+PASS Only enumerable properties on keyframes are read
+FAIL Only properties defined directly on keyframes are read assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,offset,top" but got "composite,computedOffset,easing,height,left,offset,top"
+PASS Only enumerable properties on property-indexed keyframes are read
+FAIL Only properties defined directly on property-indexed keyframes are read assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,offset,top" but got "composite,computedOffset,easing,left,offset,top"
 FAIL Properties are read in ascending order by Unicode codepoint assert_array_equals: property access order property 3, expected "left" but got "marginLeft"
 Harness: the test ran to completion.
 
diff --git a/third_party/WebKit/LayoutTests/external/wpt/web-animations/timing-model/animations/pausing-an-animation-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/web-animations/timing-model/animations/pausing-an-animation-expected.txt
index fbf1ee2..7872703 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/web-animations/timing-model/animations/pausing-an-animation-expected.txt
+++ b/third_party/WebKit/LayoutTests/external/wpt/web-animations/timing-model/animations/pausing-an-animation-expected.txt
@@ -1,4 +1,5 @@
 This is a testharness.js-based test.
 FAIL A pending ready promise should be resolved and not replaced when the animation is paused assert_false: No longer pause-pending expected false got undefined
+FAIL A pause-pending animation maintains the current time when applying a pending playback rate promise_test: Unhandled rejection with value: object "TypeError: animation.updatePlaybackRate is not a function"
 Harness: the test ran to completion.
 
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/web-animations/timing-model/animations/playing-an-animation-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/web-animations/timing-model/animations/playing-an-animation-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/web-animations/timing-model/animations/playing-an-animation-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/web-animations/timing-model/animations/playing-an-animation-expected.txt
diff --git a/third_party/WebKit/LayoutTests/external/wpt/web-animations/timing-model/animations/reversing-an-animation-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/web-animations/timing-model/animations/reversing-an-animation-expected.txt
index 35672cb..08f10c4 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/web-animations/timing-model/animations/reversing-an-animation-expected.txt
+++ b/third_party/WebKit/LayoutTests/external/wpt/web-animations/timing-model/animations/reversing-an-animation-expected.txt
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-PASS Reversing an animation inverts the playback rate
+FAIL Reversing an animation inverts the playback rate assert_equals: Playback rate should not have changed expected 1 but got -1
 PASS Reversing an animation plays a pausing animation
 PASS Reversing an animation maintains the same current time
 FAIL Reversing an animation does not cause it to leave the pending state assert_true: The animation is pending before we call reverse expected true got undefined
@@ -9,10 +9,12 @@
 PASS Reversing an animation when playbackRate < 0 and currentTime < 0 should make it play from the start
 PASS Reversing an animation when playbackRate < 0 and currentTime > effect end should make it play from the start
 PASS Reversing an animation when playbackRate > 0 and currentTime < 0 and the target effect end is positive infinity should throw an exception
-FAIL When reversing throws an exception, the playback rate remains unchanged assert_equals: playbackRate remains unchanged expected 1 but got -1
+FAIL When reversing throws an exception, the playback rate remains unchanged assert_equals: playbackRate is unchanged expected 1 but got -1
 PASS Reversing animation when playbackRate = 0 and currentTime < 0 and the target effect end is positive infinity should NOT throw an exception
 PASS Reversing an animation when playbackRate < 0 and currentTime < 0 and the target effect end is positive infinity should make it play from the start
 PASS Reversing when when playbackRate == 0 should preserve the current time and playback rate
 FAIL Reversing an animation without an active timeline throws an InvalidStateError assert_throws: function "() => { animation.reverse(); }" did not throw
+FAIL Reversing should use the negative pending playback rate promise_test: Unhandled rejection with value: object "TypeError: animation.updatePlaybackRate is not a function"
+FAIL When reversing fails, it should restore any previous pending playback rate promise_test: Unhandled rejection with value: object "TypeError: animation.updatePlaybackRate is not a function"
 Harness: the test ran to completion.
 
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/web-animations/timing-model/animations/seamlessly-updating-the-playback-rate-of-an-animation-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/web-animations/timing-model/animations/seamlessly-updating-the-playback-rate-of-an-animation-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/web-animations/timing-model/animations/seamlessly-updating-the-playback-rate-of-an-animation-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/web-animations/timing-model/animations/seamlessly-updating-the-playback-rate-of-an-animation-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/web-animations/timing-model/animations/setting-the-current-time-of-an-animation-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/web-animations/timing-model/animations/setting-the-current-time-of-an-animation-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/web-animations/timing-model/animations/setting-the-current-time-of-an-animation-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/web-animations/timing-model/animations/setting-the-current-time-of-an-animation-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/web-animations/timing-model/animations/setting-the-playback-rate-of-an-animation-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/web-animations/timing-model/animations/setting-the-playback-rate-of-an-animation-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/web-animations/timing-model/animations/setting-the-playback-rate-of-an-animation-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/web-animations/timing-model/animations/setting-the-playback-rate-of-an-animation-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/web-animations/timing-model/animations/setting-the-target-effect-of-an-animation-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/web-animations/timing-model/animations/setting-the-target-effect-of-an-animation-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/web-animations/timing-model/animations/setting-the-target-effect-of-an-animation-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/web-animations/timing-model/animations/setting-the-target-effect-of-an-animation-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/web-animations/timing-model/animations/setting-the-timeline-of-an-animation-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/web-animations/timing-model/animations/setting-the-timeline-of-an-animation-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/web-animations/timing-model/animations/setting-the-timeline-of-an-animation-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/web-animations/timing-model/animations/setting-the-timeline-of-an-animation-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/webauthn/createcredential-badargs-authnrselection.https-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/webauthn/createcredential-badargs-authnrselection.https-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/webauthn/createcredential-badargs-authnrselection.https-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/webauthn/createcredential-badargs-authnrselection.https-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/webauthn/createcredential-badargs-challenge.https-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/webauthn/createcredential-badargs-challenge.https-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/webauthn/createcredential-badargs-challenge.https-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/webauthn/createcredential-badargs-challenge.https-expected.txt
diff --git a/third_party/WebKit/LayoutTests/external/wpt/webauthn/createcredential-badargs-rp.https-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/webauthn/createcredential-badargs-rp.https-expected.txt
index 9ba21178..8f9b546b 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/webauthn/createcredential-badargs-rp.https-expected.txt
+++ b/third_party/WebKit/LayoutTests/external/wpt/webauthn/createcredential-badargs-rp.https-expected.txt
@@ -1,9 +1,14 @@
 This is a testharness.js-based test.
-PASS rp missing
-PASS rp is string
+PASS Bad rp: rp missing
+PASS Bad rp: rp is string
+PASS Bad rp: rp is empty object
 FAIL Bad rp: id is object assert_throws: Expected bad parameters to fail function "function() { throw e }" threw object "SecurityError: The relying party ID '[object Object]' is not a registrable domain suffix of, nor equal to 'https://web-platform.test:8444'." ("SecurityError") expected object "TypeError" ("TypeError")
-FAIL Bad rp: id is null assert_throws: Expected bad parameters to fail function "function() { throw e }" threw object "SecurityError: The relying party ID 'null' is not a registrable domain suffix of, nor equal to 'https://web-platform.test:8444'." ("SecurityError") expected object "TypeError" ("TypeError")
-FAIL Bad rp: id is empty String assert_throws: Expected bad parameters to fail function "function() { throw e }" threw object "NotSupportedError: The user agent does not implement a password store." ("NotSupportedError") expected object "TypeError" ("TypeError")
+PASS Bad rp: id is null
+FAIL Bad rp: id is empty String assert_throws: Expected bad parameters to fail function "function() { throw e }" threw object "NotSupportedError: The user agent does not implement a password store." that is not a DOMException SecurityError: property "code" is equal to 9, expected 18
+PASS Bad rp: id is invalid domain (has space)
+PASS Bad rp: id is invalid domain (starts with dash)
+PASS Bad rp: id is invalid domain (starts with number)
+PASS rp missing name
 FAIL Bad rp: name is object assert_throws: Expected bad parameters to fail function "function() { throw e }" threw object "NotSupportedError: The user agent does not implement a password store." ("NotSupportedError") expected object "TypeError" ("TypeError")
 FAIL Bad rp: name is null assert_throws: Expected bad parameters to fail function "function() { throw e }" threw object "NotSupportedError: The user agent does not implement a password store." ("NotSupportedError") expected object "TypeError" ("TypeError")
 FAIL Bad rp: name is empty String assert_throws: Expected bad parameters to fail function "function() { throw e }" threw object "NotSupportedError: The user agent does not implement a password store." ("NotSupportedError") expected object "TypeError" ("TypeError")
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/webauthn/createcredential-badargs-user.https-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/webauthn/createcredential-badargs-user.https-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/webauthn/createcredential-badargs-user.https-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/webauthn/createcredential-badargs-user.https-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/webauthn/createcredential-excludecredentials.https-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/webauthn/createcredential-excludecredentials.https-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/webauthn/createcredential-excludecredentials.https-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/webauthn/createcredential-excludecredentials.https-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/webauthn/createcredential-extensions.https-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/webauthn/createcredential-extensions.https-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/webauthn/createcredential-extensions.https-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/webauthn/createcredential-extensions.https-expected.txt
diff --git a/third_party/WebKit/LayoutTests/external/wpt/webauthn/createcredential-passing.https-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/webauthn/createcredential-passing.https-expected.txt
index f2ce985..a02742bd 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/webauthn/createcredential-passing.https-expected.txt
+++ b/third_party/WebKit/LayoutTests/external/wpt/webauthn/createcredential-passing.https-expected.txt
@@ -1,4 +1,41 @@
 This is a testharness.js-based test.
-FAIL WebAuthn credential.create() Passing Tests promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
+FAIL passing credentials.create() with default arguments promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
+FAIL passing credentials.create() with rpId (host and port) promise_test: Unhandled rejection with value: object "SecurityError: The relying party ID 'web-platform.test:8444' is not a registrable domain suffix of, nor equal to 'https://web-platform.test:8444'."
+FAIL passing credentials.create() with rpId (hostname) promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
+FAIL passing credentials.create() without rp.icon promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
+FAIL very short user id promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
+FAIL max length user id promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
+FAIL Uint8Array user id promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
+FAIL Int8Array user id promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
+FAIL Int16Array user id promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
+FAIL Int32Array user id promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
+FAIL Float32Array user id promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
+FAIL DataView user id promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
+FAIL passing credentials.create() without user.icon promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
+FAIL Int16Array challenge promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
+FAIL Int32Array challenge promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
+FAIL Float32Array challenge promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
+FAIL Float64Array challenge promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
+FAIL DataView challenge promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
+FAIL Absurdly large challenge promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
+FAIL Bad pubKeyCredParams: pubKeyCredParams is empty Array promise_test: Unhandled rejection with value: object "NotSupportedError: Required parameters missing in `options.publicKey`."
+FAIL EC256 pubKeyCredParams promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
+FAIL SelectEC256 pubKeyCredParams from a list promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
+FAIL passing credentials.create() with no timeout promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
+FAIL authenticatorSelection is undefined promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
+FAIL authenticatorSelection is empty object promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
+FAIL authenticatorSelection default values promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
+FAIL authenticatorSelection attachment undefined promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
+FAIL authenticatorSelection residentKey undefined promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
+FAIL authenticatorSelection residentKey false promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
+FAIL authenticatorSelection userVerification undefined promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
+FAIL authenticatorSelection userVerification discouraged promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
+FAIL attestation parameter: attestation is "none" promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
+FAIL attestation parameter: attestation is "indirect" promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
+FAIL attestation parameter: attestation is "direct" promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
+FAIL attestation parameter: attestation is undefined promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
+FAIL extensions undefined promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
+FAIL extensions are empty object promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
+FAIL extensions are dict of empty strings promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
 Harness: the test ran to completion.
 
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/webauthn/createcredential-timeout.https-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/webauthn/createcredential-timeout.https-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/webauthn/createcredential-timeout.https-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/webauthn/createcredential-timeout.https-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/webauthn/getcredential-badargs-rpid.https-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/webauthn/getcredential-badargs-rpid.https-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/webauthn/getcredential-badargs-rpid.https-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/webauthn/getcredential-badargs-rpid.https-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/webauthn/getcredential-badargs-userverification.https-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/webauthn/getcredential-badargs-userverification.https-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/webauthn/getcredential-badargs-userverification.https-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/webauthn/getcredential-badargs-userverification.https-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/webauthn/getcredential-extensions.https-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/webauthn/getcredential-extensions.https-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/webauthn/getcredential-extensions.https-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/webauthn/getcredential-extensions.https-expected.txt
diff --git a/third_party/WebKit/LayoutTests/external/wpt/webauthn/getcredential-passing.https-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/webauthn/getcredential-passing.https-expected.txt
index eee96a9..7e13307 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/webauthn/getcredential-passing.https-expected.txt
+++ b/third_party/WebKit/LayoutTests/external/wpt/webauthn/getcredential-passing.https-expected.txt
@@ -1,4 +1,15 @@
 This is a testharness.js-based test.
-FAIL WebAuthn credential.get() Passing Tests The user agent does not implement a password store.
+FAIL passing credentials.get() with default args promise_test: Unhandled rejection with value: object "Error: NotSupportedError: The user agent does not implement a password store."
+FAIL passing credentials.create() with no timeout promise_test: Unhandled rejection with value: object "Error: NotSupportedError: The user agent does not implement a password store."
+FAIL rpId undefined promise_test: Unhandled rejection with value: object "Error: NotSupportedError: The user agent does not implement a password store."
+FAIL passing credentials.get() with rpId (host and port) promise_test: Unhandled rejection with value: object "Error: NotSupportedError: The user agent does not implement a password store."
+FAIL passing credentials.get() with rpId (hostname) promise_test: Unhandled rejection with value: object "Error: NotSupportedError: The user agent does not implement a password store."
+FAIL no credential specified promise_test: Unhandled rejection with value: object "Error: Attempting list without defining credential to test"
+FAIL authenticatorSelection userVerification undefined promise_test: Unhandled rejection with value: object "Error: NotSupportedError: The user agent does not implement a password store."
+FAIL authenticatorSelection userVerification preferred promise_test: Unhandled rejection with value: object "Error: NotSupportedError: The user agent does not implement a password store."
+FAIL authenticatorSelection userVerification discouraged promise_test: Unhandled rejection with value: object "Error: NotSupportedError: The user agent does not implement a password store."
+FAIL extensions undefined promise_test: Unhandled rejection with value: object "Error: NotSupportedError: The user agent does not implement a password store."
+FAIL extensions are empty object promise_test: Unhandled rejection with value: object "Error: NotSupportedError: The user agent does not implement a password store."
+FAIL extensions are dict of empty strings promise_test: Unhandled rejection with value: object "Error: NotSupportedError: The user agent does not implement a password store."
 Harness: the test ran to completion.
 
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/webauthn/getcredential-timeout.https-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/webauthn/getcredential-timeout.https-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/win/external/wpt/webauthn/getcredential-timeout.https-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/webauthn/getcredential-timeout.https-expected.txt
diff --git a/third_party/WebKit/LayoutTests/external/wpt/webauthn/interfaces.https-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/webauthn/interfaces.https-expected.txt
index 765224c..83dbc02 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/webauthn/interfaces.https-expected.txt
+++ b/third_party/WebKit/LayoutTests/external/wpt/webauthn/interfaces.https-expected.txt
@@ -5,29 +5,42 @@
 PASS PublicKeyCredential interface object name
 FAIL PublicKeyCredential interface: existence and properties of interface prototype object Cannot read property 'has_extended_attribute' of undefined
 PASS PublicKeyCredential interface: existence and properties of interface prototype object's "constructor" property
+PASS PublicKeyCredential interface: existence and properties of interface prototype object's @@unscopables property
 PASS PublicKeyCredential interface: attribute rawId
+PASS Unscopable handled correctly for rawId property on PublicKeyCredential
 PASS PublicKeyCredential interface: attribute response
+PASS Unscopable handled correctly for response property on PublicKeyCredential
 FAIL PublicKeyCredential interface: operation getClientExtensionResults() assert_own_property: interface prototype object missing non-static operation expected property "getClientExtensionResults" missing
+PASS Unscopable handled correctly for getClientExtensionResults() on PublicKeyCredential
 FAIL PublicKeyCredential interface: operation isUserVerifyingPlatformAuthenticatorAvailable() assert_own_property: interface object missing static operation expected property "isUserVerifyingPlatformAuthenticatorAvailable" missing
+PASS Unscopable handled correctly for isUserVerifyingPlatformAuthenticatorAvailable() on PublicKeyCredential
 PASS AuthenticatorResponse interface: existence and properties of interface object
 PASS AuthenticatorResponse interface object length
 PASS AuthenticatorResponse interface object name
 PASS AuthenticatorResponse interface: existence and properties of interface prototype object
 PASS AuthenticatorResponse interface: existence and properties of interface prototype object's "constructor" property
+PASS AuthenticatorResponse interface: existence and properties of interface prototype object's @@unscopables property
 PASS AuthenticatorResponse interface: attribute clientDataJSON
+PASS Unscopable handled correctly for clientDataJSON property on AuthenticatorResponse
 PASS AuthenticatorAttestationResponse interface: existence and properties of interface object
 PASS AuthenticatorAttestationResponse interface object length
 PASS AuthenticatorAttestationResponse interface object name
 PASS AuthenticatorAttestationResponse interface: existence and properties of interface prototype object
 PASS AuthenticatorAttestationResponse interface: existence and properties of interface prototype object's "constructor" property
+PASS AuthenticatorAttestationResponse interface: existence and properties of interface prototype object's @@unscopables property
 PASS AuthenticatorAttestationResponse interface: attribute attestationObject
+PASS Unscopable handled correctly for attestationObject property on AuthenticatorAttestationResponse
 PASS AuthenticatorAssertionResponse interface: existence and properties of interface object
 PASS AuthenticatorAssertionResponse interface object length
 PASS AuthenticatorAssertionResponse interface object name
 PASS AuthenticatorAssertionResponse interface: existence and properties of interface prototype object
 PASS AuthenticatorAssertionResponse interface: existence and properties of interface prototype object's "constructor" property
+PASS AuthenticatorAssertionResponse interface: existence and properties of interface prototype object's @@unscopables property
 PASS AuthenticatorAssertionResponse interface: attribute authenticatorData
+PASS Unscopable handled correctly for authenticatorData property on AuthenticatorAssertionResponse
 PASS AuthenticatorAssertionResponse interface: attribute signature
+PASS Unscopable handled correctly for signature property on AuthenticatorAssertionResponse
 PASS AuthenticatorAssertionResponse interface: attribute userHandle
+PASS Unscopable handled correctly for userHandle property on AuthenticatorAssertionResponse
 Harness: the test ran to completion.
 
diff --git a/third_party/WebKit/LayoutTests/external/wpt/webauthn/securecontext.http-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/webauthn/securecontext.http-expected.txt
deleted file mode 100644
index 3ba41d9..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/webauthn/securecontext.http-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL WebAuthn Secure Context Tests Uncaught TypeError: Cannot read property 'create' of undefined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/external/wpt/webrtc/interfaces.https-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/webrtc/interfaces.https-expected.txt
index 543b2f3..566708d 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/webrtc/interfaces.https-expected.txt
+++ b/third_party/WebKit/LayoutTests/external/wpt/webrtc/interfaces.https-expected.txt
@@ -8,8 +8,11 @@
 PASS MediaStreamTrack interface object name
 FAIL MediaStreamTrack interface: existence and properties of interface prototype object Cannot read property 'has_extended_attribute' of undefined
 PASS MediaStreamTrack interface: existence and properties of interface prototype object's "constructor" property
+PASS MediaStreamTrack interface: existence and properties of interface prototype object's @@unscopables property
 FAIL MediaStreamTrack interface: attribute isolated assert_true: The prototype object must have a property "isolated" expected true got false
+PASS Unscopable handled correctly for isolated property on MediaStreamTrack
 FAIL MediaStreamTrack interface: attribute onisolationchange assert_true: The prototype object must have a property "onisolationchange" expected true got false
+PASS Unscopable handled correctly for onisolationchange property on MediaStreamTrack
 PASS MediaStreamTrack must be primary interface of idlTestObjects.mediaStreamTrack
 FAIL Stringification of idlTestObjects.mediaStreamTrack Cannot read property 'has_stringifier' of undefined
 FAIL MediaStreamTrack interface: idlTestObjects.mediaStreamTrack must inherit property "isolated" with the proper type assert_inherits: property "isolated" not found in prototype chain
@@ -23,56 +26,107 @@
 PASS RTCPeerConnection interface object name
 FAIL RTCPeerConnection interface: existence and properties of interface prototype object Cannot read property 'has_extended_attribute' of undefined
 PASS RTCPeerConnection interface: existence and properties of interface prototype object's "constructor" property
+PASS RTCPeerConnection interface: existence and properties of interface prototype object's @@unscopables property
 PASS RTCPeerConnection interface: operation createOffer(RTCOfferOptions)
+PASS Unscopable handled correctly for createOffer(RTCOfferOptions) on RTCPeerConnection
 PASS RTCPeerConnection interface: operation createAnswer(RTCAnswerOptions)
+PASS Unscopable handled correctly for createAnswer(RTCAnswerOptions) on RTCPeerConnection
 PASS RTCPeerConnection interface: operation setLocalDescription(RTCSessionDescriptionInit)
+PASS Unscopable handled correctly for setLocalDescription(RTCSessionDescriptionInit) on RTCPeerConnection
 PASS RTCPeerConnection interface: attribute localDescription
+PASS Unscopable handled correctly for localDescription property on RTCPeerConnection
 FAIL RTCPeerConnection interface: attribute currentLocalDescription assert_true: The prototype object must have a property "currentLocalDescription" expected true got false
+PASS Unscopable handled correctly for currentLocalDescription property on RTCPeerConnection
 FAIL RTCPeerConnection interface: attribute pendingLocalDescription assert_true: The prototype object must have a property "pendingLocalDescription" expected true got false
+PASS Unscopable handled correctly for pendingLocalDescription property on RTCPeerConnection
 PASS RTCPeerConnection interface: operation setRemoteDescription(RTCSessionDescriptionInit)
+PASS Unscopable handled correctly for setRemoteDescription(RTCSessionDescriptionInit) on RTCPeerConnection
 PASS RTCPeerConnection interface: attribute remoteDescription
+PASS Unscopable handled correctly for remoteDescription property on RTCPeerConnection
 FAIL RTCPeerConnection interface: attribute currentRemoteDescription assert_true: The prototype object must have a property "currentRemoteDescription" expected true got false
+PASS Unscopable handled correctly for currentRemoteDescription property on RTCPeerConnection
 FAIL RTCPeerConnection interface: attribute pendingRemoteDescription assert_true: The prototype object must have a property "pendingRemoteDescription" expected true got false
+PASS Unscopable handled correctly for pendingRemoteDescription property on RTCPeerConnection
 PASS RTCPeerConnection interface: operation addIceCandidate([object Object],[object Object])
+PASS Unscopable handled correctly for addIceCandidate([object Object],[object Object]) on RTCPeerConnection
 PASS RTCPeerConnection interface: attribute signalingState
+PASS Unscopable handled correctly for signalingState property on RTCPeerConnection
 PASS RTCPeerConnection interface: attribute iceGatheringState
+PASS Unscopable handled correctly for iceGatheringState property on RTCPeerConnection
 PASS RTCPeerConnection interface: attribute iceConnectionState
+PASS Unscopable handled correctly for iceConnectionState property on RTCPeerConnection
 FAIL RTCPeerConnection interface: attribute connectionState assert_true: The prototype object must have a property "connectionState" expected true got false
+PASS Unscopable handled correctly for connectionState property on RTCPeerConnection
 FAIL RTCPeerConnection interface: attribute canTrickleIceCandidates assert_true: The prototype object must have a property "canTrickleIceCandidates" expected true got false
+PASS Unscopable handled correctly for canTrickleIceCandidates property on RTCPeerConnection
 FAIL RTCPeerConnection interface: operation getDefaultIceServers() assert_own_property: interface object missing static operation expected property "getDefaultIceServers" missing
+PASS Unscopable handled correctly for getDefaultIceServers() on RTCPeerConnection
 FAIL RTCPeerConnection interface: operation getConfiguration() assert_own_property: interface prototype object missing non-static operation expected property "getConfiguration" missing
+PASS Unscopable handled correctly for getConfiguration() on RTCPeerConnection
 PASS RTCPeerConnection interface: operation setConfiguration(RTCConfiguration)
+PASS Unscopable handled correctly for setConfiguration(RTCConfiguration) on RTCPeerConnection
 PASS RTCPeerConnection interface: operation close()
+PASS Unscopable handled correctly for close() on RTCPeerConnection
 PASS RTCPeerConnection interface: attribute onnegotiationneeded
+PASS Unscopable handled correctly for onnegotiationneeded property on RTCPeerConnection
 PASS RTCPeerConnection interface: attribute onicecandidate
+PASS Unscopable handled correctly for onicecandidate property on RTCPeerConnection
 FAIL RTCPeerConnection interface: attribute onicecandidateerror assert_true: The prototype object must have a property "onicecandidateerror" expected true got false
+PASS Unscopable handled correctly for onicecandidateerror property on RTCPeerConnection
 PASS RTCPeerConnection interface: attribute onsignalingstatechange
+PASS Unscopable handled correctly for onsignalingstatechange property on RTCPeerConnection
 PASS RTCPeerConnection interface: attribute oniceconnectionstatechange
+PASS Unscopable handled correctly for oniceconnectionstatechange property on RTCPeerConnection
 PASS RTCPeerConnection interface: attribute onicegatheringstatechange
+PASS Unscopable handled correctly for onicegatheringstatechange property on RTCPeerConnection
 FAIL RTCPeerConnection interface: attribute onconnectionstatechange assert_true: The prototype object must have a property "onconnectionstatechange" expected true got false
+PASS Unscopable handled correctly for onconnectionstatechange property on RTCPeerConnection
 FAIL RTCPeerConnection interface: attribute onfingerprintfailure assert_true: The prototype object must have a property "onfingerprintfailure" expected true got false
+PASS Unscopable handled correctly for onfingerprintfailure property on RTCPeerConnection
 PASS RTCPeerConnection interface: operation createOffer(RTCSessionDescriptionCallback, RTCPeerConnectionErrorCallback, RTCOfferOptions)
+PASS Unscopable handled correctly for createOffer(RTCSessionDescriptionCallback, RTCPeerConnectionErrorCallback, RTCOfferOptions) on RTCPeerConnection
 PASS RTCPeerConnection interface: operation setLocalDescription(RTCSessionDescriptionInit, VoidFunction, RTCPeerConnectionErrorCallback)
+PASS Unscopable handled correctly for setLocalDescription(RTCSessionDescriptionInit, VoidFunction, RTCPeerConnectionErrorCallback) on RTCPeerConnection
 PASS RTCPeerConnection interface: operation createAnswer(RTCSessionDescriptionCallback, RTCPeerConnectionErrorCallback)
+PASS Unscopable handled correctly for createAnswer(RTCSessionDescriptionCallback, RTCPeerConnectionErrorCallback) on RTCPeerConnection
 PASS RTCPeerConnection interface: operation setRemoteDescription(RTCSessionDescriptionInit, VoidFunction, RTCPeerConnectionErrorCallback)
+PASS Unscopable handled correctly for setRemoteDescription(RTCSessionDescriptionInit, VoidFunction, RTCPeerConnectionErrorCallback) on RTCPeerConnection
 PASS RTCPeerConnection interface: operation addIceCandidate([object Object],[object Object], VoidFunction, RTCPeerConnectionErrorCallback)
+PASS Unscopable handled correctly for addIceCandidate([object Object],[object Object], VoidFunction, RTCPeerConnectionErrorCallback) on RTCPeerConnection
 PASS RTCPeerConnection interface: operation generateCertificate(AlgorithmIdentifier)
+PASS Unscopable handled correctly for generateCertificate(AlgorithmIdentifier) on RTCPeerConnection
 PASS RTCPeerConnection interface: operation getSenders()
+PASS Unscopable handled correctly for getSenders() on RTCPeerConnection
 PASS RTCPeerConnection interface: operation getReceivers()
+PASS Unscopable handled correctly for getReceivers() on RTCPeerConnection
 FAIL RTCPeerConnection interface: operation getTransceivers() assert_own_property: interface prototype object missing non-static operation expected property "getTransceivers" missing
+PASS Unscopable handled correctly for getTransceivers() on RTCPeerConnection
 PASS RTCPeerConnection interface: operation addTrack(MediaStreamTrack, MediaStream)
+PASS Unscopable handled correctly for addTrack(MediaStreamTrack, MediaStream) on RTCPeerConnection
 PASS RTCPeerConnection interface: operation removeTrack(RTCRtpSender)
+PASS Unscopable handled correctly for removeTrack(RTCRtpSender) on RTCPeerConnection
 FAIL RTCPeerConnection interface: operation addTransceiver([object Object],[object Object], RTCRtpTransceiverInit) assert_own_property: interface prototype object missing non-static operation expected property "addTransceiver" missing
+PASS Unscopable handled correctly for addTransceiver([object Object],[object Object], RTCRtpTransceiverInit) on RTCPeerConnection
 PASS RTCPeerConnection interface: attribute ontrack
+PASS Unscopable handled correctly for ontrack property on RTCPeerConnection
 FAIL RTCPeerConnection interface: attribute sctp assert_true: The prototype object must have a property "sctp" expected true got false
+PASS Unscopable handled correctly for sctp property on RTCPeerConnection
 PASS RTCPeerConnection interface: operation createDataChannel(USVString, RTCDataChannelInit)
+PASS Unscopable handled correctly for createDataChannel(USVString, RTCDataChannelInit) on RTCPeerConnection
 PASS RTCPeerConnection interface: attribute ondatachannel
+PASS Unscopable handled correctly for ondatachannel property on RTCPeerConnection
 PASS RTCPeerConnection interface: operation getStats(MediaStreamTrack)
+PASS Unscopable handled correctly for getStats(MediaStreamTrack) on RTCPeerConnection
 FAIL RTCPeerConnection interface: operation setIdentityProvider(DOMString, RTCIdentityProviderOptions) assert_own_property: interface prototype object missing non-static operation expected property "setIdentityProvider" missing
+PASS Unscopable handled correctly for setIdentityProvider(DOMString, RTCIdentityProviderOptions) on RTCPeerConnection
 FAIL RTCPeerConnection interface: operation getIdentityAssertion() assert_own_property: interface prototype object missing non-static operation expected property "getIdentityAssertion" missing
+PASS Unscopable handled correctly for getIdentityAssertion() on RTCPeerConnection
 FAIL RTCPeerConnection interface: attribute peerIdentity assert_true: The prototype object must have a property "peerIdentity" expected true got false
+PASS Unscopable handled correctly for peerIdentity property on RTCPeerConnection
 FAIL RTCPeerConnection interface: attribute idpLoginUrl assert_true: The prototype object must have a property "idpLoginUrl" expected true got false
+PASS Unscopable handled correctly for idpLoginUrl property on RTCPeerConnection
 FAIL RTCPeerConnection interface: attribute idpErrorInfo assert_true: The prototype object must have a property "idpErrorInfo" expected true got false
+PASS Unscopable handled correctly for idpErrorInfo property on RTCPeerConnection
 PASS RTCPeerConnection must be primary interface of new RTCPeerConnection()
 FAIL Stringification of new RTCPeerConnection() Cannot read property 'has_stringifier' of undefined
 PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "createOffer(RTCOfferOptions)" with the proper type
@@ -148,9 +202,13 @@
 PASS RTCSessionDescription interface object name
 PASS RTCSessionDescription interface: existence and properties of interface prototype object
 PASS RTCSessionDescription interface: existence and properties of interface prototype object's "constructor" property
+PASS RTCSessionDescription interface: existence and properties of interface prototype object's @@unscopables property
 FAIL RTCSessionDescription interface: attribute type assert_equals: setter must be undefined for readonly attributes expected (undefined) undefined but got (function) function "function () { [native code] }"
+PASS Unscopable handled correctly for type property on RTCSessionDescription
 FAIL RTCSessionDescription interface: attribute sdp assert_equals: setter must be undefined for readonly attributes expected (undefined) undefined but got (function) function "function () { [native code] }"
+PASS Unscopable handled correctly for sdp property on RTCSessionDescription
 PASS RTCSessionDescription interface: operation toJSON()
+PASS Unscopable handled correctly for toJSON() on RTCSessionDescription
 PASS RTCSessionDescription must be primary interface of new RTCSessionDescription({ type: 'offer' })
 PASS Stringification of new RTCSessionDescription({ type: 'offer' })
 PASS RTCSessionDescription interface: new RTCSessionDescription({ type: 'offer' }) must inherit property "type" with the proper type
@@ -162,21 +220,37 @@
 PASS RTCIceCandidate interface object name
 PASS RTCIceCandidate interface: existence and properties of interface prototype object
 PASS RTCIceCandidate interface: existence and properties of interface prototype object's "constructor" property
+PASS RTCIceCandidate interface: existence and properties of interface prototype object's @@unscopables property
 FAIL RTCIceCandidate interface: attribute candidate assert_equals: setter must be undefined for readonly attributes expected (undefined) undefined but got (function) function "function () { [native code] }"
+PASS Unscopable handled correctly for candidate property on RTCIceCandidate
 FAIL RTCIceCandidate interface: attribute sdpMid assert_equals: setter must be undefined for readonly attributes expected (undefined) undefined but got (function) function "function () { [native code] }"
+PASS Unscopable handled correctly for sdpMid property on RTCIceCandidate
 FAIL RTCIceCandidate interface: attribute sdpMLineIndex assert_equals: setter must be undefined for readonly attributes expected (undefined) undefined but got (function) function "function () { [native code] }"
+PASS Unscopable handled correctly for sdpMLineIndex property on RTCIceCandidate
 FAIL RTCIceCandidate interface: attribute foundation assert_true: The prototype object must have a property "foundation" expected true got false
+PASS Unscopable handled correctly for foundation property on RTCIceCandidate
 FAIL RTCIceCandidate interface: attribute component assert_true: The prototype object must have a property "component" expected true got false
+PASS Unscopable handled correctly for component property on RTCIceCandidate
 FAIL RTCIceCandidate interface: attribute priority assert_true: The prototype object must have a property "priority" expected true got false
+PASS Unscopable handled correctly for priority property on RTCIceCandidate
 FAIL RTCIceCandidate interface: attribute ip assert_true: The prototype object must have a property "ip" expected true got false
+PASS Unscopable handled correctly for ip property on RTCIceCandidate
 FAIL RTCIceCandidate interface: attribute protocol assert_true: The prototype object must have a property "protocol" expected true got false
+PASS Unscopable handled correctly for protocol property on RTCIceCandidate
 FAIL RTCIceCandidate interface: attribute port assert_true: The prototype object must have a property "port" expected true got false
+PASS Unscopable handled correctly for port property on RTCIceCandidate
 FAIL RTCIceCandidate interface: attribute type assert_true: The prototype object must have a property "type" expected true got false
+PASS Unscopable handled correctly for type property on RTCIceCandidate
 FAIL RTCIceCandidate interface: attribute tcpType assert_true: The prototype object must have a property "tcpType" expected true got false
+PASS Unscopable handled correctly for tcpType property on RTCIceCandidate
 FAIL RTCIceCandidate interface: attribute relatedAddress assert_true: The prototype object must have a property "relatedAddress" expected true got false
+PASS Unscopable handled correctly for relatedAddress property on RTCIceCandidate
 FAIL RTCIceCandidate interface: attribute relatedPort assert_true: The prototype object must have a property "relatedPort" expected true got false
+PASS Unscopable handled correctly for relatedPort property on RTCIceCandidate
 FAIL RTCIceCandidate interface: attribute usernameFragment assert_true: The prototype object must have a property "usernameFragment" expected true got false
+PASS Unscopable handled correctly for usernameFragment property on RTCIceCandidate
 PASS RTCIceCandidate interface: operation toJSON()
+PASS Unscopable handled correctly for toJSON() on RTCIceCandidate
 FAIL RTCIceCandidate must be primary interface of new RTCIceCandidate({ sdpMid: 1 }) assert_equals: Unexpected exception when evaluating object expected null but got object "TypeMismatchError: Failed to construct 'RTCIceCandidate': The 'candidate' property is not a string, or is empty."
 FAIL Stringification of new RTCIceCandidate({ sdpMid: 1 }) assert_equals: Unexpected exception when evaluating object expected null but got object "TypeMismatchError: Failed to construct 'RTCIceCandidate': The 'candidate' property is not a string, or is empty."
 FAIL RTCIceCandidate interface: new RTCIceCandidate({ sdpMid: 1 }) must inherit property "candidate" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeMismatchError: Failed to construct 'RTCIceCandidate': The 'candidate' property is not a string, or is empty."
@@ -200,8 +274,11 @@
 PASS RTCPeerConnectionIceEvent interface object name
 FAIL RTCPeerConnectionIceEvent interface: existence and properties of interface prototype object Cannot read property 'has_extended_attribute' of undefined
 PASS RTCPeerConnectionIceEvent interface: existence and properties of interface prototype object's "constructor" property
+PASS RTCPeerConnectionIceEvent interface: existence and properties of interface prototype object's @@unscopables property
 PASS RTCPeerConnectionIceEvent interface: attribute candidate
+PASS Unscopable handled correctly for candidate property on RTCPeerConnectionIceEvent
 FAIL RTCPeerConnectionIceEvent interface: attribute url assert_true: The prototype object must have a property "url" expected true got false
+PASS Unscopable handled correctly for url property on RTCPeerConnectionIceEvent
 PASS RTCPeerConnectionIceEvent must be primary interface of new RTCPeerConnectionIceEvent('ice')
 FAIL Stringification of new RTCPeerConnectionIceEvent('ice') Cannot read property 'has_stringifier' of undefined
 PASS RTCPeerConnectionIceEvent interface: new RTCPeerConnectionIceEvent('ice') must inherit property "candidate" with the proper type
@@ -211,10 +288,15 @@
 FAIL RTCPeerConnectionIceErrorEvent interface object name assert_own_property: self does not have own property "RTCPeerConnectionIceErrorEvent" expected property "RTCPeerConnectionIceErrorEvent" missing
 FAIL RTCPeerConnectionIceErrorEvent interface: existence and properties of interface prototype object assert_own_property: self does not have own property "RTCPeerConnectionIceErrorEvent" expected property "RTCPeerConnectionIceErrorEvent" missing
 FAIL RTCPeerConnectionIceErrorEvent interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "RTCPeerConnectionIceErrorEvent" expected property "RTCPeerConnectionIceErrorEvent" missing
+FAIL RTCPeerConnectionIceErrorEvent interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "RTCPeerConnectionIceErrorEvent" expected property "RTCPeerConnectionIceErrorEvent" missing
 FAIL RTCPeerConnectionIceErrorEvent interface: attribute hostCandidate assert_own_property: self does not have own property "RTCPeerConnectionIceErrorEvent" expected property "RTCPeerConnectionIceErrorEvent" missing
+PASS Unscopable handled correctly for hostCandidate property on RTCPeerConnectionIceErrorEvent
 FAIL RTCPeerConnectionIceErrorEvent interface: attribute url assert_own_property: self does not have own property "RTCPeerConnectionIceErrorEvent" expected property "RTCPeerConnectionIceErrorEvent" missing
+PASS Unscopable handled correctly for url property on RTCPeerConnectionIceErrorEvent
 FAIL RTCPeerConnectionIceErrorEvent interface: attribute errorCode assert_own_property: self does not have own property "RTCPeerConnectionIceErrorEvent" expected property "RTCPeerConnectionIceErrorEvent" missing
+PASS Unscopable handled correctly for errorCode property on RTCPeerConnectionIceErrorEvent
 FAIL RTCPeerConnectionIceErrorEvent interface: attribute errorText assert_own_property: self does not have own property "RTCPeerConnectionIceErrorEvent" expected property "RTCPeerConnectionIceErrorEvent" missing
+PASS Unscopable handled correctly for errorText property on RTCPeerConnectionIceErrorEvent
 FAIL RTCPeerConnectionIceErrorEvent must be primary interface of new RTCPeerConnectionIceErrorEvent('ice-error', { errorCode: 701 }); assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: RTCPeerConnectionIceErrorEvent is not defined"
 FAIL Stringification of new RTCPeerConnectionIceErrorEvent('ice-error', { errorCode: 701 }); assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: RTCPeerConnectionIceErrorEvent is not defined"
 FAIL RTCPeerConnectionIceErrorEvent interface: new RTCPeerConnectionIceErrorEvent('ice-error', { errorCode: 701 }); must inherit property "hostCandidate" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: RTCPeerConnectionIceErrorEvent is not defined"
@@ -226,9 +308,13 @@
 PASS RTCCertificate interface object name
 PASS RTCCertificate interface: existence and properties of interface prototype object
 PASS RTCCertificate interface: existence and properties of interface prototype object's "constructor" property
+PASS RTCCertificate interface: existence and properties of interface prototype object's @@unscopables property
 PASS RTCCertificate interface: attribute expires
+PASS Unscopable handled correctly for expires property on RTCCertificate
 PASS RTCCertificate interface: operation getFingerprints()
+PASS Unscopable handled correctly for getFingerprints() on RTCCertificate
 FAIL RTCCertificate interface: operation getAlgorithm() assert_own_property: interface prototype object missing non-static operation expected property "getAlgorithm" missing
+PASS Unscopable handled correctly for getAlgorithm() on RTCCertificate
 PASS RTCCertificate must be primary interface of idlTestObjects.certificate
 PASS Stringification of idlTestObjects.certificate
 PASS RTCCertificate interface: idlTestObjects.certificate must inherit property "expires" with the proper type
@@ -239,15 +325,25 @@
 PASS RTCRtpSender interface object name
 PASS RTCRtpSender interface: existence and properties of interface prototype object
 PASS RTCRtpSender interface: existence and properties of interface prototype object's "constructor" property
+PASS RTCRtpSender interface: existence and properties of interface prototype object's @@unscopables property
 PASS RTCRtpSender interface: attribute track
+PASS Unscopable handled correctly for track property on RTCRtpSender
 FAIL RTCRtpSender interface: attribute transport assert_true: The prototype object must have a property "transport" expected true got false
+PASS Unscopable handled correctly for transport property on RTCRtpSender
 FAIL RTCRtpSender interface: attribute rtcpTransport assert_true: The prototype object must have a property "rtcpTransport" expected true got false
+PASS Unscopable handled correctly for rtcpTransport property on RTCRtpSender
 FAIL RTCRtpSender interface: operation getCapabilities(DOMString) assert_own_property: interface object missing static operation expected property "getCapabilities" missing
+PASS Unscopable handled correctly for getCapabilities(DOMString) on RTCRtpSender
 FAIL RTCRtpSender interface: operation setParameters(RTCRtpParameters) assert_own_property: interface prototype object missing non-static operation expected property "setParameters" missing
+PASS Unscopable handled correctly for setParameters(RTCRtpParameters) on RTCRtpSender
 FAIL RTCRtpSender interface: operation getParameters() assert_own_property: interface prototype object missing non-static operation expected property "getParameters" missing
+PASS Unscopable handled correctly for getParameters() on RTCRtpSender
 PASS RTCRtpSender interface: operation replaceTrack(MediaStreamTrack)
+PASS Unscopable handled correctly for replaceTrack(MediaStreamTrack) on RTCRtpSender
 FAIL RTCRtpSender interface: operation getStats() assert_own_property: interface prototype object missing non-static operation expected property "getStats" missing
+PASS Unscopable handled correctly for getStats() on RTCRtpSender
 PASS RTCRtpSender interface: attribute dtmf
+PASS Unscopable handled correctly for dtmf property on RTCRtpSender
 FAIL RTCRtpSender must be primary interface of new RTCPeerConnection().addTransceiver('audio').sender assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
 FAIL Stringification of new RTCPeerConnection().addTransceiver('audio').sender assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
 FAIL RTCRtpSender interface: new RTCPeerConnection().addTransceiver('audio').sender must inherit property "track" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
@@ -267,14 +363,23 @@
 PASS RTCRtpReceiver interface object name
 PASS RTCRtpReceiver interface: existence and properties of interface prototype object
 PASS RTCRtpReceiver interface: existence and properties of interface prototype object's "constructor" property
+PASS RTCRtpReceiver interface: existence and properties of interface prototype object's @@unscopables property
 PASS RTCRtpReceiver interface: attribute track
+PASS Unscopable handled correctly for track property on RTCRtpReceiver
 FAIL RTCRtpReceiver interface: attribute transport assert_true: The prototype object must have a property "transport" expected true got false
+PASS Unscopable handled correctly for transport property on RTCRtpReceiver
 FAIL RTCRtpReceiver interface: attribute rtcpTransport assert_true: The prototype object must have a property "rtcpTransport" expected true got false
+PASS Unscopable handled correctly for rtcpTransport property on RTCRtpReceiver
 FAIL RTCRtpReceiver interface: operation getCapabilities(DOMString) assert_own_property: interface object missing static operation expected property "getCapabilities" missing
+PASS Unscopable handled correctly for getCapabilities(DOMString) on RTCRtpReceiver
 FAIL RTCRtpReceiver interface: operation getParameters() assert_own_property: interface prototype object missing non-static operation expected property "getParameters" missing
+PASS Unscopable handled correctly for getParameters() on RTCRtpReceiver
 PASS RTCRtpReceiver interface: operation getContributingSources()
+PASS Unscopable handled correctly for getContributingSources() on RTCRtpReceiver
 FAIL RTCRtpReceiver interface: operation getSynchronizationSources() assert_own_property: interface prototype object missing non-static operation expected property "getSynchronizationSources" missing
+PASS Unscopable handled correctly for getSynchronizationSources() on RTCRtpReceiver
 FAIL RTCRtpReceiver interface: operation getStats() assert_own_property: interface prototype object missing non-static operation expected property "getStats" missing
+PASS Unscopable handled correctly for getStats() on RTCRtpReceiver
 FAIL RTCRtpReceiver must be primary interface of new RTCPeerConnection().addTransceiver('audio').receiver assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
 FAIL Stringification of new RTCPeerConnection().addTransceiver('audio').receiver assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
 FAIL RTCRtpReceiver interface: new RTCPeerConnection().addTransceiver('audio').receiver must inherit property "track" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
@@ -291,32 +396,51 @@
 PASS RTCRtpContributingSource interface object name
 PASS RTCRtpContributingSource interface: existence and properties of interface prototype object
 PASS RTCRtpContributingSource interface: existence and properties of interface prototype object's "constructor" property
+PASS RTCRtpContributingSource interface: existence and properties of interface prototype object's @@unscopables property
 PASS RTCRtpContributingSource interface: attribute timestamp
+PASS Unscopable handled correctly for timestamp property on RTCRtpContributingSource
 PASS RTCRtpContributingSource interface: attribute source
+PASS Unscopable handled correctly for source property on RTCRtpContributingSource
 FAIL RTCRtpContributingSource interface: attribute audioLevel assert_true: The prototype object must have a property "audioLevel" expected true got false
+PASS Unscopable handled correctly for audioLevel property on RTCRtpContributingSource
 FAIL RTCRtpSynchronizationSource interface: existence and properties of interface object assert_own_property: self does not have own property "RTCRtpSynchronizationSource" expected property "RTCRtpSynchronizationSource" missing
 FAIL RTCRtpSynchronizationSource interface object length assert_own_property: self does not have own property "RTCRtpSynchronizationSource" expected property "RTCRtpSynchronizationSource" missing
 FAIL RTCRtpSynchronizationSource interface object name assert_own_property: self does not have own property "RTCRtpSynchronizationSource" expected property "RTCRtpSynchronizationSource" missing
 FAIL RTCRtpSynchronizationSource interface: existence and properties of interface prototype object assert_own_property: self does not have own property "RTCRtpSynchronizationSource" expected property "RTCRtpSynchronizationSource" missing
 FAIL RTCRtpSynchronizationSource interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "RTCRtpSynchronizationSource" expected property "RTCRtpSynchronizationSource" missing
+FAIL RTCRtpSynchronizationSource interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "RTCRtpSynchronizationSource" expected property "RTCRtpSynchronizationSource" missing
 FAIL RTCRtpSynchronizationSource interface: attribute timestamp assert_own_property: self does not have own property "RTCRtpSynchronizationSource" expected property "RTCRtpSynchronizationSource" missing
+PASS Unscopable handled correctly for timestamp property on RTCRtpSynchronizationSource
 FAIL RTCRtpSynchronizationSource interface: attribute source assert_own_property: self does not have own property "RTCRtpSynchronizationSource" expected property "RTCRtpSynchronizationSource" missing
+PASS Unscopable handled correctly for source property on RTCRtpSynchronizationSource
 FAIL RTCRtpSynchronizationSource interface: attribute audioLevel assert_own_property: self does not have own property "RTCRtpSynchronizationSource" expected property "RTCRtpSynchronizationSource" missing
+PASS Unscopable handled correctly for audioLevel property on RTCRtpSynchronizationSource
 FAIL RTCRtpSynchronizationSource interface: attribute voiceActivityFlag assert_own_property: self does not have own property "RTCRtpSynchronizationSource" expected property "RTCRtpSynchronizationSource" missing
+PASS Unscopable handled correctly for voiceActivityFlag property on RTCRtpSynchronizationSource
 FAIL RTCRtpTransceiver interface: existence and properties of interface object assert_own_property: self does not have own property "RTCRtpTransceiver" expected property "RTCRtpTransceiver" missing
 FAIL RTCRtpTransceiver interface object length assert_own_property: self does not have own property "RTCRtpTransceiver" expected property "RTCRtpTransceiver" missing
 FAIL RTCRtpTransceiver interface object name assert_own_property: self does not have own property "RTCRtpTransceiver" expected property "RTCRtpTransceiver" missing
 FAIL RTCRtpTransceiver interface: existence and properties of interface prototype object assert_own_property: self does not have own property "RTCRtpTransceiver" expected property "RTCRtpTransceiver" missing
 FAIL RTCRtpTransceiver interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "RTCRtpTransceiver" expected property "RTCRtpTransceiver" missing
+FAIL RTCRtpTransceiver interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "RTCRtpTransceiver" expected property "RTCRtpTransceiver" missing
 FAIL RTCRtpTransceiver interface: attribute mid assert_own_property: self does not have own property "RTCRtpTransceiver" expected property "RTCRtpTransceiver" missing
+PASS Unscopable handled correctly for mid property on RTCRtpTransceiver
 FAIL RTCRtpTransceiver interface: attribute sender assert_own_property: self does not have own property "RTCRtpTransceiver" expected property "RTCRtpTransceiver" missing
+PASS Unscopable handled correctly for sender property on RTCRtpTransceiver
 FAIL RTCRtpTransceiver interface: attribute receiver assert_own_property: self does not have own property "RTCRtpTransceiver" expected property "RTCRtpTransceiver" missing
+PASS Unscopable handled correctly for receiver property on RTCRtpTransceiver
 FAIL RTCRtpTransceiver interface: attribute stopped assert_own_property: self does not have own property "RTCRtpTransceiver" expected property "RTCRtpTransceiver" missing
+PASS Unscopable handled correctly for stopped property on RTCRtpTransceiver
 FAIL RTCRtpTransceiver interface: attribute direction assert_own_property: self does not have own property "RTCRtpTransceiver" expected property "RTCRtpTransceiver" missing
+PASS Unscopable handled correctly for direction property on RTCRtpTransceiver
 FAIL RTCRtpTransceiver interface: attribute currentDirection assert_own_property: self does not have own property "RTCRtpTransceiver" expected property "RTCRtpTransceiver" missing
+PASS Unscopable handled correctly for currentDirection property on RTCRtpTransceiver
 FAIL RTCRtpTransceiver interface: operation setDirection(RTCRtpTransceiverDirection) assert_own_property: self does not have own property "RTCRtpTransceiver" expected property "RTCRtpTransceiver" missing
+PASS Unscopable handled correctly for setDirection(RTCRtpTransceiverDirection) on RTCRtpTransceiver
 FAIL RTCRtpTransceiver interface: operation stop() assert_own_property: self does not have own property "RTCRtpTransceiver" expected property "RTCRtpTransceiver" missing
+PASS Unscopable handled correctly for stop() on RTCRtpTransceiver
 FAIL RTCRtpTransceiver interface: operation setCodecPreferences([object Object]) assert_own_property: self does not have own property "RTCRtpTransceiver" expected property "RTCRtpTransceiver" missing
+PASS Unscopable handled correctly for setCodecPreferences([object Object]) on RTCRtpTransceiver
 FAIL RTCRtpTransceiver must be primary interface of new RTCPeerConnection().addTransceiver('audio') assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
 FAIL Stringification of new RTCPeerConnection().addTransceiver('audio') assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
 FAIL RTCRtpTransceiver interface: new RTCPeerConnection().addTransceiver('audio') must inherit property "mid" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
@@ -335,10 +459,15 @@
 FAIL RTCDtlsTransport interface object name assert_own_property: self does not have own property "RTCDtlsTransport" expected property "RTCDtlsTransport" missing
 FAIL RTCDtlsTransport interface: existence and properties of interface prototype object assert_own_property: self does not have own property "RTCDtlsTransport" expected property "RTCDtlsTransport" missing
 FAIL RTCDtlsTransport interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "RTCDtlsTransport" expected property "RTCDtlsTransport" missing
+FAIL RTCDtlsTransport interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "RTCDtlsTransport" expected property "RTCDtlsTransport" missing
 FAIL RTCDtlsTransport interface: attribute transport assert_own_property: self does not have own property "RTCDtlsTransport" expected property "RTCDtlsTransport" missing
+PASS Unscopable handled correctly for transport property on RTCDtlsTransport
 FAIL RTCDtlsTransport interface: attribute state assert_own_property: self does not have own property "RTCDtlsTransport" expected property "RTCDtlsTransport" missing
+PASS Unscopable handled correctly for state property on RTCDtlsTransport
 FAIL RTCDtlsTransport interface: operation getRemoteCertificates() assert_own_property: self does not have own property "RTCDtlsTransport" expected property "RTCDtlsTransport" missing
+PASS Unscopable handled correctly for getRemoteCertificates() on RTCDtlsTransport
 FAIL RTCDtlsTransport interface: attribute onstatechange assert_own_property: self does not have own property "RTCDtlsTransport" expected property "RTCDtlsTransport" missing
+PASS Unscopable handled correctly for onstatechange property on RTCDtlsTransport
 FAIL RTCDtlsTransport must be primary interface of idlTestObjects.dtlsTransport assert_equals: wrong typeof object expected "object" but got "undefined"
 FAIL Stringification of idlTestObjects.dtlsTransport assert_equals: wrong typeof object expected "object" but got "undefined"
 FAIL RTCDtlsTransport interface: idlTestObjects.dtlsTransport must inherit property "transport" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
@@ -350,18 +479,31 @@
 FAIL RTCIceTransport interface object name assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing
 FAIL RTCIceTransport interface: existence and properties of interface prototype object assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing
 FAIL RTCIceTransport interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing
+FAIL RTCIceTransport interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing
 FAIL RTCIceTransport interface: attribute role assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing
+PASS Unscopable handled correctly for role property on RTCIceTransport
 FAIL RTCIceTransport interface: attribute component assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing
+PASS Unscopable handled correctly for component property on RTCIceTransport
 FAIL RTCIceTransport interface: attribute state assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing
+PASS Unscopable handled correctly for state property on RTCIceTransport
 FAIL RTCIceTransport interface: attribute gatheringState assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing
+PASS Unscopable handled correctly for gatheringState property on RTCIceTransport
 FAIL RTCIceTransport interface: operation getLocalCandidates() assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing
+PASS Unscopable handled correctly for getLocalCandidates() on RTCIceTransport
 FAIL RTCIceTransport interface: operation getRemoteCandidates() assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing
+PASS Unscopable handled correctly for getRemoteCandidates() on RTCIceTransport
 FAIL RTCIceTransport interface: operation getSelectedCandidatePair() assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing
+PASS Unscopable handled correctly for getSelectedCandidatePair() on RTCIceTransport
 FAIL RTCIceTransport interface: operation getLocalParameters() assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing
+PASS Unscopable handled correctly for getLocalParameters() on RTCIceTransport
 FAIL RTCIceTransport interface: operation getRemoteParameters() assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing
+PASS Unscopable handled correctly for getRemoteParameters() on RTCIceTransport
 FAIL RTCIceTransport interface: attribute onstatechange assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing
+PASS Unscopable handled correctly for onstatechange property on RTCIceTransport
 FAIL RTCIceTransport interface: attribute ongatheringstatechange assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing
+PASS Unscopable handled correctly for ongatheringstatechange property on RTCIceTransport
 FAIL RTCIceTransport interface: attribute onselectedcandidatepairchange assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing
+PASS Unscopable handled correctly for onselectedcandidatepairchange property on RTCIceTransport
 FAIL RTCIceTransport must be primary interface of idlTestObjects.iceTransport assert_equals: wrong typeof object expected "object" but got "undefined"
 FAIL Stringification of idlTestObjects.iceTransport assert_equals: wrong typeof object expected "object" but got "undefined"
 FAIL RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "role" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
@@ -381,10 +523,15 @@
 PASS RTCTrackEvent interface object name
 FAIL RTCTrackEvent interface: existence and properties of interface prototype object Cannot read property 'has_extended_attribute' of undefined
 PASS RTCTrackEvent interface: existence and properties of interface prototype object's "constructor" property
+PASS RTCTrackEvent interface: existence and properties of interface prototype object's @@unscopables property
 PASS RTCTrackEvent interface: attribute receiver
+PASS Unscopable handled correctly for receiver property on RTCTrackEvent
 PASS RTCTrackEvent interface: attribute track
+PASS Unscopable handled correctly for track property on RTCTrackEvent
 PASS RTCTrackEvent interface: attribute streams
+PASS Unscopable handled correctly for streams property on RTCTrackEvent
 FAIL RTCTrackEvent interface: attribute transceiver assert_true: The prototype object must have a property "transceiver" expected true got false
+PASS Unscopable handled correctly for transceiver property on RTCTrackEvent
 FAIL RTCTrackEvent must be primary interface of initTrackEvent() assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: pc.addTransceiver is not a function"
 FAIL Stringification of initTrackEvent() assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: pc.addTransceiver is not a function"
 FAIL RTCTrackEvent interface: initTrackEvent() must inherit property "receiver" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: pc.addTransceiver is not a function"
@@ -396,8 +543,11 @@
 FAIL RTCSctpTransport interface object name assert_own_property: self does not have own property "RTCSctpTransport" expected property "RTCSctpTransport" missing
 FAIL RTCSctpTransport interface: existence and properties of interface prototype object assert_own_property: self does not have own property "RTCSctpTransport" expected property "RTCSctpTransport" missing
 FAIL RTCSctpTransport interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "RTCSctpTransport" expected property "RTCSctpTransport" missing
+FAIL RTCSctpTransport interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "RTCSctpTransport" expected property "RTCSctpTransport" missing
 FAIL RTCSctpTransport interface: attribute transport assert_own_property: self does not have own property "RTCSctpTransport" expected property "RTCSctpTransport" missing
+PASS Unscopable handled correctly for transport property on RTCSctpTransport
 FAIL RTCSctpTransport interface: attribute maxMessageSize assert_own_property: self does not have own property "RTCSctpTransport" expected property "RTCSctpTransport" missing
+PASS Unscopable handled correctly for maxMessageSize property on RTCSctpTransport
 FAIL RTCSctpTransport must be primary interface of idlTestObjects.sctpTransport assert_equals: wrong typeof object expected "object" but got "undefined"
 FAIL Stringification of idlTestObjects.sctpTransport assert_equals: wrong typeof object expected "object" but got "undefined"
 FAIL RTCSctpTransport interface: idlTestObjects.sctpTransport must inherit property "transport" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
@@ -407,28 +557,51 @@
 PASS RTCDataChannel interface object name
 FAIL RTCDataChannel interface: existence and properties of interface prototype object Cannot read property 'has_extended_attribute' of undefined
 PASS RTCDataChannel interface: existence and properties of interface prototype object's "constructor" property
+PASS RTCDataChannel interface: existence and properties of interface prototype object's @@unscopables property
 PASS RTCDataChannel interface: attribute label
+PASS Unscopable handled correctly for label property on RTCDataChannel
 PASS RTCDataChannel interface: attribute ordered
+PASS Unscopable handled correctly for ordered property on RTCDataChannel
 FAIL RTCDataChannel interface: attribute maxPacketLifeTime assert_true: The prototype object must have a property "maxPacketLifeTime" expected true got false
+PASS Unscopable handled correctly for maxPacketLifeTime property on RTCDataChannel
 PASS RTCDataChannel interface: attribute maxRetransmits
+PASS Unscopable handled correctly for maxRetransmits property on RTCDataChannel
 PASS RTCDataChannel interface: attribute protocol
+PASS Unscopable handled correctly for protocol property on RTCDataChannel
 PASS RTCDataChannel interface: attribute negotiated
+PASS Unscopable handled correctly for negotiated property on RTCDataChannel
 PASS RTCDataChannel interface: attribute id
+PASS Unscopable handled correctly for id property on RTCDataChannel
 FAIL RTCDataChannel interface: attribute priority assert_true: The prototype object must have a property "priority" expected true got false
+PASS Unscopable handled correctly for priority property on RTCDataChannel
 PASS RTCDataChannel interface: attribute readyState
+PASS Unscopable handled correctly for readyState property on RTCDataChannel
 PASS RTCDataChannel interface: attribute bufferedAmount
+PASS Unscopable handled correctly for bufferedAmount property on RTCDataChannel
 PASS RTCDataChannel interface: attribute bufferedAmountLowThreshold
+PASS Unscopable handled correctly for bufferedAmountLowThreshold property on RTCDataChannel
 PASS RTCDataChannel interface: attribute onopen
+PASS Unscopable handled correctly for onopen property on RTCDataChannel
 PASS RTCDataChannel interface: attribute onbufferedamountlow
+PASS Unscopable handled correctly for onbufferedamountlow property on RTCDataChannel
 PASS RTCDataChannel interface: attribute onerror
+PASS Unscopable handled correctly for onerror property on RTCDataChannel
 PASS RTCDataChannel interface: attribute onclose
+PASS Unscopable handled correctly for onclose property on RTCDataChannel
 PASS RTCDataChannel interface: operation close()
+PASS Unscopable handled correctly for close() on RTCDataChannel
 PASS RTCDataChannel interface: attribute onmessage
+PASS Unscopable handled correctly for onmessage property on RTCDataChannel
 PASS RTCDataChannel interface: attribute binaryType
+PASS Unscopable handled correctly for binaryType property on RTCDataChannel
 PASS RTCDataChannel interface: operation send(USVString)
+PASS Unscopable handled correctly for send(USVString) on RTCDataChannel
 PASS RTCDataChannel interface: operation send(Blob)
+PASS Unscopable handled correctly for send(Blob) on RTCDataChannel
 PASS RTCDataChannel interface: operation send(ArrayBuffer)
+PASS Unscopable handled correctly for send(ArrayBuffer) on RTCDataChannel
 PASS RTCDataChannel interface: operation send(ArrayBufferView)
+PASS Unscopable handled correctly for send(ArrayBufferView) on RTCDataChannel
 PASS RTCDataChannel must be primary interface of new RTCPeerConnection().createDataChannel('')
 FAIL Stringification of new RTCPeerConnection().createDataChannel('') Cannot read property 'has_stringifier' of undefined
 PASS RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "label" with the proper type
@@ -462,7 +635,9 @@
 PASS RTCDataChannelEvent interface object name
 FAIL RTCDataChannelEvent interface: existence and properties of interface prototype object Cannot read property 'has_extended_attribute' of undefined
 PASS RTCDataChannelEvent interface: existence and properties of interface prototype object's "constructor" property
+PASS RTCDataChannelEvent interface: existence and properties of interface prototype object's @@unscopables property
 PASS RTCDataChannelEvent interface: attribute channel
+PASS Unscopable handled correctly for channel property on RTCDataChannelEvent
 PASS RTCDataChannelEvent must be primary interface of new RTCDataChannelEvent('channel',
         { channel: new RTCPeerConnection().createDataChannel('') })
 FAIL Stringification of new RTCDataChannelEvent('channel',
@@ -474,20 +649,27 @@
 PASS RTCDTMFSender interface object name
 FAIL RTCDTMFSender interface: existence and properties of interface prototype object Cannot read property 'has_extended_attribute' of undefined
 PASS RTCDTMFSender interface: existence and properties of interface prototype object's "constructor" property
+PASS RTCDTMFSender interface: existence and properties of interface prototype object's @@unscopables property
 PASS RTCDTMFSender interface: operation insertDTMF(DOMString, unsigned long, unsigned long)
+PASS Unscopable handled correctly for insertDTMF(DOMString, unsigned long, unsigned long) on RTCDTMFSender
 PASS RTCDTMFSender interface: attribute ontonechange
+PASS Unscopable handled correctly for ontonechange property on RTCDTMFSender
 PASS RTCDTMFSender interface: attribute toneBuffer
+PASS Unscopable handled correctly for toneBuffer property on RTCDTMFSender
 FAIL RTCDTMFToneChangeEvent interface: existence and properties of interface object Cannot read property 'has_extended_attribute' of undefined
 PASS RTCDTMFToneChangeEvent interface object length
 PASS RTCDTMFToneChangeEvent interface object name
 FAIL RTCDTMFToneChangeEvent interface: existence and properties of interface prototype object Cannot read property 'has_extended_attribute' of undefined
 PASS RTCDTMFToneChangeEvent interface: existence and properties of interface prototype object's "constructor" property
+PASS RTCDTMFToneChangeEvent interface: existence and properties of interface prototype object's @@unscopables property
 PASS RTCDTMFToneChangeEvent interface: attribute tone
+PASS Unscopable handled correctly for tone property on RTCDTMFToneChangeEvent
 PASS RTCStatsReport interface: existence and properties of interface object
 PASS RTCStatsReport interface object length
 PASS RTCStatsReport interface object name
 PASS RTCStatsReport interface: existence and properties of interface prototype object
 PASS RTCStatsReport interface: existence and properties of interface prototype object's "constructor" property
+PASS RTCStatsReport interface: existence and properties of interface prototype object's @@unscopables property
 PASS RTCIdentityProviderGlobalScope interface: existence and properties of interface object
 PASS RTCIdentityProviderRegistrar interface: existence and properties of interface object
 FAIL RTCIdentityAssertion interface: existence and properties of interface object assert_own_property: self does not have own property "RTCIdentityAssertion" expected property "RTCIdentityAssertion" missing
@@ -495,14 +677,19 @@
 FAIL RTCIdentityAssertion interface object name assert_own_property: self does not have own property "RTCIdentityAssertion" expected property "RTCIdentityAssertion" missing
 FAIL RTCIdentityAssertion interface: existence and properties of interface prototype object assert_own_property: self does not have own property "RTCIdentityAssertion" expected property "RTCIdentityAssertion" missing
 FAIL RTCIdentityAssertion interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "RTCIdentityAssertion" expected property "RTCIdentityAssertion" missing
+FAIL RTCIdentityAssertion interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "RTCIdentityAssertion" expected property "RTCIdentityAssertion" missing
 FAIL RTCIdentityAssertion interface: attribute idp assert_own_property: self does not have own property "RTCIdentityAssertion" expected property "RTCIdentityAssertion" missing
+PASS Unscopable handled correctly for idp property on RTCIdentityAssertion
 FAIL RTCIdentityAssertion interface: attribute name assert_own_property: self does not have own property "RTCIdentityAssertion" expected property "RTCIdentityAssertion" missing
+PASS Unscopable handled correctly for name property on RTCIdentityAssertion
 FAIL RTCErrorEvent interface: existence and properties of interface object assert_own_property: self does not have own property "RTCErrorEvent" expected property "RTCErrorEvent" missing
 FAIL RTCErrorEvent interface object length assert_own_property: self does not have own property "RTCErrorEvent" expected property "RTCErrorEvent" missing
 FAIL RTCErrorEvent interface object name assert_own_property: self does not have own property "RTCErrorEvent" expected property "RTCErrorEvent" missing
 FAIL RTCErrorEvent interface: existence and properties of interface prototype object assert_own_property: self does not have own property "RTCErrorEvent" expected property "RTCErrorEvent" missing
 FAIL RTCErrorEvent interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "RTCErrorEvent" expected property "RTCErrorEvent" missing
+FAIL RTCErrorEvent interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "RTCErrorEvent" expected property "RTCErrorEvent" missing
 FAIL RTCErrorEvent interface: attribute error assert_own_property: self does not have own property "RTCErrorEvent" expected property "RTCErrorEvent" missing
+PASS Unscopable handled correctly for error property on RTCErrorEvent
 FAIL RTCErrorEvent must be primary interface of new RTCErrorEvent('error') assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: RTCErrorEvent is not defined"
 FAIL Stringification of new RTCErrorEvent('error') assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: RTCErrorEvent is not defined"
 FAIL RTCErrorEvent interface: new RTCErrorEvent('error') must inherit property "error" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: RTCErrorEvent is not defined"
diff --git a/third_party/WebKit/LayoutTests/external/wpt/webvr/idlharness.https-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/webvr/idlharness.https-expected.txt
index ef98b6f..afa899a 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/webvr/idlharness.https-expected.txt
+++ b/third_party/WebKit/LayoutTests/external/wpt/webvr/idlharness.https-expected.txt
@@ -1,88 +1,145 @@
 This is a testharness.js-based test.
 FAIL Window interface: attribute onvrdisplayconnect assert_own_property: The global object must have a property "onvrdisplayconnect" expected property "onvrdisplayconnect" missing
+PASS Unscopable handled correctly for onvrdisplayconnect property on Window
 FAIL Window interface: attribute onvrdisplaydisconnect assert_own_property: The global object must have a property "onvrdisplaydisconnect" expected property "onvrdisplaydisconnect" missing
+PASS Unscopable handled correctly for onvrdisplaydisconnect property on Window
 FAIL Window interface: attribute onvrdisplayactivate assert_own_property: The global object must have a property "onvrdisplayactivate" expected property "onvrdisplayactivate" missing
+PASS Unscopable handled correctly for onvrdisplayactivate property on Window
 FAIL Window interface: attribute onvrdisplaydeactivate assert_own_property: The global object must have a property "onvrdisplaydeactivate" expected property "onvrdisplaydeactivate" missing
+PASS Unscopable handled correctly for onvrdisplaydeactivate property on Window
 FAIL Window interface: attribute onvrdisplayblur assert_own_property: The global object must have a property "onvrdisplayblur" expected property "onvrdisplayblur" missing
+PASS Unscopable handled correctly for onvrdisplayblur property on Window
 FAIL Window interface: attribute onvrdisplayfocus assert_own_property: The global object must have a property "onvrdisplayfocus" expected property "onvrdisplayfocus" missing
+PASS Unscopable handled correctly for onvrdisplayfocus property on Window
 FAIL Window interface: attribute onvrdisplaypresentchange assert_own_property: The global object must have a property "onvrdisplaypresentchange" expected property "onvrdisplaypresentchange" missing
+PASS Unscopable handled correctly for onvrdisplaypresentchange property on Window
 PASS Navigator interface: operation getVRDisplays()
+PASS Unscopable handled correctly for getVRDisplays() on Navigator
 FAIL Navigator interface: attribute activeVRDisplays assert_true: The prototype object must have a property "activeVRDisplays" expected true got false
+PASS Unscopable handled correctly for activeVRDisplays property on Navigator
 FAIL Navigator interface: attribute vrEnabled assert_true: The prototype object must have a property "vrEnabled" expected true got false
+PASS Unscopable handled correctly for vrEnabled property on Navigator
 FAIL HTMLIFrameElement interface: attribute allowvr assert_true: The prototype object must have a property "allowvr" expected true got false
+PASS Unscopable handled correctly for allowvr property on HTMLIFrameElement
 PASS Gamepad interface: attribute displayId
+PASS Unscopable handled correctly for displayId property on Gamepad
 PASS VRDisplay interface: existence and properties of interface object
 PASS VRDisplay interface object length
 PASS VRDisplay interface object name
 PASS VRDisplay interface: existence and properties of interface prototype object
 PASS VRDisplay interface: existence and properties of interface prototype object's "constructor" property
+PASS VRDisplay interface: existence and properties of interface prototype object's @@unscopables property
 PASS VRDisplay interface: attribute isPresenting
+PASS Unscopable handled correctly for isPresenting property on VRDisplay
 PASS VRDisplay interface: attribute capabilities
+PASS Unscopable handled correctly for capabilities property on VRDisplay
 PASS VRDisplay interface: attribute stageParameters
+PASS Unscopable handled correctly for stageParameters property on VRDisplay
 PASS VRDisplay interface: operation getEyeParameters(VREye)
+PASS Unscopable handled correctly for getEyeParameters(VREye) on VRDisplay
 PASS VRDisplay interface: attribute displayId
+PASS Unscopable handled correctly for displayId property on VRDisplay
 PASS VRDisplay interface: attribute displayName
+PASS Unscopable handled correctly for displayName property on VRDisplay
 PASS VRDisplay interface: operation getFrameData(VRFrameData)
+PASS Unscopable handled correctly for getFrameData(VRFrameData) on VRDisplay
 PASS VRDisplay interface: attribute depthNear
+PASS Unscopable handled correctly for depthNear property on VRDisplay
 PASS VRDisplay interface: attribute depthFar
+PASS Unscopable handled correctly for depthFar property on VRDisplay
 PASS VRDisplay interface: operation requestAnimationFrame(FrameRequestCallback)
+PASS Unscopable handled correctly for requestAnimationFrame(FrameRequestCallback) on VRDisplay
 PASS VRDisplay interface: operation cancelAnimationFrame(long)
+PASS Unscopable handled correctly for cancelAnimationFrame(long) on VRDisplay
 PASS VRDisplay interface: operation requestPresent([object Object])
+PASS Unscopable handled correctly for requestPresent([object Object]) on VRDisplay
 PASS VRDisplay interface: operation exitPresent()
+PASS Unscopable handled correctly for exitPresent() on VRDisplay
 PASS VRDisplay interface: operation getLayers()
+PASS Unscopable handled correctly for getLayers() on VRDisplay
 PASS VRDisplay interface: operation submitFrame()
+PASS Unscopable handled correctly for submitFrame() on VRDisplay
 PASS VRDisplayCapabilities interface: existence and properties of interface object
 PASS VRDisplayCapabilities interface object length
 PASS VRDisplayCapabilities interface object name
 PASS VRDisplayCapabilities interface: existence and properties of interface prototype object
 PASS VRDisplayCapabilities interface: existence and properties of interface prototype object's "constructor" property
+PASS VRDisplayCapabilities interface: existence and properties of interface prototype object's @@unscopables property
 PASS VRDisplayCapabilities interface: attribute hasPosition
+PASS Unscopable handled correctly for hasPosition property on VRDisplayCapabilities
 PASS VRDisplayCapabilities interface: attribute hasExternalDisplay
+PASS Unscopable handled correctly for hasExternalDisplay property on VRDisplayCapabilities
 PASS VRDisplayCapabilities interface: attribute canPresent
+PASS Unscopable handled correctly for canPresent property on VRDisplayCapabilities
 PASS VRDisplayCapabilities interface: attribute maxLayers
+PASS Unscopable handled correctly for maxLayers property on VRDisplayCapabilities
 PASS VRPose interface: existence and properties of interface object
 PASS VRPose interface object length
 PASS VRPose interface object name
 PASS VRPose interface: existence and properties of interface prototype object
 PASS VRPose interface: existence and properties of interface prototype object's "constructor" property
+PASS VRPose interface: existence and properties of interface prototype object's @@unscopables property
 PASS VRPose interface: attribute position
+PASS Unscopable handled correctly for position property on VRPose
 PASS VRPose interface: attribute linearVelocity
+PASS Unscopable handled correctly for linearVelocity property on VRPose
 PASS VRPose interface: attribute linearAcceleration
+PASS Unscopable handled correctly for linearAcceleration property on VRPose
 PASS VRPose interface: attribute orientation
+PASS Unscopable handled correctly for orientation property on VRPose
 PASS VRPose interface: attribute angularVelocity
+PASS Unscopable handled correctly for angularVelocity property on VRPose
 PASS VRPose interface: attribute angularAcceleration
+PASS Unscopable handled correctly for angularAcceleration property on VRPose
 PASS VRFrameData interface: existence and properties of interface object
 PASS VRFrameData interface object length
 PASS VRFrameData interface object name
 PASS VRFrameData interface: existence and properties of interface prototype object
 PASS VRFrameData interface: existence and properties of interface prototype object's "constructor" property
+PASS VRFrameData interface: existence and properties of interface prototype object's @@unscopables property
 PASS VRFrameData interface: attribute leftProjectionMatrix
+PASS Unscopable handled correctly for leftProjectionMatrix property on VRFrameData
 PASS VRFrameData interface: attribute leftViewMatrix
+PASS Unscopable handled correctly for leftViewMatrix property on VRFrameData
 PASS VRFrameData interface: attribute rightProjectionMatrix
+PASS Unscopable handled correctly for rightProjectionMatrix property on VRFrameData
 PASS VRFrameData interface: attribute rightViewMatrix
+PASS Unscopable handled correctly for rightViewMatrix property on VRFrameData
 PASS VRFrameData interface: attribute pose
+PASS Unscopable handled correctly for pose property on VRFrameData
 PASS VREyeParameters interface: existence and properties of interface object
 PASS VREyeParameters interface object length
 PASS VREyeParameters interface object name
 PASS VREyeParameters interface: existence and properties of interface prototype object
 PASS VREyeParameters interface: existence and properties of interface prototype object's "constructor" property
+PASS VREyeParameters interface: existence and properties of interface prototype object's @@unscopables property
 PASS VREyeParameters interface: attribute offset
+PASS Unscopable handled correctly for offset property on VREyeParameters
 PASS VREyeParameters interface: attribute renderWidth
+PASS Unscopable handled correctly for renderWidth property on VREyeParameters
 PASS VREyeParameters interface: attribute renderHeight
+PASS Unscopable handled correctly for renderHeight property on VREyeParameters
 PASS VRStageParameters interface: existence and properties of interface object
 PASS VRStageParameters interface object length
 PASS VRStageParameters interface object name
 PASS VRStageParameters interface: existence and properties of interface prototype object
 PASS VRStageParameters interface: existence and properties of interface prototype object's "constructor" property
+PASS VRStageParameters interface: existence and properties of interface prototype object's @@unscopables property
 PASS VRStageParameters interface: attribute sittingToStandingTransform
+PASS Unscopable handled correctly for sittingToStandingTransform property on VRStageParameters
 PASS VRStageParameters interface: attribute sizeX
+PASS Unscopable handled correctly for sizeX property on VRStageParameters
 PASS VRStageParameters interface: attribute sizeZ
+PASS Unscopable handled correctly for sizeZ property on VRStageParameters
 PASS VRDisplayEvent interface: existence and properties of interface object
 FAIL VRDisplayEvent interface object length assert_equals: wrong value for VRDisplayEvent.length expected 2 but got 1
 PASS VRDisplayEvent interface object name
 PASS VRDisplayEvent interface: existence and properties of interface prototype object
 PASS VRDisplayEvent interface: existence and properties of interface prototype object's "constructor" property
+PASS VRDisplayEvent interface: existence and properties of interface prototype object's @@unscopables property
 PASS VRDisplayEvent interface: attribute display
+PASS Unscopable handled correctly for display property on VRDisplayEvent
 PASS VRDisplayEvent interface: attribute reason
+PASS Unscopable handled correctly for reason property on VRDisplayEvent
 Harness: the test ran to completion.
 
diff --git a/third_party/WebKit/LayoutTests/external/wpt/webvtt/api/interfaces-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/webvtt/api/interfaces-expected.txt
index 8c1f604c..fc1dd8bd 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/webvtt/api/interfaces-expected.txt
+++ b/third_party/WebKit/LayoutTests/external/wpt/webvtt/api/interfaces-expected.txt
@@ -1,21 +1,33 @@
 This is a testharness.js-based test.
-Found 52 tests; 48 PASS, 4 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 73 tests; 69 PASS, 4 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS VTTCue interface: existence and properties of interface object
 PASS VTTCue interface object length
 PASS VTTCue interface object name
 PASS VTTCue interface: existence and properties of interface prototype object
 PASS VTTCue interface: existence and properties of interface prototype object's "constructor" property
+PASS VTTCue interface: existence and properties of interface prototype object's @@unscopables property
 PASS VTTCue interface: attribute region
+PASS Unscopable handled correctly for region property on VTTCue
 PASS VTTCue interface: attribute vertical
+PASS Unscopable handled correctly for vertical property on VTTCue
 PASS VTTCue interface: attribute snapToLines
+PASS Unscopable handled correctly for snapToLines property on VTTCue
 PASS VTTCue interface: attribute line
+PASS Unscopable handled correctly for line property on VTTCue
 FAIL VTTCue interface: attribute lineAlign assert_true: The prototype object must have a property "lineAlign" expected true got false
+PASS Unscopable handled correctly for lineAlign property on VTTCue
 PASS VTTCue interface: attribute position
+PASS Unscopable handled correctly for position property on VTTCue
 FAIL VTTCue interface: attribute positionAlign assert_true: The prototype object must have a property "positionAlign" expected true got false
+PASS Unscopable handled correctly for positionAlign property on VTTCue
 PASS VTTCue interface: attribute size
+PASS Unscopable handled correctly for size property on VTTCue
 PASS VTTCue interface: attribute align
+PASS Unscopable handled correctly for align property on VTTCue
 PASS VTTCue interface: attribute text
+PASS Unscopable handled correctly for text property on VTTCue
 PASS VTTCue interface: operation getCueAsHTML()
+PASS Unscopable handled correctly for getCueAsHTML() on VTTCue
 PASS VTTCue must be primary interface of new VTTCue(0, 0, "")
 PASS Stringification of new VTTCue(0, 0, "")
 PASS VTTCue interface: new VTTCue(0, 0, "") must inherit property "region" with the proper type
@@ -34,14 +46,23 @@
 PASS VTTRegion interface object name
 PASS VTTRegion interface: existence and properties of interface prototype object
 PASS VTTRegion interface: existence and properties of interface prototype object's "constructor" property
+PASS VTTRegion interface: existence and properties of interface prototype object's @@unscopables property
 PASS VTTRegion interface: attribute id
+PASS Unscopable handled correctly for id property on VTTRegion
 PASS VTTRegion interface: attribute width
+PASS Unscopable handled correctly for width property on VTTRegion
 PASS VTTRegion interface: attribute lines
+PASS Unscopable handled correctly for lines property on VTTRegion
 PASS VTTRegion interface: attribute regionAnchorX
+PASS Unscopable handled correctly for regionAnchorX property on VTTRegion
 PASS VTTRegion interface: attribute regionAnchorY
+PASS Unscopable handled correctly for regionAnchorY property on VTTRegion
 PASS VTTRegion interface: attribute viewportAnchorX
+PASS Unscopable handled correctly for viewportAnchorX property on VTTRegion
 PASS VTTRegion interface: attribute viewportAnchorY
+PASS Unscopable handled correctly for viewportAnchorY property on VTTRegion
 PASS VTTRegion interface: attribute scroll
+PASS Unscopable handled correctly for scroll property on VTTRegion
 PASS VTTRegion must be primary interface of new VTTRegion()
 PASS Stringification of new VTTRegion()
 PASS VTTRegion interface: new VTTRegion() must inherit property "id" with the proper type
diff --git a/third_party/WebKit/LayoutTests/external/wpt/webxr/interfaces.https-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/webxr/interfaces.https-expected.txt
index 2df464e..6ae9ac7b 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/webxr/interfaces.https-expected.txt
+++ b/third_party/WebKit/LayoutTests/external/wpt/webxr/interfaces.https-expected.txt
@@ -1,136 +1,203 @@
 This is a testharness.js-based test.
 PASS Test IDL implementation of WebXR API
 PASS Navigator interface: attribute xr
+PASS Unscopable handled correctly for xr property on Navigator
 PASS Navigator interface: navigator must inherit property "xr" with the proper type
 PASS XR interface: existence and properties of interface object
 PASS XR interface object length
 PASS XR interface object name
 PASS XR interface: existence and properties of interface prototype object
 PASS XR interface: existence and properties of interface prototype object's "constructor" property
+PASS XR interface: existence and properties of interface prototype object's @@unscopables property
 PASS XR interface: operation requestDevice()
+PASS Unscopable handled correctly for requestDevice() on XR
 PASS XR interface: attribute ondevicechange
+PASS Unscopable handled correctly for ondevicechange property on XR
 PASS XRDevice interface: existence and properties of interface object
 PASS XRDevice interface object length
 PASS XRDevice interface object name
 PASS XRDevice interface: existence and properties of interface prototype object
 PASS XRDevice interface: existence and properties of interface prototype object's "constructor" property
+PASS XRDevice interface: existence and properties of interface prototype object's @@unscopables property
 PASS XRDevice interface: attribute external
+PASS Unscopable handled correctly for external property on XRDevice
 PASS XRDevice interface: operation supportsSession(XRSessionCreationOptions)
+PASS Unscopable handled correctly for supportsSession(XRSessionCreationOptions) on XRDevice
 PASS XRDevice interface: operation requestSession(XRSessionCreationOptions)
+PASS Unscopable handled correctly for requestSession(XRSessionCreationOptions) on XRDevice
 PASS XRSession interface: existence and properties of interface object
 PASS XRSession interface object length
 PASS XRSession interface object name
 PASS XRSession interface: existence and properties of interface prototype object
 PASS XRSession interface: existence and properties of interface prototype object's "constructor" property
+PASS XRSession interface: existence and properties of interface prototype object's @@unscopables property
 PASS XRSession interface: attribute device
+PASS Unscopable handled correctly for device property on XRSession
 PASS XRSession interface: attribute exclusive
+PASS Unscopable handled correctly for exclusive property on XRSession
 PASS XRSession interface: attribute outputContext
+PASS Unscopable handled correctly for outputContext property on XRSession
 PASS XRSession interface: attribute depthNear
+PASS Unscopable handled correctly for depthNear property on XRSession
 PASS XRSession interface: attribute depthFar
+PASS Unscopable handled correctly for depthFar property on XRSession
 PASS XRSession interface: attribute baseLayer
+PASS Unscopable handled correctly for baseLayer property on XRSession
 PASS XRSession interface: operation requestFrameOfReference(XRFrameOfReferenceType, XRFrameOfReferenceOptions)
+PASS Unscopable handled correctly for requestFrameOfReference(XRFrameOfReferenceType, XRFrameOfReferenceOptions) on XRSession
 PASS XRSession interface: operation requestAnimationFrame(XRFrameRequestCallback)
+PASS Unscopable handled correctly for requestAnimationFrame(XRFrameRequestCallback) on XRSession
 PASS XRSession interface: operation cancelAnimationFrame(long)
+PASS Unscopable handled correctly for cancelAnimationFrame(long) on XRSession
 PASS XRSession interface: operation end()
+PASS Unscopable handled correctly for end() on XRSession
 PASS XRSession interface: attribute onblur
+PASS Unscopable handled correctly for onblur property on XRSession
 PASS XRSession interface: attribute onfocus
+PASS Unscopable handled correctly for onfocus property on XRSession
 PASS XRSession interface: attribute onresetpose
+PASS Unscopable handled correctly for onresetpose property on XRSession
 PASS XRSession interface: attribute onend
+PASS Unscopable handled correctly for onend property on XRSession
 PASS XRPresentationFrame interface: existence and properties of interface object
 PASS XRPresentationFrame interface object length
 PASS XRPresentationFrame interface object name
 PASS XRPresentationFrame interface: existence and properties of interface prototype object
 PASS XRPresentationFrame interface: existence and properties of interface prototype object's "constructor" property
+PASS XRPresentationFrame interface: existence and properties of interface prototype object's @@unscopables property
 PASS XRPresentationFrame interface: attribute views
+PASS Unscopable handled correctly for views property on XRPresentationFrame
 PASS XRPresentationFrame interface: operation getDevicePose(XRCoordinateSystem)
+PASS Unscopable handled correctly for getDevicePose(XRCoordinateSystem) on XRPresentationFrame
 FAIL XRCoordinateSystem interface: existence and properties of interface object assert_equals: prototype of XRCoordinateSystem is not EventTarget expected function "function EventTarget() { [native code] }" but got function "function () { [native code] }"
 PASS XRCoordinateSystem interface object length
 PASS XRCoordinateSystem interface object name
 FAIL XRCoordinateSystem interface: existence and properties of interface prototype object assert_equals: prototype of XRCoordinateSystem.prototype is not EventTarget.prototype expected object "[object EventTarget]" but got object "[object Object]"
 PASS XRCoordinateSystem interface: existence and properties of interface prototype object's "constructor" property
+PASS XRCoordinateSystem interface: existence and properties of interface prototype object's @@unscopables property
 PASS XRCoordinateSystem interface: operation getTransformTo(XRCoordinateSystem)
+PASS Unscopable handled correctly for getTransformTo(XRCoordinateSystem) on XRCoordinateSystem
 PASS XRFrameOfReference interface: existence and properties of interface object
 PASS XRFrameOfReference interface object length
 PASS XRFrameOfReference interface object name
 PASS XRFrameOfReference interface: existence and properties of interface prototype object
 PASS XRFrameOfReference interface: existence and properties of interface prototype object's "constructor" property
+PASS XRFrameOfReference interface: existence and properties of interface prototype object's @@unscopables property
 PASS XRFrameOfReference interface: attribute bounds
+PASS Unscopable handled correctly for bounds property on XRFrameOfReference
 PASS XRFrameOfReference interface: attribute emulatedHeight
+PASS Unscopable handled correctly for emulatedHeight property on XRFrameOfReference
 FAIL XRFrameOfReference interface: attribute onboundschange assert_true: The prototype object must have a property "onboundschange" expected true got false
+PASS Unscopable handled correctly for onboundschange property on XRFrameOfReference
 PASS XRStageBounds interface: existence and properties of interface object
 PASS XRStageBounds interface object length
 PASS XRStageBounds interface object name
 PASS XRStageBounds interface: existence and properties of interface prototype object
 PASS XRStageBounds interface: existence and properties of interface prototype object's "constructor" property
+PASS XRStageBounds interface: existence and properties of interface prototype object's @@unscopables property
 PASS XRStageBounds interface: attribute geometry
+PASS Unscopable handled correctly for geometry property on XRStageBounds
 PASS XRStageBoundsPoint interface: existence and properties of interface object
 PASS XRStageBoundsPoint interface object length
 PASS XRStageBoundsPoint interface object name
 PASS XRStageBoundsPoint interface: existence and properties of interface prototype object
 PASS XRStageBoundsPoint interface: existence and properties of interface prototype object's "constructor" property
+PASS XRStageBoundsPoint interface: existence and properties of interface prototype object's @@unscopables property
 PASS XRStageBoundsPoint interface: attribute x
+PASS Unscopable handled correctly for x property on XRStageBoundsPoint
 PASS XRStageBoundsPoint interface: attribute z
+PASS Unscopable handled correctly for z property on XRStageBoundsPoint
 PASS XRView interface: existence and properties of interface object
 PASS XRView interface object length
 PASS XRView interface object name
 PASS XRView interface: existence and properties of interface prototype object
 PASS XRView interface: existence and properties of interface prototype object's "constructor" property
+PASS XRView interface: existence and properties of interface prototype object's @@unscopables property
 PASS XRView interface: attribute eye
+PASS Unscopable handled correctly for eye property on XRView
 PASS XRView interface: attribute projectionMatrix
+PASS Unscopable handled correctly for projectionMatrix property on XRView
 PASS XRView interface: operation getViewport(XRLayer)
+PASS Unscopable handled correctly for getViewport(XRLayer) on XRView
 PASS XRViewport interface: existence and properties of interface object
 PASS XRViewport interface object length
 PASS XRViewport interface object name
 PASS XRViewport interface: existence and properties of interface prototype object
 PASS XRViewport interface: existence and properties of interface prototype object's "constructor" property
+PASS XRViewport interface: existence and properties of interface prototype object's @@unscopables property
 PASS XRViewport interface: attribute x
+PASS Unscopable handled correctly for x property on XRViewport
 PASS XRViewport interface: attribute y
+PASS Unscopable handled correctly for y property on XRViewport
 PASS XRViewport interface: attribute width
+PASS Unscopable handled correctly for width property on XRViewport
 PASS XRViewport interface: attribute height
+PASS Unscopable handled correctly for height property on XRViewport
 PASS XRDevicePose interface: existence and properties of interface object
 PASS XRDevicePose interface object length
 PASS XRDevicePose interface object name
 PASS XRDevicePose interface: existence and properties of interface prototype object
 PASS XRDevicePose interface: existence and properties of interface prototype object's "constructor" property
+PASS XRDevicePose interface: existence and properties of interface prototype object's @@unscopables property
 PASS XRDevicePose interface: attribute poseModelMatrix
+PASS Unscopable handled correctly for poseModelMatrix property on XRDevicePose
 PASS XRDevicePose interface: operation getViewMatrix(XRView)
+PASS Unscopable handled correctly for getViewMatrix(XRView) on XRDevicePose
 PASS XRLayer interface: existence and properties of interface object
 PASS XRLayer interface object length
 PASS XRLayer interface object name
 PASS XRLayer interface: existence and properties of interface prototype object
 PASS XRLayer interface: existence and properties of interface prototype object's "constructor" property
+PASS XRLayer interface: existence and properties of interface prototype object's @@unscopables property
 PASS XRWebGLLayer interface: existence and properties of interface object
 PASS XRWebGLLayer interface object length
 PASS XRWebGLLayer interface object name
 PASS XRWebGLLayer interface: existence and properties of interface prototype object
 PASS XRWebGLLayer interface: existence and properties of interface prototype object's "constructor" property
+PASS XRWebGLLayer interface: existence and properties of interface prototype object's @@unscopables property
 PASS XRWebGLLayer interface: attribute context
+PASS Unscopable handled correctly for context property on XRWebGLLayer
 PASS XRWebGLLayer interface: attribute antialias
+PASS Unscopable handled correctly for antialias property on XRWebGLLayer
 PASS XRWebGLLayer interface: attribute depth
+PASS Unscopable handled correctly for depth property on XRWebGLLayer
 PASS XRWebGLLayer interface: attribute stencil
+PASS Unscopable handled correctly for stencil property on XRWebGLLayer
 PASS XRWebGLLayer interface: attribute alpha
+PASS Unscopable handled correctly for alpha property on XRWebGLLayer
 PASS XRWebGLLayer interface: attribute multiview
+PASS Unscopable handled correctly for multiview property on XRWebGLLayer
 PASS XRWebGLLayer interface: attribute framebuffer
+PASS Unscopable handled correctly for framebuffer property on XRWebGLLayer
 PASS XRWebGLLayer interface: attribute framebufferWidth
+PASS Unscopable handled correctly for framebufferWidth property on XRWebGLLayer
 PASS XRWebGLLayer interface: attribute framebufferHeight
+PASS Unscopable handled correctly for framebufferHeight property on XRWebGLLayer
 PASS XRWebGLLayer interface: operation requestViewportScaling(double)
+PASS Unscopable handled correctly for requestViewportScaling(double) on XRWebGLLayer
 PASS XRPresentationContext interface: existence and properties of interface object
 PASS XRPresentationContext interface object length
 PASS XRPresentationContext interface object name
 PASS XRPresentationContext interface: existence and properties of interface prototype object
 PASS XRPresentationContext interface: existence and properties of interface prototype object's "constructor" property
+PASS XRPresentationContext interface: existence and properties of interface prototype object's @@unscopables property
 PASS XRPresentationContext interface: attribute canvas
+PASS Unscopable handled correctly for canvas property on XRPresentationContext
 PASS XRSessionEvent interface: existence and properties of interface object
 PASS XRSessionEvent interface object length
 PASS XRSessionEvent interface object name
 PASS XRSessionEvent interface: existence and properties of interface prototype object
 PASS XRSessionEvent interface: existence and properties of interface prototype object's "constructor" property
+PASS XRSessionEvent interface: existence and properties of interface prototype object's @@unscopables property
 PASS XRSessionEvent interface: attribute session
+PASS Unscopable handled correctly for session property on XRSessionEvent
 FAIL XRCoordinateSystemEvent interface: existence and properties of interface object assert_own_property: self does not have own property "XRCoordinateSystemEvent" expected property "XRCoordinateSystemEvent" missing
 FAIL XRCoordinateSystemEvent interface object length assert_own_property: self does not have own property "XRCoordinateSystemEvent" expected property "XRCoordinateSystemEvent" missing
 FAIL XRCoordinateSystemEvent interface object name assert_own_property: self does not have own property "XRCoordinateSystemEvent" expected property "XRCoordinateSystemEvent" missing
 FAIL XRCoordinateSystemEvent interface: existence and properties of interface prototype object assert_own_property: self does not have own property "XRCoordinateSystemEvent" expected property "XRCoordinateSystemEvent" missing
 FAIL XRCoordinateSystemEvent interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "XRCoordinateSystemEvent" expected property "XRCoordinateSystemEvent" missing
+FAIL XRCoordinateSystemEvent interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "XRCoordinateSystemEvent" expected property "XRCoordinateSystemEvent" missing
 FAIL XRCoordinateSystemEvent interface: attribute coordinateSystem assert_own_property: self does not have own property "XRCoordinateSystemEvent" expected property "XRCoordinateSystemEvent" missing
+PASS Unscopable handled correctly for coordinateSystem property on XRCoordinateSystemEvent
 Harness: the test ran to completion.
 
diff --git a/third_party/WebKit/LayoutTests/external/wpt/workers/interfaces.worker-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/workers/interfaces.worker-expected.txt
index 3a970d4..44a3e5fe 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/workers/interfaces.worker-expected.txt
+++ b/third_party/WebKit/LayoutTests/external/wpt/workers/interfaces.worker-expected.txt
@@ -1,38 +1,62 @@
 This is a testharness.js-based test.
-Found 156 tests; 144 PASS, 12 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 207 tests; 195 PASS, 12 FAIL, 0 TIMEOUT, 0 NOTRUN.
 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, [object Object],[object Object])
+PASS Unscopable handled correctly for addEventListener(DOMString, EventListener, [object Object],[object Object]) on EventTarget
 PASS EventTarget interface: operation removeEventListener(DOMString, EventListener, [object Object],[object Object])
+PASS Unscopable handled correctly for removeEventListener(DOMString, EventListener, [object Object],[object Object]) on EventTarget
 PASS EventTarget interface: operation dispatchEvent(Event)
+PASS Unscopable handled correctly for dispatchEvent(Event) on EventTarget
 PASS EventListener interface: existence and properties of interface object
 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 Unscopable handled correctly for self property on WorkerGlobalScope
 PASS WorkerGlobalScope interface: attribute location
+PASS Unscopable handled correctly for location property on WorkerGlobalScope
 PASS WorkerGlobalScope interface: attribute navigator
+PASS Unscopable handled correctly for navigator property on WorkerGlobalScope
 PASS WorkerGlobalScope interface: operation importScripts(USVString)
+PASS Unscopable handled correctly for importScripts(USVString) on WorkerGlobalScope
 PASS WorkerGlobalScope interface: attribute onerror
+PASS Unscopable handled correctly for onerror property on WorkerGlobalScope
 FAIL WorkerGlobalScope interface: attribute onlanguagechange assert_true: The prototype object must have a property "onlanguagechange" expected true got false
+PASS Unscopable handled correctly for onlanguagechange property on WorkerGlobalScope
 FAIL WorkerGlobalScope interface: attribute onoffline assert_true: The prototype object must have a property "onoffline" expected true got false
+PASS Unscopable handled correctly for onoffline property on WorkerGlobalScope
 FAIL WorkerGlobalScope interface: attribute ononline assert_true: The prototype object must have a property "ononline" expected true got false
+PASS Unscopable handled correctly for ononline property on WorkerGlobalScope
 PASS WorkerGlobalScope interface: attribute onrejectionhandled
+PASS Unscopable handled correctly for onrejectionhandled property on WorkerGlobalScope
 PASS WorkerGlobalScope interface: attribute onunhandledrejection
+PASS Unscopable handled correctly for onunhandledrejection property on WorkerGlobalScope
 PASS WorkerGlobalScope interface: attribute origin
+PASS Unscopable handled correctly for origin property on WorkerGlobalScope
 PASS WorkerGlobalScope interface: operation btoa(DOMString)
+PASS Unscopable handled correctly for btoa(DOMString) on WorkerGlobalScope
 PASS WorkerGlobalScope interface: operation atob(DOMString)
+PASS Unscopable handled correctly for atob(DOMString) on WorkerGlobalScope
 PASS WorkerGlobalScope interface: operation setTimeout(TimerHandler, long, any)
+PASS Unscopable handled correctly for setTimeout(TimerHandler, long, any) on WorkerGlobalScope
 PASS WorkerGlobalScope interface: operation clearTimeout(long)
+PASS Unscopable handled correctly for clearTimeout(long) on WorkerGlobalScope
 PASS WorkerGlobalScope interface: operation setInterval(TimerHandler, long, any)
+PASS Unscopable handled correctly for setInterval(TimerHandler, long, any) on WorkerGlobalScope
 PASS WorkerGlobalScope interface: operation clearInterval(long)
+PASS Unscopable handled correctly for clearInterval(long) on WorkerGlobalScope
 PASS WorkerGlobalScope interface: operation createImageBitmap(ImageBitmapSource, ImageBitmapOptions)
+PASS Unscopable handled correctly for createImageBitmap(ImageBitmapSource, ImageBitmapOptions) on WorkerGlobalScope
 PASS WorkerGlobalScope interface: operation createImageBitmap(ImageBitmapSource, long, long, long, long, ImageBitmapOptions)
+PASS Unscopable handled correctly for createImageBitmap(ImageBitmapSource, long, long, long, long, ImageBitmapOptions) on WorkerGlobalScope
 PASS DedicatedWorkerGlobalScope interface: existence and properties of interface object
 PASS DedicatedWorkerGlobalScope interface object length
 PASS DedicatedWorkerGlobalScope interface object name
@@ -44,11 +68,17 @@
 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
 FAIL DedicatedWorkerGlobalScope interface: attribute name assert_own_property: The global object must have a property "name" expected property "name" missing
+PASS Unscopable handled correctly for name property on DedicatedWorkerGlobalScope
 PASS DedicatedWorkerGlobalScope interface: operation postMessage(any, [object Object])
+PASS Unscopable handled correctly for postMessage(any, [object Object]) on DedicatedWorkerGlobalScope
 PASS DedicatedWorkerGlobalScope interface: operation close()
+PASS Unscopable handled correctly for close() on DedicatedWorkerGlobalScope
 PASS DedicatedWorkerGlobalScope interface: attribute onmessage
+PASS Unscopable handled correctly for onmessage property on DedicatedWorkerGlobalScope
 PASS DedicatedWorkerGlobalScope interface: attribute onmessageerror
+PASS Unscopable handled correctly for onmessageerror property on DedicatedWorkerGlobalScope
 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
@@ -102,19 +132,30 @@
 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 Unscopable handled correctly for appCodeName property on WorkerNavigator
 PASS WorkerNavigator interface: attribute appName
+PASS Unscopable handled correctly for appName property on WorkerNavigator
 PASS WorkerNavigator interface: attribute appVersion
+PASS Unscopable handled correctly for appVersion property on WorkerNavigator
 PASS WorkerNavigator interface: attribute platform
+PASS Unscopable handled correctly for platform property on WorkerNavigator
 PASS WorkerNavigator interface: attribute product
+PASS Unscopable handled correctly for product property on WorkerNavigator
 PASS WorkerNavigator interface: member productSub
 PASS WorkerNavigator interface: attribute userAgent
+PASS Unscopable handled correctly for userAgent property on WorkerNavigator
 PASS WorkerNavigator interface: member vendor
 PASS WorkerNavigator interface: member vendorSub
 FAIL WorkerNavigator interface: attribute language assert_true: The prototype object must have a property "language" expected true got false
+PASS Unscopable handled correctly for language property on WorkerNavigator
 FAIL WorkerNavigator interface: attribute languages assert_true: The prototype object must have a property "languages" expected true got false
+PASS Unscopable handled correctly for languages property on WorkerNavigator
 PASS WorkerNavigator interface: attribute onLine
+PASS Unscopable handled correctly for onLine property on WorkerNavigator
 PASS WorkerNavigator interface: attribute hardwareConcurrency
+PASS Unscopable handled correctly for hardwareConcurrency property on WorkerNavigator
 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
@@ -135,16 +176,26 @@
 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 Unscopable handled correctly for href property on WorkerLocation
 PASS WorkerLocation interface: stringifier
 PASS WorkerLocation interface: attribute origin
+PASS Unscopable handled correctly for origin property on WorkerLocation
 PASS WorkerLocation interface: attribute protocol
+PASS Unscopable handled correctly for protocol property on WorkerLocation
 PASS WorkerLocation interface: attribute host
+PASS Unscopable handled correctly for host property on WorkerLocation
 PASS WorkerLocation interface: attribute hostname
+PASS Unscopable handled correctly for hostname property on WorkerLocation
 PASS WorkerLocation interface: attribute port
+PASS Unscopable handled correctly for port property on WorkerLocation
 PASS WorkerLocation interface: attribute pathname
+PASS Unscopable handled correctly for pathname property on WorkerLocation
 PASS WorkerLocation interface: attribute search
+PASS Unscopable handled correctly for search property on WorkerLocation
 PASS WorkerLocation interface: attribute hash
+PASS Unscopable handled correctly for hash property on WorkerLocation
 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
diff --git a/third_party/WebKit/LayoutTests/fast/dom/Document/CaretRangeFromPoint/hittest-empty-line.html b/third_party/WebKit/LayoutTests/fast/dom/Document/CaretRangeFromPoint/hittest-empty-line.html
new file mode 100644
index 0000000..d81cd096
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fast/dom/Document/CaretRangeFromPoint/hittest-empty-line.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<script src="../../../../resources/testharness.js"></script>
+<script src="../../../../resources/testharnessreport.js"></script>
+<pre style="font: 10px/10px Ahem">foo&NewLine;&NewLine;bar</pre>
+<script>
+test(() => {
+const pre = document.querySelector('pre');
+const text = pre.firstChild;
+const x = pre.offsetLeft + 15;
+const y = pre.offsetTop + 15;
+
+const result = document.caretRangeFromPoint(x, y);
+assert_true(result instanceof Range);
+assert_equals(result.startContainer, text);
+assert_equals(result.startOffset, 4); // "foo&NewLine;|&NewLine;bar"
+assert_true(result.collapsed);
+},
+'Hit test the empty line in <pre>');
+</script>
diff --git a/third_party/WebKit/LayoutTests/http/tests/fetch/chromium/no-inherit-type.html b/third_party/WebKit/LayoutTests/http/tests/fetch/chromium/no-inherit-type.html
new file mode 100644
index 0000000..bfe9400
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/http/tests/fetch/chromium/no-inherit-type.html
@@ -0,0 +1,36 @@
+<html>
+<title>Verify that a "type" attribute on Object.prototype is ignored</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+
+promise_test(async t => {
+  Object.prototype.type = 'incorrect';
+  t.add_cleanup(() => delete Object.prototype.type);
+  const response = await fetch('no-inherit-type.html');
+  const reader = response.body.getReader();
+  let done;
+  do {
+    done = (await reader.read()).done;
+  } while (!done);
+}, 'fetch() should work when Object.prototype.type is set');
+
+promise_test(async t => {
+  Object.defineProperty(Object.prototype, 'type', {
+    get: () => {
+      throw new Error('this should not have been called');
+    },
+    set: undefined
+  });
+  t.add_cleanup(() => delete Object.prototype.type);
+  const response = await fetch('no-inherit-type.html');
+  const reader = response.body.getReader();
+  let done;
+  do {
+    done = (await reader.read()).done;
+  } while (!done);
+}, 'fetch() should work when Object.prototype.type is a getter that throws');
+
+</script>
+</html>
+
diff --git a/third_party/WebKit/LayoutTests/http/tests/payments/payment-instruments.html b/third_party/WebKit/LayoutTests/http/tests/payments/payment-instruments.html
index 0d40033..2a5f13d 100644
--- a/third_party/WebKit/LayoutTests/http/tests/payments/payment-instruments.html
+++ b/third_party/WebKit/LayoutTests/http/tests/payments/payment-instruments.html
@@ -4,6 +4,7 @@
 <link rel="help" href="https://w3c.github.io/webpayments-payment-apps-api/#payment-instruments">
 <script src="../resources/testharness.js"></script>
 <script src="../resources/testharnessreport.js"></script>
+<script src="../resources/permissions-helper.js"></script>
 <script src="../../serviceworker/resources/test-helpers.js"></script>
 <script>
 
@@ -19,6 +20,9 @@
         })
       .then(state => {
           assert_equals(state, 'activated');
+          return PermissionsHelper.setPermission('payment-handler', 'granted');
+        })
+      .then(() => {
           return registration.paymentManager.instruments.set(
               'test_key',
               {
@@ -101,6 +105,9 @@
         })
       .then(state => {
           assert_equals(state, 'activated');
+          return PermissionsHelper.setPermission('payment-handler', 'granted');
+        })
+      .then(() => {
           return registration.paymentManager.instruments.set(
               'test_key',
               {
@@ -138,6 +145,9 @@
         })
       .then(state => {
           assert_equals(state, 'activated');
+          return PermissionsHelper.setPermission('payment-handler', 'granted');
+        })
+      .then(() => {
           return registration.paymentManager.instruments.set(
               'test_key',
               {
@@ -175,6 +185,9 @@
         })
       .then(state => {
           assert_equals(state, 'activated');
+          return PermissionsHelper.setPermission('payment-handler', 'granted');
+        })
+      .then(() => {
           var instruments = [
             registration.paymentManager.instruments.set(
               'test_key1',
@@ -217,6 +230,9 @@
         })
       .then(state => {
           assert_equals(state, 'activated');
+          return PermissionsHelper.setPermission('payment-handler', 'granted');
+        })
+      .then(() => {
           var instruments = [
             registration.paymentManager.instruments.set(
               'test_key1',
@@ -255,4 +271,51 @@
       .catch(unreached_rejection(test));
   }, 'PaymentInstruments |clear| method test');
 
+promise_test(test => {
+    var registration;
+    var script_url = 'resources/empty-worker.js';
+    var scope = 'resources/';
+
+    return service_worker_unregister_and_register(test, script_url, scope)
+      .then(r => {
+          registration = r;
+          return wait_for_state(test, registration.installing, 'activated');
+        })
+      .then(state => {
+          assert_equals(state, 'activated');
+          return PermissionsHelper.setPermission('payment-handler', 'denied');
+        })
+      .then(() => {
+          return registration.paymentManager.instruments.set(
+              'test_key',
+              {
+                name: 'Visa ending ****4756',
+                icons: [
+                  {
+                    'src': './resources/icon-1x.png',
+                    'sizes': '32x32 48x48',
+                    'type': 'image/png'
+                  },
+                  {
+                    'src': './resources/icon-2x.png',
+                    'sizes': '96x96',
+                    'type': 'image/png',
+                    'purpose': 'any badge'
+                  }
+                ],
+                enabledMethods: ['basic-card'],
+                capabilities: {
+                  supportedNetworks: ['visa'],
+                  supportedTypes: ['credit']
+                }
+              });
+        })
+      .then(result => {
+          assert_unreached();
+        })
+      .catch(e => {
+          assert_equals(e.name, 'NotAllowedError');
+        });
+  }, 'Throw NotAllowedError if permission is not granted');
+
 </script>
diff --git a/third_party/WebKit/LayoutTests/http/tests/resources/permissions-helper.js b/third_party/WebKit/LayoutTests/http/tests/resources/permissions-helper.js
index 1e18f50e..75970c4b 100644
--- a/third_party/WebKit/LayoutTests/http/tests/resources/permissions-helper.js
+++ b/third_party/WebKit/LayoutTests/http/tests/resources/permissions-helper.js
@@ -31,6 +31,8 @@
         return {name: "clipboard-read"};
       case "clipboard-write":
         return {name: "clipboard-write"};
+      case "payment-handler":
+        return {name: "payment-handler"};
       default:
         throw "Invalid permission name provided";
     }
diff --git a/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-merged-nodes-expected.txt b/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-merged-nodes-expected.txt
deleted file mode 100644
index f506e097..0000000
--- a/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-merged-nodes-expected.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Test that DOM node and its JS wrapper appear as a single node.
-Took heap snapshot
-Parsed snapshot
-SUCCESS: found leaking
-SUCCESS: retaining path = [EventListener, InternalNode, HTMLDivElement, Window / file://, ]
-
diff --git a/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-merged-nodes.js b/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-merged-nodes.js
deleted file mode 100644
index f804ff2..0000000
--- a/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-merged-nodes.js
+++ /dev/null
@@ -1,38 +0,0 @@
-(async function(testRunner) {
-  var {page, session, dp} = await testRunner.startBlank(
-      `Test that DOM node and its JS wrapper appear as a single node.`);
-
-  await session.evaluate(`
-    var retainer = null;
-    function run() {
-      function leaking() {
-        console.log('leaking');
-      }
-      var div = document.createElement('div');
-      div.addEventListener('click', leaking, true);
-      retainer = div;
-    }
-    run();
-  `);
-
-  var Helper = await testRunner.loadScript('resources/heap-snapshot-common.js');
-  var helper = await Helper(testRunner, session);
-
-  var snapshot = await helper.takeHeapSnapshot();
-  var node;
-  for (var it = snapshot._allNodes(); it.hasNext(); it.next()) {
-    if (it.node.type() === 'closure' && it.node.name() === 'leaking') {
-      node = it.node;
-      break;
-    }
-  }
-  if (node)
-    testRunner.log('SUCCESS: found ' + node.name());
-  else
-    return testRunner.fail('cannot find leaking node');
-
-  var retainers = helper.firstRetainingPath(node).map(node => node.name());
-  var actual = retainers.join(', ');
-  testRunner.log(`SUCCESS: retaining path = [${actual}]`);
-  testRunner.completeTest();
-})
diff --git a/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-with-event-listener-expected.txt b/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-with-event-listener-expected.txt
index 6fa89ac..a67ac3b 100644
--- a/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-with-event-listener-expected.txt
+++ b/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-with-event-listener-expected.txt
@@ -2,5 +2,5 @@
 Took heap snapshot
 Parsed snapshot
 SUCCESS: found myEventListener
-SUCCESS: retaining path = [EventListener, InternalNode, HTMLBodyElement, HTMLHtmlElement, HTMLDocument, Window / file://, ]
+SUCCESS: retaining path = [EventListener, InternalNode, HTMLBodyElement, HTMLHtmlElement, HTMLDocument]
 
diff --git a/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-with-event-listener.js b/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-with-event-listener.js
index 1fa20236b..68c6f12 100644
--- a/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-with-event-listener.js
+++ b/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-with-event-listener.js
@@ -29,6 +29,9 @@
     return testRunner.fail('cannot find myEventListener node');
 
   var retainers = helper.firstRetainingPath(node).map(node => node.name());
+  // Limit to the retainers until the Window object to keep the test robust
+  // against root node name changes.
+  retainers = retainers.slice(0, retainers.indexOf('Window'));
   var actual = retainers.join(', ');
   testRunner.log(`SUCCESS: retaining path = [${actual}]`);
   testRunner.completeTest();
diff --git a/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-with-multiple-retainers-expected.txt b/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-with-multiple-retainers-expected.txt
index fecccaa..1022d56 100644
--- a/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-with-multiple-retainers-expected.txt
+++ b/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-with-multiple-retainers-expected.txt
@@ -4,6 +4,6 @@
 SUCCESS: found leaking
 SUCCESS: immediate retainer is EventListener.
 SUCCESS: found multiple retaining paths.
-SUCCESS: path1 = [HTMLBodyElement, HTMLHtmlElement, HTMLDocument, Window / file://, ]
-SUCCESS: path2 = [HTMLDivElement, HTMLBodyElement, HTMLHtmlElement, HTMLDocument, Window / file://, ]
+SUCCESS: path1 = [HTMLBodyElement, HTMLHtmlElement, HTMLDocument]
+SUCCESS: path2 = [HTMLDivElement, HTMLBodyElement, HTMLHtmlElement, HTMLDocument]
 
diff --git a/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-with-multiple-retainers.js b/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-with-multiple-retainers.js
index a2d852e..04f648b 100644
--- a/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-with-multiple-retainers.js
+++ b/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-with-multiple-retainers.js
@@ -43,6 +43,9 @@
   for (var iter = eventListener.retainers(); iter.hasNext(); iter.next()) {
     var path = helper.firstRetainingPath(iter.retainer.node());
     path = path.map(node => node.name());
+    // Limit the path until the Window object to keep the test robust
+    // against root node name changes.
+    path = path.slice(0, path.indexOf('Window'));
     retainingPaths.push(path.join(', '));
   }
 
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.11/paint/invalidation/forms/checkbox-focus-by-mouse-then-keydown-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.11/paint/invalidation/forms/checkbox-focus-by-mouse-then-keydown-expected.txt
index d1edcbc..9391247 100644
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.11/paint/invalidation/forms/checkbox-focus-by-mouse-then-keydown-expected.txt
+++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.11/paint/invalidation/forms/checkbox-focus-by-mouse-then-keydown-expected.txt
@@ -4,6 +4,16 @@
       "name": "LayoutView #document",
       "bounds": [800, 600],
       "drawsContent": false,
+      "backgroundColor": "#FFFFFF"
+    },
+    {
+      "name": "Scrolling Layer",
+      "bounds": [800, 600],
+      "drawsContent": false
+    },
+    {
+      "name": "Scrolling Contents Layer",
+      "bounds": [800, 600],
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "paintInvalidations": [
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.11/paint/invalidation/forms/radio-focus-by-mouse-then-keydown-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.11/paint/invalidation/forms/radio-focus-by-mouse-then-keydown-expected.txt
index 0b082b68..d29eafc 100644
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.11/paint/invalidation/forms/radio-focus-by-mouse-then-keydown-expected.txt
+++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.11/paint/invalidation/forms/radio-focus-by-mouse-then-keydown-expected.txt
@@ -4,6 +4,16 @@
       "name": "LayoutView #document",
       "bounds": [800, 600],
       "drawsContent": false,
+      "backgroundColor": "#FFFFFF"
+    },
+    {
+      "name": "Scrolling Layer",
+      "bounds": [800, 600],
+      "drawsContent": false
+    },
+    {
+      "name": "Scrolling Contents Layer",
+      "bounds": [800, 600],
       "contentsOpaque": true,
       "backgroundColor": "#FFFFFF",
       "paintInvalidations": [
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/WebCryptoAPI/idlharness.https.worker-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/WebCryptoAPI/idlharness.https.worker-expected.txt
deleted file mode 100644
index a83da9a..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/WebCryptoAPI/idlharness.https.worker-expected.txt
+++ /dev/null
@@ -1,91 +0,0 @@
-This is a testharness.js-based test.
-PASS Window interface: existence and properties of interface object
-FAIL ArrayBuffer interface: existence and properties of interface object assert_false: expected false got true
-PASS ArrayBufferView interface: existence and properties of interface object
-PASS Crypto interface: existence and properties of interface object
-PASS Crypto interface object length
-PASS Crypto interface object name
-PASS Crypto interface: existence and properties of interface prototype object
-PASS Crypto interface: existence and properties of interface prototype object's "constructor" property
-PASS Crypto interface: existence and properties of interface prototype object's @@unscopables property
-PASS Crypto interface: attribute subtle
-PASS Unscopable handled correctly for subtle property on Crypto
-PASS Crypto interface: operation getRandomValues(ArrayBufferView)
-PASS Unscopable handled correctly for getRandomValues(ArrayBufferView) on Crypto
-PASS Crypto must be primary interface of crypto
-PASS Stringification of crypto
-PASS Crypto interface: crypto must inherit property "subtle" with the proper type
-PASS Crypto interface: crypto must inherit property "getRandomValues(ArrayBufferView)" with the proper type
-PASS Crypto interface: calling getRandomValues(ArrayBufferView) on crypto with too few arguments must throw TypeError
-PASS CryptoKey interface: existence and properties of interface object
-PASS CryptoKey interface object length
-PASS CryptoKey interface object name
-PASS CryptoKey interface: existence and properties of interface prototype object
-PASS CryptoKey interface: existence and properties of interface prototype object's "constructor" property
-PASS CryptoKey interface: existence and properties of interface prototype object's @@unscopables property
-PASS CryptoKey interface: attribute type
-PASS Unscopable handled correctly for type property on CryptoKey
-PASS CryptoKey interface: attribute extractable
-PASS Unscopable handled correctly for extractable property on CryptoKey
-PASS CryptoKey interface: attribute algorithm
-PASS Unscopable handled correctly for algorithm property on CryptoKey
-PASS CryptoKey interface: attribute usages
-PASS Unscopable handled correctly for usages property on CryptoKey
-PASS SubtleCrypto interface: existence and properties of interface object
-PASS SubtleCrypto interface object length
-PASS SubtleCrypto interface object name
-PASS SubtleCrypto interface: existence and properties of interface prototype object
-PASS SubtleCrypto interface: existence and properties of interface prototype object's "constructor" property
-PASS SubtleCrypto interface: existence and properties of interface prototype object's @@unscopables property
-PASS SubtleCrypto interface: operation encrypt(AlgorithmIdentifier, CryptoKey, BufferSource)
-PASS Unscopable handled correctly for encrypt(AlgorithmIdentifier, CryptoKey, BufferSource) on SubtleCrypto
-PASS SubtleCrypto interface: operation decrypt(AlgorithmIdentifier, CryptoKey, BufferSource)
-PASS Unscopable handled correctly for decrypt(AlgorithmIdentifier, CryptoKey, BufferSource) on SubtleCrypto
-PASS SubtleCrypto interface: operation sign(AlgorithmIdentifier, CryptoKey, BufferSource)
-PASS Unscopable handled correctly for sign(AlgorithmIdentifier, CryptoKey, BufferSource) on SubtleCrypto
-PASS SubtleCrypto interface: operation verify(AlgorithmIdentifier, CryptoKey, BufferSource, BufferSource)
-PASS Unscopable handled correctly for verify(AlgorithmIdentifier, CryptoKey, BufferSource, BufferSource) on SubtleCrypto
-PASS SubtleCrypto interface: operation digest(AlgorithmIdentifier, BufferSource)
-PASS Unscopable handled correctly for digest(AlgorithmIdentifier, BufferSource) on SubtleCrypto
-PASS SubtleCrypto interface: operation generateKey(AlgorithmIdentifier, boolean, [object Object])
-PASS Unscopable handled correctly for generateKey(AlgorithmIdentifier, boolean, [object Object]) on SubtleCrypto
-PASS SubtleCrypto interface: operation deriveKey(AlgorithmIdentifier, CryptoKey, AlgorithmIdentifier, boolean, [object Object])
-PASS Unscopable handled correctly for deriveKey(AlgorithmIdentifier, CryptoKey, AlgorithmIdentifier, boolean, [object Object]) on SubtleCrypto
-PASS SubtleCrypto interface: operation deriveBits(AlgorithmIdentifier, CryptoKey, unsigned long)
-PASS Unscopable handled correctly for deriveBits(AlgorithmIdentifier, CryptoKey, unsigned long) on SubtleCrypto
-PASS SubtleCrypto interface: operation importKey(KeyFormat, [object Object],[object Object], AlgorithmIdentifier, boolean, [object Object])
-PASS Unscopable handled correctly for importKey(KeyFormat, [object Object],[object Object], AlgorithmIdentifier, boolean, [object Object]) on SubtleCrypto
-PASS SubtleCrypto interface: operation exportKey(KeyFormat, CryptoKey)
-PASS Unscopable handled correctly for exportKey(KeyFormat, CryptoKey) on SubtleCrypto
-PASS SubtleCrypto interface: operation wrapKey(KeyFormat, CryptoKey, CryptoKey, AlgorithmIdentifier)
-PASS Unscopable handled correctly for wrapKey(KeyFormat, CryptoKey, CryptoKey, AlgorithmIdentifier) on SubtleCrypto
-PASS SubtleCrypto interface: operation unwrapKey(KeyFormat, BufferSource, CryptoKey, AlgorithmIdentifier, AlgorithmIdentifier, boolean, [object Object])
-PASS Unscopable handled correctly for unwrapKey(KeyFormat, BufferSource, CryptoKey, AlgorithmIdentifier, AlgorithmIdentifier, boolean, [object Object]) on SubtleCrypto
-PASS SubtleCrypto must be primary interface of crypto.subtle
-PASS Stringification of crypto.subtle
-PASS SubtleCrypto interface: crypto.subtle must inherit property "encrypt(AlgorithmIdentifier, CryptoKey, BufferSource)" with the proper type
-PASS SubtleCrypto interface: calling encrypt(AlgorithmIdentifier, CryptoKey, BufferSource) on crypto.subtle with too few arguments must throw TypeError
-PASS SubtleCrypto interface: crypto.subtle must inherit property "decrypt(AlgorithmIdentifier, CryptoKey, BufferSource)" with the proper type
-PASS SubtleCrypto interface: calling decrypt(AlgorithmIdentifier, CryptoKey, BufferSource) on crypto.subtle with too few arguments must throw TypeError
-PASS SubtleCrypto interface: crypto.subtle must inherit property "sign(AlgorithmIdentifier, CryptoKey, BufferSource)" with the proper type
-PASS SubtleCrypto interface: calling sign(AlgorithmIdentifier, CryptoKey, BufferSource) on crypto.subtle with too few arguments must throw TypeError
-PASS SubtleCrypto interface: crypto.subtle must inherit property "verify(AlgorithmIdentifier, CryptoKey, BufferSource, BufferSource)" with the proper type
-PASS SubtleCrypto interface: calling verify(AlgorithmIdentifier, CryptoKey, BufferSource, BufferSource) on crypto.subtle with too few arguments must throw TypeError
-PASS SubtleCrypto interface: crypto.subtle must inherit property "digest(AlgorithmIdentifier, BufferSource)" with the proper type
-PASS SubtleCrypto interface: calling digest(AlgorithmIdentifier, BufferSource) on crypto.subtle with too few arguments must throw TypeError
-PASS SubtleCrypto interface: crypto.subtle must inherit property "generateKey(AlgorithmIdentifier, boolean, [object Object])" with the proper type
-PASS SubtleCrypto interface: calling generateKey(AlgorithmIdentifier, boolean, [object Object]) on crypto.subtle with too few arguments must throw TypeError
-PASS SubtleCrypto interface: crypto.subtle must inherit property "deriveKey(AlgorithmIdentifier, CryptoKey, AlgorithmIdentifier, boolean, [object Object])" with the proper type
-PASS SubtleCrypto interface: calling deriveKey(AlgorithmIdentifier, CryptoKey, AlgorithmIdentifier, boolean, [object Object]) on crypto.subtle with too few arguments must throw TypeError
-PASS SubtleCrypto interface: crypto.subtle must inherit property "deriveBits(AlgorithmIdentifier, CryptoKey, unsigned long)" with the proper type
-PASS SubtleCrypto interface: calling deriveBits(AlgorithmIdentifier, CryptoKey, unsigned long) on crypto.subtle with too few arguments must throw TypeError
-PASS SubtleCrypto interface: crypto.subtle must inherit property "importKey(KeyFormat, [object Object],[object Object], AlgorithmIdentifier, boolean, [object Object])" with the proper type
-PASS SubtleCrypto interface: calling importKey(KeyFormat, [object Object],[object Object], AlgorithmIdentifier, boolean, [object Object]) on crypto.subtle with too few arguments must throw TypeError
-PASS SubtleCrypto interface: crypto.subtle must inherit property "exportKey(KeyFormat, CryptoKey)" with the proper type
-PASS SubtleCrypto interface: calling exportKey(KeyFormat, CryptoKey) on crypto.subtle with too few arguments must throw TypeError
-PASS SubtleCrypto interface: crypto.subtle must inherit property "wrapKey(KeyFormat, CryptoKey, CryptoKey, AlgorithmIdentifier)" with the proper type
-PASS SubtleCrypto interface: calling wrapKey(KeyFormat, CryptoKey, CryptoKey, AlgorithmIdentifier) on crypto.subtle with too few arguments must throw TypeError
-PASS SubtleCrypto interface: crypto.subtle must inherit property "unwrapKey(KeyFormat, BufferSource, CryptoKey, AlgorithmIdentifier, AlgorithmIdentifier, boolean, [object Object])" with the proper type
-PASS SubtleCrypto interface: calling unwrapKey(KeyFormat, BufferSource, CryptoKey, AlgorithmIdentifier, AlgorithmIdentifier, boolean, [object Object]) on crypto.subtle with too few arguments must throw TypeError
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/WebIDL/ecmascript-binding/default-iterator-object-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/WebIDL/ecmascript-binding/default-iterator-object-expected.txt
deleted file mode 100644
index 40d379a7..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/WebIDL/ecmascript-binding/default-iterator-object-expected.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-This is a testharness.js-based test.
-PASS Default iterator objects for an interface have the same prototype
-FAIL Object.prototype.toString returns correct value assert_equals: expected "[object URLSearchParams Iterator]" but got "[object Iterator]"
-FAIL @@toStringTag has correct value from prototype assert_equals: expected "URLSearchParams Iterator" but got "Iterator"
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/WebIDL/ecmascript-binding/iterator-prototype-object-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/WebIDL/ecmascript-binding/iterator-prototype-object-expected.txt
deleted file mode 100644
index 007e073..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/WebIDL/ecmascript-binding/iterator-prototype-object-expected.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-This is a testharness.js-based test.
-PASS Has %IteratorPrototype% as prototype
-PASS next() exists and is writable, enumerable, and configurable
-FAIL next() throws TypeError when called on ineligible receiver assert_throws: function "() => {
-    iteratorProto.next.call(new Headers().entries());
-  }" did not throw
-FAIL Object.prototype.toString returns correct value assert_equals: expected "[object URLSearchParams Iterator]" but got "[object Iterator]"
-FAIL @@toStringTag has correct value assert_equals: expected "URLSearchParams Iterator" but got "Iterator"
-FAIL Is specific to an interface assert_not_equals: got disallowed value object "[object Iterator]"
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accelerometer/LinearAccelerationSensor-shake-threshold-manual.https-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accelerometer/LinearAccelerationSensor-shake-threshold-manual.https-expected.txt
deleted file mode 100644
index 6cc9b56e..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accelerometer/LinearAccelerationSensor-shake-threshold-manual.https-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Test that when shaking gesture along x axis of the device, the shake threshold can be greater than 25 assert_unreached: NotAllowedError:Permissions to access sensor are not granted Reached unreachable code
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accelerometer/idlharness.https-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accelerometer/idlharness.https-expected.txt
deleted file mode 100644
index 1911e73ae..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accelerometer/idlharness.https-expected.txt
+++ /dev/null
@@ -1,89 +0,0 @@
-This is a testharness.js-based test.
-PASS Test IDL implementation of Accelerometer Sensor
-PASS Sensor interface: existence and properties of interface object
-PASS Sensor interface object length
-PASS Sensor interface object name
-PASS Sensor interface: existence and properties of interface prototype object
-PASS Sensor interface: existence and properties of interface prototype object's "constructor" property
-PASS Sensor interface: existence and properties of interface prototype object's @@unscopables property
-PASS Sensor interface: attribute activated
-PASS Unscopable handled correctly for activated property on Sensor
-PASS Sensor interface: attribute hasReading
-PASS Unscopable handled correctly for hasReading property on Sensor
-PASS Sensor interface: attribute timestamp
-PASS Unscopable handled correctly for timestamp property on Sensor
-PASS Sensor interface: operation start()
-PASS Unscopable handled correctly for start() on Sensor
-PASS Sensor interface: operation stop()
-PASS Unscopable handled correctly for stop() on Sensor
-PASS Sensor interface: attribute onreading
-PASS Unscopable handled correctly for onreading property on Sensor
-PASS Sensor interface: attribute onactivate
-PASS Unscopable handled correctly for onactivate property on Sensor
-PASS Sensor interface: attribute onerror
-PASS Unscopable handled correctly for onerror property on Sensor
-PASS Accelerometer interface: existence and properties of interface object
-PASS Accelerometer interface object length
-PASS Accelerometer interface object name
-PASS Accelerometer interface: existence and properties of interface prototype object
-PASS Accelerometer interface: existence and properties of interface prototype object's "constructor" property
-PASS Accelerometer interface: existence and properties of interface prototype object's @@unscopables property
-PASS Accelerometer interface: attribute x
-PASS Unscopable handled correctly for x property on Accelerometer
-PASS Accelerometer interface: attribute y
-PASS Unscopable handled correctly for y property on Accelerometer
-PASS Accelerometer interface: attribute z
-PASS Unscopable handled correctly for z property on Accelerometer
-PASS Accelerometer must be primary interface of new Accelerometer();
-PASS Stringification of new Accelerometer();
-PASS Accelerometer interface: new Accelerometer(); must inherit property "x" with the proper type
-PASS Accelerometer interface: new Accelerometer(); must inherit property "y" with the proper type
-PASS Accelerometer interface: new Accelerometer(); must inherit property "z" with the proper type
-PASS Sensor interface: new Accelerometer(); must inherit property "activated" with the proper type
-PASS Sensor interface: new Accelerometer(); must inherit property "hasReading" with the proper type
-PASS Sensor interface: new Accelerometer(); must inherit property "timestamp" with the proper type
-PASS Sensor interface: new Accelerometer(); must inherit property "start()" with the proper type
-PASS Sensor interface: new Accelerometer(); must inherit property "stop()" with the proper type
-PASS Sensor interface: new Accelerometer(); must inherit property "onreading" with the proper type
-PASS Sensor interface: new Accelerometer(); must inherit property "onactivate" with the proper type
-PASS Sensor interface: new Accelerometer(); must inherit property "onerror" with the proper type
-PASS LinearAccelerationSensor interface: existence and properties of interface object
-PASS LinearAccelerationSensor interface object length
-PASS LinearAccelerationSensor interface object name
-PASS LinearAccelerationSensor interface: existence and properties of interface prototype object
-PASS LinearAccelerationSensor interface: existence and properties of interface prototype object's "constructor" property
-PASS LinearAccelerationSensor interface: existence and properties of interface prototype object's @@unscopables property
-PASS LinearAccelerationSensor must be primary interface of new LinearAccelerationSensor();
-PASS Stringification of new LinearAccelerationSensor();
-PASS Accelerometer interface: new LinearAccelerationSensor(); must inherit property "x" with the proper type
-PASS Accelerometer interface: new LinearAccelerationSensor(); must inherit property "y" with the proper type
-PASS Accelerometer interface: new LinearAccelerationSensor(); must inherit property "z" with the proper type
-PASS Sensor interface: new LinearAccelerationSensor(); must inherit property "activated" with the proper type
-PASS Sensor interface: new LinearAccelerationSensor(); must inherit property "hasReading" with the proper type
-PASS Sensor interface: new LinearAccelerationSensor(); must inherit property "timestamp" with the proper type
-PASS Sensor interface: new LinearAccelerationSensor(); must inherit property "start()" with the proper type
-PASS Sensor interface: new LinearAccelerationSensor(); must inherit property "stop()" with the proper type
-PASS Sensor interface: new LinearAccelerationSensor(); must inherit property "onreading" with the proper type
-PASS Sensor interface: new LinearAccelerationSensor(); must inherit property "onactivate" with the proper type
-PASS Sensor interface: new LinearAccelerationSensor(); must inherit property "onerror" with the proper type
-FAIL GravitySensor interface: existence and properties of interface object assert_own_property: self does not have own property "GravitySensor" expected property "GravitySensor" missing
-FAIL GravitySensor interface object length assert_own_property: self does not have own property "GravitySensor" expected property "GravitySensor" missing
-FAIL GravitySensor interface object name assert_own_property: self does not have own property "GravitySensor" expected property "GravitySensor" missing
-FAIL GravitySensor interface: existence and properties of interface prototype object assert_own_property: self does not have own property "GravitySensor" expected property "GravitySensor" missing
-FAIL GravitySensor interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "GravitySensor" expected property "GravitySensor" missing
-FAIL GravitySensor interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "GravitySensor" expected property "GravitySensor" missing
-FAIL GravitySensor must be primary interface of new GravitySensor(); assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GravitySensor is not defined"
-FAIL Stringification of new GravitySensor(); assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GravitySensor is not defined"
-FAIL Accelerometer interface: new GravitySensor(); must inherit property "x" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GravitySensor is not defined"
-FAIL Accelerometer interface: new GravitySensor(); must inherit property "y" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GravitySensor is not defined"
-FAIL Accelerometer interface: new GravitySensor(); must inherit property "z" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GravitySensor is not defined"
-FAIL Sensor interface: new GravitySensor(); must inherit property "activated" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GravitySensor is not defined"
-FAIL Sensor interface: new GravitySensor(); must inherit property "hasReading" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GravitySensor is not defined"
-FAIL Sensor interface: new GravitySensor(); must inherit property "timestamp" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GravitySensor is not defined"
-FAIL Sensor interface: new GravitySensor(); must inherit property "start()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GravitySensor is not defined"
-FAIL Sensor interface: new GravitySensor(); must inherit property "stop()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GravitySensor is not defined"
-FAIL Sensor interface: new GravitySensor(); must inherit property "onreading" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GravitySensor is not defined"
-FAIL Sensor interface: new GravitySensor(); must inherit property "onactivate" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GravitySensor is not defined"
-FAIL Sensor interface: new GravitySensor(); must inherit property "onerror" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GravitySensor is not defined"
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/description_from_content_of_describedby_element-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/description_from_content_of_describedby_element-manual-expected.txt
deleted file mode 100644
index bb53eab5..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/description_from_content_of_describedby_element-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Description from content of describedby element Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/description_from_content_of_describedby_element_which_is_hidden-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/description_from_content_of_describedby_element_which_is_hidden-manual-expected.txt
deleted file mode 100644
index 50b12e4..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/description_from_content_of_describedby_element_which_is_hidden-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Description from content of describedby element which is hidden Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/description_test_case_664-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/description_test_case_664-manual-expected.txt
deleted file mode 100644
index 4457ed1..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/description_test_case_664-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Description test case 664 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/description_test_case_665-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/description_test_case_665-manual-expected.txt
deleted file mode 100644
index 814aae0..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/description_test_case_665-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Description test case 665 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/description_test_case_666-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/description_test_case_666-manual-expected.txt
deleted file mode 100644
index eabd72c..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/description_test_case_666-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Description test case 666 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_checkbox-label-embedded-combobox-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_checkbox-label-embedded-combobox-manual-expected.txt
deleted file mode 100644
index 1027a42..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_checkbox-label-embedded-combobox-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name checkbox-label-embedded-combobox Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_checkbox-label-embedded-menu-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_checkbox-label-embedded-menu-manual-expected.txt
deleted file mode 100644
index ffb7e10a..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_checkbox-label-embedded-menu-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name checkbox-label-embedded-menu Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_checkbox-label-embedded-select-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_checkbox-label-embedded-select-manual-expected.txt
deleted file mode 100644
index 10c248dfe8..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_checkbox-label-embedded-select-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name checkbox-label-embedded-select Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_checkbox-label-embedded-slider-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_checkbox-label-embedded-slider-manual-expected.txt
deleted file mode 100644
index a076fe6..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_checkbox-label-embedded-slider-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name checkbox-label-embedded-slider Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_checkbox-label-embedded-spinbutton-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_checkbox-label-embedded-spinbutton-manual-expected.txt
deleted file mode 100644
index e4bf359..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_checkbox-label-embedded-spinbutton-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name checkbox-label-embedded-spinbutton Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_checkbox-title-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_checkbox-title-manual-expected.txt
deleted file mode 100644
index 5557ff1..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_checkbox-title-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name checkbox-title Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_file-label-embedded-combobox-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_file-label-embedded-combobox-manual-expected.txt
deleted file mode 100644
index c675500..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_file-label-embedded-combobox-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name file-label-embedded-combobox Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_file-label-embedded-menu-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_file-label-embedded-menu-manual-expected.txt
deleted file mode 100644
index 091d55d3..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_file-label-embedded-menu-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name file-label-embedded-menu Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_file-label-embedded-select-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_file-label-embedded-select-manual-expected.txt
deleted file mode 100644
index 7ab9b02..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_file-label-embedded-select-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name file-label-embedded-select Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_file-label-embedded-slider-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_file-label-embedded-slider-manual-expected.txt
deleted file mode 100644
index 7bac622..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_file-label-embedded-slider-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name file-label-embedded-slider Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_file-label-embedded-spinbutton-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_file-label-embedded-spinbutton-manual-expected.txt
deleted file mode 100644
index b21a3be5..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_file-label-embedded-spinbutton-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name file-label-embedded-spinbutton Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_file-title-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_file-title-manual-expected.txt
deleted file mode 100644
index 618e8ed88..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_file-title-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name file-title Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_from_content-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_from_content-manual-expected.txt
deleted file mode 100644
index a3db5dd..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_from_content-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name from content Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_from_content_of_label-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_from_content_of_label-manual-expected.txt
deleted file mode 100644
index c38a64c..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_from_content_of_label-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name from content of label Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_from_content_of_labelledby_element-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_from_content_of_labelledby_element-manual-expected.txt
deleted file mode 100644
index cf29877..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_from_content_of_labelledby_element-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name from content of labelledby element Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_from_content_of_labelledby_elements_one_of_which_is_hidden-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_from_content_of_labelledby_elements_one_of_which_is_hidden-manual-expected.txt
deleted file mode 100644
index 5a7cf7e..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_from_content_of_labelledby_elements_one_of_which_is_hidden-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name from content of labelledby elements one of which is hidden Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_image-title-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_image-title-manual-expected.txt
deleted file mode 100644
index 064166e6..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_image-title-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name image-title Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_password-label-embedded-combobox-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_password-label-embedded-combobox-manual-expected.txt
deleted file mode 100644
index d9a57ab..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_password-label-embedded-combobox-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name password-label-embedded-combobox Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_password-label-embedded-menu-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_password-label-embedded-menu-manual-expected.txt
deleted file mode 100644
index f4d31ba8..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_password-label-embedded-menu-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name password-label-embedded-menu Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_password-label-embedded-select-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_password-label-embedded-select-manual-expected.txt
deleted file mode 100644
index 2b72065..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_password-label-embedded-select-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name password-label-embedded-select Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_password-label-embedded-slider-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_password-label-embedded-slider-manual-expected.txt
deleted file mode 100644
index fbfa768..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_password-label-embedded-slider-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name password-label-embedded-slider Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_password-label-embedded-spinbutton-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_password-label-embedded-spinbutton-manual-expected.txt
deleted file mode 100644
index 8c17fee..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_password-label-embedded-spinbutton-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name password-label-embedded-spinbutton Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_password-title-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_password-title-manual-expected.txt
deleted file mode 100644
index f22ddac..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_password-title-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name password-title Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_radio-label-embedded-combobox-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_radio-label-embedded-combobox-manual-expected.txt
deleted file mode 100644
index 66a7a3f..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_radio-label-embedded-combobox-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name radio-label-embedded-combobox Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_radio-label-embedded-menu-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_radio-label-embedded-menu-manual-expected.txt
deleted file mode 100644
index df140f5e..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_radio-label-embedded-menu-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name radio-label-embedded-menu Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_radio-label-embedded-select-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_radio-label-embedded-select-manual-expected.txt
deleted file mode 100644
index ebcbe7a0..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_radio-label-embedded-select-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name radio-label-embedded-select Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_radio-label-embedded-slider-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_radio-label-embedded-slider-manual-expected.txt
deleted file mode 100644
index b26c1f4..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_radio-label-embedded-slider-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name radio-label-embedded-slider Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_radio-label-embedded-spinbutton-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_radio-label-embedded-spinbutton-manual-expected.txt
deleted file mode 100644
index 5114cdfe..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_radio-label-embedded-spinbutton-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name radio-label-embedded-spinbutton Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_radio-title-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_radio-title-manual-expected.txt
deleted file mode 100644
index d4699be..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_radio-title-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name radio-title Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_539-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_539-manual-expected.txt
deleted file mode 100644
index cfd61ff0..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_539-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 539 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_540-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_540-manual-expected.txt
deleted file mode 100644
index 00c7ed89..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_540-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 540 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_541-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_541-manual-expected.txt
deleted file mode 100644
index 364c288..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_541-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 541 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_543-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_543-manual-expected.txt
deleted file mode 100644
index 314ae72..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_543-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 543 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_544-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_544-manual-expected.txt
deleted file mode 100644
index 4a1b24a..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_544-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 544 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_545-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_545-manual-expected.txt
deleted file mode 100644
index 1b0364b..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_545-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 545 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_546-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_546-manual-expected.txt
deleted file mode 100644
index df79bf0c..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_546-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 546 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_547-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_547-manual-expected.txt
deleted file mode 100644
index a0ef335..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_547-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 547 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_548-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_548-manual-expected.txt
deleted file mode 100644
index 12e1d2c5..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_548-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 548 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_549-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_549-manual-expected.txt
deleted file mode 100644
index 6b6d9625..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_549-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 549 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_550-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_550-manual-expected.txt
deleted file mode 100644
index 193ec52d..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_550-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 550 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_551-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_551-manual-expected.txt
deleted file mode 100644
index f1747fe..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_551-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 551 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_552-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_552-manual-expected.txt
deleted file mode 100644
index 3817af9..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_552-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 552 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_553-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_553-manual-expected.txt
deleted file mode 100644
index 7ba2fb7..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_553-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 553 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_556-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_556-manual-expected.txt
deleted file mode 100644
index 54dadc6..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_556-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 556 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_557-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_557-manual-expected.txt
deleted file mode 100644
index 9f89cf1..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_557-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 557 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_558-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_558-manual-expected.txt
deleted file mode 100644
index 91f9ef7d..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_558-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 558 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_559-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_559-manual-expected.txt
deleted file mode 100644
index 76cb3dbd..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_559-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 559 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_560-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_560-manual-expected.txt
deleted file mode 100644
index 583b099..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_560-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 560 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_561-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_561-manual-expected.txt
deleted file mode 100644
index 512feb0d..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_561-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 561 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_562-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_562-manual-expected.txt
deleted file mode 100644
index 2379e7aa..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_562-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 562 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_563-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_563-manual-expected.txt
deleted file mode 100644
index 31f11f679..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_563-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 563 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_564-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_564-manual-expected.txt
deleted file mode 100644
index deee0c2c..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_564-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 564 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_565-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_565-manual-expected.txt
deleted file mode 100644
index 36b2586..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_565-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 565 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_566-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_566-manual-expected.txt
deleted file mode 100644
index b9a10fb..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_566-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 566 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_596-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_596-manual-expected.txt
deleted file mode 100644
index 8ce9709..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_596-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 596 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_597-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_597-manual-expected.txt
deleted file mode 100644
index 27ec7a2b..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_597-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 597 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_598-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_598-manual-expected.txt
deleted file mode 100644
index 4da9aab..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_598-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 598 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_599-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_599-manual-expected.txt
deleted file mode 100644
index c54248d1..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_599-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 599 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_600-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_600-manual-expected.txt
deleted file mode 100644
index 94fc303..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_600-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 600 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_601-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_601-manual-expected.txt
deleted file mode 100644
index 86573ea..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_601-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 601 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_602-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_602-manual-expected.txt
deleted file mode 100644
index b3a15e71..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_602-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 602 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_603-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_603-manual-expected.txt
deleted file mode 100644
index 04ff87e..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_603-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 603 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_604-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_604-manual-expected.txt
deleted file mode 100644
index 5d9b9c7..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_604-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 604 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_605-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_605-manual-expected.txt
deleted file mode 100644
index bf443c2..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_605-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 605 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_606-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_606-manual-expected.txt
deleted file mode 100644
index e20d8b7..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_606-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 606 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_607-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_607-manual-expected.txt
deleted file mode 100644
index 2d20a15..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_607-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 607 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_608-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_608-manual-expected.txt
deleted file mode 100644
index 8a1b7785..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_608-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 608 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_609-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_609-manual-expected.txt
deleted file mode 100644
index 2618f30..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_609-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 609 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_610-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_610-manual-expected.txt
deleted file mode 100644
index b191c3b..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_610-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 610 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_611-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_611-manual-expected.txt
deleted file mode 100644
index 2c2800ff..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_611-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 611 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_612-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_612-manual-expected.txt
deleted file mode 100644
index 46725aa..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_612-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 612 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_613-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_613-manual-expected.txt
deleted file mode 100644
index d5083b4..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_613-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 613 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_614-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_614-manual-expected.txt
deleted file mode 100644
index c1f2b86..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_614-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 614 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_615-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_615-manual-expected.txt
deleted file mode 100644
index c76b38e..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_615-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 615 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_616-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_616-manual-expected.txt
deleted file mode 100644
index e5ba34eb..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_616-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 616 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_617-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_617-manual-expected.txt
deleted file mode 100644
index c8b5283..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_617-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 617 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_618-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_618-manual-expected.txt
deleted file mode 100644
index 16e6272..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_618-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 618 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_619-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_619-manual-expected.txt
deleted file mode 100644
index 4fb87851..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_619-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 619 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_620-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_620-manual-expected.txt
deleted file mode 100644
index 70e4ad9..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_620-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 620 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_621-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_621-manual-expected.txt
deleted file mode 100644
index 12cd57ec..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_621-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 621 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_659-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_659-manual-expected.txt
deleted file mode 100644
index d75c053..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_659-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 659 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_660-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_660-manual-expected.txt
deleted file mode 100644
index d55fabe..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_660-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 660 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_661-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_661-manual-expected.txt
deleted file mode 100644
index 45d05a6..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_661-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 661 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_662-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_662-manual-expected.txt
deleted file mode 100644
index 25b2f78..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_662-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 662 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_663-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_663-manual-expected.txt
deleted file mode 100644
index 7627635..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_663-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 663 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_663a-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_663a-manual-expected.txt
deleted file mode 100644
index b6569fb..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_663a-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 663a Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_721-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_721-manual-expected.txt
deleted file mode 100644
index 1638a4f..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_721-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 721 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_723-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_723-manual-expected.txt
deleted file mode 100644
index ec5c85b..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_723-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 723 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_724-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_724-manual-expected.txt
deleted file mode 100644
index e3dac15..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_724-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 724 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_725-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_725-manual-expected.txt
deleted file mode 100644
index eb47a09f..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_725-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 725 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_726-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_726-manual-expected.txt
deleted file mode 100644
index eb56bd97..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_726-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 726 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_727-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_727-manual-expected.txt
deleted file mode 100644
index 3424c6d..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_727-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 727 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_728-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_728-manual-expected.txt
deleted file mode 100644
index 64f1074..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_728-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 728 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_729-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_729-manual-expected.txt
deleted file mode 100644
index 6b6325b..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_729-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 729 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_730-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_730-manual-expected.txt
deleted file mode 100644
index db9d07cd..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_730-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 730 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_731-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_731-manual-expected.txt
deleted file mode 100644
index f5e0b27..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_731-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 731 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_733-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_733-manual-expected.txt
deleted file mode 100644
index 78c0c02..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_733-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 733 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_734-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_734-manual-expected.txt
deleted file mode 100644
index 470c204..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_734-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 734 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_735-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_735-manual-expected.txt
deleted file mode 100644
index 94c8ca9..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_735-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 735 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_736-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_736-manual-expected.txt
deleted file mode 100644
index 438a1ac..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_736-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 736 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_737-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_737-manual-expected.txt
deleted file mode 100644
index d371848f..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_737-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 737 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_738-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_738-manual-expected.txt
deleted file mode 100644
index 1ad6e0a..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_738-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 738 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_739-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_739-manual-expected.txt
deleted file mode 100644
index b24befc..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_739-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 739 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_740-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_740-manual-expected.txt
deleted file mode 100644
index dde7a55..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_740-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 740 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_741-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_741-manual-expected.txt
deleted file mode 100644
index 9d8c66d..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_741-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 741 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_742-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_742-manual-expected.txt
deleted file mode 100644
index a071383..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_742-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 742 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_743-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_743-manual-expected.txt
deleted file mode 100644
index c19e742..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_743-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 743 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_744-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_744-manual-expected.txt
deleted file mode 100644
index 39ebd3a..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_744-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 744 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_745-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_745-manual-expected.txt
deleted file mode 100644
index a866037..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_745-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 745 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_746-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_746-manual-expected.txt
deleted file mode 100644
index d8d97945..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_746-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 746 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_747-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_747-manual-expected.txt
deleted file mode 100644
index 9ee6ae45..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_747-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 747 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_748-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_748-manual-expected.txt
deleted file mode 100644
index 2754d90..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_748-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 748 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_749-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_749-manual-expected.txt
deleted file mode 100644
index 62f7be78..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_749-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 749 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_750-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_750-manual-expected.txt
deleted file mode 100644
index eb2a1580..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_750-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 750 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_751-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_751-manual-expected.txt
deleted file mode 100644
index 797f3c3..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_751-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 751 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_752-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_752-manual-expected.txt
deleted file mode 100644
index ce798ef..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_752-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 752 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_753-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_753-manual-expected.txt
deleted file mode 100644
index 44b32e9..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_753-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 753 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_754-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_754-manual-expected.txt
deleted file mode 100644
index b6ea29b..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_754-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 754 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_755-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_755-manual-expected.txt
deleted file mode 100644
index 629ce12..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_755-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 755 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_756-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_756-manual-expected.txt
deleted file mode 100644
index a4805a99..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_756-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 756 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_757-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_757-manual-expected.txt
deleted file mode 100644
index b9f8ca9..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_757-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 757 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_758-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_758-manual-expected.txt
deleted file mode 100644
index 6427ea1..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_758-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 758 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_759-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_759-manual-expected.txt
deleted file mode 100644
index 1fc17bb..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_759-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 759 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_760-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_760-manual-expected.txt
deleted file mode 100644
index 85a3aa7..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_760-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 760 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_761-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_761-manual-expected.txt
deleted file mode 100644
index 8b36da63..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_761-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 761 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_762-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_762-manual-expected.txt
deleted file mode 100644
index 95c2d35..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_test_case_762-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name test case 762 Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_text-label-embedded-combobox-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_text-label-embedded-combobox-manual-expected.txt
deleted file mode 100644
index 157e23e..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_text-label-embedded-combobox-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name text-label-embedded-combobox Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_text-label-embedded-menu-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_text-label-embedded-menu-manual-expected.txt
deleted file mode 100644
index 7055a5b43..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_text-label-embedded-menu-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name text-label-embedded-menu Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_text-label-embedded-select-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_text-label-embedded-select-manual-expected.txt
deleted file mode 100644
index ab52903..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_text-label-embedded-select-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name text-label-embedded-select Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_text-label-embedded-slider-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_text-label-embedded-slider-manual-expected.txt
deleted file mode 100644
index ea5871f..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_text-label-embedded-slider-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name text-label-embedded-slider Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_text-label-embedded-spinbutton-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_text-label-embedded-spinbutton-manual-expected.txt
deleted file mode 100644
index 2f19a7a..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_text-label-embedded-spinbutton-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name text-label-embedded-spinbutton Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_text-title-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_text-title-manual-expected.txt
deleted file mode 100644
index bf46c647..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/accname/name_text-title-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Name text-title Uncaught ReferenceError: ATTAcomm is not defined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/background-fetch/interfaces-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/background-fetch/interfaces-expected.txt
deleted file mode 100644
index dbd51c5..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/background-fetch/interfaces-expected.txt
+++ /dev/null
@@ -1,74 +0,0 @@
-This is a testharness.js-based test.
-Found 70 tests; 52 PASS, 18 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS Exposed interfaces in a Document.
-PASS ServiceWorkerRegistration interface: attribute backgroundFetch
-PASS Unscopable handled correctly for backgroundFetch property on ServiceWorkerRegistration
-PASS ServiceWorkerGlobalScope interface: existence and properties of interface object
-PASS BackgroundFetchManager interface: existence and properties of interface object
-PASS BackgroundFetchManager interface object length
-PASS BackgroundFetchManager interface object name
-PASS BackgroundFetchManager interface: existence and properties of interface prototype object
-PASS BackgroundFetchManager interface: existence and properties of interface prototype object's "constructor" property
-PASS BackgroundFetchManager interface: existence and properties of interface prototype object's @@unscopables property
-PASS BackgroundFetchManager interface: operation fetch(DOMString, [object Object],[object Object], BackgroundFetchOptions)
-PASS Unscopable handled correctly for fetch(DOMString, [object Object],[object Object], BackgroundFetchOptions) on BackgroundFetchManager
-PASS BackgroundFetchManager interface: operation get(DOMString)
-PASS Unscopable handled correctly for get(DOMString) on BackgroundFetchManager
-PASS BackgroundFetchManager interface: operation getIds()
-PASS Unscopable handled correctly for getIds() on BackgroundFetchManager
-FAIL BackgroundFetchRegistration interface: existence and properties of interface object Cannot read property 'has_extended_attribute' of undefined
-PASS BackgroundFetchRegistration interface object length
-PASS BackgroundFetchRegistration interface object name
-FAIL BackgroundFetchRegistration interface: existence and properties of interface prototype object Cannot read property 'has_extended_attribute' of undefined
-PASS BackgroundFetchRegistration interface: existence and properties of interface prototype object's "constructor" property
-PASS BackgroundFetchRegistration interface: existence and properties of interface prototype object's @@unscopables property
-PASS BackgroundFetchRegistration interface: attribute id
-PASS Unscopable handled correctly for id property on BackgroundFetchRegistration
-PASS BackgroundFetchRegistration interface: attribute uploadTotal
-PASS Unscopable handled correctly for uploadTotal property on BackgroundFetchRegistration
-PASS BackgroundFetchRegistration interface: attribute uploaded
-PASS Unscopable handled correctly for uploaded property on BackgroundFetchRegistration
-PASS BackgroundFetchRegistration interface: attribute downloadTotal
-PASS Unscopable handled correctly for downloadTotal property on BackgroundFetchRegistration
-PASS BackgroundFetchRegistration interface: attribute downloaded
-PASS Unscopable handled correctly for downloaded property on BackgroundFetchRegistration
-FAIL BackgroundFetchRegistration interface: attribute activeFetches assert_true: The prototype object must have a property "activeFetches" expected true got false
-PASS Unscopable handled correctly for activeFetches property on BackgroundFetchRegistration
-PASS BackgroundFetchRegistration interface: attribute onprogress
-PASS Unscopable handled correctly for onprogress property on BackgroundFetchRegistration
-PASS BackgroundFetchRegistration interface: operation abort()
-PASS Unscopable handled correctly for abort() on BackgroundFetchRegistration
-PASS BackgroundFetchFetch interface: existence and properties of interface object
-PASS BackgroundFetchFetch interface object length
-PASS BackgroundFetchFetch interface object name
-PASS BackgroundFetchFetch interface: existence and properties of interface prototype object
-PASS BackgroundFetchFetch interface: existence and properties of interface prototype object's "constructor" property
-PASS BackgroundFetchFetch interface: existence and properties of interface prototype object's @@unscopables property
-PASS BackgroundFetchFetch interface: attribute request
-PASS Unscopable handled correctly for request property on BackgroundFetchFetch
-FAIL BackgroundFetchActiveFetches interface: existence and properties of interface object assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
-FAIL BackgroundFetchActiveFetches interface object length assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
-FAIL BackgroundFetchActiveFetches interface object name assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
-FAIL BackgroundFetchActiveFetches interface: existence and properties of interface prototype object assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
-FAIL BackgroundFetchActiveFetches interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
-FAIL BackgroundFetchActiveFetches interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
-FAIL BackgroundFetchActiveFetches interface: operation match(RequestInfo) assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
-PASS Unscopable handled correctly for match(RequestInfo) on BackgroundFetchActiveFetches
-FAIL BackgroundFetchActiveFetches interface: operation values() assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
-PASS Unscopable handled correctly for values() on BackgroundFetchActiveFetches
-FAIL BackgroundFetchActiveFetch interface: existence and properties of interface object assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
-FAIL BackgroundFetchActiveFetch interface object length assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
-FAIL BackgroundFetchActiveFetch interface object name assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
-FAIL BackgroundFetchActiveFetch interface: existence and properties of interface prototype object assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
-FAIL BackgroundFetchActiveFetch interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
-FAIL BackgroundFetchActiveFetch interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
-FAIL BackgroundFetchActiveFetch interface: attribute responseReady assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
-PASS Unscopable handled correctly for responseReady property on BackgroundFetchActiveFetch
-PASS BackgroundFetchEvent interface: existence and properties of interface object
-PASS BackgroundFetchSettledEvent interface: existence and properties of interface object
-PASS BackgroundFetchSettledFetches interface: existence and properties of interface object
-PASS BackgroundFetchSettledFetch interface: existence and properties of interface object
-PASS BackgroundFetchUpdateEvent interface: existence and properties of interface object
-PASS BackgroundFetchClickEvent interface: existence and properties of interface object
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/background-fetch/interfaces-worker.https-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/background-fetch/interfaces-worker.https-expected.txt
deleted file mode 100644
index 9831c3d5..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/background-fetch/interfaces-worker.https-expected.txt
+++ /dev/null
@@ -1,124 +0,0 @@
-This is a testharness.js-based test.
-PASS Service Worker-scoped tests.
-PASS Exposed interfaces in a Service Worker.
-FAIL ServiceWorkerRegistration interface: existence and properties of interface object assert_false: expected false got true
-FAIL ServiceWorkerGlobalScope interface: attribute onbackgroundfetched assert_true: The prototype object must have a property "onbackgroundfetched" expected true got false
-PASS Unscopable handled correctly for onbackgroundfetched property on ServiceWorkerGlobalScope
-FAIL ServiceWorkerGlobalScope interface: attribute onbackgroundfetchfail assert_true: The prototype object must have a property "onbackgroundfetchfail" expected true got false
-PASS Unscopable handled correctly for onbackgroundfetchfail property on ServiceWorkerGlobalScope
-FAIL ServiceWorkerGlobalScope interface: attribute onbackgroundfetchabort assert_true: The prototype object must have a property "onbackgroundfetchabort" expected true got false
-PASS Unscopable handled correctly for onbackgroundfetchabort property on ServiceWorkerGlobalScope
-FAIL ServiceWorkerGlobalScope interface: attribute onbackgroundfetchclick assert_true: The prototype object must have a property "onbackgroundfetchclick" expected true got false
-PASS Unscopable handled correctly for onbackgroundfetchclick property on ServiceWorkerGlobalScope
-PASS BackgroundFetchManager interface: existence and properties of interface object
-PASS BackgroundFetchManager interface object length
-PASS BackgroundFetchManager interface object name
-PASS BackgroundFetchManager interface: existence and properties of interface prototype object
-PASS BackgroundFetchManager interface: existence and properties of interface prototype object's "constructor" property
-PASS BackgroundFetchManager interface: existence and properties of interface prototype object's @@unscopables property
-PASS BackgroundFetchManager interface: operation fetch(DOMString, [object Object],[object Object], BackgroundFetchOptions)
-PASS Unscopable handled correctly for fetch(DOMString, [object Object],[object Object], BackgroundFetchOptions) on BackgroundFetchManager
-PASS BackgroundFetchManager interface: operation get(DOMString)
-PASS Unscopable handled correctly for get(DOMString) on BackgroundFetchManager
-PASS BackgroundFetchManager interface: operation getIds()
-PASS Unscopable handled correctly for getIds() on BackgroundFetchManager
-FAIL BackgroundFetchRegistration interface: existence and properties of interface object Cannot read property 'has_extended_attribute' of undefined
-PASS BackgroundFetchRegistration interface object length
-PASS BackgroundFetchRegistration interface object name
-FAIL BackgroundFetchRegistration interface: existence and properties of interface prototype object Cannot read property 'has_extended_attribute' of undefined
-PASS BackgroundFetchRegistration interface: existence and properties of interface prototype object's "constructor" property
-PASS BackgroundFetchRegistration interface: existence and properties of interface prototype object's @@unscopables property
-PASS BackgroundFetchRegistration interface: attribute id
-PASS Unscopable handled correctly for id property on BackgroundFetchRegistration
-PASS BackgroundFetchRegistration interface: attribute uploadTotal
-PASS Unscopable handled correctly for uploadTotal property on BackgroundFetchRegistration
-PASS BackgroundFetchRegistration interface: attribute uploaded
-PASS Unscopable handled correctly for uploaded property on BackgroundFetchRegistration
-PASS BackgroundFetchRegistration interface: attribute downloadTotal
-PASS Unscopable handled correctly for downloadTotal property on BackgroundFetchRegistration
-PASS BackgroundFetchRegistration interface: attribute downloaded
-PASS Unscopable handled correctly for downloaded property on BackgroundFetchRegistration
-FAIL BackgroundFetchRegistration interface: attribute activeFetches assert_true: The prototype object must have a property "activeFetches" expected true got false
-PASS Unscopable handled correctly for activeFetches property on BackgroundFetchRegistration
-PASS BackgroundFetchRegistration interface: attribute onprogress
-PASS Unscopable handled correctly for onprogress property on BackgroundFetchRegistration
-PASS BackgroundFetchRegistration interface: operation abort()
-PASS Unscopable handled correctly for abort() on BackgroundFetchRegistration
-PASS BackgroundFetchFetch interface: existence and properties of interface object
-PASS BackgroundFetchFetch interface object length
-PASS BackgroundFetchFetch interface object name
-PASS BackgroundFetchFetch interface: existence and properties of interface prototype object
-PASS BackgroundFetchFetch interface: existence and properties of interface prototype object's "constructor" property
-PASS BackgroundFetchFetch interface: existence and properties of interface prototype object's @@unscopables property
-PASS BackgroundFetchFetch interface: attribute request
-PASS Unscopable handled correctly for request property on BackgroundFetchFetch
-FAIL BackgroundFetchActiveFetches interface: existence and properties of interface object assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
-FAIL BackgroundFetchActiveFetches interface object length assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
-FAIL BackgroundFetchActiveFetches interface object name assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
-FAIL BackgroundFetchActiveFetches interface: existence and properties of interface prototype object assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
-FAIL BackgroundFetchActiveFetches interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
-FAIL BackgroundFetchActiveFetches interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
-FAIL BackgroundFetchActiveFetches interface: operation match(RequestInfo) assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
-PASS Unscopable handled correctly for match(RequestInfo) on BackgroundFetchActiveFetches
-FAIL BackgroundFetchActiveFetches interface: operation values() assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
-PASS Unscopable handled correctly for values() on BackgroundFetchActiveFetches
-FAIL BackgroundFetchActiveFetch interface: existence and properties of interface object assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
-FAIL BackgroundFetchActiveFetch interface object length assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
-FAIL BackgroundFetchActiveFetch interface object name assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
-FAIL BackgroundFetchActiveFetch interface: existence and properties of interface prototype object assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
-FAIL BackgroundFetchActiveFetch interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
-FAIL BackgroundFetchActiveFetch interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
-FAIL BackgroundFetchActiveFetch interface: attribute responseReady assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
-PASS Unscopable handled correctly for responseReady property on BackgroundFetchActiveFetch
-FAIL BackgroundFetchEvent interface: existence and properties of interface object Cannot read property 'has_extended_attribute' of undefined
-PASS BackgroundFetchEvent interface object length
-PASS BackgroundFetchEvent interface object name
-FAIL BackgroundFetchEvent interface: existence and properties of interface prototype object Cannot read property 'has_extended_attribute' of undefined
-PASS BackgroundFetchEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS BackgroundFetchEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS BackgroundFetchEvent interface: attribute id
-PASS Unscopable handled correctly for id property on BackgroundFetchEvent
-FAIL BackgroundFetchSettledEvent interface: existence and properties of interface object assert_own_property: self does not have own property "BackgroundFetchSettledEvent" expected property "BackgroundFetchSettledEvent" missing
-FAIL BackgroundFetchSettledEvent interface object length assert_own_property: self does not have own property "BackgroundFetchSettledEvent" expected property "BackgroundFetchSettledEvent" missing
-FAIL BackgroundFetchSettledEvent interface object name assert_own_property: self does not have own property "BackgroundFetchSettledEvent" expected property "BackgroundFetchSettledEvent" missing
-FAIL BackgroundFetchSettledEvent interface: existence and properties of interface prototype object assert_own_property: self does not have own property "BackgroundFetchSettledEvent" expected property "BackgroundFetchSettledEvent" missing
-FAIL BackgroundFetchSettledEvent interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "BackgroundFetchSettledEvent" expected property "BackgroundFetchSettledEvent" missing
-FAIL BackgroundFetchSettledEvent interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "BackgroundFetchSettledEvent" expected property "BackgroundFetchSettledEvent" missing
-FAIL BackgroundFetchSettledEvent interface: attribute fetches assert_own_property: self does not have own property "BackgroundFetchSettledEvent" expected property "BackgroundFetchSettledEvent" missing
-PASS Unscopable handled correctly for fetches property on BackgroundFetchSettledEvent
-FAIL BackgroundFetchSettledFetches interface: existence and properties of interface object assert_own_property: self does not have own property "BackgroundFetchSettledFetches" expected property "BackgroundFetchSettledFetches" missing
-FAIL BackgroundFetchSettledFetches interface object length assert_own_property: self does not have own property "BackgroundFetchSettledFetches" expected property "BackgroundFetchSettledFetches" missing
-FAIL BackgroundFetchSettledFetches interface object name assert_own_property: self does not have own property "BackgroundFetchSettledFetches" expected property "BackgroundFetchSettledFetches" missing
-FAIL BackgroundFetchSettledFetches interface: existence and properties of interface prototype object assert_own_property: self does not have own property "BackgroundFetchSettledFetches" expected property "BackgroundFetchSettledFetches" missing
-FAIL BackgroundFetchSettledFetches interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "BackgroundFetchSettledFetches" expected property "BackgroundFetchSettledFetches" missing
-FAIL BackgroundFetchSettledFetches interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "BackgroundFetchSettledFetches" expected property "BackgroundFetchSettledFetches" missing
-FAIL BackgroundFetchSettledFetches interface: operation match(RequestInfo) assert_own_property: self does not have own property "BackgroundFetchSettledFetches" expected property "BackgroundFetchSettledFetches" missing
-PASS Unscopable handled correctly for match(RequestInfo) on BackgroundFetchSettledFetches
-FAIL BackgroundFetchSettledFetches interface: operation values() assert_own_property: self does not have own property "BackgroundFetchSettledFetches" expected property "BackgroundFetchSettledFetches" missing
-PASS Unscopable handled correctly for values() on BackgroundFetchSettledFetches
-PASS BackgroundFetchSettledFetch interface: existence and properties of interface object
-FAIL BackgroundFetchSettledFetch interface object length assert_equals: wrong value for BackgroundFetchSettledFetch.length expected 0 but got 2
-PASS BackgroundFetchSettledFetch interface object name
-PASS BackgroundFetchSettledFetch interface: existence and properties of interface prototype object
-PASS BackgroundFetchSettledFetch interface: existence and properties of interface prototype object's "constructor" property
-PASS BackgroundFetchSettledFetch interface: existence and properties of interface prototype object's @@unscopables property
-PASS BackgroundFetchSettledFetch interface: attribute response
-PASS Unscopable handled correctly for response property on BackgroundFetchSettledFetch
-FAIL BackgroundFetchUpdateEvent interface: existence and properties of interface object assert_own_property: self does not have own property "BackgroundFetchUpdateEvent" expected property "BackgroundFetchUpdateEvent" missing
-FAIL BackgroundFetchUpdateEvent interface object length assert_own_property: self does not have own property "BackgroundFetchUpdateEvent" expected property "BackgroundFetchUpdateEvent" missing
-FAIL BackgroundFetchUpdateEvent interface object name assert_own_property: self does not have own property "BackgroundFetchUpdateEvent" expected property "BackgroundFetchUpdateEvent" missing
-FAIL BackgroundFetchUpdateEvent interface: existence and properties of interface prototype object assert_own_property: self does not have own property "BackgroundFetchUpdateEvent" expected property "BackgroundFetchUpdateEvent" missing
-FAIL BackgroundFetchUpdateEvent interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "BackgroundFetchUpdateEvent" expected property "BackgroundFetchUpdateEvent" missing
-FAIL BackgroundFetchUpdateEvent interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "BackgroundFetchUpdateEvent" expected property "BackgroundFetchUpdateEvent" missing
-FAIL BackgroundFetchUpdateEvent interface: operation updateUI(DOMString) assert_own_property: self does not have own property "BackgroundFetchUpdateEvent" expected property "BackgroundFetchUpdateEvent" missing
-PASS Unscopable handled correctly for updateUI(DOMString) on BackgroundFetchUpdateEvent
-PASS BackgroundFetchClickEvent interface: existence and properties of interface object
-PASS BackgroundFetchClickEvent interface object length
-PASS BackgroundFetchClickEvent interface object name
-FAIL BackgroundFetchClickEvent interface: existence and properties of interface prototype object Cannot read property 'has_stringifier' of undefined
-PASS BackgroundFetchClickEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS BackgroundFetchClickEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS BackgroundFetchClickEvent interface: attribute state
-PASS Unscopable handled correctly for state property on BackgroundFetchClickEvent
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/background-fetch/interfaces.worker-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/background-fetch/interfaces.worker-expected.txt
deleted file mode 100644
index 8340efd..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/background-fetch/interfaces.worker-expected.txt
+++ /dev/null
@@ -1,73 +0,0 @@
-This is a testharness.js-based test.
-Found 69 tests; 50 PASS, 19 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS Exposed interfaces in a Service Worker.
-FAIL ServiceWorkerRegistration interface: existence and properties of interface object assert_false: expected false got true
-PASS ServiceWorkerGlobalScope interface: existence and properties of interface object
-PASS BackgroundFetchManager interface: existence and properties of interface object
-PASS BackgroundFetchManager interface object length
-PASS BackgroundFetchManager interface object name
-PASS BackgroundFetchManager interface: existence and properties of interface prototype object
-PASS BackgroundFetchManager interface: existence and properties of interface prototype object's "constructor" property
-PASS BackgroundFetchManager interface: existence and properties of interface prototype object's @@unscopables property
-PASS BackgroundFetchManager interface: operation fetch(DOMString, [object Object],[object Object], BackgroundFetchOptions)
-PASS Unscopable handled correctly for fetch(DOMString, [object Object],[object Object], BackgroundFetchOptions) on BackgroundFetchManager
-PASS BackgroundFetchManager interface: operation get(DOMString)
-PASS Unscopable handled correctly for get(DOMString) on BackgroundFetchManager
-PASS BackgroundFetchManager interface: operation getIds()
-PASS Unscopable handled correctly for getIds() on BackgroundFetchManager
-FAIL BackgroundFetchRegistration interface: existence and properties of interface object Cannot read property 'has_extended_attribute' of undefined
-PASS BackgroundFetchRegistration interface object length
-PASS BackgroundFetchRegistration interface object name
-FAIL BackgroundFetchRegistration interface: existence and properties of interface prototype object Cannot read property 'has_extended_attribute' of undefined
-PASS BackgroundFetchRegistration interface: existence and properties of interface prototype object's "constructor" property
-PASS BackgroundFetchRegistration interface: existence and properties of interface prototype object's @@unscopables property
-PASS BackgroundFetchRegistration interface: attribute id
-PASS Unscopable handled correctly for id property on BackgroundFetchRegistration
-PASS BackgroundFetchRegistration interface: attribute uploadTotal
-PASS Unscopable handled correctly for uploadTotal property on BackgroundFetchRegistration
-PASS BackgroundFetchRegistration interface: attribute uploaded
-PASS Unscopable handled correctly for uploaded property on BackgroundFetchRegistration
-PASS BackgroundFetchRegistration interface: attribute downloadTotal
-PASS Unscopable handled correctly for downloadTotal property on BackgroundFetchRegistration
-PASS BackgroundFetchRegistration interface: attribute downloaded
-PASS Unscopable handled correctly for downloaded property on BackgroundFetchRegistration
-FAIL BackgroundFetchRegistration interface: attribute activeFetches assert_true: The prototype object must have a property "activeFetches" expected true got false
-PASS Unscopable handled correctly for activeFetches property on BackgroundFetchRegistration
-PASS BackgroundFetchRegistration interface: attribute onprogress
-PASS Unscopable handled correctly for onprogress property on BackgroundFetchRegistration
-PASS BackgroundFetchRegistration interface: operation abort()
-PASS Unscopable handled correctly for abort() on BackgroundFetchRegistration
-PASS BackgroundFetchFetch interface: existence and properties of interface object
-PASS BackgroundFetchFetch interface object length
-PASS BackgroundFetchFetch interface object name
-PASS BackgroundFetchFetch interface: existence and properties of interface prototype object
-PASS BackgroundFetchFetch interface: existence and properties of interface prototype object's "constructor" property
-PASS BackgroundFetchFetch interface: existence and properties of interface prototype object's @@unscopables property
-PASS BackgroundFetchFetch interface: attribute request
-PASS Unscopable handled correctly for request property on BackgroundFetchFetch
-FAIL BackgroundFetchActiveFetches interface: existence and properties of interface object assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
-FAIL BackgroundFetchActiveFetches interface object length assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
-FAIL BackgroundFetchActiveFetches interface object name assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
-FAIL BackgroundFetchActiveFetches interface: existence and properties of interface prototype object assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
-FAIL BackgroundFetchActiveFetches interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
-FAIL BackgroundFetchActiveFetches interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
-FAIL BackgroundFetchActiveFetches interface: operation match(RequestInfo) assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
-PASS Unscopable handled correctly for match(RequestInfo) on BackgroundFetchActiveFetches
-FAIL BackgroundFetchActiveFetches interface: operation values() assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
-PASS Unscopable handled correctly for values() on BackgroundFetchActiveFetches
-FAIL BackgroundFetchActiveFetch interface: existence and properties of interface object assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
-FAIL BackgroundFetchActiveFetch interface object length assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
-FAIL BackgroundFetchActiveFetch interface object name assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
-FAIL BackgroundFetchActiveFetch interface: existence and properties of interface prototype object assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
-FAIL BackgroundFetchActiveFetch interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
-FAIL BackgroundFetchActiveFetch interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
-FAIL BackgroundFetchActiveFetch interface: attribute responseReady assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
-PASS Unscopable handled correctly for responseReady property on BackgroundFetchActiveFetch
-PASS BackgroundFetchEvent interface: existence and properties of interface object
-PASS BackgroundFetchSettledEvent interface: existence and properties of interface object
-PASS BackgroundFetchSettledFetches interface: existence and properties of interface object
-PASS BackgroundFetchSettledFetch interface: existence and properties of interface object
-PASS BackgroundFetchUpdateEvent interface: existence and properties of interface object
-PASS BackgroundFetchClickEvent interface: existence and properties of interface object
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/css/css-backgrounds/background-331-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/css/css-backgrounds/background-331-expected.txt
deleted file mode 100644
index 7ee38e7..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/css/css-backgrounds/background-331-expected.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-This is a testharness.js-based test.
-PASS background_initial_image
-PASS background_initial_position
-PASS background_initial_size
-PASS background_initial_repeat
-PASS background_initial_attachment
-PASS background_initial_origin
-PASS background_initial_clip
-PASS background_initial_color
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/css/css-backgrounds/background-332-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/css/css-backgrounds/background-332-expected.txt
deleted file mode 100644
index 28192fd..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/css/css-backgrounds/background-332-expected.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-This is a testharness.js-based test.
-FAIL background_specified_image assert_equals: background specified value for background-image expected "url(support/60x60-green.png)" but got "url(\"http://web-platform.test:8001/css/css-backgrounds/support/60x60-green.png\")"
-PASS background_specified_position
-FAIL background_specified_size assert_equals: background specified value for background-size expected "10em 10em" but got "160px"
-FAIL background_specified_repeat assert_equals: background specified value for background-repeat expected "round round" but got "round"
-PASS background_specified_attachment
-PASS background_specified_origin
-PASS background_specified_clip
-PASS background_specified_color
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/css/css-backgrounds/background-333-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/css/css-backgrounds/background-333-expected.txt
deleted file mode 100644
index 7ed2ae78..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/css/css-backgrounds/background-333-expected.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-This is a testharness.js-based test.
-PASS background_specified_color_image
-PASS background_specified_color_position
-PASS background_specified_color_size
-PASS background_specified_color_repeat
-PASS background_specified_color_attachment
-PASS background_specified_color_origin
-PASS background_specified_color_clip
-PASS background_specified_color_color
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/css/css-color/color-function-parsing-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/css/css-color/color-function-parsing-expected.txt
deleted file mode 100644
index 048d173..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/css/css-color/color-function-parsing-expected.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-This is a testharness.js-based test.
-FAIL Basic sRGB white assert_equals: expected "color(srgb 1 1 1)" but got "rgb(0, 0, 0)"
-FAIL White with lots of space assert_equals: expected "color(srgb 1 1 1)" but got "rgb(0, 0, 0)"
-FAIL sRGB color assert_equals: expected "color(srgb 0.25 0.5 0.75)" but got "rgb(0, 0, 0)"
-FAIL Different case for sRGB assert_equals: expected "color(srgb 0.25 0.5 0.75)" but got "rgb(0, 0, 0)"
-FAIL sRGB color with unnecessary decimals assert_equals: expected "color(srgb 1 0.5 0.2)" but got "rgb(0, 0, 0)"
-FAIL sRGB white with 0.5 alpha assert_equals: expected "color(srgb 1 1 1 / 0.5)" but got "rgb(0, 0, 0)"
-FAIL sRGB white with 0 alpha assert_equals: expected "color(srgb 1 1 1 / 0)" but got "rgb(0, 0, 0)"
-FAIL sRGB white with 50% alpha assert_equals: expected "color(srgb 1 1 1 / 0.5)" but got "rgb(0, 0, 0)"
-FAIL sRGB white with 0% alpha assert_equals: expected "color(srgb 1 1 1 / 0)" but got "rgb(0, 0, 0)"
-FAIL One missing component is 0 assert_equals: expected "color(srgb 1 1 0)" but got "rgb(0, 0, 0)"
-FAIL Two missing components are 0 assert_equals: expected "color(srgb 1 0 0)" but got "rgb(0, 0, 0)"
-FAIL All components missing assert_equals: expected "color(srgb 0 0 0)" but got "rgb(0, 0, 0)"
-FAIL Display P3 color assert_equals: expected "color(display-p3 0.6 0.7 0.8)" but got "rgb(0, 0, 0)"
-FAIL Different case for Display P3 assert_equals: expected "color(display-p3 0.6 0.7 0.8)" but got "rgb(0, 0, 0)"
-FAIL Unknown color space should fallback assert_equals: expected "color(unknown 1 2 3, red)" but got "rgb(0, 0, 0)"
-FAIL sRGB color with negative component should clamp to 0 assert_equals: expected "color(srgb 0 0.5 0.75)" but got "rgb(0, 0, 0)"
-FAIL sRGB color with component > 1 should clamp assert_equals: expected "color(srgb 0.25 1 0.75)" but got "rgb(0, 0, 0)"
-FAIL Display P3 color with negative component should clamp to 0 assert_equals: expected "color(display-p3 0.5 0 0.75)" but got "rgb(0, 0, 0)"
-FAIL Display P3 color with component > 1 should clamp assert_equals: expected "color(display-p3 1 1 1)" but got "rgb(0, 0, 0)"
-FAIL Alpha > 1 should clamp assert_equals: expected "color(srgb 0.1 0.2 0.3)" but got "rgb(0, 0, 0)"
-FAIL Negative alpha should clamp assert_equals: expected "color(srgb 1 1 1 / 0)" but got "rgb(0, 0, 0)"
-PASS Empty
-PASS Bad color space
-PASS Bad Display P3 color space
-PASS No color space
-PASS Too many parameters
-PASS Way too many parameters
-PASS Bad parameters
-PASS Bad alpha
-PASS Junk after alpha
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/css/css-fonts/font-variation-settings-serialization-001-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/css/css-fonts/font-variation-settings-serialization-001-expected.txt
deleted file mode 100644
index 38530b3..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/css/css-fonts/font-variation-settings-serialization-001-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL font-feature-settings should be serialized to not include duplicates assert_in_array: value "\"bldA\" 1, \"bldA\" 2" not in array ["\"bldA\" 2", "'bldA' 2"]
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/css/css-typed-om/interfaces-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/css/css-typed-om/interfaces-expected.txt
deleted file mode 100644
index f64d713..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/css/css-typed-om/interfaces-expected.txt
+++ /dev/null
@@ -1,355 +0,0 @@
-This is a testharness.js-based test.
-Found 333 tests; 323 PASS, 10 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS CSS Typed OM IDL test
-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(DOMString, DOMString)
-PASS Unscopable handled correctly for parse(DOMString, DOMString) on CSSStyleValue
-PASS CSSStyleValue interface: operation parseAll(DOMString, DOMString)
-PASS Unscopable handled correctly for parseAll(DOMString, DOMString) on CSSStyleValue
-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 Testing Symbol.iterator property of iterable interface StylePropertyMapReadOnly
-PASS Testing pair iterable interface StylePropertyMapReadOnly
-PASS StylePropertyMapReadOnly interface: operation get(DOMString)
-PASS Unscopable handled correctly for get(DOMString) on StylePropertyMapReadOnly
-PASS StylePropertyMapReadOnly interface: operation getAll(DOMString)
-PASS Unscopable handled correctly for getAll(DOMString) on StylePropertyMapReadOnly
-PASS StylePropertyMapReadOnly interface: operation has(DOMString)
-PASS Unscopable handled correctly for has(DOMString) on StylePropertyMapReadOnly
-PASS StylePropertyMapReadOnly interface: attribute size
-PASS Unscopable handled correctly for size property on StylePropertyMapReadOnly
-PASS StylePropertyMapReadOnly interface: operation entries()
-PASS Unscopable handled correctly for entries() on StylePropertyMapReadOnly
-PASS StylePropertyMapReadOnly interface: operation keys()
-PASS Unscopable handled correctly for keys() on StylePropertyMapReadOnly
-PASS StylePropertyMapReadOnly interface: operation values()
-PASS Unscopable handled correctly for values() on StylePropertyMapReadOnly
-PASS StylePropertyMapReadOnly interface: operation forEach(function, any)
-PASS Unscopable handled correctly for forEach(function, any) on StylePropertyMapReadOnly
-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(DOMString, [object Object],[object Object])
-PASS Unscopable handled correctly for set(DOMString, [object Object],[object Object]) on StylePropertyMap
-PASS StylePropertyMap interface: operation append(DOMString, [object Object],[object Object])
-PASS Unscopable handled correctly for append(DOMString, [object Object],[object Object]) on StylePropertyMap
-PASS StylePropertyMap interface: operation delete(DOMString)
-PASS Unscopable handled correctly for delete(DOMString) on StylePropertyMap
-PASS StylePropertyMap interface: operation clear()
-PASS Unscopable handled correctly for clear() on StylePropertyMap
-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 Testing Symbol.iterator property of iterable interface CSSUnparsedValue
-PASS Testing value iterable interface CSSUnparsedValue
-PASS CSSUnparsedValue interface: attribute length
-PASS Unscopable handled correctly for length property on CSSUnparsedValue
-FAIL CSSUnparsedValue interface: operation entries() assert_throws: calling operation with this = {} didn't throw TypeError function "function() {
-            fn.apply(obj, args);
-        }" did not throw
-PASS Unscopable handled correctly for entries() on CSSUnparsedValue
-FAIL CSSUnparsedValue interface: operation keys() assert_throws: calling operation with this = {} didn't throw TypeError function "function() {
-            fn.apply(obj, args);
-        }" did not throw
-PASS Unscopable handled correctly for keys() on CSSUnparsedValue
-FAIL CSSUnparsedValue interface: operation values() assert_throws: calling operation with this = {} didn't throw TypeError function "function() {
-            fn.apply(obj, args);
-        }" did not throw
-PASS Unscopable handled correctly for values() on CSSUnparsedValue
-PASS CSSUnparsedValue interface: operation forEach(function, any)
-PASS Unscopable handled correctly for forEach(function, any) on CSSUnparsedValue
-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 Unscopable handled correctly for variable property on CSSVariableReferenceValue
-PASS CSSVariableReferenceValue interface: attribute fallback
-PASS Unscopable handled correctly for fallback property on CSSVariableReferenceValue
-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 Unscopable handled correctly for value property on CSSKeywordValue
-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 Unscopable handled correctly for add(CSSNumberish) on CSSNumericValue
-PASS CSSNumericValue interface: operation sub(CSSNumberish)
-PASS Unscopable handled correctly for sub(CSSNumberish) on CSSNumericValue
-PASS CSSNumericValue interface: operation mul(CSSNumberish)
-PASS Unscopable handled correctly for mul(CSSNumberish) on CSSNumericValue
-PASS CSSNumericValue interface: operation div(CSSNumberish)
-PASS Unscopable handled correctly for div(CSSNumberish) on CSSNumericValue
-PASS CSSNumericValue interface: operation min(CSSNumberish)
-PASS Unscopable handled correctly for min(CSSNumberish) on CSSNumericValue
-PASS CSSNumericValue interface: operation max(CSSNumberish)
-PASS Unscopable handled correctly for max(CSSNumberish) on CSSNumericValue
-PASS CSSNumericValue interface: operation equals(CSSNumberish)
-PASS Unscopable handled correctly for equals(CSSNumberish) on CSSNumericValue
-PASS CSSNumericValue interface: operation to(DOMString)
-PASS Unscopable handled correctly for to(DOMString) on CSSNumericValue
-PASS CSSNumericValue interface: operation toSum(DOMString)
-PASS Unscopable handled correctly for toSum(DOMString) on CSSNumericValue
-PASS CSSNumericValue interface: operation type()
-PASS Unscopable handled correctly for type() on CSSNumericValue
-PASS CSSNumericValue interface: operation parse(DOMString)
-PASS Unscopable handled correctly for parse(DOMString) on CSSNumericValue
-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 Unscopable handled correctly for value property on CSSUnitValue
-PASS CSSUnitValue interface: attribute unit
-PASS Unscopable handled correctly for unit property on CSSUnitValue
-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 Unscopable handled correctly for operator property on CSSMathValue
-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 Unscopable handled correctly for values property on CSSMathSum
-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 Unscopable handled correctly for values property on CSSMathProduct
-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 Unscopable handled correctly for value property on CSSMathNegate
-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 Unscopable handled correctly for value property on CSSMathInvert
-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 Unscopable handled correctly for values property on CSSMathMin
-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
-PASS Unscopable handled correctly for values property on CSSMathMax
-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 Testing Symbol.iterator property of iterable interface CSSNumericArray
-PASS Testing value iterable interface CSSNumericArray
-PASS CSSNumericArray interface: attribute length
-PASS Unscopable handled correctly for length property on CSSNumericArray
-FAIL CSSNumericArray interface: operation entries() assert_throws: calling operation with this = {} didn't throw TypeError function "function() {
-            fn.apply(obj, args);
-        }" did not throw
-PASS Unscopable handled correctly for entries() on CSSNumericArray
-FAIL CSSNumericArray interface: operation keys() assert_throws: calling operation with this = {} didn't throw TypeError function "function() {
-            fn.apply(obj, args);
-        }" did not throw
-PASS Unscopable handled correctly for keys() on CSSNumericArray
-FAIL CSSNumericArray interface: operation values() assert_throws: calling operation with this = {} didn't throw TypeError function "function() {
-            fn.apply(obj, args);
-        }" did not throw
-PASS Unscopable handled correctly for values() on CSSNumericArray
-PASS CSSNumericArray interface: operation forEach(function, any)
-PASS Unscopable handled correctly for forEach(function, any) on CSSNumericArray
-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 Testing Symbol.iterator property of iterable interface CSSTransformValue
-PASS Testing value iterable interface CSSTransformValue
-PASS CSSTransformValue interface: attribute length
-PASS Unscopable handled correctly for length property on CSSTransformValue
-PASS CSSTransformValue interface: attribute is2D
-PASS Unscopable handled correctly for is2D property on CSSTransformValue
-PASS CSSTransformValue interface: operation toMatrix()
-PASS Unscopable handled correctly for toMatrix() on CSSTransformValue
-FAIL CSSTransformValue interface: operation entries() assert_throws: calling operation with this = {} didn't throw TypeError function "function() {
-            fn.apply(obj, args);
-        }" did not throw
-PASS Unscopable handled correctly for entries() on CSSTransformValue
-FAIL CSSTransformValue interface: operation keys() assert_throws: calling operation with this = {} didn't throw TypeError function "function() {
-            fn.apply(obj, args);
-        }" did not throw
-PASS Unscopable handled correctly for keys() on CSSTransformValue
-FAIL CSSTransformValue interface: operation values() assert_throws: calling operation with this = {} didn't throw TypeError function "function() {
-            fn.apply(obj, args);
-        }" did not throw
-PASS Unscopable handled correctly for values() on CSSTransformValue
-PASS CSSTransformValue interface: operation forEach(function, any)
-PASS Unscopable handled correctly for forEach(function, any) on CSSTransformValue
-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 Unscopable handled correctly for is2D property on CSSTransformComponent
-PASS CSSTransformComponent interface: operation toMatrix()
-PASS Unscopable handled correctly for toMatrix() on CSSTransformComponent
-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 Unscopable handled correctly for x property on CSSTranslate
-PASS CSSTranslate interface: attribute y
-PASS Unscopable handled correctly for y property on CSSTranslate
-PASS CSSTranslate interface: attribute z
-PASS Unscopable handled correctly for z property on CSSTranslate
-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 Unscopable handled correctly for x property on CSSRotate
-PASS CSSRotate interface: attribute y
-PASS Unscopable handled correctly for y property on CSSRotate
-PASS CSSRotate interface: attribute z
-PASS Unscopable handled correctly for z property on CSSRotate
-PASS CSSRotate interface: attribute angle
-PASS Unscopable handled correctly for angle property on CSSRotate
-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 Unscopable handled correctly for x property on CSSScale
-PASS CSSScale interface: attribute y
-PASS Unscopable handled correctly for y property on CSSScale
-PASS CSSScale interface: attribute z
-PASS Unscopable handled correctly for z property on CSSScale
-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 Unscopable handled correctly for ax property on CSSSkew
-PASS CSSSkew interface: attribute ay
-PASS Unscopable handled correctly for ay property on CSSSkew
-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 Unscopable handled correctly for ax property on CSSSkewX
-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 Unscopable handled correctly for ay property on CSSSkewY
-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 Unscopable handled correctly for length property on CSSPerspective
-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 Unscopable handled correctly for matrix property on CSSMatrixComponent
-PASS CSSPositionValue interface: existence and properties of interface object
-PASS CSSPositionValue interface object length
-PASS CSSPositionValue interface object name
-PASS CSSPositionValue interface: existence and properties of interface prototype object
-PASS CSSPositionValue interface: existence and properties of interface prototype object's "constructor" property
-PASS CSSPositionValue interface: existence and properties of interface prototype object's @@unscopables property
-PASS CSSPositionValue interface: attribute x
-PASS Unscopable handled correctly for x property on CSSPositionValue
-PASS CSSPositionValue interface: attribute y
-PASS Unscopable handled correctly for y property on CSSPositionValue
-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
-PASS Element interface: operation computedStyleMap()
-PASS Unscopable handled correctly for computedStyleMap() on Element
-PASS CSSStyleRule interface: attribute styleMap
-PASS Unscopable handled correctly for styleMap property on CSSStyleRule
-FAIL ElementCSSInlineStyle interface: attribute attributeStyleMap assert_own_property: self does not have own property "ElementCSSInlineStyle" expected property "ElementCSSInlineStyle" missing
-PASS Unscopable handled correctly for attributeStyleMap property on ElementCSSInlineStyle
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/css/cssom-view/interfaces-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/css/cssom-view/interfaces-expected.txt
deleted file mode 100644
index 3514a3c4..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/css/cssom-view/interfaces-expected.txt
+++ /dev/null
@@ -1,389 +0,0 @@
-This is a testharness.js-based test.
-Found 385 tests; 310 PASS, 75 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS Test driver
-PASS HTMLElement interface: attribute offsetParent
-PASS Unscopable handled correctly for offsetParent property on HTMLElement
-PASS HTMLElement interface: attribute offsetTop
-PASS Unscopable handled correctly for offsetTop property on HTMLElement
-PASS HTMLElement interface: attribute offsetLeft
-PASS Unscopable handled correctly for offsetLeft property on HTMLElement
-PASS HTMLElement interface: attribute offsetWidth
-PASS Unscopable handled correctly for offsetWidth property on HTMLElement
-PASS HTMLElement interface: attribute offsetHeight
-PASS Unscopable handled correctly for offsetHeight property on HTMLElement
-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([object Object],[object Object])" with the proper type
-PASS Element interface: calling scrollIntoView([object Object],[object Object]) on document.createElement('div') with too few arguments must throw TypeError
-PASS Element interface: document.createElement('div') must inherit property "scroll(ScrollToOptions)" with the proper type
-PASS Element interface: calling scroll(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(ScrollToOptions)" with the proper type
-PASS Element interface: calling scrollTo(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(ScrollToOptions)" with the proper type
-PASS Element interface: calling scrollBy(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(BoxQuadOptions)" with the proper type assert_inherits: property "getBoxQuads" not found in prototype chain
-FAIL Element interface: calling getBoxQuads(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, ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertQuadFromNode" not found in prototype chain
-FAIL Element interface: calling convertQuadFromNode(DOMQuadInit, GeometryNode, 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, ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertRectFromNode" not found in prototype chain
-FAIL Element interface: calling convertRectFromNode(DOMRectReadOnly, GeometryNode, 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, ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertPointFromNode" not found in prototype chain
-FAIL Element interface: calling convertPointFromNode(DOMPointInit, GeometryNode, 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 Unscopable handled correctly for x property on HTMLImageElement
-PASS HTMLImageElement interface: attribute y
-PASS Unscopable handled correctly for y property on HTMLImageElement
-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([object Object],[object Object])" with the proper type
-PASS Element interface: calling scrollIntoView([object Object],[object Object]) on document.createElement('img') with too few arguments must throw TypeError
-PASS Element interface: document.createElement('img') must inherit property "scroll(ScrollToOptions)" with the proper type
-PASS Element interface: calling scroll(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(ScrollToOptions)" with the proper type
-PASS Element interface: calling scrollTo(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(ScrollToOptions)" with the proper type
-PASS Element interface: calling scrollBy(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(BoxQuadOptions)" with the proper type assert_inherits: property "getBoxQuads" not found in prototype chain
-FAIL Element interface: calling getBoxQuads(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, ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertQuadFromNode" not found in prototype chain
-FAIL Element interface: calling convertQuadFromNode(DOMQuadInit, GeometryNode, 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, ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertRectFromNode" not found in prototype chain
-FAIL Element interface: calling convertRectFromNode(DOMRectReadOnly, GeometryNode, 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, ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertPointFromNode" not found in prototype chain
-FAIL Element interface: calling convertPointFromNode(DOMPointInit, GeometryNode, 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 Unscopable handled correctly for matchMedia(CSSOMString) on Window
-PASS Window interface: attribute screen
-PASS Unscopable handled correctly for screen property on Window
-PASS Window interface: operation moveTo(long, long)
-PASS Unscopable handled correctly for moveTo(long, long) on Window
-PASS Window interface: operation moveBy(long, long)
-PASS Unscopable handled correctly for moveBy(long, long) on Window
-PASS Window interface: operation resizeTo(long, long)
-PASS Unscopable handled correctly for resizeTo(long, long) on Window
-PASS Window interface: operation resizeBy(long, long)
-PASS Unscopable handled correctly for resizeBy(long, long) on Window
-PASS Window interface: attribute innerWidth
-PASS Unscopable handled correctly for innerWidth property on Window
-PASS Window interface: attribute innerHeight
-PASS Unscopable handled correctly for innerHeight property on Window
-PASS Window interface: attribute scrollX
-PASS Unscopable handled correctly for scrollX property on Window
-PASS Window interface: attribute pageXOffset
-PASS Unscopable handled correctly for pageXOffset property on Window
-PASS Window interface: attribute scrollY
-PASS Unscopable handled correctly for scrollY property on Window
-PASS Window interface: attribute pageYOffset
-PASS Unscopable handled correctly for pageYOffset property on Window
-FAIL Window interface: operation scroll(ScrollToOptions) assert_equals: property has wrong .length expected 0 but got 2
-PASS Unscopable handled correctly for scroll(ScrollToOptions) on Window
-FAIL Window interface: operation scroll(unrestricted double, unrestricted double) assert_equals: property has wrong .length expected 0 but got 2
-PASS Unscopable handled correctly for scroll(unrestricted double, unrestricted double) on Window
-FAIL Window interface: operation scrollTo(ScrollToOptions) assert_equals: property has wrong .length expected 0 but got 2
-PASS Unscopable handled correctly for scrollTo(ScrollToOptions) on Window
-FAIL Window interface: operation scrollTo(unrestricted double, unrestricted double) assert_equals: property has wrong .length expected 0 but got 2
-PASS Unscopable handled correctly for scrollTo(unrestricted double, unrestricted double) on Window
-FAIL Window interface: operation scrollBy(ScrollToOptions) assert_equals: property has wrong .length expected 0 but got 2
-PASS Unscopable handled correctly for scrollBy(ScrollToOptions) on Window
-FAIL Window interface: operation scrollBy(unrestricted double, unrestricted double) assert_equals: property has wrong .length expected 0 but got 2
-PASS Unscopable handled correctly for scrollBy(unrestricted double, unrestricted double) on Window
-PASS Window interface: attribute screenX
-PASS Unscopable handled correctly for screenX property on Window
-PASS Window interface: attribute screenY
-PASS Unscopable handled correctly for screenY property on Window
-PASS Window interface: attribute outerWidth
-PASS Unscopable handled correctly for outerWidth property on Window
-PASS Window interface: attribute outerHeight
-PASS Unscopable handled correctly for outerHeight property on Window
-PASS Window interface: attribute devicePixelRatio
-PASS Unscopable handled correctly for devicePixelRatio property on Window
-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(ScrollToOptions)" with the proper type
-PASS Window interface: calling scroll(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(ScrollToOptions)" with the proper type
-PASS Window interface: calling scrollTo(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(ScrollToOptions)" with the proper type
-PASS Window interface: calling scrollBy(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 "screenY" 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 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 WorkerNavigator interface: existence and properties of interface object
-PASS WorkerLocation interface: existence and properties of interface object
-PASS Document interface: operation elementFromPoint(double, double)
-PASS Unscopable handled correctly for elementFromPoint(double, double) on Document
-PASS Document interface: operation elementsFromPoint(double, double)
-PASS Unscopable handled correctly for elementsFromPoint(double, double) on Document
-FAIL Document interface: operation caretPositionFromPoint(double, double) assert_own_property: interface prototype object missing non-static operation expected property "caretPositionFromPoint" missing
-PASS Unscopable handled correctly for caretPositionFromPoint(double, double) on Document
-PASS Document interface: attribute scrollingElement
-PASS Unscopable handled correctly for scrollingElement property on Document
-FAIL Document interface: operation getBoxQuads(BoxQuadOptions) assert_own_property: interface prototype object missing non-static operation expected property "getBoxQuads" missing
-PASS Unscopable handled correctly for getBoxQuads(BoxQuadOptions) on Document
-FAIL Document interface: operation convertQuadFromNode(DOMQuadInit, GeometryNode, ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertQuadFromNode" missing
-PASS Unscopable handled correctly for convertQuadFromNode(DOMQuadInit, GeometryNode, ConvertCoordinateOptions) on Document
-FAIL Document interface: operation convertRectFromNode(DOMRectReadOnly, GeometryNode, ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertRectFromNode" missing
-PASS Unscopable handled correctly for convertRectFromNode(DOMRectReadOnly, GeometryNode, ConvertCoordinateOptions) on Document
-FAIL Document interface: operation convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertPointFromNode" missing
-PASS Unscopable handled correctly for convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions) on Document
-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(BoxQuadOptions)" with the proper type assert_inherits: property "getBoxQuads" not found in prototype chain
-FAIL Document interface: calling getBoxQuads(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, ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertQuadFromNode" not found in prototype chain
-FAIL Document interface: calling convertQuadFromNode(DOMQuadInit, GeometryNode, 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, ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertRectFromNode" not found in prototype chain
-FAIL Document interface: calling convertRectFromNode(DOMRectReadOnly, GeometryNode, 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, ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertPointFromNode" not found in prototype chain
-FAIL Document interface: calling convertPointFromNode(DOMPointInit, GeometryNode, 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 Unscopable handled correctly for getClientRects() on Element
-PASS Element interface: operation getBoundingClientRect()
-PASS Unscopable handled correctly for getBoundingClientRect() on Element
-PASS Element interface: operation scrollIntoView([object Object],[object Object])
-PASS Unscopable handled correctly for scrollIntoView([object Object],[object Object]) on Element
-PASS Element interface: operation scroll(ScrollToOptions)
-PASS Unscopable handled correctly for scroll(ScrollToOptions) on Element
-PASS Element interface: operation scroll(unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for scroll(unrestricted double, unrestricted double) on Element
-PASS Element interface: operation scrollTo(ScrollToOptions)
-PASS Unscopable handled correctly for scrollTo(ScrollToOptions) on Element
-PASS Element interface: operation scrollTo(unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for scrollTo(unrestricted double, unrestricted double) on Element
-PASS Element interface: operation scrollBy(ScrollToOptions)
-PASS Unscopable handled correctly for scrollBy(ScrollToOptions) on Element
-PASS Element interface: operation scrollBy(unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for scrollBy(unrestricted double, unrestricted double) on Element
-PASS Element interface: attribute scrollTop
-PASS Unscopable handled correctly for scrollTop property on Element
-PASS Element interface: attribute scrollLeft
-PASS Unscopable handled correctly for scrollLeft property on Element
-PASS Element interface: attribute scrollWidth
-PASS Unscopable handled correctly for scrollWidth property on Element
-PASS Element interface: attribute scrollHeight
-PASS Unscopable handled correctly for scrollHeight property on Element
-PASS Element interface: attribute clientTop
-PASS Unscopable handled correctly for clientTop property on Element
-PASS Element interface: attribute clientLeft
-PASS Unscopable handled correctly for clientLeft property on Element
-PASS Element interface: attribute clientWidth
-PASS Unscopable handled correctly for clientWidth property on Element
-PASS Element interface: attribute clientHeight
-PASS Unscopable handled correctly for clientHeight property on Element
-FAIL Element interface: operation getBoxQuads(BoxQuadOptions) assert_own_property: interface prototype object missing non-static operation expected property "getBoxQuads" missing
-PASS Unscopable handled correctly for getBoxQuads(BoxQuadOptions) on Element
-FAIL Element interface: operation convertQuadFromNode(DOMQuadInit, GeometryNode, ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertQuadFromNode" missing
-PASS Unscopable handled correctly for convertQuadFromNode(DOMQuadInit, GeometryNode, ConvertCoordinateOptions) on Element
-FAIL Element interface: operation convertRectFromNode(DOMRectReadOnly, GeometryNode, ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertRectFromNode" missing
-PASS Unscopable handled correctly for convertRectFromNode(DOMRectReadOnly, GeometryNode, ConvertCoordinateOptions) on Element
-FAIL Element interface: operation convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertPointFromNode" missing
-PASS Unscopable handled correctly for convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions) on Element
-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([object Object],[object Object])" with the proper type
-PASS Element interface: calling scrollIntoView([object Object],[object Object]) on document.createElementNS('x', 'y') with too few arguments must throw TypeError
-PASS Element interface: document.createElementNS('x', 'y') must inherit property "scroll(ScrollToOptions)" with the proper type
-PASS Element interface: calling scroll(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(ScrollToOptions)" with the proper type
-PASS Element interface: calling scrollTo(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(ScrollToOptions)" with the proper type
-PASS Element interface: calling scrollBy(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(BoxQuadOptions)" with the proper type assert_inherits: property "getBoxQuads" not found in prototype chain
-FAIL Element interface: calling getBoxQuads(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, ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertQuadFromNode" not found in prototype chain
-FAIL Element interface: calling convertQuadFromNode(DOMQuadInit, GeometryNode, 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, ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertRectFromNode" not found in prototype chain
-FAIL Element interface: calling convertRectFromNode(DOMRectReadOnly, GeometryNode, 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, ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertPointFromNode" not found in prototype chain
-FAIL Element interface: calling convertPointFromNode(DOMPointInit, GeometryNode, 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(BoxQuadOptions) assert_own_property: interface prototype object missing non-static operation expected property "getBoxQuads" missing
-PASS Unscopable handled correctly for getBoxQuads(BoxQuadOptions) on Text
-FAIL Text interface: operation convertQuadFromNode(DOMQuadInit, GeometryNode, ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertQuadFromNode" missing
-PASS Unscopable handled correctly for convertQuadFromNode(DOMQuadInit, GeometryNode, ConvertCoordinateOptions) on Text
-FAIL Text interface: operation convertRectFromNode(DOMRectReadOnly, GeometryNode, ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertRectFromNode" missing
-PASS Unscopable handled correctly for convertRectFromNode(DOMRectReadOnly, GeometryNode, ConvertCoordinateOptions) on Text
-FAIL Text interface: operation convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertPointFromNode" missing
-PASS Unscopable handled correctly for convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions) on Text
-FAIL Text interface: document.createTextNode('x') must inherit property "getBoxQuads(BoxQuadOptions)" with the proper type assert_inherits: property "getBoxQuads" not found in prototype chain
-FAIL Text interface: calling getBoxQuads(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, ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertQuadFromNode" not found in prototype chain
-FAIL Text interface: calling convertQuadFromNode(DOMQuadInit, GeometryNode, 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, ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertRectFromNode" not found in prototype chain
-FAIL Text interface: calling convertRectFromNode(DOMRectReadOnly, GeometryNode, 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, ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertPointFromNode" not found in prototype chain
-FAIL Text interface: calling convertPointFromNode(DOMPointInit, GeometryNode, 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 Unscopable handled correctly for getClientRects() on Range
-PASS Range interface: operation getBoundingClientRect()
-PASS Unscopable handled correctly for getBoundingClientRect() on Range
-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
-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 Unscopable handled correctly for media property on MediaQueryList
-PASS MediaQueryList interface: attribute matches
-PASS Unscopable handled correctly for matches property on MediaQueryList
-PASS MediaQueryList interface: operation addListener(EventListener)
-PASS Unscopable handled correctly for addListener(EventListener) on MediaQueryList
-PASS MediaQueryList interface: operation removeListener(EventListener)
-PASS Unscopable handled correctly for removeListener(EventListener) on MediaQueryList
-PASS MediaQueryList interface: attribute onchange
-PASS Unscopable handled correctly for onchange property on MediaQueryList
-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 Unscopable handled correctly for media property on MediaQueryListEvent
-PASS MediaQueryListEvent interface: attribute matches
-PASS Unscopable handled correctly for matches property on MediaQueryListEvent
-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 Unscopable handled correctly for availWidth property on Screen
-PASS Screen interface: attribute availHeight
-PASS Unscopable handled correctly for availHeight property on Screen
-PASS Screen interface: attribute width
-PASS Unscopable handled correctly for width property on Screen
-PASS Screen interface: attribute height
-PASS Unscopable handled correctly for height property on Screen
-PASS Screen interface: attribute colorDepth
-PASS Unscopable handled correctly for colorDepth property on Screen
-PASS Screen interface: attribute pixelDepth
-PASS Unscopable handled correctly for pixelDepth property on Screen
-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
-PASS Unscopable handled correctly for offsetNode property on CaretPosition
-FAIL CaretPosition interface: attribute offset assert_own_property: self does not have own property "CaretPosition" expected property "CaretPosition" missing
-PASS Unscopable handled correctly for offset property on CaretPosition
-FAIL CaretPosition interface: operation getClientRect() assert_own_property: self does not have own property "CaretPosition" expected property "CaretPosition" missing
-PASS Unscopable handled correctly for getClientRect() on CaretPosition
-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"
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/css/cssom/interfaces-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/css/cssom/interfaces-expected.txt
deleted file mode 100644
index 6c6c499..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/css/cssom/interfaces-expected.txt
+++ /dev/null
@@ -1,474 +0,0 @@
-This is a testharness.js-based test.
-Found 470 tests; 385 PASS, 85 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS Test driver
-PASS HTMLElement interface: attribute style
-PASS Unscopable handled correctly for style property on HTMLElement
-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 Unscopable handled correctly for sheet property on HTMLLinkElement
-PASS HTMLStyleElement interface: attribute sheet
-PASS Unscopable handled correctly for sheet property on HTMLStyleElement
-PASS Window interface: operation getComputedStyle(Element, CSSOMString)
-PASS Unscopable handled correctly for getComputedStyle(Element, CSSOMString) on Window
-PASS Window interface: window must inherit property "getComputedStyle(Element, CSSOMString)" with the proper type
-PASS Window interface: calling getComputedStyle(Element, CSSOMString) on window with too few arguments must throw TypeError
-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 WorkerNavigator interface: existence and properties of interface object
-PASS WorkerLocation interface: existence and properties of interface object
-PASS Document interface: attribute styleSheets
-PASS Unscopable handled correctly for styleSheets property on Document
-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 ProcessingInstruction interface: attribute sheet
-PASS Unscopable handled correctly for sheet property on ProcessingInstruction
-PASS ProcessingInstruction interface: xmlss_pi must inherit property "sheet" with the proper type
-PASS SVGElement interface: attribute style
-PASS Unscopable handled correctly for style property on SVGElement
-PASS SVGElement interface: svg_element must inherit property "style" with the proper type
-PASS MediaList interface: existence and properties of interface object
-PASS MediaList interface object length
-PASS MediaList interface object name
-FAIL MediaList interface: existence and properties of interface prototype object assert_equals: prototype of MediaList.prototype is not Array.prototype expected [] but got object "[object 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 Unscopable handled correctly for mediaText property on MediaList
-PASS MediaList interface: stringifier
-PASS MediaList interface: attribute length
-PASS Unscopable handled correctly for length property on MediaList
-PASS MediaList interface: operation item(unsigned long)
-PASS Unscopable handled correctly for item(unsigned long) on MediaList
-PASS MediaList interface: operation appendMedium(CSSOMString)
-PASS Unscopable handled correctly for appendMedium(CSSOMString) on MediaList
-PASS MediaList interface: operation deleteMedium(CSSOMString)
-PASS Unscopable handled correctly for deleteMedium(CSSOMString) on MediaList
-PASS MediaList must be primary interface of style_element.sheet.media
-PASS Stringification of style_element.sheet.media
-PASS MediaList interface: style_element.sheet.media must inherit property "mediaText" with the proper type
-PASS MediaList interface: style_element.sheet.media must inherit property "length" with the proper type
-PASS MediaList interface: style_element.sheet.media must inherit property "item(unsigned long)" with the proper type
-PASS MediaList interface: calling item(unsigned long) on style_element.sheet.media with too few arguments must throw TypeError
-PASS MediaList interface: style_element.sheet.media must inherit property "appendMedium(CSSOMString)" with the proper type
-PASS MediaList interface: calling appendMedium(CSSOMString) on style_element.sheet.media with too few arguments must throw TypeError
-PASS MediaList interface: style_element.sheet.media must inherit property "deleteMedium(CSSOMString)" with the proper type
-PASS MediaList interface: calling deleteMedium(CSSOMString) on style_element.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 Unscopable handled correctly for type property on StyleSheet
-PASS StyleSheet interface: attribute href
-PASS Unscopable handled correctly for href property on StyleSheet
-PASS StyleSheet interface: attribute ownerNode
-PASS Unscopable handled correctly for ownerNode property on StyleSheet
-PASS StyleSheet interface: attribute parentStyleSheet
-PASS Unscopable handled correctly for parentStyleSheet property on StyleSheet
-PASS StyleSheet interface: attribute title
-PASS Unscopable handled correctly for title property on StyleSheet
-PASS StyleSheet interface: attribute media
-PASS Unscopable handled correctly for media property on StyleSheet
-PASS StyleSheet interface: attribute disabled
-PASS Unscopable handled correctly for disabled property on StyleSheet
-PASS CSSStyleSheet interface: existence and properties of interface object
-FAIL CSSStyleSheet interface object length assert_equals: wrong value for CSSStyleSheet.length expected 0 but got 1
-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 Unscopable handled correctly for ownerRule property on CSSStyleSheet
-PASS CSSStyleSheet interface: attribute cssRules
-PASS Unscopable handled correctly for cssRules property on CSSStyleSheet
-PASS CSSStyleSheet interface: operation insertRule(CSSOMString, unsigned long)
-PASS Unscopable handled correctly for insertRule(CSSOMString, unsigned long) on CSSStyleSheet
-PASS CSSStyleSheet interface: operation deleteRule(unsigned long)
-PASS Unscopable handled correctly for deleteRule(unsigned long) on CSSStyleSheet
-PASS CSSStyleSheet must be primary interface of style_element.sheet
-PASS Stringification of style_element.sheet
-PASS CSSStyleSheet interface: style_element.sheet must inherit property "ownerRule" with the proper type
-PASS CSSStyleSheet interface: style_element.sheet must inherit property "cssRules" with the proper type
-PASS CSSStyleSheet interface: style_element.sheet must inherit property "insertRule(CSSOMString, unsigned long)" with the proper type
-PASS CSSStyleSheet interface: calling insertRule(CSSOMString, unsigned long) on style_element.sheet with too few arguments must throw TypeError
-PASS CSSStyleSheet interface: style_element.sheet must inherit property "deleteRule(unsigned long)" with the proper type
-PASS CSSStyleSheet interface: calling deleteRule(unsigned long) on style_element.sheet with too few arguments must throw TypeError
-PASS StyleSheet interface: style_element.sheet must inherit property "type" with the proper type
-PASS StyleSheet interface: style_element.sheet must inherit property "href" with the proper type
-PASS StyleSheet interface: style_element.sheet must inherit property "ownerNode" with the proper type
-PASS StyleSheet interface: style_element.sheet must inherit property "parentStyleSheet" with the proper type
-PASS StyleSheet interface: style_element.sheet must inherit property "title" with the proper type
-PASS StyleSheet interface: style_element.sheet must inherit property "media" with the proper type
-PASS StyleSheet interface: style_element.sheet must inherit property "disabled" with the proper type
-PASS StyleSheetList interface: existence and properties of interface object
-FAIL StyleSheetList interface object length assert_equals: wrong value for StyleSheetList.length expected 0 but got 1
-PASS StyleSheetList interface object name
-FAIL StyleSheetList interface: existence and properties of interface prototype object assert_equals: prototype of StyleSheetList.prototype is not Array.prototype expected [] but got object "[object 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 Unscopable handled correctly for item(unsigned long) on StyleSheetList
-PASS StyleSheetList interface: attribute length
-PASS Unscopable handled correctly for length property on StyleSheetList
-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
-FAIL CSSRuleList interface: existence and properties of interface prototype object assert_equals: prototype of CSSRuleList.prototype is not Array.prototype expected [] but got object "[object 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 Unscopable handled correctly for item(unsigned long) on CSSRuleList
-PASS CSSRuleList interface: attribute length
-PASS Unscopable handled correctly for length property on CSSRuleList
-PASS CSSRuleList must be primary interface of style_element.sheet.cssRules
-PASS Stringification of style_element.sheet.cssRules
-PASS CSSRuleList interface: style_element.sheet.cssRules must inherit property "item(unsigned long)" with the proper type
-PASS CSSRuleList interface: calling item(unsigned long) on style_element.sheet.cssRules with too few arguments must throw TypeError
-PASS CSSRuleList interface: style_element.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: 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 CSSRule interface: attribute type
-PASS Unscopable handled correctly for type property on CSSRule
-PASS CSSRule interface: attribute cssText
-PASS Unscopable handled correctly for cssText property on CSSRule
-PASS CSSRule interface: attribute parentRule
-PASS Unscopable handled correctly for parentRule property on CSSRule
-PASS CSSRule interface: attribute parentStyleSheet
-PASS Unscopable handled correctly for parentStyleSheet property on CSSRule
-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 Unscopable handled correctly for selectorText property on CSSStyleRule
-PASS CSSStyleRule interface: attribute style
-PASS Unscopable handled correctly for style property on CSSStyleRule
-PASS CSSStyleRule must be primary interface of style_element.sheet.cssRules[4]
-PASS Stringification of style_element.sheet.cssRules[4]
-PASS CSSStyleRule interface: style_element.sheet.cssRules[4] must inherit property "selectorText" with the proper type
-PASS CSSStyleRule interface: style_element.sheet.cssRules[4] must inherit property "style" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[4] must inherit property "STYLE_RULE" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[4] must inherit property "CHARSET_RULE" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[4] must inherit property "IMPORT_RULE" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[4] must inherit property "MEDIA_RULE" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[4] must inherit property "FONT_FACE_RULE" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[4] must inherit property "PAGE_RULE" with the proper type
-FAIL CSSRule interface: style_element.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: style_element.sheet.cssRules[4] must inherit property "NAMESPACE_RULE" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[4] must inherit property "type" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[4] must inherit property "cssText" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[4] must inherit property "parentRule" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[4] must inherit property "parentStyleSheet" 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 Unscopable handled correctly for href property on CSSImportRule
-PASS CSSImportRule interface: attribute media
-PASS Unscopable handled correctly for media property on CSSImportRule
-PASS CSSImportRule interface: attribute styleSheet
-PASS Unscopable handled correctly for styleSheet property on CSSImportRule
-PASS CSSImportRule must be primary interface of style_element.sheet.cssRules[0]
-PASS Stringification of style_element.sheet.cssRules[0]
-PASS CSSImportRule interface: style_element.sheet.cssRules[0] must inherit property "href" with the proper type
-PASS CSSImportRule interface: style_element.sheet.cssRules[0] must inherit property "media" with the proper type
-PASS CSSImportRule interface: style_element.sheet.cssRules[0] must inherit property "styleSheet" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[0] must inherit property "STYLE_RULE" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[0] must inherit property "CHARSET_RULE" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[0] must inherit property "IMPORT_RULE" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[0] must inherit property "MEDIA_RULE" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[0] must inherit property "FONT_FACE_RULE" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[0] must inherit property "PAGE_RULE" with the proper type
-FAIL CSSRule interface: style_element.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: style_element.sheet.cssRules[0] must inherit property "NAMESPACE_RULE" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[0] must inherit property "type" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[0] must inherit property "cssText" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[0] must inherit property "parentRule" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[0] must inherit property "parentStyleSheet" 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
-PASS Unscopable handled correctly for cssRules property on CSSGroupingRule
-FAIL CSSGroupingRule interface: operation insertRule(CSSOMString, unsigned long) assert_equals: property has wrong .length expected 1 but got 2
-PASS Unscopable handled correctly for insertRule(CSSOMString, unsigned long) on CSSGroupingRule
-PASS CSSGroupingRule interface: operation deleteRule(unsigned long)
-PASS Unscopable handled correctly for deleteRule(unsigned long) on CSSGroupingRule
-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 Unscopable handled correctly for selectorText property on CSSPageRule
-PASS CSSPageRule interface: attribute style
-PASS Unscopable handled correctly for style property on CSSPageRule
-PASS CSSPageRule must be primary interface of style_element.sheet.cssRules[2]
-PASS Stringification of style_element.sheet.cssRules[2]
-PASS CSSPageRule interface: style_element.sheet.cssRules[2] must inherit property "selectorText" with the proper type
-PASS CSSPageRule interface: style_element.sheet.cssRules[2] must inherit property "style" with the proper type
-FAIL CSSGroupingRule interface: style_element.sheet.cssRules[2] must inherit property "cssRules" with the proper type assert_inherits: property "cssRules" not found in prototype chain
-FAIL CSSGroupingRule interface: style_element.sheet.cssRules[2] must inherit property "insertRule(CSSOMString, unsigned long)" with the proper type assert_inherits: property "insertRule" not found in prototype chain
-FAIL CSSGroupingRule interface: calling insertRule(CSSOMString, unsigned long) on style_element.sheet.cssRules[2] with too few arguments must throw TypeError assert_inherits: property "insertRule" not found in prototype chain
-FAIL CSSGroupingRule interface: style_element.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 style_element.sheet.cssRules[2] with too few arguments must throw TypeError assert_inherits: property "deleteRule" not found in prototype chain
-PASS CSSRule interface: style_element.sheet.cssRules[2] must inherit property "STYLE_RULE" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[2] must inherit property "CHARSET_RULE" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[2] must inherit property "IMPORT_RULE" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[2] must inherit property "MEDIA_RULE" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[2] must inherit property "FONT_FACE_RULE" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[2] must inherit property "PAGE_RULE" with the proper type
-FAIL CSSRule interface: style_element.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: style_element.sheet.cssRules[2] must inherit property "NAMESPACE_RULE" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[2] must inherit property "type" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[2] must inherit property "cssText" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[2] must inherit property "parentRule" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[2] must inherit property "parentStyleSheet" 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
-PASS Unscopable handled correctly for name property on CSSMarginRule
-FAIL CSSMarginRule interface: attribute style assert_own_property: self does not have own property "CSSMarginRule" expected property "CSSMarginRule" missing
-PASS Unscopable handled correctly for style property on CSSMarginRule
-FAIL CSSMarginRule must be primary interface of style_element.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 style_element.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: style_element.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: style_element.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: style_element.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: style_element.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: style_element.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: style_element.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: style_element.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: style_element.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: style_element.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: style_element.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"
-FAIL CSSRule interface: style_element.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: style_element.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: style_element.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: style_element.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"
-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 Unscopable handled correctly for namespaceURI property on CSSNamespaceRule
-PASS CSSNamespaceRule interface: attribute prefix
-PASS Unscopable handled correctly for prefix property on CSSNamespaceRule
-PASS CSSNamespaceRule must be primary interface of style_element.sheet.cssRules[1]
-PASS Stringification of style_element.sheet.cssRules[1]
-PASS CSSNamespaceRule interface: style_element.sheet.cssRules[1] must inherit property "namespaceURI" with the proper type
-PASS CSSNamespaceRule interface: style_element.sheet.cssRules[1] must inherit property "prefix" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[1] must inherit property "STYLE_RULE" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[1] must inherit property "CHARSET_RULE" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[1] must inherit property "IMPORT_RULE" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[1] must inherit property "MEDIA_RULE" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[1] must inherit property "FONT_FACE_RULE" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[1] must inherit property "PAGE_RULE" with the proper type
-FAIL CSSRule interface: style_element.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: style_element.sheet.cssRules[1] must inherit property "NAMESPACE_RULE" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[1] must inherit property "type" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[1] must inherit property "cssText" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[1] must inherit property "parentRule" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[1] must inherit property "parentStyleSheet" 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 Unscopable handled correctly for cssText property on CSSStyleDeclaration
-PASS CSSStyleDeclaration interface: attribute length
-PASS Unscopable handled correctly for length property on CSSStyleDeclaration
-PASS CSSStyleDeclaration interface: operation item(unsigned long)
-PASS Unscopable handled correctly for item(unsigned long) on CSSStyleDeclaration
-PASS CSSStyleDeclaration interface: operation getPropertyValue(CSSOMString)
-PASS Unscopable handled correctly for getPropertyValue(CSSOMString) on CSSStyleDeclaration
-PASS CSSStyleDeclaration interface: operation getPropertyPriority(CSSOMString)
-PASS Unscopable handled correctly for getPropertyPriority(CSSOMString) on CSSStyleDeclaration
-PASS CSSStyleDeclaration interface: operation setProperty(CSSOMString, CSSOMString, CSSOMString)
-PASS Unscopable handled correctly for setProperty(CSSOMString, CSSOMString, CSSOMString) on CSSStyleDeclaration
-FAIL CSSStyleDeclaration interface: operation setPropertyValue(CSSOMString, CSSOMString) assert_own_property: interface prototype object missing non-static operation expected property "setPropertyValue" missing
-PASS Unscopable handled correctly for setPropertyValue(CSSOMString, CSSOMString) on CSSStyleDeclaration
-FAIL CSSStyleDeclaration interface: operation setPropertyPriority(CSSOMString, CSSOMString) assert_own_property: interface prototype object missing non-static operation expected property "setPropertyPriority" missing
-PASS Unscopable handled correctly for setPropertyPriority(CSSOMString, CSSOMString) on CSSStyleDeclaration
-PASS CSSStyleDeclaration interface: operation removeProperty(CSSOMString)
-PASS Unscopable handled correctly for removeProperty(CSSOMString) on CSSStyleDeclaration
-PASS CSSStyleDeclaration interface: attribute parentRule
-PASS Unscopable handled correctly for parentRule property on CSSStyleDeclaration
-PASS CSSStyleDeclaration interface: attribute cssFloat
-PASS Unscopable handled correctly for cssFloat property on CSSStyleDeclaration
-PASS CSSStyleDeclaration must be primary interface of style_element.sheet.cssRules[4].style
-PASS Stringification of style_element.sheet.cssRules[4].style
-PASS CSSStyleDeclaration interface: style_element.sheet.cssRules[4].style must inherit property "cssText" with the proper type
-PASS CSSStyleDeclaration interface: style_element.sheet.cssRules[4].style must inherit property "length" with the proper type
-PASS CSSStyleDeclaration interface: style_element.sheet.cssRules[4].style must inherit property "item(unsigned long)" with the proper type
-PASS CSSStyleDeclaration interface: calling item(unsigned long) on style_element.sheet.cssRules[4].style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: style_element.sheet.cssRules[4].style must inherit property "getPropertyValue(CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling getPropertyValue(CSSOMString) on style_element.sheet.cssRules[4].style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: style_element.sheet.cssRules[4].style must inherit property "getPropertyPriority(CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling getPropertyPriority(CSSOMString) on style_element.sheet.cssRules[4].style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: style_element.sheet.cssRules[4].style must inherit property "setProperty(CSSOMString, CSSOMString, CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling setProperty(CSSOMString, CSSOMString, CSSOMString) on style_element.sheet.cssRules[4].style with too few arguments must throw TypeError
-FAIL CSSStyleDeclaration interface: style_element.sheet.cssRules[4].style must inherit property "setPropertyValue(CSSOMString, CSSOMString)" with the proper type assert_inherits: property "setPropertyValue" not found in prototype chain
-FAIL CSSStyleDeclaration interface: calling setPropertyValue(CSSOMString, CSSOMString) on style_element.sheet.cssRules[4].style with too few arguments must throw TypeError assert_inherits: property "setPropertyValue" not found in prototype chain
-FAIL CSSStyleDeclaration interface: style_element.sheet.cssRules[4].style must inherit property "setPropertyPriority(CSSOMString, CSSOMString)" with the proper type assert_inherits: property "setPropertyPriority" not found in prototype chain
-FAIL CSSStyleDeclaration interface: calling setPropertyPriority(CSSOMString, CSSOMString) on style_element.sheet.cssRules[4].style with too few arguments must throw TypeError assert_inherits: property "setPropertyPriority" not found in prototype chain
-PASS CSSStyleDeclaration interface: style_element.sheet.cssRules[4].style must inherit property "removeProperty(CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling removeProperty(CSSOMString) on style_element.sheet.cssRules[4].style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: style_element.sheet.cssRules[4].style must inherit property "parentRule" with the proper type
-PASS CSSStyleDeclaration interface: style_element.sheet.cssRules[4].style must inherit property "cssFloat" with the proper type
-PASS CSSStyleDeclaration must be primary interface of style_element.sheet.cssRules[2].style
-PASS Stringification of style_element.sheet.cssRules[2].style
-PASS CSSStyleDeclaration interface: style_element.sheet.cssRules[2].style must inherit property "cssText" with the proper type
-PASS CSSStyleDeclaration interface: style_element.sheet.cssRules[2].style must inherit property "length" with the proper type
-PASS CSSStyleDeclaration interface: style_element.sheet.cssRules[2].style must inherit property "item(unsigned long)" with the proper type
-PASS CSSStyleDeclaration interface: calling item(unsigned long) on style_element.sheet.cssRules[2].style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: style_element.sheet.cssRules[2].style must inherit property "getPropertyValue(CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling getPropertyValue(CSSOMString) on style_element.sheet.cssRules[2].style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: style_element.sheet.cssRules[2].style must inherit property "getPropertyPriority(CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling getPropertyPriority(CSSOMString) on style_element.sheet.cssRules[2].style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: style_element.sheet.cssRules[2].style must inherit property "setProperty(CSSOMString, CSSOMString, CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling setProperty(CSSOMString, CSSOMString, CSSOMString) on style_element.sheet.cssRules[2].style with too few arguments must throw TypeError
-FAIL CSSStyleDeclaration interface: style_element.sheet.cssRules[2].style must inherit property "setPropertyValue(CSSOMString, CSSOMString)" with the proper type assert_inherits: property "setPropertyValue" not found in prototype chain
-FAIL CSSStyleDeclaration interface: calling setPropertyValue(CSSOMString, CSSOMString) on style_element.sheet.cssRules[2].style with too few arguments must throw TypeError assert_inherits: property "setPropertyValue" not found in prototype chain
-FAIL CSSStyleDeclaration interface: style_element.sheet.cssRules[2].style must inherit property "setPropertyPriority(CSSOMString, CSSOMString)" with the proper type assert_inherits: property "setPropertyPriority" not found in prototype chain
-FAIL CSSStyleDeclaration interface: calling setPropertyPriority(CSSOMString, CSSOMString) on style_element.sheet.cssRules[2].style with too few arguments must throw TypeError assert_inherits: property "setPropertyPriority" not found in prototype chain
-PASS CSSStyleDeclaration interface: style_element.sheet.cssRules[2].style must inherit property "removeProperty(CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling removeProperty(CSSOMString) on style_element.sheet.cssRules[2].style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: style_element.sheet.cssRules[2].style must inherit property "parentRule" with the proper type
-PASS CSSStyleDeclaration interface: style_element.sheet.cssRules[2].style must inherit property "cssFloat" with the proper type
-FAIL CSSStyleDeclaration must be primary interface of style_element.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 style_element.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: style_element.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: style_element.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: style_element.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 style_element.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: style_element.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 style_element.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: style_element.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 style_element.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: style_element.sheet.cssRules[2].cssRules[0].style must inherit property "setProperty(CSSOMString, CSSOMString, 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, CSSOMString) on style_element.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: style_element.sheet.cssRules[2].cssRules[0].style must inherit property "setPropertyValue(CSSOMString, 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 setPropertyValue(CSSOMString, CSSOMString) on style_element.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: style_element.sheet.cssRules[2].cssRules[0].style must inherit property "setPropertyPriority(CSSOMString, 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 setPropertyPriority(CSSOMString, CSSOMString) on style_element.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: style_element.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 style_element.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: style_element.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: style_element.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, CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling setProperty(CSSOMString, CSSOMString, CSSOMString) on style_element.style with too few arguments must throw TypeError
-FAIL CSSStyleDeclaration interface: style_element.style must inherit property "setPropertyValue(CSSOMString, CSSOMString)" with the proper type assert_inherits: property "setPropertyValue" not found in prototype chain
-FAIL CSSStyleDeclaration interface: calling setPropertyValue(CSSOMString, CSSOMString) on style_element.style with too few arguments must throw TypeError assert_inherits: property "setPropertyValue" not found in prototype chain
-FAIL CSSStyleDeclaration interface: style_element.style must inherit property "setPropertyPriority(CSSOMString, CSSOMString)" with the proper type assert_inherits: property "setPropertyPriority" not found in prototype chain
-FAIL CSSStyleDeclaration interface: calling setPropertyPriority(CSSOMString, CSSOMString) on style_element.style with too few arguments must throw TypeError assert_inherits: property "setPropertyPriority" not found in prototype chain
-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, CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling setProperty(CSSOMString, CSSOMString, CSSOMString) on svg_element.style with too few arguments must throw TypeError
-FAIL CSSStyleDeclaration interface: svg_element.style must inherit property "setPropertyValue(CSSOMString, CSSOMString)" with the proper type assert_inherits: property "setPropertyValue" not found in prototype chain
-FAIL CSSStyleDeclaration interface: calling setPropertyValue(CSSOMString, CSSOMString) on svg_element.style with too few arguments must throw TypeError assert_inherits: property "setPropertyValue" not found in prototype chain
-FAIL CSSStyleDeclaration interface: svg_element.style must inherit property "setPropertyPriority(CSSOMString, CSSOMString)" with the proper type assert_inherits: property "setPropertyPriority" not found in prototype chain
-FAIL CSSStyleDeclaration interface: calling setPropertyPriority(CSSOMString, CSSOMString) on svg_element.style with too few arguments must throw TypeError assert_inherits: property "setPropertyPriority" not found in prototype chain
-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, CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling setProperty(CSSOMString, CSSOMString, CSSOMString) on getComputedStyle(svg_element) with too few arguments must throw TypeError
-FAIL CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "setPropertyValue(CSSOMString, CSSOMString)" with the proper type assert_inherits: property "setPropertyValue" not found in prototype chain
-FAIL CSSStyleDeclaration interface: calling setPropertyValue(CSSOMString, CSSOMString) on getComputedStyle(svg_element) with too few arguments must throw TypeError assert_inherits: property "setPropertyValue" not found in prototype chain
-FAIL CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "setPropertyPriority(CSSOMString, CSSOMString)" with the proper type assert_inherits: property "setPropertyPriority" not found in prototype chain
-FAIL CSSStyleDeclaration interface: calling setPropertyPriority(CSSOMString, CSSOMString) on getComputedStyle(svg_element) with too few arguments must throw TypeError assert_inherits: property "setPropertyPriority" not found in prototype chain
-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 interface: existence and properties of interface object
-PASS CSS interface object length
-PASS CSS interface object name
-PASS CSS interface: existence and properties of interface prototype object
-PASS CSS interface: existence and properties of interface prototype object's "constructor" property
-PASS CSS interface: existence and properties of interface prototype object's @@unscopables property
-PASS CSS interface: operation escape(CSSOMString)
-PASS Unscopable handled correctly for escape(CSSOMString) on CSS
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/css/geometry/interfaces-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/css/geometry/interfaces-expected.txt
deleted file mode 100644
index 87bbfe9..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/css/geometry/interfaces-expected.txt
+++ /dev/null
@@ -1,674 +0,0 @@
-This is a testharness.js-based test.
-Found 670 tests; 667 PASS, 3 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS Test driver
-PASS DOMPointReadOnly interface: existence and properties of interface object
-PASS DOMPointReadOnly interface object length
-PASS DOMPointReadOnly interface object name
-PASS DOMPointReadOnly interface: existence and properties of interface prototype object
-PASS DOMPointReadOnly interface: existence and properties of interface prototype object's "constructor" property
-PASS DOMPointReadOnly interface: existence and properties of interface prototype object's @@unscopables property
-PASS DOMPointReadOnly interface: operation fromPoint(DOMPointInit)
-PASS Unscopable handled correctly for fromPoint(DOMPointInit) on DOMPointReadOnly
-PASS DOMPointReadOnly interface: attribute x
-PASS Unscopable handled correctly for x property on DOMPointReadOnly
-PASS DOMPointReadOnly interface: attribute y
-PASS Unscopable handled correctly for y property on DOMPointReadOnly
-PASS DOMPointReadOnly interface: attribute z
-PASS Unscopable handled correctly for z property on DOMPointReadOnly
-PASS DOMPointReadOnly interface: attribute w
-PASS Unscopable handled correctly for w property on DOMPointReadOnly
-PASS DOMPointReadOnly interface: operation matrixTransform(DOMMatrixInit)
-PASS Unscopable handled correctly for matrixTransform(DOMMatrixInit) on DOMPointReadOnly
-PASS DOMPointReadOnly must be primary interface of new DOMPointReadOnly()
-PASS Stringification of new DOMPointReadOnly()
-PASS DOMPointReadOnly interface: new DOMPointReadOnly() must inherit property "fromPoint(DOMPointInit)" with the proper type
-PASS DOMPointReadOnly interface: calling fromPoint(DOMPointInit) on new DOMPointReadOnly() with too few arguments must throw TypeError
-PASS DOMPointReadOnly interface: new DOMPointReadOnly() must inherit property "x" with the proper type
-PASS DOMPointReadOnly interface: new DOMPointReadOnly() must inherit property "y" with the proper type
-PASS DOMPointReadOnly interface: new DOMPointReadOnly() must inherit property "z" with the proper type
-PASS DOMPointReadOnly interface: new DOMPointReadOnly() must inherit property "w" with the proper type
-PASS DOMPointReadOnly interface: new DOMPointReadOnly() must inherit property "matrixTransform(DOMMatrixInit)" with the proper type
-PASS DOMPointReadOnly interface: calling matrixTransform(DOMMatrixInit) on new DOMPointReadOnly() with too few arguments must throw TypeError
-PASS DOMPoint interface: existence and properties of interface object
-PASS DOMPoint interface object length
-PASS DOMPoint interface object name
-FAIL DOMPoint interface: legacy window alias assert_equals: self.SVGPoint should be the same value as self.DOMPoint expected function "function DOMPoint() { [native code] }" but got function "function SVGPoint() { [native code] }"
-PASS DOMPoint interface: existence and properties of interface prototype object
-PASS DOMPoint interface: existence and properties of interface prototype object's "constructor" property
-PASS DOMPoint interface: existence and properties of interface prototype object's @@unscopables property
-PASS DOMPoint interface: operation fromPoint(DOMPointInit)
-PASS Unscopable handled correctly for fromPoint(DOMPointInit) on DOMPoint
-PASS DOMPoint interface: attribute x
-PASS Unscopable handled correctly for x property on DOMPoint
-PASS DOMPoint interface: attribute y
-PASS Unscopable handled correctly for y property on DOMPoint
-PASS DOMPoint interface: attribute z
-PASS Unscopable handled correctly for z property on DOMPoint
-PASS DOMPoint interface: attribute w
-PASS Unscopable handled correctly for w property on DOMPoint
-PASS DOMPoint must be primary interface of new DOMPoint()
-PASS Stringification of new DOMPoint()
-PASS DOMPoint interface: new DOMPoint() must inherit property "fromPoint(DOMPointInit)" with the proper type
-PASS DOMPoint interface: calling fromPoint(DOMPointInit) on new DOMPoint() with too few arguments must throw TypeError
-PASS DOMPoint interface: new DOMPoint() must inherit property "x" with the proper type
-PASS DOMPoint interface: new DOMPoint() must inherit property "y" with the proper type
-PASS DOMPoint interface: new DOMPoint() must inherit property "z" with the proper type
-PASS DOMPoint interface: new DOMPoint() must inherit property "w" with the proper type
-PASS DOMPointReadOnly interface: new DOMPoint() must inherit property "fromPoint(DOMPointInit)" with the proper type
-PASS DOMPointReadOnly interface: calling fromPoint(DOMPointInit) on new DOMPoint() with too few arguments must throw TypeError
-PASS DOMPointReadOnly interface: new DOMPoint() must inherit property "x" with the proper type
-PASS DOMPointReadOnly interface: new DOMPoint() must inherit property "y" with the proper type
-PASS DOMPointReadOnly interface: new DOMPoint() must inherit property "z" with the proper type
-PASS DOMPointReadOnly interface: new DOMPoint() must inherit property "w" with the proper type
-PASS DOMPointReadOnly interface: new DOMPoint() must inherit property "matrixTransform(DOMMatrixInit)" with the proper type
-PASS DOMPointReadOnly interface: calling matrixTransform(DOMMatrixInit) on new DOMPoint() with too few arguments must throw TypeError
-PASS DOMRectReadOnly interface: existence and properties of interface object
-PASS DOMRectReadOnly interface object length
-PASS DOMRectReadOnly interface object name
-PASS DOMRectReadOnly interface: existence and properties of interface prototype object
-PASS DOMRectReadOnly interface: existence and properties of interface prototype object's "constructor" property
-PASS DOMRectReadOnly interface: existence and properties of interface prototype object's @@unscopables property
-PASS DOMRectReadOnly interface: operation fromRect(DOMRectInit)
-PASS Unscopable handled correctly for fromRect(DOMRectInit) on DOMRectReadOnly
-PASS DOMRectReadOnly interface: attribute x
-PASS Unscopable handled correctly for x property on DOMRectReadOnly
-PASS DOMRectReadOnly interface: attribute y
-PASS Unscopable handled correctly for y property on DOMRectReadOnly
-PASS DOMRectReadOnly interface: attribute width
-PASS Unscopable handled correctly for width property on DOMRectReadOnly
-PASS DOMRectReadOnly interface: attribute height
-PASS Unscopable handled correctly for height property on DOMRectReadOnly
-PASS DOMRectReadOnly interface: attribute top
-PASS Unscopable handled correctly for top property on DOMRectReadOnly
-PASS DOMRectReadOnly interface: attribute right
-PASS Unscopable handled correctly for right property on DOMRectReadOnly
-PASS DOMRectReadOnly interface: attribute bottom
-PASS Unscopable handled correctly for bottom property on DOMRectReadOnly
-PASS DOMRectReadOnly interface: attribute left
-PASS Unscopable handled correctly for left property on DOMRectReadOnly
-PASS DOMRectReadOnly must be primary interface of new DOMRectReadOnly()
-PASS Stringification of new DOMRectReadOnly()
-PASS DOMRectReadOnly interface: new DOMRectReadOnly() must inherit property "fromRect(DOMRectInit)" with the proper type
-PASS DOMRectReadOnly interface: calling fromRect(DOMRectInit) on new DOMRectReadOnly() with too few arguments must throw TypeError
-PASS DOMRectReadOnly interface: new DOMRectReadOnly() must inherit property "x" with the proper type
-PASS DOMRectReadOnly interface: new DOMRectReadOnly() must inherit property "y" with the proper type
-PASS DOMRectReadOnly interface: new DOMRectReadOnly() must inherit property "width" with the proper type
-PASS DOMRectReadOnly interface: new DOMRectReadOnly() must inherit property "height" with the proper type
-PASS DOMRectReadOnly interface: new DOMRectReadOnly() must inherit property "top" with the proper type
-PASS DOMRectReadOnly interface: new DOMRectReadOnly() must inherit property "right" with the proper type
-PASS DOMRectReadOnly interface: new DOMRectReadOnly() must inherit property "bottom" with the proper type
-PASS DOMRectReadOnly interface: new DOMRectReadOnly() must inherit property "left" with the proper type
-PASS DOMRect interface: existence and properties of interface object
-PASS DOMRect interface object length
-PASS DOMRect interface object name
-FAIL DOMRect interface: legacy window alias assert_equals: self.SVGRect should be the same value as self.DOMRect expected function "function DOMRect() { [native code] }" but got function "function SVGRect() { [native code] }"
-PASS DOMRect interface: existence and properties of interface prototype object
-PASS DOMRect interface: existence and properties of interface prototype object's "constructor" property
-PASS DOMRect interface: existence and properties of interface prototype object's @@unscopables property
-PASS DOMRect interface: operation fromRect(DOMRectInit)
-PASS Unscopable handled correctly for fromRect(DOMRectInit) on DOMRect
-PASS DOMRect interface: attribute x
-PASS Unscopable handled correctly for x property on DOMRect
-PASS DOMRect interface: attribute y
-PASS Unscopable handled correctly for y property on DOMRect
-PASS DOMRect interface: attribute width
-PASS Unscopable handled correctly for width property on DOMRect
-PASS DOMRect interface: attribute height
-PASS Unscopable handled correctly for height property on DOMRect
-PASS DOMRect must be primary interface of new DOMRect()
-PASS Stringification of new DOMRect()
-PASS DOMRect interface: new DOMRect() must inherit property "fromRect(DOMRectInit)" with the proper type
-PASS DOMRect interface: calling fromRect(DOMRectInit) on new DOMRect() with too few arguments must throw TypeError
-PASS DOMRect interface: new DOMRect() must inherit property "x" with the proper type
-PASS DOMRect interface: new DOMRect() must inherit property "y" with the proper type
-PASS DOMRect interface: new DOMRect() must inherit property "width" with the proper type
-PASS DOMRect interface: new DOMRect() must inherit property "height" with the proper type
-PASS DOMRectReadOnly interface: new DOMRect() must inherit property "fromRect(DOMRectInit)" with the proper type
-PASS DOMRectReadOnly interface: calling fromRect(DOMRectInit) on new DOMRect() with too few arguments must throw TypeError
-PASS DOMRectReadOnly interface: new DOMRect() must inherit property "x" with the proper type
-PASS DOMRectReadOnly interface: new DOMRect() must inherit property "y" with the proper type
-PASS DOMRectReadOnly interface: new DOMRect() must inherit property "width" with the proper type
-PASS DOMRectReadOnly interface: new DOMRect() must inherit property "height" with the proper type
-PASS DOMRectReadOnly interface: new DOMRect() must inherit property "top" with the proper type
-PASS DOMRectReadOnly interface: new DOMRect() must inherit property "right" with the proper type
-PASS DOMRectReadOnly interface: new DOMRect() must inherit property "bottom" with the proper type
-PASS DOMRectReadOnly interface: new DOMRect() must inherit property "left" with the proper type
-PASS Stringification of [object DOMRectList]
-PASS DOMRectList interface: [object DOMRectList] must inherit property "length" with the proper type
-PASS DOMRectList interface: [object DOMRectList] must inherit property "item(unsigned long)" with the proper type
-PASS DOMRectList interface: calling item(unsigned long) on [object DOMRectList] with too few arguments must throw TypeError
-PASS DOMQuad interface: existence and properties of interface object
-PASS DOMQuad interface object length
-PASS DOMQuad interface object name
-PASS DOMQuad interface: existence and properties of interface prototype object
-PASS DOMQuad interface: existence and properties of interface prototype object's "constructor" property
-PASS DOMQuad interface: existence and properties of interface prototype object's @@unscopables property
-PASS DOMQuad interface: operation fromRect(DOMRectInit)
-PASS Unscopable handled correctly for fromRect(DOMRectInit) on DOMQuad
-PASS DOMQuad interface: operation fromQuad(DOMQuadInit)
-PASS Unscopable handled correctly for fromQuad(DOMQuadInit) on DOMQuad
-PASS DOMQuad interface: attribute p1
-PASS Unscopable handled correctly for p1 property on DOMQuad
-PASS DOMQuad interface: attribute p2
-PASS Unscopable handled correctly for p2 property on DOMQuad
-PASS DOMQuad interface: attribute p3
-PASS Unscopable handled correctly for p3 property on DOMQuad
-PASS DOMQuad interface: attribute p4
-PASS Unscopable handled correctly for p4 property on DOMQuad
-PASS DOMQuad interface: operation getBounds()
-PASS Unscopable handled correctly for getBounds() on DOMQuad
-PASS DOMQuad must be primary interface of new DOMQuad()
-PASS Stringification of new DOMQuad()
-PASS DOMQuad interface: new DOMQuad() must inherit property "fromRect(DOMRectInit)" with the proper type
-PASS DOMQuad interface: calling fromRect(DOMRectInit) on new DOMQuad() with too few arguments must throw TypeError
-PASS DOMQuad interface: new DOMQuad() must inherit property "fromQuad(DOMQuadInit)" with the proper type
-PASS DOMQuad interface: calling fromQuad(DOMQuadInit) on new DOMQuad() with too few arguments must throw TypeError
-PASS DOMQuad interface: new DOMQuad() must inherit property "p1" with the proper type
-PASS DOMQuad interface: new DOMQuad() must inherit property "p2" with the proper type
-PASS DOMQuad interface: new DOMQuad() must inherit property "p3" with the proper type
-PASS DOMQuad interface: new DOMQuad() must inherit property "p4" with the proper type
-PASS DOMQuad interface: new DOMQuad() must inherit property "getBounds()" with the proper type
-PASS DOMMatrixReadOnly interface: existence and properties of interface object
-PASS DOMMatrixReadOnly interface object length
-PASS DOMMatrixReadOnly interface object name
-PASS DOMMatrixReadOnly interface: existence and properties of interface prototype object
-PASS DOMMatrixReadOnly interface: existence and properties of interface prototype object's "constructor" property
-PASS DOMMatrixReadOnly interface: existence and properties of interface prototype object's @@unscopables property
-PASS DOMMatrixReadOnly interface: operation fromMatrix(DOMMatrixInit)
-PASS Unscopable handled correctly for fromMatrix(DOMMatrixInit) on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: operation fromFloat32Array(Float32Array)
-PASS Unscopable handled correctly for fromFloat32Array(Float32Array) on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: operation fromFloat64Array(Float64Array)
-PASS Unscopable handled correctly for fromFloat64Array(Float64Array) on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: attribute a
-PASS Unscopable handled correctly for a property on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: attribute b
-PASS Unscopable handled correctly for b property on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: attribute c
-PASS Unscopable handled correctly for c property on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: attribute d
-PASS Unscopable handled correctly for d property on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: attribute e
-PASS Unscopable handled correctly for e property on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: attribute f
-PASS Unscopable handled correctly for f property on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: attribute m11
-PASS Unscopable handled correctly for m11 property on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: attribute m12
-PASS Unscopable handled correctly for m12 property on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: attribute m13
-PASS Unscopable handled correctly for m13 property on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: attribute m14
-PASS Unscopable handled correctly for m14 property on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: attribute m21
-PASS Unscopable handled correctly for m21 property on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: attribute m22
-PASS Unscopable handled correctly for m22 property on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: attribute m23
-PASS Unscopable handled correctly for m23 property on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: attribute m24
-PASS Unscopable handled correctly for m24 property on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: attribute m31
-PASS Unscopable handled correctly for m31 property on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: attribute m32
-PASS Unscopable handled correctly for m32 property on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: attribute m33
-PASS Unscopable handled correctly for m33 property on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: attribute m34
-PASS Unscopable handled correctly for m34 property on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: attribute m41
-PASS Unscopable handled correctly for m41 property on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: attribute m42
-PASS Unscopable handled correctly for m42 property on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: attribute m43
-PASS Unscopable handled correctly for m43 property on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: attribute m44
-PASS Unscopable handled correctly for m44 property on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: attribute is2D
-PASS Unscopable handled correctly for is2D property on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: attribute isIdentity
-PASS Unscopable handled correctly for isIdentity property on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: operation translate(unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for translate(unrestricted double, unrestricted double, unrestricted double) on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: operation scale(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for scale(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: operation scale3d(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for scale3d(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: operation rotate(unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for rotate(unrestricted double, unrestricted double, unrestricted double) on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: operation rotateFromVector(unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for rotateFromVector(unrestricted double, unrestricted double) on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: operation rotateAxisAngle(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for rotateAxisAngle(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: operation skewX(unrestricted double)
-PASS Unscopable handled correctly for skewX(unrestricted double) on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: operation skewY(unrestricted double)
-PASS Unscopable handled correctly for skewY(unrestricted double) on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: operation multiply(DOMMatrixInit)
-PASS Unscopable handled correctly for multiply(DOMMatrixInit) on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: operation flipX()
-PASS Unscopable handled correctly for flipX() on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: operation flipY()
-PASS Unscopable handled correctly for flipY() on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: operation inverse()
-PASS Unscopable handled correctly for inverse() on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: operation transformPoint(DOMPointInit)
-PASS Unscopable handled correctly for transformPoint(DOMPointInit) on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: operation toFloat32Array()
-PASS Unscopable handled correctly for toFloat32Array() on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: operation toFloat64Array()
-PASS Unscopable handled correctly for toFloat64Array() on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: stringifier
-PASS DOMMatrixReadOnly must be primary interface of new DOMMatrixReadOnly()
-PASS Stringification of new DOMMatrixReadOnly()
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "fromMatrix(DOMMatrixInit)" with the proper type
-PASS DOMMatrixReadOnly interface: calling fromMatrix(DOMMatrixInit) on new DOMMatrixReadOnly() with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "fromFloat32Array(Float32Array)" with the proper type
-PASS DOMMatrixReadOnly interface: calling fromFloat32Array(Float32Array) on new DOMMatrixReadOnly() with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "fromFloat64Array(Float64Array)" with the proper type
-PASS DOMMatrixReadOnly interface: calling fromFloat64Array(Float64Array) on new DOMMatrixReadOnly() with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "a" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "b" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "c" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "d" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "e" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "f" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "m11" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "m12" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "m13" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "m14" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "m21" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "m22" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "m23" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "m24" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "m31" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "m32" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "m33" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "m34" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "m41" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "m42" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "m43" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "m44" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "is2D" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "isIdentity" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "translate(unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrixReadOnly interface: calling translate(unrestricted double, unrestricted double, unrestricted double) on new DOMMatrixReadOnly() with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "scale(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrixReadOnly interface: calling scale(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on new DOMMatrixReadOnly() with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "scale3d(unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrixReadOnly interface: calling scale3d(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on new DOMMatrixReadOnly() with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "rotate(unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrixReadOnly interface: calling rotate(unrestricted double, unrestricted double, unrestricted double) on new DOMMatrixReadOnly() with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "rotateFromVector(unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrixReadOnly interface: calling rotateFromVector(unrestricted double, unrestricted double) on new DOMMatrixReadOnly() with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "rotateAxisAngle(unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrixReadOnly interface: calling rotateAxisAngle(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on new DOMMatrixReadOnly() with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "skewX(unrestricted double)" with the proper type
-PASS DOMMatrixReadOnly interface: calling skewX(unrestricted double) on new DOMMatrixReadOnly() with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "skewY(unrestricted double)" with the proper type
-PASS DOMMatrixReadOnly interface: calling skewY(unrestricted double) on new DOMMatrixReadOnly() with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "multiply(DOMMatrixInit)" with the proper type
-PASS DOMMatrixReadOnly interface: calling multiply(DOMMatrixInit) on new DOMMatrixReadOnly() with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "flipX()" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "flipY()" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "inverse()" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "transformPoint(DOMPointInit)" with the proper type
-PASS DOMMatrixReadOnly interface: calling transformPoint(DOMPointInit) on new DOMMatrixReadOnly() with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "toFloat32Array()" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "toFloat64Array()" with the proper type
-PASS DOMMatrixReadOnly must be primary interface of DOMMatrixReadOnly.fromMatrix({is2D: false})
-PASS Stringification of DOMMatrixReadOnly.fromMatrix({is2D: false})
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "fromMatrix(DOMMatrixInit)" with the proper type
-PASS DOMMatrixReadOnly interface: calling fromMatrix(DOMMatrixInit) on DOMMatrixReadOnly.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "fromFloat32Array(Float32Array)" with the proper type
-PASS DOMMatrixReadOnly interface: calling fromFloat32Array(Float32Array) on DOMMatrixReadOnly.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "fromFloat64Array(Float64Array)" with the proper type
-PASS DOMMatrixReadOnly interface: calling fromFloat64Array(Float64Array) on DOMMatrixReadOnly.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "a" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "b" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "c" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "d" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "e" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "f" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "m11" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "m12" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "m13" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "m14" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "m21" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "m22" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "m23" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "m24" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "m31" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "m32" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "m33" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "m34" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "m41" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "m42" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "m43" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "m44" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "is2D" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "isIdentity" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "translate(unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrixReadOnly interface: calling translate(unrestricted double, unrestricted double, unrestricted double) on DOMMatrixReadOnly.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "scale(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrixReadOnly interface: calling scale(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on DOMMatrixReadOnly.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "scale3d(unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrixReadOnly interface: calling scale3d(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on DOMMatrixReadOnly.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "rotate(unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrixReadOnly interface: calling rotate(unrestricted double, unrestricted double, unrestricted double) on DOMMatrixReadOnly.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "rotateFromVector(unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrixReadOnly interface: calling rotateFromVector(unrestricted double, unrestricted double) on DOMMatrixReadOnly.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "rotateAxisAngle(unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrixReadOnly interface: calling rotateAxisAngle(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on DOMMatrixReadOnly.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "skewX(unrestricted double)" with the proper type
-PASS DOMMatrixReadOnly interface: calling skewX(unrestricted double) on DOMMatrixReadOnly.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "skewY(unrestricted double)" with the proper type
-PASS DOMMatrixReadOnly interface: calling skewY(unrestricted double) on DOMMatrixReadOnly.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "multiply(DOMMatrixInit)" with the proper type
-PASS DOMMatrixReadOnly interface: calling multiply(DOMMatrixInit) on DOMMatrixReadOnly.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "flipX()" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "flipY()" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "inverse()" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "transformPoint(DOMPointInit)" with the proper type
-PASS DOMMatrixReadOnly interface: calling transformPoint(DOMPointInit) on DOMMatrixReadOnly.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "toFloat32Array()" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "toFloat64Array()" with the proper type
-PASS DOMMatrix interface: existence and properties of interface object
-PASS DOMMatrix interface object length
-PASS DOMMatrix interface object name
-FAIL DOMMatrix interface: legacy window alias assert_equals: self.SVGMatrix should be the same value as self.DOMMatrix expected function "function DOMMatrix() { [native code] }" but got function "function SVGMatrix() { [native code] }"
-PASS DOMMatrix interface: existence and properties of interface prototype object
-PASS DOMMatrix interface: existence and properties of interface prototype object's "constructor" property
-PASS DOMMatrix interface: existence and properties of interface prototype object's @@unscopables property
-PASS DOMMatrix interface: operation fromMatrix(DOMMatrixInit)
-PASS Unscopable handled correctly for fromMatrix(DOMMatrixInit) on DOMMatrix
-PASS DOMMatrix interface: operation fromFloat32Array(Float32Array)
-PASS Unscopable handled correctly for fromFloat32Array(Float32Array) on DOMMatrix
-PASS DOMMatrix interface: operation fromFloat64Array(Float64Array)
-PASS Unscopable handled correctly for fromFloat64Array(Float64Array) on DOMMatrix
-PASS DOMMatrix interface: attribute a
-PASS Unscopable handled correctly for a property on DOMMatrix
-PASS DOMMatrix interface: attribute b
-PASS Unscopable handled correctly for b property on DOMMatrix
-PASS DOMMatrix interface: attribute c
-PASS Unscopable handled correctly for c property on DOMMatrix
-PASS DOMMatrix interface: attribute d
-PASS Unscopable handled correctly for d property on DOMMatrix
-PASS DOMMatrix interface: attribute e
-PASS Unscopable handled correctly for e property on DOMMatrix
-PASS DOMMatrix interface: attribute f
-PASS Unscopable handled correctly for f property on DOMMatrix
-PASS DOMMatrix interface: attribute m11
-PASS Unscopable handled correctly for m11 property on DOMMatrix
-PASS DOMMatrix interface: attribute m12
-PASS Unscopable handled correctly for m12 property on DOMMatrix
-PASS DOMMatrix interface: attribute m13
-PASS Unscopable handled correctly for m13 property on DOMMatrix
-PASS DOMMatrix interface: attribute m14
-PASS Unscopable handled correctly for m14 property on DOMMatrix
-PASS DOMMatrix interface: attribute m21
-PASS Unscopable handled correctly for m21 property on DOMMatrix
-PASS DOMMatrix interface: attribute m22
-PASS Unscopable handled correctly for m22 property on DOMMatrix
-PASS DOMMatrix interface: attribute m23
-PASS Unscopable handled correctly for m23 property on DOMMatrix
-PASS DOMMatrix interface: attribute m24
-PASS Unscopable handled correctly for m24 property on DOMMatrix
-PASS DOMMatrix interface: attribute m31
-PASS Unscopable handled correctly for m31 property on DOMMatrix
-PASS DOMMatrix interface: attribute m32
-PASS Unscopable handled correctly for m32 property on DOMMatrix
-PASS DOMMatrix interface: attribute m33
-PASS Unscopable handled correctly for m33 property on DOMMatrix
-PASS DOMMatrix interface: attribute m34
-PASS Unscopable handled correctly for m34 property on DOMMatrix
-PASS DOMMatrix interface: attribute m41
-PASS Unscopable handled correctly for m41 property on DOMMatrix
-PASS DOMMatrix interface: attribute m42
-PASS Unscopable handled correctly for m42 property on DOMMatrix
-PASS DOMMatrix interface: attribute m43
-PASS Unscopable handled correctly for m43 property on DOMMatrix
-PASS DOMMatrix interface: attribute m44
-PASS Unscopable handled correctly for m44 property on DOMMatrix
-PASS DOMMatrix interface: operation multiplySelf(DOMMatrixInit)
-PASS Unscopable handled correctly for multiplySelf(DOMMatrixInit) on DOMMatrix
-PASS DOMMatrix interface: operation preMultiplySelf(DOMMatrixInit)
-PASS Unscopable handled correctly for preMultiplySelf(DOMMatrixInit) on DOMMatrix
-PASS DOMMatrix interface: operation translateSelf(unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for translateSelf(unrestricted double, unrestricted double, unrestricted double) on DOMMatrix
-PASS DOMMatrix interface: operation scaleSelf(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for scaleSelf(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on DOMMatrix
-PASS DOMMatrix interface: operation scale3dSelf(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for scale3dSelf(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on DOMMatrix
-PASS DOMMatrix interface: operation rotateSelf(unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for rotateSelf(unrestricted double, unrestricted double, unrestricted double) on DOMMatrix
-PASS DOMMatrix interface: operation rotateFromVectorSelf(unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for rotateFromVectorSelf(unrestricted double, unrestricted double) on DOMMatrix
-PASS DOMMatrix interface: operation rotateAxisAngleSelf(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for rotateAxisAngleSelf(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on DOMMatrix
-PASS DOMMatrix interface: operation skewXSelf(unrestricted double)
-PASS Unscopable handled correctly for skewXSelf(unrestricted double) on DOMMatrix
-PASS DOMMatrix interface: operation skewYSelf(unrestricted double)
-PASS Unscopable handled correctly for skewYSelf(unrestricted double) on DOMMatrix
-PASS DOMMatrix interface: operation invertSelf()
-PASS Unscopable handled correctly for invertSelf() on DOMMatrix
-PASS DOMMatrix interface: operation setMatrixValue(DOMString)
-PASS Unscopable handled correctly for setMatrixValue(DOMString) on DOMMatrix
-PASS DOMMatrix must be primary interface of new DOMMatrix()
-PASS Stringification of new DOMMatrix()
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "fromMatrix(DOMMatrixInit)" with the proper type
-PASS DOMMatrix interface: calling fromMatrix(DOMMatrixInit) on new DOMMatrix() with too few arguments must throw TypeError
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "fromFloat32Array(Float32Array)" with the proper type
-PASS DOMMatrix interface: calling fromFloat32Array(Float32Array) on new DOMMatrix() with too few arguments must throw TypeError
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "fromFloat64Array(Float64Array)" with the proper type
-PASS DOMMatrix interface: calling fromFloat64Array(Float64Array) on new DOMMatrix() with too few arguments must throw TypeError
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "a" with the proper type
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "b" with the proper type
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "c" with the proper type
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "d" with the proper type
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "e" with the proper type
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "f" with the proper type
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "m11" with the proper type
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "m12" with the proper type
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "m13" with the proper type
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "m14" with the proper type
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "m21" with the proper type
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "m22" with the proper type
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "m23" with the proper type
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "m24" with the proper type
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "m31" with the proper type
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "m32" with the proper type
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "m33" with the proper type
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "m34" with the proper type
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "m41" with the proper type
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "m42" with the proper type
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "m43" with the proper type
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "m44" with the proper type
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "multiplySelf(DOMMatrixInit)" with the proper type
-PASS DOMMatrix interface: calling multiplySelf(DOMMatrixInit) on new DOMMatrix() with too few arguments must throw TypeError
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "preMultiplySelf(DOMMatrixInit)" with the proper type
-PASS DOMMatrix interface: calling preMultiplySelf(DOMMatrixInit) on new DOMMatrix() with too few arguments must throw TypeError
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "translateSelf(unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrix interface: calling translateSelf(unrestricted double, unrestricted double, unrestricted double) on new DOMMatrix() with too few arguments must throw TypeError
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "scaleSelf(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrix interface: calling scaleSelf(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on new DOMMatrix() with too few arguments must throw TypeError
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "scale3dSelf(unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrix interface: calling scale3dSelf(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on new DOMMatrix() with too few arguments must throw TypeError
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "rotateSelf(unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrix interface: calling rotateSelf(unrestricted double, unrestricted double, unrestricted double) on new DOMMatrix() with too few arguments must throw TypeError
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "rotateFromVectorSelf(unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrix interface: calling rotateFromVectorSelf(unrestricted double, unrestricted double) on new DOMMatrix() with too few arguments must throw TypeError
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "rotateAxisAngleSelf(unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrix interface: calling rotateAxisAngleSelf(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on new DOMMatrix() with too few arguments must throw TypeError
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "skewXSelf(unrestricted double)" with the proper type
-PASS DOMMatrix interface: calling skewXSelf(unrestricted double) on new DOMMatrix() with too few arguments must throw TypeError
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "skewYSelf(unrestricted double)" with the proper type
-PASS DOMMatrix interface: calling skewYSelf(unrestricted double) on new DOMMatrix() with too few arguments must throw TypeError
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "invertSelf()" with the proper type
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "setMatrixValue(DOMString)" with the proper type
-PASS DOMMatrix interface: calling setMatrixValue(DOMString) on new DOMMatrix() with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "fromMatrix(DOMMatrixInit)" with the proper type
-PASS DOMMatrixReadOnly interface: calling fromMatrix(DOMMatrixInit) on new DOMMatrix() with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "fromFloat32Array(Float32Array)" with the proper type
-PASS DOMMatrixReadOnly interface: calling fromFloat32Array(Float32Array) on new DOMMatrix() with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "fromFloat64Array(Float64Array)" with the proper type
-PASS DOMMatrixReadOnly interface: calling fromFloat64Array(Float64Array) on new DOMMatrix() with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "a" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "b" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "c" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "d" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "e" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "f" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "m11" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "m12" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "m13" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "m14" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "m21" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "m22" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "m23" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "m24" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "m31" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "m32" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "m33" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "m34" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "m41" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "m42" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "m43" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "m44" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "is2D" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "isIdentity" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "translate(unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrixReadOnly interface: calling translate(unrestricted double, unrestricted double, unrestricted double) on new DOMMatrix() with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "scale(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrixReadOnly interface: calling scale(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on new DOMMatrix() with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "scale3d(unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrixReadOnly interface: calling scale3d(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on new DOMMatrix() with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "rotate(unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrixReadOnly interface: calling rotate(unrestricted double, unrestricted double, unrestricted double) on new DOMMatrix() with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "rotateFromVector(unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrixReadOnly interface: calling rotateFromVector(unrestricted double, unrestricted double) on new DOMMatrix() with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "rotateAxisAngle(unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrixReadOnly interface: calling rotateAxisAngle(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on new DOMMatrix() with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "skewX(unrestricted double)" with the proper type
-PASS DOMMatrixReadOnly interface: calling skewX(unrestricted double) on new DOMMatrix() with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "skewY(unrestricted double)" with the proper type
-PASS DOMMatrixReadOnly interface: calling skewY(unrestricted double) on new DOMMatrix() with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "multiply(DOMMatrixInit)" with the proper type
-PASS DOMMatrixReadOnly interface: calling multiply(DOMMatrixInit) on new DOMMatrix() with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "flipX()" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "flipY()" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "inverse()" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "transformPoint(DOMPointInit)" with the proper type
-PASS DOMMatrixReadOnly interface: calling transformPoint(DOMPointInit) on new DOMMatrix() with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "toFloat32Array()" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "toFloat64Array()" with the proper type
-PASS DOMMatrix must be primary interface of DOMMatrix.fromMatrix({is2D: false})
-PASS Stringification of DOMMatrix.fromMatrix({is2D: false})
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "fromMatrix(DOMMatrixInit)" with the proper type
-PASS DOMMatrix interface: calling fromMatrix(DOMMatrixInit) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "fromFloat32Array(Float32Array)" with the proper type
-PASS DOMMatrix interface: calling fromFloat32Array(Float32Array) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "fromFloat64Array(Float64Array)" with the proper type
-PASS DOMMatrix interface: calling fromFloat64Array(Float64Array) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "a" with the proper type
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "b" with the proper type
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "c" with the proper type
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "d" with the proper type
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "e" with the proper type
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "f" with the proper type
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m11" with the proper type
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m12" with the proper type
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m13" with the proper type
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m14" with the proper type
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m21" with the proper type
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m22" with the proper type
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m23" with the proper type
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m24" with the proper type
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m31" with the proper type
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m32" with the proper type
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m33" with the proper type
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m34" with the proper type
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m41" with the proper type
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m42" with the proper type
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m43" with the proper type
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m44" with the proper type
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "multiplySelf(DOMMatrixInit)" with the proper type
-PASS DOMMatrix interface: calling multiplySelf(DOMMatrixInit) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "preMultiplySelf(DOMMatrixInit)" with the proper type
-PASS DOMMatrix interface: calling preMultiplySelf(DOMMatrixInit) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "translateSelf(unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrix interface: calling translateSelf(unrestricted double, unrestricted double, unrestricted double) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "scaleSelf(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrix interface: calling scaleSelf(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "scale3dSelf(unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrix interface: calling scale3dSelf(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "rotateSelf(unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrix interface: calling rotateSelf(unrestricted double, unrestricted double, unrestricted double) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "rotateFromVectorSelf(unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrix interface: calling rotateFromVectorSelf(unrestricted double, unrestricted double) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "rotateAxisAngleSelf(unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrix interface: calling rotateAxisAngleSelf(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "skewXSelf(unrestricted double)" with the proper type
-PASS DOMMatrix interface: calling skewXSelf(unrestricted double) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "skewYSelf(unrestricted double)" with the proper type
-PASS DOMMatrix interface: calling skewYSelf(unrestricted double) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "invertSelf()" with the proper type
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "setMatrixValue(DOMString)" with the proper type
-PASS DOMMatrix interface: calling setMatrixValue(DOMString) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "fromMatrix(DOMMatrixInit)" with the proper type
-PASS DOMMatrixReadOnly interface: calling fromMatrix(DOMMatrixInit) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "fromFloat32Array(Float32Array)" with the proper type
-PASS DOMMatrixReadOnly interface: calling fromFloat32Array(Float32Array) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "fromFloat64Array(Float64Array)" with the proper type
-PASS DOMMatrixReadOnly interface: calling fromFloat64Array(Float64Array) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "a" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "b" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "c" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "d" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "e" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "f" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m11" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m12" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m13" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m14" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m21" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m22" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m23" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m24" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m31" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m32" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m33" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m34" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m41" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m42" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m43" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m44" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "is2D" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "isIdentity" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "translate(unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrixReadOnly interface: calling translate(unrestricted double, unrestricted double, unrestricted double) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "scale(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrixReadOnly interface: calling scale(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "scale3d(unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrixReadOnly interface: calling scale3d(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "rotate(unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrixReadOnly interface: calling rotate(unrestricted double, unrestricted double, unrestricted double) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "rotateFromVector(unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrixReadOnly interface: calling rotateFromVector(unrestricted double, unrestricted double) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "rotateAxisAngle(unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrixReadOnly interface: calling rotateAxisAngle(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "skewX(unrestricted double)" with the proper type
-PASS DOMMatrixReadOnly interface: calling skewX(unrestricted double) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "skewY(unrestricted double)" with the proper type
-PASS DOMMatrixReadOnly interface: calling skewY(unrestricted double) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "multiply(DOMMatrixInit)" with the proper type
-PASS DOMMatrixReadOnly interface: calling multiply(DOMMatrixInit) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "flipX()" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "flipY()" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "inverse()" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "transformPoint(DOMPointInit)" with the proper type
-PASS DOMMatrixReadOnly interface: calling transformPoint(DOMPointInit) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "toFloat32Array()" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "toFloat64Array()" with the proper type
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/dom/interfaces-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/dom/interfaces-expected.txt
deleted file mode 100644
index e4324a7d..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/dom/interfaces-expected.txt
+++ /dev/null
@@ -1,1949 +0,0 @@
-This is a testharness.js-based test.
-Found 1945 tests; 1940 PASS, 5 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS Test driver
-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 WorkerNavigator interface: existence and properties of interface object
-PASS WorkerLocation interface: existence and properties of interface object
-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 Unscopable handled correctly for type property on Event
-PASS Event interface: attribute target
-PASS Unscopable handled correctly for target property on Event
-PASS Event interface: attribute currentTarget
-PASS Unscopable handled correctly for currentTarget property on Event
-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 Unscopable handled correctly for eventPhase property on Event
-PASS Event interface: operation stopPropagation()
-PASS Unscopable handled correctly for stopPropagation() on Event
-PASS Event interface: operation stopImmediatePropagation()
-PASS Unscopable handled correctly for stopImmediatePropagation() on Event
-PASS Event interface: attribute bubbles
-PASS Unscopable handled correctly for bubbles property on Event
-PASS Event interface: attribute cancelable
-PASS Unscopable handled correctly for cancelable property on Event
-PASS Event interface: operation preventDefault()
-PASS Unscopable handled correctly for preventDefault() on Event
-PASS Event interface: attribute defaultPrevented
-PASS Unscopable handled correctly for defaultPrevented property on Event
-PASS Event interface: attribute timeStamp
-PASS Unscopable handled correctly for timeStamp property on Event
-PASS Event interface: operation initEvent(DOMString, boolean, boolean)
-PASS Unscopable handled correctly for initEvent(DOMString, boolean, boolean) on Event
-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 "currentTarget" 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 "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 "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 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, boolean, boolean)" with the proper type
-PASS Event interface: calling initEvent(DOMString, boolean, 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 "currentTarget" 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 "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 "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 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, boolean, boolean)" with the proper type
-PASS Event interface: calling initEvent(DOMString, boolean, 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 Unscopable handled correctly for detail property on CustomEvent
-PASS CustomEvent interface: operation initCustomEvent(DOMString, boolean, boolean, any)
-PASS Unscopable handled correctly for initCustomEvent(DOMString, boolean, boolean, any) on CustomEvent
-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, boolean, boolean, any)" with the proper type
-PASS CustomEvent interface: calling initCustomEvent(DOMString, boolean, boolean, 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 "currentTarget" 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 "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 "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 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, boolean, boolean)" with the proper type
-PASS Event interface: calling initEvent(DOMString, boolean, 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, [object Object],[object Object])
-PASS Unscopable handled correctly for addEventListener(DOMString, EventListener, [object Object],[object Object]) on EventTarget
-PASS EventTarget interface: operation removeEventListener(DOMString, EventListener, [object Object],[object Object])
-PASS Unscopable handled correctly for removeEventListener(DOMString, EventListener, [object Object],[object Object]) on EventTarget
-PASS EventTarget interface: operation dispatchEvent(Event)
-PASS Unscopable handled correctly for dispatchEvent(Event) on EventTarget
-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, [object Object],[object Object])" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener, [object Object],[object Object]) on new EventTarget() with too few arguments must throw TypeError
-PASS EventTarget interface: new EventTarget() must inherit property "removeEventListener(DOMString, EventListener, [object Object],[object Object])" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener, [object Object],[object Object]) 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 Unscopable handled correctly for handleEvent(Event) on EventListener
-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 Unscopable handled correctly for signal property on AbortController
-PASS AbortController interface: operation abort()
-PASS Unscopable handled correctly for abort() on AbortController
-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
-PASS AbortSignal interface: attribute aborted
-PASS Unscopable handled correctly for aborted property on AbortSignal
-PASS AbortSignal interface: attribute onabort
-PASS Unscopable handled correctly for onabort property on AbortSignal
-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 "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, [object Object],[object Object])" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener, [object Object],[object Object]) on new AbortController().signal with too few arguments must throw TypeError
-PASS EventTarget interface: new AbortController().signal must inherit property "removeEventListener(DOMString, EventListener, [object Object],[object Object])" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener, [object Object],[object Object]) 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 Unscopable handled correctly for item(unsigned long) on NodeList
-PASS NodeList interface: attribute length
-PASS Unscopable handled correctly for length property on NodeList
-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 Unscopable handled correctly for length property on HTMLCollection
-PASS HTMLCollection interface: operation item(unsigned long)
-PASS Unscopable handled correctly for item(unsigned long) on HTMLCollection
-PASS HTMLCollection interface: operation namedItem(DOMString)
-PASS Unscopable handled correctly for namedItem(DOMString) on HTMLCollection
-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, MutationObserverInit)
-PASS Unscopable handled correctly for observe(Node, MutationObserverInit) on MutationObserver
-PASS MutationObserver interface: operation disconnect()
-PASS Unscopable handled correctly for disconnect() on MutationObserver
-PASS MutationObserver interface: operation takeRecords()
-PASS Unscopable handled correctly for takeRecords() on MutationObserver
-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 Unscopable handled correctly for type property on MutationRecord
-PASS MutationRecord interface: attribute target
-PASS Unscopable handled correctly for target property on MutationRecord
-PASS MutationRecord interface: attribute addedNodes
-PASS Unscopable handled correctly for addedNodes property on MutationRecord
-PASS MutationRecord interface: attribute removedNodes
-PASS Unscopable handled correctly for removedNodes property on MutationRecord
-PASS MutationRecord interface: attribute previousSibling
-PASS Unscopable handled correctly for previousSibling property on MutationRecord
-PASS MutationRecord interface: attribute nextSibling
-PASS Unscopable handled correctly for nextSibling property on MutationRecord
-PASS MutationRecord interface: attribute attributeName
-PASS Unscopable handled correctly for attributeName property on MutationRecord
-PASS MutationRecord interface: attribute attributeNamespace
-PASS Unscopable handled correctly for attributeNamespace property on MutationRecord
-PASS MutationRecord interface: attribute oldValue
-PASS Unscopable handled correctly for oldValue property on MutationRecord
-PASS Node interface: existence and properties of interface object
-PASS Node interface object length
-PASS Node interface object name
-PASS Node interface: existence and properties of interface prototype object
-PASS Node interface: existence and properties of interface prototype object's "constructor" property
-PASS Node interface: existence and properties of interface prototype object's @@unscopables property
-PASS Node interface: constant ELEMENT_NODE on interface object
-PASS Node interface: constant ELEMENT_NODE on interface prototype object
-PASS Node interface: constant ATTRIBUTE_NODE on interface object
-PASS Node interface: constant ATTRIBUTE_NODE on interface prototype object
-PASS Node interface: constant TEXT_NODE on interface object
-PASS Node interface: constant TEXT_NODE on interface prototype object
-PASS Node interface: constant CDATA_SECTION_NODE on interface object
-PASS Node interface: constant CDATA_SECTION_NODE on interface prototype object
-PASS Node interface: constant ENTITY_REFERENCE_NODE on interface object
-PASS Node interface: constant ENTITY_REFERENCE_NODE on interface prototype object
-PASS Node interface: constant ENTITY_NODE on interface object
-PASS Node interface: constant ENTITY_NODE on interface prototype object
-PASS Node interface: constant PROCESSING_INSTRUCTION_NODE on interface object
-PASS Node interface: constant PROCESSING_INSTRUCTION_NODE on interface prototype object
-PASS Node interface: constant COMMENT_NODE on interface object
-PASS Node interface: constant COMMENT_NODE on interface prototype object
-PASS Node interface: constant DOCUMENT_NODE on interface object
-PASS Node interface: constant DOCUMENT_NODE on interface prototype object
-PASS Node interface: constant DOCUMENT_TYPE_NODE on interface object
-PASS Node interface: constant DOCUMENT_TYPE_NODE on interface prototype object
-PASS Node interface: constant DOCUMENT_FRAGMENT_NODE on interface object
-PASS Node interface: constant DOCUMENT_FRAGMENT_NODE on interface prototype object
-PASS Node interface: constant NOTATION_NODE on interface object
-PASS Node interface: constant NOTATION_NODE on interface prototype object
-PASS Node interface: attribute nodeType
-PASS Unscopable handled correctly for nodeType property on Node
-PASS Node interface: attribute nodeName
-PASS Unscopable handled correctly for nodeName property on Node
-PASS Node interface: attribute baseURI
-PASS Unscopable handled correctly for baseURI property on Node
-PASS Node interface: attribute isConnected
-PASS Unscopable handled correctly for isConnected property on Node
-PASS Node interface: attribute ownerDocument
-PASS Unscopable handled correctly for ownerDocument property on Node
-PASS Node interface: operation getRootNode(GetRootNodeOptions)
-PASS Unscopable handled correctly for getRootNode(GetRootNodeOptions) on Node
-PASS Node interface: attribute parentNode
-PASS Unscopable handled correctly for parentNode property on Node
-PASS Node interface: attribute parentElement
-PASS Unscopable handled correctly for parentElement property on Node
-PASS Node interface: operation hasChildNodes()
-PASS Unscopable handled correctly for hasChildNodes() on Node
-PASS Node interface: attribute childNodes
-PASS Unscopable handled correctly for childNodes property on Node
-PASS Node interface: attribute firstChild
-PASS Unscopable handled correctly for firstChild property on Node
-PASS Node interface: attribute lastChild
-PASS Unscopable handled correctly for lastChild property on Node
-PASS Node interface: attribute previousSibling
-PASS Unscopable handled correctly for previousSibling property on Node
-PASS Node interface: attribute nextSibling
-PASS Unscopable handled correctly for nextSibling property on Node
-PASS Node interface: attribute nodeValue
-PASS Unscopable handled correctly for nodeValue property on Node
-PASS Node interface: attribute textContent
-PASS Unscopable handled correctly for textContent property on Node
-PASS Node interface: operation normalize()
-PASS Unscopable handled correctly for normalize() on Node
-PASS Node interface: operation cloneNode(boolean)
-PASS Unscopable handled correctly for cloneNode(boolean) on Node
-PASS Node interface: operation isEqualNode(Node)
-PASS Unscopable handled correctly for isEqualNode(Node) on Node
-PASS Node interface: operation isSameNode(Node)
-PASS Unscopable handled correctly for isSameNode(Node) on Node
-PASS Node interface: constant DOCUMENT_POSITION_DISCONNECTED on interface object
-PASS Node interface: constant DOCUMENT_POSITION_DISCONNECTED on interface prototype object
-PASS Node interface: constant DOCUMENT_POSITION_PRECEDING on interface object
-PASS Node interface: constant DOCUMENT_POSITION_PRECEDING on interface prototype object
-PASS Node interface: constant DOCUMENT_POSITION_FOLLOWING on interface object
-PASS Node interface: constant DOCUMENT_POSITION_FOLLOWING on interface prototype object
-PASS Node interface: constant DOCUMENT_POSITION_CONTAINS on interface object
-PASS Node interface: constant DOCUMENT_POSITION_CONTAINS on interface prototype object
-PASS Node interface: constant DOCUMENT_POSITION_CONTAINED_BY on interface object
-PASS Node interface: constant DOCUMENT_POSITION_CONTAINED_BY on interface prototype object
-PASS Node interface: constant DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC on interface object
-PASS Node interface: constant DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC on interface prototype object
-PASS Node interface: operation compareDocumentPosition(Node)
-PASS Unscopable handled correctly for compareDocumentPosition(Node) on Node
-PASS Node interface: operation contains(Node)
-PASS Unscopable handled correctly for contains(Node) on Node
-PASS Node interface: operation lookupPrefix(DOMString)
-PASS Unscopable handled correctly for lookupPrefix(DOMString) on Node
-PASS Node interface: operation lookupNamespaceURI(DOMString)
-PASS Unscopable handled correctly for lookupNamespaceURI(DOMString) on Node
-PASS Node interface: operation isDefaultNamespace(DOMString)
-PASS Unscopable handled correctly for isDefaultNamespace(DOMString) on Node
-PASS Node interface: operation insertBefore(Node, Node)
-PASS Unscopable handled correctly for insertBefore(Node, Node) on Node
-PASS Node interface: operation appendChild(Node)
-PASS Unscopable handled correctly for appendChild(Node) on Node
-PASS Node interface: operation replaceChild(Node, Node)
-PASS Unscopable handled correctly for replaceChild(Node, Node) on Node
-PASS Node interface: operation removeChild(Node)
-PASS Unscopable handled correctly for removeChild(Node) on Node
-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_false: Document.prototype[Symbol.unscopables] should not be writable expected false got true
-PASS Document interface: attribute implementation
-PASS Unscopable handled correctly for implementation property on Document
-PASS Document interface: attribute URL
-PASS Unscopable handled correctly for URL property on Document
-PASS Document interface: attribute documentURI
-PASS Unscopable handled correctly for documentURI property on Document
-PASS Document interface: attribute origin
-PASS Unscopable handled correctly for origin property on Document
-PASS Document interface: attribute compatMode
-PASS Unscopable handled correctly for compatMode property on Document
-PASS Document interface: attribute characterSet
-PASS Unscopable handled correctly for characterSet property on Document
-PASS Document interface: attribute charset
-PASS Unscopable handled correctly for charset property on Document
-PASS Document interface: attribute inputEncoding
-PASS Unscopable handled correctly for inputEncoding property on Document
-PASS Document interface: attribute contentType
-PASS Unscopable handled correctly for contentType property on Document
-PASS Document interface: attribute doctype
-PASS Unscopable handled correctly for doctype property on Document
-PASS Document interface: attribute documentElement
-PASS Unscopable handled correctly for documentElement property on Document
-PASS Document interface: operation getElementsByTagName(DOMString)
-PASS Unscopable handled correctly for getElementsByTagName(DOMString) on Document
-PASS Document interface: operation getElementsByTagNameNS(DOMString, DOMString)
-PASS Unscopable handled correctly for getElementsByTagNameNS(DOMString, DOMString) on Document
-PASS Document interface: operation getElementsByClassName(DOMString)
-PASS Unscopable handled correctly for getElementsByClassName(DOMString) on Document
-PASS Document interface: operation createElement(DOMString, [object Object],[object Object])
-PASS Unscopable handled correctly for createElement(DOMString, [object Object],[object Object]) on Document
-PASS Document interface: operation createElementNS(DOMString, DOMString, [object Object],[object Object])
-PASS Unscopable handled correctly for createElementNS(DOMString, DOMString, [object Object],[object Object]) on Document
-PASS Document interface: operation createDocumentFragment()
-PASS Unscopable handled correctly for createDocumentFragment() on Document
-PASS Document interface: operation createTextNode(DOMString)
-PASS Unscopable handled correctly for createTextNode(DOMString) on Document
-PASS Document interface: operation createCDATASection(DOMString)
-PASS Unscopable handled correctly for createCDATASection(DOMString) on Document
-PASS Document interface: operation createComment(DOMString)
-PASS Unscopable handled correctly for createComment(DOMString) on Document
-PASS Document interface: operation createProcessingInstruction(DOMString, DOMString)
-PASS Unscopable handled correctly for createProcessingInstruction(DOMString, DOMString) on Document
-PASS Document interface: operation importNode(Node, boolean)
-PASS Unscopable handled correctly for importNode(Node, boolean) on Document
-PASS Document interface: operation adoptNode(Node)
-PASS Unscopable handled correctly for adoptNode(Node) on Document
-PASS Document interface: operation createAttribute(DOMString)
-PASS Unscopable handled correctly for createAttribute(DOMString) on Document
-PASS Document interface: operation createAttributeNS(DOMString, DOMString)
-PASS Unscopable handled correctly for createAttributeNS(DOMString, DOMString) on Document
-PASS Document interface: operation createEvent(DOMString)
-PASS Unscopable handled correctly for createEvent(DOMString) on Document
-PASS Document interface: operation createRange()
-PASS Unscopable handled correctly for createRange() on Document
-PASS Document interface: operation createNodeIterator(Node, unsigned long, NodeFilter)
-PASS Unscopable handled correctly for createNodeIterator(Node, unsigned long, NodeFilter) on Document
-PASS Document interface: operation createTreeWalker(Node, unsigned long, NodeFilter)
-PASS Unscopable handled correctly for createTreeWalker(Node, unsigned long, NodeFilter) on Document
-PASS Document interface: operation getElementById(DOMString)
-PASS Unscopable handled correctly for getElementById(DOMString) on Document
-PASS Document interface: attribute children
-PASS Unscopable handled correctly for children property on Document
-PASS Document interface: attribute firstElementChild
-PASS Unscopable handled correctly for firstElementChild property on Document
-PASS Document interface: attribute lastElementChild
-PASS Unscopable handled correctly for lastElementChild property on Document
-PASS Document interface: attribute childElementCount
-PASS Unscopable handled correctly for childElementCount property on Document
-PASS Document interface: operation prepend([object Object],[object Object])
-PASS Unscopable handled correctly for prepend([object Object],[object Object]) on Document
-PASS Document interface: operation append([object Object],[object Object])
-PASS Unscopable handled correctly for append([object Object],[object Object]) on Document
-PASS Document interface: operation querySelector(DOMString)
-PASS Unscopable handled correctly for querySelector(DOMString) on Document
-PASS Document interface: operation querySelectorAll(DOMString)
-PASS Unscopable handled correctly for querySelectorAll(DOMString) on Document
-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 "origin" 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, [object Object],[object Object])" with the proper type
-PASS Document interface: calling createElement(DOMString, [object Object],[object Object]) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "createElementNS(DOMString, DOMString, [object Object],[object Object])" with the proper type
-PASS Document interface: calling createElementNS(DOMString, DOMString, [object Object],[object Object]) 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, boolean)" with the proper type
-PASS Document interface: calling importNode(Node, 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, unsigned long, NodeFilter)" with the proper type
-PASS Document interface: calling createNodeIterator(Node, unsigned long, NodeFilter) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "createTreeWalker(Node, unsigned long, NodeFilter)" with the proper type
-PASS Document interface: calling createTreeWalker(Node, unsigned long, 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([object Object],[object Object])" with the proper type
-PASS Document interface: calling prepend([object Object],[object Object]) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "append([object Object],[object Object])" with the proper type
-PASS Document interface: calling append([object Object],[object Object]) 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 Node interface: new Document() must inherit property "ELEMENT_NODE" with the proper type
-PASS Node interface: new Document() must inherit property "ATTRIBUTE_NODE" with the proper type
-PASS Node interface: new Document() must inherit property "TEXT_NODE" with the proper type
-PASS Node interface: new Document() must inherit property "CDATA_SECTION_NODE" with the proper type
-PASS Node interface: new Document() must inherit property "ENTITY_REFERENCE_NODE" with the proper type
-PASS Node interface: new Document() must inherit property "ENTITY_NODE" with the proper type
-PASS Node interface: new Document() must inherit property "PROCESSING_INSTRUCTION_NODE" with the proper type
-PASS Node interface: new Document() must inherit property "COMMENT_NODE" with the proper type
-PASS Node interface: new Document() must inherit property "DOCUMENT_NODE" with the proper type
-PASS Node interface: new Document() must inherit property "DOCUMENT_TYPE_NODE" with the proper type
-PASS Node interface: new Document() must inherit property "DOCUMENT_FRAGMENT_NODE" with the proper type
-PASS Node interface: new Document() must inherit property "NOTATION_NODE" with the proper type
-PASS Node interface: new Document() must inherit property "nodeType" with the proper type
-PASS Node interface: new Document() must inherit property "nodeName" with the proper type
-PASS Node interface: new Document() must inherit property "baseURI" with the proper type
-PASS Node interface: new Document() must inherit property "isConnected" with the proper type
-PASS Node interface: new Document() must inherit property "ownerDocument" with the proper type
-PASS Node interface: new Document() must inherit property "getRootNode(GetRootNodeOptions)" with the proper type
-PASS Node interface: calling getRootNode(GetRootNodeOptions) on new Document() with too few arguments must throw TypeError
-PASS Node interface: new Document() must inherit property "parentNode" with the proper type
-PASS Node interface: new Document() must inherit property "parentElement" with the proper type
-PASS Node interface: new Document() must inherit property "hasChildNodes()" with the proper type
-PASS Node interface: new Document() must inherit property "childNodes" with the proper type
-PASS Node interface: new Document() must inherit property "firstChild" with the proper type
-PASS Node interface: new Document() must inherit property "lastChild" with the proper type
-PASS Node interface: new Document() must inherit property "previousSibling" with the proper type
-PASS Node interface: new Document() must inherit property "nextSibling" with the proper type
-PASS Node interface: new Document() must inherit property "nodeValue" with the proper type
-PASS Node interface: new Document() must inherit property "textContent" with the proper type
-PASS Node interface: new Document() must inherit property "normalize()" with the proper type
-PASS Node interface: new Document() must inherit property "cloneNode(boolean)" with the proper type
-PASS Node interface: calling cloneNode(boolean) on new Document() with too few arguments must throw TypeError
-PASS Node interface: new Document() must inherit property "isEqualNode(Node)" with the proper type
-PASS Node interface: calling isEqualNode(Node) on new Document() with too few arguments must throw TypeError
-PASS Node interface: new Document() must inherit property "isSameNode(Node)" with the proper type
-PASS Node interface: calling isSameNode(Node) on new Document() with too few arguments must throw TypeError
-PASS Node interface: new Document() must inherit property "DOCUMENT_POSITION_DISCONNECTED" with the proper type
-PASS Node interface: new Document() must inherit property "DOCUMENT_POSITION_PRECEDING" with the proper type
-PASS Node interface: new Document() must inherit property "DOCUMENT_POSITION_FOLLOWING" with the proper type
-PASS Node interface: new Document() must inherit property "DOCUMENT_POSITION_CONTAINS" with the proper type
-PASS Node interface: new Document() must inherit property "DOCUMENT_POSITION_CONTAINED_BY" with the proper type
-PASS Node interface: new Document() must inherit property "DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC" with the proper type
-PASS Node interface: new Document() must inherit property "compareDocumentPosition(Node)" with the proper type
-PASS Node interface: calling compareDocumentPosition(Node) on new Document() with too few arguments must throw TypeError
-PASS Node interface: new Document() must inherit property "contains(Node)" with the proper type
-PASS Node interface: calling contains(Node) on new Document() with too few arguments must throw TypeError
-PASS Node interface: new Document() must inherit property "lookupPrefix(DOMString)" with the proper type
-PASS Node interface: calling lookupPrefix(DOMString) on new Document() with too few arguments must throw TypeError
-PASS Node interface: new Document() must inherit property "lookupNamespaceURI(DOMString)" with the proper type
-PASS Node interface: calling lookupNamespaceURI(DOMString) on new Document() with too few arguments must throw TypeError
-PASS Node interface: new Document() must inherit property "isDefaultNamespace(DOMString)" with the proper type
-PASS Node interface: calling isDefaultNamespace(DOMString) on new Document() with too few arguments must throw TypeError
-PASS Node interface: new Document() must inherit property "insertBefore(Node, Node)" with the proper type
-PASS Node interface: calling insertBefore(Node, Node) on new Document() with too few arguments must throw TypeError
-PASS Node interface: new Document() must inherit property "appendChild(Node)" with the proper type
-PASS Node interface: calling appendChild(Node) on new Document() with too few arguments must throw TypeError
-PASS Node interface: new Document() must inherit property "replaceChild(Node, Node)" with the proper type
-PASS Node interface: calling replaceChild(Node, Node) on new Document() with too few arguments must throw TypeError
-PASS Node interface: new Document() must inherit property "removeChild(Node)" with the proper type
-PASS Node interface: calling removeChild(Node) on new Document() with too few arguments must throw TypeError
-PASS EventTarget interface: new Document() must inherit property "addEventListener(DOMString, EventListener, [object Object],[object Object])" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener, [object Object],[object Object]) on new Document() with too few arguments must throw TypeError
-PASS EventTarget interface: new Document() must inherit property "removeEventListener(DOMString, EventListener, [object Object],[object Object])" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener, [object Object],[object Object]) 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 "origin" 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, [object Object],[object Object])" with the proper type
-PASS Document interface: calling createElement(DOMString, [object Object],[object Object]) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "createElementNS(DOMString, DOMString, [object Object],[object Object])" with the proper type
-PASS Document interface: calling createElementNS(DOMString, DOMString, [object Object],[object Object]) 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, boolean)" with the proper type
-PASS Document interface: calling importNode(Node, 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, unsigned long, NodeFilter)" with the proper type
-PASS Document interface: calling createNodeIterator(Node, unsigned long, NodeFilter) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "createTreeWalker(Node, unsigned long, NodeFilter)" with the proper type
-PASS Document interface: calling createTreeWalker(Node, unsigned long, 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([object Object],[object Object])" with the proper type
-PASS Document interface: calling prepend([object Object],[object Object]) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "append([object Object],[object Object])" with the proper type
-PASS Document interface: calling append([object Object],[object Object]) 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 Node interface: xmlDoc must inherit property "ELEMENT_NODE" with the proper type
-PASS Node interface: xmlDoc must inherit property "ATTRIBUTE_NODE" with the proper type
-PASS Node interface: xmlDoc must inherit property "TEXT_NODE" with the proper type
-PASS Node interface: xmlDoc must inherit property "CDATA_SECTION_NODE" with the proper type
-PASS Node interface: xmlDoc must inherit property "ENTITY_REFERENCE_NODE" with the proper type
-PASS Node interface: xmlDoc must inherit property "ENTITY_NODE" with the proper type
-PASS Node interface: xmlDoc must inherit property "PROCESSING_INSTRUCTION_NODE" with the proper type
-PASS Node interface: xmlDoc must inherit property "COMMENT_NODE" with the proper type
-PASS Node interface: xmlDoc must inherit property "DOCUMENT_NODE" with the proper type
-PASS Node interface: xmlDoc must inherit property "DOCUMENT_TYPE_NODE" with the proper type
-PASS Node interface: xmlDoc must inherit property "DOCUMENT_FRAGMENT_NODE" with the proper type
-PASS Node interface: xmlDoc must inherit property "NOTATION_NODE" with the proper type
-PASS Node interface: xmlDoc must inherit property "nodeType" with the proper type
-PASS Node interface: xmlDoc must inherit property "nodeName" with the proper type
-PASS Node interface: xmlDoc must inherit property "baseURI" with the proper type
-PASS Node interface: xmlDoc must inherit property "isConnected" with the proper type
-PASS Node interface: xmlDoc must inherit property "ownerDocument" with the proper type
-PASS Node interface: xmlDoc must inherit property "getRootNode(GetRootNodeOptions)" with the proper type
-PASS Node interface: calling getRootNode(GetRootNodeOptions) on xmlDoc with too few arguments must throw TypeError
-PASS Node interface: xmlDoc must inherit property "parentNode" with the proper type
-PASS Node interface: xmlDoc must inherit property "parentElement" with the proper type
-PASS Node interface: xmlDoc must inherit property "hasChildNodes()" with the proper type
-PASS Node interface: xmlDoc must inherit property "childNodes" with the proper type
-PASS Node interface: xmlDoc must inherit property "firstChild" with the proper type
-PASS Node interface: xmlDoc must inherit property "lastChild" with the proper type
-PASS Node interface: xmlDoc must inherit property "previousSibling" with the proper type
-PASS Node interface: xmlDoc must inherit property "nextSibling" with the proper type
-PASS Node interface: xmlDoc must inherit property "nodeValue" with the proper type
-PASS Node interface: xmlDoc must inherit property "textContent" with the proper type
-PASS Node interface: xmlDoc must inherit property "normalize()" with the proper type
-PASS Node interface: xmlDoc must inherit property "cloneNode(boolean)" with the proper type
-PASS Node interface: calling cloneNode(boolean) on xmlDoc with too few arguments must throw TypeError
-PASS Node interface: xmlDoc must inherit property "isEqualNode(Node)" with the proper type
-PASS Node interface: calling isEqualNode(Node) on xmlDoc with too few arguments must throw TypeError
-PASS Node interface: xmlDoc must inherit property "isSameNode(Node)" with the proper type
-PASS Node interface: calling isSameNode(Node) on xmlDoc with too few arguments must throw TypeError
-PASS Node interface: xmlDoc must inherit property "DOCUMENT_POSITION_DISCONNECTED" with the proper type
-PASS Node interface: xmlDoc must inherit property "DOCUMENT_POSITION_PRECEDING" with the proper type
-PASS Node interface: xmlDoc must inherit property "DOCUMENT_POSITION_FOLLOWING" with the proper type
-PASS Node interface: xmlDoc must inherit property "DOCUMENT_POSITION_CONTAINS" with the proper type
-PASS Node interface: xmlDoc must inherit property "DOCUMENT_POSITION_CONTAINED_BY" with the proper type
-PASS Node interface: xmlDoc must inherit property "DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC" with the proper type
-PASS Node interface: xmlDoc must inherit property "compareDocumentPosition(Node)" with the proper type
-PASS Node interface: calling compareDocumentPosition(Node) on xmlDoc with too few arguments must throw TypeError
-PASS Node interface: xmlDoc must inherit property "contains(Node)" with the proper type
-PASS Node interface: calling contains(Node) on xmlDoc with too few arguments must throw TypeError
-PASS Node interface: xmlDoc must inherit property "lookupPrefix(DOMString)" with the proper type
-PASS Node interface: calling lookupPrefix(DOMString) on xmlDoc with too few arguments must throw TypeError
-PASS Node interface: xmlDoc must inherit property "lookupNamespaceURI(DOMString)" with the proper type
-PASS Node interface: calling lookupNamespaceURI(DOMString) on xmlDoc with too few arguments must throw TypeError
-PASS Node interface: xmlDoc must inherit property "isDefaultNamespace(DOMString)" with the proper type
-PASS Node interface: calling isDefaultNamespace(DOMString) on xmlDoc with too few arguments must throw TypeError
-PASS Node interface: xmlDoc must inherit property "insertBefore(Node, Node)" with the proper type
-PASS Node interface: calling insertBefore(Node, Node) on xmlDoc with too few arguments must throw TypeError
-PASS Node interface: xmlDoc must inherit property "appendChild(Node)" with the proper type
-PASS Node interface: calling appendChild(Node) on xmlDoc with too few arguments must throw TypeError
-PASS Node interface: xmlDoc must inherit property "replaceChild(Node, Node)" with the proper type
-PASS Node interface: calling replaceChild(Node, Node) on xmlDoc with too few arguments must throw TypeError
-PASS Node interface: xmlDoc must inherit property "removeChild(Node)" with the proper type
-PASS Node interface: calling removeChild(Node) on xmlDoc with too few arguments must throw TypeError
-PASS EventTarget interface: xmlDoc must inherit property "addEventListener(DOMString, EventListener, [object Object],[object Object])" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener, [object Object],[object Object]) on xmlDoc with too few arguments must throw TypeError
-PASS EventTarget interface: xmlDoc must inherit property "removeEventListener(DOMString, EventListener, [object Object],[object Object])" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener, [object Object],[object Object]) 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 Unscopable handled correctly for createDocumentType(DOMString, DOMString, DOMString) on DOMImplementation
-PASS DOMImplementation interface: operation createDocument(DOMString, DOMString, DocumentType)
-PASS Unscopable handled correctly for createDocument(DOMString, DOMString, DocumentType) on DOMImplementation
-PASS DOMImplementation interface: operation createHTMLDocument(DOMString)
-PASS Unscopable handled correctly for createHTMLDocument(DOMString) on DOMImplementation
-PASS DOMImplementation interface: operation hasFeature()
-PASS Unscopable handled correctly for hasFeature() on DOMImplementation
-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, DocumentType)" with the proper type
-PASS DOMImplementation interface: calling createDocument(DOMString, DOMString, DocumentType) on document.implementation with too few arguments must throw TypeError
-PASS DOMImplementation interface: document.implementation must inherit property "createHTMLDocument(DOMString)" with the proper type
-PASS DOMImplementation interface: calling createHTMLDocument(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
-FAIL DocumentType interface: existence and properties of interface prototype object's @@unscopables property assert_false: DocumentType.prototype[Symbol.unscopables] should not be writable expected false got true
-PASS DocumentType interface: attribute name
-PASS Unscopable handled correctly for name property on DocumentType
-PASS DocumentType interface: attribute publicId
-PASS Unscopable handled correctly for publicId property on DocumentType
-PASS DocumentType interface: attribute systemId
-PASS Unscopable handled correctly for systemId property on DocumentType
-PASS DocumentType interface: operation before([object Object],[object Object])
-PASS Unscopable handled correctly for before([object Object],[object Object]) on DocumentType
-PASS DocumentType interface: operation after([object Object],[object Object])
-PASS Unscopable handled correctly for after([object Object],[object Object]) on DocumentType
-PASS DocumentType interface: operation replaceWith([object Object],[object Object])
-PASS Unscopable handled correctly for replaceWith([object Object],[object Object]) on DocumentType
-PASS DocumentType interface: operation remove()
-PASS Unscopable handled correctly for remove() on DocumentType
-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([object Object],[object Object])" with the proper type
-PASS DocumentType interface: calling before([object Object],[object Object]) on document.doctype with too few arguments must throw TypeError
-PASS DocumentType interface: document.doctype must inherit property "after([object Object],[object Object])" with the proper type
-PASS DocumentType interface: calling after([object Object],[object Object]) on document.doctype with too few arguments must throw TypeError
-PASS DocumentType interface: document.doctype must inherit property "replaceWith([object Object],[object Object])" with the proper type
-PASS DocumentType interface: calling replaceWith([object Object],[object Object]) on document.doctype with too few arguments must throw TypeError
-PASS DocumentType interface: document.doctype must inherit property "remove()" with the proper type
-PASS Node interface: document.doctype must inherit property "ELEMENT_NODE" with the proper type
-PASS Node interface: document.doctype must inherit property "ATTRIBUTE_NODE" with the proper type
-PASS Node interface: document.doctype must inherit property "TEXT_NODE" with the proper type
-PASS Node interface: document.doctype must inherit property "CDATA_SECTION_NODE" with the proper type
-PASS Node interface: document.doctype must inherit property "ENTITY_REFERENCE_NODE" with the proper type
-PASS Node interface: document.doctype must inherit property "ENTITY_NODE" with the proper type
-PASS Node interface: document.doctype must inherit property "PROCESSING_INSTRUCTION_NODE" with the proper type
-PASS Node interface: document.doctype must inherit property "COMMENT_NODE" with the proper type
-PASS Node interface: document.doctype must inherit property "DOCUMENT_NODE" with the proper type
-PASS Node interface: document.doctype must inherit property "DOCUMENT_TYPE_NODE" with the proper type
-PASS Node interface: document.doctype must inherit property "DOCUMENT_FRAGMENT_NODE" with the proper type
-PASS Node interface: document.doctype must inherit property "NOTATION_NODE" with the proper type
-PASS Node interface: document.doctype must inherit property "nodeType" with the proper type
-PASS Node interface: document.doctype must inherit property "nodeName" with the proper type
-PASS Node interface: document.doctype must inherit property "baseURI" with the proper type
-PASS Node interface: document.doctype must inherit property "isConnected" with the proper type
-PASS Node interface: document.doctype must inherit property "ownerDocument" with the proper type
-PASS Node interface: document.doctype must inherit property "getRootNode(GetRootNodeOptions)" with the proper type
-PASS Node interface: calling getRootNode(GetRootNodeOptions) on document.doctype with too few arguments must throw TypeError
-PASS Node interface: document.doctype must inherit property "parentNode" with the proper type
-PASS Node interface: document.doctype must inherit property "parentElement" with the proper type
-PASS Node interface: document.doctype must inherit property "hasChildNodes()" with the proper type
-PASS Node interface: document.doctype must inherit property "childNodes" with the proper type
-PASS Node interface: document.doctype must inherit property "firstChild" with the proper type
-PASS Node interface: document.doctype must inherit property "lastChild" with the proper type
-PASS Node interface: document.doctype must inherit property "previousSibling" with the proper type
-PASS Node interface: document.doctype must inherit property "nextSibling" with the proper type
-PASS Node interface: document.doctype must inherit property "nodeValue" with the proper type
-PASS Node interface: document.doctype must inherit property "textContent" with the proper type
-PASS Node interface: document.doctype must inherit property "normalize()" with the proper type
-PASS Node interface: document.doctype must inherit property "cloneNode(boolean)" with the proper type
-PASS Node interface: calling cloneNode(boolean) on document.doctype with too few arguments must throw TypeError
-PASS Node interface: document.doctype must inherit property "isEqualNode(Node)" with the proper type
-PASS Node interface: calling isEqualNode(Node) on document.doctype with too few arguments must throw TypeError
-PASS Node interface: document.doctype must inherit property "isSameNode(Node)" with the proper type
-PASS Node interface: calling isSameNode(Node) on document.doctype with too few arguments must throw TypeError
-PASS Node interface: document.doctype must inherit property "DOCUMENT_POSITION_DISCONNECTED" with the proper type
-PASS Node interface: document.doctype must inherit property "DOCUMENT_POSITION_PRECEDING" with the proper type
-PASS Node interface: document.doctype must inherit property "DOCUMENT_POSITION_FOLLOWING" with the proper type
-PASS Node interface: document.doctype must inherit property "DOCUMENT_POSITION_CONTAINS" with the proper type
-PASS Node interface: document.doctype must inherit property "DOCUMENT_POSITION_CONTAINED_BY" with the proper type
-PASS Node interface: document.doctype must inherit property "DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC" with the proper type
-PASS Node interface: document.doctype must inherit property "compareDocumentPosition(Node)" with the proper type
-PASS Node interface: calling compareDocumentPosition(Node) on document.doctype with too few arguments must throw TypeError
-PASS Node interface: document.doctype must inherit property "contains(Node)" with the proper type
-PASS Node interface: calling contains(Node) on document.doctype with too few arguments must throw TypeError
-PASS Node interface: document.doctype must inherit property "lookupPrefix(DOMString)" with the proper type
-PASS Node interface: calling lookupPrefix(DOMString) on document.doctype with too few arguments must throw TypeError
-PASS Node interface: document.doctype must inherit property "lookupNamespaceURI(DOMString)" with the proper type
-PASS Node interface: calling lookupNamespaceURI(DOMString) on document.doctype with too few arguments must throw TypeError
-PASS Node interface: document.doctype must inherit property "isDefaultNamespace(DOMString)" with the proper type
-PASS Node interface: calling isDefaultNamespace(DOMString) on document.doctype with too few arguments must throw TypeError
-PASS Node interface: document.doctype must inherit property "insertBefore(Node, Node)" with the proper type
-PASS Node interface: calling insertBefore(Node, Node) on document.doctype with too few arguments must throw TypeError
-PASS Node interface: document.doctype must inherit property "appendChild(Node)" with the proper type
-PASS Node interface: calling appendChild(Node) on document.doctype with too few arguments must throw TypeError
-PASS Node interface: document.doctype must inherit property "replaceChild(Node, Node)" with the proper type
-PASS Node interface: calling replaceChild(Node, Node) on document.doctype with too few arguments must throw TypeError
-PASS Node interface: document.doctype must inherit property "removeChild(Node)" with the proper type
-PASS Node interface: calling removeChild(Node) on document.doctype with too few arguments must throw TypeError
-PASS EventTarget interface: document.doctype must inherit property "addEventListener(DOMString, EventListener, [object Object],[object Object])" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener, [object Object],[object Object]) on document.doctype with too few arguments must throw TypeError
-PASS EventTarget interface: document.doctype must inherit property "removeEventListener(DOMString, EventListener, [object Object],[object Object])" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener, [object Object],[object Object]) 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
-FAIL DocumentFragment interface: existence and properties of interface prototype object's @@unscopables property assert_false: DocumentFragment.prototype[Symbol.unscopables] should not be writable expected false got true
-PASS DocumentFragment interface: operation getElementById(DOMString)
-PASS Unscopable handled correctly for getElementById(DOMString) on DocumentFragment
-PASS DocumentFragment interface: attribute children
-PASS Unscopable handled correctly for children property on DocumentFragment
-PASS DocumentFragment interface: attribute firstElementChild
-PASS Unscopable handled correctly for firstElementChild property on DocumentFragment
-PASS DocumentFragment interface: attribute lastElementChild
-PASS Unscopable handled correctly for lastElementChild property on DocumentFragment
-PASS DocumentFragment interface: attribute childElementCount
-PASS Unscopable handled correctly for childElementCount property on DocumentFragment
-PASS DocumentFragment interface: operation prepend([object Object],[object Object])
-PASS Unscopable handled correctly for prepend([object Object],[object Object]) on DocumentFragment
-PASS DocumentFragment interface: operation append([object Object],[object Object])
-PASS Unscopable handled correctly for append([object Object],[object Object]) on DocumentFragment
-PASS DocumentFragment interface: operation querySelector(DOMString)
-PASS Unscopable handled correctly for querySelector(DOMString) on DocumentFragment
-PASS DocumentFragment interface: operation querySelectorAll(DOMString)
-PASS Unscopable handled correctly for querySelectorAll(DOMString) on DocumentFragment
-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([object Object],[object Object])" with the proper type
-PASS DocumentFragment interface: calling prepend([object Object],[object Object]) on document.createDocumentFragment() with too few arguments must throw TypeError
-PASS DocumentFragment interface: document.createDocumentFragment() must inherit property "append([object Object],[object Object])" with the proper type
-PASS DocumentFragment interface: calling append([object Object],[object Object]) 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 Node interface: document.createDocumentFragment() must inherit property "ELEMENT_NODE" with the proper type
-PASS Node interface: document.createDocumentFragment() must inherit property "ATTRIBUTE_NODE" with the proper type
-PASS Node interface: document.createDocumentFragment() must inherit property "TEXT_NODE" with the proper type
-PASS Node interface: document.createDocumentFragment() must inherit property "CDATA_SECTION_NODE" with the proper type
-PASS Node interface: document.createDocumentFragment() must inherit property "ENTITY_REFERENCE_NODE" with the proper type
-PASS Node interface: document.createDocumentFragment() must inherit property "ENTITY_NODE" with the proper type
-PASS Node interface: document.createDocumentFragment() must inherit property "PROCESSING_INSTRUCTION_NODE" with the proper type
-PASS Node interface: document.createDocumentFragment() must inherit property "COMMENT_NODE" with the proper type
-PASS Node interface: document.createDocumentFragment() must inherit property "DOCUMENT_NODE" with the proper type
-PASS Node interface: document.createDocumentFragment() must inherit property "DOCUMENT_TYPE_NODE" with the proper type
-PASS Node interface: document.createDocumentFragment() must inherit property "DOCUMENT_FRAGMENT_NODE" with the proper type
-PASS Node interface: document.createDocumentFragment() must inherit property "NOTATION_NODE" with the proper type
-PASS Node interface: document.createDocumentFragment() must inherit property "nodeType" with the proper type
-PASS Node interface: document.createDocumentFragment() must inherit property "nodeName" with the proper type
-PASS Node interface: document.createDocumentFragment() must inherit property "baseURI" with the proper type
-PASS Node interface: document.createDocumentFragment() must inherit property "isConnected" with the proper type
-PASS Node interface: document.createDocumentFragment() must inherit property "ownerDocument" with the proper type
-PASS Node interface: document.createDocumentFragment() must inherit property "getRootNode(GetRootNodeOptions)" with the proper type
-PASS Node interface: calling getRootNode(GetRootNodeOptions) on document.createDocumentFragment() with too few arguments must throw TypeError
-PASS Node interface: document.createDocumentFragment() must inherit property "parentNode" with the proper type
-PASS Node interface: document.createDocumentFragment() must inherit property "parentElement" with the proper type
-PASS Node interface: document.createDocumentFragment() must inherit property "hasChildNodes()" with the proper type
-PASS Node interface: document.createDocumentFragment() must inherit property "childNodes" with the proper type
-PASS Node interface: document.createDocumentFragment() must inherit property "firstChild" with the proper type
-PASS Node interface: document.createDocumentFragment() must inherit property "lastChild" with the proper type
-PASS Node interface: document.createDocumentFragment() must inherit property "previousSibling" with the proper type
-PASS Node interface: document.createDocumentFragment() must inherit property "nextSibling" with the proper type
-PASS Node interface: document.createDocumentFragment() must inherit property "nodeValue" with the proper type
-PASS Node interface: document.createDocumentFragment() must inherit property "textContent" with the proper type
-PASS Node interface: document.createDocumentFragment() must inherit property "normalize()" with the proper type
-PASS Node interface: document.createDocumentFragment() must inherit property "cloneNode(boolean)" with the proper type
-PASS Node interface: calling cloneNode(boolean) on document.createDocumentFragment() with too few arguments must throw TypeError
-PASS Node interface: document.createDocumentFragment() must inherit property "isEqualNode(Node)" with the proper type
-PASS Node interface: calling isEqualNode(Node) on document.createDocumentFragment() with too few arguments must throw TypeError
-PASS Node interface: document.createDocumentFragment() must inherit property "isSameNode(Node)" with the proper type
-PASS Node interface: calling isSameNode(Node) on document.createDocumentFragment() with too few arguments must throw TypeError
-PASS Node interface: document.createDocumentFragment() must inherit property "DOCUMENT_POSITION_DISCONNECTED" with the proper type
-PASS Node interface: document.createDocumentFragment() must inherit property "DOCUMENT_POSITION_PRECEDING" with the proper type
-PASS Node interface: document.createDocumentFragment() must inherit property "DOCUMENT_POSITION_FOLLOWING" with the proper type
-PASS Node interface: document.createDocumentFragment() must inherit property "DOCUMENT_POSITION_CONTAINS" with the proper type
-PASS Node interface: document.createDocumentFragment() must inherit property "DOCUMENT_POSITION_CONTAINED_BY" with the proper type
-PASS Node interface: document.createDocumentFragment() must inherit property "DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC" with the proper type
-PASS Node interface: document.createDocumentFragment() must inherit property "compareDocumentPosition(Node)" with the proper type
-PASS Node interface: calling compareDocumentPosition(Node) on document.createDocumentFragment() with too few arguments must throw TypeError
-PASS Node interface: document.createDocumentFragment() must inherit property "contains(Node)" with the proper type
-PASS Node interface: calling contains(Node) on document.createDocumentFragment() with too few arguments must throw TypeError
-PASS Node interface: document.createDocumentFragment() must inherit property "lookupPrefix(DOMString)" with the proper type
-PASS Node interface: calling lookupPrefix(DOMString) on document.createDocumentFragment() with too few arguments must throw TypeError
-PASS Node interface: document.createDocumentFragment() must inherit property "lookupNamespaceURI(DOMString)" with the proper type
-PASS Node interface: calling lookupNamespaceURI(DOMString) on document.createDocumentFragment() with too few arguments must throw TypeError
-PASS Node interface: document.createDocumentFragment() must inherit property "isDefaultNamespace(DOMString)" with the proper type
-PASS Node interface: calling isDefaultNamespace(DOMString) on document.createDocumentFragment() with too few arguments must throw TypeError
-PASS Node interface: document.createDocumentFragment() must inherit property "insertBefore(Node, Node)" with the proper type
-PASS Node interface: calling insertBefore(Node, Node) on document.createDocumentFragment() with too few arguments must throw TypeError
-PASS Node interface: document.createDocumentFragment() must inherit property "appendChild(Node)" with the proper type
-PASS Node interface: calling appendChild(Node) on document.createDocumentFragment() with too few arguments must throw TypeError
-PASS Node interface: document.createDocumentFragment() must inherit property "replaceChild(Node, Node)" with the proper type
-PASS Node interface: calling replaceChild(Node, Node) on document.createDocumentFragment() with too few arguments must throw TypeError
-PASS Node interface: document.createDocumentFragment() must inherit property "removeChild(Node)" with the proper type
-PASS Node interface: calling removeChild(Node) on document.createDocumentFragment() with too few arguments must throw TypeError
-PASS EventTarget interface: document.createDocumentFragment() must inherit property "addEventListener(DOMString, EventListener, [object Object],[object Object])" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener, [object Object],[object Object]) on document.createDocumentFragment() with too few arguments must throw TypeError
-PASS EventTarget interface: document.createDocumentFragment() must inherit property "removeEventListener(DOMString, EventListener, [object Object],[object Object])" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener, [object Object],[object Object]) 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 Unscopable handled correctly for mode property on ShadowRoot
-PASS ShadowRoot interface: attribute host
-PASS Unscopable handled correctly for host property on ShadowRoot
-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
-FAIL Element interface: existence and properties of interface prototype object's @@unscopables property assert_false: Element.prototype[Symbol.unscopables] should not be writable expected false got true
-PASS Element interface: attribute namespaceURI
-PASS Unscopable handled correctly for namespaceURI property on Element
-PASS Element interface: attribute prefix
-PASS Unscopable handled correctly for prefix property on Element
-PASS Element interface: attribute localName
-PASS Unscopable handled correctly for localName property on Element
-PASS Element interface: attribute tagName
-PASS Unscopable handled correctly for tagName property on Element
-PASS Element interface: attribute id
-PASS Unscopable handled correctly for id property on Element
-PASS Element interface: attribute className
-PASS Unscopable handled correctly for className property on Element
-PASS Element interface: attribute classList
-PASS Unscopable handled correctly for classList property on Element
-PASS Element interface: attribute slot
-PASS Unscopable handled correctly for slot property on Element
-PASS Element interface: operation hasAttributes()
-PASS Unscopable handled correctly for hasAttributes() on Element
-PASS Element interface: attribute attributes
-PASS Unscopable handled correctly for attributes property on Element
-PASS Element interface: operation getAttributeNames()
-PASS Unscopable handled correctly for getAttributeNames() on Element
-PASS Element interface: operation getAttribute(DOMString)
-PASS Unscopable handled correctly for getAttribute(DOMString) on Element
-PASS Element interface: operation getAttributeNS(DOMString, DOMString)
-PASS Unscopable handled correctly for getAttributeNS(DOMString, DOMString) on Element
-PASS Element interface: operation setAttribute(DOMString, DOMString)
-PASS Unscopable handled correctly for setAttribute(DOMString, DOMString) on Element
-PASS Element interface: operation setAttributeNS(DOMString, DOMString, DOMString)
-PASS Unscopable handled correctly for setAttributeNS(DOMString, DOMString, DOMString) on Element
-PASS Element interface: operation removeAttribute(DOMString)
-PASS Unscopable handled correctly for removeAttribute(DOMString) on Element
-PASS Element interface: operation removeAttributeNS(DOMString, DOMString)
-PASS Unscopable handled correctly for removeAttributeNS(DOMString, DOMString) on Element
-PASS Element interface: operation hasAttribute(DOMString)
-PASS Unscopable handled correctly for hasAttribute(DOMString) on Element
-PASS Element interface: operation hasAttributeNS(DOMString, DOMString)
-PASS Unscopable handled correctly for hasAttributeNS(DOMString, DOMString) on Element
-PASS Element interface: operation getAttributeNode(DOMString)
-PASS Unscopable handled correctly for getAttributeNode(DOMString) on Element
-PASS Element interface: operation getAttributeNodeNS(DOMString, DOMString)
-PASS Unscopable handled correctly for getAttributeNodeNS(DOMString, DOMString) on Element
-PASS Element interface: operation setAttributeNode(Attr)
-PASS Unscopable handled correctly for setAttributeNode(Attr) on Element
-PASS Element interface: operation setAttributeNodeNS(Attr)
-PASS Unscopable handled correctly for setAttributeNodeNS(Attr) on Element
-PASS Element interface: operation removeAttributeNode(Attr)
-PASS Unscopable handled correctly for removeAttributeNode(Attr) on Element
-PASS Element interface: operation attachShadow(ShadowRootInit)
-PASS Unscopable handled correctly for attachShadow(ShadowRootInit) on Element
-PASS Element interface: attribute shadowRoot
-PASS Unscopable handled correctly for shadowRoot property on Element
-PASS Element interface: operation closest(DOMString)
-PASS Unscopable handled correctly for closest(DOMString) on Element
-PASS Element interface: operation matches(DOMString)
-PASS Unscopable handled correctly for matches(DOMString) on Element
-PASS Element interface: operation webkitMatchesSelector(DOMString)
-PASS Unscopable handled correctly for webkitMatchesSelector(DOMString) on Element
-PASS Element interface: operation getElementsByTagName(DOMString)
-PASS Unscopable handled correctly for getElementsByTagName(DOMString) on Element
-PASS Element interface: operation getElementsByTagNameNS(DOMString, DOMString)
-PASS Unscopable handled correctly for getElementsByTagNameNS(DOMString, DOMString) on Element
-PASS Element interface: operation getElementsByClassName(DOMString)
-PASS Unscopable handled correctly for getElementsByClassName(DOMString) on Element
-PASS Element interface: operation insertAdjacentElement(DOMString, Element)
-PASS Unscopable handled correctly for insertAdjacentElement(DOMString, Element) on Element
-PASS Element interface: operation insertAdjacentText(DOMString, DOMString)
-PASS Unscopable handled correctly for insertAdjacentText(DOMString, DOMString) on Element
-PASS Element interface: attribute children
-PASS Unscopable handled correctly for children property on Element
-PASS Element interface: attribute firstElementChild
-PASS Unscopable handled correctly for firstElementChild property on Element
-PASS Element interface: attribute lastElementChild
-PASS Unscopable handled correctly for lastElementChild property on Element
-PASS Element interface: attribute childElementCount
-PASS Unscopable handled correctly for childElementCount property on Element
-PASS Element interface: operation prepend([object Object],[object Object])
-PASS Unscopable handled correctly for prepend([object Object],[object Object]) on Element
-PASS Element interface: operation append([object Object],[object Object])
-PASS Unscopable handled correctly for append([object Object],[object Object]) on Element
-PASS Element interface: operation querySelector(DOMString)
-PASS Unscopable handled correctly for querySelector(DOMString) on Element
-PASS Element interface: operation querySelectorAll(DOMString)
-PASS Unscopable handled correctly for querySelectorAll(DOMString) on Element
-PASS Element interface: attribute previousElementSibling
-PASS Unscopable handled correctly for previousElementSibling property on Element
-PASS Element interface: attribute nextElementSibling
-PASS Unscopable handled correctly for nextElementSibling property on Element
-PASS Element interface: operation before([object Object],[object Object])
-PASS Unscopable handled correctly for before([object Object],[object Object]) on Element
-PASS Element interface: operation after([object Object],[object Object])
-PASS Unscopable handled correctly for after([object Object],[object Object]) on Element
-PASS Element interface: operation replaceWith([object Object],[object Object])
-PASS Unscopable handled correctly for replaceWith([object Object],[object Object]) on Element
-PASS Element interface: operation remove()
-PASS Unscopable handled correctly for remove() on Element
-PASS Element interface: attribute assignedSlot
-PASS Unscopable handled correctly for assignedSlot property on Element
-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 "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([object Object],[object Object])" with the proper type
-PASS Element interface: calling prepend([object Object],[object Object]) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "append([object Object],[object Object])" with the proper type
-PASS Element interface: calling append([object Object],[object Object]) 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([object Object],[object Object])" with the proper type
-PASS Element interface: calling before([object Object],[object Object]) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "after([object Object],[object Object])" with the proper type
-PASS Element interface: calling after([object Object],[object Object]) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "replaceWith([object Object],[object Object])" with the proper type
-PASS Element interface: calling replaceWith([object Object],[object Object]) 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 Node interface: element must inherit property "ELEMENT_NODE" with the proper type
-PASS Node interface: element must inherit property "ATTRIBUTE_NODE" with the proper type
-PASS Node interface: element must inherit property "TEXT_NODE" with the proper type
-PASS Node interface: element must inherit property "CDATA_SECTION_NODE" with the proper type
-PASS Node interface: element must inherit property "ENTITY_REFERENCE_NODE" with the proper type
-PASS Node interface: element must inherit property "ENTITY_NODE" with the proper type
-PASS Node interface: element must inherit property "PROCESSING_INSTRUCTION_NODE" with the proper type
-PASS Node interface: element must inherit property "COMMENT_NODE" with the proper type
-PASS Node interface: element must inherit property "DOCUMENT_NODE" with the proper type
-PASS Node interface: element must inherit property "DOCUMENT_TYPE_NODE" with the proper type
-PASS Node interface: element must inherit property "DOCUMENT_FRAGMENT_NODE" with the proper type
-PASS Node interface: element must inherit property "NOTATION_NODE" with the proper type
-PASS Node interface: element must inherit property "nodeType" with the proper type
-PASS Node interface: element must inherit property "nodeName" with the proper type
-PASS Node interface: element must inherit property "baseURI" with the proper type
-PASS Node interface: element must inherit property "isConnected" with the proper type
-PASS Node interface: element must inherit property "ownerDocument" with the proper type
-PASS Node interface: element must inherit property "getRootNode(GetRootNodeOptions)" with the proper type
-PASS Node interface: calling getRootNode(GetRootNodeOptions) on element with too few arguments must throw TypeError
-PASS Node interface: element must inherit property "parentNode" with the proper type
-PASS Node interface: element must inherit property "parentElement" with the proper type
-PASS Node interface: element must inherit property "hasChildNodes()" with the proper type
-PASS Node interface: element must inherit property "childNodes" with the proper type
-PASS Node interface: element must inherit property "firstChild" with the proper type
-PASS Node interface: element must inherit property "lastChild" with the proper type
-PASS Node interface: element must inherit property "previousSibling" with the proper type
-PASS Node interface: element must inherit property "nextSibling" with the proper type
-PASS Node interface: element must inherit property "nodeValue" with the proper type
-PASS Node interface: element must inherit property "textContent" with the proper type
-PASS Node interface: element must inherit property "normalize()" with the proper type
-PASS Node interface: element must inherit property "cloneNode(boolean)" with the proper type
-PASS Node interface: calling cloneNode(boolean) on element with too few arguments must throw TypeError
-PASS Node interface: element must inherit property "isEqualNode(Node)" with the proper type
-PASS Node interface: calling isEqualNode(Node) on element with too few arguments must throw TypeError
-PASS Node interface: element must inherit property "isSameNode(Node)" with the proper type
-PASS Node interface: calling isSameNode(Node) on element with too few arguments must throw TypeError
-PASS Node interface: element must inherit property "DOCUMENT_POSITION_DISCONNECTED" with the proper type
-PASS Node interface: element must inherit property "DOCUMENT_POSITION_PRECEDING" with the proper type
-PASS Node interface: element must inherit property "DOCUMENT_POSITION_FOLLOWING" with the proper type
-PASS Node interface: element must inherit property "DOCUMENT_POSITION_CONTAINS" with the proper type
-PASS Node interface: element must inherit property "DOCUMENT_POSITION_CONTAINED_BY" with the proper type
-PASS Node interface: element must inherit property "DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC" with the proper type
-PASS Node interface: element must inherit property "compareDocumentPosition(Node)" with the proper type
-PASS Node interface: calling compareDocumentPosition(Node) on element with too few arguments must throw TypeError
-PASS Node interface: element must inherit property "contains(Node)" with the proper type
-PASS Node interface: calling contains(Node) on element with too few arguments must throw TypeError
-PASS Node interface: element must inherit property "lookupPrefix(DOMString)" with the proper type
-PASS Node interface: calling lookupPrefix(DOMString) on element with too few arguments must throw TypeError
-PASS Node interface: element must inherit property "lookupNamespaceURI(DOMString)" with the proper type
-PASS Node interface: calling lookupNamespaceURI(DOMString) on element with too few arguments must throw TypeError
-PASS Node interface: element must inherit property "isDefaultNamespace(DOMString)" with the proper type
-PASS Node interface: calling isDefaultNamespace(DOMString) on element with too few arguments must throw TypeError
-PASS Node interface: element must inherit property "insertBefore(Node, Node)" with the proper type
-PASS Node interface: calling insertBefore(Node, Node) on element with too few arguments must throw TypeError
-PASS Node interface: element must inherit property "appendChild(Node)" with the proper type
-PASS Node interface: calling appendChild(Node) on element with too few arguments must throw TypeError
-PASS Node interface: element must inherit property "replaceChild(Node, Node)" with the proper type
-PASS Node interface: calling replaceChild(Node, Node) on element with too few arguments must throw TypeError
-PASS Node interface: element must inherit property "removeChild(Node)" with the proper type
-PASS Node interface: calling removeChild(Node) on element with too few arguments must throw TypeError
-PASS EventTarget interface: element must inherit property "addEventListener(DOMString, EventListener, [object Object],[object Object])" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener, [object Object],[object Object]) on element with too few arguments must throw TypeError
-PASS EventTarget interface: element must inherit property "removeEventListener(DOMString, EventListener, [object Object],[object Object])" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener, [object Object],[object Object]) 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 Unscopable handled correctly for length property on NamedNodeMap
-PASS NamedNodeMap interface: operation item(unsigned long)
-PASS Unscopable handled correctly for item(unsigned long) on NamedNodeMap
-PASS NamedNodeMap interface: operation getNamedItem(DOMString)
-PASS Unscopable handled correctly for getNamedItem(DOMString) on NamedNodeMap
-PASS NamedNodeMap interface: operation getNamedItemNS(DOMString, DOMString)
-PASS Unscopable handled correctly for getNamedItemNS(DOMString, DOMString) on NamedNodeMap
-PASS NamedNodeMap interface: operation setNamedItem(Attr)
-PASS Unscopable handled correctly for setNamedItem(Attr) on NamedNodeMap
-PASS NamedNodeMap interface: operation setNamedItemNS(Attr)
-PASS Unscopable handled correctly for setNamedItemNS(Attr) on NamedNodeMap
-PASS NamedNodeMap interface: operation removeNamedItem(DOMString)
-PASS Unscopable handled correctly for removeNamedItem(DOMString) on NamedNodeMap
-PASS NamedNodeMap interface: operation removeNamedItemNS(DOMString, DOMString)
-PASS Unscopable handled correctly for removeNamedItemNS(DOMString, DOMString) on NamedNodeMap
-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 Unscopable handled correctly for namespaceURI property on Attr
-PASS Attr interface: attribute prefix
-PASS Unscopable handled correctly for prefix property on Attr
-PASS Attr interface: attribute localName
-PASS Unscopable handled correctly for localName property on Attr
-PASS Attr interface: attribute name
-PASS Unscopable handled correctly for name property on Attr
-PASS Attr interface: attribute value
-PASS Unscopable handled correctly for value property on Attr
-PASS Attr interface: attribute ownerElement
-PASS Unscopable handled correctly for ownerElement property on Attr
-PASS Attr interface: attribute specified
-PASS Unscopable handled correctly for specified property on Attr
-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 Node interface: document.querySelector("[id]").attributes[0] must inherit property "ELEMENT_NODE" with the proper type
-PASS Node interface: document.querySelector("[id]").attributes[0] must inherit property "ATTRIBUTE_NODE" with the proper type
-PASS Node interface: document.querySelector("[id]").attributes[0] must inherit property "TEXT_NODE" with the proper type
-PASS Node interface: document.querySelector("[id]").attributes[0] must inherit property "CDATA_SECTION_NODE" with the proper type
-PASS Node interface: document.querySelector("[id]").attributes[0] must inherit property "ENTITY_REFERENCE_NODE" with the proper type
-PASS Node interface: document.querySelector("[id]").attributes[0] must inherit property "ENTITY_NODE" with the proper type
-PASS Node interface: document.querySelector("[id]").attributes[0] must inherit property "PROCESSING_INSTRUCTION_NODE" with the proper type
-PASS Node interface: document.querySelector("[id]").attributes[0] must inherit property "COMMENT_NODE" with the proper type
-PASS Node interface: document.querySelector("[id]").attributes[0] must inherit property "DOCUMENT_NODE" with the proper type
-PASS Node interface: document.querySelector("[id]").attributes[0] must inherit property "DOCUMENT_TYPE_NODE" with the proper type
-PASS Node interface: document.querySelector("[id]").attributes[0] must inherit property "DOCUMENT_FRAGMENT_NODE" with the proper type
-PASS Node interface: document.querySelector("[id]").attributes[0] must inherit property "NOTATION_NODE" with the proper type
-PASS Node interface: document.querySelector("[id]").attributes[0] must inherit property "nodeType" with the proper type
-PASS Node interface: document.querySelector("[id]").attributes[0] must inherit property "nodeName" with the proper type
-PASS Node interface: document.querySelector("[id]").attributes[0] must inherit property "baseURI" with the proper type
-PASS Node interface: document.querySelector("[id]").attributes[0] must inherit property "isConnected" with the proper type
-PASS Node interface: document.querySelector("[id]").attributes[0] must inherit property "ownerDocument" with the proper type
-PASS Node interface: document.querySelector("[id]").attributes[0] must inherit property "getRootNode(GetRootNodeOptions)" with the proper type
-PASS Node interface: calling getRootNode(GetRootNodeOptions) on document.querySelector("[id]").attributes[0] with too few arguments must throw TypeError
-PASS Node interface: document.querySelector("[id]").attributes[0] must inherit property "parentNode" with the proper type
-PASS Node interface: document.querySelector("[id]").attributes[0] must inherit property "parentElement" with the proper type
-PASS Node interface: document.querySelector("[id]").attributes[0] must inherit property "hasChildNodes()" with the proper type
-PASS Node interface: document.querySelector("[id]").attributes[0] must inherit property "childNodes" with the proper type
-PASS Node interface: document.querySelector("[id]").attributes[0] must inherit property "firstChild" with the proper type
-PASS Node interface: document.querySelector("[id]").attributes[0] must inherit property "lastChild" with the proper type
-PASS Node interface: document.querySelector("[id]").attributes[0] must inherit property "previousSibling" with the proper type
-PASS Node interface: document.querySelector("[id]").attributes[0] must inherit property "nextSibling" with the proper type
-PASS Node interface: document.querySelector("[id]").attributes[0] must inherit property "nodeValue" with the proper type
-PASS Node interface: document.querySelector("[id]").attributes[0] must inherit property "textContent" with the proper type
-PASS Node interface: document.querySelector("[id]").attributes[0] must inherit property "normalize()" with the proper type
-PASS Node interface: document.querySelector("[id]").attributes[0] must inherit property "cloneNode(boolean)" with the proper type
-PASS Node interface: calling cloneNode(boolean) on document.querySelector("[id]").attributes[0] with too few arguments must throw TypeError
-PASS Node interface: document.querySelector("[id]").attributes[0] must inherit property "isEqualNode(Node)" with the proper type
-PASS Node interface: calling isEqualNode(Node) on document.querySelector("[id]").attributes[0] with too few arguments must throw TypeError
-PASS Node interface: document.querySelector("[id]").attributes[0] must inherit property "isSameNode(Node)" with the proper type
-PASS Node interface: calling isSameNode(Node) on document.querySelector("[id]").attributes[0] with too few arguments must throw TypeError
-PASS Node interface: document.querySelector("[id]").attributes[0] must inherit property "DOCUMENT_POSITION_DISCONNECTED" with the proper type
-PASS Node interface: document.querySelector("[id]").attributes[0] must inherit property "DOCUMENT_POSITION_PRECEDING" with the proper type
-PASS Node interface: document.querySelector("[id]").attributes[0] must inherit property "DOCUMENT_POSITION_FOLLOWING" with the proper type
-PASS Node interface: document.querySelector("[id]").attributes[0] must inherit property "DOCUMENT_POSITION_CONTAINS" with the proper type
-PASS Node interface: document.querySelector("[id]").attributes[0] must inherit property "DOCUMENT_POSITION_CONTAINED_BY" with the proper type
-PASS Node interface: document.querySelector("[id]").attributes[0] must inherit property "DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC" with the proper type
-PASS Node interface: document.querySelector("[id]").attributes[0] must inherit property "compareDocumentPosition(Node)" with the proper type
-PASS Node interface: calling compareDocumentPosition(Node) on document.querySelector("[id]").attributes[0] with too few arguments must throw TypeError
-PASS Node interface: document.querySelector("[id]").attributes[0] must inherit property "contains(Node)" with the proper type
-PASS Node interface: calling contains(Node) on document.querySelector("[id]").attributes[0] with too few arguments must throw TypeError
-PASS Node interface: document.querySelector("[id]").attributes[0] must inherit property "lookupPrefix(DOMString)" with the proper type
-PASS Node interface: calling lookupPrefix(DOMString) on document.querySelector("[id]").attributes[0] with too few arguments must throw TypeError
-PASS Node interface: document.querySelector("[id]").attributes[0] must inherit property "lookupNamespaceURI(DOMString)" with the proper type
-PASS Node interface: calling lookupNamespaceURI(DOMString) on document.querySelector("[id]").attributes[0] with too few arguments must throw TypeError
-PASS Node interface: document.querySelector("[id]").attributes[0] must inherit property "isDefaultNamespace(DOMString)" with the proper type
-PASS Node interface: calling isDefaultNamespace(DOMString) on document.querySelector("[id]").attributes[0] with too few arguments must throw TypeError
-PASS Node interface: document.querySelector("[id]").attributes[0] must inherit property "insertBefore(Node, Node)" with the proper type
-PASS Node interface: calling insertBefore(Node, Node) on document.querySelector("[id]").attributes[0] with too few arguments must throw TypeError
-PASS Node interface: document.querySelector("[id]").attributes[0] must inherit property "appendChild(Node)" with the proper type
-PASS Node interface: calling appendChild(Node) on document.querySelector("[id]").attributes[0] with too few arguments must throw TypeError
-PASS Node interface: document.querySelector("[id]").attributes[0] must inherit property "replaceChild(Node, Node)" with the proper type
-PASS Node interface: calling replaceChild(Node, Node) on document.querySelector("[id]").attributes[0] with too few arguments must throw TypeError
-PASS Node interface: document.querySelector("[id]").attributes[0] must inherit property "removeChild(Node)" with the proper type
-PASS Node interface: calling removeChild(Node) on document.querySelector("[id]").attributes[0] with too few arguments must throw TypeError
-PASS EventTarget interface: document.querySelector("[id]").attributes[0] must inherit property "addEventListener(DOMString, EventListener, [object Object],[object Object])" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener, [object Object],[object Object]) 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, [object Object],[object Object])" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener, [object Object],[object Object]) 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
-FAIL CharacterData interface: existence and properties of interface prototype object's @@unscopables property assert_false: CharacterData.prototype[Symbol.unscopables] should not be writable expected false got true
-PASS CharacterData interface: attribute data
-PASS Unscopable handled correctly for data property on CharacterData
-PASS CharacterData interface: attribute length
-PASS Unscopable handled correctly for length property on CharacterData
-PASS CharacterData interface: operation substringData(unsigned long, unsigned long)
-PASS Unscopable handled correctly for substringData(unsigned long, unsigned long) on CharacterData
-PASS CharacterData interface: operation appendData(DOMString)
-PASS Unscopable handled correctly for appendData(DOMString) on CharacterData
-PASS CharacterData interface: operation insertData(unsigned long, DOMString)
-PASS Unscopable handled correctly for insertData(unsigned long, DOMString) on CharacterData
-PASS CharacterData interface: operation deleteData(unsigned long, unsigned long)
-PASS Unscopable handled correctly for deleteData(unsigned long, unsigned long) on CharacterData
-PASS CharacterData interface: operation replaceData(unsigned long, unsigned long, DOMString)
-PASS Unscopable handled correctly for replaceData(unsigned long, unsigned long, DOMString) on CharacterData
-PASS CharacterData interface: attribute previousElementSibling
-PASS Unscopable handled correctly for previousElementSibling property on CharacterData
-PASS CharacterData interface: attribute nextElementSibling
-PASS Unscopable handled correctly for nextElementSibling property on CharacterData
-PASS CharacterData interface: operation before([object Object],[object Object])
-PASS Unscopable handled correctly for before([object Object],[object Object]) on CharacterData
-PASS CharacterData interface: operation after([object Object],[object Object])
-PASS Unscopable handled correctly for after([object Object],[object Object]) on CharacterData
-PASS CharacterData interface: operation replaceWith([object Object],[object Object])
-PASS Unscopable handled correctly for replaceWith([object Object],[object Object]) on CharacterData
-PASS CharacterData interface: operation remove()
-PASS Unscopable handled correctly for remove() on CharacterData
-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 Unscopable handled correctly for splitText(unsigned long) on Text
-PASS Text interface: attribute wholeText
-PASS Unscopable handled correctly for wholeText property on Text
-PASS Text interface: attribute assignedSlot
-PASS Unscopable handled correctly for assignedSlot property on Text
-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([object Object],[object Object])" with the proper type
-PASS CharacterData interface: calling before([object Object],[object Object]) on document.createTextNode("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createTextNode("abc") must inherit property "after([object Object],[object Object])" with the proper type
-PASS CharacterData interface: calling after([object Object],[object Object]) on document.createTextNode("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createTextNode("abc") must inherit property "replaceWith([object Object],[object Object])" with the proper type
-PASS CharacterData interface: calling replaceWith([object Object],[object Object]) 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 Node interface: document.createTextNode("abc") must inherit property "ELEMENT_NODE" with the proper type
-PASS Node interface: document.createTextNode("abc") must inherit property "ATTRIBUTE_NODE" with the proper type
-PASS Node interface: document.createTextNode("abc") must inherit property "TEXT_NODE" with the proper type
-PASS Node interface: document.createTextNode("abc") must inherit property "CDATA_SECTION_NODE" with the proper type
-PASS Node interface: document.createTextNode("abc") must inherit property "ENTITY_REFERENCE_NODE" with the proper type
-PASS Node interface: document.createTextNode("abc") must inherit property "ENTITY_NODE" with the proper type
-PASS Node interface: document.createTextNode("abc") must inherit property "PROCESSING_INSTRUCTION_NODE" with the proper type
-PASS Node interface: document.createTextNode("abc") must inherit property "COMMENT_NODE" with the proper type
-PASS Node interface: document.createTextNode("abc") must inherit property "DOCUMENT_NODE" with the proper type
-PASS Node interface: document.createTextNode("abc") must inherit property "DOCUMENT_TYPE_NODE" with the proper type
-PASS Node interface: document.createTextNode("abc") must inherit property "DOCUMENT_FRAGMENT_NODE" with the proper type
-PASS Node interface: document.createTextNode("abc") must inherit property "NOTATION_NODE" with the proper type
-PASS Node interface: document.createTextNode("abc") must inherit property "nodeType" with the proper type
-PASS Node interface: document.createTextNode("abc") must inherit property "nodeName" with the proper type
-PASS Node interface: document.createTextNode("abc") must inherit property "baseURI" with the proper type
-PASS Node interface: document.createTextNode("abc") must inherit property "isConnected" with the proper type
-PASS Node interface: document.createTextNode("abc") must inherit property "ownerDocument" with the proper type
-PASS Node interface: document.createTextNode("abc") must inherit property "getRootNode(GetRootNodeOptions)" with the proper type
-PASS Node interface: calling getRootNode(GetRootNodeOptions) on document.createTextNode("abc") with too few arguments must throw TypeError
-PASS Node interface: document.createTextNode("abc") must inherit property "parentNode" with the proper type
-PASS Node interface: document.createTextNode("abc") must inherit property "parentElement" with the proper type
-PASS Node interface: document.createTextNode("abc") must inherit property "hasChildNodes()" with the proper type
-PASS Node interface: document.createTextNode("abc") must inherit property "childNodes" with the proper type
-PASS Node interface: document.createTextNode("abc") must inherit property "firstChild" with the proper type
-PASS Node interface: document.createTextNode("abc") must inherit property "lastChild" with the proper type
-PASS Node interface: document.createTextNode("abc") must inherit property "previousSibling" with the proper type
-PASS Node interface: document.createTextNode("abc") must inherit property "nextSibling" with the proper type
-PASS Node interface: document.createTextNode("abc") must inherit property "nodeValue" with the proper type
-PASS Node interface: document.createTextNode("abc") must inherit property "textContent" with the proper type
-PASS Node interface: document.createTextNode("abc") must inherit property "normalize()" with the proper type
-PASS Node interface: document.createTextNode("abc") must inherit property "cloneNode(boolean)" with the proper type
-PASS Node interface: calling cloneNode(boolean) on document.createTextNode("abc") with too few arguments must throw TypeError
-PASS Node interface: document.createTextNode("abc") must inherit property "isEqualNode(Node)" with the proper type
-PASS Node interface: calling isEqualNode(Node) on document.createTextNode("abc") with too few arguments must throw TypeError
-PASS Node interface: document.createTextNode("abc") must inherit property "isSameNode(Node)" with the proper type
-PASS Node interface: calling isSameNode(Node) on document.createTextNode("abc") with too few arguments must throw TypeError
-PASS Node interface: document.createTextNode("abc") must inherit property "DOCUMENT_POSITION_DISCONNECTED" with the proper type
-PASS Node interface: document.createTextNode("abc") must inherit property "DOCUMENT_POSITION_PRECEDING" with the proper type
-PASS Node interface: document.createTextNode("abc") must inherit property "DOCUMENT_POSITION_FOLLOWING" with the proper type
-PASS Node interface: document.createTextNode("abc") must inherit property "DOCUMENT_POSITION_CONTAINS" with the proper type
-PASS Node interface: document.createTextNode("abc") must inherit property "DOCUMENT_POSITION_CONTAINED_BY" with the proper type
-PASS Node interface: document.createTextNode("abc") must inherit property "DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC" with the proper type
-PASS Node interface: document.createTextNode("abc") must inherit property "compareDocumentPosition(Node)" with the proper type
-PASS Node interface: calling compareDocumentPosition(Node) on document.createTextNode("abc") with too few arguments must throw TypeError
-PASS Node interface: document.createTextNode("abc") must inherit property "contains(Node)" with the proper type
-PASS Node interface: calling contains(Node) on document.createTextNode("abc") with too few arguments must throw TypeError
-PASS Node interface: document.createTextNode("abc") must inherit property "lookupPrefix(DOMString)" with the proper type
-PASS Node interface: calling lookupPrefix(DOMString) on document.createTextNode("abc") with too few arguments must throw TypeError
-PASS Node interface: document.createTextNode("abc") must inherit property "lookupNamespaceURI(DOMString)" with the proper type
-PASS Node interface: calling lookupNamespaceURI(DOMString) on document.createTextNode("abc") with too few arguments must throw TypeError
-PASS Node interface: document.createTextNode("abc") must inherit property "isDefaultNamespace(DOMString)" with the proper type
-PASS Node interface: calling isDefaultNamespace(DOMString) on document.createTextNode("abc") with too few arguments must throw TypeError
-PASS Node interface: document.createTextNode("abc") must inherit property "insertBefore(Node, Node)" with the proper type
-PASS Node interface: calling insertBefore(Node, Node) on document.createTextNode("abc") with too few arguments must throw TypeError
-PASS Node interface: document.createTextNode("abc") must inherit property "appendChild(Node)" with the proper type
-PASS Node interface: calling appendChild(Node) on document.createTextNode("abc") with too few arguments must throw TypeError
-PASS Node interface: document.createTextNode("abc") must inherit property "replaceChild(Node, Node)" with the proper type
-PASS Node interface: calling replaceChild(Node, Node) on document.createTextNode("abc") with too few arguments must throw TypeError
-PASS Node interface: document.createTextNode("abc") must inherit property "removeChild(Node)" with the proper type
-PASS Node interface: calling removeChild(Node) on document.createTextNode("abc") with too few arguments must throw TypeError
-PASS EventTarget interface: document.createTextNode("abc") must inherit property "addEventListener(DOMString, EventListener, [object Object],[object Object])" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener, [object Object],[object Object]) on document.createTextNode("abc") with too few arguments must throw TypeError
-PASS EventTarget interface: document.createTextNode("abc") must inherit property "removeEventListener(DOMString, EventListener, [object Object],[object Object])" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener, [object Object],[object Object]) 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 Unscopable handled correctly for target property on ProcessingInstruction
-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([object Object],[object Object])" with the proper type
-PASS CharacterData interface: calling before([object Object],[object Object]) on xmlDoc.createProcessingInstruction("abc", "def") with too few arguments must throw TypeError
-PASS CharacterData interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "after([object Object],[object Object])" with the proper type
-PASS CharacterData interface: calling after([object Object],[object Object]) on xmlDoc.createProcessingInstruction("abc", "def") with too few arguments must throw TypeError
-PASS CharacterData interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "replaceWith([object Object],[object Object])" with the proper type
-PASS CharacterData interface: calling replaceWith([object Object],[object Object]) 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 Node interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "ELEMENT_NODE" with the proper type
-PASS Node interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "ATTRIBUTE_NODE" with the proper type
-PASS Node interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "TEXT_NODE" with the proper type
-PASS Node interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "CDATA_SECTION_NODE" with the proper type
-PASS Node interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "ENTITY_REFERENCE_NODE" with the proper type
-PASS Node interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "ENTITY_NODE" with the proper type
-PASS Node interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "PROCESSING_INSTRUCTION_NODE" with the proper type
-PASS Node interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "COMMENT_NODE" with the proper type
-PASS Node interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "DOCUMENT_NODE" with the proper type
-PASS Node interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "DOCUMENT_TYPE_NODE" with the proper type
-PASS Node interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "DOCUMENT_FRAGMENT_NODE" with the proper type
-PASS Node interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "NOTATION_NODE" with the proper type
-PASS Node interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "nodeType" with the proper type
-PASS Node interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "nodeName" with the proper type
-PASS Node interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "baseURI" with the proper type
-PASS Node interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "isConnected" with the proper type
-PASS Node interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "ownerDocument" with the proper type
-PASS Node interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "getRootNode(GetRootNodeOptions)" with the proper type
-PASS Node interface: calling getRootNode(GetRootNodeOptions) on xmlDoc.createProcessingInstruction("abc", "def") with too few arguments must throw TypeError
-PASS Node interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "parentNode" with the proper type
-PASS Node interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "parentElement" with the proper type
-PASS Node interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "hasChildNodes()" with the proper type
-PASS Node interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "childNodes" with the proper type
-PASS Node interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "firstChild" with the proper type
-PASS Node interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "lastChild" with the proper type
-PASS Node interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "previousSibling" with the proper type
-PASS Node interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "nextSibling" with the proper type
-PASS Node interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "nodeValue" with the proper type
-PASS Node interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "textContent" with the proper type
-PASS Node interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "normalize()" with the proper type
-PASS Node interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "cloneNode(boolean)" with the proper type
-PASS Node interface: calling cloneNode(boolean) on xmlDoc.createProcessingInstruction("abc", "def") with too few arguments must throw TypeError
-PASS Node interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "isEqualNode(Node)" with the proper type
-PASS Node interface: calling isEqualNode(Node) on xmlDoc.createProcessingInstruction("abc", "def") with too few arguments must throw TypeError
-PASS Node interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "isSameNode(Node)" with the proper type
-PASS Node interface: calling isSameNode(Node) on xmlDoc.createProcessingInstruction("abc", "def") with too few arguments must throw TypeError
-PASS Node interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "DOCUMENT_POSITION_DISCONNECTED" with the proper type
-PASS Node interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "DOCUMENT_POSITION_PRECEDING" with the proper type
-PASS Node interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "DOCUMENT_POSITION_FOLLOWING" with the proper type
-PASS Node interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "DOCUMENT_POSITION_CONTAINS" with the proper type
-PASS Node interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "DOCUMENT_POSITION_CONTAINED_BY" with the proper type
-PASS Node interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC" with the proper type
-PASS Node interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "compareDocumentPosition(Node)" with the proper type
-PASS Node interface: calling compareDocumentPosition(Node) on xmlDoc.createProcessingInstruction("abc", "def") with too few arguments must throw TypeError
-PASS Node interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "contains(Node)" with the proper type
-PASS Node interface: calling contains(Node) on xmlDoc.createProcessingInstruction("abc", "def") with too few arguments must throw TypeError
-PASS Node interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "lookupPrefix(DOMString)" with the proper type
-PASS Node interface: calling lookupPrefix(DOMString) on xmlDoc.createProcessingInstruction("abc", "def") with too few arguments must throw TypeError
-PASS Node interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "lookupNamespaceURI(DOMString)" with the proper type
-PASS Node interface: calling lookupNamespaceURI(DOMString) on xmlDoc.createProcessingInstruction("abc", "def") with too few arguments must throw TypeError
-PASS Node interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "isDefaultNamespace(DOMString)" with the proper type
-PASS Node interface: calling isDefaultNamespace(DOMString) on xmlDoc.createProcessingInstruction("abc", "def") with too few arguments must throw TypeError
-PASS Node interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "insertBefore(Node, Node)" with the proper type
-PASS Node interface: calling insertBefore(Node, Node) on xmlDoc.createProcessingInstruction("abc", "def") with too few arguments must throw TypeError
-PASS Node interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "appendChild(Node)" with the proper type
-PASS Node interface: calling appendChild(Node) on xmlDoc.createProcessingInstruction("abc", "def") with too few arguments must throw TypeError
-PASS Node interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "replaceChild(Node, Node)" with the proper type
-PASS Node interface: calling replaceChild(Node, Node) on xmlDoc.createProcessingInstruction("abc", "def") with too few arguments must throw TypeError
-PASS Node interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "removeChild(Node)" with the proper type
-PASS Node interface: calling removeChild(Node) on xmlDoc.createProcessingInstruction("abc", "def") with too few arguments must throw TypeError
-PASS EventTarget interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "addEventListener(DOMString, EventListener, [object Object],[object Object])" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener, [object Object],[object Object]) 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, [object Object],[object Object])" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener, [object Object],[object Object]) 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([object Object],[object Object])" with the proper type
-PASS CharacterData interface: calling before([object Object],[object Object]) on document.createComment("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createComment("abc") must inherit property "after([object Object],[object Object])" with the proper type
-PASS CharacterData interface: calling after([object Object],[object Object]) on document.createComment("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createComment("abc") must inherit property "replaceWith([object Object],[object Object])" with the proper type
-PASS CharacterData interface: calling replaceWith([object Object],[object Object]) 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 Node interface: document.createComment("abc") must inherit property "ELEMENT_NODE" with the proper type
-PASS Node interface: document.createComment("abc") must inherit property "ATTRIBUTE_NODE" with the proper type
-PASS Node interface: document.createComment("abc") must inherit property "TEXT_NODE" with the proper type
-PASS Node interface: document.createComment("abc") must inherit property "CDATA_SECTION_NODE" with the proper type
-PASS Node interface: document.createComment("abc") must inherit property "ENTITY_REFERENCE_NODE" with the proper type
-PASS Node interface: document.createComment("abc") must inherit property "ENTITY_NODE" with the proper type
-PASS Node interface: document.createComment("abc") must inherit property "PROCESSING_INSTRUCTION_NODE" with the proper type
-PASS Node interface: document.createComment("abc") must inherit property "COMMENT_NODE" with the proper type
-PASS Node interface: document.createComment("abc") must inherit property "DOCUMENT_NODE" with the proper type
-PASS Node interface: document.createComment("abc") must inherit property "DOCUMENT_TYPE_NODE" with the proper type
-PASS Node interface: document.createComment("abc") must inherit property "DOCUMENT_FRAGMENT_NODE" with the proper type
-PASS Node interface: document.createComment("abc") must inherit property "NOTATION_NODE" with the proper type
-PASS Node interface: document.createComment("abc") must inherit property "nodeType" with the proper type
-PASS Node interface: document.createComment("abc") must inherit property "nodeName" with the proper type
-PASS Node interface: document.createComment("abc") must inherit property "baseURI" with the proper type
-PASS Node interface: document.createComment("abc") must inherit property "isConnected" with the proper type
-PASS Node interface: document.createComment("abc") must inherit property "ownerDocument" with the proper type
-PASS Node interface: document.createComment("abc") must inherit property "getRootNode(GetRootNodeOptions)" with the proper type
-PASS Node interface: calling getRootNode(GetRootNodeOptions) on document.createComment("abc") with too few arguments must throw TypeError
-PASS Node interface: document.createComment("abc") must inherit property "parentNode" with the proper type
-PASS Node interface: document.createComment("abc") must inherit property "parentElement" with the proper type
-PASS Node interface: document.createComment("abc") must inherit property "hasChildNodes()" with the proper type
-PASS Node interface: document.createComment("abc") must inherit property "childNodes" with the proper type
-PASS Node interface: document.createComment("abc") must inherit property "firstChild" with the proper type
-PASS Node interface: document.createComment("abc") must inherit property "lastChild" with the proper type
-PASS Node interface: document.createComment("abc") must inherit property "previousSibling" with the proper type
-PASS Node interface: document.createComment("abc") must inherit property "nextSibling" with the proper type
-PASS Node interface: document.createComment("abc") must inherit property "nodeValue" with the proper type
-PASS Node interface: document.createComment("abc") must inherit property "textContent" with the proper type
-PASS Node interface: document.createComment("abc") must inherit property "normalize()" with the proper type
-PASS Node interface: document.createComment("abc") must inherit property "cloneNode(boolean)" with the proper type
-PASS Node interface: calling cloneNode(boolean) on document.createComment("abc") with too few arguments must throw TypeError
-PASS Node interface: document.createComment("abc") must inherit property "isEqualNode(Node)" with the proper type
-PASS Node interface: calling isEqualNode(Node) on document.createComment("abc") with too few arguments must throw TypeError
-PASS Node interface: document.createComment("abc") must inherit property "isSameNode(Node)" with the proper type
-PASS Node interface: calling isSameNode(Node) on document.createComment("abc") with too few arguments must throw TypeError
-PASS Node interface: document.createComment("abc") must inherit property "DOCUMENT_POSITION_DISCONNECTED" with the proper type
-PASS Node interface: document.createComment("abc") must inherit property "DOCUMENT_POSITION_PRECEDING" with the proper type
-PASS Node interface: document.createComment("abc") must inherit property "DOCUMENT_POSITION_FOLLOWING" with the proper type
-PASS Node interface: document.createComment("abc") must inherit property "DOCUMENT_POSITION_CONTAINS" with the proper type
-PASS Node interface: document.createComment("abc") must inherit property "DOCUMENT_POSITION_CONTAINED_BY" with the proper type
-PASS Node interface: document.createComment("abc") must inherit property "DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC" with the proper type
-PASS Node interface: document.createComment("abc") must inherit property "compareDocumentPosition(Node)" with the proper type
-PASS Node interface: calling compareDocumentPosition(Node) on document.createComment("abc") with too few arguments must throw TypeError
-PASS Node interface: document.createComment("abc") must inherit property "contains(Node)" with the proper type
-PASS Node interface: calling contains(Node) on document.createComment("abc") with too few arguments must throw TypeError
-PASS Node interface: document.createComment("abc") must inherit property "lookupPrefix(DOMString)" with the proper type
-PASS Node interface: calling lookupPrefix(DOMString) on document.createComment("abc") with too few arguments must throw TypeError
-PASS Node interface: document.createComment("abc") must inherit property "lookupNamespaceURI(DOMString)" with the proper type
-PASS Node interface: calling lookupNamespaceURI(DOMString) on document.createComment("abc") with too few arguments must throw TypeError
-PASS Node interface: document.createComment("abc") must inherit property "isDefaultNamespace(DOMString)" with the proper type
-PASS Node interface: calling isDefaultNamespace(DOMString) on document.createComment("abc") with too few arguments must throw TypeError
-PASS Node interface: document.createComment("abc") must inherit property "insertBefore(Node, Node)" with the proper type
-PASS Node interface: calling insertBefore(Node, Node) on document.createComment("abc") with too few arguments must throw TypeError
-PASS Node interface: document.createComment("abc") must inherit property "appendChild(Node)" with the proper type
-PASS Node interface: calling appendChild(Node) on document.createComment("abc") with too few arguments must throw TypeError
-PASS Node interface: document.createComment("abc") must inherit property "replaceChild(Node, Node)" with the proper type
-PASS Node interface: calling replaceChild(Node, Node) on document.createComment("abc") with too few arguments must throw TypeError
-PASS Node interface: document.createComment("abc") must inherit property "removeChild(Node)" with the proper type
-PASS Node interface: calling removeChild(Node) on document.createComment("abc") with too few arguments must throw TypeError
-PASS EventTarget interface: document.createComment("abc") must inherit property "addEventListener(DOMString, EventListener, [object Object],[object Object])" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener, [object Object],[object Object]) on document.createComment("abc") with too few arguments must throw TypeError
-PASS EventTarget interface: document.createComment("abc") must inherit property "removeEventListener(DOMString, EventListener, [object Object],[object Object])" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener, [object Object],[object Object]) 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 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 startContainer
-PASS Unscopable handled correctly for startContainer property on Range
-PASS Range interface: attribute startOffset
-PASS Unscopable handled correctly for startOffset property on Range
-PASS Range interface: attribute endContainer
-PASS Unscopable handled correctly for endContainer property on Range
-PASS Range interface: attribute endOffset
-PASS Unscopable handled correctly for endOffset property on Range
-PASS Range interface: attribute collapsed
-PASS Unscopable handled correctly for collapsed property on Range
-PASS Range interface: attribute commonAncestorContainer
-PASS Unscopable handled correctly for commonAncestorContainer property on Range
-PASS Range interface: operation setStart(Node, unsigned long)
-PASS Unscopable handled correctly for setStart(Node, unsigned long) on Range
-PASS Range interface: operation setEnd(Node, unsigned long)
-PASS Unscopable handled correctly for setEnd(Node, unsigned long) on Range
-PASS Range interface: operation setStartBefore(Node)
-PASS Unscopable handled correctly for setStartBefore(Node) on Range
-PASS Range interface: operation setStartAfter(Node)
-PASS Unscopable handled correctly for setStartAfter(Node) on Range
-PASS Range interface: operation setEndBefore(Node)
-PASS Unscopable handled correctly for setEndBefore(Node) on Range
-PASS Range interface: operation setEndAfter(Node)
-PASS Unscopable handled correctly for setEndAfter(Node) on Range
-PASS Range interface: operation collapse(boolean)
-PASS Unscopable handled correctly for collapse(boolean) on Range
-PASS Range interface: operation selectNode(Node)
-PASS Unscopable handled correctly for selectNode(Node) on Range
-PASS Range interface: operation selectNodeContents(Node)
-PASS Unscopable handled correctly for selectNodeContents(Node) on Range
-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 Unscopable handled correctly for compareBoundaryPoints(unsigned short, Range) on Range
-PASS Range interface: operation deleteContents()
-PASS Unscopable handled correctly for deleteContents() on Range
-PASS Range interface: operation extractContents()
-PASS Unscopable handled correctly for extractContents() on Range
-PASS Range interface: operation cloneContents()
-PASS Unscopable handled correctly for cloneContents() on Range
-PASS Range interface: operation insertNode(Node)
-PASS Unscopable handled correctly for insertNode(Node) on Range
-PASS Range interface: operation surroundContents(Node)
-PASS Unscopable handled correctly for surroundContents(Node) on Range
-PASS Range interface: operation cloneRange()
-PASS Unscopable handled correctly for cloneRange() on Range
-PASS Range interface: operation detach()
-PASS Unscopable handled correctly for detach() on Range
-PASS Range interface: operation isPointInRange(Node, unsigned long)
-PASS Unscopable handled correctly for isPointInRange(Node, unsigned long) on Range
-PASS Range interface: operation comparePoint(Node, unsigned long)
-PASS Unscopable handled correctly for comparePoint(Node, unsigned long) on Range
-PASS Range interface: operation intersectsNode(Node)
-PASS Unscopable handled correctly for intersectsNode(Node) on Range
-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 "startContainer" with the proper type
-PASS Range interface: document.createRange() must inherit property "startOffset" with the proper type
-PASS Range interface: document.createRange() must inherit property "endContainer" with the proper type
-PASS Range interface: document.createRange() must inherit property "endOffset" with the proper type
-PASS Range interface: document.createRange() must inherit property "collapsed" with the proper type
-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(boolean)" with the proper type
-PASS Range interface: calling collapse(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 Range must be primary interface of detachedRange
-PASS Stringification of detachedRange
-PASS Range interface: detachedRange must inherit property "startContainer" with the proper type
-PASS Range interface: detachedRange must inherit property "startOffset" with the proper type
-PASS Range interface: detachedRange must inherit property "endContainer" with the proper type
-PASS Range interface: detachedRange must inherit property "endOffset" with the proper type
-PASS Range interface: detachedRange must inherit property "collapsed" with the proper type
-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(boolean)" with the proper type
-PASS Range interface: calling collapse(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 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 Unscopable handled correctly for root property on NodeIterator
-PASS NodeIterator interface: attribute referenceNode
-PASS Unscopable handled correctly for referenceNode property on NodeIterator
-PASS NodeIterator interface: attribute pointerBeforeReferenceNode
-PASS Unscopable handled correctly for pointerBeforeReferenceNode property on NodeIterator
-PASS NodeIterator interface: attribute whatToShow
-PASS Unscopable handled correctly for whatToShow property on NodeIterator
-PASS NodeIterator interface: attribute filter
-PASS Unscopable handled correctly for filter property on NodeIterator
-PASS NodeIterator interface: operation nextNode()
-PASS Unscopable handled correctly for nextNode() on NodeIterator
-PASS NodeIterator interface: operation previousNode()
-PASS Unscopable handled correctly for previousNode() on NodeIterator
-PASS NodeIterator interface: operation detach()
-PASS Unscopable handled correctly for detach() on NodeIterator
-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 Unscopable handled correctly for root property on TreeWalker
-PASS TreeWalker interface: attribute whatToShow
-PASS Unscopable handled correctly for whatToShow property on TreeWalker
-PASS TreeWalker interface: attribute filter
-PASS Unscopable handled correctly for filter property on TreeWalker
-PASS TreeWalker interface: attribute currentNode
-PASS Unscopable handled correctly for currentNode property on TreeWalker
-PASS TreeWalker interface: operation parentNode()
-PASS Unscopable handled correctly for parentNode() on TreeWalker
-PASS TreeWalker interface: operation firstChild()
-PASS Unscopable handled correctly for firstChild() on TreeWalker
-PASS TreeWalker interface: operation lastChild()
-PASS Unscopable handled correctly for lastChild() on TreeWalker
-PASS TreeWalker interface: operation previousSibling()
-PASS Unscopable handled correctly for previousSibling() on TreeWalker
-PASS TreeWalker interface: operation nextSibling()
-PASS Unscopable handled correctly for nextSibling() on TreeWalker
-PASS TreeWalker interface: operation previousNode()
-PASS Unscopable handled correctly for previousNode() on TreeWalker
-PASS TreeWalker interface: operation nextNode()
-PASS Unscopable handled correctly for nextNode() on TreeWalker
-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 Unscopable handled correctly for acceptNode(Node) on NodeFilter
-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 Unscopable handled correctly for length property on DOMTokenList
-PASS DOMTokenList interface: operation item(unsigned long)
-PASS Unscopable handled correctly for item(unsigned long) on DOMTokenList
-PASS DOMTokenList interface: operation contains(DOMString)
-PASS Unscopable handled correctly for contains(DOMString) on DOMTokenList
-PASS DOMTokenList interface: operation add(DOMString)
-PASS Unscopable handled correctly for add(DOMString) on DOMTokenList
-PASS DOMTokenList interface: operation remove(DOMString)
-PASS Unscopable handled correctly for remove(DOMString) on DOMTokenList
-PASS DOMTokenList interface: operation toggle(DOMString, boolean)
-PASS Unscopable handled correctly for toggle(DOMString, boolean) on DOMTokenList
-PASS DOMTokenList interface: operation replace(DOMString, DOMString)
-PASS Unscopable handled correctly for replace(DOMString, DOMString) on DOMTokenList
-PASS DOMTokenList interface: operation supports(DOMString)
-PASS Unscopable handled correctly for supports(DOMString) on DOMTokenList
-PASS DOMTokenList interface: attribute value
-PASS Unscopable handled correctly for value property on DOMTokenList
-PASS DOMTokenList interface: stringifier
-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, boolean)" with the proper type
-PASS DOMTokenList interface: calling toggle(DOMString, 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
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/entries-api/interfaces-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/entries-api/interfaces-expected.txt
deleted file mode 100644
index 275fe697..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/entries-api/interfaces-expected.txt
+++ /dev/null
@@ -1,96 +0,0 @@
-This is a testharness.js-based test.
-Found 92 tests; 49 PASS, 43 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS Entries API: IDL
-PASS File interface: attribute webkitRelativePath
-PASS Unscopable handled correctly for webkitRelativePath property on File
-PASS File interface: new File([], "example.txt") must inherit property "webkitRelativePath" with the proper type
-PASS HTMLInputElement interface: attribute webkitdirectory
-PASS Unscopable handled correctly for webkitdirectory property on HTMLInputElement
-PASS HTMLInputElement interface: attribute webkitEntries
-PASS Unscopable handled correctly for webkitEntries property on HTMLInputElement
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "webkitdirectory" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "webkitEntries" with the proper type
-PASS DataTransferItem interface: operation webkitGetAsEntry()
-PASS Unscopable handled correctly for webkitGetAsEntry() on DataTransferItem
-PASS ErrorCallback interface: existence and properties of interface object
-PASS ErrorCallback interface: existence and properties of interface prototype object
-PASS ErrorCallback interface: existence and properties of interface prototype object's "constructor" property
-PASS ErrorCallback interface: existence and properties of interface prototype object's @@unscopables property
-PASS ErrorCallback interface: operation handleEvent(DOMException)
-PASS Unscopable handled correctly for handleEvent(DOMException) on ErrorCallback
-FAIL FileSystemEntry interface: existence and properties of interface object assert_own_property: self does not have own property "FileSystemEntry" expected property "FileSystemEntry" missing
-FAIL FileSystemEntry interface object length assert_own_property: self does not have own property "FileSystemEntry" expected property "FileSystemEntry" missing
-FAIL FileSystemEntry interface object name assert_own_property: self does not have own property "FileSystemEntry" expected property "FileSystemEntry" missing
-FAIL FileSystemEntry interface: existence and properties of interface prototype object assert_own_property: self does not have own property "FileSystemEntry" expected property "FileSystemEntry" missing
-FAIL FileSystemEntry interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "FileSystemEntry" expected property "FileSystemEntry" missing
-FAIL FileSystemEntry interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "FileSystemEntry" expected property "FileSystemEntry" missing
-FAIL FileSystemEntry interface: attribute isFile assert_own_property: self does not have own property "FileSystemEntry" expected property "FileSystemEntry" missing
-PASS Unscopable handled correctly for isFile property on FileSystemEntry
-FAIL FileSystemEntry interface: attribute isDirectory assert_own_property: self does not have own property "FileSystemEntry" expected property "FileSystemEntry" missing
-PASS Unscopable handled correctly for isDirectory property on FileSystemEntry
-FAIL FileSystemEntry interface: attribute name assert_own_property: self does not have own property "FileSystemEntry" expected property "FileSystemEntry" missing
-PASS Unscopable handled correctly for name property on FileSystemEntry
-FAIL FileSystemEntry interface: attribute fullPath assert_own_property: self does not have own property "FileSystemEntry" expected property "FileSystemEntry" missing
-PASS Unscopable handled correctly for fullPath property on FileSystemEntry
-FAIL FileSystemEntry interface: attribute filesystem assert_own_property: self does not have own property "FileSystemEntry" expected property "FileSystemEntry" missing
-PASS Unscopable handled correctly for filesystem property on FileSystemEntry
-FAIL FileSystemEntry interface: operation getParent(FileSystemEntryCallback, ErrorCallback) assert_own_property: self does not have own property "FileSystemEntry" expected property "FileSystemEntry" missing
-PASS Unscopable handled correctly for getParent(FileSystemEntryCallback, ErrorCallback) on FileSystemEntry
-FAIL FileSystemDirectoryEntry interface: existence and properties of interface object assert_own_property: self does not have own property "FileSystemDirectoryEntry" expected property "FileSystemDirectoryEntry" missing
-FAIL FileSystemDirectoryEntry interface object length assert_own_property: self does not have own property "FileSystemDirectoryEntry" expected property "FileSystemDirectoryEntry" missing
-FAIL FileSystemDirectoryEntry interface object name assert_own_property: self does not have own property "FileSystemDirectoryEntry" expected property "FileSystemDirectoryEntry" missing
-FAIL FileSystemDirectoryEntry interface: existence and properties of interface prototype object assert_own_property: self does not have own property "FileSystemDirectoryEntry" expected property "FileSystemDirectoryEntry" missing
-FAIL FileSystemDirectoryEntry interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "FileSystemDirectoryEntry" expected property "FileSystemDirectoryEntry" missing
-FAIL FileSystemDirectoryEntry interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "FileSystemDirectoryEntry" expected property "FileSystemDirectoryEntry" missing
-FAIL FileSystemDirectoryEntry interface: operation createReader() assert_own_property: self does not have own property "FileSystemDirectoryEntry" expected property "FileSystemDirectoryEntry" missing
-PASS Unscopable handled correctly for createReader() on FileSystemDirectoryEntry
-FAIL FileSystemDirectoryEntry interface: operation getFile(USVString, FileSystemFlags, FileSystemEntryCallback, ErrorCallback) assert_own_property: self does not have own property "FileSystemDirectoryEntry" expected property "FileSystemDirectoryEntry" missing
-PASS Unscopable handled correctly for getFile(USVString, FileSystemFlags, FileSystemEntryCallback, ErrorCallback) on FileSystemDirectoryEntry
-FAIL FileSystemDirectoryEntry interface: operation getDirectory(USVString, FileSystemFlags, FileSystemEntryCallback, ErrorCallback) assert_own_property: self does not have own property "FileSystemDirectoryEntry" expected property "FileSystemDirectoryEntry" missing
-PASS Unscopable handled correctly for getDirectory(USVString, FileSystemFlags, FileSystemEntryCallback, ErrorCallback) on FileSystemDirectoryEntry
-PASS FileSystemEntryCallback interface: existence and properties of interface object
-PASS FileSystemEntryCallback interface: existence and properties of interface prototype object
-PASS FileSystemEntryCallback interface: existence and properties of interface prototype object's "constructor" property
-PASS FileSystemEntryCallback interface: existence and properties of interface prototype object's @@unscopables property
-PASS FileSystemEntryCallback interface: operation handleEvent(FileSystemEntry)
-PASS Unscopable handled correctly for handleEvent(FileSystemEntry) on FileSystemEntryCallback
-FAIL FileSystemDirectoryReader interface: existence and properties of interface object assert_own_property: self does not have own property "FileSystemDirectoryReader" expected property "FileSystemDirectoryReader" missing
-FAIL FileSystemDirectoryReader interface object length assert_own_property: self does not have own property "FileSystemDirectoryReader" expected property "FileSystemDirectoryReader" missing
-FAIL FileSystemDirectoryReader interface object name assert_own_property: self does not have own property "FileSystemDirectoryReader" expected property "FileSystemDirectoryReader" missing
-FAIL FileSystemDirectoryReader interface: existence and properties of interface prototype object assert_own_property: self does not have own property "FileSystemDirectoryReader" expected property "FileSystemDirectoryReader" missing
-FAIL FileSystemDirectoryReader interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "FileSystemDirectoryReader" expected property "FileSystemDirectoryReader" missing
-FAIL FileSystemDirectoryReader interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "FileSystemDirectoryReader" expected property "FileSystemDirectoryReader" missing
-FAIL FileSystemDirectoryReader interface: operation readEntries(FileSystemEntriesCallback, ErrorCallback) assert_own_property: self does not have own property "FileSystemDirectoryReader" expected property "FileSystemDirectoryReader" missing
-PASS Unscopable handled correctly for readEntries(FileSystemEntriesCallback, ErrorCallback) on FileSystemDirectoryReader
-PASS FileSystemEntriesCallback interface: existence and properties of interface object
-PASS FileSystemEntriesCallback interface: existence and properties of interface prototype object
-PASS FileSystemEntriesCallback interface: existence and properties of interface prototype object's "constructor" property
-PASS FileSystemEntriesCallback interface: existence and properties of interface prototype object's @@unscopables property
-PASS FileSystemEntriesCallback interface: operation handleEvent([object Object])
-PASS Unscopable handled correctly for handleEvent([object Object]) on FileSystemEntriesCallback
-FAIL FileSystemFileEntry interface: existence and properties of interface object assert_own_property: self does not have own property "FileSystemFileEntry" expected property "FileSystemFileEntry" missing
-FAIL FileSystemFileEntry interface object length assert_own_property: self does not have own property "FileSystemFileEntry" expected property "FileSystemFileEntry" missing
-FAIL FileSystemFileEntry interface object name assert_own_property: self does not have own property "FileSystemFileEntry" expected property "FileSystemFileEntry" missing
-FAIL FileSystemFileEntry interface: existence and properties of interface prototype object assert_own_property: self does not have own property "FileSystemFileEntry" expected property "FileSystemFileEntry" missing
-FAIL FileSystemFileEntry interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "FileSystemFileEntry" expected property "FileSystemFileEntry" missing
-FAIL FileSystemFileEntry interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "FileSystemFileEntry" expected property "FileSystemFileEntry" missing
-FAIL FileSystemFileEntry interface: operation file(FileCallback, ErrorCallback) assert_own_property: self does not have own property "FileSystemFileEntry" expected property "FileSystemFileEntry" missing
-PASS Unscopable handled correctly for file(FileCallback, ErrorCallback) on FileSystemFileEntry
-PASS FileCallback interface: existence and properties of interface object
-PASS FileCallback interface: existence and properties of interface prototype object
-PASS FileCallback interface: existence and properties of interface prototype object's "constructor" property
-PASS FileCallback interface: existence and properties of interface prototype object's @@unscopables property
-PASS FileCallback interface: operation handleEvent(File)
-PASS Unscopable handled correctly for handleEvent(File) on FileCallback
-FAIL FileSystem interface: existence and properties of interface object assert_own_property: self does not have own property "FileSystem" expected property "FileSystem" missing
-FAIL FileSystem interface object length assert_own_property: self does not have own property "FileSystem" expected property "FileSystem" missing
-FAIL FileSystem interface object name assert_own_property: self does not have own property "FileSystem" expected property "FileSystem" missing
-FAIL FileSystem interface: existence and properties of interface prototype object assert_own_property: self does not have own property "FileSystem" expected property "FileSystem" missing
-FAIL FileSystem interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "FileSystem" expected property "FileSystem" missing
-FAIL FileSystem interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "FileSystem" expected property "FileSystem" missing
-FAIL FileSystem interface: attribute name assert_own_property: self does not have own property "FileSystem" expected property "FileSystem" missing
-PASS Unscopable handled correctly for name property on FileSystem
-FAIL FileSystem interface: attribute root assert_own_property: self does not have own property "FileSystem" expected property "FileSystem" missing
-PASS Unscopable handled correctly for root property on FileSystem
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/fetch/api/request/request-idl-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/fetch/api/request/request-idl-expected.txt
deleted file mode 100644
index fe8cfccb..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/fetch/api/request/request-idl-expected.txt
+++ /dev/null
@@ -1,69 +0,0 @@
-This is a testharness.js-based test.
-Found 65 tests; 63 PASS, 2 FAIL, 0 TIMEOUT, 0 NOTRUN.
-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 Unscopable handled correctly for method property on Request
-PASS Request interface: attribute url
-PASS Unscopable handled correctly for url property on Request
-PASS Request interface: attribute headers
-PASS Unscopable handled correctly for headers property on Request
-PASS Request interface: attribute destination
-PASS Unscopable handled correctly for destination property on Request
-PASS Request interface: attribute referrer
-PASS Unscopable handled correctly for referrer property on Request
-PASS Request interface: attribute referrerPolicy
-PASS Unscopable handled correctly for referrerPolicy property on Request
-PASS Request interface: attribute mode
-PASS Unscopable handled correctly for mode property on Request
-PASS Request interface: attribute credentials
-PASS Unscopable handled correctly for credentials property on Request
-PASS Request interface: attribute cache
-PASS Unscopable handled correctly for cache property on Request
-PASS Request interface: attribute redirect
-PASS Unscopable handled correctly for redirect property on Request
-PASS Request interface: attribute integrity
-PASS Unscopable handled correctly for integrity property on Request
-PASS Request interface: operation clone()
-PASS Unscopable handled correctly for clone() on Request
-FAIL Request interface: attribute body assert_true: The prototype object must have a property "body" expected true got false
-PASS Unscopable handled correctly for body property on Request
-PASS Request interface: attribute bodyUsed
-PASS Unscopable handled correctly for bodyUsed property on Request
-PASS Request interface: operation arrayBuffer()
-PASS Unscopable handled correctly for arrayBuffer() on Request
-PASS Request interface: operation blob()
-PASS Unscopable handled correctly for blob() on Request
-PASS Request interface: operation formData()
-PASS Unscopable handled correctly for formData() on Request
-PASS Request interface: operation json()
-PASS Unscopable handled correctly for json() on Request
-PASS Request interface: operation text()
-PASS Unscopable handled correctly for text() on Request
-PASS Request must be primary interface of new Request("")
-PASS Stringification of new Request("")
-PASS Request interface: new Request("") must inherit property "method" with the proper type
-PASS Request interface: new Request("") must inherit property "url" with the proper type
-PASS Request interface: new Request("") must inherit property "headers" with the proper type
-PASS Request interface: new Request("") must inherit property "destination" with the proper type
-PASS Request interface: new Request("") must inherit property "referrer" with the proper type
-PASS Request interface: new Request("") must inherit property "referrerPolicy" with the proper type
-PASS Request interface: new Request("") must inherit property "mode" with the proper type
-PASS Request interface: new Request("") must inherit property "credentials" with the proper type
-PASS Request interface: new Request("") must inherit property "cache" with the proper type
-PASS Request interface: new Request("") must inherit property "redirect" with the proper type
-PASS Request interface: new Request("") must inherit property "integrity" with the proper type
-PASS Request interface: new Request("") must inherit property "clone()" with the proper type
-FAIL Request interface: new Request("") must inherit property "body" with the proper type assert_inherits: property "body" not found in prototype chain
-PASS Request interface: new Request("") must inherit property "bodyUsed" with the proper type
-PASS Request interface: new Request("") must inherit property "arrayBuffer()" with the proper type
-PASS Request interface: new Request("") must inherit property "blob()" with the proper type
-PASS Request interface: new Request("") must inherit property "formData()" with the proper type
-PASS Request interface: new Request("") must inherit property "json()" with the proper type
-PASS Request interface: new Request("") must inherit property "text()" with the proper type
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/fetch/api/response/response-idl-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/fetch/api/response/response-idl-expected.txt
deleted file mode 100644
index 81ae70e..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/fetch/api/response/response-idl-expected.txt
+++ /dev/null
@@ -1,64 +0,0 @@
-This is a testharness.js-based test.
-Found 60 tests; 58 PASS, 2 FAIL, 0 TIMEOUT, 0 NOTRUN.
-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 Unscopable handled correctly for error() on Response
-PASS Response interface: operation redirect(USVString, unsigned short)
-PASS Unscopable handled correctly for redirect(USVString, unsigned short) on Response
-PASS Response interface: attribute type
-PASS Unscopable handled correctly for type property on Response
-PASS Response interface: attribute url
-PASS Unscopable handled correctly for url property on Response
-PASS Response interface: attribute status
-PASS Unscopable handled correctly for status property on Response
-PASS Response interface: attribute ok
-PASS Unscopable handled correctly for ok property on Response
-PASS Response interface: attribute statusText
-PASS Unscopable handled correctly for statusText property on Response
-PASS Response interface: attribute headers
-PASS Unscopable handled correctly for headers property on Response
-FAIL Response interface: attribute trailer assert_true: The prototype object must have a property "trailer" expected true got false
-PASS Unscopable handled correctly for trailer property on Response
-PASS Response interface: operation clone()
-PASS Unscopable handled correctly for clone() on Response
-PASS Response interface: attribute body
-PASS Unscopable handled correctly for body property on Response
-PASS Response interface: attribute bodyUsed
-PASS Unscopable handled correctly for bodyUsed property on Response
-PASS Response interface: operation arrayBuffer()
-PASS Unscopable handled correctly for arrayBuffer() on Response
-PASS Response interface: operation blob()
-PASS Unscopable handled correctly for blob() on Response
-PASS Response interface: operation formData()
-PASS Unscopable handled correctly for formData() on Response
-PASS Response interface: operation json()
-PASS Unscopable handled correctly for json() on Response
-PASS Response interface: operation text()
-PASS Unscopable handled correctly for text() on Response
-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, unsigned short)" with the proper type
-PASS Response interface: calling redirect(USVString, 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 "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
-FAIL Response interface: new Response() must inherit property "trailer" with the proper type assert_inherits: property "trailer" not found in prototype chain
-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
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/fullscreen/interfaces-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/fullscreen/interfaces-expected.txt
deleted file mode 100644
index ed3cce9..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/fullscreen/interfaces-expected.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-This is a testharness.js-based test.
-PASS Test driver
-FAIL Document interface: attribute fullscreenEnabled assert_equals: setter must be function for PutForwards, Replaceable, or non-readonly attributes expected "function" but got "undefined"
-PASS Unscopable handled correctly for fullscreenEnabled property on Document
-FAIL Document interface: attribute fullscreen assert_true: The prototype object must have a property "fullscreen" expected true got false
-FAIL Unscopable handled correctly for fullscreen property on Document assert_equals: Document.prototype[Symbol.unscopables].fullscreen must exist expected "object" but got "undefined"
-FAIL Document interface: operation exitFullscreen() assert_unreached: Throws "TypeError: Illegal invocation" instead of rejecting promise Reached unreachable code
-PASS Unscopable handled correctly for exitFullscreen() on Document
-PASS Document interface: attribute onfullscreenchange
-PASS Unscopable handled correctly for onfullscreenchange property on Document
-PASS Document interface: attribute onfullscreenerror
-PASS Unscopable handled correctly for onfullscreenerror property on Document
-FAIL Document interface: attribute fullscreenElement assert_equals: setter must be function for PutForwards, Replaceable, or non-readonly attributes expected "function" but got "undefined"
-PASS Unscopable handled correctly for fullscreenElement property on Document
-PASS Document interface: new Document must inherit property "fullscreenEnabled" with the proper type
-FAIL Document interface: new Document must inherit property "fullscreen" with the proper type assert_inherits: property "fullscreen" not found in prototype chain
-PASS Document interface: new Document must inherit property "exitFullscreen()" with the proper type
-PASS Document interface: new Document must inherit property "onfullscreenchange" with the proper type
-PASS Document interface: new Document must inherit property "onfullscreenerror" with the proper type
-PASS Document interface: new Document must inherit property "fullscreenElement" with the proper type
-FAIL ShadowRoot interface: attribute fullscreenElement assert_equals: setter must be function for PutForwards, Replaceable, or non-readonly attributes expected "function" but got "undefined"
-PASS Unscopable handled correctly for fullscreenElement property on ShadowRoot
-FAIL Element interface: operation requestFullscreen() assert_unreached: Throws "TypeError: Illegal invocation" instead of rejecting promise Reached unreachable code
-PASS Unscopable handled correctly for requestFullscreen() on Element
-PASS Element interface: attribute onfullscreenchange
-PASS Unscopable handled correctly for onfullscreenchange property on Element
-PASS Element interface: attribute onfullscreenerror
-PASS Unscopable handled correctly for onfullscreenerror property on Element
-PASS Element interface: document.createElementNS(null, "test") must inherit property "requestFullscreen()" with the proper type
-PASS Element interface: document.createElementNS(null, "test") must inherit property "onfullscreenchange" with the proper type
-PASS Element interface: document.createElementNS(null, "test") must inherit property "onfullscreenerror" with the proper type
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/fullscreen/model/move-to-fullscreen-iframe-manual-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/fullscreen/model/move-to-fullscreen-iframe-manual-expected.txt
deleted file mode 100644
index 7b307b2..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/fullscreen/model/move-to-fullscreen-iframe-manual-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Moving fullscreen document's body into a fullscreen iframe assert_equals: iframe's final fullscreen element expected Element node <body></body> but got null
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/geolocation-sensor/idlharness.https-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/geolocation-sensor/idlharness.https-expected.txt
deleted file mode 100644
index 03447b6..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/geolocation-sensor/idlharness.https-expected.txt
+++ /dev/null
@@ -1,67 +0,0 @@
-This is a testharness.js-based test.
-PASS Test IDL implementation of Geolocation Sensor
-PASS Sensor interface: existence and properties of interface object
-PASS Sensor interface object length
-PASS Sensor interface object name
-PASS Sensor interface: existence and properties of interface prototype object
-PASS Sensor interface: existence and properties of interface prototype object's "constructor" property
-PASS Sensor interface: existence and properties of interface prototype object's @@unscopables property
-PASS Sensor interface: attribute activated
-PASS Unscopable handled correctly for activated property on Sensor
-PASS Sensor interface: attribute hasReading
-PASS Unscopable handled correctly for hasReading property on Sensor
-PASS Sensor interface: attribute timestamp
-PASS Unscopable handled correctly for timestamp property on Sensor
-PASS Sensor interface: operation start()
-PASS Unscopable handled correctly for start() on Sensor
-PASS Sensor interface: operation stop()
-PASS Unscopable handled correctly for stop() on Sensor
-PASS Sensor interface: attribute onreading
-PASS Unscopable handled correctly for onreading property on Sensor
-PASS Sensor interface: attribute onactivate
-PASS Unscopable handled correctly for onactivate property on Sensor
-PASS Sensor interface: attribute onerror
-PASS Unscopable handled correctly for onerror property on Sensor
-FAIL GeolocationSensor interface: existence and properties of interface object assert_own_property: self does not have own property "GeolocationSensor" expected property "GeolocationSensor" missing
-FAIL GeolocationSensor interface object length assert_own_property: self does not have own property "GeolocationSensor" expected property "GeolocationSensor" missing
-FAIL GeolocationSensor interface object name assert_own_property: self does not have own property "GeolocationSensor" expected property "GeolocationSensor" missing
-FAIL GeolocationSensor interface: existence and properties of interface prototype object assert_own_property: self does not have own property "GeolocationSensor" expected property "GeolocationSensor" missing
-FAIL GeolocationSensor interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "GeolocationSensor" expected property "GeolocationSensor" missing
-FAIL GeolocationSensor interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "GeolocationSensor" expected property "GeolocationSensor" missing
-FAIL GeolocationSensor interface: operation read(ReadOptions) assert_own_property: self does not have own property "GeolocationSensor" expected property "GeolocationSensor" missing
-PASS Unscopable handled correctly for read(ReadOptions) on GeolocationSensor
-FAIL GeolocationSensor interface: attribute latitude assert_own_property: self does not have own property "GeolocationSensor" expected property "GeolocationSensor" missing
-PASS Unscopable handled correctly for latitude property on GeolocationSensor
-FAIL GeolocationSensor interface: attribute longitude assert_own_property: self does not have own property "GeolocationSensor" expected property "GeolocationSensor" missing
-PASS Unscopable handled correctly for longitude property on GeolocationSensor
-FAIL GeolocationSensor interface: attribute altitude assert_own_property: self does not have own property "GeolocationSensor" expected property "GeolocationSensor" missing
-PASS Unscopable handled correctly for altitude property on GeolocationSensor
-FAIL GeolocationSensor interface: attribute accuracy assert_own_property: self does not have own property "GeolocationSensor" expected property "GeolocationSensor" missing
-PASS Unscopable handled correctly for accuracy property on GeolocationSensor
-FAIL GeolocationSensor interface: attribute altitudeAccuracy assert_own_property: self does not have own property "GeolocationSensor" expected property "GeolocationSensor" missing
-PASS Unscopable handled correctly for altitudeAccuracy property on GeolocationSensor
-FAIL GeolocationSensor interface: attribute heading assert_own_property: self does not have own property "GeolocationSensor" expected property "GeolocationSensor" missing
-PASS Unscopable handled correctly for heading property on GeolocationSensor
-FAIL GeolocationSensor interface: attribute speed assert_own_property: self does not have own property "GeolocationSensor" expected property "GeolocationSensor" missing
-PASS Unscopable handled correctly for speed property on GeolocationSensor
-FAIL GeolocationSensor must be primary interface of new GeolocationSensor assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GeolocationSensor is not defined"
-FAIL Stringification of new GeolocationSensor assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GeolocationSensor is not defined"
-FAIL GeolocationSensor interface: new GeolocationSensor must inherit property "read(ReadOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GeolocationSensor is not defined"
-FAIL GeolocationSensor interface: calling read(ReadOptions) on new GeolocationSensor with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GeolocationSensor is not defined"
-FAIL GeolocationSensor interface: new GeolocationSensor must inherit property "latitude" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GeolocationSensor is not defined"
-FAIL GeolocationSensor interface: new GeolocationSensor must inherit property "longitude" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GeolocationSensor is not defined"
-FAIL GeolocationSensor interface: new GeolocationSensor must inherit property "altitude" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GeolocationSensor is not defined"
-FAIL GeolocationSensor interface: new GeolocationSensor must inherit property "accuracy" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GeolocationSensor is not defined"
-FAIL GeolocationSensor interface: new GeolocationSensor must inherit property "altitudeAccuracy" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GeolocationSensor is not defined"
-FAIL GeolocationSensor interface: new GeolocationSensor must inherit property "heading" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GeolocationSensor is not defined"
-FAIL GeolocationSensor interface: new GeolocationSensor must inherit property "speed" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GeolocationSensor is not defined"
-FAIL Sensor interface: new GeolocationSensor must inherit property "activated" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GeolocationSensor is not defined"
-FAIL Sensor interface: new GeolocationSensor must inherit property "hasReading" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GeolocationSensor is not defined"
-FAIL Sensor interface: new GeolocationSensor must inherit property "timestamp" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GeolocationSensor is not defined"
-FAIL Sensor interface: new GeolocationSensor must inherit property "start()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GeolocationSensor is not defined"
-FAIL Sensor interface: new GeolocationSensor must inherit property "stop()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GeolocationSensor is not defined"
-FAIL Sensor interface: new GeolocationSensor must inherit property "onreading" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GeolocationSensor is not defined"
-FAIL Sensor interface: new GeolocationSensor must inherit property "onactivate" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GeolocationSensor is not defined"
-FAIL Sensor interface: new GeolocationSensor must inherit property "onerror" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GeolocationSensor is not defined"
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/html-media-capture/idlharness-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/html-media-capture/idlharness-expected.txt
deleted file mode 100644
index ee3ce07..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/html-media-capture/idlharness-expected.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-This is a testharness.js-based test.
-FAIL HTMLInputElement interface: attribute capture assert_true: The prototype object must have a property "capture" expected true got false
-PASS Unscopable handled correctly for capture property on HTMLInputElement
-FAIL HTMLInputElement interface: [object HTMLInputElement] must inherit property "capture" with the proper type assert_inherits: property "capture" not found in prototype chain
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/html/browsers/origin/cross-origin-objects/cross-origin-objects-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/html/browsers/origin/cross-origin-objects/cross-origin-objects-expected.txt
deleted file mode 100644
index 5026c25..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/html/browsers/origin/cross-origin-objects/cross-origin-objects-expected.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-This is a testharness.js-based test.
-PASS Basic sanity-checking
-PASS Only whitelisted properties are accessible cross-origin
-PASS [[GetPrototypeOf]] should return null
-FAIL [[SetPrototypeOf]] should return false assert_throws: proto setter |call| on cross-origin Window function "function() { protoSetter.call(C, new Object()); }" threw object "SecurityError: Blocked a frame with origin "http://web-platform.test:8001" from accessing a cross-origin frame." ("SecurityError") expected object "TypeError" ("TypeError")
-PASS [[IsExtensible]] should return true for cross-origin objects
-FAIL [[PreventExtensions]] should throw for cross-origin objects assert_throws: preventExtensions on cross-origin Window should throw function "function() { Object.preventExtensions(C) }" threw object "SecurityError: Blocked a frame with origin "http://web-platform.test:8001" from accessing a cross-origin frame." ("SecurityError") expected object "TypeError" ("TypeError")
-FAIL [[GetOwnProperty]] - Properties on cross-origin objects should be reported |own| Blocked a frame with origin "http://web-platform.test:8001" from accessing a cross-origin frame.
-FAIL [[GetOwnProperty]] - Property descriptors for cross-origin properties should be set up correctly assert_equals: property descriptor for 0 should be enumerable expected true but got false
-PASS [[GetOwnProperty]] - Subframe named 'then' should shadow the default 'then' value
-PASS [[Delete]] Should throw on cross-origin objects
-PASS [[DefineOwnProperty]] Should throw for cross-origin objects
-FAIL Can only enumerate safelisted enumerable properties assert_equals: Enumerate all enumerable safelisted cross-origin Window properties expected 2 but got 0
-FAIL [[OwnPropertyKeys]] should return all properties from cross-origin objects assert_array_equals: Object.getOwnPropertyNames() gives the right answer for cross-origin Window lengths differ, expected 16 got 13
-FAIL [[OwnPropertyKeys]] should return the right symbol-named properties for cross-origin objects assert_array_equals: Object.getOwnPropertySymbols() should return the three symbol-named properties that are exposed on a cross-origin Window lengths differ, expected 3 got 0
-FAIL [[OwnPropertyKeys]] should place the symbols after the property names after the subframe indices assert_equals: 'then' property should be added to the end of the string list if not there expected "then" but got "close"
-FAIL [[OwnPropertyKeys]] should not reorder where 'then' appears if it's a named subframe, nor add another copy of 'then' assert_equals: expected "then" but got "postMessage"
-PASS A and B jointly observe the same identity for cross-origin Window and Location
-PASS Cross-origin functions get local Function.prototype
-FAIL Cross-origin Window accessors get local Function.prototype Cannot read property 'name' of undefined
-FAIL Same-origin observers get different functions for cross-origin objects assert_true: same-origin Window functions get their own object expected true got false
-FAIL Same-origin observers get different accessors for cross-origin Window assert_true: different Window accessors per-incumbent script settings object expected true got false
-FAIL Same-origin observers get different accessors for cross-origin Location Blocked a frame with origin "http://web-platform.test:8001" from accessing a cross-origin frame.
-FAIL {}.toString.call() does the right thing on cross-origin objects assert_equals: expected "[object Object]" but got "[object Location]"
-PASS Resolving a promise with a cross-origin window without a 'then' subframe should work.
-PASS Resolving a promise with a cross-origin window with a 'then' subframe should work.
-PASS Resolving a promise with a cross-origin location should work.
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/html/browsers/windows/auxiliary-browsing-contexts/opener-setter.window-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/html/browsers/windows/auxiliary-browsing-contexts/opener-setter.window-expected.txt
deleted file mode 100644
index 8dfee380..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/html/browsers/windows/auxiliary-browsing-contexts/opener-setter.window-expected.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-This is a testharness.js-based test.
-FAIL Setting window.opener to undefined assert_own_property: expected property "get" missing
-FAIL Setting window.opener to 42 assert_own_property: expected property "get" missing
-FAIL Setting window.opener to function() { return "hi" } assert_own_property: expected property "get" missing
-FAIL Setting window.opener to hi assert_own_property: expected property "get" missing
-FAIL Setting window.opener to [object Object] assert_own_property: expected property "get" missing
-FAIL Setting window.opener to  assert_own_property: expected property "get" missing
-FAIL Setting window.opener to Symbol() assert_own_property: expected property "get" missing
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/html/dom/interfaces-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/html/dom/interfaces-expected.txt
deleted file mode 100644
index dfcde73..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/html/dom/interfaces-expected.txt
+++ /dev/null
@@ -1,6708 +0,0 @@
-This is a testharness.js-based test.
-Found 6702 tests; 6596 PASS, 106 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS Test driver
-PASS Document interface: attribute domain
-PASS Unscopable handled correctly for domain property on Document
-PASS Document interface: attribute referrer
-PASS Unscopable handled correctly for referrer property on Document
-PASS Document interface: attribute cookie
-PASS Unscopable handled correctly for cookie property on Document
-PASS Document interface: attribute lastModified
-PASS Unscopable handled correctly for lastModified property on Document
-PASS Document interface: attribute readyState
-PASS Unscopable handled correctly for readyState property on Document
-PASS Document interface: attribute title
-PASS Unscopable handled correctly for title property on Document
-PASS Document interface: attribute dir
-PASS Unscopable handled correctly for dir property on Document
-PASS Document interface: attribute body
-PASS Unscopable handled correctly for body property on Document
-PASS Document interface: attribute head
-PASS Unscopable handled correctly for head property on Document
-PASS Document interface: attribute images
-PASS Unscopable handled correctly for images property on Document
-PASS Document interface: attribute embeds
-PASS Unscopable handled correctly for embeds property on Document
-PASS Document interface: attribute plugins
-PASS Unscopable handled correctly for plugins property on Document
-PASS Document interface: attribute links
-PASS Unscopable handled correctly for links property on Document
-PASS Document interface: attribute forms
-PASS Unscopable handled correctly for forms property on Document
-PASS Document interface: attribute scripts
-PASS Unscopable handled correctly for scripts property on Document
-PASS Document interface: operation getElementsByName(DOMString)
-PASS Unscopable handled correctly for getElementsByName(DOMString) on Document
-PASS Document interface: attribute currentScript
-PASS Unscopable handled correctly for currentScript property on Document
-PASS Document interface: operation open(DOMString, DOMString)
-PASS Unscopable handled correctly for open(DOMString, DOMString) on Document
-PASS Document interface: operation open(USVString, DOMString, DOMString)
-PASS Unscopable handled correctly for open(USVString, DOMString, DOMString) on Document
-PASS Document interface: operation close()
-PASS Unscopable handled correctly for close() on Document
-PASS Document interface: operation write(DOMString)
-PASS Unscopable handled correctly for write(DOMString) on Document
-PASS Document interface: operation writeln(DOMString)
-PASS Unscopable handled correctly for writeln(DOMString) on Document
-PASS Document interface: attribute defaultView
-PASS Unscopable handled correctly for defaultView property on Document
-PASS Document interface: attribute activeElement
-PASS Unscopable handled correctly for activeElement property on Document
-PASS Document interface: operation hasFocus()
-PASS Unscopable handled correctly for hasFocus() on Document
-PASS Document interface: attribute designMode
-PASS Unscopable handled correctly for designMode property on Document
-PASS Document interface: operation execCommand(DOMString, boolean, DOMString)
-PASS Unscopable handled correctly for execCommand(DOMString, boolean, DOMString) on Document
-PASS Document interface: operation queryCommandEnabled(DOMString)
-PASS Unscopable handled correctly for queryCommandEnabled(DOMString) on Document
-PASS Document interface: operation queryCommandIndeterm(DOMString)
-PASS Unscopable handled correctly for queryCommandIndeterm(DOMString) on Document
-PASS Document interface: operation queryCommandState(DOMString)
-PASS Unscopable handled correctly for queryCommandState(DOMString) on Document
-PASS Document interface: operation queryCommandSupported(DOMString)
-PASS Unscopable handled correctly for queryCommandSupported(DOMString) on Document
-PASS Document interface: operation queryCommandValue(DOMString)
-PASS Unscopable handled correctly for queryCommandValue(DOMString) on Document
-PASS Document interface: attribute onreadystatechange
-PASS Unscopable handled correctly for onreadystatechange property on Document
-PASS Document interface: attribute fgColor
-PASS Unscopable handled correctly for fgColor property on Document
-PASS Document interface: attribute linkColor
-PASS Unscopable handled correctly for linkColor property on Document
-PASS Document interface: attribute vlinkColor
-PASS Unscopable handled correctly for vlinkColor property on Document
-PASS Document interface: attribute alinkColor
-PASS Unscopable handled correctly for alinkColor property on Document
-PASS Document interface: attribute bgColor
-PASS Unscopable handled correctly for bgColor property on Document
-PASS Document interface: attribute anchors
-PASS Unscopable handled correctly for anchors property on Document
-PASS Document interface: attribute applets
-PASS Unscopable handled correctly for applets property on Document
-PASS Document interface: operation clear()
-PASS Unscopable handled correctly for clear() on Document
-PASS Document interface: operation captureEvents()
-PASS Unscopable handled correctly for captureEvents() on Document
-PASS Document interface: operation releaseEvents()
-PASS Unscopable handled correctly for releaseEvents() on Document
-PASS Document interface: attribute all
-PASS Unscopable handled correctly for all property on Document
-PASS Document interface: attribute onabort
-PASS Unscopable handled correctly for onabort property on Document
-PASS Document interface: attribute onauxclick
-PASS Unscopable handled correctly for onauxclick property on Document
-PASS Document interface: attribute onblur
-PASS Unscopable handled correctly for onblur property on Document
-PASS Document interface: attribute oncancel
-PASS Unscopable handled correctly for oncancel property on Document
-PASS Document interface: attribute oncanplay
-PASS Unscopable handled correctly for oncanplay property on Document
-PASS Document interface: attribute oncanplaythrough
-PASS Unscopable handled correctly for oncanplaythrough property on Document
-PASS Document interface: attribute onchange
-PASS Unscopable handled correctly for onchange property on Document
-PASS Document interface: attribute onclick
-PASS Unscopable handled correctly for onclick property on Document
-PASS Document interface: attribute onclose
-PASS Unscopable handled correctly for onclose property on Document
-PASS Document interface: attribute oncontextmenu
-PASS Unscopable handled correctly for oncontextmenu property on Document
-PASS Document interface: attribute oncuechange
-PASS Unscopable handled correctly for oncuechange property on Document
-PASS Document interface: attribute ondblclick
-PASS Unscopable handled correctly for ondblclick property on Document
-PASS Document interface: attribute ondrag
-PASS Unscopable handled correctly for ondrag property on Document
-PASS Document interface: attribute ondragend
-PASS Unscopable handled correctly for ondragend property on Document
-PASS Document interface: attribute ondragenter
-PASS Unscopable handled correctly for ondragenter property on Document
-FAIL Document interface: attribute ondragexit assert_true: The prototype object must have a property "ondragexit" expected true got false
-PASS Unscopable handled correctly for ondragexit property on Document
-PASS Document interface: attribute ondragleave
-PASS Unscopable handled correctly for ondragleave property on Document
-PASS Document interface: attribute ondragover
-PASS Unscopable handled correctly for ondragover property on Document
-PASS Document interface: attribute ondragstart
-PASS Unscopable handled correctly for ondragstart property on Document
-PASS Document interface: attribute ondrop
-PASS Unscopable handled correctly for ondrop property on Document
-PASS Document interface: attribute ondurationchange
-PASS Unscopable handled correctly for ondurationchange property on Document
-PASS Document interface: attribute onemptied
-PASS Unscopable handled correctly for onemptied property on Document
-PASS Document interface: attribute onended
-PASS Unscopable handled correctly for onended property on Document
-PASS Document interface: attribute onerror
-PASS Unscopable handled correctly for onerror property on Document
-PASS Document interface: attribute onfocus
-PASS Unscopable handled correctly for onfocus property on Document
-PASS Document interface: attribute oninput
-PASS Unscopable handled correctly for oninput property on Document
-PASS Document interface: attribute oninvalid
-PASS Unscopable handled correctly for oninvalid property on Document
-PASS Document interface: attribute onkeydown
-PASS Unscopable handled correctly for onkeydown property on Document
-PASS Document interface: attribute onkeypress
-PASS Unscopable handled correctly for onkeypress property on Document
-PASS Document interface: attribute onkeyup
-PASS Unscopable handled correctly for onkeyup property on Document
-PASS Document interface: attribute onload
-PASS Unscopable handled correctly for onload property on Document
-PASS Document interface: attribute onloadeddata
-PASS Unscopable handled correctly for onloadeddata property on Document
-PASS Document interface: attribute onloadedmetadata
-PASS Unscopable handled correctly for onloadedmetadata property on Document
-FAIL Document interface: attribute onloadend assert_true: The prototype object must have a property "onloadend" expected true got false
-PASS Unscopable handled correctly for onloadend property on Document
-PASS Document interface: attribute onloadstart
-PASS Unscopable handled correctly for onloadstart property on Document
-PASS Document interface: attribute onmousedown
-PASS Unscopable handled correctly for onmousedown property on Document
-PASS Document interface: attribute onmouseenter
-PASS Unscopable handled correctly for onmouseenter property on Document
-PASS Document interface: attribute onmouseleave
-PASS Unscopable handled correctly for onmouseleave property on Document
-PASS Document interface: attribute onmousemove
-PASS Unscopable handled correctly for onmousemove property on Document
-PASS Document interface: attribute onmouseout
-PASS Unscopable handled correctly for onmouseout property on Document
-PASS Document interface: attribute onmouseover
-PASS Unscopable handled correctly for onmouseover property on Document
-PASS Document interface: attribute onmouseup
-PASS Unscopable handled correctly for onmouseup property on Document
-PASS Document interface: attribute onwheel
-PASS Unscopable handled correctly for onwheel property on Document
-PASS Document interface: attribute onpause
-PASS Unscopable handled correctly for onpause property on Document
-PASS Document interface: attribute onplay
-PASS Unscopable handled correctly for onplay property on Document
-PASS Document interface: attribute onplaying
-PASS Unscopable handled correctly for onplaying property on Document
-PASS Document interface: attribute onprogress
-PASS Unscopable handled correctly for onprogress property on Document
-PASS Document interface: attribute onratechange
-PASS Unscopable handled correctly for onratechange property on Document
-PASS Document interface: attribute onreset
-PASS Unscopable handled correctly for onreset property on Document
-PASS Document interface: attribute onresize
-PASS Unscopable handled correctly for onresize property on Document
-PASS Document interface: attribute onscroll
-PASS Unscopable handled correctly for onscroll property on Document
-PASS Document interface: attribute onsecuritypolicyviolation
-PASS Unscopable handled correctly for onsecuritypolicyviolation property on Document
-PASS Document interface: attribute onseeked
-PASS Unscopable handled correctly for onseeked property on Document
-PASS Document interface: attribute onseeking
-PASS Unscopable handled correctly for onseeking property on Document
-PASS Document interface: attribute onselect
-PASS Unscopable handled correctly for onselect property on Document
-PASS Document interface: attribute onstalled
-PASS Unscopable handled correctly for onstalled property on Document
-PASS Document interface: attribute onsubmit
-PASS Unscopable handled correctly for onsubmit property on Document
-PASS Document interface: attribute onsuspend
-PASS Unscopable handled correctly for onsuspend property on Document
-PASS Document interface: attribute ontimeupdate
-PASS Unscopable handled correctly for ontimeupdate property on Document
-PASS Document interface: attribute ontoggle
-PASS Unscopable handled correctly for ontoggle property on Document
-PASS Document interface: attribute onvolumechange
-PASS Unscopable handled correctly for onvolumechange property on Document
-PASS Document interface: attribute onwaiting
-PASS Unscopable handled correctly for onwaiting property on Document
-PASS Document interface: attribute oncopy
-PASS Unscopable handled correctly for oncopy property on Document
-PASS Document interface: attribute oncut
-PASS Unscopable handled correctly for oncut property on Document
-PASS Document interface: attribute onpaste
-PASS Unscopable handled correctly for onpaste property on Document
-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(DOMString, DOMString)" with the proper type
-PASS Document interface: calling open(DOMString, 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
-FAIL Document interface: iframe.contentDocument must inherit property "defaultView" with the proper type Unrecognized type WindowProxy
-PASS Document interface: iframe.contentDocument must inherit property "activeElement" 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, boolean, DOMString)" with the proper type
-PASS Document interface: calling execCommand(DOMString, boolean, 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
-FAIL Document interface: iframe.contentDocument must inherit property "all" with the proper type assert_in_array: wrong type: not object or function value "undefined" not in array ["object", "function"]
-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
-FAIL Document interface: iframe.contentDocument must inherit property "ondragexit" with the proper type assert_inherits: property "ondragexit" not found in prototype chain
-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 "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
-FAIL Document interface: iframe.contentDocument must inherit property "onloadend" with the proper type assert_inherits: property "onloadend" not found in prototype chain
-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 "onwheel" 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
-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 "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: 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(DOMString, DOMString)" with the proper type
-PASS Document interface: calling open(DOMString, 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 "activeElement" 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, boolean, DOMString)" with the proper type
-PASS Document interface: calling execCommand(DOMString, boolean, 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
-FAIL Document interface: new Document() must inherit property "all" with the proper type assert_in_array: wrong type: not object or function value "undefined" not in array ["object", "function"]
-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
-FAIL Document interface: new Document() must inherit property "ondragexit" with the proper type assert_inherits: property "ondragexit" not found in prototype chain
-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 "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
-FAIL Document interface: new Document() must inherit property "onloadend" with the proper type assert_inherits: property "onloadend" not found in prototype chain
-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 "onwheel" 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
-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 "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: document.implementation.createDocument(null, "", null) must have own property "location"
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "domain" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "referrer" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "cookie" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "lastModified" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "readyState" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "title" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "dir" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "body" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "head" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "images" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "embeds" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "plugins" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "links" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "forms" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "scripts" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "getElementsByName(DOMString)" with the proper type
-PASS Document interface: calling getElementsByName(DOMString) on document.implementation.createDocument(null, "", null) with too few arguments must throw TypeError
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "currentScript" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "open(DOMString, DOMString)" with the proper type
-PASS Document interface: calling open(DOMString, DOMString) on document.implementation.createDocument(null, "", null) with too few arguments must throw TypeError
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "open(USVString, DOMString, DOMString)" with the proper type
-PASS Document interface: calling open(USVString, DOMString, DOMString) on document.implementation.createDocument(null, "", null) with too few arguments must throw TypeError
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "close()" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "write(DOMString)" with the proper type
-PASS Document interface: calling write(DOMString) on document.implementation.createDocument(null, "", null) with too few arguments must throw TypeError
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "writeln(DOMString)" with the proper type
-PASS Document interface: calling writeln(DOMString) on document.implementation.createDocument(null, "", null) with too few arguments must throw TypeError
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "defaultView" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "activeElement" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "hasFocus()" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "designMode" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "execCommand(DOMString, boolean, DOMString)" with the proper type
-PASS Document interface: calling execCommand(DOMString, boolean, DOMString) on document.implementation.createDocument(null, "", null) with too few arguments must throw TypeError
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "queryCommandEnabled(DOMString)" with the proper type
-PASS Document interface: calling queryCommandEnabled(DOMString) on document.implementation.createDocument(null, "", null) with too few arguments must throw TypeError
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "queryCommandIndeterm(DOMString)" with the proper type
-PASS Document interface: calling queryCommandIndeterm(DOMString) on document.implementation.createDocument(null, "", null) with too few arguments must throw TypeError
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "queryCommandState(DOMString)" with the proper type
-PASS Document interface: calling queryCommandState(DOMString) on document.implementation.createDocument(null, "", null) with too few arguments must throw TypeError
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "queryCommandSupported(DOMString)" with the proper type
-PASS Document interface: calling queryCommandSupported(DOMString) on document.implementation.createDocument(null, "", null) with too few arguments must throw TypeError
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "queryCommandValue(DOMString)" with the proper type
-PASS Document interface: calling queryCommandValue(DOMString) on document.implementation.createDocument(null, "", null) with too few arguments must throw TypeError
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onreadystatechange" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "fgColor" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "linkColor" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "vlinkColor" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "alinkColor" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "bgColor" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "anchors" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "applets" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "clear()" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "captureEvents()" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "releaseEvents()" with the proper type
-FAIL Document interface: document.implementation.createDocument(null, "", null) must inherit property "all" with the proper type assert_in_array: wrong type: not object or function value "undefined" not in array ["object", "function"]
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onabort" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onauxclick" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onblur" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "oncancel" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "oncanplay" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "oncanplaythrough" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onchange" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onclick" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onclose" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "oncontextmenu" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "oncuechange" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "ondblclick" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "ondrag" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "ondragend" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "ondragenter" with the proper type
-FAIL Document interface: document.implementation.createDocument(null, "", null) must inherit property "ondragexit" with the proper type assert_inherits: property "ondragexit" not found in prototype chain
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "ondragleave" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "ondragover" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "ondragstart" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "ondrop" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "ondurationchange" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onemptied" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onended" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onerror" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onfocus" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "oninput" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "oninvalid" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onkeydown" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onkeypress" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onkeyup" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onload" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onloadeddata" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onloadedmetadata" with the proper type
-FAIL Document interface: document.implementation.createDocument(null, "", null) must inherit property "onloadend" with the proper type assert_inherits: property "onloadend" not found in prototype chain
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onloadstart" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onmousedown" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onmouseenter" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onmouseleave" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onmousemove" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onmouseout" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onmouseover" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onmouseup" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onwheel" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onpause" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onplay" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onplaying" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onprogress" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onratechange" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onreset" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onresize" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onscroll" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onsecuritypolicyviolation" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onseeked" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onseeking" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onselect" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onstalled" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onsubmit" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onsuspend" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "ontimeupdate" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "ontoggle" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onvolumechange" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onwaiting" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "oncopy" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "oncut" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onpaste" with the proper type
-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 Unscopable handled correctly for length property on HTMLAllCollection
-PASS HTMLAllCollection interface: operation namedItem(DOMString)
-PASS Unscopable handled correctly for namedItem(DOMString) on HTMLAllCollection
-PASS HTMLAllCollection interface: operation item(DOMString)
-PASS Unscopable handled correctly for item(DOMString) on HTMLAllCollection
-FAIL HTMLAllCollection must be primary interface of document.all assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL Stringification of document.all assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL HTMLAllCollection interface: document.all must inherit property "length" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL HTMLAllCollection interface: document.all must inherit property "namedItem(DOMString)" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL HTMLAllCollection interface: calling namedItem(DOMString) on document.all with too few arguments must throw TypeError assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL HTMLAllCollection interface: document.all must inherit property "item(DOMString)" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL HTMLAllCollection interface: calling item(DOMString) on document.all with too few arguments must throw TypeError assert_equals: wrong typeof object expected "object" but got "undefined"
-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 Unscopable handled correctly for namedItem(DOMString) on HTMLFormControlsCollection
-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 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 Unscopable handled correctly for value property on RadioNodeList
-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 Unscopable handled correctly for length property on HTMLOptionsCollection
-PASS HTMLOptionsCollection interface: operation add([object Object],[object Object], [object Object],[object Object])
-PASS Unscopable handled correctly for add([object Object],[object Object], [object Object],[object Object]) on HTMLOptionsCollection
-PASS HTMLOptionsCollection interface: operation remove(long)
-PASS Unscopable handled correctly for remove(long) on HTMLOptionsCollection
-PASS HTMLOptionsCollection interface: attribute selectedIndex
-PASS Unscopable handled correctly for selectedIndex property on HTMLOptionsCollection
-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([object Object],[object Object], [object Object],[object Object])" with the proper type
-PASS HTMLOptionsCollection interface: calling add([object Object],[object Object], [object Object],[object Object]) 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 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 Unscopable handled correctly for length property on DOMStringList
-PASS DOMStringList interface: operation item(unsigned long)
-PASS Unscopable handled correctly for item(unsigned long) on DOMStringList
-PASS DOMStringList interface: operation contains(DOMString)
-PASS Unscopable handled correctly for contains(DOMString) on DOMStringList
-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 Unscopable handled correctly for title property on HTMLElement
-PASS HTMLElement interface: attribute lang
-PASS Unscopable handled correctly for lang property on HTMLElement
-PASS HTMLElement interface: attribute translate
-PASS Unscopable handled correctly for translate property on HTMLElement
-PASS HTMLElement interface: attribute dir
-PASS Unscopable handled correctly for dir property on HTMLElement
-PASS HTMLElement interface: attribute dataset
-PASS Unscopable handled correctly for dataset property on HTMLElement
-PASS HTMLElement interface: attribute hidden
-PASS Unscopable handled correctly for hidden property on HTMLElement
-PASS HTMLElement interface: operation click()
-PASS Unscopable handled correctly for click() on HTMLElement
-PASS HTMLElement interface: attribute tabIndex
-PASS Unscopable handled correctly for tabIndex property on HTMLElement
-PASS HTMLElement interface: operation focus(FocusOptions)
-PASS Unscopable handled correctly for focus(FocusOptions) on HTMLElement
-PASS HTMLElement interface: operation blur()
-PASS Unscopable handled correctly for blur() on HTMLElement
-PASS HTMLElement interface: attribute accessKey
-PASS Unscopable handled correctly for accessKey property on HTMLElement
-FAIL HTMLElement interface: attribute accessKeyLabel assert_true: The prototype object must have a property "accessKeyLabel" expected true got false
-PASS Unscopable handled correctly for accessKeyLabel property on HTMLElement
-PASS HTMLElement interface: attribute draggable
-PASS Unscopable handled correctly for draggable property on HTMLElement
-PASS HTMLElement interface: attribute spellcheck
-PASS Unscopable handled correctly for spellcheck property on HTMLElement
-PASS HTMLElement interface: attribute innerText
-PASS Unscopable handled correctly for innerText property on HTMLElement
-PASS HTMLElement interface: attribute onabort
-PASS Unscopable handled correctly for onabort property on HTMLElement
-PASS HTMLElement interface: attribute onauxclick
-PASS Unscopable handled correctly for onauxclick property on HTMLElement
-PASS HTMLElement interface: attribute onblur
-PASS Unscopable handled correctly for onblur property on HTMLElement
-PASS HTMLElement interface: attribute oncancel
-PASS Unscopable handled correctly for oncancel property on HTMLElement
-PASS HTMLElement interface: attribute oncanplay
-PASS Unscopable handled correctly for oncanplay property on HTMLElement
-PASS HTMLElement interface: attribute oncanplaythrough
-PASS Unscopable handled correctly for oncanplaythrough property on HTMLElement
-PASS HTMLElement interface: attribute onchange
-PASS Unscopable handled correctly for onchange property on HTMLElement
-PASS HTMLElement interface: attribute onclick
-PASS Unscopable handled correctly for onclick property on HTMLElement
-PASS HTMLElement interface: attribute onclose
-PASS Unscopable handled correctly for onclose property on HTMLElement
-PASS HTMLElement interface: attribute oncontextmenu
-PASS Unscopable handled correctly for oncontextmenu property on HTMLElement
-PASS HTMLElement interface: attribute oncuechange
-PASS Unscopable handled correctly for oncuechange property on HTMLElement
-PASS HTMLElement interface: attribute ondblclick
-PASS Unscopable handled correctly for ondblclick property on HTMLElement
-PASS HTMLElement interface: attribute ondrag
-PASS Unscopable handled correctly for ondrag property on HTMLElement
-PASS HTMLElement interface: attribute ondragend
-PASS Unscopable handled correctly for ondragend property on HTMLElement
-PASS HTMLElement interface: attribute ondragenter
-PASS Unscopable handled correctly for ondragenter property on HTMLElement
-FAIL HTMLElement interface: attribute ondragexit assert_true: The prototype object must have a property "ondragexit" expected true got false
-PASS Unscopable handled correctly for ondragexit property on HTMLElement
-PASS HTMLElement interface: attribute ondragleave
-PASS Unscopable handled correctly for ondragleave property on HTMLElement
-PASS HTMLElement interface: attribute ondragover
-PASS Unscopable handled correctly for ondragover property on HTMLElement
-PASS HTMLElement interface: attribute ondragstart
-PASS Unscopable handled correctly for ondragstart property on HTMLElement
-PASS HTMLElement interface: attribute ondrop
-PASS Unscopable handled correctly for ondrop property on HTMLElement
-PASS HTMLElement interface: attribute ondurationchange
-PASS Unscopable handled correctly for ondurationchange property on HTMLElement
-PASS HTMLElement interface: attribute onemptied
-PASS Unscopable handled correctly for onemptied property on HTMLElement
-PASS HTMLElement interface: attribute onended
-PASS Unscopable handled correctly for onended property on HTMLElement
-PASS HTMLElement interface: attribute onerror
-PASS Unscopable handled correctly for onerror property on HTMLElement
-PASS HTMLElement interface: attribute onfocus
-PASS Unscopable handled correctly for onfocus property on HTMLElement
-PASS HTMLElement interface: attribute oninput
-PASS Unscopable handled correctly for oninput property on HTMLElement
-PASS HTMLElement interface: attribute oninvalid
-PASS Unscopable handled correctly for oninvalid property on HTMLElement
-PASS HTMLElement interface: attribute onkeydown
-PASS Unscopable handled correctly for onkeydown property on HTMLElement
-PASS HTMLElement interface: attribute onkeypress
-PASS Unscopable handled correctly for onkeypress property on HTMLElement
-PASS HTMLElement interface: attribute onkeyup
-PASS Unscopable handled correctly for onkeyup property on HTMLElement
-PASS HTMLElement interface: attribute onload
-PASS Unscopable handled correctly for onload property on HTMLElement
-PASS HTMLElement interface: attribute onloadeddata
-PASS Unscopable handled correctly for onloadeddata property on HTMLElement
-PASS HTMLElement interface: attribute onloadedmetadata
-PASS Unscopable handled correctly for onloadedmetadata property on HTMLElement
-FAIL HTMLElement interface: attribute onloadend assert_true: The prototype object must have a property "onloadend" expected true got false
-PASS Unscopable handled correctly for onloadend property on HTMLElement
-PASS HTMLElement interface: attribute onloadstart
-PASS Unscopable handled correctly for onloadstart property on HTMLElement
-PASS HTMLElement interface: attribute onmousedown
-PASS Unscopable handled correctly for onmousedown property on HTMLElement
-PASS HTMLElement interface: attribute onmouseenter
-PASS Unscopable handled correctly for onmouseenter property on HTMLElement
-PASS HTMLElement interface: attribute onmouseleave
-PASS Unscopable handled correctly for onmouseleave property on HTMLElement
-PASS HTMLElement interface: attribute onmousemove
-PASS Unscopable handled correctly for onmousemove property on HTMLElement
-PASS HTMLElement interface: attribute onmouseout
-PASS Unscopable handled correctly for onmouseout property on HTMLElement
-PASS HTMLElement interface: attribute onmouseover
-PASS Unscopable handled correctly for onmouseover property on HTMLElement
-PASS HTMLElement interface: attribute onmouseup
-PASS Unscopable handled correctly for onmouseup property on HTMLElement
-PASS HTMLElement interface: attribute onwheel
-PASS Unscopable handled correctly for onwheel property on HTMLElement
-PASS HTMLElement interface: attribute onpause
-PASS Unscopable handled correctly for onpause property on HTMLElement
-PASS HTMLElement interface: attribute onplay
-PASS Unscopable handled correctly for onplay property on HTMLElement
-PASS HTMLElement interface: attribute onplaying
-PASS Unscopable handled correctly for onplaying property on HTMLElement
-PASS HTMLElement interface: attribute onprogress
-PASS Unscopable handled correctly for onprogress property on HTMLElement
-PASS HTMLElement interface: attribute onratechange
-PASS Unscopable handled correctly for onratechange property on HTMLElement
-PASS HTMLElement interface: attribute onreset
-PASS Unscopable handled correctly for onreset property on HTMLElement
-PASS HTMLElement interface: attribute onresize
-PASS Unscopable handled correctly for onresize property on HTMLElement
-PASS HTMLElement interface: attribute onscroll
-PASS Unscopable handled correctly for onscroll property on HTMLElement
-FAIL HTMLElement interface: attribute onsecuritypolicyviolation assert_true: The prototype object must have a property "onsecuritypolicyviolation" expected true got false
-PASS Unscopable handled correctly for onsecuritypolicyviolation property on HTMLElement
-PASS HTMLElement interface: attribute onseeked
-PASS Unscopable handled correctly for onseeked property on HTMLElement
-PASS HTMLElement interface: attribute onseeking
-PASS Unscopable handled correctly for onseeking property on HTMLElement
-PASS HTMLElement interface: attribute onselect
-PASS Unscopable handled correctly for onselect property on HTMLElement
-PASS HTMLElement interface: attribute onstalled
-PASS Unscopable handled correctly for onstalled property on HTMLElement
-PASS HTMLElement interface: attribute onsubmit
-PASS Unscopable handled correctly for onsubmit property on HTMLElement
-PASS HTMLElement interface: attribute onsuspend
-PASS Unscopable handled correctly for onsuspend property on HTMLElement
-PASS HTMLElement interface: attribute ontimeupdate
-PASS Unscopable handled correctly for ontimeupdate property on HTMLElement
-PASS HTMLElement interface: attribute ontoggle
-PASS Unscopable handled correctly for ontoggle property on HTMLElement
-PASS HTMLElement interface: attribute onvolumechange
-PASS Unscopable handled correctly for onvolumechange property on HTMLElement
-PASS HTMLElement interface: attribute onwaiting
-PASS Unscopable handled correctly for onwaiting property on HTMLElement
-FAIL HTMLElement interface: attribute oncopy assert_own_property: expected property "oncopy" missing
-PASS Unscopable handled correctly for oncopy property on HTMLElement
-FAIL HTMLElement interface: attribute oncut assert_own_property: expected property "oncut" missing
-PASS Unscopable handled correctly for oncut property on HTMLElement
-FAIL HTMLElement interface: attribute onpaste assert_own_property: expected property "onpaste" missing
-PASS Unscopable handled correctly for onpaste property on HTMLElement
-PASS HTMLElement interface: attribute contentEditable
-PASS Unscopable handled correctly for contentEditable property on HTMLElement
-PASS HTMLElement interface: attribute isContentEditable
-PASS Unscopable handled correctly for isContentEditable property on HTMLElement
-PASS HTMLElement interface: attribute inputMode
-PASS Unscopable handled correctly for inputMode property on HTMLElement
-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 "dataset" 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 "tabIndex" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "focus(FocusOptions)" with the proper type
-PASS HTMLElement interface: calling focus(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 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 "innerText" 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
-FAIL HTMLElement interface: document.createElement("noscript") must inherit property "ondragexit" with the proper type assert_inherits: property "ondragexit" not found in prototype chain
-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 "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
-FAIL HTMLElement interface: document.createElement("noscript") must inherit property "onloadend" with the proper type assert_inherits: property "onloadend" not found in prototype chain
-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 "onwheel" 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
-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 "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 "isContentEditable" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "inputMode" 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 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 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 Unscopable handled correctly for version property on HTMLHtmlElement
-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 Unscopable handled correctly for text property on HTMLTitleElement
-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 Unscopable handled correctly for href property on HTMLBaseElement
-PASS HTMLBaseElement interface: attribute target
-PASS Unscopable handled correctly for target property on HTMLBaseElement
-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 Unscopable handled correctly for href property on HTMLLinkElement
-PASS HTMLLinkElement interface: attribute crossOrigin
-PASS Unscopable handled correctly for crossOrigin property on HTMLLinkElement
-PASS HTMLLinkElement interface: attribute rel
-PASS Unscopable handled correctly for rel property on HTMLLinkElement
-PASS HTMLLinkElement interface: attribute as
-PASS Unscopable handled correctly for as property on HTMLLinkElement
-PASS HTMLLinkElement interface: attribute relList
-PASS Unscopable handled correctly for relList property on HTMLLinkElement
-PASS HTMLLinkElement interface: attribute media
-PASS Unscopable handled correctly for media property on HTMLLinkElement
-FAIL HTMLLinkElement interface: attribute nonce assert_own_property: expected property "nonce" missing
-PASS Unscopable handled correctly for nonce property on HTMLLinkElement
-PASS HTMLLinkElement interface: attribute integrity
-PASS Unscopable handled correctly for integrity property on HTMLLinkElement
-PASS HTMLLinkElement interface: attribute hreflang
-PASS Unscopable handled correctly for hreflang property on HTMLLinkElement
-PASS HTMLLinkElement interface: attribute type
-PASS Unscopable handled correctly for type property on HTMLLinkElement
-PASS HTMLLinkElement interface: attribute sizes
-PASS Unscopable handled correctly for sizes property on HTMLLinkElement
-PASS HTMLLinkElement interface: attribute referrerPolicy
-PASS Unscopable handled correctly for referrerPolicy property on HTMLLinkElement
-FAIL HTMLLinkElement interface: attribute workerType assert_true: The prototype object must have a property "workerType" expected true got false
-PASS Unscopable handled correctly for workerType property on HTMLLinkElement
-FAIL HTMLLinkElement interface: attribute updateViaCache assert_true: The prototype object must have a property "updateViaCache" expected true got false
-PASS Unscopable handled correctly for updateViaCache property on HTMLLinkElement
-PASS HTMLLinkElement interface: attribute charset
-PASS Unscopable handled correctly for charset property on HTMLLinkElement
-PASS HTMLLinkElement interface: attribute rev
-PASS Unscopable handled correctly for rev property on HTMLLinkElement
-PASS HTMLLinkElement interface: attribute target
-PASS Unscopable handled correctly for target property on HTMLLinkElement
-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 "nonce" 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 "referrerPolicy" with the proper type
-FAIL HTMLLinkElement interface: document.createElement("link") must inherit property "workerType" with the proper type assert_inherits: property "workerType" not found in prototype chain
-FAIL HTMLLinkElement interface: document.createElement("link") must inherit property "updateViaCache" with the proper type assert_inherits: property "updateViaCache" not found in prototype chain
-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 Unscopable handled correctly for name property on HTMLMetaElement
-PASS HTMLMetaElement interface: attribute httpEquiv
-PASS Unscopable handled correctly for httpEquiv property on HTMLMetaElement
-PASS HTMLMetaElement interface: attribute content
-PASS Unscopable handled correctly for content property on HTMLMetaElement
-PASS HTMLMetaElement interface: attribute scheme
-PASS Unscopable handled correctly for scheme property on HTMLMetaElement
-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 Unscopable handled correctly for media property on HTMLStyleElement
-FAIL HTMLStyleElement interface: attribute nonce assert_own_property: expected property "nonce" missing
-PASS Unscopable handled correctly for nonce property on HTMLStyleElement
-PASS HTMLStyleElement interface: attribute type
-PASS Unscopable handled correctly for type property on HTMLStyleElement
-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 "nonce" 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 Unscopable handled correctly for text property on HTMLBodyElement
-PASS HTMLBodyElement interface: attribute link
-PASS Unscopable handled correctly for link property on HTMLBodyElement
-PASS HTMLBodyElement interface: attribute vLink
-PASS Unscopable handled correctly for vLink property on HTMLBodyElement
-PASS HTMLBodyElement interface: attribute aLink
-PASS Unscopable handled correctly for aLink property on HTMLBodyElement
-PASS HTMLBodyElement interface: attribute bgColor
-PASS Unscopable handled correctly for bgColor property on HTMLBodyElement
-PASS HTMLBodyElement interface: attribute background
-PASS Unscopable handled correctly for background property on HTMLBodyElement
-PASS HTMLBodyElement interface: attribute onafterprint
-PASS Unscopable handled correctly for onafterprint property on HTMLBodyElement
-PASS HTMLBodyElement interface: attribute onbeforeprint
-PASS Unscopable handled correctly for onbeforeprint property on HTMLBodyElement
-PASS HTMLBodyElement interface: attribute onbeforeunload
-PASS Unscopable handled correctly for onbeforeunload property on HTMLBodyElement
-PASS HTMLBodyElement interface: attribute onhashchange
-PASS Unscopable handled correctly for onhashchange property on HTMLBodyElement
-PASS HTMLBodyElement interface: attribute onlanguagechange
-PASS Unscopable handled correctly for onlanguagechange property on HTMLBodyElement
-PASS HTMLBodyElement interface: attribute onmessage
-PASS Unscopable handled correctly for onmessage property on HTMLBodyElement
-PASS HTMLBodyElement interface: attribute onmessageerror
-PASS Unscopable handled correctly for onmessageerror property on HTMLBodyElement
-PASS HTMLBodyElement interface: attribute onoffline
-PASS Unscopable handled correctly for onoffline property on HTMLBodyElement
-PASS HTMLBodyElement interface: attribute ononline
-PASS Unscopable handled correctly for ononline property on HTMLBodyElement
-PASS HTMLBodyElement interface: attribute onpagehide
-PASS Unscopable handled correctly for onpagehide property on HTMLBodyElement
-PASS HTMLBodyElement interface: attribute onpageshow
-PASS Unscopable handled correctly for onpageshow property on HTMLBodyElement
-PASS HTMLBodyElement interface: attribute onpopstate
-PASS Unscopable handled correctly for onpopstate property on HTMLBodyElement
-PASS HTMLBodyElement interface: attribute onrejectionhandled
-PASS Unscopable handled correctly for onrejectionhandled property on HTMLBodyElement
-PASS HTMLBodyElement interface: attribute onstorage
-PASS Unscopable handled correctly for onstorage property on HTMLBodyElement
-PASS HTMLBodyElement interface: attribute onunhandledrejection
-PASS Unscopable handled correctly for onunhandledrejection property on HTMLBodyElement
-PASS HTMLBodyElement interface: attribute onunload
-PASS Unscopable handled correctly for onunload property on HTMLBodyElement
-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 Unscopable handled correctly for align property on HTMLHeadingElement
-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 Unscopable handled correctly for align property on HTMLParagraphElement
-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 Unscopable handled correctly for align property on HTMLHRElement
-PASS HTMLHRElement interface: attribute color
-PASS Unscopable handled correctly for color property on HTMLHRElement
-PASS HTMLHRElement interface: attribute noShade
-PASS Unscopable handled correctly for noShade property on HTMLHRElement
-PASS HTMLHRElement interface: attribute size
-PASS Unscopable handled correctly for size property on HTMLHRElement
-PASS HTMLHRElement interface: attribute width
-PASS Unscopable handled correctly for width property on HTMLHRElement
-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 Unscopable handled correctly for width property on HTMLPreElement
-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 Unscopable handled correctly for cite property on HTMLQuoteElement
-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 Unscopable handled correctly for reversed property on HTMLOListElement
-PASS HTMLOListElement interface: attribute start
-PASS Unscopable handled correctly for start property on HTMLOListElement
-PASS HTMLOListElement interface: attribute type
-PASS Unscopable handled correctly for type property on HTMLOListElement
-PASS HTMLOListElement interface: attribute compact
-PASS Unscopable handled correctly for compact property on HTMLOListElement
-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 Unscopable handled correctly for compact property on HTMLUListElement
-PASS HTMLUListElement interface: attribute type
-PASS Unscopable handled correctly for type property on HTMLUListElement
-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 Unscopable handled correctly for compact property on HTMLMenuElement
-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 Unscopable handled correctly for value property on HTMLLIElement
-PASS HTMLLIElement interface: attribute type
-PASS Unscopable handled correctly for type property on HTMLLIElement
-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 Unscopable handled correctly for compact property on HTMLDListElement
-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 Unscopable handled correctly for align property on HTMLDivElement
-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 Unscopable handled correctly for target property on HTMLAnchorElement
-PASS HTMLAnchorElement interface: attribute download
-PASS Unscopable handled correctly for download property on HTMLAnchorElement
-PASS HTMLAnchorElement interface: attribute ping
-PASS Unscopable handled correctly for ping property on HTMLAnchorElement
-PASS HTMLAnchorElement interface: attribute rel
-PASS Unscopable handled correctly for rel property on HTMLAnchorElement
-PASS HTMLAnchorElement interface: attribute relList
-PASS Unscopable handled correctly for relList property on HTMLAnchorElement
-PASS HTMLAnchorElement interface: attribute hreflang
-PASS Unscopable handled correctly for hreflang property on HTMLAnchorElement
-PASS HTMLAnchorElement interface: attribute type
-PASS Unscopable handled correctly for type property on HTMLAnchorElement
-PASS HTMLAnchorElement interface: attribute text
-PASS Unscopable handled correctly for text property on HTMLAnchorElement
-PASS HTMLAnchorElement interface: attribute referrerPolicy
-PASS Unscopable handled correctly for referrerPolicy property on HTMLAnchorElement
-PASS HTMLAnchorElement interface: attribute coords
-PASS Unscopable handled correctly for coords property on HTMLAnchorElement
-PASS HTMLAnchorElement interface: attribute charset
-PASS Unscopable handled correctly for charset property on HTMLAnchorElement
-PASS HTMLAnchorElement interface: attribute name
-PASS Unscopable handled correctly for name property on HTMLAnchorElement
-PASS HTMLAnchorElement interface: attribute rev
-PASS Unscopable handled correctly for rev property on HTMLAnchorElement
-PASS HTMLAnchorElement interface: attribute shape
-PASS Unscopable handled correctly for shape property on HTMLAnchorElement
-PASS HTMLAnchorElement interface: attribute href
-PASS Unscopable handled correctly for href property on HTMLAnchorElement
-PASS HTMLAnchorElement interface: stringifier
-PASS HTMLAnchorElement interface: attribute origin
-PASS Unscopable handled correctly for origin property on HTMLAnchorElement
-PASS HTMLAnchorElement interface: attribute protocol
-PASS Unscopable handled correctly for protocol property on HTMLAnchorElement
-PASS HTMLAnchorElement interface: attribute username
-PASS Unscopable handled correctly for username property on HTMLAnchorElement
-PASS HTMLAnchorElement interface: attribute password
-PASS Unscopable handled correctly for password property on HTMLAnchorElement
-PASS HTMLAnchorElement interface: attribute host
-PASS Unscopable handled correctly for host property on HTMLAnchorElement
-PASS HTMLAnchorElement interface: attribute hostname
-PASS Unscopable handled correctly for hostname property on HTMLAnchorElement
-PASS HTMLAnchorElement interface: attribute port
-PASS Unscopable handled correctly for port property on HTMLAnchorElement
-PASS HTMLAnchorElement interface: attribute pathname
-PASS Unscopable handled correctly for pathname property on HTMLAnchorElement
-PASS HTMLAnchorElement interface: attribute search
-PASS Unscopable handled correctly for search property on HTMLAnchorElement
-PASS HTMLAnchorElement interface: attribute hash
-PASS Unscopable handled correctly for hash property on HTMLAnchorElement
-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 Unscopable handled correctly for value property on HTMLDataElement
-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 Unscopable handled correctly for dateTime property on HTMLTimeElement
-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 Unscopable handled correctly for clear property on HTMLBRElement
-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 Unscopable handled correctly for cite property on HTMLModElement
-PASS HTMLModElement interface: attribute dateTime
-PASS Unscopable handled correctly for dateTime property on HTMLModElement
-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 Unscopable handled correctly for src property on HTMLSourceElement
-PASS HTMLSourceElement interface: attribute type
-PASS Unscopable handled correctly for type property on HTMLSourceElement
-PASS HTMLSourceElement interface: attribute srcset
-PASS Unscopable handled correctly for srcset property on HTMLSourceElement
-PASS HTMLSourceElement interface: attribute sizes
-PASS Unscopable handled correctly for sizes property on HTMLSourceElement
-PASS HTMLSourceElement interface: attribute media
-PASS Unscopable handled correctly for media property on HTMLSourceElement
-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 HTMLImageElement interface: existence and properties of interface object
-PASS HTMLImageElement interface object length
-PASS HTMLImageElement interface object name
-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 Unscopable handled correctly for alt property on HTMLImageElement
-PASS HTMLImageElement interface: attribute src
-PASS Unscopable handled correctly for src property on HTMLImageElement
-PASS HTMLImageElement interface: attribute srcset
-PASS Unscopable handled correctly for srcset property on HTMLImageElement
-PASS HTMLImageElement interface: attribute sizes
-PASS Unscopable handled correctly for sizes property on HTMLImageElement
-PASS HTMLImageElement interface: attribute crossOrigin
-PASS Unscopable handled correctly for crossOrigin property on HTMLImageElement
-PASS HTMLImageElement interface: attribute useMap
-PASS Unscopable handled correctly for useMap property on HTMLImageElement
-PASS HTMLImageElement interface: attribute isMap
-PASS Unscopable handled correctly for isMap property on HTMLImageElement
-PASS HTMLImageElement interface: attribute width
-PASS Unscopable handled correctly for width property on HTMLImageElement
-PASS HTMLImageElement interface: attribute height
-PASS Unscopable handled correctly for height property on HTMLImageElement
-PASS HTMLImageElement interface: attribute naturalWidth
-PASS Unscopable handled correctly for naturalWidth property on HTMLImageElement
-PASS HTMLImageElement interface: attribute naturalHeight
-PASS Unscopable handled correctly for naturalHeight property on HTMLImageElement
-PASS HTMLImageElement interface: attribute complete
-PASS Unscopable handled correctly for complete property on HTMLImageElement
-PASS HTMLImageElement interface: attribute currentSrc
-PASS Unscopable handled correctly for currentSrc property on HTMLImageElement
-PASS HTMLImageElement interface: attribute referrerPolicy
-PASS Unscopable handled correctly for referrerPolicy property on HTMLImageElement
-PASS HTMLImageElement interface: operation decode()
-PASS Unscopable handled correctly for decode() on HTMLImageElement
-PASS HTMLImageElement interface: attribute name
-PASS Unscopable handled correctly for name property on HTMLImageElement
-PASS HTMLImageElement interface: attribute lowsrc
-PASS Unscopable handled correctly for lowsrc property on HTMLImageElement
-PASS HTMLImageElement interface: attribute align
-PASS Unscopable handled correctly for align property on HTMLImageElement
-PASS HTMLImageElement interface: attribute hspace
-PASS Unscopable handled correctly for hspace property on HTMLImageElement
-PASS HTMLImageElement interface: attribute vspace
-PASS Unscopable handled correctly for vspace property on HTMLImageElement
-PASS HTMLImageElement interface: attribute longDesc
-PASS Unscopable handled correctly for longDesc property on HTMLImageElement
-PASS HTMLImageElement interface: attribute border
-PASS Unscopable handled correctly for border property on HTMLImageElement
-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 "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 "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 Unscopable handled correctly for src property on HTMLIFrameElement
-PASS HTMLIFrameElement interface: attribute srcdoc
-PASS Unscopable handled correctly for srcdoc property on HTMLIFrameElement
-PASS HTMLIFrameElement interface: attribute name
-PASS Unscopable handled correctly for name property on HTMLIFrameElement
-PASS HTMLIFrameElement interface: attribute sandbox
-PASS Unscopable handled correctly for sandbox property on HTMLIFrameElement
-PASS HTMLIFrameElement interface: attribute allowFullscreen
-PASS Unscopable handled correctly for allowFullscreen property on HTMLIFrameElement
-PASS HTMLIFrameElement interface: attribute allowPaymentRequest
-PASS Unscopable handled correctly for allowPaymentRequest property on HTMLIFrameElement
-FAIL HTMLIFrameElement interface: attribute allowUserMedia assert_true: The prototype object must have a property "allowUserMedia" expected true got false
-PASS Unscopable handled correctly for allowUserMedia property on HTMLIFrameElement
-PASS HTMLIFrameElement interface: attribute width
-PASS Unscopable handled correctly for width property on HTMLIFrameElement
-PASS HTMLIFrameElement interface: attribute height
-PASS Unscopable handled correctly for height property on HTMLIFrameElement
-PASS HTMLIFrameElement interface: attribute referrerPolicy
-PASS Unscopable handled correctly for referrerPolicy property on HTMLIFrameElement
-PASS HTMLIFrameElement interface: attribute contentDocument
-PASS Unscopable handled correctly for contentDocument property on HTMLIFrameElement
-PASS HTMLIFrameElement interface: attribute contentWindow
-PASS Unscopable handled correctly for contentWindow property on HTMLIFrameElement
-PASS HTMLIFrameElement interface: operation getSVGDocument()
-PASS Unscopable handled correctly for getSVGDocument() on HTMLIFrameElement
-FAIL HTMLIFrameElement interface: attribute delegateStickyUserActivation assert_true: The prototype object must have a property "delegateStickyUserActivation" expected true got false
-PASS Unscopable handled correctly for delegateStickyUserActivation property on HTMLIFrameElement
-PASS HTMLIFrameElement interface: attribute align
-PASS Unscopable handled correctly for align property on HTMLIFrameElement
-PASS HTMLIFrameElement interface: attribute scrolling
-PASS Unscopable handled correctly for scrolling property on HTMLIFrameElement
-PASS HTMLIFrameElement interface: attribute frameBorder
-PASS Unscopable handled correctly for frameBorder property on HTMLIFrameElement
-PASS HTMLIFrameElement interface: attribute longDesc
-PASS Unscopable handled correctly for longDesc property on HTMLIFrameElement
-PASS HTMLIFrameElement interface: attribute marginHeight
-PASS Unscopable handled correctly for marginHeight property on HTMLIFrameElement
-PASS HTMLIFrameElement interface: attribute marginWidth
-PASS Unscopable handled correctly for marginWidth property on HTMLIFrameElement
-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 Unscopable handled correctly for src property on HTMLEmbedElement
-PASS HTMLEmbedElement interface: attribute type
-PASS Unscopable handled correctly for type property on HTMLEmbedElement
-PASS HTMLEmbedElement interface: attribute width
-PASS Unscopable handled correctly for width property on HTMLEmbedElement
-PASS HTMLEmbedElement interface: attribute height
-PASS Unscopable handled correctly for height property on HTMLEmbedElement
-PASS HTMLEmbedElement interface: operation getSVGDocument()
-PASS Unscopable handled correctly for getSVGDocument() on HTMLEmbedElement
-PASS HTMLEmbedElement interface: attribute align
-PASS Unscopable handled correctly for align property on HTMLEmbedElement
-PASS HTMLEmbedElement interface: attribute name
-PASS Unscopable handled correctly for name property on HTMLEmbedElement
-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 Unscopable handled correctly for data property on HTMLObjectElement
-PASS HTMLObjectElement interface: attribute type
-PASS Unscopable handled correctly for type property on HTMLObjectElement
-FAIL HTMLObjectElement interface: attribute typeMustMatch assert_true: The prototype object must have a property "typeMustMatch" expected true got false
-PASS Unscopable handled correctly for typeMustMatch property on HTMLObjectElement
-PASS HTMLObjectElement interface: attribute name
-PASS Unscopable handled correctly for name property on HTMLObjectElement
-PASS HTMLObjectElement interface: attribute useMap
-PASS Unscopable handled correctly for useMap property on HTMLObjectElement
-PASS HTMLObjectElement interface: attribute form
-PASS Unscopable handled correctly for form property on HTMLObjectElement
-PASS HTMLObjectElement interface: attribute width
-PASS Unscopable handled correctly for width property on HTMLObjectElement
-PASS HTMLObjectElement interface: attribute height
-PASS Unscopable handled correctly for height property on HTMLObjectElement
-PASS HTMLObjectElement interface: attribute contentDocument
-PASS Unscopable handled correctly for contentDocument property on HTMLObjectElement
-PASS HTMLObjectElement interface: attribute contentWindow
-PASS Unscopable handled correctly for contentWindow property on HTMLObjectElement
-PASS HTMLObjectElement interface: operation getSVGDocument()
-PASS Unscopable handled correctly for getSVGDocument() on HTMLObjectElement
-PASS HTMLObjectElement interface: attribute willValidate
-PASS Unscopable handled correctly for willValidate property on HTMLObjectElement
-PASS HTMLObjectElement interface: attribute validity
-PASS Unscopable handled correctly for validity property on HTMLObjectElement
-PASS HTMLObjectElement interface: attribute validationMessage
-PASS Unscopable handled correctly for validationMessage property on HTMLObjectElement
-PASS HTMLObjectElement interface: operation checkValidity()
-PASS Unscopable handled correctly for checkValidity() on HTMLObjectElement
-PASS HTMLObjectElement interface: operation reportValidity()
-PASS Unscopable handled correctly for reportValidity() on HTMLObjectElement
-PASS HTMLObjectElement interface: operation setCustomValidity(DOMString)
-PASS Unscopable handled correctly for setCustomValidity(DOMString) on HTMLObjectElement
-PASS HTMLObjectElement interface: attribute align
-PASS Unscopable handled correctly for align property on HTMLObjectElement
-PASS HTMLObjectElement interface: attribute archive
-PASS Unscopable handled correctly for archive property on HTMLObjectElement
-PASS HTMLObjectElement interface: attribute code
-PASS Unscopable handled correctly for code property on HTMLObjectElement
-PASS HTMLObjectElement interface: attribute declare
-PASS Unscopable handled correctly for declare property on HTMLObjectElement
-PASS HTMLObjectElement interface: attribute hspace
-PASS Unscopable handled correctly for hspace property on HTMLObjectElement
-PASS HTMLObjectElement interface: attribute standby
-PASS Unscopable handled correctly for standby property on HTMLObjectElement
-PASS HTMLObjectElement interface: attribute vspace
-PASS Unscopable handled correctly for vspace property on HTMLObjectElement
-PASS HTMLObjectElement interface: attribute codeBase
-PASS Unscopable handled correctly for codeBase property on HTMLObjectElement
-PASS HTMLObjectElement interface: attribute codeType
-PASS Unscopable handled correctly for codeType property on HTMLObjectElement
-PASS HTMLObjectElement interface: attribute border
-PASS Unscopable handled correctly for border property on HTMLObjectElement
-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
-FAIL HTMLObjectElement interface: document.createElement("object") must inherit property "typeMustMatch" with the proper type assert_inherits: property "typeMustMatch" not found in prototype chain
-PASS HTMLObjectElement interface: document.createElement("object") must inherit property "name" 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 "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 "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 Unscopable handled correctly for name property on HTMLParamElement
-PASS HTMLParamElement interface: attribute value
-PASS Unscopable handled correctly for value property on HTMLParamElement
-PASS HTMLParamElement interface: attribute type
-PASS Unscopable handled correctly for type property on HTMLParamElement
-PASS HTMLParamElement interface: attribute valueType
-PASS Unscopable handled correctly for valueType property on HTMLParamElement
-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 Unscopable handled correctly for width property on HTMLVideoElement
-PASS HTMLVideoElement interface: attribute height
-PASS Unscopable handled correctly for height property on HTMLVideoElement
-PASS HTMLVideoElement interface: attribute videoWidth
-PASS Unscopable handled correctly for videoWidth property on HTMLVideoElement
-PASS HTMLVideoElement interface: attribute videoHeight
-PASS Unscopable handled correctly for videoHeight property on HTMLVideoElement
-PASS HTMLVideoElement interface: attribute poster
-PASS Unscopable handled correctly for poster property on HTMLVideoElement
-FAIL HTMLVideoElement interface: attribute playsInline assert_true: The prototype object must have a property "playsInline" expected true got false
-PASS Unscopable handled correctly for playsInline property on HTMLVideoElement
-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
-FAIL HTMLVideoElement interface: document.createElement("video") must inherit property "playsInline" with the proper type assert_inherits: property "playsInline" not found in prototype chain
-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
-FAIL HTMLMediaElement interface: document.createElement("video") must inherit property "srcObject" with the proper type Unrecognized type MediaStream
-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 "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, DOMString, DOMString)" with the proper type
-PASS HTMLMediaElement interface: calling addTextTrack(TextTrackKind, DOMString, 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: 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
-FAIL HTMLMediaElement interface: document.createElement("audio") must inherit property "srcObject" with the proper type Unrecognized type MediaStream
-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 "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, DOMString, DOMString)" with the proper type
-PASS HTMLMediaElement interface: calling addTextTrack(TextTrackKind, DOMString, 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
-FAIL HTMLMediaElement interface: new Audio() must inherit property "srcObject" with the proper type Unrecognized type MediaStream
-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 "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, DOMString, DOMString)" with the proper type
-PASS HTMLMediaElement interface: calling addTextTrack(TextTrackKind, DOMString, 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 Unscopable handled correctly for kind property on HTMLTrackElement
-PASS HTMLTrackElement interface: attribute src
-PASS Unscopable handled correctly for src property on HTMLTrackElement
-PASS HTMLTrackElement interface: attribute srclang
-PASS Unscopable handled correctly for srclang property on HTMLTrackElement
-PASS HTMLTrackElement interface: attribute label
-PASS Unscopable handled correctly for label property on HTMLTrackElement
-PASS HTMLTrackElement interface: attribute default
-PASS Unscopable handled correctly for default property on HTMLTrackElement
-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 Unscopable handled correctly for readyState property on HTMLTrackElement
-PASS HTMLTrackElement interface: attribute track
-PASS Unscopable handled correctly for track property on HTMLTrackElement
-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 Unscopable handled correctly for error property on HTMLMediaElement
-PASS HTMLMediaElement interface: attribute src
-PASS Unscopable handled correctly for src property on HTMLMediaElement
-PASS HTMLMediaElement interface: attribute srcObject
-PASS Unscopable handled correctly for srcObject property on HTMLMediaElement
-PASS HTMLMediaElement interface: attribute currentSrc
-PASS Unscopable handled correctly for currentSrc property on HTMLMediaElement
-PASS HTMLMediaElement interface: attribute crossOrigin
-PASS Unscopable handled correctly for crossOrigin property on HTMLMediaElement
-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 Unscopable handled correctly for networkState property on HTMLMediaElement
-PASS HTMLMediaElement interface: attribute preload
-PASS Unscopable handled correctly for preload property on HTMLMediaElement
-PASS HTMLMediaElement interface: attribute buffered
-PASS Unscopable handled correctly for buffered property on HTMLMediaElement
-PASS HTMLMediaElement interface: operation load()
-PASS Unscopable handled correctly for load() on HTMLMediaElement
-PASS HTMLMediaElement interface: operation canPlayType(DOMString)
-PASS Unscopable handled correctly for canPlayType(DOMString) on HTMLMediaElement
-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 Unscopable handled correctly for readyState property on HTMLMediaElement
-PASS HTMLMediaElement interface: attribute seeking
-PASS Unscopable handled correctly for seeking property on HTMLMediaElement
-PASS HTMLMediaElement interface: attribute currentTime
-PASS Unscopable handled correctly for currentTime property on HTMLMediaElement
-FAIL HTMLMediaElement interface: operation fastSeek(double) assert_own_property: interface prototype object missing non-static operation expected property "fastSeek" missing
-PASS Unscopable handled correctly for fastSeek(double) on HTMLMediaElement
-PASS HTMLMediaElement interface: attribute duration
-PASS Unscopable handled correctly for duration property on HTMLMediaElement
-FAIL HTMLMediaElement interface: operation getStartDate() assert_own_property: interface prototype object missing non-static operation expected property "getStartDate" missing
-PASS Unscopable handled correctly for getStartDate() on HTMLMediaElement
-PASS HTMLMediaElement interface: attribute paused
-PASS Unscopable handled correctly for paused property on HTMLMediaElement
-PASS HTMLMediaElement interface: attribute defaultPlaybackRate
-PASS Unscopable handled correctly for defaultPlaybackRate property on HTMLMediaElement
-PASS HTMLMediaElement interface: attribute playbackRate
-PASS Unscopable handled correctly for playbackRate property on HTMLMediaElement
-PASS HTMLMediaElement interface: attribute played
-PASS Unscopable handled correctly for played property on HTMLMediaElement
-PASS HTMLMediaElement interface: attribute seekable
-PASS Unscopable handled correctly for seekable property on HTMLMediaElement
-PASS HTMLMediaElement interface: attribute ended
-PASS Unscopable handled correctly for ended property on HTMLMediaElement
-PASS HTMLMediaElement interface: attribute autoplay
-PASS Unscopable handled correctly for autoplay property on HTMLMediaElement
-PASS HTMLMediaElement interface: attribute loop
-PASS Unscopable handled correctly for loop property on HTMLMediaElement
-PASS HTMLMediaElement interface: operation play()
-PASS Unscopable handled correctly for play() on HTMLMediaElement
-PASS HTMLMediaElement interface: operation pause()
-PASS Unscopable handled correctly for pause() on HTMLMediaElement
-PASS HTMLMediaElement interface: attribute controls
-PASS Unscopable handled correctly for controls property on HTMLMediaElement
-PASS HTMLMediaElement interface: attribute volume
-PASS Unscopable handled correctly for volume property on HTMLMediaElement
-PASS HTMLMediaElement interface: attribute muted
-PASS Unscopable handled correctly for muted property on HTMLMediaElement
-PASS HTMLMediaElement interface: attribute defaultMuted
-PASS Unscopable handled correctly for defaultMuted property on HTMLMediaElement
-PASS HTMLMediaElement interface: attribute audioTracks
-PASS Unscopable handled correctly for audioTracks property on HTMLMediaElement
-PASS HTMLMediaElement interface: attribute videoTracks
-PASS Unscopable handled correctly for videoTracks property on HTMLMediaElement
-PASS HTMLMediaElement interface: attribute textTracks
-PASS Unscopable handled correctly for textTracks property on HTMLMediaElement
-PASS HTMLMediaElement interface: operation addTextTrack(TextTrackKind, DOMString, DOMString)
-PASS Unscopable handled correctly for addTextTrack(TextTrackKind, DOMString, DOMString) on HTMLMediaElement
-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 Unscopable handled correctly for code property on MediaError
-PASS MediaError interface: attribute message
-PASS Unscopable handled correctly for message property on MediaError
-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 Unscopable handled correctly for length property on AudioTrackList
-PASS AudioTrackList interface: operation getTrackById(DOMString)
-PASS Unscopable handled correctly for getTrackById(DOMString) on AudioTrackList
-PASS AudioTrackList interface: attribute onchange
-PASS Unscopable handled correctly for onchange property on AudioTrackList
-PASS AudioTrackList interface: attribute onaddtrack
-PASS Unscopable handled correctly for onaddtrack property on AudioTrackList
-PASS AudioTrackList interface: attribute onremovetrack
-PASS Unscopable handled correctly for onremovetrack property on AudioTrackList
-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 Unscopable handled correctly for id property on AudioTrack
-PASS AudioTrack interface: attribute kind
-PASS Unscopable handled correctly for kind property on AudioTrack
-PASS AudioTrack interface: attribute label
-PASS Unscopable handled correctly for label property on AudioTrack
-PASS AudioTrack interface: attribute language
-PASS Unscopable handled correctly for language property on AudioTrack
-PASS AudioTrack interface: attribute enabled
-PASS Unscopable handled correctly for enabled property on AudioTrack
-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 Unscopable handled correctly for length property on VideoTrackList
-PASS VideoTrackList interface: operation getTrackById(DOMString)
-PASS Unscopable handled correctly for getTrackById(DOMString) on VideoTrackList
-PASS VideoTrackList interface: attribute selectedIndex
-PASS Unscopable handled correctly for selectedIndex property on VideoTrackList
-PASS VideoTrackList interface: attribute onchange
-PASS Unscopable handled correctly for onchange property on VideoTrackList
-PASS VideoTrackList interface: attribute onaddtrack
-PASS Unscopable handled correctly for onaddtrack property on VideoTrackList
-PASS VideoTrackList interface: attribute onremovetrack
-PASS Unscopable handled correctly for onremovetrack property on VideoTrackList
-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 Unscopable handled correctly for id property on VideoTrack
-PASS VideoTrack interface: attribute kind
-PASS Unscopable handled correctly for kind property on VideoTrack
-PASS VideoTrack interface: attribute label
-PASS Unscopable handled correctly for label property on VideoTrack
-PASS VideoTrack interface: attribute language
-PASS Unscopable handled correctly for language property on VideoTrack
-PASS VideoTrack interface: attribute selected
-PASS Unscopable handled correctly for selected property on VideoTrack
-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 Unscopable handled correctly for length property on TextTrackList
-PASS TextTrackList interface: operation getTrackById(DOMString)
-PASS Unscopable handled correctly for getTrackById(DOMString) on TextTrackList
-PASS TextTrackList interface: attribute onchange
-PASS Unscopable handled correctly for onchange property on TextTrackList
-PASS TextTrackList interface: attribute onaddtrack
-PASS Unscopable handled correctly for onaddtrack property on TextTrackList
-PASS TextTrackList interface: attribute onremovetrack
-PASS Unscopable handled correctly for onremovetrack property on TextTrackList
-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 Unscopable handled correctly for kind property on TextTrack
-PASS TextTrack interface: attribute label
-PASS Unscopable handled correctly for label property on TextTrack
-PASS TextTrack interface: attribute language
-PASS Unscopable handled correctly for language property on TextTrack
-PASS TextTrack interface: attribute id
-PASS Unscopable handled correctly for id property on TextTrack
-FAIL TextTrack interface: attribute inBandMetadataTrackDispatchType assert_true: The prototype object must have a property "inBandMetadataTrackDispatchType" expected true got false
-PASS Unscopable handled correctly for inBandMetadataTrackDispatchType property on TextTrack
-PASS TextTrack interface: attribute mode
-PASS Unscopable handled correctly for mode property on TextTrack
-PASS TextTrack interface: attribute cues
-PASS Unscopable handled correctly for cues property on TextTrack
-PASS TextTrack interface: attribute activeCues
-PASS Unscopable handled correctly for activeCues property on TextTrack
-PASS TextTrack interface: operation addCue(TextTrackCue)
-PASS Unscopable handled correctly for addCue(TextTrackCue) on TextTrack
-PASS TextTrack interface: operation removeCue(TextTrackCue)
-PASS Unscopable handled correctly for removeCue(TextTrackCue) on TextTrack
-PASS TextTrack interface: attribute oncuechange
-PASS Unscopable handled correctly for oncuechange property on TextTrack
-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 Unscopable handled correctly for length property on TextTrackCueList
-PASS TextTrackCueList interface: operation getCueById(DOMString)
-PASS Unscopable handled correctly for getCueById(DOMString) on TextTrackCueList
-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 Unscopable handled correctly for track property on TextTrackCue
-PASS TextTrackCue interface: attribute id
-PASS Unscopable handled correctly for id property on TextTrackCue
-PASS TextTrackCue interface: attribute startTime
-PASS Unscopable handled correctly for startTime property on TextTrackCue
-PASS TextTrackCue interface: attribute endTime
-PASS Unscopable handled correctly for endTime property on TextTrackCue
-PASS TextTrackCue interface: attribute pauseOnExit
-PASS Unscopable handled correctly for pauseOnExit property on TextTrackCue
-PASS TextTrackCue interface: attribute onenter
-PASS Unscopable handled correctly for onenter property on TextTrackCue
-PASS TextTrackCue interface: attribute onexit
-PASS Unscopable handled correctly for onexit property on TextTrackCue
-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 Unscopable handled correctly for length property on TimeRanges
-PASS TimeRanges interface: operation start(unsigned long)
-PASS Unscopable handled correctly for start(unsigned long) on TimeRanges
-PASS TimeRanges interface: operation end(unsigned long)
-PASS Unscopable handled correctly for end(unsigned long) on TimeRanges
-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 Unscopable handled correctly for track property on TrackEvent
-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 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 Unscopable handled correctly for name property on HTMLMapElement
-PASS HTMLMapElement interface: attribute areas
-PASS Unscopable handled correctly for areas property on HTMLMapElement
-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 Unscopable handled correctly for alt property on HTMLAreaElement
-PASS HTMLAreaElement interface: attribute coords
-PASS Unscopable handled correctly for coords property on HTMLAreaElement
-PASS HTMLAreaElement interface: attribute shape
-PASS Unscopable handled correctly for shape property on HTMLAreaElement
-PASS HTMLAreaElement interface: attribute target
-PASS Unscopable handled correctly for target property on HTMLAreaElement
-PASS HTMLAreaElement interface: attribute download
-PASS Unscopable handled correctly for download property on HTMLAreaElement
-PASS HTMLAreaElement interface: attribute ping
-PASS Unscopable handled correctly for ping property on HTMLAreaElement
-PASS HTMLAreaElement interface: attribute rel
-PASS Unscopable handled correctly for rel property on HTMLAreaElement
-PASS HTMLAreaElement interface: attribute relList
-PASS Unscopable handled correctly for relList property on HTMLAreaElement
-PASS HTMLAreaElement interface: attribute referrerPolicy
-PASS Unscopable handled correctly for referrerPolicy property on HTMLAreaElement
-PASS HTMLAreaElement interface: attribute noHref
-PASS Unscopable handled correctly for noHref property on HTMLAreaElement
-PASS HTMLAreaElement interface: attribute href
-PASS Unscopable handled correctly for href property on HTMLAreaElement
-PASS HTMLAreaElement interface: stringifier
-PASS HTMLAreaElement interface: attribute origin
-PASS Unscopable handled correctly for origin property on HTMLAreaElement
-PASS HTMLAreaElement interface: attribute protocol
-PASS Unscopable handled correctly for protocol property on HTMLAreaElement
-PASS HTMLAreaElement interface: attribute username
-PASS Unscopable handled correctly for username property on HTMLAreaElement
-PASS HTMLAreaElement interface: attribute password
-PASS Unscopable handled correctly for password property on HTMLAreaElement
-PASS HTMLAreaElement interface: attribute host
-PASS Unscopable handled correctly for host property on HTMLAreaElement
-PASS HTMLAreaElement interface: attribute hostname
-PASS Unscopable handled correctly for hostname property on HTMLAreaElement
-PASS HTMLAreaElement interface: attribute port
-PASS Unscopable handled correctly for port property on HTMLAreaElement
-PASS HTMLAreaElement interface: attribute pathname
-PASS Unscopable handled correctly for pathname property on HTMLAreaElement
-PASS HTMLAreaElement interface: attribute search
-PASS Unscopable handled correctly for search property on HTMLAreaElement
-PASS HTMLAreaElement interface: attribute hash
-PASS Unscopable handled correctly for hash property on HTMLAreaElement
-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 Unscopable handled correctly for caption property on HTMLTableElement
-PASS HTMLTableElement interface: operation createCaption()
-PASS Unscopable handled correctly for createCaption() on HTMLTableElement
-PASS HTMLTableElement interface: operation deleteCaption()
-PASS Unscopable handled correctly for deleteCaption() on HTMLTableElement
-PASS HTMLTableElement interface: attribute tHead
-PASS Unscopable handled correctly for tHead property on HTMLTableElement
-PASS HTMLTableElement interface: operation createTHead()
-PASS Unscopable handled correctly for createTHead() on HTMLTableElement
-PASS HTMLTableElement interface: operation deleteTHead()
-PASS Unscopable handled correctly for deleteTHead() on HTMLTableElement
-PASS HTMLTableElement interface: attribute tFoot
-PASS Unscopable handled correctly for tFoot property on HTMLTableElement
-PASS HTMLTableElement interface: operation createTFoot()
-PASS Unscopable handled correctly for createTFoot() on HTMLTableElement
-PASS HTMLTableElement interface: operation deleteTFoot()
-PASS Unscopable handled correctly for deleteTFoot() on HTMLTableElement
-PASS HTMLTableElement interface: attribute tBodies
-PASS Unscopable handled correctly for tBodies property on HTMLTableElement
-PASS HTMLTableElement interface: operation createTBody()
-PASS Unscopable handled correctly for createTBody() on HTMLTableElement
-PASS HTMLTableElement interface: attribute rows
-PASS Unscopable handled correctly for rows property on HTMLTableElement
-PASS HTMLTableElement interface: operation insertRow(long)
-PASS Unscopable handled correctly for insertRow(long) on HTMLTableElement
-PASS HTMLTableElement interface: operation deleteRow(long)
-PASS Unscopable handled correctly for deleteRow(long) on HTMLTableElement
-PASS HTMLTableElement interface: attribute align
-PASS Unscopable handled correctly for align property on HTMLTableElement
-PASS HTMLTableElement interface: attribute border
-PASS Unscopable handled correctly for border property on HTMLTableElement
-PASS HTMLTableElement interface: attribute frame
-PASS Unscopable handled correctly for frame property on HTMLTableElement
-PASS HTMLTableElement interface: attribute rules
-PASS Unscopable handled correctly for rules property on HTMLTableElement
-PASS HTMLTableElement interface: attribute summary
-PASS Unscopable handled correctly for summary property on HTMLTableElement
-PASS HTMLTableElement interface: attribute width
-PASS Unscopable handled correctly for width property on HTMLTableElement
-PASS HTMLTableElement interface: attribute bgColor
-PASS Unscopable handled correctly for bgColor property on HTMLTableElement
-PASS HTMLTableElement interface: attribute cellPadding
-PASS Unscopable handled correctly for cellPadding property on HTMLTableElement
-PASS HTMLTableElement interface: attribute cellSpacing
-PASS Unscopable handled correctly for cellSpacing property on HTMLTableElement
-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(long)" with the proper type
-PASS HTMLTableElement interface: calling insertRow(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 Unscopable handled correctly for align property on HTMLTableCaptionElement
-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 Unscopable handled correctly for span property on HTMLTableColElement
-PASS HTMLTableColElement interface: attribute align
-PASS Unscopable handled correctly for align property on HTMLTableColElement
-PASS HTMLTableColElement interface: attribute ch
-PASS Unscopable handled correctly for ch property on HTMLTableColElement
-PASS HTMLTableColElement interface: attribute chOff
-PASS Unscopable handled correctly for chOff property on HTMLTableColElement
-PASS HTMLTableColElement interface: attribute vAlign
-PASS Unscopable handled correctly for vAlign property on HTMLTableColElement
-PASS HTMLTableColElement interface: attribute width
-PASS Unscopable handled correctly for width property on HTMLTableColElement
-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 Unscopable handled correctly for rows property on HTMLTableSectionElement
-PASS HTMLTableSectionElement interface: operation insertRow(long)
-PASS Unscopable handled correctly for insertRow(long) on HTMLTableSectionElement
-PASS HTMLTableSectionElement interface: operation deleteRow(long)
-PASS Unscopable handled correctly for deleteRow(long) on HTMLTableSectionElement
-PASS HTMLTableSectionElement interface: attribute align
-PASS Unscopable handled correctly for align property on HTMLTableSectionElement
-PASS HTMLTableSectionElement interface: attribute ch
-PASS Unscopable handled correctly for ch property on HTMLTableSectionElement
-PASS HTMLTableSectionElement interface: attribute chOff
-PASS Unscopable handled correctly for chOff property on HTMLTableSectionElement
-PASS HTMLTableSectionElement interface: attribute vAlign
-PASS Unscopable handled correctly for vAlign property on HTMLTableSectionElement
-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(long)" with the proper type
-PASS HTMLTableSectionElement interface: calling insertRow(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(long)" with the proper type
-PASS HTMLTableSectionElement interface: calling insertRow(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(long)" with the proper type
-PASS HTMLTableSectionElement interface: calling insertRow(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 Unscopable handled correctly for rowIndex property on HTMLTableRowElement
-PASS HTMLTableRowElement interface: attribute sectionRowIndex
-PASS Unscopable handled correctly for sectionRowIndex property on HTMLTableRowElement
-PASS HTMLTableRowElement interface: attribute cells
-PASS Unscopable handled correctly for cells property on HTMLTableRowElement
-PASS HTMLTableRowElement interface: operation insertCell(long)
-PASS Unscopable handled correctly for insertCell(long) on HTMLTableRowElement
-PASS HTMLTableRowElement interface: operation deleteCell(long)
-PASS Unscopable handled correctly for deleteCell(long) on HTMLTableRowElement
-PASS HTMLTableRowElement interface: attribute align
-PASS Unscopable handled correctly for align property on HTMLTableRowElement
-PASS HTMLTableRowElement interface: attribute ch
-PASS Unscopable handled correctly for ch property on HTMLTableRowElement
-PASS HTMLTableRowElement interface: attribute chOff
-PASS Unscopable handled correctly for chOff property on HTMLTableRowElement
-PASS HTMLTableRowElement interface: attribute vAlign
-PASS Unscopable handled correctly for vAlign property on HTMLTableRowElement
-PASS HTMLTableRowElement interface: attribute bgColor
-PASS Unscopable handled correctly for bgColor property on HTMLTableRowElement
-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(long)" with the proper type
-PASS HTMLTableRowElement interface: calling insertCell(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 Unscopable handled correctly for colSpan property on HTMLTableCellElement
-PASS HTMLTableCellElement interface: attribute rowSpan
-PASS Unscopable handled correctly for rowSpan property on HTMLTableCellElement
-PASS HTMLTableCellElement interface: attribute headers
-PASS Unscopable handled correctly for headers property on HTMLTableCellElement
-PASS HTMLTableCellElement interface: attribute cellIndex
-PASS Unscopable handled correctly for cellIndex property on HTMLTableCellElement
-PASS HTMLTableCellElement interface: attribute scope
-PASS Unscopable handled correctly for scope property on HTMLTableCellElement
-PASS HTMLTableCellElement interface: attribute abbr
-PASS Unscopable handled correctly for abbr property on HTMLTableCellElement
-PASS HTMLTableCellElement interface: attribute align
-PASS Unscopable handled correctly for align property on HTMLTableCellElement
-PASS HTMLTableCellElement interface: attribute axis
-PASS Unscopable handled correctly for axis property on HTMLTableCellElement
-PASS HTMLTableCellElement interface: attribute height
-PASS Unscopable handled correctly for height property on HTMLTableCellElement
-PASS HTMLTableCellElement interface: attribute width
-PASS Unscopable handled correctly for width property on HTMLTableCellElement
-PASS HTMLTableCellElement interface: attribute ch
-PASS Unscopable handled correctly for ch property on HTMLTableCellElement
-PASS HTMLTableCellElement interface: attribute chOff
-PASS Unscopable handled correctly for chOff property on HTMLTableCellElement
-PASS HTMLTableCellElement interface: attribute noWrap
-PASS Unscopable handled correctly for noWrap property on HTMLTableCellElement
-PASS HTMLTableCellElement interface: attribute vAlign
-PASS Unscopable handled correctly for vAlign property on HTMLTableCellElement
-PASS HTMLTableCellElement interface: attribute bgColor
-PASS Unscopable handled correctly for bgColor property on HTMLTableCellElement
-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 Unscopable handled correctly for acceptCharset property on HTMLFormElement
-PASS HTMLFormElement interface: attribute action
-PASS Unscopable handled correctly for action property on HTMLFormElement
-PASS HTMLFormElement interface: attribute autocomplete
-PASS Unscopable handled correctly for autocomplete property on HTMLFormElement
-PASS HTMLFormElement interface: attribute enctype
-PASS Unscopable handled correctly for enctype property on HTMLFormElement
-PASS HTMLFormElement interface: attribute encoding
-PASS Unscopable handled correctly for encoding property on HTMLFormElement
-PASS HTMLFormElement interface: attribute method
-PASS Unscopable handled correctly for method property on HTMLFormElement
-PASS HTMLFormElement interface: attribute name
-PASS Unscopable handled correctly for name property on HTMLFormElement
-PASS HTMLFormElement interface: attribute noValidate
-PASS Unscopable handled correctly for noValidate property on HTMLFormElement
-PASS HTMLFormElement interface: attribute target
-PASS Unscopable handled correctly for target property on HTMLFormElement
-PASS HTMLFormElement interface: attribute elements
-PASS Unscopable handled correctly for elements property on HTMLFormElement
-PASS HTMLFormElement interface: attribute length
-PASS Unscopable handled correctly for length property on HTMLFormElement
-PASS HTMLFormElement interface: operation submit()
-PASS Unscopable handled correctly for submit() on HTMLFormElement
-PASS HTMLFormElement interface: operation reset()
-PASS Unscopable handled correctly for reset() on HTMLFormElement
-PASS HTMLFormElement interface: operation checkValidity()
-PASS Unscopable handled correctly for checkValidity() on HTMLFormElement
-PASS HTMLFormElement interface: operation reportValidity()
-PASS Unscopable handled correctly for reportValidity() on HTMLFormElement
-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
-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 "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 Unscopable handled correctly for form property on HTMLLabelElement
-PASS HTMLLabelElement interface: attribute htmlFor
-PASS Unscopable handled correctly for htmlFor property on HTMLLabelElement
-PASS HTMLLabelElement interface: attribute control
-PASS Unscopable handled correctly for control property on HTMLLabelElement
-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 Unscopable handled correctly for accept property on HTMLInputElement
-PASS HTMLInputElement interface: attribute alt
-PASS Unscopable handled correctly for alt property on HTMLInputElement
-PASS HTMLInputElement interface: attribute autocomplete
-PASS Unscopable handled correctly for autocomplete property on HTMLInputElement
-PASS HTMLInputElement interface: attribute autofocus
-PASS Unscopable handled correctly for autofocus property on HTMLInputElement
-PASS HTMLInputElement interface: attribute defaultChecked
-PASS Unscopable handled correctly for defaultChecked property on HTMLInputElement
-PASS HTMLInputElement interface: attribute checked
-PASS Unscopable handled correctly for checked property on HTMLInputElement
-PASS HTMLInputElement interface: attribute dirName
-PASS Unscopable handled correctly for dirName property on HTMLInputElement
-PASS HTMLInputElement interface: attribute disabled
-PASS Unscopable handled correctly for disabled property on HTMLInputElement
-PASS HTMLInputElement interface: attribute form
-PASS Unscopable handled correctly for form property on HTMLInputElement
-PASS HTMLInputElement interface: attribute files
-PASS Unscopable handled correctly for files property on HTMLInputElement
-PASS HTMLInputElement interface: attribute formAction
-PASS Unscopable handled correctly for formAction property on HTMLInputElement
-PASS HTMLInputElement interface: attribute formEnctype
-PASS Unscopable handled correctly for formEnctype property on HTMLInputElement
-PASS HTMLInputElement interface: attribute formMethod
-PASS Unscopable handled correctly for formMethod property on HTMLInputElement
-PASS HTMLInputElement interface: attribute formNoValidate
-PASS Unscopable handled correctly for formNoValidate property on HTMLInputElement
-PASS HTMLInputElement interface: attribute formTarget
-PASS Unscopable handled correctly for formTarget property on HTMLInputElement
-PASS HTMLInputElement interface: attribute height
-PASS Unscopable handled correctly for height property on HTMLInputElement
-PASS HTMLInputElement interface: attribute indeterminate
-PASS Unscopable handled correctly for indeterminate property on HTMLInputElement
-PASS HTMLInputElement interface: attribute list
-PASS Unscopable handled correctly for list property on HTMLInputElement
-PASS HTMLInputElement interface: attribute max
-PASS Unscopable handled correctly for max property on HTMLInputElement
-PASS HTMLInputElement interface: attribute maxLength
-PASS Unscopable handled correctly for maxLength property on HTMLInputElement
-PASS HTMLInputElement interface: attribute min
-PASS Unscopable handled correctly for min property on HTMLInputElement
-PASS HTMLInputElement interface: attribute minLength
-PASS Unscopable handled correctly for minLength property on HTMLInputElement
-PASS HTMLInputElement interface: attribute multiple
-PASS Unscopable handled correctly for multiple property on HTMLInputElement
-PASS HTMLInputElement interface: attribute name
-PASS Unscopable handled correctly for name property on HTMLInputElement
-PASS HTMLInputElement interface: attribute pattern
-PASS Unscopable handled correctly for pattern property on HTMLInputElement
-PASS HTMLInputElement interface: attribute placeholder
-PASS Unscopable handled correctly for placeholder property on HTMLInputElement
-PASS HTMLInputElement interface: attribute readOnly
-PASS Unscopable handled correctly for readOnly property on HTMLInputElement
-PASS HTMLInputElement interface: attribute required
-PASS Unscopable handled correctly for required property on HTMLInputElement
-PASS HTMLInputElement interface: attribute size
-PASS Unscopable handled correctly for size property on HTMLInputElement
-PASS HTMLInputElement interface: attribute src
-PASS Unscopable handled correctly for src property on HTMLInputElement
-PASS HTMLInputElement interface: attribute step
-PASS Unscopable handled correctly for step property on HTMLInputElement
-PASS HTMLInputElement interface: attribute type
-PASS Unscopable handled correctly for type property on HTMLInputElement
-PASS HTMLInputElement interface: attribute defaultValue
-PASS Unscopable handled correctly for defaultValue property on HTMLInputElement
-PASS HTMLInputElement interface: attribute value
-PASS Unscopable handled correctly for value property on HTMLInputElement
-PASS HTMLInputElement interface: attribute valueAsDate
-PASS Unscopable handled correctly for valueAsDate property on HTMLInputElement
-PASS HTMLInputElement interface: attribute valueAsNumber
-PASS Unscopable handled correctly for valueAsNumber property on HTMLInputElement
-PASS HTMLInputElement interface: attribute width
-PASS Unscopable handled correctly for width property on HTMLInputElement
-PASS HTMLInputElement interface: operation stepUp(long)
-PASS Unscopable handled correctly for stepUp(long) on HTMLInputElement
-PASS HTMLInputElement interface: operation stepDown(long)
-PASS Unscopable handled correctly for stepDown(long) on HTMLInputElement
-PASS HTMLInputElement interface: attribute willValidate
-PASS Unscopable handled correctly for willValidate property on HTMLInputElement
-PASS HTMLInputElement interface: attribute validity
-PASS Unscopable handled correctly for validity property on HTMLInputElement
-PASS HTMLInputElement interface: attribute validationMessage
-PASS Unscopable handled correctly for validationMessage property on HTMLInputElement
-PASS HTMLInputElement interface: operation checkValidity()
-PASS Unscopable handled correctly for checkValidity() on HTMLInputElement
-PASS HTMLInputElement interface: operation reportValidity()
-PASS Unscopable handled correctly for reportValidity() on HTMLInputElement
-PASS HTMLInputElement interface: operation setCustomValidity(DOMString)
-PASS Unscopable handled correctly for setCustomValidity(DOMString) on HTMLInputElement
-PASS HTMLInputElement interface: attribute labels
-PASS Unscopable handled correctly for labels property on HTMLInputElement
-PASS HTMLInputElement interface: operation select()
-PASS Unscopable handled correctly for select() on HTMLInputElement
-PASS HTMLInputElement interface: attribute selectionStart
-PASS Unscopable handled correctly for selectionStart property on HTMLInputElement
-PASS HTMLInputElement interface: attribute selectionEnd
-PASS Unscopable handled correctly for selectionEnd property on HTMLInputElement
-PASS HTMLInputElement interface: attribute selectionDirection
-PASS Unscopable handled correctly for selectionDirection property on HTMLInputElement
-PASS HTMLInputElement interface: operation setRangeText(DOMString)
-PASS Unscopable handled correctly for setRangeText(DOMString) on HTMLInputElement
-PASS HTMLInputElement interface: operation setRangeText(DOMString, unsigned long, unsigned long, SelectionMode)
-PASS Unscopable handled correctly for setRangeText(DOMString, unsigned long, unsigned long, SelectionMode) on HTMLInputElement
-PASS HTMLInputElement interface: operation setSelectionRange(unsigned long, unsigned long, DOMString)
-PASS Unscopable handled correctly for setSelectionRange(unsigned long, unsigned long, DOMString) on HTMLInputElement
-PASS HTMLInputElement interface: attribute align
-PASS Unscopable handled correctly for align property on HTMLInputElement
-PASS HTMLInputElement interface: attribute useMap
-PASS Unscopable handled correctly for useMap property on HTMLInputElement
-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 "autofocus" 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(long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(long) on document.createElement("input") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "stepDown(long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(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, SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, 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, DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, 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 "autofocus" 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(long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(long) on createInput("text") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("text") must inherit property "stepDown(long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(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, SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, SelectionMode) on createInput("text") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("text") must inherit property "setSelectionRange(unsigned long, unsigned long, DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, 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 "autofocus" 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(long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(long) on createInput("hidden") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "stepDown(long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(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, SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, SelectionMode) on createInput("hidden") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "setSelectionRange(unsigned long, unsigned long, DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, 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 "autofocus" 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(long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(long) on createInput("search") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("search") must inherit property "stepDown(long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(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, SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, SelectionMode) on createInput("search") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("search") must inherit property "setSelectionRange(unsigned long, unsigned long, DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, 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 "autofocus" 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(long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(long) on createInput("tel") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("tel") must inherit property "stepDown(long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(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, SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, SelectionMode) on createInput("tel") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("tel") must inherit property "setSelectionRange(unsigned long, unsigned long, DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, 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 "autofocus" 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(long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(long) on createInput("url") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("url") must inherit property "stepDown(long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(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, SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, SelectionMode) on createInput("url") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("url") must inherit property "setSelectionRange(unsigned long, unsigned long, DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, 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 "autofocus" 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(long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(long) on createInput("email") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("email") must inherit property "stepDown(long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(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, SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, SelectionMode) on createInput("email") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("email") must inherit property "setSelectionRange(unsigned long, unsigned long, DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, 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 "autofocus" 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(long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(long) on createInput("password") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("password") must inherit property "stepDown(long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(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, SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, SelectionMode) on createInput("password") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("password") must inherit property "setSelectionRange(unsigned long, unsigned long, DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, 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 "autofocus" 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(long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(long) on createInput("date") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("date") must inherit property "stepDown(long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(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, SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, SelectionMode) on createInput("date") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("date") must inherit property "setSelectionRange(unsigned long, unsigned long, DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, 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 "autofocus" 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(long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(long) on createInput("month") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("month") must inherit property "stepDown(long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(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, SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, SelectionMode) on createInput("month") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("month") must inherit property "setSelectionRange(unsigned long, unsigned long, DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, 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 "autofocus" 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(long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(long) on createInput("week") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("week") must inherit property "stepDown(long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(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, SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, SelectionMode) on createInput("week") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("week") must inherit property "setSelectionRange(unsigned long, unsigned long, DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, 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 "autofocus" 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(long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(long) on createInput("time") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("time") must inherit property "stepDown(long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(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, SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, SelectionMode) on createInput("time") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("time") must inherit property "setSelectionRange(unsigned long, unsigned long, DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, 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 "autofocus" 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(long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(long) on createInput("datetime-local") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "stepDown(long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(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, SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, 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, DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, 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 "autofocus" 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(long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(long) on createInput("number") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("number") must inherit property "stepDown(long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(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, SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, SelectionMode) on createInput("number") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("number") must inherit property "setSelectionRange(unsigned long, unsigned long, DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, 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 "autofocus" 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(long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(long) on createInput("range") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("range") must inherit property "stepDown(long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(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, SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, SelectionMode) on createInput("range") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("range") must inherit property "setSelectionRange(unsigned long, unsigned long, DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, 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 "autofocus" 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(long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(long) on createInput("color") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("color") must inherit property "stepDown(long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(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, SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, SelectionMode) on createInput("color") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("color") must inherit property "setSelectionRange(unsigned long, unsigned long, DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, 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 "autofocus" 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(long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(long) on createInput("checkbox") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "stepDown(long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(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, SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, SelectionMode) on createInput("checkbox") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "setSelectionRange(unsigned long, unsigned long, DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, 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 "autofocus" 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(long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(long) on createInput("radio") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("radio") must inherit property "stepDown(long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(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, SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, SelectionMode) on createInput("radio") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("radio") must inherit property "setSelectionRange(unsigned long, unsigned long, DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, 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 "autofocus" 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
-FAIL HTMLInputElement interface: createInput("file") must inherit property "files" with the proper type Unrecognized type FileList
-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(long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(long) on createInput("file") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("file") must inherit property "stepDown(long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(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, SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, SelectionMode) on createInput("file") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("file") must inherit property "setSelectionRange(unsigned long, unsigned long, DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, 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 "autofocus" 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(long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(long) on createInput("submit") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("submit") must inherit property "stepDown(long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(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, SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, SelectionMode) on createInput("submit") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("submit") must inherit property "setSelectionRange(unsigned long, unsigned long, DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, 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 "autofocus" 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(long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(long) on createInput("image") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("image") must inherit property "stepDown(long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(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, SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, SelectionMode) on createInput("image") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("image") must inherit property "setSelectionRange(unsigned long, unsigned long, DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, 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 "autofocus" 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(long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(long) on createInput("reset") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("reset") must inherit property "stepDown(long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(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, SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, SelectionMode) on createInput("reset") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("reset") must inherit property "setSelectionRange(unsigned long, unsigned long, DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, 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 "autofocus" 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(long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(long) on createInput("button") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("button") must inherit property "stepDown(long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(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, SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, SelectionMode) on createInput("button") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("button") must inherit property "setSelectionRange(unsigned long, unsigned long, DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, 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 autofocus
-PASS Unscopable handled correctly for autofocus property on HTMLButtonElement
-PASS HTMLButtonElement interface: attribute disabled
-PASS Unscopable handled correctly for disabled property on HTMLButtonElement
-PASS HTMLButtonElement interface: attribute form
-PASS Unscopable handled correctly for form property on HTMLButtonElement
-PASS HTMLButtonElement interface: attribute formAction
-PASS Unscopable handled correctly for formAction property on HTMLButtonElement
-PASS HTMLButtonElement interface: attribute formEnctype
-PASS Unscopable handled correctly for formEnctype property on HTMLButtonElement
-PASS HTMLButtonElement interface: attribute formMethod
-PASS Unscopable handled correctly for formMethod property on HTMLButtonElement
-PASS HTMLButtonElement interface: attribute formNoValidate
-PASS Unscopable handled correctly for formNoValidate property on HTMLButtonElement
-PASS HTMLButtonElement interface: attribute formTarget
-PASS Unscopable handled correctly for formTarget property on HTMLButtonElement
-PASS HTMLButtonElement interface: attribute name
-PASS Unscopable handled correctly for name property on HTMLButtonElement
-PASS HTMLButtonElement interface: attribute type
-PASS Unscopable handled correctly for type property on HTMLButtonElement
-PASS HTMLButtonElement interface: attribute value
-PASS Unscopable handled correctly for value property on HTMLButtonElement
-PASS HTMLButtonElement interface: attribute willValidate
-PASS Unscopable handled correctly for willValidate property on HTMLButtonElement
-PASS HTMLButtonElement interface: attribute validity
-PASS Unscopable handled correctly for validity property on HTMLButtonElement
-PASS HTMLButtonElement interface: attribute validationMessage
-PASS Unscopable handled correctly for validationMessage property on HTMLButtonElement
-PASS HTMLButtonElement interface: operation checkValidity()
-PASS Unscopable handled correctly for checkValidity() on HTMLButtonElement
-PASS HTMLButtonElement interface: operation reportValidity()
-PASS Unscopable handled correctly for reportValidity() on HTMLButtonElement
-PASS HTMLButtonElement interface: operation setCustomValidity(DOMString)
-PASS Unscopable handled correctly for setCustomValidity(DOMString) on HTMLButtonElement
-PASS HTMLButtonElement interface: attribute labels
-PASS Unscopable handled correctly for labels property on HTMLButtonElement
-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 "autofocus" with the proper type
-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 Unscopable handled correctly for autocomplete property on HTMLSelectElement
-PASS HTMLSelectElement interface: attribute autofocus
-PASS Unscopable handled correctly for autofocus property on HTMLSelectElement
-PASS HTMLSelectElement interface: attribute disabled
-PASS Unscopable handled correctly for disabled property on HTMLSelectElement
-PASS HTMLSelectElement interface: attribute form
-PASS Unscopable handled correctly for form property on HTMLSelectElement
-PASS HTMLSelectElement interface: attribute multiple
-PASS Unscopable handled correctly for multiple property on HTMLSelectElement
-PASS HTMLSelectElement interface: attribute name
-PASS Unscopable handled correctly for name property on HTMLSelectElement
-PASS HTMLSelectElement interface: attribute required
-PASS Unscopable handled correctly for required property on HTMLSelectElement
-PASS HTMLSelectElement interface: attribute size
-PASS Unscopable handled correctly for size property on HTMLSelectElement
-PASS HTMLSelectElement interface: attribute type
-PASS Unscopable handled correctly for type property on HTMLSelectElement
-PASS HTMLSelectElement interface: attribute options
-PASS Unscopable handled correctly for options property on HTMLSelectElement
-PASS HTMLSelectElement interface: attribute length
-PASS Unscopable handled correctly for length property on HTMLSelectElement
-PASS HTMLSelectElement interface: operation item(unsigned long)
-PASS Unscopable handled correctly for item(unsigned long) on HTMLSelectElement
-PASS HTMLSelectElement interface: operation namedItem(DOMString)
-PASS Unscopable handled correctly for namedItem(DOMString) on HTMLSelectElement
-PASS HTMLSelectElement interface: operation add([object Object],[object Object], [object Object],[object Object])
-PASS Unscopable handled correctly for add([object Object],[object Object], [object Object],[object Object]) on HTMLSelectElement
-PASS HTMLSelectElement interface: operation remove()
-PASS Unscopable handled correctly for remove() on HTMLSelectElement
-PASS HTMLSelectElement interface: operation remove(long)
-PASS Unscopable handled correctly for remove(long) on HTMLSelectElement
-PASS HTMLSelectElement interface: attribute selectedOptions
-PASS Unscopable handled correctly for selectedOptions property on HTMLSelectElement
-PASS HTMLSelectElement interface: attribute selectedIndex
-PASS Unscopable handled correctly for selectedIndex property on HTMLSelectElement
-PASS HTMLSelectElement interface: attribute value
-PASS Unscopable handled correctly for value property on HTMLSelectElement
-PASS HTMLSelectElement interface: attribute willValidate
-PASS Unscopable handled correctly for willValidate property on HTMLSelectElement
-PASS HTMLSelectElement interface: attribute validity
-PASS Unscopable handled correctly for validity property on HTMLSelectElement
-PASS HTMLSelectElement interface: attribute validationMessage
-PASS Unscopable handled correctly for validationMessage property on HTMLSelectElement
-PASS HTMLSelectElement interface: operation checkValidity()
-PASS Unscopable handled correctly for checkValidity() on HTMLSelectElement
-PASS HTMLSelectElement interface: operation reportValidity()
-PASS Unscopable handled correctly for reportValidity() on HTMLSelectElement
-PASS HTMLSelectElement interface: operation setCustomValidity(DOMString)
-PASS Unscopable handled correctly for setCustomValidity(DOMString) on HTMLSelectElement
-PASS HTMLSelectElement interface: attribute labels
-PASS Unscopable handled correctly for labels property on HTMLSelectElement
-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 "autofocus" 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([object Object],[object Object], [object Object],[object Object])" with the proper type
-PASS HTMLSelectElement interface: calling add([object Object],[object Object], [object Object],[object Object]) 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 Unscopable handled correctly for options property on HTMLDataListElement
-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 Unscopable handled correctly for disabled property on HTMLOptGroupElement
-PASS HTMLOptGroupElement interface: attribute label
-PASS Unscopable handled correctly for label property on HTMLOptGroupElement
-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: 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 Unscopable handled correctly for disabled property on HTMLOptionElement
-PASS HTMLOptionElement interface: attribute form
-PASS Unscopable handled correctly for form property on HTMLOptionElement
-PASS HTMLOptionElement interface: attribute label
-PASS Unscopable handled correctly for label property on HTMLOptionElement
-PASS HTMLOptionElement interface: attribute defaultSelected
-PASS Unscopable handled correctly for defaultSelected property on HTMLOptionElement
-PASS HTMLOptionElement interface: attribute selected
-PASS Unscopable handled correctly for selected property on HTMLOptionElement
-PASS HTMLOptionElement interface: attribute value
-PASS Unscopable handled correctly for value property on HTMLOptionElement
-PASS HTMLOptionElement interface: attribute text
-PASS Unscopable handled correctly for text property on HTMLOptionElement
-PASS HTMLOptionElement interface: attribute index
-PASS Unscopable handled correctly for index property on HTMLOptionElement
-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 Unscopable handled correctly for autocomplete property on HTMLTextAreaElement
-PASS HTMLTextAreaElement interface: attribute autofocus
-PASS Unscopable handled correctly for autofocus property on HTMLTextAreaElement
-PASS HTMLTextAreaElement interface: attribute cols
-PASS Unscopable handled correctly for cols property on HTMLTextAreaElement
-PASS HTMLTextAreaElement interface: attribute dirName
-PASS Unscopable handled correctly for dirName property on HTMLTextAreaElement
-PASS HTMLTextAreaElement interface: attribute disabled
-PASS Unscopable handled correctly for disabled property on HTMLTextAreaElement
-PASS HTMLTextAreaElement interface: attribute form
-PASS Unscopable handled correctly for form property on HTMLTextAreaElement
-PASS HTMLTextAreaElement interface: attribute maxLength
-PASS Unscopable handled correctly for maxLength property on HTMLTextAreaElement
-PASS HTMLTextAreaElement interface: attribute minLength
-PASS Unscopable handled correctly for minLength property on HTMLTextAreaElement
-PASS HTMLTextAreaElement interface: attribute name
-PASS Unscopable handled correctly for name property on HTMLTextAreaElement
-PASS HTMLTextAreaElement interface: attribute placeholder
-PASS Unscopable handled correctly for placeholder property on HTMLTextAreaElement
-PASS HTMLTextAreaElement interface: attribute readOnly
-PASS Unscopable handled correctly for readOnly property on HTMLTextAreaElement
-PASS HTMLTextAreaElement interface: attribute required
-PASS Unscopable handled correctly for required property on HTMLTextAreaElement
-PASS HTMLTextAreaElement interface: attribute rows
-PASS Unscopable handled correctly for rows property on HTMLTextAreaElement
-PASS HTMLTextAreaElement interface: attribute wrap
-PASS Unscopable handled correctly for wrap property on HTMLTextAreaElement
-PASS HTMLTextAreaElement interface: attribute type
-PASS Unscopable handled correctly for type property on HTMLTextAreaElement
-PASS HTMLTextAreaElement interface: attribute defaultValue
-PASS Unscopable handled correctly for defaultValue property on HTMLTextAreaElement
-PASS HTMLTextAreaElement interface: attribute value
-PASS Unscopable handled correctly for value property on HTMLTextAreaElement
-PASS HTMLTextAreaElement interface: attribute textLength
-PASS Unscopable handled correctly for textLength property on HTMLTextAreaElement
-PASS HTMLTextAreaElement interface: attribute willValidate
-PASS Unscopable handled correctly for willValidate property on HTMLTextAreaElement
-PASS HTMLTextAreaElement interface: attribute validity
-PASS Unscopable handled correctly for validity property on HTMLTextAreaElement
-PASS HTMLTextAreaElement interface: attribute validationMessage
-PASS Unscopable handled correctly for validationMessage property on HTMLTextAreaElement
-PASS HTMLTextAreaElement interface: operation checkValidity()
-PASS Unscopable handled correctly for checkValidity() on HTMLTextAreaElement
-PASS HTMLTextAreaElement interface: operation reportValidity()
-PASS Unscopable handled correctly for reportValidity() on HTMLTextAreaElement
-PASS HTMLTextAreaElement interface: operation setCustomValidity(DOMString)
-PASS Unscopable handled correctly for setCustomValidity(DOMString) on HTMLTextAreaElement
-PASS HTMLTextAreaElement interface: attribute labels
-PASS Unscopable handled correctly for labels property on HTMLTextAreaElement
-PASS HTMLTextAreaElement interface: operation select()
-PASS Unscopable handled correctly for select() on HTMLTextAreaElement
-PASS HTMLTextAreaElement interface: attribute selectionStart
-PASS Unscopable handled correctly for selectionStart property on HTMLTextAreaElement
-PASS HTMLTextAreaElement interface: attribute selectionEnd
-PASS Unscopable handled correctly for selectionEnd property on HTMLTextAreaElement
-PASS HTMLTextAreaElement interface: attribute selectionDirection
-PASS Unscopable handled correctly for selectionDirection property on HTMLTextAreaElement
-PASS HTMLTextAreaElement interface: operation setRangeText(DOMString)
-PASS Unscopable handled correctly for setRangeText(DOMString) on HTMLTextAreaElement
-PASS HTMLTextAreaElement interface: operation setRangeText(DOMString, unsigned long, unsigned long, SelectionMode)
-PASS Unscopable handled correctly for setRangeText(DOMString, unsigned long, unsigned long, SelectionMode) on HTMLTextAreaElement
-PASS HTMLTextAreaElement interface: operation setSelectionRange(unsigned long, unsigned long, DOMString)
-PASS Unscopable handled correctly for setSelectionRange(unsigned long, unsigned long, DOMString) on HTMLTextAreaElement
-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 "autofocus" 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, SelectionMode)" with the proper type
-PASS HTMLTextAreaElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, 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, DOMString)" with the proper type
-PASS HTMLTextAreaElement interface: calling setSelectionRange(unsigned long, unsigned long, 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 Unscopable handled correctly for htmlFor property on HTMLOutputElement
-PASS HTMLOutputElement interface: attribute form
-PASS Unscopable handled correctly for form property on HTMLOutputElement
-PASS HTMLOutputElement interface: attribute name
-PASS Unscopable handled correctly for name property on HTMLOutputElement
-PASS HTMLOutputElement interface: attribute type
-PASS Unscopable handled correctly for type property on HTMLOutputElement
-PASS HTMLOutputElement interface: attribute defaultValue
-PASS Unscopable handled correctly for defaultValue property on HTMLOutputElement
-PASS HTMLOutputElement interface: attribute value
-PASS Unscopable handled correctly for value property on HTMLOutputElement
-PASS HTMLOutputElement interface: attribute willValidate
-PASS Unscopable handled correctly for willValidate property on HTMLOutputElement
-PASS HTMLOutputElement interface: attribute validity
-PASS Unscopable handled correctly for validity property on HTMLOutputElement
-PASS HTMLOutputElement interface: attribute validationMessage
-PASS Unscopable handled correctly for validationMessage property on HTMLOutputElement
-PASS HTMLOutputElement interface: operation checkValidity()
-PASS Unscopable handled correctly for checkValidity() on HTMLOutputElement
-PASS HTMLOutputElement interface: operation reportValidity()
-PASS Unscopable handled correctly for reportValidity() on HTMLOutputElement
-PASS HTMLOutputElement interface: operation setCustomValidity(DOMString)
-PASS Unscopable handled correctly for setCustomValidity(DOMString) on HTMLOutputElement
-PASS HTMLOutputElement interface: attribute labels
-PASS Unscopable handled correctly for labels property on HTMLOutputElement
-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 Unscopable handled correctly for value property on HTMLProgressElement
-PASS HTMLProgressElement interface: attribute max
-PASS Unscopable handled correctly for max property on HTMLProgressElement
-PASS HTMLProgressElement interface: attribute position
-PASS Unscopable handled correctly for position property on HTMLProgressElement
-PASS HTMLProgressElement interface: attribute labels
-PASS Unscopable handled correctly for labels property on HTMLProgressElement
-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 Unscopable handled correctly for value property on HTMLMeterElement
-PASS HTMLMeterElement interface: attribute min
-PASS Unscopable handled correctly for min property on HTMLMeterElement
-PASS HTMLMeterElement interface: attribute max
-PASS Unscopable handled correctly for max property on HTMLMeterElement
-PASS HTMLMeterElement interface: attribute low
-PASS Unscopable handled correctly for low property on HTMLMeterElement
-PASS HTMLMeterElement interface: attribute high
-PASS Unscopable handled correctly for high property on HTMLMeterElement
-PASS HTMLMeterElement interface: attribute optimum
-PASS Unscopable handled correctly for optimum property on HTMLMeterElement
-PASS HTMLMeterElement interface: attribute labels
-PASS Unscopable handled correctly for labels property on HTMLMeterElement
-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 Unscopable handled correctly for disabled property on HTMLFieldSetElement
-PASS HTMLFieldSetElement interface: attribute form
-PASS Unscopable handled correctly for form property on HTMLFieldSetElement
-PASS HTMLFieldSetElement interface: attribute name
-PASS Unscopable handled correctly for name property on HTMLFieldSetElement
-PASS HTMLFieldSetElement interface: attribute type
-PASS Unscopable handled correctly for type property on HTMLFieldSetElement
-PASS HTMLFieldSetElement interface: attribute elements
-PASS Unscopable handled correctly for elements property on HTMLFieldSetElement
-PASS HTMLFieldSetElement interface: attribute willValidate
-PASS Unscopable handled correctly for willValidate property on HTMLFieldSetElement
-PASS HTMLFieldSetElement interface: attribute validity
-PASS Unscopable handled correctly for validity property on HTMLFieldSetElement
-PASS HTMLFieldSetElement interface: attribute validationMessage
-PASS Unscopable handled correctly for validationMessage property on HTMLFieldSetElement
-PASS HTMLFieldSetElement interface: operation checkValidity()
-PASS Unscopable handled correctly for checkValidity() on HTMLFieldSetElement
-PASS HTMLFieldSetElement interface: operation reportValidity()
-PASS Unscopable handled correctly for reportValidity() on HTMLFieldSetElement
-PASS HTMLFieldSetElement interface: operation setCustomValidity(DOMString)
-PASS Unscopable handled correctly for setCustomValidity(DOMString) on HTMLFieldSetElement
-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 Unscopable handled correctly for form property on HTMLLegendElement
-PASS HTMLLegendElement interface: attribute align
-PASS Unscopable handled correctly for align property on HTMLLegendElement
-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 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 Unscopable handled correctly for valueMissing property on ValidityState
-PASS ValidityState interface: attribute typeMismatch
-PASS Unscopable handled correctly for typeMismatch property on ValidityState
-PASS ValidityState interface: attribute patternMismatch
-PASS Unscopable handled correctly for patternMismatch property on ValidityState
-PASS ValidityState interface: attribute tooLong
-PASS Unscopable handled correctly for tooLong property on ValidityState
-PASS ValidityState interface: attribute tooShort
-PASS Unscopable handled correctly for tooShort property on ValidityState
-PASS ValidityState interface: attribute rangeUnderflow
-PASS Unscopable handled correctly for rangeUnderflow property on ValidityState
-PASS ValidityState interface: attribute rangeOverflow
-PASS Unscopable handled correctly for rangeOverflow property on ValidityState
-PASS ValidityState interface: attribute stepMismatch
-PASS Unscopable handled correctly for stepMismatch property on ValidityState
-PASS ValidityState interface: attribute badInput
-PASS Unscopable handled correctly for badInput property on ValidityState
-PASS ValidityState interface: attribute customError
-PASS Unscopable handled correctly for customError property on ValidityState
-PASS ValidityState interface: attribute valid
-PASS Unscopable handled correctly for valid property on ValidityState
-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 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 Unscopable handled correctly for open property on HTMLDetailsElement
-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 Unscopable handled correctly for open property on HTMLDialogElement
-PASS HTMLDialogElement interface: attribute returnValue
-PASS Unscopable handled correctly for returnValue property on HTMLDialogElement
-PASS HTMLDialogElement interface: operation show()
-PASS Unscopable handled correctly for show() on HTMLDialogElement
-PASS HTMLDialogElement interface: operation showModal()
-PASS Unscopable handled correctly for showModal() on HTMLDialogElement
-PASS HTMLDialogElement interface: operation close(DOMString)
-PASS Unscopable handled correctly for close(DOMString) on HTMLDialogElement
-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 Unscopable handled correctly for src property on HTMLScriptElement
-PASS HTMLScriptElement interface: attribute type
-PASS Unscopable handled correctly for type property on HTMLScriptElement
-PASS HTMLScriptElement interface: attribute noModule
-PASS Unscopable handled correctly for noModule property on HTMLScriptElement
-PASS HTMLScriptElement interface: attribute async
-PASS Unscopable handled correctly for async property on HTMLScriptElement
-PASS HTMLScriptElement interface: attribute defer
-PASS Unscopable handled correctly for defer property on HTMLScriptElement
-PASS HTMLScriptElement interface: attribute crossOrigin
-PASS Unscopable handled correctly for crossOrigin property on HTMLScriptElement
-PASS HTMLScriptElement interface: attribute text
-PASS Unscopable handled correctly for text property on HTMLScriptElement
-FAIL HTMLScriptElement interface: attribute nonce assert_own_property: expected property "nonce" missing
-PASS Unscopable handled correctly for nonce property on HTMLScriptElement
-PASS HTMLScriptElement interface: attribute integrity
-PASS Unscopable handled correctly for integrity property on HTMLScriptElement
-PASS HTMLScriptElement interface: attribute charset
-PASS Unscopable handled correctly for charset property on HTMLScriptElement
-PASS HTMLScriptElement interface: attribute event
-PASS Unscopable handled correctly for event property on HTMLScriptElement
-PASS HTMLScriptElement interface: attribute htmlFor
-PASS Unscopable handled correctly for htmlFor property on HTMLScriptElement
-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 "nonce" with the proper type
-PASS HTMLScriptElement interface: document.createElement("script") must inherit property "integrity" with the proper type
-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 Unscopable handled correctly for content property on HTMLTemplateElement
-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 Unscopable handled correctly for name property on HTMLSlotElement
-PASS HTMLSlotElement interface: operation assignedNodes(AssignedNodesOptions)
-PASS Unscopable handled correctly for assignedNodes(AssignedNodesOptions) on HTMLSlotElement
-PASS HTMLSlotElement interface: operation assignedElements(AssignedNodesOptions)
-PASS Unscopable handled correctly for assignedElements(AssignedNodesOptions) on HTMLSlotElement
-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(AssignedNodesOptions)" with the proper type
-PASS HTMLSlotElement interface: calling assignedNodes(AssignedNodesOptions) on document.createElement("slot") with too few arguments must throw TypeError
-PASS HTMLSlotElement interface: document.createElement("slot") must inherit property "assignedElements(AssignedNodesOptions)" with the proper type
-PASS HTMLSlotElement interface: calling assignedElements(AssignedNodesOptions) 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 Unscopable handled correctly for width property on HTMLCanvasElement
-PASS HTMLCanvasElement interface: attribute height
-PASS Unscopable handled correctly for height property on HTMLCanvasElement
-PASS HTMLCanvasElement interface: operation getContext(DOMString, any)
-PASS Unscopable handled correctly for getContext(DOMString, any) on HTMLCanvasElement
-PASS HTMLCanvasElement interface: operation toDataURL(DOMString, any)
-PASS Unscopable handled correctly for toDataURL(DOMString, any) on HTMLCanvasElement
-PASS HTMLCanvasElement interface: operation toBlob(BlobCallback, DOMString, any)
-PASS Unscopable handled correctly for toBlob(BlobCallback, DOMString, any) on HTMLCanvasElement
-PASS HTMLCanvasElement interface: operation transferControlToOffscreen()
-PASS Unscopable handled correctly for transferControlToOffscreen() on HTMLCanvasElement
-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, any)" with the proper type
-PASS HTMLCanvasElement interface: calling getContext(DOMString, any) on document.createElement("canvas") with too few arguments must throw TypeError
-PASS HTMLCanvasElement interface: document.createElement("canvas") must inherit property "toDataURL(DOMString, any)" with the proper type
-PASS HTMLCanvasElement interface: calling toDataURL(DOMString, any) on document.createElement("canvas") with too few arguments must throw TypeError
-PASS HTMLCanvasElement interface: document.createElement("canvas") must inherit property "toBlob(BlobCallback, DOMString, any)" with the proper type
-PASS HTMLCanvasElement interface: calling toBlob(BlobCallback, DOMString, 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 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 Unscopable handled correctly for canvas property on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation save()
-PASS Unscopable handled correctly for save() on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation restore()
-PASS Unscopable handled correctly for restore() on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation scale(unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for scale(unrestricted double, unrestricted double) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation rotate(unrestricted double)
-PASS Unscopable handled correctly for rotate(unrestricted double) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation translate(unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for translate(unrestricted double, unrestricted double) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation transform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for transform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on CanvasRenderingContext2D
-FAIL CanvasRenderingContext2D interface: operation getTransform() assert_own_property: interface prototype object missing non-static operation expected property "getTransform" missing
-PASS Unscopable handled correctly for getTransform() on CanvasRenderingContext2D
-FAIL CanvasRenderingContext2D interface: operation setTransform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) assert_equals: property has wrong .length expected 0 but got 6
-PASS Unscopable handled correctly for setTransform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on CanvasRenderingContext2D
-FAIL CanvasRenderingContext2D interface: operation setTransform(DOMMatrix2DInit) assert_equals: property has wrong .length expected 0 but got 6
-PASS Unscopable handled correctly for setTransform(DOMMatrix2DInit) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation resetTransform()
-PASS Unscopable handled correctly for resetTransform() on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: attribute globalAlpha
-PASS Unscopable handled correctly for globalAlpha property on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: attribute globalCompositeOperation
-PASS Unscopable handled correctly for globalCompositeOperation property on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: attribute imageSmoothingEnabled
-PASS Unscopable handled correctly for imageSmoothingEnabled property on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: attribute imageSmoothingQuality
-PASS Unscopable handled correctly for imageSmoothingQuality property on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: attribute strokeStyle
-PASS Unscopable handled correctly for strokeStyle property on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: attribute fillStyle
-PASS Unscopable handled correctly for fillStyle property on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation createLinearGradient(double, double, double, double)
-PASS Unscopable handled correctly for createLinearGradient(double, double, double, double) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation createRadialGradient(double, double, double, double, double, double)
-PASS Unscopable handled correctly for createRadialGradient(double, double, double, double, double, double) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation createPattern(CanvasImageSource, DOMString)
-PASS Unscopable handled correctly for createPattern(CanvasImageSource, DOMString) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: attribute shadowOffsetX
-PASS Unscopable handled correctly for shadowOffsetX property on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: attribute shadowOffsetY
-PASS Unscopable handled correctly for shadowOffsetY property on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: attribute shadowBlur
-PASS Unscopable handled correctly for shadowBlur property on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: attribute shadowColor
-PASS Unscopable handled correctly for shadowColor property on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: attribute filter
-PASS Unscopable handled correctly for filter property on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation clearRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for clearRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation fillRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for fillRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation strokeRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for strokeRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation beginPath()
-PASS Unscopable handled correctly for beginPath() on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation fill(CanvasFillRule)
-PASS Unscopable handled correctly for fill(CanvasFillRule) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation fill(Path2D, CanvasFillRule)
-PASS Unscopable handled correctly for fill(Path2D, CanvasFillRule) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation stroke()
-PASS Unscopable handled correctly for stroke() on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation stroke(Path2D)
-PASS Unscopable handled correctly for stroke(Path2D) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation clip(CanvasFillRule)
-PASS Unscopable handled correctly for clip(CanvasFillRule) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation clip(Path2D, CanvasFillRule)
-PASS Unscopable handled correctly for clip(Path2D, CanvasFillRule) on CanvasRenderingContext2D
-FAIL CanvasRenderingContext2D interface: operation resetClip() assert_own_property: interface prototype object missing non-static operation expected property "resetClip" missing
-PASS Unscopable handled correctly for resetClip() on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation isPointInPath(unrestricted double, unrestricted double, CanvasFillRule)
-PASS Unscopable handled correctly for isPointInPath(unrestricted double, unrestricted double, CanvasFillRule) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation isPointInPath(Path2D, unrestricted double, unrestricted double, CanvasFillRule)
-PASS Unscopable handled correctly for isPointInPath(Path2D, unrestricted double, unrestricted double, CanvasFillRule) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation isPointInStroke(unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for isPointInStroke(unrestricted double, unrestricted double) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation isPointInStroke(Path2D, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for isPointInStroke(Path2D, unrestricted double, unrestricted double) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation drawFocusIfNeeded(Element)
-PASS Unscopable handled correctly for drawFocusIfNeeded(Element) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation drawFocusIfNeeded(Path2D, Element)
-PASS Unscopable handled correctly for drawFocusIfNeeded(Path2D, Element) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation scrollPathIntoView()
-PASS Unscopable handled correctly for scrollPathIntoView() on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation scrollPathIntoView(Path2D)
-PASS Unscopable handled correctly for scrollPathIntoView(Path2D) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation fillText(DOMString, unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for fillText(DOMString, unrestricted double, unrestricted double, unrestricted double) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation strokeText(DOMString, unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for strokeText(DOMString, unrestricted double, unrestricted double, unrestricted double) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation measureText(DOMString)
-PASS Unscopable handled correctly for measureText(DOMString) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation drawImage(CanvasImageSource, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for drawImage(CanvasImageSource, unrestricted double, unrestricted double) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation drawImage(CanvasImageSource, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for drawImage(CanvasImageSource, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation drawImage(CanvasImageSource, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for drawImage(CanvasImageSource, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation createImageData(long, long)
-PASS Unscopable handled correctly for createImageData(long, long) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation createImageData(ImageData)
-PASS Unscopable handled correctly for createImageData(ImageData) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation getImageData(long, long, long, long)
-PASS Unscopable handled correctly for getImageData(long, long, long, long) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation putImageData(ImageData, long, long)
-PASS Unscopable handled correctly for putImageData(ImageData, long, long) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation putImageData(ImageData, long, long, long, long, long, long)
-PASS Unscopable handled correctly for putImageData(ImageData, long, long, long, long, long, long) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: attribute lineWidth
-PASS Unscopable handled correctly for lineWidth property on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: attribute lineCap
-PASS Unscopable handled correctly for lineCap property on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: attribute lineJoin
-PASS Unscopable handled correctly for lineJoin property on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: attribute miterLimit
-PASS Unscopable handled correctly for miterLimit property on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation setLineDash([object Object])
-PASS Unscopable handled correctly for setLineDash([object Object]) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation getLineDash()
-PASS Unscopable handled correctly for getLineDash() on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: attribute lineDashOffset
-PASS Unscopable handled correctly for lineDashOffset property on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: attribute font
-PASS Unscopable handled correctly for font property on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: attribute textAlign
-PASS Unscopable handled correctly for textAlign property on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: attribute textBaseline
-PASS Unscopable handled correctly for textBaseline property on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: attribute direction
-PASS Unscopable handled correctly for direction property on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation closePath()
-PASS Unscopable handled correctly for closePath() on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation moveTo(unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for moveTo(unrestricted double, unrestricted double) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation lineTo(unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for lineTo(unrestricted double, unrestricted double) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation quadraticCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for quadraticCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation bezierCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for bezierCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation arcTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for arcTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation rect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for rect(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation arc(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, boolean)
-PASS Unscopable handled correctly for arc(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, boolean) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation ellipse(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, boolean)
-PASS Unscopable handled correctly for ellipse(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, boolean) on CanvasRenderingContext2D
-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 "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
-FAIL CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "getTransform()" with the proper type assert_inherits: property "getTransform" not found in prototype chain
-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(DOMMatrix2DInit)" with the proper type
-PASS CanvasRenderingContext2D interface: calling setTransform(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(CanvasFillRule)" with the proper type
-PASS CanvasRenderingContext2D interface: calling fill(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, CanvasFillRule)" with the proper type
-PASS CanvasRenderingContext2D interface: calling fill(Path2D, 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(CanvasFillRule)" with the proper type
-PASS CanvasRenderingContext2D interface: calling clip(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, CanvasFillRule)" with the proper type
-PASS CanvasRenderingContext2D interface: calling clip(Path2D, CanvasFillRule) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-FAIL CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "resetClip()" with the proper type assert_inherits: property "resetClip" not found in prototype chain
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "isPointInPath(unrestricted double, unrestricted double, CanvasFillRule)" with the proper type
-PASS CanvasRenderingContext2D interface: calling isPointInPath(unrestricted double, unrestricted double, 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, CanvasFillRule)" with the proper type
-PASS CanvasRenderingContext2D interface: calling isPointInPath(Path2D, unrestricted double, unrestricted double, 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, unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling fillText(DOMString, 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 "strokeText(DOMString, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling strokeText(DOMString, 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 "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([object Object])" with the proper type
-PASS CanvasRenderingContext2D interface: calling setLineDash([object Object]) 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, boolean)" with the proper type
-PASS CanvasRenderingContext2D interface: calling arc(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, 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, boolean)" with the proper type
-PASS CanvasRenderingContext2D interface: calling ellipse(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, 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 Unscopable handled correctly for addColorStop(double, DOMString) on CanvasGradient
-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
-FAIL CanvasPattern interface: operation setTransform(DOMMatrix2DInit) assert_equals: property has wrong .length expected 0 but got 1
-PASS Unscopable handled correctly for setTransform(DOMMatrix2DInit) on CanvasPattern
-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 Unscopable handled correctly for width property on TextMetrics
-PASS TextMetrics interface: attribute actualBoundingBoxLeft
-PASS Unscopable handled correctly for actualBoundingBoxLeft property on TextMetrics
-PASS TextMetrics interface: attribute actualBoundingBoxRight
-PASS Unscopable handled correctly for actualBoundingBoxRight property on TextMetrics
-PASS TextMetrics interface: attribute fontBoundingBoxAscent
-PASS Unscopable handled correctly for fontBoundingBoxAscent property on TextMetrics
-PASS TextMetrics interface: attribute fontBoundingBoxDescent
-PASS Unscopable handled correctly for fontBoundingBoxDescent property on TextMetrics
-PASS TextMetrics interface: attribute actualBoundingBoxAscent
-PASS Unscopable handled correctly for actualBoundingBoxAscent property on TextMetrics
-PASS TextMetrics interface: attribute actualBoundingBoxDescent
-PASS Unscopable handled correctly for actualBoundingBoxDescent property on TextMetrics
-PASS TextMetrics interface: attribute emHeightAscent
-PASS Unscopable handled correctly for emHeightAscent property on TextMetrics
-PASS TextMetrics interface: attribute emHeightDescent
-PASS Unscopable handled correctly for emHeightDescent property on TextMetrics
-PASS TextMetrics interface: attribute hangingBaseline
-PASS Unscopable handled correctly for hangingBaseline property on TextMetrics
-PASS TextMetrics interface: attribute alphabeticBaseline
-PASS Unscopable handled correctly for alphabeticBaseline property on TextMetrics
-PASS TextMetrics interface: attribute ideographicBaseline
-PASS Unscopable handled correctly for ideographicBaseline property on TextMetrics
-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 Unscopable handled correctly for width property on ImageData
-PASS ImageData interface: attribute height
-PASS Unscopable handled correctly for height property on ImageData
-PASS ImageData interface: attribute data
-PASS Unscopable handled correctly for data property on ImageData
-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, DOMMatrix2DInit)
-PASS Unscopable handled correctly for addPath(Path2D, DOMMatrix2DInit) on Path2D
-PASS Path2D interface: operation closePath()
-PASS Unscopable handled correctly for closePath() on Path2D
-PASS Path2D interface: operation moveTo(unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for moveTo(unrestricted double, unrestricted double) on Path2D
-PASS Path2D interface: operation lineTo(unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for lineTo(unrestricted double, unrestricted double) on Path2D
-PASS Path2D interface: operation quadraticCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for quadraticCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on Path2D
-PASS Path2D interface: operation bezierCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for bezierCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on Path2D
-PASS Path2D interface: operation arcTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for arcTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on Path2D
-PASS Path2D interface: operation rect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for rect(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on Path2D
-PASS Path2D interface: operation arc(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, boolean)
-PASS Unscopable handled correctly for arc(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, boolean) on Path2D
-PASS Path2D interface: operation ellipse(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, boolean)
-PASS Unscopable handled correctly for ellipse(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, boolean) on Path2D
-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 Unscopable handled correctly for canvas property on ImageBitmapRenderingContext
-PASS ImageBitmapRenderingContext interface: operation transferFromImageBitmap(ImageBitmap)
-PASS Unscopable handled correctly for transferFromImageBitmap(ImageBitmap) on ImageBitmapRenderingContext
-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 Unscopable handled correctly for width property on OffscreenCanvas
-PASS OffscreenCanvas interface: attribute height
-PASS Unscopable handled correctly for height property on OffscreenCanvas
-PASS OffscreenCanvas interface: operation getContext(OffscreenRenderingContextId, any)
-PASS Unscopable handled correctly for getContext(OffscreenRenderingContextId, any) on OffscreenCanvas
-PASS OffscreenCanvas interface: operation transferToImageBitmap()
-PASS Unscopable handled correctly for transferToImageBitmap() on OffscreenCanvas
-PASS OffscreenCanvas interface: operation convertToBlob(ImageEncodeOptions)
-PASS Unscopable handled correctly for convertToBlob(ImageEncodeOptions) on OffscreenCanvas
-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
-FAIL OffscreenCanvasRenderingContext2D interface: operation commit() assert_throws: calling operation with this = null didn't throw TypeError function "function() {
-            fn.apply(obj, args);
-        }" did not throw
-PASS Unscopable handled correctly for commit() on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: attribute canvas
-PASS Unscopable handled correctly for canvas property on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation save()
-PASS Unscopable handled correctly for save() on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation restore()
-PASS Unscopable handled correctly for restore() on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation scale(unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for scale(unrestricted double, unrestricted double) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation rotate(unrestricted double)
-PASS Unscopable handled correctly for rotate(unrestricted double) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation translate(unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for translate(unrestricted double, unrestricted double) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation transform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for transform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on OffscreenCanvasRenderingContext2D
-FAIL OffscreenCanvasRenderingContext2D interface: operation getTransform() assert_own_property: interface prototype object missing non-static operation expected property "getTransform" missing
-PASS Unscopable handled correctly for getTransform() on OffscreenCanvasRenderingContext2D
-FAIL OffscreenCanvasRenderingContext2D interface: operation setTransform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) assert_equals: property has wrong .length expected 0 but got 6
-PASS Unscopable handled correctly for setTransform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on OffscreenCanvasRenderingContext2D
-FAIL OffscreenCanvasRenderingContext2D interface: operation setTransform(DOMMatrix2DInit) assert_equals: property has wrong .length expected 0 but got 6
-PASS Unscopable handled correctly for setTransform(DOMMatrix2DInit) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation resetTransform()
-PASS Unscopable handled correctly for resetTransform() on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: attribute globalAlpha
-PASS Unscopable handled correctly for globalAlpha property on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: attribute globalCompositeOperation
-PASS Unscopable handled correctly for globalCompositeOperation property on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: attribute imageSmoothingEnabled
-PASS Unscopable handled correctly for imageSmoothingEnabled property on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: attribute imageSmoothingQuality
-PASS Unscopable handled correctly for imageSmoothingQuality property on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: attribute strokeStyle
-PASS Unscopable handled correctly for strokeStyle property on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: attribute fillStyle
-PASS Unscopable handled correctly for fillStyle property on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation createLinearGradient(double, double, double, double)
-PASS Unscopable handled correctly for createLinearGradient(double, double, double, double) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation createRadialGradient(double, double, double, double, double, double)
-PASS Unscopable handled correctly for createRadialGradient(double, double, double, double, double, double) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation createPattern(CanvasImageSource, DOMString)
-PASS Unscopable handled correctly for createPattern(CanvasImageSource, DOMString) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: attribute shadowOffsetX
-PASS Unscopable handled correctly for shadowOffsetX property on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: attribute shadowOffsetY
-PASS Unscopable handled correctly for shadowOffsetY property on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: attribute shadowBlur
-PASS Unscopable handled correctly for shadowBlur property on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: attribute shadowColor
-PASS Unscopable handled correctly for shadowColor property on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: attribute filter
-PASS Unscopable handled correctly for filter property on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation clearRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for clearRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation fillRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for fillRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation strokeRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for strokeRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation beginPath()
-PASS Unscopable handled correctly for beginPath() on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation fill(CanvasFillRule)
-PASS Unscopable handled correctly for fill(CanvasFillRule) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation fill(Path2D, CanvasFillRule)
-PASS Unscopable handled correctly for fill(Path2D, CanvasFillRule) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation stroke()
-PASS Unscopable handled correctly for stroke() on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation stroke(Path2D)
-PASS Unscopable handled correctly for stroke(Path2D) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation clip(CanvasFillRule)
-PASS Unscopable handled correctly for clip(CanvasFillRule) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation clip(Path2D, CanvasFillRule)
-PASS Unscopable handled correctly for clip(Path2D, CanvasFillRule) on OffscreenCanvasRenderingContext2D
-FAIL OffscreenCanvasRenderingContext2D interface: operation resetClip() assert_own_property: interface prototype object missing non-static operation expected property "resetClip" missing
-PASS Unscopable handled correctly for resetClip() on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation isPointInPath(unrestricted double, unrestricted double, CanvasFillRule)
-PASS Unscopable handled correctly for isPointInPath(unrestricted double, unrestricted double, CanvasFillRule) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation isPointInPath(Path2D, unrestricted double, unrestricted double, CanvasFillRule)
-PASS Unscopable handled correctly for isPointInPath(Path2D, unrestricted double, unrestricted double, CanvasFillRule) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation isPointInStroke(unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for isPointInStroke(unrestricted double, unrestricted double) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation isPointInStroke(Path2D, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for isPointInStroke(Path2D, unrestricted double, unrestricted double) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation drawImage(CanvasImageSource, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for drawImage(CanvasImageSource, unrestricted double, unrestricted double) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation drawImage(CanvasImageSource, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for drawImage(CanvasImageSource, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation drawImage(CanvasImageSource, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for drawImage(CanvasImageSource, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation createImageData(long, long)
-PASS Unscopable handled correctly for createImageData(long, long) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation createImageData(ImageData)
-PASS Unscopable handled correctly for createImageData(ImageData) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation getImageData(long, long, long, long)
-PASS Unscopable handled correctly for getImageData(long, long, long, long) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation putImageData(ImageData, long, long)
-PASS Unscopable handled correctly for putImageData(ImageData, long, long) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation putImageData(ImageData, long, long, long, long, long, long)
-PASS Unscopable handled correctly for putImageData(ImageData, long, long, long, long, long, long) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: attribute lineWidth
-PASS Unscopable handled correctly for lineWidth property on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: attribute lineCap
-PASS Unscopable handled correctly for lineCap property on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: attribute lineJoin
-PASS Unscopable handled correctly for lineJoin property on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: attribute miterLimit
-PASS Unscopable handled correctly for miterLimit property on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation setLineDash([object Object])
-PASS Unscopable handled correctly for setLineDash([object Object]) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation getLineDash()
-PASS Unscopable handled correctly for getLineDash() on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: attribute lineDashOffset
-PASS Unscopable handled correctly for lineDashOffset property on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation closePath()
-PASS Unscopable handled correctly for closePath() on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation moveTo(unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for moveTo(unrestricted double, unrestricted double) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation lineTo(unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for lineTo(unrestricted double, unrestricted double) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation quadraticCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for quadraticCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation bezierCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for bezierCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation arcTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for arcTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation rect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for rect(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation arc(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, boolean)
-PASS Unscopable handled correctly for arc(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, boolean) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation ellipse(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, boolean)
-PASS Unscopable handled correctly for ellipse(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, boolean) on OffscreenCanvasRenderingContext2D
-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, Function, ElementDefinitionOptions)
-PASS Unscopable handled correctly for define(DOMString, Function, ElementDefinitionOptions) on CustomElementRegistry
-PASS CustomElementRegistry interface: operation get(DOMString)
-PASS Unscopable handled correctly for get(DOMString) on CustomElementRegistry
-PASS CustomElementRegistry interface: operation whenDefined(DOMString)
-PASS Unscopable handled correctly for whenDefined(DOMString) on CustomElementRegistry
-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 Unscopable handled correctly for dropEffect property on DataTransfer
-PASS DataTransfer interface: attribute effectAllowed
-PASS Unscopable handled correctly for effectAllowed property on DataTransfer
-PASS DataTransfer interface: attribute items
-PASS Unscopable handled correctly for items property on DataTransfer
-PASS DataTransfer interface: operation setDragImage(Element, long, long)
-PASS Unscopable handled correctly for setDragImage(Element, long, long) on DataTransfer
-PASS DataTransfer interface: attribute types
-PASS Unscopable handled correctly for types property on DataTransfer
-PASS DataTransfer interface: operation getData(DOMString)
-PASS Unscopable handled correctly for getData(DOMString) on DataTransfer
-PASS DataTransfer interface: operation setData(DOMString, DOMString)
-PASS Unscopable handled correctly for setData(DOMString, DOMString) on DataTransfer
-PASS DataTransfer interface: operation clearData(DOMString)
-PASS Unscopable handled correctly for clearData(DOMString) on DataTransfer
-PASS DataTransfer interface: attribute files
-PASS Unscopable handled correctly for files property on DataTransfer
-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 Unscopable handled correctly for length property on DataTransferItemList
-PASS DataTransferItemList interface: operation add(DOMString, DOMString)
-PASS Unscopable handled correctly for add(DOMString, DOMString) on DataTransferItemList
-PASS DataTransferItemList interface: operation add(File)
-PASS Unscopable handled correctly for add(File) on DataTransferItemList
-PASS DataTransferItemList interface: operation remove(unsigned long)
-PASS Unscopable handled correctly for remove(unsigned long) on DataTransferItemList
-PASS DataTransferItemList interface: operation clear()
-PASS Unscopable handled correctly for clear() on DataTransferItemList
-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 Unscopable handled correctly for kind property on DataTransferItem
-PASS DataTransferItem interface: attribute type
-PASS Unscopable handled correctly for type property on DataTransferItem
-PASS DataTransferItem interface: operation getAsString(FunctionStringCallback)
-PASS Unscopable handled correctly for getAsString(FunctionStringCallback) on DataTransferItem
-PASS DataTransferItem interface: operation getAsFile()
-PASS Unscopable handled correctly for getAsFile() on DataTransferItem
-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 Unscopable handled correctly for dataTransfer property on DragEvent
-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
-FAIL Window interface: attribute self assert_equals: "self" must have a getter expected "function" but got "undefined"
-PASS Unscopable handled correctly for self property on Window
-PASS Window interface: attribute name
-PASS Unscopable handled correctly for name property on Window
-PASS Window interface: attribute history
-PASS Unscopable handled correctly for history property on Window
-PASS Window interface: attribute customElements
-PASS Unscopable handled correctly for customElements property on Window
-PASS Window interface: attribute locationbar
-PASS Unscopable handled correctly for locationbar property on Window
-PASS Window interface: attribute menubar
-PASS Unscopable handled correctly for menubar property on Window
-PASS Window interface: attribute personalbar
-PASS Unscopable handled correctly for personalbar property on Window
-PASS Window interface: attribute scrollbars
-PASS Unscopable handled correctly for scrollbars property on Window
-PASS Window interface: attribute statusbar
-PASS Unscopable handled correctly for statusbar property on Window
-PASS Window interface: attribute toolbar
-PASS Unscopable handled correctly for toolbar property on Window
-PASS Window interface: attribute status
-PASS Unscopable handled correctly for status property on Window
-PASS Window interface: operation close()
-PASS Unscopable handled correctly for close() on Window
-FAIL Window interface: attribute closed assert_equals: "closed" must have a getter expected "function" but got "undefined"
-PASS Unscopable handled correctly for closed property on Window
-PASS Window interface: operation stop()
-PASS Unscopable handled correctly for stop() on Window
-PASS Window interface: operation focus()
-PASS Unscopable handled correctly for focus() on Window
-PASS Window interface: operation blur()
-PASS Unscopable handled correctly for blur() on Window
-FAIL Window interface: attribute frames assert_equals: "frames" must have a getter expected "function" but got "undefined"
-PASS Unscopable handled correctly for frames property on Window
-FAIL Window interface: attribute length assert_equals: "length" must have a getter expected "function" but got "undefined"
-PASS Unscopable handled correctly for length property on Window
-FAIL Window interface: attribute opener assert_equals: "opener" must have a getter expected "function" but got "undefined"
-PASS Unscopable handled correctly for opener property on Window
-FAIL Window interface: attribute parent assert_equals: "parent" must have a getter expected "function" but got "undefined"
-PASS Unscopable handled correctly for parent property on Window
-PASS Window interface: attribute frameElement
-PASS Unscopable handled correctly for frameElement property on Window
-PASS Window interface: operation open(USVString, DOMString, DOMString)
-PASS Unscopable handled correctly for open(USVString, DOMString, DOMString) on Window
-PASS Window interface: attribute navigator
-PASS Unscopable handled correctly for navigator property on Window
-PASS Window interface: attribute applicationCache
-PASS Unscopable handled correctly for applicationCache property on Window
-PASS Window interface: operation alert()
-PASS Unscopable handled correctly for alert() on Window
-PASS Window interface: operation alert(DOMString)
-PASS Unscopable handled correctly for alert(DOMString) on Window
-PASS Window interface: operation confirm(DOMString)
-PASS Unscopable handled correctly for confirm(DOMString) on Window
-PASS Window interface: operation prompt(DOMString, DOMString)
-PASS Unscopable handled correctly for prompt(DOMString, DOMString) on Window
-PASS Window interface: operation print()
-PASS Unscopable handled correctly for print() on Window
-PASS Window interface: operation requestAnimationFrame(FrameRequestCallback)
-PASS Unscopable handled correctly for requestAnimationFrame(FrameRequestCallback) on Window
-PASS Window interface: operation cancelAnimationFrame(unsigned long)
-PASS Unscopable handled correctly for cancelAnimationFrame(unsigned long) on Window
-PASS Window interface: operation postMessage(any, USVString, [object Object])
-PASS Unscopable handled correctly for postMessage(any, USVString, [object Object]) on Window
-PASS Window interface: operation captureEvents()
-PASS Unscopable handled correctly for captureEvents() on Window
-PASS Window interface: operation releaseEvents()
-PASS Unscopable handled correctly for releaseEvents() on Window
-PASS Window interface: attribute external
-PASS Unscopable handled correctly for external property on Window
-PASS Window interface: attribute onabort
-PASS Unscopable handled correctly for onabort property on Window
-PASS Window interface: attribute onauxclick
-PASS Unscopable handled correctly for onauxclick property on Window
-PASS Window interface: attribute onblur
-PASS Unscopable handled correctly for onblur property on Window
-PASS Window interface: attribute oncancel
-PASS Unscopable handled correctly for oncancel property on Window
-PASS Window interface: attribute oncanplay
-PASS Unscopable handled correctly for oncanplay property on Window
-PASS Window interface: attribute oncanplaythrough
-PASS Unscopable handled correctly for oncanplaythrough property on Window
-PASS Window interface: attribute onchange
-PASS Unscopable handled correctly for onchange property on Window
-PASS Window interface: attribute onclick
-PASS Unscopable handled correctly for onclick property on Window
-PASS Window interface: attribute onclose
-PASS Unscopable handled correctly for onclose property on Window
-PASS Window interface: attribute oncontextmenu
-PASS Unscopable handled correctly for oncontextmenu property on Window
-PASS Window interface: attribute oncuechange
-PASS Unscopable handled correctly for oncuechange property on Window
-PASS Window interface: attribute ondblclick
-PASS Unscopable handled correctly for ondblclick property on Window
-PASS Window interface: attribute ondrag
-PASS Unscopable handled correctly for ondrag property on Window
-PASS Window interface: attribute ondragend
-PASS Unscopable handled correctly for ondragend property on Window
-PASS Window interface: attribute ondragenter
-PASS Unscopable handled correctly for ondragenter property on Window
-FAIL Window interface: attribute ondragexit assert_own_property: The global object must have a property "ondragexit" expected property "ondragexit" missing
-PASS Unscopable handled correctly for ondragexit property on Window
-PASS Window interface: attribute ondragleave
-PASS Unscopable handled correctly for ondragleave property on Window
-PASS Window interface: attribute ondragover
-PASS Unscopable handled correctly for ondragover property on Window
-PASS Window interface: attribute ondragstart
-PASS Unscopable handled correctly for ondragstart property on Window
-PASS Window interface: attribute ondrop
-PASS Unscopable handled correctly for ondrop property on Window
-PASS Window interface: attribute ondurationchange
-PASS Unscopable handled correctly for ondurationchange property on Window
-PASS Window interface: attribute onemptied
-PASS Unscopable handled correctly for onemptied property on Window
-PASS Window interface: attribute onended
-PASS Unscopable handled correctly for onended property on Window
-PASS Window interface: attribute onerror
-PASS Unscopable handled correctly for onerror property on Window
-PASS Window interface: attribute onfocus
-PASS Unscopable handled correctly for onfocus property on Window
-PASS Window interface: attribute oninput
-PASS Unscopable handled correctly for oninput property on Window
-PASS Window interface: attribute oninvalid
-PASS Unscopable handled correctly for oninvalid property on Window
-PASS Window interface: attribute onkeydown
-PASS Unscopable handled correctly for onkeydown property on Window
-PASS Window interface: attribute onkeypress
-PASS Unscopable handled correctly for onkeypress property on Window
-PASS Window interface: attribute onkeyup
-PASS Unscopable handled correctly for onkeyup property on Window
-PASS Window interface: attribute onload
-PASS Unscopable handled correctly for onload property on Window
-PASS Window interface: attribute onloadeddata
-PASS Unscopable handled correctly for onloadeddata property on Window
-PASS Window interface: attribute onloadedmetadata
-PASS Unscopable handled correctly for onloadedmetadata property on Window
-FAIL Window interface: attribute onloadend assert_own_property: The global object must have a property "onloadend" expected property "onloadend" missing
-PASS Unscopable handled correctly for onloadend property on Window
-PASS Window interface: attribute onloadstart
-PASS Unscopable handled correctly for onloadstart property on Window
-PASS Window interface: attribute onmousedown
-PASS Unscopable handled correctly for onmousedown property on Window
-PASS Window interface: attribute onmouseenter
-PASS Unscopable handled correctly for onmouseenter property on Window
-PASS Window interface: attribute onmouseleave
-PASS Unscopable handled correctly for onmouseleave property on Window
-PASS Window interface: attribute onmousemove
-PASS Unscopable handled correctly for onmousemove property on Window
-PASS Window interface: attribute onmouseout
-PASS Unscopable handled correctly for onmouseout property on Window
-PASS Window interface: attribute onmouseover
-PASS Unscopable handled correctly for onmouseover property on Window
-PASS Window interface: attribute onmouseup
-PASS Unscopable handled correctly for onmouseup property on Window
-PASS Window interface: attribute onwheel
-PASS Unscopable handled correctly for onwheel property on Window
-PASS Window interface: attribute onpause
-PASS Unscopable handled correctly for onpause property on Window
-PASS Window interface: attribute onplay
-PASS Unscopable handled correctly for onplay property on Window
-PASS Window interface: attribute onplaying
-PASS Unscopable handled correctly for onplaying property on Window
-PASS Window interface: attribute onprogress
-PASS Unscopable handled correctly for onprogress property on Window
-PASS Window interface: attribute onratechange
-PASS Unscopable handled correctly for onratechange property on Window
-PASS Window interface: attribute onreset
-PASS Unscopable handled correctly for onreset property on Window
-PASS Window interface: attribute onresize
-PASS Unscopable handled correctly for onresize property on Window
-PASS Window interface: attribute onscroll
-PASS Unscopable handled correctly for onscroll property on Window
-FAIL Window interface: attribute onsecuritypolicyviolation assert_own_property: The global object must have a property "onsecuritypolicyviolation" expected property "onsecuritypolicyviolation" missing
-PASS Unscopable handled correctly for onsecuritypolicyviolation property on Window
-PASS Window interface: attribute onseeked
-PASS Unscopable handled correctly for onseeked property on Window
-PASS Window interface: attribute onseeking
-PASS Unscopable handled correctly for onseeking property on Window
-PASS Window interface: attribute onselect
-PASS Unscopable handled correctly for onselect property on Window
-PASS Window interface: attribute onstalled
-PASS Unscopable handled correctly for onstalled property on Window
-PASS Window interface: attribute onsubmit
-PASS Unscopable handled correctly for onsubmit property on Window
-PASS Window interface: attribute onsuspend
-PASS Unscopable handled correctly for onsuspend property on Window
-PASS Window interface: attribute ontimeupdate
-PASS Unscopable handled correctly for ontimeupdate property on Window
-PASS Window interface: attribute ontoggle
-PASS Unscopable handled correctly for ontoggle property on Window
-PASS Window interface: attribute onvolumechange
-PASS Unscopable handled correctly for onvolumechange property on Window
-PASS Window interface: attribute onwaiting
-PASS Unscopable handled correctly for onwaiting property on Window
-PASS Window interface: attribute onafterprint
-PASS Unscopable handled correctly for onafterprint property on Window
-PASS Window interface: attribute onbeforeprint
-PASS Unscopable handled correctly for onbeforeprint property on Window
-PASS Window interface: attribute onbeforeunload
-PASS Unscopable handled correctly for onbeforeunload property on Window
-PASS Window interface: attribute onhashchange
-PASS Unscopable handled correctly for onhashchange property on Window
-PASS Window interface: attribute onlanguagechange
-PASS Unscopable handled correctly for onlanguagechange property on Window
-PASS Window interface: attribute onmessage
-PASS Unscopable handled correctly for onmessage property on Window
-PASS Window interface: attribute onmessageerror
-PASS Unscopable handled correctly for onmessageerror property on Window
-PASS Window interface: attribute onoffline
-PASS Unscopable handled correctly for onoffline property on Window
-PASS Window interface: attribute ononline
-PASS Unscopable handled correctly for ononline property on Window
-PASS Window interface: attribute onpagehide
-PASS Unscopable handled correctly for onpagehide property on Window
-PASS Window interface: attribute onpageshow
-PASS Unscopable handled correctly for onpageshow property on Window
-PASS Window interface: attribute onpopstate
-PASS Unscopable handled correctly for onpopstate property on Window
-PASS Window interface: attribute onrejectionhandled
-PASS Unscopable handled correctly for onrejectionhandled property on Window
-PASS Window interface: attribute onstorage
-PASS Unscopable handled correctly for onstorage property on Window
-PASS Window interface: attribute onunhandledrejection
-PASS Unscopable handled correctly for onunhandledrejection property on Window
-PASS Window interface: attribute onunload
-PASS Unscopable handled correctly for onunload property on Window
-PASS Window interface: attribute origin
-PASS Unscopable handled correctly for origin property on Window
-PASS Window interface: operation btoa(DOMString)
-PASS Unscopable handled correctly for btoa(DOMString) on Window
-PASS Window interface: operation atob(DOMString)
-PASS Unscopable handled correctly for atob(DOMString) on Window
-PASS Window interface: operation setTimeout(TimerHandler, long, any)
-PASS Unscopable handled correctly for setTimeout(TimerHandler, long, any) on Window
-PASS Window interface: operation clearTimeout(long)
-PASS Unscopable handled correctly for clearTimeout(long) on Window
-PASS Window interface: operation setInterval(TimerHandler, long, any)
-PASS Unscopable handled correctly for setInterval(TimerHandler, long, any) on Window
-PASS Window interface: operation clearInterval(long)
-PASS Unscopable handled correctly for clearInterval(long) on Window
-PASS Window interface: operation createImageBitmap(ImageBitmapSource, ImageBitmapOptions)
-PASS Unscopable handled correctly for createImageBitmap(ImageBitmapSource, ImageBitmapOptions) on Window
-PASS Window interface: operation createImageBitmap(ImageBitmapSource, long, long, long, long, ImageBitmapOptions)
-PASS Unscopable handled correctly for createImageBitmap(ImageBitmapSource, long, long, long, long, ImageBitmapOptions) on Window
-PASS Window interface: attribute sessionStorage
-PASS Unscopable handled correctly for sessionStorage property on Window
-PASS Window interface: attribute localStorage
-PASS Unscopable handled correctly for localStorage property on Window
-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
-FAIL Window interface: window must have own property "window" assert_false: property descriptor should not have a "value" field expected false got true
-FAIL Window interface: window must inherit property "self" with the proper type Unrecognized type WindowProxy
-PASS Window interface: window must have own property "document"
-PASS Window interface: window must inherit property "name" with the proper type
-FAIL Window interface: window must have own property "location" assert_false: property descriptor should not have a "value" field expected false got true
-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
-FAIL Window interface: window must inherit property "frames" with the proper type Unrecognized type WindowProxy
-PASS Window interface: window must inherit property "length" with the proper type
-FAIL Window interface: window must have own property "top" assert_false: property descriptor should not have a "value" field expected false got true
-PASS Window interface: window must inherit property "opener" with the proper type
-FAIL Window interface: window must inherit property "parent" with the proper type Unrecognized type WindowProxy
-PASS Window interface: window must inherit property "frameElement" with the proper type
-PASS Window interface: window must inherit property "open(USVString, DOMString, DOMString)" with the proper type
-PASS Window interface: calling open(USVString, DOMString, 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 "applicationCache" 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(DOMString)" with the proper type
-PASS Window interface: calling confirm(DOMString) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "prompt(DOMString, DOMString)" with the proper type
-PASS Window interface: calling prompt(DOMString, 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 "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 "postMessage(any, USVString, [object Object])" with the proper type
-PASS Window interface: calling postMessage(any, USVString, [object Object]) 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
-FAIL Window interface: window must inherit property "ondragexit" with the proper type assert_own_property: expected property "ondragexit" missing
-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 "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
-FAIL Window interface: window must inherit property "onloadend" with the proper type assert_own_property: expected property "onloadend" missing
-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 "onwheel" 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
-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 "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 "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, long, any)" with the proper type
-PASS Window interface: calling setTimeout(TimerHandler, long, any) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "clearTimeout(long)" with the proper type
-PASS Window interface: calling clearTimeout(long) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "setInterval(TimerHandler, long, any)" with the proper type
-PASS Window interface: calling setInterval(TimerHandler, long, any) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "clearInterval(long)" with the proper type
-PASS Window interface: calling clearInterval(long) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "createImageBitmap(ImageBitmapSource, ImageBitmapOptions)" with the proper type
-PASS Window interface: calling createImageBitmap(ImageBitmapSource, ImageBitmapOptions) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "createImageBitmap(ImageBitmapSource, long, long, long, long, ImageBitmapOptions)" with the proper type
-PASS Window interface: calling createImageBitmap(ImageBitmapSource, long, long, long, long, ImageBitmapOptions) 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 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 Unscopable handled correctly for visible property on BarProp
-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
-FAIL History interface: attribute index assert_true: The prototype object must have a property "index" expected true got false
-PASS Unscopable handled correctly for index property on History
-PASS History interface: attribute length
-PASS Unscopable handled correctly for length property on History
-PASS History interface: attribute scrollRestoration
-PASS Unscopable handled correctly for scrollRestoration property on History
-PASS History interface: attribute state
-PASS Unscopable handled correctly for state property on History
-PASS History interface: operation go(long)
-PASS Unscopable handled correctly for go(long) on History
-PASS History interface: operation back()
-PASS Unscopable handled correctly for back() on History
-PASS History interface: operation forward()
-PASS Unscopable handled correctly for forward() on History
-PASS History interface: operation pushState(any, DOMString, USVString)
-PASS Unscopable handled correctly for pushState(any, DOMString, USVString) on History
-PASS History interface: operation replaceState(any, DOMString, USVString)
-PASS Unscopable handled correctly for replaceState(any, DOMString, USVString) on History
-PASS History must be primary interface of window.history
-PASS Stringification of window.history
-FAIL History interface: window.history must inherit property "index" with the proper type assert_inherits: property "index" not found in prototype chain
-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(long)" with the proper type
-PASS History interface: calling go(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, USVString)" with the proper type
-PASS History interface: calling pushState(any, DOMString, USVString) on window.history with too few arguments must throw TypeError
-PASS History interface: window.history must inherit property "replaceState(any, DOMString, USVString)" with the proper type
-PASS History interface: calling replaceState(any, DOMString, 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
-FAIL Location interface: window.location must have own property "href" assert_false: property descriptor should not have a "value" field expected false got true
-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 Unscopable handled correctly for state property on PopStateEvent
-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 Unscopable handled correctly for oldURL property on HashChangeEvent
-PASS HashChangeEvent interface: attribute newURL
-PASS Unscopable handled correctly for newURL property on HashChangeEvent
-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 Unscopable handled correctly for persisted property on PageTransitionEvent
-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 Unscopable handled correctly for returnValue property on BeforeUnloadEvent
-PASS ApplicationCache interface: existence and properties of interface object
-PASS ApplicationCache interface object length
-PASS ApplicationCache interface object name
-PASS ApplicationCache interface: existence and properties of interface prototype object
-PASS ApplicationCache interface: existence and properties of interface prototype object's "constructor" property
-PASS ApplicationCache interface: existence and properties of interface prototype object's @@unscopables property
-PASS ApplicationCache interface: constant UNCACHED on interface object
-PASS ApplicationCache interface: constant UNCACHED on interface prototype object
-PASS ApplicationCache interface: constant IDLE on interface object
-PASS ApplicationCache interface: constant IDLE on interface prototype object
-PASS ApplicationCache interface: constant CHECKING on interface object
-PASS ApplicationCache interface: constant CHECKING on interface prototype object
-PASS ApplicationCache interface: constant DOWNLOADING on interface object
-PASS ApplicationCache interface: constant DOWNLOADING on interface prototype object
-PASS ApplicationCache interface: constant UPDATEREADY on interface object
-PASS ApplicationCache interface: constant UPDATEREADY on interface prototype object
-PASS ApplicationCache interface: constant OBSOLETE on interface object
-PASS ApplicationCache interface: constant OBSOLETE on interface prototype object
-PASS ApplicationCache interface: attribute status
-PASS Unscopable handled correctly for status property on ApplicationCache
-PASS ApplicationCache interface: operation update()
-PASS Unscopable handled correctly for update() on ApplicationCache
-PASS ApplicationCache interface: operation abort()
-PASS Unscopable handled correctly for abort() on ApplicationCache
-PASS ApplicationCache interface: operation swapCache()
-PASS Unscopable handled correctly for swapCache() on ApplicationCache
-PASS ApplicationCache interface: attribute onchecking
-PASS Unscopable handled correctly for onchecking property on ApplicationCache
-PASS ApplicationCache interface: attribute onerror
-PASS Unscopable handled correctly for onerror property on ApplicationCache
-PASS ApplicationCache interface: attribute onnoupdate
-PASS Unscopable handled correctly for onnoupdate property on ApplicationCache
-PASS ApplicationCache interface: attribute ondownloading
-PASS Unscopable handled correctly for ondownloading property on ApplicationCache
-PASS ApplicationCache interface: attribute onprogress
-PASS Unscopable handled correctly for onprogress property on ApplicationCache
-PASS ApplicationCache interface: attribute onupdateready
-PASS Unscopable handled correctly for onupdateready property on ApplicationCache
-PASS ApplicationCache interface: attribute oncached
-PASS Unscopable handled correctly for oncached property on ApplicationCache
-PASS ApplicationCache interface: attribute onobsolete
-PASS Unscopable handled correctly for onobsolete property on ApplicationCache
-PASS ApplicationCache must be primary interface of window.applicationCache
-PASS Stringification of window.applicationCache
-PASS ApplicationCache interface: window.applicationCache must inherit property "UNCACHED" with the proper type
-PASS ApplicationCache interface: window.applicationCache must inherit property "IDLE" with the proper type
-PASS ApplicationCache interface: window.applicationCache must inherit property "CHECKING" with the proper type
-PASS ApplicationCache interface: window.applicationCache must inherit property "DOWNLOADING" with the proper type
-PASS ApplicationCache interface: window.applicationCache must inherit property "UPDATEREADY" with the proper type
-PASS ApplicationCache interface: window.applicationCache must inherit property "OBSOLETE" with the proper type
-PASS ApplicationCache interface: window.applicationCache must inherit property "status" with the proper type
-PASS ApplicationCache interface: window.applicationCache must inherit property "update()" with the proper type
-PASS ApplicationCache interface: window.applicationCache must inherit property "abort()" with the proper type
-PASS ApplicationCache interface: window.applicationCache must inherit property "swapCache()" with the proper type
-PASS ApplicationCache interface: window.applicationCache must inherit property "onchecking" with the proper type
-PASS ApplicationCache interface: window.applicationCache must inherit property "onerror" with the proper type
-PASS ApplicationCache interface: window.applicationCache must inherit property "onnoupdate" with the proper type
-PASS ApplicationCache interface: window.applicationCache must inherit property "ondownloading" with the proper type
-PASS ApplicationCache interface: window.applicationCache must inherit property "onprogress" with the proper type
-PASS ApplicationCache interface: window.applicationCache must inherit property "onupdateready" with the proper type
-PASS ApplicationCache interface: window.applicationCache must inherit property "oncached" with the proper type
-PASS ApplicationCache interface: window.applicationCache must inherit property "onobsolete" with the proper type
-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 Unscopable handled correctly for message property on ErrorEvent
-PASS ErrorEvent interface: attribute filename
-PASS Unscopable handled correctly for filename property on ErrorEvent
-PASS ErrorEvent interface: attribute lineno
-PASS Unscopable handled correctly for lineno property on ErrorEvent
-PASS ErrorEvent interface: attribute colno
-PASS Unscopable handled correctly for colno property on ErrorEvent
-PASS ErrorEvent interface: attribute error
-PASS Unscopable handled correctly for error property on ErrorEvent
-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 Unscopable handled correctly for promise property on PromiseRejectionEvent
-PASS PromiseRejectionEvent interface: attribute reason
-PASS Unscopable handled correctly for reason property on PromiseRejectionEvent
-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 Unscopable handled correctly for appCodeName property on Navigator
-PASS Navigator interface: attribute appName
-PASS Unscopable handled correctly for appName property on Navigator
-PASS Navigator interface: attribute appVersion
-PASS Unscopable handled correctly for appVersion property on Navigator
-PASS Navigator interface: attribute platform
-PASS Unscopable handled correctly for platform property on Navigator
-PASS Navigator interface: attribute product
-PASS Unscopable handled correctly for product property on Navigator
-PASS Navigator interface: attribute productSub
-PASS Unscopable handled correctly for productSub property on Navigator
-PASS Navigator interface: attribute userAgent
-PASS Unscopable handled correctly for userAgent property on Navigator
-PASS Navigator interface: attribute vendor
-PASS Unscopable handled correctly for vendor property on Navigator
-PASS Navigator interface: attribute vendorSub
-PASS Unscopable handled correctly for vendorSub property on Navigator
-FAIL Navigator interface: operation taintEnabled() assert_own_property: interface prototype object missing non-static operation expected property "taintEnabled" missing
-PASS Unscopable handled correctly for taintEnabled() on Navigator
-FAIL Navigator interface: attribute oscpu assert_true: The prototype object must have a property "oscpu" expected true got false
-PASS Unscopable handled correctly for oscpu property on Navigator
-PASS Navigator interface: attribute language
-PASS Unscopable handled correctly for language property on Navigator
-PASS Navigator interface: attribute languages
-PASS Unscopable handled correctly for languages property on Navigator
-PASS Navigator interface: attribute onLine
-PASS Unscopable handled correctly for onLine property on Navigator
-PASS Navigator interface: operation registerProtocolHandler(DOMString, USVString, DOMString)
-PASS Unscopable handled correctly for registerProtocolHandler(DOMString, USVString, DOMString) on Navigator
-PASS Navigator interface: operation unregisterProtocolHandler(DOMString, USVString)
-PASS Unscopable handled correctly for unregisterProtocolHandler(DOMString, USVString) on Navigator
-PASS Navigator interface: attribute cookieEnabled
-PASS Unscopable handled correctly for cookieEnabled property on Navigator
-PASS Navigator interface: attribute plugins
-PASS Unscopable handled correctly for plugins property on Navigator
-PASS Navigator interface: attribute mimeTypes
-PASS Unscopable handled correctly for mimeTypes property on Navigator
-PASS Navigator interface: operation javaEnabled()
-PASS Unscopable handled correctly for javaEnabled() on Navigator
-PASS Navigator interface: attribute hardwareConcurrency
-PASS Unscopable handled correctly for hardwareConcurrency property on Navigator
-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, DOMString)" with the proper type
-PASS Navigator interface: calling registerProtocolHandler(DOMString, USVString, DOMString) 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 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(boolean)
-PASS Unscopable handled correctly for refresh(boolean) on PluginArray
-PASS PluginArray interface: attribute length
-PASS Unscopable handled correctly for length property on PluginArray
-PASS PluginArray interface: operation item(unsigned long)
-PASS Unscopable handled correctly for item(unsigned long) on PluginArray
-PASS PluginArray interface: operation namedItem(DOMString)
-PASS Unscopable handled correctly for namedItem(DOMString) on PluginArray
-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 Unscopable handled correctly for length property on MimeTypeArray
-PASS MimeTypeArray interface: operation item(unsigned long)
-PASS Unscopable handled correctly for item(unsigned long) on MimeTypeArray
-PASS MimeTypeArray interface: operation namedItem(DOMString)
-PASS Unscopable handled correctly for namedItem(DOMString) on MimeTypeArray
-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 Unscopable handled correctly for name property on Plugin
-PASS Plugin interface: attribute description
-PASS Unscopable handled correctly for description property on Plugin
-PASS Plugin interface: attribute filename
-PASS Unscopable handled correctly for filename property on Plugin
-PASS Plugin interface: attribute length
-PASS Unscopable handled correctly for length property on Plugin
-PASS Plugin interface: operation item(unsigned long)
-PASS Unscopable handled correctly for item(unsigned long) on Plugin
-PASS Plugin interface: operation namedItem(DOMString)
-PASS Unscopable handled correctly for namedItem(DOMString) on Plugin
-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 Unscopable handled correctly for type property on MimeType
-PASS MimeType interface: attribute description
-PASS Unscopable handled correctly for description property on MimeType
-PASS MimeType interface: attribute suffixes
-PASS Unscopable handled correctly for suffixes property on MimeType
-PASS MimeType interface: attribute enabledPlugin
-PASS Unscopable handled correctly for enabledPlugin property on MimeType
-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 Unscopable handled correctly for width property on ImageBitmap
-PASS ImageBitmap interface: attribute height
-PASS Unscopable handled correctly for height property on ImageBitmap
-PASS ImageBitmap interface: operation close()
-PASS Unscopable handled correctly for close() on ImageBitmap
-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 Unscopable handled correctly for data property on MessageEvent
-PASS MessageEvent interface: attribute origin
-PASS Unscopable handled correctly for origin property on MessageEvent
-PASS MessageEvent interface: attribute lastEventId
-PASS Unscopable handled correctly for lastEventId property on MessageEvent
-PASS MessageEvent interface: attribute source
-PASS Unscopable handled correctly for source property on MessageEvent
-PASS MessageEvent interface: attribute ports
-PASS Unscopable handled correctly for ports property on MessageEvent
-PASS MessageEvent interface: operation initMessageEvent(DOMString, boolean, boolean, any, USVString, DOMString, MessageEventSource, [object Object])
-PASS Unscopable handled correctly for initMessageEvent(DOMString, boolean, boolean, any, USVString, DOMString, MessageEventSource, [object Object]) on MessageEvent
-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
-FAIL MessageEvent interface: new MessageEvent("message", { data: 5 }) must inherit property "source" with the proper type Unrecognized type WindowProxy
-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, boolean, boolean, any, USVString, DOMString, MessageEventSource, [object Object])" with the proper type
-PASS MessageEvent interface: calling initMessageEvent(DOMString, boolean, boolean, any, USVString, DOMString, MessageEventSource, [object Object]) 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 Unscopable handled correctly for url property on EventSource
-PASS EventSource interface: attribute withCredentials
-PASS Unscopable handled correctly for withCredentials property on EventSource
-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 Unscopable handled correctly for readyState property on EventSource
-PASS EventSource interface: attribute onopen
-PASS Unscopable handled correctly for onopen property on EventSource
-PASS EventSource interface: attribute onmessage
-PASS Unscopable handled correctly for onmessage property on EventSource
-PASS EventSource interface: attribute onerror
-PASS Unscopable handled correctly for onerror property on EventSource
-PASS EventSource interface: operation close()
-PASS Unscopable handled correctly for close() on EventSource
-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 Unscopable handled correctly for url property on WebSocket
-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 Unscopable handled correctly for readyState property on WebSocket
-PASS WebSocket interface: attribute bufferedAmount
-PASS Unscopable handled correctly for bufferedAmount property on WebSocket
-PASS WebSocket interface: attribute onopen
-PASS Unscopable handled correctly for onopen property on WebSocket
-PASS WebSocket interface: attribute onerror
-PASS Unscopable handled correctly for onerror property on WebSocket
-PASS WebSocket interface: attribute onclose
-PASS Unscopable handled correctly for onclose property on WebSocket
-PASS WebSocket interface: attribute extensions
-PASS Unscopable handled correctly for extensions property on WebSocket
-PASS WebSocket interface: attribute protocol
-PASS Unscopable handled correctly for protocol property on WebSocket
-PASS WebSocket interface: operation close(unsigned short, USVString)
-PASS Unscopable handled correctly for close(unsigned short, USVString) on WebSocket
-PASS WebSocket interface: attribute onmessage
-PASS Unscopable handled correctly for onmessage property on WebSocket
-PASS WebSocket interface: attribute binaryType
-PASS Unscopable handled correctly for binaryType property on WebSocket
-PASS WebSocket interface: operation send(USVString)
-PASS Unscopable handled correctly for send(USVString) on WebSocket
-PASS WebSocket interface: operation send(Blob)
-PASS Unscopable handled correctly for send(Blob) on WebSocket
-PASS WebSocket interface: operation send(ArrayBuffer)
-PASS Unscopable handled correctly for send(ArrayBuffer) on WebSocket
-PASS WebSocket interface: operation send(ArrayBufferView)
-PASS Unscopable handled correctly for send(ArrayBufferView) on WebSocket
-PASS WebSocket must be primary interface of new WebSocket("ws://foo")
-PASS Stringification of new WebSocket("ws://foo")
-PASS WebSocket interface: new WebSocket("ws://foo") must inherit property "url" with the proper type
-PASS WebSocket interface: new WebSocket("ws://foo") must inherit property "CONNECTING" with the proper type
-PASS WebSocket interface: new WebSocket("ws://foo") must inherit property "OPEN" with the proper type
-PASS WebSocket interface: new WebSocket("ws://foo") must inherit property "CLOSING" with the proper type
-PASS WebSocket interface: new WebSocket("ws://foo") must inherit property "CLOSED" with the proper type
-PASS WebSocket interface: new WebSocket("ws://foo") must inherit property "readyState" with the proper type
-PASS WebSocket interface: new WebSocket("ws://foo") must inherit property "bufferedAmount" with the proper type
-PASS WebSocket interface: new WebSocket("ws://foo") must inherit property "onopen" with the proper type
-PASS WebSocket interface: new WebSocket("ws://foo") must inherit property "onerror" with the proper type
-PASS WebSocket interface: new WebSocket("ws://foo") must inherit property "onclose" with the proper type
-PASS WebSocket interface: new WebSocket("ws://foo") must inherit property "extensions" with the proper type
-PASS WebSocket interface: new WebSocket("ws://foo") must inherit property "protocol" with the proper type
-PASS WebSocket interface: new WebSocket("ws://foo") must inherit property "close(unsigned short, USVString)" with the proper type
-PASS WebSocket interface: calling close(unsigned short, USVString) on new WebSocket("ws://foo") with too few arguments must throw TypeError
-PASS WebSocket interface: new WebSocket("ws://foo") must inherit property "onmessage" with the proper type
-PASS WebSocket interface: new WebSocket("ws://foo") must inherit property "binaryType" with the proper type
-PASS WebSocket interface: new WebSocket("ws://foo") must inherit property "send(USVString)" with the proper type
-PASS WebSocket interface: calling send(USVString) on new WebSocket("ws://foo") with too few arguments must throw TypeError
-PASS WebSocket interface: new WebSocket("ws://foo") must inherit property "send(Blob)" with the proper type
-PASS WebSocket interface: calling send(Blob) on new WebSocket("ws://foo") with too few arguments must throw TypeError
-PASS WebSocket interface: new WebSocket("ws://foo") must inherit property "send(ArrayBuffer)" with the proper type
-PASS WebSocket interface: calling send(ArrayBuffer) on new WebSocket("ws://foo") with too few arguments must throw TypeError
-PASS WebSocket interface: new WebSocket("ws://foo") must inherit property "send(ArrayBufferView)" with the proper type
-PASS WebSocket interface: calling send(ArrayBufferView) on new WebSocket("ws://foo") 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 Unscopable handled correctly for wasClean property on CloseEvent
-PASS CloseEvent interface: attribute code
-PASS Unscopable handled correctly for code property on CloseEvent
-PASS CloseEvent interface: attribute reason
-PASS Unscopable handled correctly for reason property on CloseEvent
-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 Unscopable handled correctly for port1 property on MessageChannel
-PASS MessageChannel interface: attribute port2
-PASS Unscopable handled correctly for port2 property on MessageChannel
-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, [object Object])
-PASS Unscopable handled correctly for postMessage(any, [object Object]) on MessagePort
-PASS MessagePort interface: operation start()
-PASS Unscopable handled correctly for start() on MessagePort
-PASS MessagePort interface: operation close()
-PASS Unscopable handled correctly for close() on MessagePort
-PASS MessagePort interface: attribute onmessage
-PASS Unscopable handled correctly for onmessage property on MessagePort
-PASS MessagePort interface: attribute onmessageerror
-PASS Unscopable handled correctly for onmessageerror property on MessagePort
-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 Unscopable handled correctly for name property on BroadcastChannel
-PASS BroadcastChannel interface: operation postMessage(any)
-PASS Unscopable handled correctly for postMessage(any) on BroadcastChannel
-PASS BroadcastChannel interface: operation close()
-PASS Unscopable handled correctly for close() on BroadcastChannel
-PASS BroadcastChannel interface: attribute onmessage
-PASS Unscopable handled correctly for onmessage property on BroadcastChannel
-PASS BroadcastChannel interface: attribute onmessageerror
-PASS Unscopable handled correctly for onmessageerror property on BroadcastChannel
-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 Unscopable handled correctly for terminate() on Worker
-PASS Worker interface: operation postMessage(any, [object Object])
-PASS Unscopable handled correctly for postMessage(any, [object Object]) on Worker
-PASS Worker interface: attribute onmessage
-PASS Unscopable handled correctly for onmessage property on Worker
-FAIL Worker interface: attribute onmessageerror assert_true: The prototype object must have a property "onmessageerror" expected true got false
-PASS Unscopable handled correctly for onmessageerror property on Worker
-PASS Worker interface: attribute onerror
-PASS Unscopable handled correctly for onerror property on Worker
-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 Unscopable handled correctly for port property on SharedWorker
-PASS SharedWorker interface: attribute onerror
-PASS Unscopable handled correctly for onerror property on SharedWorker
-PASS WorkerNavigator interface: existence and properties of interface object
-PASS WorkerLocation interface: existence and properties of interface object
-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 Unscopable handled correctly for length property on Storage
-PASS Storage interface: operation key(unsigned long)
-PASS Unscopable handled correctly for key(unsigned long) on Storage
-PASS Storage interface: operation getItem(DOMString)
-PASS Unscopable handled correctly for getItem(DOMString) on Storage
-PASS Storage interface: operation setItem(DOMString, DOMString)
-PASS Unscopable handled correctly for setItem(DOMString, DOMString) on Storage
-PASS Storage interface: operation removeItem(DOMString)
-PASS Unscopable handled correctly for removeItem(DOMString) on Storage
-PASS Storage interface: operation clear()
-PASS Unscopable handled correctly for clear() on Storage
-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 Unscopable handled correctly for key property on StorageEvent
-PASS StorageEvent interface: attribute oldValue
-PASS Unscopable handled correctly for oldValue property on StorageEvent
-PASS StorageEvent interface: attribute newValue
-PASS Unscopable handled correctly for newValue property on StorageEvent
-PASS StorageEvent interface: attribute url
-PASS Unscopable handled correctly for url property on StorageEvent
-PASS StorageEvent interface: attribute storageArea
-PASS Unscopable handled correctly for storageArea property on StorageEvent
-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 Unscopable handled correctly for behavior property on HTMLMarqueeElement
-PASS HTMLMarqueeElement interface: attribute bgColor
-PASS Unscopable handled correctly for bgColor property on HTMLMarqueeElement
-PASS HTMLMarqueeElement interface: attribute direction
-PASS Unscopable handled correctly for direction property on HTMLMarqueeElement
-PASS HTMLMarqueeElement interface: attribute height
-PASS Unscopable handled correctly for height property on HTMLMarqueeElement
-PASS HTMLMarqueeElement interface: attribute hspace
-PASS Unscopable handled correctly for hspace property on HTMLMarqueeElement
-PASS HTMLMarqueeElement interface: attribute loop
-PASS Unscopable handled correctly for loop property on HTMLMarqueeElement
-PASS HTMLMarqueeElement interface: attribute scrollAmount
-PASS Unscopable handled correctly for scrollAmount property on HTMLMarqueeElement
-PASS HTMLMarqueeElement interface: attribute scrollDelay
-PASS Unscopable handled correctly for scrollDelay property on HTMLMarqueeElement
-PASS HTMLMarqueeElement interface: attribute trueSpeed
-PASS Unscopable handled correctly for trueSpeed property on HTMLMarqueeElement
-PASS HTMLMarqueeElement interface: attribute vspace
-PASS Unscopable handled correctly for vspace property on HTMLMarqueeElement
-PASS HTMLMarqueeElement interface: attribute width
-PASS Unscopable handled correctly for width property on HTMLMarqueeElement
-FAIL HTMLMarqueeElement interface: attribute onbounce assert_true: The prototype object must have a property "onbounce" expected true got false
-PASS Unscopable handled correctly for onbounce property on HTMLMarqueeElement
-FAIL HTMLMarqueeElement interface: attribute onfinish assert_true: The prototype object must have a property "onfinish" expected true got false
-PASS Unscopable handled correctly for onfinish property on HTMLMarqueeElement
-FAIL HTMLMarqueeElement interface: attribute onstart assert_true: The prototype object must have a property "onstart" expected true got false
-PASS Unscopable handled correctly for onstart property on HTMLMarqueeElement
-PASS HTMLMarqueeElement interface: operation start()
-PASS Unscopable handled correctly for start() on HTMLMarqueeElement
-PASS HTMLMarqueeElement interface: operation stop()
-PASS Unscopable handled correctly for stop() on HTMLMarqueeElement
-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
-FAIL HTMLMarqueeElement interface: document.createElement("marquee") must inherit property "onbounce" with the proper type assert_inherits: property "onbounce" not found in prototype chain
-FAIL HTMLMarqueeElement interface: document.createElement("marquee") must inherit property "onfinish" with the proper type assert_inherits: property "onfinish" not found in prototype chain
-FAIL HTMLMarqueeElement interface: document.createElement("marquee") must inherit property "onstart" with the proper type assert_inherits: property "onstart" not found in prototype chain
-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 Unscopable handled correctly for cols property on HTMLFrameSetElement
-PASS HTMLFrameSetElement interface: attribute rows
-PASS Unscopable handled correctly for rows property on HTMLFrameSetElement
-PASS HTMLFrameSetElement interface: attribute onafterprint
-PASS Unscopable handled correctly for onafterprint property on HTMLFrameSetElement
-PASS HTMLFrameSetElement interface: attribute onbeforeprint
-PASS Unscopable handled correctly for onbeforeprint property on HTMLFrameSetElement
-PASS HTMLFrameSetElement interface: attribute onbeforeunload
-PASS Unscopable handled correctly for onbeforeunload property on HTMLFrameSetElement
-PASS HTMLFrameSetElement interface: attribute onhashchange
-PASS Unscopable handled correctly for onhashchange property on HTMLFrameSetElement
-PASS HTMLFrameSetElement interface: attribute onlanguagechange
-PASS Unscopable handled correctly for onlanguagechange property on HTMLFrameSetElement
-PASS HTMLFrameSetElement interface: attribute onmessage
-PASS Unscopable handled correctly for onmessage property on HTMLFrameSetElement
-PASS HTMLFrameSetElement interface: attribute onmessageerror
-PASS Unscopable handled correctly for onmessageerror property on HTMLFrameSetElement
-PASS HTMLFrameSetElement interface: attribute onoffline
-PASS Unscopable handled correctly for onoffline property on HTMLFrameSetElement
-PASS HTMLFrameSetElement interface: attribute ononline
-PASS Unscopable handled correctly for ononline property on HTMLFrameSetElement
-PASS HTMLFrameSetElement interface: attribute onpagehide
-PASS Unscopable handled correctly for onpagehide property on HTMLFrameSetElement
-PASS HTMLFrameSetElement interface: attribute onpageshow
-PASS Unscopable handled correctly for onpageshow property on HTMLFrameSetElement
-PASS HTMLFrameSetElement interface: attribute onpopstate
-PASS Unscopable handled correctly for onpopstate property on HTMLFrameSetElement
-PASS HTMLFrameSetElement interface: attribute onrejectionhandled
-PASS Unscopable handled correctly for onrejectionhandled property on HTMLFrameSetElement
-PASS HTMLFrameSetElement interface: attribute onstorage
-PASS Unscopable handled correctly for onstorage property on HTMLFrameSetElement
-PASS HTMLFrameSetElement interface: attribute onunhandledrejection
-PASS Unscopable handled correctly for onunhandledrejection property on HTMLFrameSetElement
-PASS HTMLFrameSetElement interface: attribute onunload
-PASS Unscopable handled correctly for onunload property on HTMLFrameSetElement
-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 Unscopable handled correctly for name property on HTMLFrameElement
-PASS HTMLFrameElement interface: attribute scrolling
-PASS Unscopable handled correctly for scrolling property on HTMLFrameElement
-PASS HTMLFrameElement interface: attribute src
-PASS Unscopable handled correctly for src property on HTMLFrameElement
-PASS HTMLFrameElement interface: attribute frameBorder
-PASS Unscopable handled correctly for frameBorder property on HTMLFrameElement
-PASS HTMLFrameElement interface: attribute longDesc
-PASS Unscopable handled correctly for longDesc property on HTMLFrameElement
-PASS HTMLFrameElement interface: attribute noResize
-PASS Unscopable handled correctly for noResize property on HTMLFrameElement
-PASS HTMLFrameElement interface: attribute contentDocument
-PASS Unscopable handled correctly for contentDocument property on HTMLFrameElement
-PASS HTMLFrameElement interface: attribute contentWindow
-PASS Unscopable handled correctly for contentWindow property on HTMLFrameElement
-PASS HTMLFrameElement interface: attribute marginHeight
-PASS Unscopable handled correctly for marginHeight property on HTMLFrameElement
-PASS HTMLFrameElement interface: attribute marginWidth
-PASS Unscopable handled correctly for marginWidth property on HTMLFrameElement
-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 Unscopable handled correctly for compact property on HTMLDirectoryElement
-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 Unscopable handled correctly for color property on HTMLFontElement
-PASS HTMLFontElement interface: attribute face
-PASS Unscopable handled correctly for face property on HTMLFontElement
-PASS HTMLFontElement interface: attribute size
-PASS Unscopable handled correctly for size property on HTMLFontElement
-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
-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
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/html/infrastructure/safe-passing-of-structured-data/structured_clone_bigint-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/html/infrastructure/safe-passing-of-structured-data/structured_clone_bigint-expected.txt
deleted file mode 100644
index 7e4e2b7..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/html/infrastructure/safe-passing-of-structured-data/structured_clone_bigint-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL 2.7 Safe passing of structured data Uncaught SyntaxError: Invalid or unexpected token
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/html/semantics/scripting-1/the-script-element/emptyish-script-elements-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/html/semantics/scripting-1/the-script-element/emptyish-script-elements-expected.txt
deleted file mode 100644
index c024f203..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/html/semantics/scripting-1/the-script-element/emptyish-script-elements-expected.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-This is a testharness.js-based test.
-PASS A script with no children bails early, before setting already-started, so can be executed when adding text
-PASS A script with a whitespace child executes, setting already-started, so adding text is a no-op
-FAIL A script with an empty element inserted bails early, before setting already-started, so can be executed when adding text assert_true: expected true got undefined
-FAIL A script with an empty text node inserted bails early, before setting already-started, so can be executed when adding text assert_true: expected true got undefined
-PASS A script with a text child inserted executes, setting already-started, so adding text is a no-op
-FAIL A script with a comment child inserted bails early, before setting already-started, so can be executed when adding text assert_true: expected true got undefined
-FAIL A script with an element containing text inserted bails early, before setting already-started, so can be executed when adding text assert_true: expected true got undefined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/keyboard-lock/idlharness.https-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/keyboard-lock/idlharness.https-expected.txt
deleted file mode 100644
index 8d92ab67..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/keyboard-lock/idlharness.https-expected.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-This is a testharness.js-based test.
-FAIL Navigator interface: operation keyboardLock(sequence) assert_throws: calling operation with this = null didn't throw TypeError function "function() {
-            fn.apply(obj, args);
-        }" did not throw
-PASS Unscopable handled correctly for keyboardLock(sequence) on Navigator
-PASS Navigator interface: operation keyboardUnlock()
-PASS Unscopable handled correctly for keyboardUnlock() on Navigator
-PASS Navigator interface: navigator must inherit property "keyboardLock(sequence)" with the proper type
-PASS Navigator interface: calling keyboardLock(sequence) on navigator with too few arguments must throw TypeError
-PASS Navigator interface: navigator must inherit property "keyboardUnlock()" with the proper type
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/magnetometer/idlharness.https-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/magnetometer/idlharness.https-expected.txt
deleted file mode 100644
index 49822f4..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/magnetometer/idlharness.https-expected.txt
+++ /dev/null
@@ -1,85 +0,0 @@
-This is a testharness.js-based test.
-PASS Test IDL implementation of Magnetometer Sensor
-PASS Sensor interface: existence and properties of interface object
-PASS Sensor interface object length
-PASS Sensor interface object name
-PASS Sensor interface: existence and properties of interface prototype object
-PASS Sensor interface: existence and properties of interface prototype object's "constructor" property
-PASS Sensor interface: existence and properties of interface prototype object's @@unscopables property
-PASS Sensor interface: attribute activated
-PASS Unscopable handled correctly for activated property on Sensor
-PASS Sensor interface: attribute hasReading
-PASS Unscopable handled correctly for hasReading property on Sensor
-PASS Sensor interface: attribute timestamp
-PASS Unscopable handled correctly for timestamp property on Sensor
-PASS Sensor interface: operation start()
-PASS Unscopable handled correctly for start() on Sensor
-PASS Sensor interface: operation stop()
-PASS Unscopable handled correctly for stop() on Sensor
-PASS Sensor interface: attribute onreading
-PASS Unscopable handled correctly for onreading property on Sensor
-PASS Sensor interface: attribute onactivate
-PASS Unscopable handled correctly for onactivate property on Sensor
-PASS Sensor interface: attribute onerror
-PASS Unscopable handled correctly for onerror property on Sensor
-PASS Magnetometer interface: existence and properties of interface object
-PASS Magnetometer interface object length
-PASS Magnetometer interface object name
-PASS Magnetometer interface: existence and properties of interface prototype object
-PASS Magnetometer interface: existence and properties of interface prototype object's "constructor" property
-PASS Magnetometer interface: existence and properties of interface prototype object's @@unscopables property
-PASS Magnetometer interface: attribute x
-PASS Unscopable handled correctly for x property on Magnetometer
-PASS Magnetometer interface: attribute y
-PASS Unscopable handled correctly for y property on Magnetometer
-PASS Magnetometer interface: attribute z
-PASS Unscopable handled correctly for z property on Magnetometer
-PASS Magnetometer must be primary interface of new Magnetometer();
-PASS Stringification of new Magnetometer();
-PASS Magnetometer interface: new Magnetometer(); must inherit property "x" with the proper type
-PASS Magnetometer interface: new Magnetometer(); must inherit property "y" with the proper type
-PASS Magnetometer interface: new Magnetometer(); must inherit property "z" with the proper type
-PASS Sensor interface: new Magnetometer(); must inherit property "activated" with the proper type
-PASS Sensor interface: new Magnetometer(); must inherit property "hasReading" with the proper type
-PASS Sensor interface: new Magnetometer(); must inherit property "timestamp" with the proper type
-PASS Sensor interface: new Magnetometer(); must inherit property "start()" with the proper type
-PASS Sensor interface: new Magnetometer(); must inherit property "stop()" with the proper type
-PASS Sensor interface: new Magnetometer(); must inherit property "onreading" with the proper type
-PASS Sensor interface: new Magnetometer(); must inherit property "onactivate" with the proper type
-PASS Sensor interface: new Magnetometer(); must inherit property "onerror" with the proper type
-FAIL UncalibratedMagnetometer interface: existence and properties of interface object assert_own_property: self does not have own property "UncalibratedMagnetometer" expected property "UncalibratedMagnetometer" missing
-FAIL UncalibratedMagnetometer interface object length assert_own_property: self does not have own property "UncalibratedMagnetometer" expected property "UncalibratedMagnetometer" missing
-FAIL UncalibratedMagnetometer interface object name assert_own_property: self does not have own property "UncalibratedMagnetometer" expected property "UncalibratedMagnetometer" missing
-FAIL UncalibratedMagnetometer interface: existence and properties of interface prototype object assert_own_property: self does not have own property "UncalibratedMagnetometer" expected property "UncalibratedMagnetometer" missing
-FAIL UncalibratedMagnetometer interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "UncalibratedMagnetometer" expected property "UncalibratedMagnetometer" missing
-FAIL UncalibratedMagnetometer interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "UncalibratedMagnetometer" expected property "UncalibratedMagnetometer" missing
-FAIL UncalibratedMagnetometer interface: attribute x assert_own_property: self does not have own property "UncalibratedMagnetometer" expected property "UncalibratedMagnetometer" missing
-PASS Unscopable handled correctly for x property on UncalibratedMagnetometer
-FAIL UncalibratedMagnetometer interface: attribute y assert_own_property: self does not have own property "UncalibratedMagnetometer" expected property "UncalibratedMagnetometer" missing
-PASS Unscopable handled correctly for y property on UncalibratedMagnetometer
-FAIL UncalibratedMagnetometer interface: attribute z assert_own_property: self does not have own property "UncalibratedMagnetometer" expected property "UncalibratedMagnetometer" missing
-PASS Unscopable handled correctly for z property on UncalibratedMagnetometer
-FAIL UncalibratedMagnetometer interface: attribute xBias assert_own_property: self does not have own property "UncalibratedMagnetometer" expected property "UncalibratedMagnetometer" missing
-PASS Unscopable handled correctly for xBias property on UncalibratedMagnetometer
-FAIL UncalibratedMagnetometer interface: attribute yBias assert_own_property: self does not have own property "UncalibratedMagnetometer" expected property "UncalibratedMagnetometer" missing
-PASS Unscopable handled correctly for yBias property on UncalibratedMagnetometer
-FAIL UncalibratedMagnetometer interface: attribute zBias assert_own_property: self does not have own property "UncalibratedMagnetometer" expected property "UncalibratedMagnetometer" missing
-PASS Unscopable handled correctly for zBias property on UncalibratedMagnetometer
-FAIL UncalibratedMagnetometer must be primary interface of new UncalibratedMagnetometer(); assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: UncalibratedMagnetometer is not defined"
-FAIL Stringification of new UncalibratedMagnetometer(); assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: UncalibratedMagnetometer is not defined"
-FAIL UncalibratedMagnetometer interface: new UncalibratedMagnetometer(); must inherit property "x" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: UncalibratedMagnetometer is not defined"
-FAIL UncalibratedMagnetometer interface: new UncalibratedMagnetometer(); must inherit property "y" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: UncalibratedMagnetometer is not defined"
-FAIL UncalibratedMagnetometer interface: new UncalibratedMagnetometer(); must inherit property "z" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: UncalibratedMagnetometer is not defined"
-FAIL UncalibratedMagnetometer interface: new UncalibratedMagnetometer(); must inherit property "xBias" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: UncalibratedMagnetometer is not defined"
-FAIL UncalibratedMagnetometer interface: new UncalibratedMagnetometer(); must inherit property "yBias" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: UncalibratedMagnetometer is not defined"
-FAIL UncalibratedMagnetometer interface: new UncalibratedMagnetometer(); must inherit property "zBias" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: UncalibratedMagnetometer is not defined"
-FAIL Sensor interface: new UncalibratedMagnetometer(); must inherit property "activated" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: UncalibratedMagnetometer is not defined"
-FAIL Sensor interface: new UncalibratedMagnetometer(); must inherit property "hasReading" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: UncalibratedMagnetometer is not defined"
-FAIL Sensor interface: new UncalibratedMagnetometer(); must inherit property "timestamp" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: UncalibratedMagnetometer is not defined"
-FAIL Sensor interface: new UncalibratedMagnetometer(); must inherit property "start()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: UncalibratedMagnetometer is not defined"
-FAIL Sensor interface: new UncalibratedMagnetometer(); must inherit property "stop()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: UncalibratedMagnetometer is not defined"
-FAIL Sensor interface: new UncalibratedMagnetometer(); must inherit property "onreading" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: UncalibratedMagnetometer is not defined"
-FAIL Sensor interface: new UncalibratedMagnetometer(); must inherit property "onactivate" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: UncalibratedMagnetometer is not defined"
-FAIL Sensor interface: new UncalibratedMagnetometer(); must inherit property "onerror" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: UncalibratedMagnetometer is not defined"
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/media-capabilities/idlharness-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/media-capabilities/idlharness-expected.txt
deleted file mode 100644
index e99c181..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/media-capabilities/idlharness-expected.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-This is a testharness.js-based test.
-PASS Navigator interface: attribute mediaCapabilities
-PASS Unscopable handled correctly for mediaCapabilities property on Navigator
-PASS Navigator interface: navigator must inherit property "mediaCapabilities" with the proper type
-PASS WorkerNavigator interface: existence and properties of interface object
-PASS MediaCapabilitiesInfo interface: existence and properties of interface object
-PASS MediaCapabilitiesInfo interface object length
-PASS MediaCapabilitiesInfo interface object name
-PASS MediaCapabilitiesInfo interface: existence and properties of interface prototype object
-PASS MediaCapabilitiesInfo interface: existence and properties of interface prototype object's "constructor" property
-PASS MediaCapabilitiesInfo interface: existence and properties of interface prototype object's @@unscopables property
-PASS MediaCapabilitiesInfo interface: attribute supported
-PASS Unscopable handled correctly for supported property on MediaCapabilitiesInfo
-PASS MediaCapabilitiesInfo interface: attribute smooth
-PASS Unscopable handled correctly for smooth property on MediaCapabilitiesInfo
-PASS MediaCapabilitiesInfo interface: attribute powerEfficient
-PASS Unscopable handled correctly for powerEfficient property on MediaCapabilitiesInfo
-PASS MediaCapabilities interface: existence and properties of interface object
-PASS MediaCapabilities interface object length
-PASS MediaCapabilities interface object name
-PASS MediaCapabilities interface: existence and properties of interface prototype object
-PASS MediaCapabilities interface: existence and properties of interface prototype object's "constructor" property
-PASS MediaCapabilities interface: existence and properties of interface prototype object's @@unscopables property
-FAIL MediaCapabilities interface: operation decodingInfo(MediaDecodingConfiguration) assert_throws: calling operation with this = null didn't throw TypeError function "function() {
-            fn.apply(obj, args);
-        }" did not throw
-PASS Unscopable handled correctly for decodingInfo(MediaDecodingConfiguration) on MediaCapabilities
-FAIL MediaCapabilities interface: operation encodingInfo(MediaEncodingConfiguration) assert_throws: calling operation with this = null didn't throw TypeError function "function() {
-            fn.apply(obj, args);
-        }" did not throw
-PASS Unscopable handled correctly for encodingInfo(MediaEncodingConfiguration) on MediaCapabilities
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/media-source/interfaces-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/media-source/interfaces-expected.txt
deleted file mode 100644
index b626df4..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/media-source/interfaces-expected.txt
+++ /dev/null
@@ -1,142 +0,0 @@
-This is a testharness.js-based test.
-Found 138 tests; 135 PASS, 3 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS URL interface: operation createObjectURL(MediaSource)
-PASS Unscopable handled correctly for createObjectURL(MediaSource) on URL
-PASS AudioTrack interface: attribute sourceBuffer
-PASS Unscopable handled correctly for sourceBuffer property on AudioTrack
-PASS VideoTrack interface: attribute sourceBuffer
-PASS Unscopable handled correctly for sourceBuffer property on VideoTrack
-FAIL TextTrack interface: attribute sourceBuffer assert_true: The prototype object must have a property "sourceBuffer" expected true got false
-PASS Unscopable handled correctly for sourceBuffer property on TextTrack
-PASS MediaSource interface: existence and properties of interface object
-PASS MediaSource interface object length
-PASS MediaSource interface object name
-PASS MediaSource interface: existence and properties of interface prototype object
-PASS MediaSource interface: existence and properties of interface prototype object's "constructor" property
-PASS MediaSource interface: existence and properties of interface prototype object's @@unscopables property
-PASS MediaSource interface: attribute sourceBuffers
-PASS Unscopable handled correctly for sourceBuffers property on MediaSource
-PASS MediaSource interface: attribute activeSourceBuffers
-PASS Unscopable handled correctly for activeSourceBuffers property on MediaSource
-PASS MediaSource interface: attribute readyState
-PASS Unscopable handled correctly for readyState property on MediaSource
-PASS MediaSource interface: attribute duration
-PASS Unscopable handled correctly for duration property on MediaSource
-PASS MediaSource interface: attribute onsourceopen
-PASS Unscopable handled correctly for onsourceopen property on MediaSource
-PASS MediaSource interface: attribute onsourceended
-PASS Unscopable handled correctly for onsourceended property on MediaSource
-PASS MediaSource interface: attribute onsourceclose
-PASS Unscopable handled correctly for onsourceclose property on MediaSource
-PASS MediaSource interface: operation addSourceBuffer(DOMString)
-PASS Unscopable handled correctly for addSourceBuffer(DOMString) on MediaSource
-PASS MediaSource interface: operation removeSourceBuffer(SourceBuffer)
-PASS Unscopable handled correctly for removeSourceBuffer(SourceBuffer) on MediaSource
-PASS MediaSource interface: operation endOfStream(EndOfStreamError)
-PASS Unscopable handled correctly for endOfStream(EndOfStreamError) on MediaSource
-PASS MediaSource interface: operation setLiveSeekableRange(double, double)
-PASS Unscopable handled correctly for setLiveSeekableRange(double, double) on MediaSource
-PASS MediaSource interface: operation clearLiveSeekableRange()
-PASS Unscopable handled correctly for clearLiveSeekableRange() on MediaSource
-PASS MediaSource interface: operation isTypeSupported(DOMString)
-PASS Unscopable handled correctly for isTypeSupported(DOMString) on MediaSource
-PASS MediaSource must be primary interface of mediaSource
-PASS Stringification of mediaSource
-PASS MediaSource interface: mediaSource must inherit property "sourceBuffers" with the proper type
-PASS MediaSource interface: mediaSource must inherit property "activeSourceBuffers" with the proper type
-PASS MediaSource interface: mediaSource must inherit property "readyState" with the proper type
-PASS MediaSource interface: mediaSource must inherit property "duration" with the proper type
-PASS MediaSource interface: mediaSource must inherit property "onsourceopen" with the proper type
-PASS MediaSource interface: mediaSource must inherit property "onsourceended" with the proper type
-PASS MediaSource interface: mediaSource must inherit property "onsourceclose" with the proper type
-PASS MediaSource interface: mediaSource must inherit property "addSourceBuffer(DOMString)" with the proper type
-PASS MediaSource interface: calling addSourceBuffer(DOMString) on mediaSource with too few arguments must throw TypeError
-PASS MediaSource interface: mediaSource must inherit property "removeSourceBuffer(SourceBuffer)" with the proper type
-PASS MediaSource interface: calling removeSourceBuffer(SourceBuffer) on mediaSource with too few arguments must throw TypeError
-PASS MediaSource interface: mediaSource must inherit property "endOfStream(EndOfStreamError)" with the proper type
-PASS MediaSource interface: calling endOfStream(EndOfStreamError) on mediaSource with too few arguments must throw TypeError
-PASS MediaSource interface: mediaSource must inherit property "setLiveSeekableRange(double, double)" with the proper type
-PASS MediaSource interface: calling setLiveSeekableRange(double, double) on mediaSource with too few arguments must throw TypeError
-PASS MediaSource interface: mediaSource must inherit property "clearLiveSeekableRange()" with the proper type
-PASS MediaSource interface: mediaSource must inherit property "isTypeSupported(DOMString)" with the proper type
-PASS MediaSource interface: calling isTypeSupported(DOMString) on mediaSource with too few arguments must throw TypeError
-PASS SourceBuffer interface: existence and properties of interface object
-PASS SourceBuffer interface object length
-PASS SourceBuffer interface object name
-PASS SourceBuffer interface: existence and properties of interface prototype object
-PASS SourceBuffer interface: existence and properties of interface prototype object's "constructor" property
-PASS SourceBuffer interface: existence and properties of interface prototype object's @@unscopables property
-PASS SourceBuffer interface: attribute mode
-PASS Unscopable handled correctly for mode property on SourceBuffer
-PASS SourceBuffer interface: attribute updating
-PASS Unscopable handled correctly for updating property on SourceBuffer
-PASS SourceBuffer interface: attribute buffered
-PASS Unscopable handled correctly for buffered property on SourceBuffer
-PASS SourceBuffer interface: attribute timestampOffset
-PASS Unscopable handled correctly for timestampOffset property on SourceBuffer
-PASS SourceBuffer interface: attribute audioTracks
-PASS Unscopable handled correctly for audioTracks property on SourceBuffer
-PASS SourceBuffer interface: attribute videoTracks
-PASS Unscopable handled correctly for videoTracks property on SourceBuffer
-FAIL SourceBuffer interface: attribute textTracks assert_true: The prototype object must have a property "textTracks" expected true got false
-PASS Unscopable handled correctly for textTracks property on SourceBuffer
-PASS SourceBuffer interface: attribute appendWindowStart
-PASS Unscopable handled correctly for appendWindowStart property on SourceBuffer
-PASS SourceBuffer interface: attribute appendWindowEnd
-PASS Unscopable handled correctly for appendWindowEnd property on SourceBuffer
-PASS SourceBuffer interface: attribute onupdatestart
-PASS Unscopable handled correctly for onupdatestart property on SourceBuffer
-PASS SourceBuffer interface: attribute onupdate
-PASS Unscopable handled correctly for onupdate property on SourceBuffer
-PASS SourceBuffer interface: attribute onupdateend
-PASS Unscopable handled correctly for onupdateend property on SourceBuffer
-PASS SourceBuffer interface: attribute onerror
-PASS Unscopable handled correctly for onerror property on SourceBuffer
-PASS SourceBuffer interface: attribute onabort
-PASS Unscopable handled correctly for onabort property on SourceBuffer
-PASS SourceBuffer interface: operation appendBuffer(BufferSource)
-PASS Unscopable handled correctly for appendBuffer(BufferSource) on SourceBuffer
-PASS SourceBuffer interface: operation abort()
-PASS Unscopable handled correctly for abort() on SourceBuffer
-PASS SourceBuffer interface: operation remove(double, unrestricted double)
-PASS Unscopable handled correctly for remove(double, unrestricted double) on SourceBuffer
-PASS SourceBuffer must be primary interface of sourceBuffer
-PASS Stringification of sourceBuffer
-PASS SourceBuffer interface: sourceBuffer must inherit property "mode" with the proper type
-PASS SourceBuffer interface: sourceBuffer must inherit property "updating" with the proper type
-PASS SourceBuffer interface: sourceBuffer must inherit property "buffered" with the proper type
-PASS SourceBuffer interface: sourceBuffer must inherit property "timestampOffset" with the proper type
-PASS SourceBuffer interface: sourceBuffer must inherit property "audioTracks" with the proper type
-PASS SourceBuffer interface: sourceBuffer must inherit property "videoTracks" with the proper type
-FAIL SourceBuffer interface: sourceBuffer must inherit property "textTracks" with the proper type assert_inherits: property "textTracks" not found in prototype chain
-PASS SourceBuffer interface: sourceBuffer must inherit property "appendWindowStart" with the proper type
-PASS SourceBuffer interface: sourceBuffer must inherit property "appendWindowEnd" with the proper type
-PASS SourceBuffer interface: sourceBuffer must inherit property "onupdatestart" with the proper type
-PASS SourceBuffer interface: sourceBuffer must inherit property "onupdate" with the proper type
-PASS SourceBuffer interface: sourceBuffer must inherit property "onupdateend" with the proper type
-PASS SourceBuffer interface: sourceBuffer must inherit property "onerror" with the proper type
-PASS SourceBuffer interface: sourceBuffer must inherit property "onabort" with the proper type
-PASS SourceBuffer interface: sourceBuffer must inherit property "appendBuffer(BufferSource)" with the proper type
-PASS SourceBuffer interface: calling appendBuffer(BufferSource) on sourceBuffer with too few arguments must throw TypeError
-PASS SourceBuffer interface: sourceBuffer must inherit property "abort()" with the proper type
-PASS SourceBuffer interface: sourceBuffer must inherit property "remove(double, unrestricted double)" with the proper type
-PASS SourceBuffer interface: calling remove(double, unrestricted double) on sourceBuffer with too few arguments must throw TypeError
-PASS SourceBufferList interface: existence and properties of interface object
-PASS SourceBufferList interface object length
-PASS SourceBufferList interface object name
-PASS SourceBufferList interface: existence and properties of interface prototype object
-PASS SourceBufferList interface: existence and properties of interface prototype object's "constructor" property
-PASS SourceBufferList interface: existence and properties of interface prototype object's @@unscopables property
-PASS SourceBufferList interface: attribute length
-PASS Unscopable handled correctly for length property on SourceBufferList
-PASS SourceBufferList interface: attribute onaddsourcebuffer
-PASS Unscopable handled correctly for onaddsourcebuffer property on SourceBufferList
-PASS SourceBufferList interface: attribute onremovesourcebuffer
-PASS Unscopable handled correctly for onremovesourcebuffer property on SourceBufferList
-PASS SourceBufferList must be primary interface of mediaSource.sourceBuffers
-PASS Stringification of mediaSource.sourceBuffers
-PASS SourceBufferList interface: mediaSource.sourceBuffers must inherit property "length" with the proper type
-PASS SourceBufferList interface: mediaSource.sourceBuffers must inherit property "onaddsourcebuffer" with the proper type
-PASS SourceBufferList interface: mediaSource.sourceBuffers must inherit property "onremovesourcebuffer" with the proper type
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/mediacapture-fromelement/idlharness-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/mediacapture-fromelement/idlharness-expected.txt
deleted file mode 100644
index dcbc5d1..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/mediacapture-fromelement/idlharness-expected.txt
+++ /dev/null
@@ -1,24 +0,0 @@
-This is a testharness.js-based test.
-PASS HTMLCanvasElement interface: operation captureStream(double)
-PASS Unscopable handled correctly for captureStream(double) on HTMLCanvasElement
-PASS HTMLCanvasElement interface: [object HTMLCanvasElement] must inherit property "captureStream(double)" with the proper type
-PASS HTMLCanvasElement interface: calling captureStream(double) on [object HTMLCanvasElement] with too few arguments must throw TypeError
-PASS HTMLMediaElement interface: operation captureStream()
-PASS Unscopable handled correctly for captureStream() on HTMLMediaElement
-FAIL HTMLMediaElement interface: [object HTMLUnknownElement] must inherit property "captureStream()" with the proper type assert_inherits: property "captureStream" not found in prototype chain
-PASS CanvasCaptureMediaStreamTrack interface: existence and properties of interface object
-PASS CanvasCaptureMediaStreamTrack interface object length
-PASS CanvasCaptureMediaStreamTrack interface object name
-PASS CanvasCaptureMediaStreamTrack interface: existence and properties of interface prototype object
-PASS CanvasCaptureMediaStreamTrack interface: existence and properties of interface prototype object's "constructor" property
-PASS CanvasCaptureMediaStreamTrack interface: existence and properties of interface prototype object's @@unscopables property
-PASS CanvasCaptureMediaStreamTrack interface: attribute canvas
-PASS Unscopable handled correctly for canvas property on CanvasCaptureMediaStreamTrack
-PASS CanvasCaptureMediaStreamTrack interface: operation requestFrame()
-PASS Unscopable handled correctly for requestFrame() on CanvasCaptureMediaStreamTrack
-PASS CanvasCaptureMediaStreamTrack must be primary interface of [object CanvasCaptureMediaStreamTrack]
-PASS Stringification of [object CanvasCaptureMediaStreamTrack]
-PASS CanvasCaptureMediaStreamTrack interface: [object CanvasCaptureMediaStreamTrack] must inherit property "canvas" with the proper type
-PASS CanvasCaptureMediaStreamTrack interface: [object CanvasCaptureMediaStreamTrack] must inherit property "requestFrame()" with the proper type
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/mediacapture-record/idlharness-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/mediacapture-record/idlharness-expected.txt
deleted file mode 100644
index cfb7068..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/mediacapture-record/idlharness-expected.txt
+++ /dev/null
@@ -1,83 +0,0 @@
-This is a testharness.js-based test.
-Found 79 tests; 72 PASS, 7 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS MediaRecorder interface: existence and properties of interface object
-PASS MediaRecorder interface object length
-PASS MediaRecorder interface object name
-PASS MediaRecorder interface: existence and properties of interface prototype object
-PASS MediaRecorder interface: existence and properties of interface prototype object's "constructor" property
-PASS MediaRecorder interface: existence and properties of interface prototype object's @@unscopables property
-PASS MediaRecorder interface: attribute stream
-PASS Unscopable handled correctly for stream property on MediaRecorder
-PASS MediaRecorder interface: attribute mimeType
-PASS Unscopable handled correctly for mimeType property on MediaRecorder
-PASS MediaRecorder interface: attribute state
-PASS Unscopable handled correctly for state property on MediaRecorder
-PASS MediaRecorder interface: attribute onstart
-PASS Unscopable handled correctly for onstart property on MediaRecorder
-PASS MediaRecorder interface: attribute onstop
-PASS Unscopable handled correctly for onstop property on MediaRecorder
-PASS MediaRecorder interface: attribute ondataavailable
-PASS Unscopable handled correctly for ondataavailable property on MediaRecorder
-PASS MediaRecorder interface: attribute onpause
-PASS Unscopable handled correctly for onpause property on MediaRecorder
-PASS MediaRecorder interface: attribute onresume
-PASS Unscopable handled correctly for onresume property on MediaRecorder
-PASS MediaRecorder interface: attribute onerror
-PASS Unscopable handled correctly for onerror property on MediaRecorder
-PASS MediaRecorder interface: attribute videoBitsPerSecond
-PASS Unscopable handled correctly for videoBitsPerSecond property on MediaRecorder
-PASS MediaRecorder interface: attribute audioBitsPerSecond
-PASS Unscopable handled correctly for audioBitsPerSecond property on MediaRecorder
-PASS MediaRecorder interface: operation start(long)
-PASS Unscopable handled correctly for start(long) on MediaRecorder
-PASS MediaRecorder interface: operation stop()
-PASS Unscopable handled correctly for stop() on MediaRecorder
-PASS MediaRecorder interface: operation pause()
-PASS Unscopable handled correctly for pause() on MediaRecorder
-PASS MediaRecorder interface: operation resume()
-PASS Unscopable handled correctly for resume() on MediaRecorder
-PASS MediaRecorder interface: operation requestData()
-PASS Unscopable handled correctly for requestData() on MediaRecorder
-PASS MediaRecorder interface: operation isTypeSupported(DOMString)
-PASS Unscopable handled correctly for isTypeSupported(DOMString) on MediaRecorder
-PASS MediaRecorder must be primary interface of [object MediaRecorder]
-PASS Stringification of [object MediaRecorder]
-PASS MediaRecorder interface: [object MediaRecorder] must inherit property "stream" with the proper type
-PASS MediaRecorder interface: [object MediaRecorder] must inherit property "mimeType" with the proper type
-PASS MediaRecorder interface: [object MediaRecorder] must inherit property "state" with the proper type
-PASS MediaRecorder interface: [object MediaRecorder] must inherit property "onstart" with the proper type
-PASS MediaRecorder interface: [object MediaRecorder] must inherit property "onstop" with the proper type
-PASS MediaRecorder interface: [object MediaRecorder] must inherit property "ondataavailable" with the proper type
-PASS MediaRecorder interface: [object MediaRecorder] must inherit property "onpause" with the proper type
-PASS MediaRecorder interface: [object MediaRecorder] must inherit property "onresume" with the proper type
-PASS MediaRecorder interface: [object MediaRecorder] must inherit property "onerror" with the proper type
-PASS MediaRecorder interface: [object MediaRecorder] must inherit property "videoBitsPerSecond" with the proper type
-PASS MediaRecorder interface: [object MediaRecorder] must inherit property "audioBitsPerSecond" with the proper type
-PASS MediaRecorder interface: [object MediaRecorder] must inherit property "start(long)" with the proper type
-PASS MediaRecorder interface: calling start(long) on [object MediaRecorder] with too few arguments must throw TypeError
-PASS MediaRecorder interface: [object MediaRecorder] must inherit property "stop()" with the proper type
-PASS MediaRecorder interface: [object MediaRecorder] must inherit property "pause()" with the proper type
-PASS MediaRecorder interface: [object MediaRecorder] must inherit property "resume()" with the proper type
-PASS MediaRecorder interface: [object MediaRecorder] must inherit property "requestData()" with the proper type
-PASS MediaRecorder interface: [object MediaRecorder] must inherit property "isTypeSupported(DOMString)" with the proper type
-PASS MediaRecorder interface: calling isTypeSupported(DOMString) on [object MediaRecorder] with too few arguments must throw TypeError
-PASS BlobEvent interface: existence and properties of interface object
-PASS BlobEvent interface object length
-PASS BlobEvent interface object name
-PASS BlobEvent interface: existence and properties of interface prototype object
-PASS BlobEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS BlobEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS BlobEvent interface: attribute data
-PASS Unscopable handled correctly for data property on BlobEvent
-PASS BlobEvent interface: attribute timecode
-PASS Unscopable handled correctly for timecode property on BlobEvent
-FAIL MediaRecorderErrorEvent interface: existence and properties of interface object assert_own_property: self does not have own property "MediaRecorderErrorEvent" expected property "MediaRecorderErrorEvent" missing
-FAIL MediaRecorderErrorEvent interface object length assert_own_property: self does not have own property "MediaRecorderErrorEvent" expected property "MediaRecorderErrorEvent" missing
-FAIL MediaRecorderErrorEvent interface object name assert_own_property: self does not have own property "MediaRecorderErrorEvent" expected property "MediaRecorderErrorEvent" missing
-FAIL MediaRecorderErrorEvent interface: existence and properties of interface prototype object assert_own_property: self does not have own property "MediaRecorderErrorEvent" expected property "MediaRecorderErrorEvent" missing
-FAIL MediaRecorderErrorEvent interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "MediaRecorderErrorEvent" expected property "MediaRecorderErrorEvent" missing
-FAIL MediaRecorderErrorEvent interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "MediaRecorderErrorEvent" expected property "MediaRecorderErrorEvent" missing
-FAIL MediaRecorderErrorEvent interface: attribute error assert_own_property: self does not have own property "MediaRecorderErrorEvent" expected property "MediaRecorderErrorEvent" missing
-PASS Unscopable handled correctly for error property on MediaRecorderErrorEvent
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/mediacapture-streams/MediaDevices-IDL-all-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/mediacapture-streams/MediaDevices-IDL-all-expected.txt
deleted file mode 100644
index 66f2aaf..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/mediacapture-streams/MediaDevices-IDL-all-expected.txt
+++ /dev/null
@@ -1,139 +0,0 @@
-This is a testharness.js-based test.
-Found 135 tests; 118 PASS, 17 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS Test driver
-PASS Navigator interface: attribute mediaDevices
-PASS Unscopable handled correctly for mediaDevices property on Navigator
-PASS Navigator interface: operation getUserMedia(MediaStreamConstraints, NavigatorUserMediaSuccessCallback, NavigatorUserMediaErrorCallback)
-PASS Unscopable handled correctly for getUserMedia(MediaStreamConstraints, NavigatorUserMediaSuccessCallback, NavigatorUserMediaErrorCallback) on Navigator
-PASS Navigator interface: navigator must inherit property "mediaDevices" with the proper type
-PASS Navigator interface: navigator must inherit property "getUserMedia(MediaStreamConstraints, NavigatorUserMediaSuccessCallback, NavigatorUserMediaErrorCallback)" with the proper type
-PASS Navigator interface: calling getUserMedia(MediaStreamConstraints, NavigatorUserMediaSuccessCallback, NavigatorUserMediaErrorCallback) on navigator with too few arguments must throw TypeError
-PASS MediaStream interface: existence and properties of interface object
-PASS MediaStream interface object length
-PASS MediaStream interface object name
-PASS MediaStream interface: existence and properties of interface prototype object
-PASS MediaStream interface: existence and properties of interface prototype object's "constructor" property
-PASS MediaStream interface: existence and properties of interface prototype object's @@unscopables property
-PASS MediaStream interface: attribute id
-PASS Unscopable handled correctly for id property on MediaStream
-PASS MediaStream interface: operation getAudioTracks()
-PASS Unscopable handled correctly for getAudioTracks() on MediaStream
-PASS MediaStream interface: operation getVideoTracks()
-PASS Unscopable handled correctly for getVideoTracks() on MediaStream
-PASS MediaStream interface: operation getTracks()
-PASS Unscopable handled correctly for getTracks() on MediaStream
-PASS MediaStream interface: operation getTrackById(DOMString)
-PASS Unscopable handled correctly for getTrackById(DOMString) on MediaStream
-PASS MediaStream interface: operation addTrack(MediaStreamTrack)
-PASS Unscopable handled correctly for addTrack(MediaStreamTrack) on MediaStream
-PASS MediaStream interface: operation removeTrack(MediaStreamTrack)
-PASS Unscopable handled correctly for removeTrack(MediaStreamTrack) on MediaStream
-PASS MediaStream interface: operation clone()
-PASS Unscopable handled correctly for clone() on MediaStream
-PASS MediaStream interface: attribute active
-PASS Unscopable handled correctly for active property on MediaStream
-PASS MediaStream interface: attribute onaddtrack
-PASS Unscopable handled correctly for onaddtrack property on MediaStream
-PASS MediaStream interface: attribute onremovetrack
-PASS Unscopable handled correctly for onremovetrack property on MediaStream
-PASS MediaStreamTrack interface: existence and properties of interface object
-PASS MediaStreamTrack interface object length
-PASS MediaStreamTrack interface object name
-PASS MediaStreamTrack interface: existence and properties of interface prototype object
-PASS MediaStreamTrack interface: existence and properties of interface prototype object's "constructor" property
-PASS MediaStreamTrack interface: existence and properties of interface prototype object's @@unscopables property
-PASS MediaStreamTrack interface: attribute kind
-PASS Unscopable handled correctly for kind property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute id
-PASS Unscopable handled correctly for id property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute label
-PASS Unscopable handled correctly for label property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute enabled
-PASS Unscopable handled correctly for enabled property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute muted
-PASS Unscopable handled correctly for muted property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute onmute
-PASS Unscopable handled correctly for onmute property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute onunmute
-PASS Unscopable handled correctly for onunmute property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute readyState
-PASS Unscopable handled correctly for readyState property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute onended
-PASS Unscopable handled correctly for onended property on MediaStreamTrack
-PASS MediaStreamTrack interface: operation clone()
-PASS Unscopable handled correctly for clone() on MediaStreamTrack
-PASS MediaStreamTrack interface: operation stop()
-PASS Unscopable handled correctly for stop() on MediaStreamTrack
-PASS MediaStreamTrack interface: operation getCapabilities()
-PASS Unscopable handled correctly for getCapabilities() on MediaStreamTrack
-PASS MediaStreamTrack interface: operation getConstraints()
-PASS Unscopable handled correctly for getConstraints() on MediaStreamTrack
-PASS MediaStreamTrack interface: operation getSettings()
-PASS Unscopable handled correctly for getSettings() on MediaStreamTrack
-PASS MediaStreamTrack interface: operation applyConstraints(MediaTrackConstraints)
-PASS Unscopable handled correctly for applyConstraints(MediaTrackConstraints) on MediaStreamTrack
-FAIL MediaStreamTrack interface: attribute onoverconstrained assert_true: The prototype object must have a property "onoverconstrained" expected true got false
-PASS Unscopable handled correctly for onoverconstrained property on MediaStreamTrack
-FAIL MediaStreamTrackEvent interface: existence and properties of interface object Cannot read property 'has_extended_attribute' of undefined
-PASS MediaStreamTrackEvent interface object length
-PASS MediaStreamTrackEvent interface object name
-FAIL MediaStreamTrackEvent interface: existence and properties of interface prototype object Cannot read property 'has_extended_attribute' of undefined
-PASS MediaStreamTrackEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS MediaStreamTrackEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS MediaStreamTrackEvent interface: attribute track
-PASS Unscopable handled correctly for track property on MediaStreamTrackEvent
-FAIL OverconstrainedErrorEvent interface: existence and properties of interface object assert_own_property: self does not have own property "OverconstrainedErrorEvent" expected property "OverconstrainedErrorEvent" missing
-FAIL OverconstrainedErrorEvent interface object length assert_own_property: self does not have own property "OverconstrainedErrorEvent" expected property "OverconstrainedErrorEvent" missing
-FAIL OverconstrainedErrorEvent interface object name assert_own_property: self does not have own property "OverconstrainedErrorEvent" expected property "OverconstrainedErrorEvent" missing
-FAIL OverconstrainedErrorEvent interface: existence and properties of interface prototype object assert_own_property: self does not have own property "OverconstrainedErrorEvent" expected property "OverconstrainedErrorEvent" missing
-FAIL OverconstrainedErrorEvent interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "OverconstrainedErrorEvent" expected property "OverconstrainedErrorEvent" missing
-FAIL OverconstrainedErrorEvent interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "OverconstrainedErrorEvent" expected property "OverconstrainedErrorEvent" missing
-FAIL OverconstrainedErrorEvent interface: attribute error assert_own_property: self does not have own property "OverconstrainedErrorEvent" expected property "OverconstrainedErrorEvent" missing
-PASS Unscopable handled correctly for error property on OverconstrainedErrorEvent
-PASS MediaDevices interface: existence and properties of interface object
-PASS MediaDevices interface object length
-PASS MediaDevices interface object name
-PASS MediaDevices interface: existence and properties of interface prototype object
-PASS MediaDevices interface: existence and properties of interface prototype object's "constructor" property
-PASS MediaDevices interface: existence and properties of interface prototype object's @@unscopables property
-PASS MediaDevices interface: attribute ondevicechange
-PASS Unscopable handled correctly for ondevicechange property on MediaDevices
-PASS MediaDevices interface: operation enumerateDevices()
-PASS Unscopable handled correctly for enumerateDevices() on MediaDevices
-PASS MediaDevices interface: operation getSupportedConstraints()
-PASS Unscopable handled correctly for getSupportedConstraints() on MediaDevices
-PASS MediaDevices interface: operation getUserMedia(MediaStreamConstraints)
-PASS Unscopable handled correctly for getUserMedia(MediaStreamConstraints) on MediaDevices
-PASS MediaDevices must be primary interface of navigator.mediaDevices
-PASS Stringification of navigator.mediaDevices
-PASS MediaDevices interface: navigator.mediaDevices must inherit property "ondevicechange" with the proper type
-PASS MediaDevices interface: navigator.mediaDevices must inherit property "enumerateDevices()" with the proper type
-PASS MediaDevices interface: navigator.mediaDevices must inherit property "getSupportedConstraints()" with the proper type
-PASS MediaDevices interface: navigator.mediaDevices must inherit property "getUserMedia(MediaStreamConstraints)" with the proper type
-PASS MediaDevices interface: calling getUserMedia(MediaStreamConstraints) on navigator.mediaDevices with too few arguments must throw TypeError
-PASS MediaDeviceInfo interface: existence and properties of interface object
-PASS MediaDeviceInfo interface object length
-PASS MediaDeviceInfo interface object name
-PASS MediaDeviceInfo interface: existence and properties of interface prototype object
-PASS MediaDeviceInfo interface: existence and properties of interface prototype object's "constructor" property
-PASS MediaDeviceInfo interface: existence and properties of interface prototype object's @@unscopables property
-PASS MediaDeviceInfo interface: attribute deviceId
-PASS Unscopable handled correctly for deviceId property on MediaDeviceInfo
-PASS MediaDeviceInfo interface: attribute kind
-PASS Unscopable handled correctly for kind property on MediaDeviceInfo
-PASS MediaDeviceInfo interface: attribute label
-PASS Unscopable handled correctly for label property on MediaDeviceInfo
-PASS MediaDeviceInfo interface: attribute groupId
-PASS Unscopable handled correctly for groupId property on MediaDeviceInfo
-PASS MediaDeviceInfo interface: operation toJSON()
-PASS Unscopable handled correctly for toJSON() on MediaDeviceInfo
-FAIL InputDeviceInfo interface: existence and properties of interface object assert_own_property: self does not have own property "InputDeviceInfo" expected property "InputDeviceInfo" missing
-FAIL InputDeviceInfo interface object length assert_own_property: self does not have own property "InputDeviceInfo" expected property "InputDeviceInfo" missing
-FAIL InputDeviceInfo interface object name assert_own_property: self does not have own property "InputDeviceInfo" expected property "InputDeviceInfo" missing
-FAIL InputDeviceInfo interface: existence and properties of interface prototype object assert_own_property: self does not have own property "InputDeviceInfo" expected property "InputDeviceInfo" missing
-FAIL InputDeviceInfo interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "InputDeviceInfo" expected property "InputDeviceInfo" missing
-FAIL InputDeviceInfo interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "InputDeviceInfo" expected property "InputDeviceInfo" missing
-FAIL InputDeviceInfo interface: operation getCapabilities() assert_own_property: self does not have own property "InputDeviceInfo" expected property "InputDeviceInfo" missing
-PASS Unscopable handled correctly for getCapabilities() on InputDeviceInfo
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/mediacapture-streams/MediaDevices-IDL-enumerateDevices-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/mediacapture-streams/MediaDevices-IDL-enumerateDevices-expected.txt
deleted file mode 100644
index a50274d..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/mediacapture-streams/MediaDevices-IDL-enumerateDevices-expected.txt
+++ /dev/null
@@ -1,137 +0,0 @@
-This is a testharness.js-based test.
-Found 133 tests; 118 PASS, 15 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS Test MediaDevices.enumerateDevices call and result. Types only.
-PASS Navigator interface: attribute mediaDevices
-PASS Unscopable handled correctly for mediaDevices property on Navigator
-PASS Navigator interface: operation getUserMedia(MediaStreamConstraints, NavigatorUserMediaSuccessCallback, NavigatorUserMediaErrorCallback)
-PASS Unscopable handled correctly for getUserMedia(MediaStreamConstraints, NavigatorUserMediaSuccessCallback, NavigatorUserMediaErrorCallback) on Navigator
-PASS MediaStream interface: existence and properties of interface object
-PASS MediaStream interface object length
-PASS MediaStream interface object name
-PASS MediaStream interface: existence and properties of interface prototype object
-PASS MediaStream interface: existence and properties of interface prototype object's "constructor" property
-PASS MediaStream interface: existence and properties of interface prototype object's @@unscopables property
-PASS MediaStream interface: attribute id
-PASS Unscopable handled correctly for id property on MediaStream
-PASS MediaStream interface: operation getAudioTracks()
-PASS Unscopable handled correctly for getAudioTracks() on MediaStream
-PASS MediaStream interface: operation getVideoTracks()
-PASS Unscopable handled correctly for getVideoTracks() on MediaStream
-PASS MediaStream interface: operation getTracks()
-PASS Unscopable handled correctly for getTracks() on MediaStream
-PASS MediaStream interface: operation getTrackById(DOMString)
-PASS Unscopable handled correctly for getTrackById(DOMString) on MediaStream
-PASS MediaStream interface: operation addTrack(MediaStreamTrack)
-PASS Unscopable handled correctly for addTrack(MediaStreamTrack) on MediaStream
-PASS MediaStream interface: operation removeTrack(MediaStreamTrack)
-PASS Unscopable handled correctly for removeTrack(MediaStreamTrack) on MediaStream
-PASS MediaStream interface: operation clone()
-PASS Unscopable handled correctly for clone() on MediaStream
-PASS MediaStream interface: attribute active
-PASS Unscopable handled correctly for active property on MediaStream
-PASS MediaStream interface: attribute onaddtrack
-PASS Unscopable handled correctly for onaddtrack property on MediaStream
-PASS MediaStream interface: attribute onremovetrack
-PASS Unscopable handled correctly for onremovetrack property on MediaStream
-PASS MediaStreamTrack interface: existence and properties of interface object
-PASS MediaStreamTrack interface object length
-PASS MediaStreamTrack interface object name
-PASS MediaStreamTrack interface: existence and properties of interface prototype object
-PASS MediaStreamTrack interface: existence and properties of interface prototype object's "constructor" property
-PASS MediaStreamTrack interface: existence and properties of interface prototype object's @@unscopables property
-PASS MediaStreamTrack interface: attribute kind
-PASS Unscopable handled correctly for kind property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute id
-PASS Unscopable handled correctly for id property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute label
-PASS Unscopable handled correctly for label property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute enabled
-PASS Unscopable handled correctly for enabled property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute muted
-PASS Unscopable handled correctly for muted property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute onmute
-PASS Unscopable handled correctly for onmute property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute onunmute
-PASS Unscopable handled correctly for onunmute property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute readyState
-PASS Unscopable handled correctly for readyState property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute onended
-PASS Unscopable handled correctly for onended property on MediaStreamTrack
-PASS MediaStreamTrack interface: operation clone()
-PASS Unscopable handled correctly for clone() on MediaStreamTrack
-PASS MediaStreamTrack interface: operation stop()
-PASS Unscopable handled correctly for stop() on MediaStreamTrack
-PASS MediaStreamTrack interface: operation getCapabilities()
-PASS Unscopable handled correctly for getCapabilities() on MediaStreamTrack
-PASS MediaStreamTrack interface: operation getConstraints()
-PASS Unscopable handled correctly for getConstraints() on MediaStreamTrack
-PASS MediaStreamTrack interface: operation getSettings()
-PASS Unscopable handled correctly for getSettings() on MediaStreamTrack
-PASS MediaStreamTrack interface: operation applyConstraints(MediaTrackConstraints)
-PASS Unscopable handled correctly for applyConstraints(MediaTrackConstraints) on MediaStreamTrack
-FAIL MediaStreamTrack interface: attribute onoverconstrained assert_true: The prototype object must have a property "onoverconstrained" expected true got false
-PASS Unscopable handled correctly for onoverconstrained property on MediaStreamTrack
-PASS MediaStreamTrackEvent interface: existence and properties of interface object
-PASS MediaStreamTrackEvent interface object length
-PASS MediaStreamTrackEvent interface object name
-PASS MediaStreamTrackEvent interface: existence and properties of interface prototype object
-PASS MediaStreamTrackEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS MediaStreamTrackEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS MediaStreamTrackEvent interface: attribute track
-PASS Unscopable handled correctly for track property on MediaStreamTrackEvent
-FAIL OverconstrainedErrorEvent interface: existence and properties of interface object assert_own_property: self does not have own property "OverconstrainedErrorEvent" expected property "OverconstrainedErrorEvent" missing
-FAIL OverconstrainedErrorEvent interface object length assert_own_property: self does not have own property "OverconstrainedErrorEvent" expected property "OverconstrainedErrorEvent" missing
-FAIL OverconstrainedErrorEvent interface object name assert_own_property: self does not have own property "OverconstrainedErrorEvent" expected property "OverconstrainedErrorEvent" missing
-FAIL OverconstrainedErrorEvent interface: existence and properties of interface prototype object assert_own_property: self does not have own property "OverconstrainedErrorEvent" expected property "OverconstrainedErrorEvent" missing
-FAIL OverconstrainedErrorEvent interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "OverconstrainedErrorEvent" expected property "OverconstrainedErrorEvent" missing
-FAIL OverconstrainedErrorEvent interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "OverconstrainedErrorEvent" expected property "OverconstrainedErrorEvent" missing
-FAIL OverconstrainedErrorEvent interface: attribute error assert_own_property: self does not have own property "OverconstrainedErrorEvent" expected property "OverconstrainedErrorEvent" missing
-PASS Unscopable handled correctly for error property on OverconstrainedErrorEvent
-PASS MediaDevices interface: existence and properties of interface object
-PASS MediaDevices interface object length
-PASS MediaDevices interface object name
-PASS MediaDevices interface: existence and properties of interface prototype object
-PASS MediaDevices interface: existence and properties of interface prototype object's "constructor" property
-PASS MediaDevices interface: existence and properties of interface prototype object's @@unscopables property
-PASS MediaDevices interface: attribute ondevicechange
-PASS Unscopable handled correctly for ondevicechange property on MediaDevices
-PASS MediaDevices interface: operation enumerateDevices()
-PASS Unscopable handled correctly for enumerateDevices() on MediaDevices
-PASS MediaDevices interface: operation getSupportedConstraints()
-PASS Unscopable handled correctly for getSupportedConstraints() on MediaDevices
-PASS MediaDevices interface: operation getUserMedia(MediaStreamConstraints)
-PASS Unscopable handled correctly for getUserMedia(MediaStreamConstraints) on MediaDevices
-PASS MediaDeviceInfo interface: existence and properties of interface object
-PASS MediaDeviceInfo interface object length
-PASS MediaDeviceInfo interface object name
-PASS MediaDeviceInfo interface: existence and properties of interface prototype object
-PASS MediaDeviceInfo interface: existence and properties of interface prototype object's "constructor" property
-PASS MediaDeviceInfo interface: existence and properties of interface prototype object's @@unscopables property
-PASS MediaDeviceInfo interface: attribute deviceId
-PASS Unscopable handled correctly for deviceId property on MediaDeviceInfo
-PASS MediaDeviceInfo interface: attribute kind
-PASS Unscopable handled correctly for kind property on MediaDeviceInfo
-PASS MediaDeviceInfo interface: attribute label
-PASS Unscopable handled correctly for label property on MediaDeviceInfo
-PASS MediaDeviceInfo interface: attribute groupId
-PASS Unscopable handled correctly for groupId property on MediaDeviceInfo
-PASS MediaDeviceInfo interface: operation toJSON()
-PASS Unscopable handled correctly for toJSON() on MediaDeviceInfo
-PASS MediaDeviceInfo must be primary interface of _mediaInfo
-PASS Stringification of _mediaInfo
-PASS MediaDeviceInfo interface: _mediaInfo must inherit property "deviceId" with the proper type
-PASS MediaDeviceInfo interface: _mediaInfo must inherit property "kind" with the proper type
-PASS MediaDeviceInfo interface: _mediaInfo must inherit property "label" with the proper type
-PASS MediaDeviceInfo interface: _mediaInfo must inherit property "groupId" with the proper type
-PASS MediaDeviceInfo interface: _mediaInfo must inherit property "toJSON()" with the proper type
-PASS Test default toJSON operation of MediaDeviceInfo
-FAIL InputDeviceInfo interface: existence and properties of interface object assert_own_property: self does not have own property "InputDeviceInfo" expected property "InputDeviceInfo" missing
-FAIL InputDeviceInfo interface object length assert_own_property: self does not have own property "InputDeviceInfo" expected property "InputDeviceInfo" missing
-FAIL InputDeviceInfo interface object name assert_own_property: self does not have own property "InputDeviceInfo" expected property "InputDeviceInfo" missing
-FAIL InputDeviceInfo interface: existence and properties of interface prototype object assert_own_property: self does not have own property "InputDeviceInfo" expected property "InputDeviceInfo" missing
-FAIL InputDeviceInfo interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "InputDeviceInfo" expected property "InputDeviceInfo" missing
-FAIL InputDeviceInfo interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "InputDeviceInfo" expected property "InputDeviceInfo" missing
-FAIL InputDeviceInfo interface: operation getCapabilities() assert_own_property: self does not have own property "InputDeviceInfo" expected property "InputDeviceInfo" missing
-PASS Unscopable handled correctly for getCapabilities() on InputDeviceInfo
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/mediacapture-streams/MediaStreamTrack-idl.https-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/mediacapture-streams/MediaStreamTrack-idl.https-expected.txt
deleted file mode 100644
index 124aa42..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/mediacapture-streams/MediaStreamTrack-idl.https-expected.txt
+++ /dev/null
@@ -1,61 +0,0 @@
-This is a testharness.js-based test.
-PASS Test driver
-PASS MediaStreamTrack interface: existence and properties of interface object
-PASS MediaStreamTrack interface object length
-PASS MediaStreamTrack interface object name
-PASS MediaStreamTrack interface: existence and properties of interface prototype object
-PASS MediaStreamTrack interface: existence and properties of interface prototype object's "constructor" property
-PASS MediaStreamTrack interface: existence and properties of interface prototype object's @@unscopables property
-PASS MediaStreamTrack interface: attribute kind
-PASS Unscopable handled correctly for kind property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute id
-PASS Unscopable handled correctly for id property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute label
-PASS Unscopable handled correctly for label property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute enabled
-PASS Unscopable handled correctly for enabled property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute muted
-PASS Unscopable handled correctly for muted property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute onmute
-PASS Unscopable handled correctly for onmute property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute onunmute
-PASS Unscopable handled correctly for onunmute property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute readyState
-PASS Unscopable handled correctly for readyState property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute onended
-PASS Unscopable handled correctly for onended property on MediaStreamTrack
-FAIL MediaStreamTrack interface: attribute onoverconstrained assert_true: The prototype object must have a property "onoverconstrained" expected true got false
-PASS Unscopable handled correctly for onoverconstrained property on MediaStreamTrack
-PASS MediaStreamTrack interface: operation clone()
-PASS Unscopable handled correctly for clone() on MediaStreamTrack
-PASS MediaStreamTrack interface: operation stop()
-PASS Unscopable handled correctly for stop() on MediaStreamTrack
-PASS MediaStreamTrack interface: operation getCapabilities()
-PASS Unscopable handled correctly for getCapabilities() on MediaStreamTrack
-PASS MediaStreamTrack interface: operation getConstraints()
-PASS Unscopable handled correctly for getConstraints() on MediaStreamTrack
-PASS MediaStreamTrack interface: operation getSettings()
-PASS Unscopable handled correctly for getSettings() on MediaStreamTrack
-PASS MediaStreamTrack interface: operation applyConstraints(MediaTrackConstraints)
-PASS Unscopable handled correctly for applyConstraints(MediaTrackConstraints) on MediaStreamTrack
-PASS MediaStreamTrack must be primary interface of track
-PASS Stringification of track
-PASS MediaStreamTrack interface: track must inherit property "kind" with the proper type
-PASS MediaStreamTrack interface: track must inherit property "id" with the proper type
-PASS MediaStreamTrack interface: track must inherit property "label" with the proper type
-PASS MediaStreamTrack interface: track must inherit property "enabled" with the proper type
-PASS MediaStreamTrack interface: track must inherit property "muted" with the proper type
-PASS MediaStreamTrack interface: track must inherit property "onmute" with the proper type
-PASS MediaStreamTrack interface: track must inherit property "onunmute" with the proper type
-PASS MediaStreamTrack interface: track must inherit property "readyState" with the proper type
-PASS MediaStreamTrack interface: track must inherit property "onended" with the proper type
-FAIL MediaStreamTrack interface: track must inherit property "onoverconstrained" with the proper type assert_inherits: property "onoverconstrained" not found in prototype chain
-PASS MediaStreamTrack interface: track must inherit property "clone()" with the proper type
-PASS MediaStreamTrack interface: track must inherit property "stop()" with the proper type
-PASS MediaStreamTrack interface: track must inherit property "getCapabilities()" with the proper type
-PASS MediaStreamTrack interface: track must inherit property "getConstraints()" with the proper type
-PASS MediaStreamTrack interface: track must inherit property "getSettings()" with the proper type
-PASS MediaStreamTrack interface: track must inherit property "applyConstraints(MediaTrackConstraints)" with the proper type
-PASS MediaStreamTrack interface: calling applyConstraints(MediaTrackConstraints) on track with too few arguments must throw TypeError
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/mediasession/idlharness-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/mediasession/idlharness-expected.txt
deleted file mode 100644
index d5c3de3..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/mediasession/idlharness-expected.txt
+++ /dev/null
@@ -1,39 +0,0 @@
-This is a testharness.js-based test.
-FAIL Window interface: existence and properties of interface object assert_false: expected false got true
-PASS Navigator interface: attribute mediaSession
-PASS Unscopable handled correctly for mediaSession property on Navigator
-PASS Navigator interface: navigator must inherit property "mediaSession" with the proper type
-PASS MediaSession interface: existence and properties of interface object
-PASS MediaSession interface object length
-PASS MediaSession interface object name
-PASS MediaSession interface: existence and properties of interface prototype object
-PASS MediaSession interface: existence and properties of interface prototype object's "constructor" property
-PASS MediaSession interface: existence and properties of interface prototype object's @@unscopables property
-PASS MediaSession interface: attribute metadata
-PASS Unscopable handled correctly for metadata property on MediaSession
-PASS MediaSession interface: attribute playbackState
-PASS Unscopable handled correctly for playbackState property on MediaSession
-PASS MediaSession interface: operation setActionHandler(MediaSessionAction, MediaSessionActionHandler)
-PASS Unscopable handled correctly for setActionHandler(MediaSessionAction, MediaSessionActionHandler) on MediaSession
-PASS MediaMetadata interface: existence and properties of interface object
-PASS MediaMetadata interface object length
-PASS MediaMetadata interface object name
-PASS MediaMetadata interface: existence and properties of interface prototype object
-PASS MediaMetadata interface: existence and properties of interface prototype object's "constructor" property
-PASS MediaMetadata interface: existence and properties of interface prototype object's @@unscopables property
-PASS MediaMetadata interface: attribute title
-PASS Unscopable handled correctly for title property on MediaMetadata
-PASS MediaMetadata interface: attribute artist
-PASS Unscopable handled correctly for artist property on MediaMetadata
-PASS MediaMetadata interface: attribute album
-PASS Unscopable handled correctly for album property on MediaMetadata
-PASS MediaMetadata interface: attribute artwork
-PASS Unscopable handled correctly for artwork property on MediaMetadata
-PASS MediaMetadata must be primary interface of [object MediaMetadata]
-PASS Stringification of [object MediaMetadata]
-PASS MediaMetadata interface: [object MediaMetadata] must inherit property "title" with the proper type
-PASS MediaMetadata interface: [object MediaMetadata] must inherit property "artist" with the proper type
-PASS MediaMetadata interface: [object MediaMetadata] must inherit property "album" with the proper type
-FAIL MediaMetadata interface: [object MediaMetadata] must inherit property "artwork" with the proper type Unrecognized type FrozenArray
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/navigation-timing/nav2_idlharness-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/navigation-timing/nav2_idlharness-expected.txt
deleted file mode 100644
index 2851111..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/navigation-timing/nav2_idlharness-expected.txt
+++ /dev/null
@@ -1,31 +0,0 @@
-This is a testharness.js-based test.
-PASS PerformanceNavigationTiming interface: existence and properties of interface object
-PASS PerformanceNavigationTiming interface object length
-PASS PerformanceNavigationTiming interface object name
-FAIL PerformanceNavigationTiming interface: existence and properties of interface prototype object Cannot read property 'has_stringifier' of undefined
-PASS PerformanceNavigationTiming interface: existence and properties of interface prototype object's "constructor" property
-PASS PerformanceNavigationTiming interface: existence and properties of interface prototype object's @@unscopables property
-PASS PerformanceNavigationTiming interface: attribute unloadEventStart
-PASS Unscopable handled correctly for unloadEventStart property on PerformanceNavigationTiming
-PASS PerformanceNavigationTiming interface: attribute unloadEventEnd
-PASS Unscopable handled correctly for unloadEventEnd property on PerformanceNavigationTiming
-PASS PerformanceNavigationTiming interface: attribute domInteractive
-PASS Unscopable handled correctly for domInteractive property on PerformanceNavigationTiming
-PASS PerformanceNavigationTiming interface: attribute domContentLoadedEventStart
-PASS Unscopable handled correctly for domContentLoadedEventStart property on PerformanceNavigationTiming
-PASS PerformanceNavigationTiming interface: attribute domContentLoadedEventEnd
-PASS Unscopable handled correctly for domContentLoadedEventEnd property on PerformanceNavigationTiming
-PASS PerformanceNavigationTiming interface: attribute domComplete
-PASS Unscopable handled correctly for domComplete property on PerformanceNavigationTiming
-PASS PerformanceNavigationTiming interface: attribute loadEventStart
-PASS Unscopable handled correctly for loadEventStart property on PerformanceNavigationTiming
-PASS PerformanceNavigationTiming interface: attribute loadEventEnd
-PASS Unscopable handled correctly for loadEventEnd property on PerformanceNavigationTiming
-PASS PerformanceNavigationTiming interface: attribute type
-PASS Unscopable handled correctly for type property on PerformanceNavigationTiming
-PASS PerformanceNavigationTiming interface: attribute redirectCount
-PASS Unscopable handled correctly for redirectCount property on PerformanceNavigationTiming
-PASS PerformanceNavigationTiming interface: operation toJSON()
-PASS Unscopable handled correctly for toJSON() on PerformanceNavigationTiming
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/orientation-event/idlharness-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/orientation-event/idlharness-expected.txt
deleted file mode 100644
index 31e9ba4..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/orientation-event/idlharness-expected.txt
+++ /dev/null
@@ -1,47 +0,0 @@
-This is a testharness.js-based test.
-FAIL Window interface: attribute ondeviceorientation assert_true: The prototype object must have a property "ondeviceorientation" expected true got false
-PASS Unscopable handled correctly for ondeviceorientation property on Window
-FAIL Window interface: attribute ondevicemotion assert_true: The prototype object must have a property "ondevicemotion" expected true got false
-PASS Unscopable handled correctly for ondevicemotion property on Window
-PASS DeviceOrientationEvent interface: existence and properties of interface object
-PASS DeviceOrientationEvent interface object length
-PASS DeviceOrientationEvent interface object name
-PASS DeviceOrientationEvent interface: existence and properties of interface prototype object
-PASS DeviceOrientationEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS DeviceOrientationEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS DeviceOrientationEvent interface: attribute alpha
-PASS Unscopable handled correctly for alpha property on DeviceOrientationEvent
-PASS DeviceOrientationEvent interface: attribute beta
-PASS Unscopable handled correctly for beta property on DeviceOrientationEvent
-PASS DeviceOrientationEvent interface: attribute gamma
-PASS Unscopable handled correctly for gamma property on DeviceOrientationEvent
-PASS DeviceOrientationEvent interface: attribute absolute
-PASS Unscopable handled correctly for absolute property on DeviceOrientationEvent
-PASS DeviceOrientationEvent must be primary interface of new DeviceOrientationEvent("foo")
-PASS Stringification of new DeviceOrientationEvent("foo")
-PASS DeviceOrientationEvent interface: new DeviceOrientationEvent("foo") must inherit property "alpha" with the proper type
-PASS DeviceOrientationEvent interface: new DeviceOrientationEvent("foo") must inherit property "beta" with the proper type
-PASS DeviceOrientationEvent interface: new DeviceOrientationEvent("foo") must inherit property "gamma" with the proper type
-PASS DeviceOrientationEvent interface: new DeviceOrientationEvent("foo") must inherit property "absolute" with the proper type
-PASS DeviceMotionEvent interface: existence and properties of interface object
-PASS DeviceMotionEvent interface object length
-PASS DeviceMotionEvent interface object name
-PASS DeviceMotionEvent interface: existence and properties of interface prototype object
-PASS DeviceMotionEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS DeviceMotionEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS DeviceMotionEvent interface: attribute acceleration
-PASS Unscopable handled correctly for acceleration property on DeviceMotionEvent
-PASS DeviceMotionEvent interface: attribute accelerationIncludingGravity
-PASS Unscopable handled correctly for accelerationIncludingGravity property on DeviceMotionEvent
-PASS DeviceMotionEvent interface: attribute rotationRate
-PASS Unscopable handled correctly for rotationRate property on DeviceMotionEvent
-PASS DeviceMotionEvent interface: attribute interval
-PASS Unscopable handled correctly for interval property on DeviceMotionEvent
-PASS DeviceMotionEvent must be primary interface of new DeviceMotionEvent("foo")
-PASS Stringification of new DeviceMotionEvent("foo")
-PASS DeviceMotionEvent interface: new DeviceMotionEvent("foo") must inherit property "acceleration" with the proper type
-PASS DeviceMotionEvent interface: new DeviceMotionEvent("foo") must inherit property "accelerationIncludingGravity" with the proper type
-PASS DeviceMotionEvent interface: new DeviceMotionEvent("foo") must inherit property "rotationRate" with the proper type
-PASS DeviceMotionEvent interface: new DeviceMotionEvent("foo") must inherit property "interval" with the proper type
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/payment-handler/interfaces.https.any-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/payment-handler/interfaces.https.any-expected.txt
deleted file mode 100644
index acb6e796..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/payment-handler/interfaces.https.any-expected.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-This is a testharness.js-based test.
-PASS Payment handler interfaces.
-PASS PaymentManager interface: existence and properties of interface object
-PASS PaymentManager interface object length
-PASS PaymentManager interface object name
-PASS PaymentManager interface: existence and properties of interface prototype object
-PASS PaymentManager interface: existence and properties of interface prototype object's "constructor" property
-PASS PaymentManager interface: existence and properties of interface prototype object's @@unscopables property
-PASS PaymentManager interface: attribute instruments
-PASS Unscopable handled correctly for instruments property on PaymentManager
-FAIL PaymentManager interface: operation requestPermission() assert_own_property: interface object missing static operation expected property "requestPermission" missing
-PASS Unscopable handled correctly for requestPermission() on PaymentManager
-PASS PaymentInstruments interface: existence and properties of interface object
-PASS PaymentInstruments interface object length
-PASS PaymentInstruments interface object name
-PASS PaymentInstruments interface: existence and properties of interface prototype object
-PASS PaymentInstruments interface: existence and properties of interface prototype object's "constructor" property
-PASS PaymentInstruments interface: existence and properties of interface prototype object's @@unscopables property
-PASS PaymentInstruments interface: operation delete(DOMString)
-PASS Unscopable handled correctly for delete(DOMString) on PaymentInstruments
-PASS PaymentInstruments interface: operation get(DOMString)
-PASS Unscopable handled correctly for get(DOMString) on PaymentInstruments
-PASS PaymentInstruments interface: operation keys()
-PASS Unscopable handled correctly for keys() on PaymentInstruments
-PASS PaymentInstruments interface: operation has(DOMString)
-PASS Unscopable handled correctly for has(DOMString) on PaymentInstruments
-PASS PaymentInstruments interface: operation set(DOMString, PaymentInstrument)
-PASS Unscopable handled correctly for set(DOMString, PaymentInstrument) on PaymentInstruments
-PASS PaymentInstruments interface: operation clear()
-PASS Unscopable handled correctly for clear() on PaymentInstruments
-PASS PaymentRequestEvent interface: existence and properties of interface object
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/payment-handler/interfaces.https.any.worker-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/payment-handler/interfaces.https.any.worker-expected.txt
deleted file mode 100644
index 234aac8..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/payment-handler/interfaces.https.any.worker-expected.txt
+++ /dev/null
@@ -1,32 +0,0 @@
-This is a testharness.js-based test.
-PASS Payment handler interfaces.
-FAIL PaymentManager interface: existence and properties of interface object assert_own_property: self does not have own property "PaymentManager" expected property "PaymentManager" missing
-FAIL PaymentManager interface object length assert_own_property: self does not have own property "PaymentManager" expected property "PaymentManager" missing
-FAIL PaymentManager interface object name assert_own_property: self does not have own property "PaymentManager" expected property "PaymentManager" missing
-FAIL PaymentManager interface: existence and properties of interface prototype object assert_own_property: self does not have own property "PaymentManager" expected property "PaymentManager" missing
-FAIL PaymentManager interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "PaymentManager" expected property "PaymentManager" missing
-FAIL PaymentManager interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "PaymentManager" expected property "PaymentManager" missing
-FAIL PaymentManager interface: attribute instruments assert_own_property: self does not have own property "PaymentManager" expected property "PaymentManager" missing
-PASS Unscopable handled correctly for instruments property on PaymentManager
-FAIL PaymentManager interface: member requestPermission Cannot use 'in' operator to search for 'requestPermission' in undefined
-PASS PaymentInstruments interface: existence and properties of interface object
-PASS PaymentInstruments interface object length
-PASS PaymentInstruments interface object name
-PASS PaymentInstruments interface: existence and properties of interface prototype object
-PASS PaymentInstruments interface: existence and properties of interface prototype object's "constructor" property
-PASS PaymentInstruments interface: existence and properties of interface prototype object's @@unscopables property
-PASS PaymentInstruments interface: operation delete(DOMString)
-PASS Unscopable handled correctly for delete(DOMString) on PaymentInstruments
-PASS PaymentInstruments interface: operation get(DOMString)
-PASS Unscopable handled correctly for get(DOMString) on PaymentInstruments
-PASS PaymentInstruments interface: operation keys()
-PASS Unscopable handled correctly for keys() on PaymentInstruments
-PASS PaymentInstruments interface: operation has(DOMString)
-PASS Unscopable handled correctly for has(DOMString) on PaymentInstruments
-PASS PaymentInstruments interface: operation set(DOMString, PaymentInstrument)
-PASS Unscopable handled correctly for set(DOMString, PaymentInstrument) on PaymentInstruments
-PASS PaymentInstruments interface: operation clear()
-PASS Unscopable handled correctly for clear() on PaymentInstruments
-PASS PaymentRequestEvent interface: existence and properties of interface object
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/pointerlock/idlharness-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/pointerlock/idlharness-expected.txt
deleted file mode 100644
index 78ee28d..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/pointerlock/idlharness-expected.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-This is a testharness.js-based test.
-PASS Element interface: operation requestPointerLock()
-PASS Unscopable handled correctly for requestPointerLock() on Element
-PASS Element interface: window.document.documentElement must inherit property "requestPointerLock()" with the proper type
-PASS Document interface: attribute onpointerlockchange
-PASS Unscopable handled correctly for onpointerlockchange property on Document
-PASS Document interface: attribute onpointerlockerror
-PASS Unscopable handled correctly for onpointerlockerror property on Document
-PASS Document interface: attribute pointerLockElement
-PASS Unscopable handled correctly for pointerLockElement property on Document
-PASS Document interface: operation exitPointerLock()
-PASS Unscopable handled correctly for exitPointerLock() on Document
-FAIL Document interface: window.document must inherit property "onpointerlockchange" with the proper type Unrecognized type EventHandler
-FAIL Document interface: window.document must inherit property "onpointerlockerror" with the proper type Unrecognized type EventHandler
-PASS Document interface: window.document must inherit property "pointerLockElement" with the proper type
-PASS Document interface: window.document must inherit property "exitPointerLock()" with the proper type
-PASS MouseEvent interface: attribute movementX
-PASS Unscopable handled correctly for movementX property on MouseEvent
-PASS MouseEvent interface: attribute movementY
-PASS Unscopable handled correctly for movementY property on MouseEvent
-PASS MouseEvent interface: new MouseEvent('mousemove') must inherit property "movementX" with the proper type
-PASS MouseEvent interface: new MouseEvent('mousemove') must inherit property "movementY" with the proper type
-PASS MouseEvent interface: new MouseEvent('pointerlockchange') must inherit property "movementX" with the proper type
-PASS MouseEvent interface: new MouseEvent('pointerlockchange') must inherit property "movementY" with the proper type
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/screen-orientation/lock-bad-argument-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/screen-orientation/lock-bad-argument-expected.txt
deleted file mode 100644
index 9be9c26..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/screen-orientation/lock-bad-argument-expected.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-This is a testharness.js-based test.
-PASS screen.orientation.lock() must throw given invalid input.
-PASS screen.orientation.lock() must throw when the input is missing.
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/service-workers/service-worker/interfaces-sw.https-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/service-workers/service-worker/interfaces-sw.https-expected.txt
deleted file mode 100644
index 379e5662..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/service-workers/service-worker/interfaces-sw.https-expected.txt
+++ /dev/null
@@ -1,250 +0,0 @@
-This is a testharness.js-based test.
-PASS Interfaces and attributes in ServiceWorkerGlobalScope
-PASS test setup (cache creation)
-FAIL Event constructors assert_equals: FetchEvent.isReload should not exist expected (undefined) undefined but got (boolean) false
-PASS xhr is not exposed
-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 Unscopable handled correctly for clients property on ServiceWorkerGlobalScope
-PASS ServiceWorkerGlobalScope interface: attribute registration
-PASS Unscopable handled correctly for registration property on ServiceWorkerGlobalScope
-PASS ServiceWorkerGlobalScope interface: operation skipWaiting()
-PASS Unscopable handled correctly for skipWaiting() on ServiceWorkerGlobalScope
-PASS ServiceWorkerGlobalScope interface: attribute oninstall
-PASS Unscopable handled correctly for oninstall property on ServiceWorkerGlobalScope
-PASS ServiceWorkerGlobalScope interface: attribute onactivate
-PASS Unscopable handled correctly for onactivate property on ServiceWorkerGlobalScope
-PASS ServiceWorkerGlobalScope interface: attribute onfetch
-PASS Unscopable handled correctly for onfetch property on ServiceWorkerGlobalScope
-PASS ServiceWorkerGlobalScope interface: attribute onmessage
-PASS Unscopable handled correctly for onmessage property on ServiceWorkerGlobalScope
-FAIL ServiceWorkerGlobalScope interface: attribute onmessageerror assert_own_property: The global object must have a property "onmessageerror" expected property "onmessageerror" missing
-PASS Unscopable handled correctly for onmessageerror property on ServiceWorkerGlobalScope
-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 "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
-FAIL ServiceWorkerGlobalScope interface: self must inherit property "onmessageerror" with the proper type assert_own_property: expected property "onmessageerror" missing
-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 Unscopable handled correctly for url property on Client
-PASS Client interface: attribute id
-PASS Unscopable handled correctly for id property on Client
-PASS Client interface: attribute type
-PASS Unscopable handled correctly for type property on Client
-FAIL Client interface: attribute reserved assert_true: The prototype object must have a property "reserved" expected true got false
-PASS Unscopable handled correctly for reserved property on Client
-PASS Client interface: operation postMessage(any, [object Object])
-PASS Unscopable handled correctly for postMessage(any, [object Object]) on Client
-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 Unscopable handled correctly for visibilityState property on WindowClient
-PASS WindowClient interface: attribute focused
-PASS Unscopable handled correctly for focused property on WindowClient
-FAIL WindowClient interface: attribute ancestorOrigins assert_true: The prototype object must have a property "ancestorOrigins" expected true got false
-PASS Unscopable handled correctly for ancestorOrigins property on WindowClient
-PASS WindowClient interface: operation focus()
-PASS Unscopable handled correctly for focus() on WindowClient
-PASS WindowClient interface: operation navigate(USVString)
-PASS Unscopable handled correctly for navigate(USVString) on WindowClient
-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 Unscopable handled correctly for get(DOMString) on Clients
-PASS Clients interface: operation matchAll(ClientQueryOptions)
-PASS Unscopable handled correctly for matchAll(ClientQueryOptions) on Clients
-PASS Clients interface: operation openWindow(USVString)
-PASS Unscopable handled correctly for openWindow(USVString) on Clients
-PASS Clients interface: operation claim()
-PASS Unscopable handled correctly for claim() on Clients
-PASS Clients must be primary interface of self.clients
-PASS Stringification of self.clients
-PASS Clients interface: self.clients must inherit property "get(DOMString)" with the proper type
-PASS Clients interface: calling get(DOMString) on self.clients with too few arguments must throw TypeError
-PASS Clients interface: self.clients must inherit property "matchAll(ClientQueryOptions)" with the proper type
-PASS Clients interface: calling matchAll(ClientQueryOptions) on self.clients with too few arguments must throw TypeError
-PASS Clients interface: self.clients must inherit property "openWindow(USVString)" with the proper type
-PASS Clients interface: calling openWindow(USVString) on self.clients with too few arguments must throw TypeError
-PASS Clients interface: self.clients must inherit property "claim()" with the proper type
-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
-PASS Unscopable handled correctly for scriptURL property on ServiceWorker
-FAIL ServiceWorker interface: attribute state assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-PASS Unscopable handled correctly for state property on ServiceWorker
-FAIL ServiceWorker interface: operation postMessage(any, [object Object]) assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-PASS Unscopable handled correctly for postMessage(any, [object Object]) on ServiceWorker
-FAIL ServiceWorker interface: attribute onstatechange assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-PASS Unscopable handled correctly for onstatechange property on ServiceWorker
-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 Unscopable handled correctly for installing property on ServiceWorkerRegistration
-PASS ServiceWorkerRegistration interface: attribute waiting
-PASS Unscopable handled correctly for waiting property on ServiceWorkerRegistration
-PASS ServiceWorkerRegistration interface: attribute active
-PASS Unscopable handled correctly for active property on ServiceWorkerRegistration
-PASS ServiceWorkerRegistration interface: attribute navigationPreload
-PASS Unscopable handled correctly for navigationPreload property on ServiceWorkerRegistration
-PASS ServiceWorkerRegistration interface: attribute scope
-PASS Unscopable handled correctly for scope property on ServiceWorkerRegistration
-PASS ServiceWorkerRegistration interface: attribute updateViaCache
-PASS Unscopable handled correctly for updateViaCache property on ServiceWorkerRegistration
-PASS ServiceWorkerRegistration interface: operation update()
-PASS Unscopable handled correctly for update() on ServiceWorkerRegistration
-PASS ServiceWorkerRegistration interface: operation unregister()
-PASS Unscopable handled correctly for unregister() on ServiceWorkerRegistration
-PASS ServiceWorkerRegistration interface: attribute onupdatefound
-PASS Unscopable handled correctly for onupdatefound property on ServiceWorkerRegistration
-PASS ServiceWorkerRegistration must be primary interface of self.registration
-PASS Stringification of self.registration
-PASS ServiceWorkerRegistration interface: self.registration must inherit property "installing" with the proper type
-PASS ServiceWorkerRegistration interface: self.registration must inherit property "waiting" with the proper type
-PASS ServiceWorkerRegistration interface: self.registration must inherit property "active" with the proper type
-PASS ServiceWorkerRegistration interface: self.registration must inherit property "navigationPreload" with the proper type
-PASS ServiceWorkerRegistration interface: self.registration must inherit property "scope" with the proper type
-PASS ServiceWorkerRegistration interface: self.registration must inherit property "updateViaCache" with the proper type
-PASS ServiceWorkerRegistration interface: self.registration must inherit property "update()" with the proper type
-PASS ServiceWorkerRegistration interface: self.registration must inherit property "unregister()" with the proper type
-PASS ServiceWorkerRegistration interface: self.registration must inherit property "onupdatefound" with the proper type
-PASS EventTarget interface: self.registration must inherit property "addEventListener(DOMString, EventListener, [object Object],[object Object])" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener, [object Object],[object Object]) on self.registration with too few arguments must throw TypeError
-PASS EventTarget interface: self.registration must inherit property "removeEventListener(DOMString, EventListener, [object Object],[object Object])" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener, [object Object],[object Object]) on self.registration with too few arguments must throw TypeError
-PASS EventTarget interface: self.registration must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on self.registration 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, [object Object],[object Object])
-PASS Unscopable handled correctly for addEventListener(DOMString, EventListener, [object Object],[object Object]) on EventTarget
-PASS EventTarget interface: operation removeEventListener(DOMString, EventListener, [object Object],[object Object])
-PASS Unscopable handled correctly for removeEventListener(DOMString, EventListener, [object Object],[object Object]) on EventTarget
-PASS EventTarget interface: operation dispatchEvent(Event)
-PASS Unscopable handled correctly for dispatchEvent(Event) on EventTarget
-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 Unscopable handled correctly for enable() on NavigationPreloadManager
-PASS NavigationPreloadManager interface: operation disable()
-PASS Unscopable handled correctly for disable() on NavigationPreloadManager
-PASS NavigationPreloadManager interface: operation setHeaderValue(ByteString)
-PASS Unscopable handled correctly for setHeaderValue(ByteString) on NavigationPreloadManager
-PASS NavigationPreloadManager interface: operation getState()
-PASS Unscopable handled correctly for getState() on NavigationPreloadManager
-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, CacheQueryOptions)
-PASS Unscopable handled correctly for match(RequestInfo, CacheQueryOptions) on Cache
-PASS Cache interface: operation matchAll(RequestInfo, CacheQueryOptions)
-PASS Unscopable handled correctly for matchAll(RequestInfo, CacheQueryOptions) on Cache
-PASS Cache interface: operation add(RequestInfo)
-PASS Unscopable handled correctly for add(RequestInfo) on Cache
-PASS Cache interface: operation addAll([object Object])
-PASS Unscopable handled correctly for addAll([object Object]) on Cache
-PASS Cache interface: operation put(RequestInfo, Response)
-PASS Unscopable handled correctly for put(RequestInfo, Response) on Cache
-PASS Cache interface: operation delete(RequestInfo, CacheQueryOptions)
-PASS Unscopable handled correctly for delete(RequestInfo, CacheQueryOptions) on Cache
-PASS Cache interface: operation keys(RequestInfo, CacheQueryOptions)
-PASS Unscopable handled correctly for keys(RequestInfo, CacheQueryOptions) on Cache
-PASS Cache must be primary interface of self.cacheInstance
-PASS Stringification of self.cacheInstance
-PASS Cache interface: self.cacheInstance must inherit property "match(RequestInfo, CacheQueryOptions)" with the proper type
-PASS Cache interface: calling match(RequestInfo, CacheQueryOptions) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "matchAll(RequestInfo, CacheQueryOptions)" with the proper type
-PASS Cache interface: calling matchAll(RequestInfo, 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([object Object])" with the proper type
-PASS Cache interface: calling addAll([object Object]) 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, CacheQueryOptions)" with the proper type
-PASS Cache interface: calling delete(RequestInfo, CacheQueryOptions) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "keys(RequestInfo, CacheQueryOptions)" with the proper type
-PASS Cache interface: calling keys(RequestInfo, 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, CacheQueryOptions)
-PASS Unscopable handled correctly for match(RequestInfo, CacheQueryOptions) on CacheStorage
-PASS CacheStorage interface: operation has(DOMString)
-PASS Unscopable handled correctly for has(DOMString) on CacheStorage
-PASS CacheStorage interface: operation open(DOMString)
-PASS Unscopable handled correctly for open(DOMString) on CacheStorage
-PASS CacheStorage interface: operation delete(DOMString)
-PASS Unscopable handled correctly for delete(DOMString) on CacheStorage
-PASS CacheStorage interface: operation keys()
-PASS Unscopable handled correctly for keys() on CacheStorage
-PASS CacheStorage must be primary interface of self.caches
-PASS Stringification of self.caches
-PASS CacheStorage interface: self.caches must inherit property "match(RequestInfo, CacheQueryOptions)" with the proper type
-PASS CacheStorage interface: calling match(RequestInfo, CacheQueryOptions) on self.caches with too few arguments must throw TypeError
-PASS CacheStorage interface: self.caches must inherit property "has(DOMString)" with the proper type
-PASS CacheStorage interface: calling has(DOMString) on self.caches with too few arguments must throw TypeError
-PASS CacheStorage interface: self.caches must inherit property "open(DOMString)" with the proper type
-PASS CacheStorage interface: calling open(DOMString) on self.caches with too few arguments must throw TypeError
-PASS CacheStorage interface: self.caches must inherit property "delete(DOMString)" with the proper type
-PASS CacheStorage interface: calling delete(DOMString) on self.caches with too few arguments must throw TypeError
-PASS CacheStorage interface: self.caches must inherit property "keys()" with the proper type
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/streams/piping/close-propagation-forward-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/streams/piping/close-propagation-forward-expected.txt
deleted file mode 100644
index 97077ba..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/streams/piping/close-propagation-forward-expected.txt
+++ /dev/null
@@ -1,32 +0,0 @@
-This is a testharness.js-based test.
-PASS Closing must be propagated forward: starts closed; preventClose omitted; fulfilled close promise
-PASS Closing must be propagated forward: starts closed; preventClose omitted; rejected close promise
-PASS Closing must be propagated forward: starts closed; preventClose = undefined (falsy); fulfilled close promise
-PASS Closing must be propagated forward: starts closed; preventClose = null (falsy); fulfilled close promise
-PASS Closing must be propagated forward: starts closed; preventClose = false (falsy); fulfilled close promise
-PASS Closing must be propagated forward: starts closed; preventClose = 0 (falsy); fulfilled close promise
-PASS Closing must be propagated forward: starts closed; preventClose = -0 (falsy); fulfilled close promise
-PASS Closing must be propagated forward: starts closed; preventClose = NaN (falsy); fulfilled close promise
-PASS Closing must be propagated forward: starts closed; preventClose =  (falsy); fulfilled close promise
-PASS Closing must be propagated forward: starts closed; preventClose = true (truthy)
-PASS Closing must be propagated forward: starts closed; preventClose = a (truthy)
-PASS Closing must be propagated forward: starts closed; preventClose = 1 (truthy)
-PASS Closing must be propagated forward: starts closed; preventClose = Symbol() (truthy)
-PASS Closing must be propagated forward: starts closed; preventClose = [object Object] (truthy)
-PASS Closing must be propagated forward: starts closed; preventClose = true, preventAbort = true
-PASS Closing must be propagated forward: starts closed; preventClose = true, preventAbort = true, preventCancel = true
-PASS Closing must be propagated forward: becomes closed asynchronously; preventClose omitted; fulfilled close promise
-PASS Closing must be propagated forward: becomes closed asynchronously; preventClose omitted; rejected close promise
-PASS Closing must be propagated forward: becomes closed asynchronously; preventClose = true
-PASS Closing must be propagated forward: becomes closed asynchronously; dest never desires chunks; preventClose omitted; fulfilled close promise
-PASS Closing must be propagated forward: becomes closed asynchronously; dest never desires chunks; preventClose omitted; rejected close promise
-PASS Closing must be propagated forward: becomes closed asynchronously; dest never desires chunks; preventClose = true
-PASS Closing must be propagated forward: becomes closed after one chunk; preventClose omitted; fulfilled close promise
-PASS Closing must be propagated forward: becomes closed after one chunk; preventClose omitted; rejected close promise
-PASS Closing must be propagated forward: becomes closed after one chunk; preventClose = true
-PASS Closing must be propagated forward: shutdown must not occur until the final write completes
-FAIL Closing must be propagated forward: shutdown must not occur until the final write completes; preventClose = true assert_equals: the pipe must not be complete expected false but got true
-PASS Closing must be propagated forward: shutdown must not occur until the final write completes; becomes closed after first write
-FAIL Closing must be propagated forward: shutdown must not occur until the final write completes; becomes closed after first write; preventClose = true assert_false: the pipe should not complete while the second write is pending expected false got true
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/streams/piping/close-propagation-forward.dedicatedworker-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/streams/piping/close-propagation-forward.dedicatedworker-expected.txt
deleted file mode 100644
index 97077ba..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/streams/piping/close-propagation-forward.dedicatedworker-expected.txt
+++ /dev/null
@@ -1,32 +0,0 @@
-This is a testharness.js-based test.
-PASS Closing must be propagated forward: starts closed; preventClose omitted; fulfilled close promise
-PASS Closing must be propagated forward: starts closed; preventClose omitted; rejected close promise
-PASS Closing must be propagated forward: starts closed; preventClose = undefined (falsy); fulfilled close promise
-PASS Closing must be propagated forward: starts closed; preventClose = null (falsy); fulfilled close promise
-PASS Closing must be propagated forward: starts closed; preventClose = false (falsy); fulfilled close promise
-PASS Closing must be propagated forward: starts closed; preventClose = 0 (falsy); fulfilled close promise
-PASS Closing must be propagated forward: starts closed; preventClose = -0 (falsy); fulfilled close promise
-PASS Closing must be propagated forward: starts closed; preventClose = NaN (falsy); fulfilled close promise
-PASS Closing must be propagated forward: starts closed; preventClose =  (falsy); fulfilled close promise
-PASS Closing must be propagated forward: starts closed; preventClose = true (truthy)
-PASS Closing must be propagated forward: starts closed; preventClose = a (truthy)
-PASS Closing must be propagated forward: starts closed; preventClose = 1 (truthy)
-PASS Closing must be propagated forward: starts closed; preventClose = Symbol() (truthy)
-PASS Closing must be propagated forward: starts closed; preventClose = [object Object] (truthy)
-PASS Closing must be propagated forward: starts closed; preventClose = true, preventAbort = true
-PASS Closing must be propagated forward: starts closed; preventClose = true, preventAbort = true, preventCancel = true
-PASS Closing must be propagated forward: becomes closed asynchronously; preventClose omitted; fulfilled close promise
-PASS Closing must be propagated forward: becomes closed asynchronously; preventClose omitted; rejected close promise
-PASS Closing must be propagated forward: becomes closed asynchronously; preventClose = true
-PASS Closing must be propagated forward: becomes closed asynchronously; dest never desires chunks; preventClose omitted; fulfilled close promise
-PASS Closing must be propagated forward: becomes closed asynchronously; dest never desires chunks; preventClose omitted; rejected close promise
-PASS Closing must be propagated forward: becomes closed asynchronously; dest never desires chunks; preventClose = true
-PASS Closing must be propagated forward: becomes closed after one chunk; preventClose omitted; fulfilled close promise
-PASS Closing must be propagated forward: becomes closed after one chunk; preventClose omitted; rejected close promise
-PASS Closing must be propagated forward: becomes closed after one chunk; preventClose = true
-PASS Closing must be propagated forward: shutdown must not occur until the final write completes
-FAIL Closing must be propagated forward: shutdown must not occur until the final write completes; preventClose = true assert_equals: the pipe must not be complete expected false but got true
-PASS Closing must be propagated forward: shutdown must not occur until the final write completes; becomes closed after first write
-FAIL Closing must be propagated forward: shutdown must not occur until the final write completes; becomes closed after first write; preventClose = true assert_false: the pipe should not complete while the second write is pending expected false got true
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/streams/piping/close-propagation-forward.serviceworker.https-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/streams/piping/close-propagation-forward.serviceworker.https-expected.txt
deleted file mode 100644
index 824b9f2b2..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/streams/piping/close-propagation-forward.serviceworker.https-expected.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-This is a testharness.js-based test.
-PASS Service worker test setup
-PASS Closing must be propagated forward: starts closed; preventClose omitted; fulfilled close promise
-PASS Closing must be propagated forward: starts closed; preventClose omitted; rejected close promise
-PASS Closing must be propagated forward: starts closed; preventClose = undefined (falsy); fulfilled close promise
-PASS Closing must be propagated forward: starts closed; preventClose = null (falsy); fulfilled close promise
-PASS Closing must be propagated forward: starts closed; preventClose = false (falsy); fulfilled close promise
-PASS Closing must be propagated forward: starts closed; preventClose = 0 (falsy); fulfilled close promise
-PASS Closing must be propagated forward: starts closed; preventClose = -0 (falsy); fulfilled close promise
-PASS Closing must be propagated forward: starts closed; preventClose = NaN (falsy); fulfilled close promise
-PASS Closing must be propagated forward: starts closed; preventClose =  (falsy); fulfilled close promise
-PASS Closing must be propagated forward: starts closed; preventClose = true (truthy)
-PASS Closing must be propagated forward: starts closed; preventClose = a (truthy)
-PASS Closing must be propagated forward: starts closed; preventClose = 1 (truthy)
-PASS Closing must be propagated forward: starts closed; preventClose = Symbol() (truthy)
-PASS Closing must be propagated forward: starts closed; preventClose = [object Object] (truthy)
-PASS Closing must be propagated forward: starts closed; preventClose = true, preventAbort = true
-PASS Closing must be propagated forward: starts closed; preventClose = true, preventAbort = true, preventCancel = true
-PASS Closing must be propagated forward: becomes closed asynchronously; preventClose omitted; fulfilled close promise
-PASS Closing must be propagated forward: becomes closed asynchronously; preventClose omitted; rejected close promise
-PASS Closing must be propagated forward: becomes closed asynchronously; preventClose = true
-PASS Closing must be propagated forward: becomes closed asynchronously; dest never desires chunks; preventClose omitted; fulfilled close promise
-PASS Closing must be propagated forward: becomes closed asynchronously; dest never desires chunks; preventClose omitted; rejected close promise
-PASS Closing must be propagated forward: becomes closed asynchronously; dest never desires chunks; preventClose = true
-PASS Closing must be propagated forward: becomes closed after one chunk; preventClose omitted; fulfilled close promise
-PASS Closing must be propagated forward: becomes closed after one chunk; preventClose omitted; rejected close promise
-PASS Closing must be propagated forward: becomes closed after one chunk; preventClose = true
-PASS Closing must be propagated forward: shutdown must not occur until the final write completes
-FAIL Closing must be propagated forward: shutdown must not occur until the final write completes; preventClose = true assert_equals: the pipe must not be complete expected false but got true
-PASS Closing must be propagated forward: shutdown must not occur until the final write completes; becomes closed after first write
-FAIL Closing must be propagated forward: shutdown must not occur until the final write completes; becomes closed after first write; preventClose = true assert_false: the pipe should not complete while the second write is pending expected false got true
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/streams/piping/close-propagation-forward.sharedworker-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/streams/piping/close-propagation-forward.sharedworker-expected.txt
deleted file mode 100644
index 97077ba..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/streams/piping/close-propagation-forward.sharedworker-expected.txt
+++ /dev/null
@@ -1,32 +0,0 @@
-This is a testharness.js-based test.
-PASS Closing must be propagated forward: starts closed; preventClose omitted; fulfilled close promise
-PASS Closing must be propagated forward: starts closed; preventClose omitted; rejected close promise
-PASS Closing must be propagated forward: starts closed; preventClose = undefined (falsy); fulfilled close promise
-PASS Closing must be propagated forward: starts closed; preventClose = null (falsy); fulfilled close promise
-PASS Closing must be propagated forward: starts closed; preventClose = false (falsy); fulfilled close promise
-PASS Closing must be propagated forward: starts closed; preventClose = 0 (falsy); fulfilled close promise
-PASS Closing must be propagated forward: starts closed; preventClose = -0 (falsy); fulfilled close promise
-PASS Closing must be propagated forward: starts closed; preventClose = NaN (falsy); fulfilled close promise
-PASS Closing must be propagated forward: starts closed; preventClose =  (falsy); fulfilled close promise
-PASS Closing must be propagated forward: starts closed; preventClose = true (truthy)
-PASS Closing must be propagated forward: starts closed; preventClose = a (truthy)
-PASS Closing must be propagated forward: starts closed; preventClose = 1 (truthy)
-PASS Closing must be propagated forward: starts closed; preventClose = Symbol() (truthy)
-PASS Closing must be propagated forward: starts closed; preventClose = [object Object] (truthy)
-PASS Closing must be propagated forward: starts closed; preventClose = true, preventAbort = true
-PASS Closing must be propagated forward: starts closed; preventClose = true, preventAbort = true, preventCancel = true
-PASS Closing must be propagated forward: becomes closed asynchronously; preventClose omitted; fulfilled close promise
-PASS Closing must be propagated forward: becomes closed asynchronously; preventClose omitted; rejected close promise
-PASS Closing must be propagated forward: becomes closed asynchronously; preventClose = true
-PASS Closing must be propagated forward: becomes closed asynchronously; dest never desires chunks; preventClose omitted; fulfilled close promise
-PASS Closing must be propagated forward: becomes closed asynchronously; dest never desires chunks; preventClose omitted; rejected close promise
-PASS Closing must be propagated forward: becomes closed asynchronously; dest never desires chunks; preventClose = true
-PASS Closing must be propagated forward: becomes closed after one chunk; preventClose omitted; fulfilled close promise
-PASS Closing must be propagated forward: becomes closed after one chunk; preventClose omitted; rejected close promise
-PASS Closing must be propagated forward: becomes closed after one chunk; preventClose = true
-PASS Closing must be propagated forward: shutdown must not occur until the final write completes
-FAIL Closing must be propagated forward: shutdown must not occur until the final write completes; preventClose = true assert_equals: the pipe must not be complete expected false but got true
-PASS Closing must be propagated forward: shutdown must not occur until the final write completes; becomes closed after first write
-FAIL Closing must be propagated forward: shutdown must not occur until the final write completes; becomes closed after first write; preventClose = true assert_false: the pipe should not complete while the second write is pending expected false got true
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/streams/piping/error-propagation-forward-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/streams/piping/error-propagation-forward-expected.txt
deleted file mode 100644
index 8da030b..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/streams/piping/error-propagation-forward-expected.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-This is a testharness.js-based test.
-PASS Errors must be propagated forward: starts errored; preventAbort = false; fulfilled abort promise
-PASS Errors must be propagated forward: starts errored; preventAbort = false; rejected abort promise
-PASS Errors must be propagated forward: starts errored; preventAbort = undefined (falsy); fulfilled abort promise
-PASS Errors must be propagated forward: starts errored; preventAbort = null (falsy); fulfilled abort promise
-PASS Errors must be propagated forward: starts errored; preventAbort = false (falsy); fulfilled abort promise
-PASS Errors must be propagated forward: starts errored; preventAbort = 0 (falsy); fulfilled abort promise
-PASS Errors must be propagated forward: starts errored; preventAbort = -0 (falsy); fulfilled abort promise
-PASS Errors must be propagated forward: starts errored; preventAbort = NaN (falsy); fulfilled abort promise
-PASS Errors must be propagated forward: starts errored; preventAbort =  (falsy); fulfilled abort promise
-PASS Errors must be propagated forward: starts errored; preventAbort = true (truthy)
-PASS Errors must be propagated forward: starts errored; preventAbort = a (truthy)
-PASS Errors must be propagated forward: starts errored; preventAbort = 1 (truthy)
-PASS Errors must be propagated forward: starts errored; preventAbort = Symbol() (truthy)
-PASS Errors must be propagated forward: starts errored; preventAbort = [object Object] (truthy)
-PASS Errors must be propagated forward: starts errored; preventAbort = true, preventCancel = true
-PASS Errors must be propagated forward: starts errored; preventAbort = true, preventCancel = true, preventClose = true
-PASS Errors must be propagated forward: becomes errored while empty; preventAbort = false; fulfilled abort promise
-PASS Errors must be propagated forward: becomes errored while empty; preventAbort = false; rejected abort promise
-PASS Errors must be propagated forward: becomes errored while empty; preventAbort = true
-PASS Errors must be propagated forward: becomes errored while empty; dest never desires chunks; preventAbort = false; fulfilled abort promise
-PASS Errors must be propagated forward: becomes errored while empty; dest never desires chunks; preventAbort = false; rejected abort promise
-PASS Errors must be propagated forward: becomes errored while empty; dest never desires chunks; preventAbort = true
-PASS Errors must be propagated forward: becomes errored after one chunk; preventAbort = false; fulfilled abort promise
-PASS Errors must be propagated forward: becomes errored after one chunk; preventAbort = false; rejected abort promise
-PASS Errors must be propagated forward: becomes errored after one chunk; preventAbort = true
-PASS Errors must be propagated forward: becomes errored after one chunk; dest never desires chunks; preventAbort = false; fulfilled abort promise
-PASS Errors must be propagated forward: becomes errored after one chunk; dest never desires chunks; preventAbort = false; rejected abort promise
-PASS Errors must be propagated forward: becomes errored after one chunk; dest never desires chunks; preventAbort = true
-PASS Errors must be propagated forward: shutdown must not occur until the final write completes
-FAIL Errors must be propagated forward: abort should not happen until all queued writes complete assert_array_equals: abort should not be called before the second write completes property 2, expected "write" but got "abort"
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/streams/piping/error-propagation-forward.dedicatedworker-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/streams/piping/error-propagation-forward.dedicatedworker-expected.txt
deleted file mode 100644
index 8da030b..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/streams/piping/error-propagation-forward.dedicatedworker-expected.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-This is a testharness.js-based test.
-PASS Errors must be propagated forward: starts errored; preventAbort = false; fulfilled abort promise
-PASS Errors must be propagated forward: starts errored; preventAbort = false; rejected abort promise
-PASS Errors must be propagated forward: starts errored; preventAbort = undefined (falsy); fulfilled abort promise
-PASS Errors must be propagated forward: starts errored; preventAbort = null (falsy); fulfilled abort promise
-PASS Errors must be propagated forward: starts errored; preventAbort = false (falsy); fulfilled abort promise
-PASS Errors must be propagated forward: starts errored; preventAbort = 0 (falsy); fulfilled abort promise
-PASS Errors must be propagated forward: starts errored; preventAbort = -0 (falsy); fulfilled abort promise
-PASS Errors must be propagated forward: starts errored; preventAbort = NaN (falsy); fulfilled abort promise
-PASS Errors must be propagated forward: starts errored; preventAbort =  (falsy); fulfilled abort promise
-PASS Errors must be propagated forward: starts errored; preventAbort = true (truthy)
-PASS Errors must be propagated forward: starts errored; preventAbort = a (truthy)
-PASS Errors must be propagated forward: starts errored; preventAbort = 1 (truthy)
-PASS Errors must be propagated forward: starts errored; preventAbort = Symbol() (truthy)
-PASS Errors must be propagated forward: starts errored; preventAbort = [object Object] (truthy)
-PASS Errors must be propagated forward: starts errored; preventAbort = true, preventCancel = true
-PASS Errors must be propagated forward: starts errored; preventAbort = true, preventCancel = true, preventClose = true
-PASS Errors must be propagated forward: becomes errored while empty; preventAbort = false; fulfilled abort promise
-PASS Errors must be propagated forward: becomes errored while empty; preventAbort = false; rejected abort promise
-PASS Errors must be propagated forward: becomes errored while empty; preventAbort = true
-PASS Errors must be propagated forward: becomes errored while empty; dest never desires chunks; preventAbort = false; fulfilled abort promise
-PASS Errors must be propagated forward: becomes errored while empty; dest never desires chunks; preventAbort = false; rejected abort promise
-PASS Errors must be propagated forward: becomes errored while empty; dest never desires chunks; preventAbort = true
-PASS Errors must be propagated forward: becomes errored after one chunk; preventAbort = false; fulfilled abort promise
-PASS Errors must be propagated forward: becomes errored after one chunk; preventAbort = false; rejected abort promise
-PASS Errors must be propagated forward: becomes errored after one chunk; preventAbort = true
-PASS Errors must be propagated forward: becomes errored after one chunk; dest never desires chunks; preventAbort = false; fulfilled abort promise
-PASS Errors must be propagated forward: becomes errored after one chunk; dest never desires chunks; preventAbort = false; rejected abort promise
-PASS Errors must be propagated forward: becomes errored after one chunk; dest never desires chunks; preventAbort = true
-PASS Errors must be propagated forward: shutdown must not occur until the final write completes
-FAIL Errors must be propagated forward: abort should not happen until all queued writes complete assert_array_equals: abort should not be called before the second write completes property 2, expected "write" but got "abort"
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/streams/piping/error-propagation-forward.serviceworker.https-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/streams/piping/error-propagation-forward.serviceworker.https-expected.txt
deleted file mode 100644
index 89691969..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/streams/piping/error-propagation-forward.serviceworker.https-expected.txt
+++ /dev/null
@@ -1,34 +0,0 @@
-This is a testharness.js-based test.
-PASS Service worker test setup
-PASS Errors must be propagated forward: starts errored; preventAbort = false; fulfilled abort promise
-PASS Errors must be propagated forward: starts errored; preventAbort = false; rejected abort promise
-PASS Errors must be propagated forward: starts errored; preventAbort = undefined (falsy); fulfilled abort promise
-PASS Errors must be propagated forward: starts errored; preventAbort = null (falsy); fulfilled abort promise
-PASS Errors must be propagated forward: starts errored; preventAbort = false (falsy); fulfilled abort promise
-PASS Errors must be propagated forward: starts errored; preventAbort = 0 (falsy); fulfilled abort promise
-PASS Errors must be propagated forward: starts errored; preventAbort = -0 (falsy); fulfilled abort promise
-PASS Errors must be propagated forward: starts errored; preventAbort = NaN (falsy); fulfilled abort promise
-PASS Errors must be propagated forward: starts errored; preventAbort =  (falsy); fulfilled abort promise
-PASS Errors must be propagated forward: starts errored; preventAbort = true (truthy)
-PASS Errors must be propagated forward: starts errored; preventAbort = a (truthy)
-PASS Errors must be propagated forward: starts errored; preventAbort = 1 (truthy)
-PASS Errors must be propagated forward: starts errored; preventAbort = Symbol() (truthy)
-PASS Errors must be propagated forward: starts errored; preventAbort = [object Object] (truthy)
-PASS Errors must be propagated forward: starts errored; preventAbort = true, preventCancel = true
-PASS Errors must be propagated forward: starts errored; preventAbort = true, preventCancel = true, preventClose = true
-PASS Errors must be propagated forward: becomes errored while empty; preventAbort = false; fulfilled abort promise
-PASS Errors must be propagated forward: becomes errored while empty; preventAbort = false; rejected abort promise
-PASS Errors must be propagated forward: becomes errored while empty; preventAbort = true
-PASS Errors must be propagated forward: becomes errored while empty; dest never desires chunks; preventAbort = false; fulfilled abort promise
-PASS Errors must be propagated forward: becomes errored while empty; dest never desires chunks; preventAbort = false; rejected abort promise
-PASS Errors must be propagated forward: becomes errored while empty; dest never desires chunks; preventAbort = true
-PASS Errors must be propagated forward: becomes errored after one chunk; preventAbort = false; fulfilled abort promise
-PASS Errors must be propagated forward: becomes errored after one chunk; preventAbort = false; rejected abort promise
-PASS Errors must be propagated forward: becomes errored after one chunk; preventAbort = true
-PASS Errors must be propagated forward: becomes errored after one chunk; dest never desires chunks; preventAbort = false; fulfilled abort promise
-PASS Errors must be propagated forward: becomes errored after one chunk; dest never desires chunks; preventAbort = false; rejected abort promise
-PASS Errors must be propagated forward: becomes errored after one chunk; dest never desires chunks; preventAbort = true
-PASS Errors must be propagated forward: shutdown must not occur until the final write completes
-FAIL Errors must be propagated forward: abort should not happen until all queued writes complete assert_array_equals: abort should not be called before the second write completes property 2, expected "write" but got "abort"
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/streams/piping/error-propagation-forward.sharedworker-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/streams/piping/error-propagation-forward.sharedworker-expected.txt
deleted file mode 100644
index 8da030b..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/streams/piping/error-propagation-forward.sharedworker-expected.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-This is a testharness.js-based test.
-PASS Errors must be propagated forward: starts errored; preventAbort = false; fulfilled abort promise
-PASS Errors must be propagated forward: starts errored; preventAbort = false; rejected abort promise
-PASS Errors must be propagated forward: starts errored; preventAbort = undefined (falsy); fulfilled abort promise
-PASS Errors must be propagated forward: starts errored; preventAbort = null (falsy); fulfilled abort promise
-PASS Errors must be propagated forward: starts errored; preventAbort = false (falsy); fulfilled abort promise
-PASS Errors must be propagated forward: starts errored; preventAbort = 0 (falsy); fulfilled abort promise
-PASS Errors must be propagated forward: starts errored; preventAbort = -0 (falsy); fulfilled abort promise
-PASS Errors must be propagated forward: starts errored; preventAbort = NaN (falsy); fulfilled abort promise
-PASS Errors must be propagated forward: starts errored; preventAbort =  (falsy); fulfilled abort promise
-PASS Errors must be propagated forward: starts errored; preventAbort = true (truthy)
-PASS Errors must be propagated forward: starts errored; preventAbort = a (truthy)
-PASS Errors must be propagated forward: starts errored; preventAbort = 1 (truthy)
-PASS Errors must be propagated forward: starts errored; preventAbort = Symbol() (truthy)
-PASS Errors must be propagated forward: starts errored; preventAbort = [object Object] (truthy)
-PASS Errors must be propagated forward: starts errored; preventAbort = true, preventCancel = true
-PASS Errors must be propagated forward: starts errored; preventAbort = true, preventCancel = true, preventClose = true
-PASS Errors must be propagated forward: becomes errored while empty; preventAbort = false; fulfilled abort promise
-PASS Errors must be propagated forward: becomes errored while empty; preventAbort = false; rejected abort promise
-PASS Errors must be propagated forward: becomes errored while empty; preventAbort = true
-PASS Errors must be propagated forward: becomes errored while empty; dest never desires chunks; preventAbort = false; fulfilled abort promise
-PASS Errors must be propagated forward: becomes errored while empty; dest never desires chunks; preventAbort = false; rejected abort promise
-PASS Errors must be propagated forward: becomes errored while empty; dest never desires chunks; preventAbort = true
-PASS Errors must be propagated forward: becomes errored after one chunk; preventAbort = false; fulfilled abort promise
-PASS Errors must be propagated forward: becomes errored after one chunk; preventAbort = false; rejected abort promise
-PASS Errors must be propagated forward: becomes errored after one chunk; preventAbort = true
-PASS Errors must be propagated forward: becomes errored after one chunk; dest never desires chunks; preventAbort = false; fulfilled abort promise
-PASS Errors must be propagated forward: becomes errored after one chunk; dest never desires chunks; preventAbort = false; rejected abort promise
-PASS Errors must be propagated forward: becomes errored after one chunk; dest never desires chunks; preventAbort = true
-PASS Errors must be propagated forward: shutdown must not occur until the final write completes
-FAIL Errors must be propagated forward: abort should not happen until all queued writes complete assert_array_equals: abort should not be called before the second write completes property 2, expected "write" but got "abort"
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/svg/interfaces-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/svg/interfaces-expected.txt
deleted file mode 100644
index 645b555..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/svg/interfaces-expected.txt
+++ /dev/null
@@ -1,3021 +0,0 @@
-This is a testharness.js-based test.
-Found 3017 tests; 2935 PASS, 82 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS Document interface: attribute rootElement
-PASS Unscopable handled correctly for rootElement property on Document
-PASS SVGElement interface: existence and properties of interface object
-PASS SVGElement interface object length
-PASS SVGElement interface object name
-PASS SVGElement interface: existence and properties of interface prototype object
-PASS SVGElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGElement interface: attribute className
-PASS Unscopable handled correctly for className property on SVGElement
-PASS SVGElement interface: attribute dataset
-PASS Unscopable handled correctly for dataset property on SVGElement
-PASS SVGElement interface: attribute ownerSVGElement
-PASS Unscopable handled correctly for ownerSVGElement property on SVGElement
-PASS SVGElement interface: attribute viewportElement
-PASS Unscopable handled correctly for viewportElement property on SVGElement
-PASS SVGElement interface: attribute tabIndex
-PASS Unscopable handled correctly for tabIndex property on SVGElement
-PASS SVGElement interface: operation focus()
-PASS Unscopable handled correctly for focus() on SVGElement
-PASS SVGElement interface: operation blur()
-PASS Unscopable handled correctly for blur() on SVGElement
-PASS SVGGraphicsElement interface: existence and properties of interface object
-PASS SVGGraphicsElement interface object length
-PASS SVGGraphicsElement interface object name
-PASS SVGGraphicsElement interface: existence and properties of interface prototype object
-PASS SVGGraphicsElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGGraphicsElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGGraphicsElement interface: attribute transform
-PASS Unscopable handled correctly for transform property on SVGGraphicsElement
-PASS SVGGraphicsElement interface: operation getBBox(SVGBoundingBoxOptions)
-PASS Unscopable handled correctly for getBBox(SVGBoundingBoxOptions) on SVGGraphicsElement
-PASS SVGGraphicsElement interface: operation getCTM()
-PASS Unscopable handled correctly for getCTM() on SVGGraphicsElement
-PASS SVGGraphicsElement interface: operation getScreenCTM()
-PASS Unscopable handled correctly for getScreenCTM() on SVGGraphicsElement
-PASS SVGGraphicsElement interface: attribute requiredExtensions
-PASS Unscopable handled correctly for requiredExtensions property on SVGGraphicsElement
-PASS SVGGraphicsElement interface: attribute systemLanguage
-PASS Unscopable handled correctly for systemLanguage property on SVGGraphicsElement
-PASS SVGGeometryElement interface: existence and properties of interface object
-PASS SVGGeometryElement interface object length
-PASS SVGGeometryElement interface object name
-PASS SVGGeometryElement interface: existence and properties of interface prototype object
-PASS SVGGeometryElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGGeometryElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGGeometryElement interface: attribute pathLength
-PASS Unscopable handled correctly for pathLength property on SVGGeometryElement
-PASS SVGGeometryElement interface: operation isPointInFill(DOMPoint)
-PASS Unscopable handled correctly for isPointInFill(DOMPoint) on SVGGeometryElement
-PASS SVGGeometryElement interface: operation isPointInStroke(DOMPoint)
-PASS Unscopable handled correctly for isPointInStroke(DOMPoint) on SVGGeometryElement
-PASS SVGGeometryElement interface: operation getTotalLength()
-PASS Unscopable handled correctly for getTotalLength() on SVGGeometryElement
-PASS SVGGeometryElement interface: operation getPointAtLength(float)
-PASS Unscopable handled correctly for getPointAtLength(float) on SVGGeometryElement
-PASS SVGNumber interface: existence and properties of interface object
-PASS SVGNumber interface object length
-PASS SVGNumber interface object name
-PASS SVGNumber interface: existence and properties of interface prototype object
-PASS SVGNumber interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGNumber interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGNumber interface: attribute value
-PASS Unscopable handled correctly for value property on SVGNumber
-PASS SVGNumber must be primary interface of svg.createSVGNumber()
-PASS Stringification of svg.createSVGNumber()
-PASS SVGNumber interface: svg.createSVGNumber() must inherit property "value" with the proper type
-PASS SVGLength interface: existence and properties of interface object
-PASS SVGLength interface object length
-PASS SVGLength interface object name
-PASS SVGLength interface: existence and properties of interface prototype object
-PASS SVGLength interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGLength interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGLength interface: constant SVG_LENGTHTYPE_UNKNOWN on interface object
-PASS SVGLength interface: constant SVG_LENGTHTYPE_UNKNOWN on interface prototype object
-PASS SVGLength interface: constant SVG_LENGTHTYPE_NUMBER on interface object
-PASS SVGLength interface: constant SVG_LENGTHTYPE_NUMBER on interface prototype object
-PASS SVGLength interface: constant SVG_LENGTHTYPE_PERCENTAGE on interface object
-PASS SVGLength interface: constant SVG_LENGTHTYPE_PERCENTAGE on interface prototype object
-PASS SVGLength interface: constant SVG_LENGTHTYPE_EMS on interface object
-PASS SVGLength interface: constant SVG_LENGTHTYPE_EMS on interface prototype object
-PASS SVGLength interface: constant SVG_LENGTHTYPE_EXS on interface object
-PASS SVGLength interface: constant SVG_LENGTHTYPE_EXS on interface prototype object
-PASS SVGLength interface: constant SVG_LENGTHTYPE_PX on interface object
-PASS SVGLength interface: constant SVG_LENGTHTYPE_PX on interface prototype object
-PASS SVGLength interface: constant SVG_LENGTHTYPE_CM on interface object
-PASS SVGLength interface: constant SVG_LENGTHTYPE_CM on interface prototype object
-PASS SVGLength interface: constant SVG_LENGTHTYPE_MM on interface object
-PASS SVGLength interface: constant SVG_LENGTHTYPE_MM on interface prototype object
-PASS SVGLength interface: constant SVG_LENGTHTYPE_IN on interface object
-PASS SVGLength interface: constant SVG_LENGTHTYPE_IN on interface prototype object
-PASS SVGLength interface: constant SVG_LENGTHTYPE_PT on interface object
-PASS SVGLength interface: constant SVG_LENGTHTYPE_PT on interface prototype object
-PASS SVGLength interface: constant SVG_LENGTHTYPE_PC on interface object
-PASS SVGLength interface: constant SVG_LENGTHTYPE_PC on interface prototype object
-PASS SVGLength interface: attribute unitType
-PASS Unscopable handled correctly for unitType property on SVGLength
-PASS SVGLength interface: attribute value
-PASS Unscopable handled correctly for value property on SVGLength
-PASS SVGLength interface: attribute valueInSpecifiedUnits
-PASS Unscopable handled correctly for valueInSpecifiedUnits property on SVGLength
-PASS SVGLength interface: attribute valueAsString
-PASS Unscopable handled correctly for valueAsString property on SVGLength
-PASS SVGLength interface: operation newValueSpecifiedUnits(unsigned short, float)
-PASS Unscopable handled correctly for newValueSpecifiedUnits(unsigned short, float) on SVGLength
-PASS SVGLength interface: operation convertToSpecifiedUnits(unsigned short)
-PASS Unscopable handled correctly for convertToSpecifiedUnits(unsigned short) on SVGLength
-PASS SVGLength must be primary interface of svg.createSVGLength()
-PASS Stringification of svg.createSVGLength()
-PASS SVGLength interface: svg.createSVGLength() must inherit property "SVG_LENGTHTYPE_UNKNOWN" with the proper type
-PASS SVGLength interface: svg.createSVGLength() must inherit property "SVG_LENGTHTYPE_NUMBER" with the proper type
-PASS SVGLength interface: svg.createSVGLength() must inherit property "SVG_LENGTHTYPE_PERCENTAGE" with the proper type
-PASS SVGLength interface: svg.createSVGLength() must inherit property "SVG_LENGTHTYPE_EMS" with the proper type
-PASS SVGLength interface: svg.createSVGLength() must inherit property "SVG_LENGTHTYPE_EXS" with the proper type
-PASS SVGLength interface: svg.createSVGLength() must inherit property "SVG_LENGTHTYPE_PX" with the proper type
-PASS SVGLength interface: svg.createSVGLength() must inherit property "SVG_LENGTHTYPE_CM" with the proper type
-PASS SVGLength interface: svg.createSVGLength() must inherit property "SVG_LENGTHTYPE_MM" with the proper type
-PASS SVGLength interface: svg.createSVGLength() must inherit property "SVG_LENGTHTYPE_IN" with the proper type
-PASS SVGLength interface: svg.createSVGLength() must inherit property "SVG_LENGTHTYPE_PT" with the proper type
-PASS SVGLength interface: svg.createSVGLength() must inherit property "SVG_LENGTHTYPE_PC" with the proper type
-PASS SVGLength interface: svg.createSVGLength() must inherit property "unitType" with the proper type
-PASS SVGLength interface: svg.createSVGLength() must inherit property "value" with the proper type
-PASS SVGLength interface: svg.createSVGLength() must inherit property "valueInSpecifiedUnits" with the proper type
-PASS SVGLength interface: svg.createSVGLength() must inherit property "valueAsString" with the proper type
-PASS SVGLength interface: svg.createSVGLength() must inherit property "newValueSpecifiedUnits(unsigned short, float)" with the proper type
-PASS SVGLength interface: calling newValueSpecifiedUnits(unsigned short, float) on svg.createSVGLength() with too few arguments must throw TypeError
-PASS SVGLength interface: svg.createSVGLength() must inherit property "convertToSpecifiedUnits(unsigned short)" with the proper type
-PASS SVGLength interface: calling convertToSpecifiedUnits(unsigned short) on svg.createSVGLength() with too few arguments must throw TypeError
-PASS SVGAngle interface: existence and properties of interface object
-PASS SVGAngle interface object length
-PASS SVGAngle interface object name
-PASS SVGAngle interface: existence and properties of interface prototype object
-PASS SVGAngle interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGAngle interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGAngle interface: constant SVG_ANGLETYPE_UNKNOWN on interface object
-PASS SVGAngle interface: constant SVG_ANGLETYPE_UNKNOWN on interface prototype object
-PASS SVGAngle interface: constant SVG_ANGLETYPE_UNSPECIFIED on interface object
-PASS SVGAngle interface: constant SVG_ANGLETYPE_UNSPECIFIED on interface prototype object
-PASS SVGAngle interface: constant SVG_ANGLETYPE_DEG on interface object
-PASS SVGAngle interface: constant SVG_ANGLETYPE_DEG on interface prototype object
-PASS SVGAngle interface: constant SVG_ANGLETYPE_RAD on interface object
-PASS SVGAngle interface: constant SVG_ANGLETYPE_RAD on interface prototype object
-PASS SVGAngle interface: constant SVG_ANGLETYPE_GRAD on interface object
-PASS SVGAngle interface: constant SVG_ANGLETYPE_GRAD on interface prototype object
-PASS SVGAngle interface: attribute unitType
-PASS Unscopable handled correctly for unitType property on SVGAngle
-PASS SVGAngle interface: attribute value
-PASS Unscopable handled correctly for value property on SVGAngle
-PASS SVGAngle interface: attribute valueInSpecifiedUnits
-PASS Unscopable handled correctly for valueInSpecifiedUnits property on SVGAngle
-PASS SVGAngle interface: attribute valueAsString
-PASS Unscopable handled correctly for valueAsString property on SVGAngle
-PASS SVGAngle interface: operation newValueSpecifiedUnits(unsigned short, float)
-PASS Unscopable handled correctly for newValueSpecifiedUnits(unsigned short, float) on SVGAngle
-PASS SVGAngle interface: operation convertToSpecifiedUnits(unsigned short)
-PASS Unscopable handled correctly for convertToSpecifiedUnits(unsigned short) on SVGAngle
-PASS SVGAngle must be primary interface of svg.createSVGAngle()
-PASS Stringification of svg.createSVGAngle()
-PASS SVGAngle interface: svg.createSVGAngle() must inherit property "SVG_ANGLETYPE_UNKNOWN" with the proper type
-PASS SVGAngle interface: svg.createSVGAngle() must inherit property "SVG_ANGLETYPE_UNSPECIFIED" with the proper type
-PASS SVGAngle interface: svg.createSVGAngle() must inherit property "SVG_ANGLETYPE_DEG" with the proper type
-PASS SVGAngle interface: svg.createSVGAngle() must inherit property "SVG_ANGLETYPE_RAD" with the proper type
-PASS SVGAngle interface: svg.createSVGAngle() must inherit property "SVG_ANGLETYPE_GRAD" with the proper type
-PASS SVGAngle interface: svg.createSVGAngle() must inherit property "unitType" with the proper type
-PASS SVGAngle interface: svg.createSVGAngle() must inherit property "value" with the proper type
-PASS SVGAngle interface: svg.createSVGAngle() must inherit property "valueInSpecifiedUnits" with the proper type
-PASS SVGAngle interface: svg.createSVGAngle() must inherit property "valueAsString" with the proper type
-PASS SVGAngle interface: svg.createSVGAngle() must inherit property "newValueSpecifiedUnits(unsigned short, float)" with the proper type
-PASS SVGAngle interface: calling newValueSpecifiedUnits(unsigned short, float) on svg.createSVGAngle() with too few arguments must throw TypeError
-PASS SVGAngle interface: svg.createSVGAngle() must inherit property "convertToSpecifiedUnits(unsigned short)" with the proper type
-PASS SVGAngle interface: calling convertToSpecifiedUnits(unsigned short) on svg.createSVGAngle() with too few arguments must throw TypeError
-PASS SVGNumberList interface: existence and properties of interface object
-PASS SVGNumberList interface object length
-PASS SVGNumberList interface object name
-PASS SVGNumberList interface: existence and properties of interface prototype object
-PASS SVGNumberList interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGNumberList interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGNumberList interface: attribute length
-PASS Unscopable handled correctly for length property on SVGNumberList
-PASS SVGNumberList interface: attribute numberOfItems
-PASS Unscopable handled correctly for numberOfItems property on SVGNumberList
-PASS SVGNumberList interface: operation clear()
-PASS Unscopable handled correctly for clear() on SVGNumberList
-PASS SVGNumberList interface: operation initialize(SVGNumber)
-PASS Unscopable handled correctly for initialize(SVGNumber) on SVGNumberList
-PASS SVGNumberList interface: operation getItem(unsigned long)
-PASS Unscopable handled correctly for getItem(unsigned long) on SVGNumberList
-PASS SVGNumberList interface: operation insertItemBefore(SVGNumber, unsigned long)
-PASS Unscopable handled correctly for insertItemBefore(SVGNumber, unsigned long) on SVGNumberList
-PASS SVGNumberList interface: operation replaceItem(SVGNumber, unsigned long)
-PASS Unscopable handled correctly for replaceItem(SVGNumber, unsigned long) on SVGNumberList
-PASS SVGNumberList interface: operation removeItem(unsigned long)
-PASS Unscopable handled correctly for removeItem(unsigned long) on SVGNumberList
-PASS SVGNumberList interface: operation appendItem(SVGNumber)
-PASS Unscopable handled correctly for appendItem(SVGNumber) on SVGNumberList
-PASS SVGNumberList must be primary interface of text.rotate.baseVal
-PASS Stringification of text.rotate.baseVal
-PASS SVGNumberList interface: text.rotate.baseVal must inherit property "length" with the proper type
-PASS SVGNumberList interface: text.rotate.baseVal must inherit property "numberOfItems" with the proper type
-PASS SVGNumberList interface: text.rotate.baseVal must inherit property "clear()" with the proper type
-PASS SVGNumberList interface: text.rotate.baseVal must inherit property "initialize(SVGNumber)" with the proper type
-PASS SVGNumberList interface: calling initialize(SVGNumber) on text.rotate.baseVal with too few arguments must throw TypeError
-PASS SVGNumberList interface: text.rotate.baseVal must inherit property "getItem(unsigned long)" with the proper type
-PASS SVGNumberList interface: calling getItem(unsigned long) on text.rotate.baseVal with too few arguments must throw TypeError
-PASS SVGNumberList interface: text.rotate.baseVal must inherit property "insertItemBefore(SVGNumber, unsigned long)" with the proper type
-PASS SVGNumberList interface: calling insertItemBefore(SVGNumber, unsigned long) on text.rotate.baseVal with too few arguments must throw TypeError
-PASS SVGNumberList interface: text.rotate.baseVal must inherit property "replaceItem(SVGNumber, unsigned long)" with the proper type
-PASS SVGNumberList interface: calling replaceItem(SVGNumber, unsigned long) on text.rotate.baseVal with too few arguments must throw TypeError
-PASS SVGNumberList interface: text.rotate.baseVal must inherit property "removeItem(unsigned long)" with the proper type
-PASS SVGNumberList interface: calling removeItem(unsigned long) on text.rotate.baseVal with too few arguments must throw TypeError
-PASS SVGNumberList interface: text.rotate.baseVal must inherit property "appendItem(SVGNumber)" with the proper type
-PASS SVGNumberList interface: calling appendItem(SVGNumber) on text.rotate.baseVal with too few arguments must throw TypeError
-PASS SVGLengthList interface: existence and properties of interface object
-PASS SVGLengthList interface object length
-PASS SVGLengthList interface object name
-PASS SVGLengthList interface: existence and properties of interface prototype object
-PASS SVGLengthList interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGLengthList interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGLengthList interface: attribute length
-PASS Unscopable handled correctly for length property on SVGLengthList
-PASS SVGLengthList interface: attribute numberOfItems
-PASS Unscopable handled correctly for numberOfItems property on SVGLengthList
-PASS SVGLengthList interface: operation clear()
-PASS Unscopable handled correctly for clear() on SVGLengthList
-PASS SVGLengthList interface: operation initialize(SVGLength)
-PASS Unscopable handled correctly for initialize(SVGLength) on SVGLengthList
-PASS SVGLengthList interface: operation getItem(unsigned long)
-PASS Unscopable handled correctly for getItem(unsigned long) on SVGLengthList
-PASS SVGLengthList interface: operation insertItemBefore(SVGLength, unsigned long)
-PASS Unscopable handled correctly for insertItemBefore(SVGLength, unsigned long) on SVGLengthList
-PASS SVGLengthList interface: operation replaceItem(SVGLength, unsigned long)
-PASS Unscopable handled correctly for replaceItem(SVGLength, unsigned long) on SVGLengthList
-PASS SVGLengthList interface: operation removeItem(unsigned long)
-PASS Unscopable handled correctly for removeItem(unsigned long) on SVGLengthList
-PASS SVGLengthList interface: operation appendItem(SVGLength)
-PASS Unscopable handled correctly for appendItem(SVGLength) on SVGLengthList
-PASS SVGAnimatedBoolean interface: existence and properties of interface object
-PASS SVGAnimatedBoolean interface object length
-PASS SVGAnimatedBoolean interface object name
-PASS SVGAnimatedBoolean interface: existence and properties of interface prototype object
-PASS SVGAnimatedBoolean interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGAnimatedBoolean interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGAnimatedBoolean interface: attribute baseVal
-PASS Unscopable handled correctly for baseVal property on SVGAnimatedBoolean
-PASS SVGAnimatedBoolean interface: attribute animVal
-PASS Unscopable handled correctly for animVal property on SVGAnimatedBoolean
-PASS SVGAnimatedBoolean must be primary interface of feConvolveMatrix.preserveAlpha
-PASS Stringification of feConvolveMatrix.preserveAlpha
-PASS SVGAnimatedBoolean interface: feConvolveMatrix.preserveAlpha must inherit property "baseVal" with the proper type
-PASS SVGAnimatedBoolean interface: feConvolveMatrix.preserveAlpha must inherit property "animVal" with the proper type
-PASS SVGAnimatedEnumeration interface: existence and properties of interface object
-PASS SVGAnimatedEnumeration interface object length
-PASS SVGAnimatedEnumeration interface object name
-PASS SVGAnimatedEnumeration interface: existence and properties of interface prototype object
-PASS SVGAnimatedEnumeration interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGAnimatedEnumeration interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGAnimatedEnumeration interface: attribute baseVal
-PASS Unscopable handled correctly for baseVal property on SVGAnimatedEnumeration
-PASS SVGAnimatedEnumeration interface: attribute animVal
-PASS Unscopable handled correctly for animVal property on SVGAnimatedEnumeration
-PASS SVGAnimatedEnumeration must be primary interface of text.lengthAdjust
-PASS Stringification of text.lengthAdjust
-PASS SVGAnimatedEnumeration interface: text.lengthAdjust must inherit property "baseVal" with the proper type
-PASS SVGAnimatedEnumeration interface: text.lengthAdjust must inherit property "animVal" with the proper type
-PASS SVGAnimatedInteger interface: existence and properties of interface object
-PASS SVGAnimatedInteger interface object length
-PASS SVGAnimatedInteger interface object name
-PASS SVGAnimatedInteger interface: existence and properties of interface prototype object
-PASS SVGAnimatedInteger interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGAnimatedInteger interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGAnimatedInteger interface: attribute baseVal
-PASS Unscopable handled correctly for baseVal property on SVGAnimatedInteger
-PASS SVGAnimatedInteger interface: attribute animVal
-PASS Unscopable handled correctly for animVal property on SVGAnimatedInteger
-PASS SVGAnimatedInteger must be primary interface of feConvolveMatrix.orderX
-PASS Stringification of feConvolveMatrix.orderX
-PASS SVGAnimatedInteger interface: feConvolveMatrix.orderX must inherit property "baseVal" with the proper type
-PASS SVGAnimatedInteger interface: feConvolveMatrix.orderX must inherit property "animVal" with the proper type
-PASS SVGAnimatedNumber interface: existence and properties of interface object
-PASS SVGAnimatedNumber interface object length
-PASS SVGAnimatedNumber interface object name
-PASS SVGAnimatedNumber interface: existence and properties of interface prototype object
-PASS SVGAnimatedNumber interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGAnimatedNumber interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGAnimatedNumber interface: attribute baseVal
-PASS Unscopable handled correctly for baseVal property on SVGAnimatedNumber
-PASS SVGAnimatedNumber interface: attribute animVal
-PASS Unscopable handled correctly for animVal property on SVGAnimatedNumber
-PASS SVGAnimatedNumber must be primary interface of stop.offset
-PASS Stringification of stop.offset
-PASS SVGAnimatedNumber interface: stop.offset must inherit property "baseVal" with the proper type
-PASS SVGAnimatedNumber interface: stop.offset must inherit property "animVal" with the proper type
-PASS SVGAnimatedLength interface: existence and properties of interface object
-PASS SVGAnimatedLength interface object length
-PASS SVGAnimatedLength interface object name
-PASS SVGAnimatedLength interface: existence and properties of interface prototype object
-PASS SVGAnimatedLength interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGAnimatedLength interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGAnimatedLength interface: attribute baseVal
-PASS Unscopable handled correctly for baseVal property on SVGAnimatedLength
-PASS SVGAnimatedLength interface: attribute animVal
-PASS Unscopable handled correctly for animVal property on SVGAnimatedLength
-PASS SVGAnimatedLength must be primary interface of svg.x
-PASS Stringification of svg.x
-PASS SVGAnimatedLength interface: svg.x must inherit property "baseVal" with the proper type
-PASS SVGAnimatedLength interface: svg.x must inherit property "animVal" with the proper type
-PASS SVGAnimatedAngle interface: existence and properties of interface object
-PASS SVGAnimatedAngle interface object length
-PASS SVGAnimatedAngle interface object name
-PASS SVGAnimatedAngle interface: existence and properties of interface prototype object
-PASS SVGAnimatedAngle interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGAnimatedAngle interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGAnimatedAngle interface: attribute baseVal
-PASS Unscopable handled correctly for baseVal property on SVGAnimatedAngle
-PASS SVGAnimatedAngle interface: attribute animVal
-PASS Unscopable handled correctly for animVal property on SVGAnimatedAngle
-PASS SVGAnimatedAngle must be primary interface of marker.orientAngle
-PASS Stringification of marker.orientAngle
-PASS SVGAnimatedAngle interface: marker.orientAngle must inherit property "baseVal" with the proper type
-PASS SVGAnimatedAngle interface: marker.orientAngle must inherit property "animVal" with the proper type
-PASS SVGAnimatedString interface: existence and properties of interface object
-PASS SVGAnimatedString interface object length
-PASS SVGAnimatedString interface object name
-PASS SVGAnimatedString interface: existence and properties of interface prototype object
-PASS SVGAnimatedString interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGAnimatedString interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGAnimatedString interface: attribute baseVal
-PASS Unscopable handled correctly for baseVal property on SVGAnimatedString
-PASS SVGAnimatedString interface: attribute animVal
-PASS Unscopable handled correctly for animVal property on SVGAnimatedString
-PASS SVGAnimatedString must be primary interface of a.target
-PASS Stringification of a.target
-PASS SVGAnimatedString interface: a.target must inherit property "baseVal" with the proper type
-PASS SVGAnimatedString interface: a.target must inherit property "animVal" with the proper type
-PASS SVGAnimatedRect interface: existence and properties of interface object
-PASS SVGAnimatedRect interface object length
-PASS SVGAnimatedRect interface object name
-PASS SVGAnimatedRect interface: existence and properties of interface prototype object
-PASS SVGAnimatedRect interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGAnimatedRect interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGAnimatedRect interface: attribute baseVal
-PASS Unscopable handled correctly for baseVal property on SVGAnimatedRect
-PASS SVGAnimatedRect interface: attribute animVal
-PASS Unscopable handled correctly for animVal property on SVGAnimatedRect
-PASS SVGAnimatedRect must be primary interface of svg.viewBox
-PASS Stringification of svg.viewBox
-FAIL SVGAnimatedRect interface: svg.viewBox must inherit property "baseVal" with the proper type assert_true: instanceof DOMRect expected true got false
-FAIL SVGAnimatedRect interface: svg.viewBox must inherit property "animVal" with the proper type assert_true: instanceof DOMRectReadOnly expected true got false
-PASS SVGAnimatedNumberList interface: existence and properties of interface object
-PASS SVGAnimatedNumberList interface object length
-PASS SVGAnimatedNumberList interface object name
-PASS SVGAnimatedNumberList interface: existence and properties of interface prototype object
-PASS SVGAnimatedNumberList interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGAnimatedNumberList interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGAnimatedNumberList interface: attribute baseVal
-PASS Unscopable handled correctly for baseVal property on SVGAnimatedNumberList
-PASS SVGAnimatedNumberList interface: attribute animVal
-PASS Unscopable handled correctly for animVal property on SVGAnimatedNumberList
-PASS SVGAnimatedNumberList must be primary interface of text.rotate
-PASS Stringification of text.rotate
-PASS SVGAnimatedNumberList interface: text.rotate must inherit property "baseVal" with the proper type
-PASS SVGAnimatedNumberList interface: text.rotate must inherit property "animVal" with the proper type
-PASS SVGAnimatedLengthList interface: existence and properties of interface object
-PASS SVGAnimatedLengthList interface object length
-PASS SVGAnimatedLengthList interface object name
-PASS SVGAnimatedLengthList interface: existence and properties of interface prototype object
-PASS SVGAnimatedLengthList interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGAnimatedLengthList interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGAnimatedLengthList interface: attribute baseVal
-PASS Unscopable handled correctly for baseVal property on SVGAnimatedLengthList
-PASS SVGAnimatedLengthList interface: attribute animVal
-PASS Unscopable handled correctly for animVal property on SVGAnimatedLengthList
-PASS SVGAnimatedLengthList must be primary interface of text.x
-PASS Stringification of text.x
-PASS SVGAnimatedLengthList interface: text.x must inherit property "baseVal" with the proper type
-PASS SVGAnimatedLengthList interface: text.x must inherit property "animVal" with the proper type
-PASS SVGStringList interface: existence and properties of interface object
-PASS SVGStringList interface object length
-PASS SVGStringList interface object name
-PASS SVGStringList interface: existence and properties of interface prototype object
-PASS SVGStringList interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGStringList interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGStringList interface: attribute length
-PASS Unscopable handled correctly for length property on SVGStringList
-PASS SVGStringList interface: attribute numberOfItems
-PASS Unscopable handled correctly for numberOfItems property on SVGStringList
-PASS SVGStringList interface: operation clear()
-PASS Unscopable handled correctly for clear() on SVGStringList
-PASS SVGStringList interface: operation initialize(DOMString)
-PASS Unscopable handled correctly for initialize(DOMString) on SVGStringList
-PASS SVGStringList interface: operation getItem(unsigned long)
-PASS Unscopable handled correctly for getItem(unsigned long) on SVGStringList
-PASS SVGStringList interface: operation insertItemBefore(DOMString, unsigned long)
-PASS Unscopable handled correctly for insertItemBefore(DOMString, unsigned long) on SVGStringList
-PASS SVGStringList interface: operation replaceItem(DOMString, unsigned long)
-PASS Unscopable handled correctly for replaceItem(DOMString, unsigned long) on SVGStringList
-PASS SVGStringList interface: operation removeItem(unsigned long)
-PASS Unscopable handled correctly for removeItem(unsigned long) on SVGStringList
-PASS SVGStringList interface: operation appendItem(DOMString)
-PASS Unscopable handled correctly for appendItem(DOMString) on SVGStringList
-PASS SVGStringList must be primary interface of a.requiredExtensions
-PASS Stringification of a.requiredExtensions
-PASS SVGStringList interface: a.requiredExtensions must inherit property "length" with the proper type
-PASS SVGStringList interface: a.requiredExtensions must inherit property "numberOfItems" with the proper type
-PASS SVGStringList interface: a.requiredExtensions must inherit property "clear()" with the proper type
-PASS SVGStringList interface: a.requiredExtensions must inherit property "initialize(DOMString)" with the proper type
-PASS SVGStringList interface: calling initialize(DOMString) on a.requiredExtensions with too few arguments must throw TypeError
-PASS SVGStringList interface: a.requiredExtensions must inherit property "getItem(unsigned long)" with the proper type
-PASS SVGStringList interface: calling getItem(unsigned long) on a.requiredExtensions with too few arguments must throw TypeError
-PASS SVGStringList interface: a.requiredExtensions must inherit property "insertItemBefore(DOMString, unsigned long)" with the proper type
-PASS SVGStringList interface: calling insertItemBefore(DOMString, unsigned long) on a.requiredExtensions with too few arguments must throw TypeError
-PASS SVGStringList interface: a.requiredExtensions must inherit property "replaceItem(DOMString, unsigned long)" with the proper type
-PASS SVGStringList interface: calling replaceItem(DOMString, unsigned long) on a.requiredExtensions with too few arguments must throw TypeError
-PASS SVGStringList interface: a.requiredExtensions must inherit property "removeItem(unsigned long)" with the proper type
-PASS SVGStringList interface: calling removeItem(unsigned long) on a.requiredExtensions with too few arguments must throw TypeError
-PASS SVGStringList interface: a.requiredExtensions must inherit property "appendItem(DOMString)" with the proper type
-PASS SVGStringList interface: calling appendItem(DOMString) on a.requiredExtensions with too few arguments must throw TypeError
-PASS SVGUnitTypes interface: existence and properties of interface object
-PASS SVGUnitTypes interface object length
-PASS SVGUnitTypes interface object name
-PASS SVGUnitTypes interface: existence and properties of interface prototype object
-PASS SVGUnitTypes interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGUnitTypes interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGUnitTypes interface: constant SVG_UNIT_TYPE_UNKNOWN on interface object
-PASS SVGUnitTypes interface: constant SVG_UNIT_TYPE_UNKNOWN on interface prototype object
-PASS SVGUnitTypes interface: constant SVG_UNIT_TYPE_USERSPACEONUSE on interface object
-PASS SVGUnitTypes interface: constant SVG_UNIT_TYPE_USERSPACEONUSE on interface prototype object
-PASS SVGUnitTypes interface: constant SVG_UNIT_TYPE_OBJECTBOUNDINGBOX on interface object
-PASS SVGUnitTypes interface: constant SVG_UNIT_TYPE_OBJECTBOUNDINGBOX on interface prototype object
-PASS SVGSVGElement interface: existence and properties of interface object
-PASS SVGSVGElement interface object length
-PASS SVGSVGElement interface object name
-PASS SVGSVGElement interface: existence and properties of interface prototype object
-PASS SVGSVGElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGSVGElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGSVGElement interface: attribute x
-PASS Unscopable handled correctly for x property on SVGSVGElement
-PASS SVGSVGElement interface: attribute y
-PASS Unscopable handled correctly for y property on SVGSVGElement
-PASS SVGSVGElement interface: attribute width
-PASS Unscopable handled correctly for width property on SVGSVGElement
-PASS SVGSVGElement interface: attribute height
-PASS Unscopable handled correctly for height property on SVGSVGElement
-PASS SVGSVGElement interface: attribute currentScale
-PASS Unscopable handled correctly for currentScale property on SVGSVGElement
-PASS SVGSVGElement interface: attribute currentTranslate
-PASS Unscopable handled correctly for currentTranslate property on SVGSVGElement
-PASS SVGSVGElement interface: operation getIntersectionList(DOMRectReadOnly, SVGElement)
-PASS Unscopable handled correctly for getIntersectionList(DOMRectReadOnly, SVGElement) on SVGSVGElement
-PASS SVGSVGElement interface: operation getEnclosureList(DOMRectReadOnly, SVGElement)
-PASS Unscopable handled correctly for getEnclosureList(DOMRectReadOnly, SVGElement) on SVGSVGElement
-PASS SVGSVGElement interface: operation checkIntersection(SVGElement, DOMRectReadOnly)
-PASS Unscopable handled correctly for checkIntersection(SVGElement, DOMRectReadOnly) on SVGSVGElement
-PASS SVGSVGElement interface: operation checkEnclosure(SVGElement, DOMRectReadOnly)
-PASS Unscopable handled correctly for checkEnclosure(SVGElement, DOMRectReadOnly) on SVGSVGElement
-PASS SVGSVGElement interface: operation deselectAll()
-PASS Unscopable handled correctly for deselectAll() on SVGSVGElement
-PASS SVGSVGElement interface: operation createSVGNumber()
-PASS Unscopable handled correctly for createSVGNumber() on SVGSVGElement
-PASS SVGSVGElement interface: operation createSVGLength()
-PASS Unscopable handled correctly for createSVGLength() on SVGSVGElement
-PASS SVGSVGElement interface: operation createSVGAngle()
-PASS Unscopable handled correctly for createSVGAngle() on SVGSVGElement
-PASS SVGSVGElement interface: operation createSVGPoint()
-PASS Unscopable handled correctly for createSVGPoint() on SVGSVGElement
-PASS SVGSVGElement interface: operation createSVGMatrix()
-PASS Unscopable handled correctly for createSVGMatrix() on SVGSVGElement
-PASS SVGSVGElement interface: operation createSVGRect()
-PASS Unscopable handled correctly for createSVGRect() on SVGSVGElement
-PASS SVGSVGElement interface: operation createSVGTransform()
-PASS Unscopable handled correctly for createSVGTransform() on SVGSVGElement
-PASS SVGSVGElement interface: operation createSVGTransformFromMatrix(DOMMatrixReadOnly)
-PASS Unscopable handled correctly for createSVGTransformFromMatrix(DOMMatrixReadOnly) on SVGSVGElement
-PASS SVGSVGElement interface: operation suspendRedraw(unsigned long)
-PASS Unscopable handled correctly for suspendRedraw(unsigned long) on SVGSVGElement
-PASS SVGSVGElement interface: operation unsuspendRedraw(unsigned long)
-PASS Unscopable handled correctly for unsuspendRedraw(unsigned long) on SVGSVGElement
-PASS SVGSVGElement interface: operation unsuspendRedrawAll()
-PASS Unscopable handled correctly for unsuspendRedrawAll() on SVGSVGElement
-PASS SVGSVGElement interface: operation forceRedraw()
-PASS Unscopable handled correctly for forceRedraw() on SVGSVGElement
-PASS SVGSVGElement interface: attribute viewBox
-PASS Unscopable handled correctly for viewBox property on SVGSVGElement
-PASS SVGSVGElement interface: attribute preserveAspectRatio
-PASS Unscopable handled correctly for preserveAspectRatio property on SVGSVGElement
-PASS SVGSVGElement interface: constant SVG_ZOOMANDPAN_UNKNOWN on interface object
-PASS SVGSVGElement interface: constant SVG_ZOOMANDPAN_UNKNOWN on interface prototype object
-PASS SVGSVGElement interface: constant SVG_ZOOMANDPAN_DISABLE on interface object
-PASS SVGSVGElement interface: constant SVG_ZOOMANDPAN_DISABLE on interface prototype object
-PASS SVGSVGElement interface: constant SVG_ZOOMANDPAN_MAGNIFY on interface object
-PASS SVGSVGElement interface: constant SVG_ZOOMANDPAN_MAGNIFY on interface prototype object
-PASS SVGSVGElement interface: attribute zoomAndPan
-PASS Unscopable handled correctly for zoomAndPan property on SVGSVGElement
-PASS SVGSVGElement must be primary interface of svg
-PASS Stringification of svg
-PASS SVGSVGElement interface: svg must inherit property "x" with the proper type
-PASS SVGSVGElement interface: svg must inherit property "y" with the proper type
-PASS SVGSVGElement interface: svg must inherit property "width" with the proper type
-PASS SVGSVGElement interface: svg must inherit property "height" with the proper type
-PASS SVGSVGElement interface: svg must inherit property "currentScale" with the proper type
-FAIL SVGSVGElement interface: svg must inherit property "currentTranslate" with the proper type assert_true: instanceof DOMPointReadOnly expected true got false
-PASS SVGSVGElement interface: svg must inherit property "getIntersectionList(DOMRectReadOnly, SVGElement)" with the proper type
-PASS SVGSVGElement interface: calling getIntersectionList(DOMRectReadOnly, SVGElement) on svg with too few arguments must throw TypeError
-PASS SVGSVGElement interface: svg must inherit property "getEnclosureList(DOMRectReadOnly, SVGElement)" with the proper type
-PASS SVGSVGElement interface: calling getEnclosureList(DOMRectReadOnly, SVGElement) on svg with too few arguments must throw TypeError
-PASS SVGSVGElement interface: svg must inherit property "checkIntersection(SVGElement, DOMRectReadOnly)" with the proper type
-PASS SVGSVGElement interface: calling checkIntersection(SVGElement, DOMRectReadOnly) on svg with too few arguments must throw TypeError
-PASS SVGSVGElement interface: svg must inherit property "checkEnclosure(SVGElement, DOMRectReadOnly)" with the proper type
-PASS SVGSVGElement interface: calling checkEnclosure(SVGElement, DOMRectReadOnly) on svg with too few arguments must throw TypeError
-PASS SVGSVGElement interface: svg must inherit property "deselectAll()" with the proper type
-PASS SVGSVGElement interface: svg must inherit property "createSVGNumber()" with the proper type
-PASS SVGSVGElement interface: svg must inherit property "createSVGLength()" with the proper type
-PASS SVGSVGElement interface: svg must inherit property "createSVGAngle()" with the proper type
-PASS SVGSVGElement interface: svg must inherit property "createSVGPoint()" with the proper type
-PASS SVGSVGElement interface: svg must inherit property "createSVGMatrix()" with the proper type
-PASS SVGSVGElement interface: svg must inherit property "createSVGRect()" with the proper type
-PASS SVGSVGElement interface: svg must inherit property "createSVGTransform()" with the proper type
-PASS SVGSVGElement interface: svg must inherit property "createSVGTransformFromMatrix(DOMMatrixReadOnly)" with the proper type
-PASS SVGSVGElement interface: calling createSVGTransformFromMatrix(DOMMatrixReadOnly) on svg with too few arguments must throw TypeError
-PASS SVGSVGElement interface: svg must inherit property "suspendRedraw(unsigned long)" with the proper type
-PASS SVGSVGElement interface: calling suspendRedraw(unsigned long) on svg with too few arguments must throw TypeError
-PASS SVGSVGElement interface: svg must inherit property "unsuspendRedraw(unsigned long)" with the proper type
-PASS SVGSVGElement interface: calling unsuspendRedraw(unsigned long) on svg with too few arguments must throw TypeError
-PASS SVGSVGElement interface: svg must inherit property "unsuspendRedrawAll()" with the proper type
-PASS SVGSVGElement interface: svg must inherit property "forceRedraw()" with the proper type
-PASS SVGSVGElement interface: svg must inherit property "viewBox" with the proper type
-PASS SVGSVGElement interface: svg must inherit property "preserveAspectRatio" with the proper type
-PASS SVGSVGElement interface: svg must inherit property "SVG_ZOOMANDPAN_UNKNOWN" with the proper type
-PASS SVGSVGElement interface: svg must inherit property "SVG_ZOOMANDPAN_DISABLE" with the proper type
-PASS SVGSVGElement interface: svg must inherit property "SVG_ZOOMANDPAN_MAGNIFY" with the proper type
-PASS SVGSVGElement interface: svg must inherit property "zoomAndPan" with the proper type
-PASS SVGGraphicsElement interface: svg must inherit property "transform" with the proper type
-PASS SVGGraphicsElement interface: svg must inherit property "getBBox(SVGBoundingBoxOptions)" with the proper type
-PASS SVGGraphicsElement interface: calling getBBox(SVGBoundingBoxOptions) on svg with too few arguments must throw TypeError
-PASS SVGGraphicsElement interface: svg must inherit property "getCTM()" with the proper type
-PASS SVGGraphicsElement interface: svg must inherit property "getScreenCTM()" with the proper type
-PASS SVGGraphicsElement interface: svg must inherit property "requiredExtensions" with the proper type
-PASS SVGGraphicsElement interface: svg must inherit property "systemLanguage" with the proper type
-PASS SVGElement interface: svg must inherit property "className" with the proper type
-PASS SVGElement interface: svg must inherit property "dataset" with the proper type
-PASS SVGElement interface: svg must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: svg must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: svg must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: svg must inherit property "focus()" with the proper type
-PASS SVGElement interface: svg must inherit property "blur()" with the proper type
-PASS SVGGElement interface: existence and properties of interface object
-PASS SVGGElement interface object length
-PASS SVGGElement interface object name
-PASS SVGGElement interface: existence and properties of interface prototype object
-PASS SVGGElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGGElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGGElement must be primary interface of g
-PASS Stringification of g
-PASS SVGGraphicsElement interface: g must inherit property "transform" with the proper type
-PASS SVGGraphicsElement interface: g must inherit property "getBBox(SVGBoundingBoxOptions)" with the proper type
-PASS SVGGraphicsElement interface: calling getBBox(SVGBoundingBoxOptions) on g with too few arguments must throw TypeError
-PASS SVGGraphicsElement interface: g must inherit property "getCTM()" with the proper type
-PASS SVGGraphicsElement interface: g must inherit property "getScreenCTM()" with the proper type
-PASS SVGGraphicsElement interface: g must inherit property "requiredExtensions" with the proper type
-PASS SVGGraphicsElement interface: g must inherit property "systemLanguage" with the proper type
-PASS SVGElement interface: g must inherit property "className" with the proper type
-PASS SVGElement interface: g must inherit property "dataset" with the proper type
-PASS SVGElement interface: g must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: g must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: g must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: g must inherit property "focus()" with the proper type
-PASS SVGElement interface: g must inherit property "blur()" with the proper type
-FAIL SVGUnknownElement interface: existence and properties of interface object assert_own_property: self does not have own property "SVGUnknownElement" expected property "SVGUnknownElement" missing
-FAIL SVGUnknownElement interface object length assert_own_property: self does not have own property "SVGUnknownElement" expected property "SVGUnknownElement" missing
-FAIL SVGUnknownElement interface object name assert_own_property: self does not have own property "SVGUnknownElement" expected property "SVGUnknownElement" missing
-FAIL SVGUnknownElement interface: existence and properties of interface prototype object assert_own_property: self does not have own property "SVGUnknownElement" expected property "SVGUnknownElement" missing
-FAIL SVGUnknownElement interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "SVGUnknownElement" expected property "SVGUnknownElement" missing
-FAIL SVGUnknownElement interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "SVGUnknownElement" expected property "SVGUnknownElement" missing
-PASS SVGDefsElement interface: existence and properties of interface object
-PASS SVGDefsElement interface object length
-PASS SVGDefsElement interface object name
-PASS SVGDefsElement interface: existence and properties of interface prototype object
-PASS SVGDefsElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGDefsElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGDefsElement must be primary interface of defs
-PASS Stringification of defs
-PASS SVGGraphicsElement interface: defs must inherit property "transform" with the proper type
-PASS SVGGraphicsElement interface: defs must inherit property "getBBox(SVGBoundingBoxOptions)" with the proper type
-PASS SVGGraphicsElement interface: calling getBBox(SVGBoundingBoxOptions) on defs with too few arguments must throw TypeError
-PASS SVGGraphicsElement interface: defs must inherit property "getCTM()" with the proper type
-PASS SVGGraphicsElement interface: defs must inherit property "getScreenCTM()" with the proper type
-PASS SVGGraphicsElement interface: defs must inherit property "requiredExtensions" with the proper type
-PASS SVGGraphicsElement interface: defs must inherit property "systemLanguage" with the proper type
-PASS SVGElement interface: defs must inherit property "className" with the proper type
-PASS SVGElement interface: defs must inherit property "dataset" with the proper type
-PASS SVGElement interface: defs must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: defs must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: defs must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: defs must inherit property "focus()" with the proper type
-PASS SVGElement interface: defs must inherit property "blur()" with the proper type
-PASS SVGDescElement interface: existence and properties of interface object
-PASS SVGDescElement interface object length
-PASS SVGDescElement interface object name
-PASS SVGDescElement interface: existence and properties of interface prototype object
-PASS SVGDescElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGDescElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGDescElement must be primary interface of Desc
-PASS Stringification of Desc
-PASS SVGElement interface: Desc must inherit property "className" with the proper type
-PASS SVGElement interface: Desc must inherit property "dataset" with the proper type
-PASS SVGElement interface: Desc must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: Desc must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: Desc must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: Desc must inherit property "focus()" with the proper type
-PASS SVGElement interface: Desc must inherit property "blur()" with the proper type
-PASS SVGMetadataElement interface: existence and properties of interface object
-PASS SVGMetadataElement interface object length
-PASS SVGMetadataElement interface object name
-PASS SVGMetadataElement interface: existence and properties of interface prototype object
-PASS SVGMetadataElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGMetadataElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGMetadataElement must be primary interface of metadata
-PASS Stringification of metadata
-PASS SVGElement interface: metadata must inherit property "className" with the proper type
-PASS SVGElement interface: metadata must inherit property "dataset" with the proper type
-PASS SVGElement interface: metadata must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: metadata must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: metadata must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: metadata must inherit property "focus()" with the proper type
-PASS SVGElement interface: metadata must inherit property "blur()" with the proper type
-PASS SVGTitleElement interface: existence and properties of interface object
-PASS SVGTitleElement interface object length
-PASS SVGTitleElement interface object name
-PASS SVGTitleElement interface: existence and properties of interface prototype object
-PASS SVGTitleElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGTitleElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGTitleElement must be primary interface of title
-PASS Stringification of title
-PASS SVGElement interface: title must inherit property "className" with the proper type
-PASS SVGElement interface: title must inherit property "dataset" with the proper type
-PASS SVGElement interface: title must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: title must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: title must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: title must inherit property "focus()" with the proper type
-PASS SVGElement interface: title must inherit property "blur()" with the proper type
-PASS SVGSymbolElement interface: existence and properties of interface object
-PASS SVGSymbolElement interface object length
-PASS SVGSymbolElement interface object name
-PASS SVGSymbolElement interface: existence and properties of interface prototype object
-PASS SVGSymbolElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGSymbolElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGSymbolElement interface: attribute viewBox
-PASS Unscopable handled correctly for viewBox property on SVGSymbolElement
-PASS SVGSymbolElement interface: attribute preserveAspectRatio
-PASS Unscopable handled correctly for preserveAspectRatio property on SVGSymbolElement
-PASS SVGSymbolElement must be primary interface of symbol
-PASS Stringification of symbol
-PASS SVGSymbolElement interface: symbol must inherit property "viewBox" with the proper type
-PASS SVGSymbolElement interface: symbol must inherit property "preserveAspectRatio" with the proper type
-PASS SVGElement interface: symbol must inherit property "className" with the proper type
-PASS SVGElement interface: symbol must inherit property "dataset" with the proper type
-PASS SVGElement interface: symbol must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: symbol must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: symbol must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: symbol must inherit property "focus()" with the proper type
-PASS SVGElement interface: symbol must inherit property "blur()" with the proper type
-PASS SVGUseElement interface: existence and properties of interface object
-PASS SVGUseElement interface object length
-PASS SVGUseElement interface object name
-PASS SVGUseElement interface: existence and properties of interface prototype object
-PASS SVGUseElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGUseElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGUseElement interface: attribute x
-PASS Unscopable handled correctly for x property on SVGUseElement
-PASS SVGUseElement interface: attribute y
-PASS Unscopable handled correctly for y property on SVGUseElement
-PASS SVGUseElement interface: attribute width
-PASS Unscopable handled correctly for width property on SVGUseElement
-PASS SVGUseElement interface: attribute height
-PASS Unscopable handled correctly for height property on SVGUseElement
-PASS SVGUseElement interface: attribute href
-PASS Unscopable handled correctly for href property on SVGUseElement
-PASS SVGUseElement must be primary interface of use
-PASS Stringification of use
-PASS SVGUseElement interface: use must inherit property "x" with the proper type
-PASS SVGUseElement interface: use must inherit property "y" with the proper type
-PASS SVGUseElement interface: use must inherit property "width" with the proper type
-PASS SVGUseElement interface: use must inherit property "height" with the proper type
-PASS SVGUseElement interface: use must inherit property "href" with the proper type
-PASS SVGGraphicsElement interface: use must inherit property "transform" with the proper type
-PASS SVGGraphicsElement interface: use must inherit property "getBBox(SVGBoundingBoxOptions)" with the proper type
-PASS SVGGraphicsElement interface: calling getBBox(SVGBoundingBoxOptions) on use with too few arguments must throw TypeError
-PASS SVGGraphicsElement interface: use must inherit property "getCTM()" with the proper type
-PASS SVGGraphicsElement interface: use must inherit property "getScreenCTM()" with the proper type
-PASS SVGGraphicsElement interface: use must inherit property "requiredExtensions" with the proper type
-PASS SVGGraphicsElement interface: use must inherit property "systemLanguage" with the proper type
-PASS SVGElement interface: use must inherit property "className" with the proper type
-PASS SVGElement interface: use must inherit property "dataset" with the proper type
-PASS SVGElement interface: use must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: use must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: use must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: use must inherit property "focus()" with the proper type
-PASS SVGElement interface: use must inherit property "blur()" with the proper type
-PASS SVGSwitchElement interface: existence and properties of interface object
-PASS SVGSwitchElement interface object length
-PASS SVGSwitchElement interface object name
-PASS SVGSwitchElement interface: existence and properties of interface prototype object
-PASS SVGSwitchElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGSwitchElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGSwitchElement must be primary interface of Switch
-PASS Stringification of Switch
-PASS SVGGraphicsElement interface: Switch must inherit property "transform" with the proper type
-PASS SVGGraphicsElement interface: Switch must inherit property "getBBox(SVGBoundingBoxOptions)" with the proper type
-PASS SVGGraphicsElement interface: calling getBBox(SVGBoundingBoxOptions) on Switch with too few arguments must throw TypeError
-PASS SVGGraphicsElement interface: Switch must inherit property "getCTM()" with the proper type
-PASS SVGGraphicsElement interface: Switch must inherit property "getScreenCTM()" with the proper type
-PASS SVGGraphicsElement interface: Switch must inherit property "requiredExtensions" with the proper type
-PASS SVGGraphicsElement interface: Switch must inherit property "systemLanguage" with the proper type
-PASS SVGElement interface: Switch must inherit property "className" with the proper type
-PASS SVGElement interface: Switch must inherit property "dataset" with the proper type
-PASS SVGElement interface: Switch must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: Switch must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: Switch must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: Switch must inherit property "focus()" with the proper type
-PASS SVGElement interface: Switch must inherit property "blur()" with the proper type
-PASS SVGStyleElement interface: existence and properties of interface object
-PASS SVGStyleElement interface object length
-PASS SVGStyleElement interface object name
-PASS SVGStyleElement interface: existence and properties of interface prototype object
-PASS SVGStyleElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGStyleElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGStyleElement interface: attribute type
-PASS Unscopable handled correctly for type property on SVGStyleElement
-PASS SVGStyleElement interface: attribute media
-PASS Unscopable handled correctly for media property on SVGStyleElement
-PASS SVGStyleElement interface: attribute title
-PASS Unscopable handled correctly for title property on SVGStyleElement
-PASS SVGStyleElement must be primary interface of style
-PASS Stringification of style
-PASS SVGStyleElement interface: style must inherit property "type" with the proper type
-PASS SVGStyleElement interface: style must inherit property "media" with the proper type
-PASS SVGStyleElement interface: style must inherit property "title" with the proper type
-PASS SVGElement interface: style must inherit property "className" with the proper type
-PASS SVGElement interface: style must inherit property "dataset" with the proper type
-PASS SVGElement interface: style must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: style must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: style must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: style must inherit property "focus()" with the proper type
-PASS SVGElement interface: style must inherit property "blur()" with the proper type
-PASS SVGTransform interface: existence and properties of interface object
-PASS SVGTransform interface object length
-PASS SVGTransform interface object name
-PASS SVGTransform interface: existence and properties of interface prototype object
-PASS SVGTransform interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGTransform interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGTransform interface: constant SVG_TRANSFORM_UNKNOWN on interface object
-PASS SVGTransform interface: constant SVG_TRANSFORM_UNKNOWN on interface prototype object
-PASS SVGTransform interface: constant SVG_TRANSFORM_MATRIX on interface object
-PASS SVGTransform interface: constant SVG_TRANSFORM_MATRIX on interface prototype object
-PASS SVGTransform interface: constant SVG_TRANSFORM_TRANSLATE on interface object
-PASS SVGTransform interface: constant SVG_TRANSFORM_TRANSLATE on interface prototype object
-PASS SVGTransform interface: constant SVG_TRANSFORM_SCALE on interface object
-PASS SVGTransform interface: constant SVG_TRANSFORM_SCALE on interface prototype object
-PASS SVGTransform interface: constant SVG_TRANSFORM_ROTATE on interface object
-PASS SVGTransform interface: constant SVG_TRANSFORM_ROTATE on interface prototype object
-PASS SVGTransform interface: constant SVG_TRANSFORM_SKEWX on interface object
-PASS SVGTransform interface: constant SVG_TRANSFORM_SKEWX on interface prototype object
-PASS SVGTransform interface: constant SVG_TRANSFORM_SKEWY on interface object
-PASS SVGTransform interface: constant SVG_TRANSFORM_SKEWY on interface prototype object
-PASS SVGTransform interface: attribute type
-PASS Unscopable handled correctly for type property on SVGTransform
-PASS SVGTransform interface: attribute matrix
-PASS Unscopable handled correctly for matrix property on SVGTransform
-PASS SVGTransform interface: attribute angle
-PASS Unscopable handled correctly for angle property on SVGTransform
-PASS SVGTransform interface: operation setMatrix(DOMMatrixReadOnly)
-PASS Unscopable handled correctly for setMatrix(DOMMatrixReadOnly) on SVGTransform
-PASS SVGTransform interface: operation setTranslate(float, float)
-PASS Unscopable handled correctly for setTranslate(float, float) on SVGTransform
-PASS SVGTransform interface: operation setScale(float, float)
-PASS Unscopable handled correctly for setScale(float, float) on SVGTransform
-PASS SVGTransform interface: operation setRotate(float, float, float)
-PASS Unscopable handled correctly for setRotate(float, float, float) on SVGTransform
-PASS SVGTransform interface: operation setSkewX(float)
-PASS Unscopable handled correctly for setSkewX(float) on SVGTransform
-PASS SVGTransform interface: operation setSkewY(float)
-PASS Unscopable handled correctly for setSkewY(float) on SVGTransform
-PASS SVGTransform must be primary interface of svg.createSVGTransform()
-PASS Stringification of svg.createSVGTransform()
-PASS SVGTransform interface: svg.createSVGTransform() must inherit property "SVG_TRANSFORM_UNKNOWN" with the proper type
-PASS SVGTransform interface: svg.createSVGTransform() must inherit property "SVG_TRANSFORM_MATRIX" with the proper type
-PASS SVGTransform interface: svg.createSVGTransform() must inherit property "SVG_TRANSFORM_TRANSLATE" with the proper type
-PASS SVGTransform interface: svg.createSVGTransform() must inherit property "SVG_TRANSFORM_SCALE" with the proper type
-PASS SVGTransform interface: svg.createSVGTransform() must inherit property "SVG_TRANSFORM_ROTATE" with the proper type
-PASS SVGTransform interface: svg.createSVGTransform() must inherit property "SVG_TRANSFORM_SKEWX" with the proper type
-PASS SVGTransform interface: svg.createSVGTransform() must inherit property "SVG_TRANSFORM_SKEWY" with the proper type
-PASS SVGTransform interface: svg.createSVGTransform() must inherit property "type" with the proper type
-FAIL SVGTransform interface: svg.createSVGTransform() must inherit property "matrix" with the proper type assert_true: instanceof DOMMatrix expected true got false
-PASS SVGTransform interface: svg.createSVGTransform() must inherit property "angle" with the proper type
-PASS SVGTransform interface: svg.createSVGTransform() must inherit property "setMatrix(DOMMatrixReadOnly)" with the proper type
-PASS SVGTransform interface: calling setMatrix(DOMMatrixReadOnly) on svg.createSVGTransform() with too few arguments must throw TypeError
-PASS SVGTransform interface: svg.createSVGTransform() must inherit property "setTranslate(float, float)" with the proper type
-PASS SVGTransform interface: calling setTranslate(float, float) on svg.createSVGTransform() with too few arguments must throw TypeError
-PASS SVGTransform interface: svg.createSVGTransform() must inherit property "setScale(float, float)" with the proper type
-PASS SVGTransform interface: calling setScale(float, float) on svg.createSVGTransform() with too few arguments must throw TypeError
-PASS SVGTransform interface: svg.createSVGTransform() must inherit property "setRotate(float, float, float)" with the proper type
-PASS SVGTransform interface: calling setRotate(float, float, float) on svg.createSVGTransform() with too few arguments must throw TypeError
-PASS SVGTransform interface: svg.createSVGTransform() must inherit property "setSkewX(float)" with the proper type
-PASS SVGTransform interface: calling setSkewX(float) on svg.createSVGTransform() with too few arguments must throw TypeError
-PASS SVGTransform interface: svg.createSVGTransform() must inherit property "setSkewY(float)" with the proper type
-PASS SVGTransform interface: calling setSkewY(float) on svg.createSVGTransform() with too few arguments must throw TypeError
-PASS SVGTransformList interface: existence and properties of interface object
-PASS SVGTransformList interface object length
-PASS SVGTransformList interface object name
-PASS SVGTransformList interface: existence and properties of interface prototype object
-PASS SVGTransformList interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGTransformList interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGTransformList interface: attribute length
-PASS Unscopable handled correctly for length property on SVGTransformList
-PASS SVGTransformList interface: attribute numberOfItems
-PASS Unscopable handled correctly for numberOfItems property on SVGTransformList
-PASS SVGTransformList interface: operation clear()
-PASS Unscopable handled correctly for clear() on SVGTransformList
-PASS SVGTransformList interface: operation initialize(SVGTransform)
-PASS Unscopable handled correctly for initialize(SVGTransform) on SVGTransformList
-PASS SVGTransformList interface: operation getItem(unsigned long)
-PASS Unscopable handled correctly for getItem(unsigned long) on SVGTransformList
-PASS SVGTransformList interface: operation insertItemBefore(SVGTransform, unsigned long)
-PASS Unscopable handled correctly for insertItemBefore(SVGTransform, unsigned long) on SVGTransformList
-PASS SVGTransformList interface: operation replaceItem(SVGTransform, unsigned long)
-PASS Unscopable handled correctly for replaceItem(SVGTransform, unsigned long) on SVGTransformList
-PASS SVGTransformList interface: operation removeItem(unsigned long)
-PASS Unscopable handled correctly for removeItem(unsigned long) on SVGTransformList
-PASS SVGTransformList interface: operation appendItem(SVGTransform)
-PASS Unscopable handled correctly for appendItem(SVGTransform) on SVGTransformList
-PASS SVGTransformList interface: operation createSVGTransformFromMatrix(DOMMatrixReadOnly)
-PASS Unscopable handled correctly for createSVGTransformFromMatrix(DOMMatrixReadOnly) on SVGTransformList
-PASS SVGTransformList interface: operation consolidate()
-PASS Unscopable handled correctly for consolidate() on SVGTransformList
-PASS SVGTransformList must be primary interface of pattern.patternTransform.baseVal
-PASS Stringification of pattern.patternTransform.baseVal
-PASS SVGTransformList interface: pattern.patternTransform.baseVal must inherit property "length" with the proper type
-PASS SVGTransformList interface: pattern.patternTransform.baseVal must inherit property "numberOfItems" with the proper type
-PASS SVGTransformList interface: pattern.patternTransform.baseVal must inherit property "clear()" with the proper type
-PASS SVGTransformList interface: pattern.patternTransform.baseVal must inherit property "initialize(SVGTransform)" with the proper type
-PASS SVGTransformList interface: calling initialize(SVGTransform) on pattern.patternTransform.baseVal with too few arguments must throw TypeError
-PASS SVGTransformList interface: pattern.patternTransform.baseVal must inherit property "getItem(unsigned long)" with the proper type
-PASS SVGTransformList interface: calling getItem(unsigned long) on pattern.patternTransform.baseVal with too few arguments must throw TypeError
-PASS SVGTransformList interface: pattern.patternTransform.baseVal must inherit property "insertItemBefore(SVGTransform, unsigned long)" with the proper type
-PASS SVGTransformList interface: calling insertItemBefore(SVGTransform, unsigned long) on pattern.patternTransform.baseVal with too few arguments must throw TypeError
-PASS SVGTransformList interface: pattern.patternTransform.baseVal must inherit property "replaceItem(SVGTransform, unsigned long)" with the proper type
-PASS SVGTransformList interface: calling replaceItem(SVGTransform, unsigned long) on pattern.patternTransform.baseVal with too few arguments must throw TypeError
-PASS SVGTransformList interface: pattern.patternTransform.baseVal must inherit property "removeItem(unsigned long)" with the proper type
-PASS SVGTransformList interface: calling removeItem(unsigned long) on pattern.patternTransform.baseVal with too few arguments must throw TypeError
-PASS SVGTransformList interface: pattern.patternTransform.baseVal must inherit property "appendItem(SVGTransform)" with the proper type
-PASS SVGTransformList interface: calling appendItem(SVGTransform) on pattern.patternTransform.baseVal with too few arguments must throw TypeError
-PASS SVGTransformList interface: pattern.patternTransform.baseVal must inherit property "createSVGTransformFromMatrix(DOMMatrixReadOnly)" with the proper type
-PASS SVGTransformList interface: calling createSVGTransformFromMatrix(DOMMatrixReadOnly) on pattern.patternTransform.baseVal with too few arguments must throw TypeError
-PASS SVGTransformList interface: pattern.patternTransform.baseVal must inherit property "consolidate()" with the proper type
-PASS SVGAnimatedTransformList interface: existence and properties of interface object
-PASS SVGAnimatedTransformList interface object length
-PASS SVGAnimatedTransformList interface object name
-PASS SVGAnimatedTransformList interface: existence and properties of interface prototype object
-PASS SVGAnimatedTransformList interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGAnimatedTransformList interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGAnimatedTransformList interface: attribute baseVal
-PASS Unscopable handled correctly for baseVal property on SVGAnimatedTransformList
-PASS SVGAnimatedTransformList interface: attribute animVal
-PASS Unscopable handled correctly for animVal property on SVGAnimatedTransformList
-PASS SVGAnimatedTransformList must be primary interface of pattern.patternTransform
-PASS Stringification of pattern.patternTransform
-PASS SVGAnimatedTransformList interface: pattern.patternTransform must inherit property "baseVal" with the proper type
-PASS SVGAnimatedTransformList interface: pattern.patternTransform must inherit property "animVal" with the proper type
-PASS SVGPreserveAspectRatio interface: existence and properties of interface object
-PASS SVGPreserveAspectRatio interface object length
-PASS SVGPreserveAspectRatio interface object name
-PASS SVGPreserveAspectRatio interface: existence and properties of interface prototype object
-PASS SVGPreserveAspectRatio interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGPreserveAspectRatio interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGPreserveAspectRatio interface: constant SVG_PRESERVEASPECTRATIO_UNKNOWN on interface object
-PASS SVGPreserveAspectRatio interface: constant SVG_PRESERVEASPECTRATIO_UNKNOWN on interface prototype object
-PASS SVGPreserveAspectRatio interface: constant SVG_PRESERVEASPECTRATIO_NONE on interface object
-PASS SVGPreserveAspectRatio interface: constant SVG_PRESERVEASPECTRATIO_NONE on interface prototype object
-PASS SVGPreserveAspectRatio interface: constant SVG_PRESERVEASPECTRATIO_XMINYMIN on interface object
-PASS SVGPreserveAspectRatio interface: constant SVG_PRESERVEASPECTRATIO_XMINYMIN on interface prototype object
-PASS SVGPreserveAspectRatio interface: constant SVG_PRESERVEASPECTRATIO_XMIDYMIN on interface object
-PASS SVGPreserveAspectRatio interface: constant SVG_PRESERVEASPECTRATIO_XMIDYMIN on interface prototype object
-PASS SVGPreserveAspectRatio interface: constant SVG_PRESERVEASPECTRATIO_XMAXYMIN on interface object
-PASS SVGPreserveAspectRatio interface: constant SVG_PRESERVEASPECTRATIO_XMAXYMIN on interface prototype object
-PASS SVGPreserveAspectRatio interface: constant SVG_PRESERVEASPECTRATIO_XMINYMID on interface object
-PASS SVGPreserveAspectRatio interface: constant SVG_PRESERVEASPECTRATIO_XMINYMID on interface prototype object
-PASS SVGPreserveAspectRatio interface: constant SVG_PRESERVEASPECTRATIO_XMIDYMID on interface object
-PASS SVGPreserveAspectRatio interface: constant SVG_PRESERVEASPECTRATIO_XMIDYMID on interface prototype object
-PASS SVGPreserveAspectRatio interface: constant SVG_PRESERVEASPECTRATIO_XMAXYMID on interface object
-PASS SVGPreserveAspectRatio interface: constant SVG_PRESERVEASPECTRATIO_XMAXYMID on interface prototype object
-PASS SVGPreserveAspectRatio interface: constant SVG_PRESERVEASPECTRATIO_XMINYMAX on interface object
-PASS SVGPreserveAspectRatio interface: constant SVG_PRESERVEASPECTRATIO_XMINYMAX on interface prototype object
-PASS SVGPreserveAspectRatio interface: constant SVG_PRESERVEASPECTRATIO_XMIDYMAX on interface object
-PASS SVGPreserveAspectRatio interface: constant SVG_PRESERVEASPECTRATIO_XMIDYMAX on interface prototype object
-PASS SVGPreserveAspectRatio interface: constant SVG_PRESERVEASPECTRATIO_XMAXYMAX on interface object
-PASS SVGPreserveAspectRatio interface: constant SVG_PRESERVEASPECTRATIO_XMAXYMAX on interface prototype object
-PASS SVGPreserveAspectRatio interface: constant SVG_MEETORSLICE_UNKNOWN on interface object
-PASS SVGPreserveAspectRatio interface: constant SVG_MEETORSLICE_UNKNOWN on interface prototype object
-PASS SVGPreserveAspectRatio interface: constant SVG_MEETORSLICE_MEET on interface object
-PASS SVGPreserveAspectRatio interface: constant SVG_MEETORSLICE_MEET on interface prototype object
-PASS SVGPreserveAspectRatio interface: constant SVG_MEETORSLICE_SLICE on interface object
-PASS SVGPreserveAspectRatio interface: constant SVG_MEETORSLICE_SLICE on interface prototype object
-PASS SVGPreserveAspectRatio interface: attribute align
-PASS Unscopable handled correctly for align property on SVGPreserveAspectRatio
-PASS SVGPreserveAspectRatio interface: attribute meetOrSlice
-PASS Unscopable handled correctly for meetOrSlice property on SVGPreserveAspectRatio
-PASS SVGPreserveAspectRatio must be primary interface of image.preserveAspectRatio.baseVal
-PASS Stringification of image.preserveAspectRatio.baseVal
-PASS SVGPreserveAspectRatio interface: image.preserveAspectRatio.baseVal must inherit property "SVG_PRESERVEASPECTRATIO_UNKNOWN" with the proper type
-PASS SVGPreserveAspectRatio interface: image.preserveAspectRatio.baseVal must inherit property "SVG_PRESERVEASPECTRATIO_NONE" with the proper type
-PASS SVGPreserveAspectRatio interface: image.preserveAspectRatio.baseVal must inherit property "SVG_PRESERVEASPECTRATIO_XMINYMIN" with the proper type
-PASS SVGPreserveAspectRatio interface: image.preserveAspectRatio.baseVal must inherit property "SVG_PRESERVEASPECTRATIO_XMIDYMIN" with the proper type
-PASS SVGPreserveAspectRatio interface: image.preserveAspectRatio.baseVal must inherit property "SVG_PRESERVEASPECTRATIO_XMAXYMIN" with the proper type
-PASS SVGPreserveAspectRatio interface: image.preserveAspectRatio.baseVal must inherit property "SVG_PRESERVEASPECTRATIO_XMINYMID" with the proper type
-PASS SVGPreserveAspectRatio interface: image.preserveAspectRatio.baseVal must inherit property "SVG_PRESERVEASPECTRATIO_XMIDYMID" with the proper type
-PASS SVGPreserveAspectRatio interface: image.preserveAspectRatio.baseVal must inherit property "SVG_PRESERVEASPECTRATIO_XMAXYMID" with the proper type
-PASS SVGPreserveAspectRatio interface: image.preserveAspectRatio.baseVal must inherit property "SVG_PRESERVEASPECTRATIO_XMINYMAX" with the proper type
-PASS SVGPreserveAspectRatio interface: image.preserveAspectRatio.baseVal must inherit property "SVG_PRESERVEASPECTRATIO_XMIDYMAX" with the proper type
-PASS SVGPreserveAspectRatio interface: image.preserveAspectRatio.baseVal must inherit property "SVG_PRESERVEASPECTRATIO_XMAXYMAX" with the proper type
-PASS SVGPreserveAspectRatio interface: image.preserveAspectRatio.baseVal must inherit property "SVG_MEETORSLICE_UNKNOWN" with the proper type
-PASS SVGPreserveAspectRatio interface: image.preserveAspectRatio.baseVal must inherit property "SVG_MEETORSLICE_MEET" with the proper type
-PASS SVGPreserveAspectRatio interface: image.preserveAspectRatio.baseVal must inherit property "SVG_MEETORSLICE_SLICE" with the proper type
-PASS SVGPreserveAspectRatio interface: image.preserveAspectRatio.baseVal must inherit property "align" with the proper type
-PASS SVGPreserveAspectRatio interface: image.preserveAspectRatio.baseVal must inherit property "meetOrSlice" with the proper type
-PASS SVGAnimatedPreserveAspectRatio interface: existence and properties of interface object
-PASS SVGAnimatedPreserveAspectRatio interface object length
-PASS SVGAnimatedPreserveAspectRatio interface object name
-PASS SVGAnimatedPreserveAspectRatio interface: existence and properties of interface prototype object
-PASS SVGAnimatedPreserveAspectRatio interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGAnimatedPreserveAspectRatio interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGAnimatedPreserveAspectRatio interface: attribute baseVal
-PASS Unscopable handled correctly for baseVal property on SVGAnimatedPreserveAspectRatio
-PASS SVGAnimatedPreserveAspectRatio interface: attribute animVal
-PASS Unscopable handled correctly for animVal property on SVGAnimatedPreserveAspectRatio
-PASS SVGAnimatedPreserveAspectRatio must be primary interface of image.preserveAspectRatio
-PASS Stringification of image.preserveAspectRatio
-PASS SVGAnimatedPreserveAspectRatio interface: image.preserveAspectRatio must inherit property "baseVal" with the proper type
-PASS SVGAnimatedPreserveAspectRatio interface: image.preserveAspectRatio must inherit property "animVal" with the proper type
-PASS SVGPathElement interface: existence and properties of interface object
-PASS SVGPathElement interface object length
-PASS SVGPathElement interface object name
-PASS SVGPathElement interface: existence and properties of interface prototype object
-PASS SVGPathElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGPathElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGPathElement must be primary interface of path
-PASS Stringification of path
-PASS SVGGeometryElement interface: path must inherit property "pathLength" with the proper type
-PASS SVGGeometryElement interface: path must inherit property "isPointInFill(DOMPoint)" with the proper type
-PASS SVGGeometryElement interface: calling isPointInFill(DOMPoint) on path with too few arguments must throw TypeError
-PASS SVGGeometryElement interface: path must inherit property "isPointInStroke(DOMPoint)" with the proper type
-PASS SVGGeometryElement interface: calling isPointInStroke(DOMPoint) on path with too few arguments must throw TypeError
-PASS SVGGeometryElement interface: path must inherit property "getTotalLength()" with the proper type
-PASS SVGGeometryElement interface: path must inherit property "getPointAtLength(float)" with the proper type
-PASS SVGGeometryElement interface: calling getPointAtLength(float) on path with too few arguments must throw TypeError
-PASS SVGGraphicsElement interface: path must inherit property "transform" with the proper type
-PASS SVGGraphicsElement interface: path must inherit property "getBBox(SVGBoundingBoxOptions)" with the proper type
-PASS SVGGraphicsElement interface: calling getBBox(SVGBoundingBoxOptions) on path with too few arguments must throw TypeError
-PASS SVGGraphicsElement interface: path must inherit property "getCTM()" with the proper type
-PASS SVGGraphicsElement interface: path must inherit property "getScreenCTM()" with the proper type
-PASS SVGGraphicsElement interface: path must inherit property "requiredExtensions" with the proper type
-PASS SVGGraphicsElement interface: path must inherit property "systemLanguage" with the proper type
-PASS SVGElement interface: path must inherit property "className" with the proper type
-PASS SVGElement interface: path must inherit property "dataset" with the proper type
-PASS SVGElement interface: path must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: path must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: path must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: path must inherit property "focus()" with the proper type
-PASS SVGElement interface: path must inherit property "blur()" with the proper type
-PASS SVGRectElement interface: existence and properties of interface object
-PASS SVGRectElement interface object length
-PASS SVGRectElement interface object name
-PASS SVGRectElement interface: existence and properties of interface prototype object
-PASS SVGRectElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGRectElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGRectElement interface: attribute x
-PASS Unscopable handled correctly for x property on SVGRectElement
-PASS SVGRectElement interface: attribute y
-PASS Unscopable handled correctly for y property on SVGRectElement
-PASS SVGRectElement interface: attribute width
-PASS Unscopable handled correctly for width property on SVGRectElement
-PASS SVGRectElement interface: attribute height
-PASS Unscopable handled correctly for height property on SVGRectElement
-PASS SVGRectElement interface: attribute rx
-PASS Unscopable handled correctly for rx property on SVGRectElement
-PASS SVGRectElement interface: attribute ry
-PASS Unscopable handled correctly for ry property on SVGRectElement
-PASS SVGRectElement must be primary interface of rect
-PASS Stringification of rect
-PASS SVGRectElement interface: rect must inherit property "x" with the proper type
-PASS SVGRectElement interface: rect must inherit property "y" with the proper type
-PASS SVGRectElement interface: rect must inherit property "width" with the proper type
-PASS SVGRectElement interface: rect must inherit property "height" with the proper type
-PASS SVGRectElement interface: rect must inherit property "rx" with the proper type
-PASS SVGRectElement interface: rect must inherit property "ry" with the proper type
-PASS SVGGeometryElement interface: rect must inherit property "pathLength" with the proper type
-PASS SVGGeometryElement interface: rect must inherit property "isPointInFill(DOMPoint)" with the proper type
-PASS SVGGeometryElement interface: calling isPointInFill(DOMPoint) on rect with too few arguments must throw TypeError
-PASS SVGGeometryElement interface: rect must inherit property "isPointInStroke(DOMPoint)" with the proper type
-PASS SVGGeometryElement interface: calling isPointInStroke(DOMPoint) on rect with too few arguments must throw TypeError
-PASS SVGGeometryElement interface: rect must inherit property "getTotalLength()" with the proper type
-PASS SVGGeometryElement interface: rect must inherit property "getPointAtLength(float)" with the proper type
-PASS SVGGeometryElement interface: calling getPointAtLength(float) on rect with too few arguments must throw TypeError
-PASS SVGGraphicsElement interface: rect must inherit property "transform" with the proper type
-PASS SVGGraphicsElement interface: rect must inherit property "getBBox(SVGBoundingBoxOptions)" with the proper type
-PASS SVGGraphicsElement interface: calling getBBox(SVGBoundingBoxOptions) on rect with too few arguments must throw TypeError
-PASS SVGGraphicsElement interface: rect must inherit property "getCTM()" with the proper type
-PASS SVGGraphicsElement interface: rect must inherit property "getScreenCTM()" with the proper type
-PASS SVGGraphicsElement interface: rect must inherit property "requiredExtensions" with the proper type
-PASS SVGGraphicsElement interface: rect must inherit property "systemLanguage" with the proper type
-PASS SVGElement interface: rect must inherit property "className" with the proper type
-PASS SVGElement interface: rect must inherit property "dataset" with the proper type
-PASS SVGElement interface: rect must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: rect must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: rect must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: rect must inherit property "focus()" with the proper type
-PASS SVGElement interface: rect must inherit property "blur()" with the proper type
-PASS SVGCircleElement interface: existence and properties of interface object
-PASS SVGCircleElement interface object length
-PASS SVGCircleElement interface object name
-PASS SVGCircleElement interface: existence and properties of interface prototype object
-PASS SVGCircleElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGCircleElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGCircleElement interface: attribute cx
-PASS Unscopable handled correctly for cx property on SVGCircleElement
-PASS SVGCircleElement interface: attribute cy
-PASS Unscopable handled correctly for cy property on SVGCircleElement
-PASS SVGCircleElement interface: attribute r
-PASS Unscopable handled correctly for r property on SVGCircleElement
-PASS SVGCircleElement must be primary interface of circle
-PASS Stringification of circle
-PASS SVGCircleElement interface: circle must inherit property "cx" with the proper type
-PASS SVGCircleElement interface: circle must inherit property "cy" with the proper type
-PASS SVGCircleElement interface: circle must inherit property "r" with the proper type
-PASS SVGGeometryElement interface: circle must inherit property "pathLength" with the proper type
-PASS SVGGeometryElement interface: circle must inherit property "isPointInFill(DOMPoint)" with the proper type
-PASS SVGGeometryElement interface: calling isPointInFill(DOMPoint) on circle with too few arguments must throw TypeError
-PASS SVGGeometryElement interface: circle must inherit property "isPointInStroke(DOMPoint)" with the proper type
-PASS SVGGeometryElement interface: calling isPointInStroke(DOMPoint) on circle with too few arguments must throw TypeError
-PASS SVGGeometryElement interface: circle must inherit property "getTotalLength()" with the proper type
-PASS SVGGeometryElement interface: circle must inherit property "getPointAtLength(float)" with the proper type
-PASS SVGGeometryElement interface: calling getPointAtLength(float) on circle with too few arguments must throw TypeError
-PASS SVGGraphicsElement interface: circle must inherit property "transform" with the proper type
-PASS SVGGraphicsElement interface: circle must inherit property "getBBox(SVGBoundingBoxOptions)" with the proper type
-PASS SVGGraphicsElement interface: calling getBBox(SVGBoundingBoxOptions) on circle with too few arguments must throw TypeError
-PASS SVGGraphicsElement interface: circle must inherit property "getCTM()" with the proper type
-PASS SVGGraphicsElement interface: circle must inherit property "getScreenCTM()" with the proper type
-PASS SVGGraphicsElement interface: circle must inherit property "requiredExtensions" with the proper type
-PASS SVGGraphicsElement interface: circle must inherit property "systemLanguage" with the proper type
-PASS SVGElement interface: circle must inherit property "className" with the proper type
-PASS SVGElement interface: circle must inherit property "dataset" with the proper type
-PASS SVGElement interface: circle must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: circle must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: circle must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: circle must inherit property "focus()" with the proper type
-PASS SVGElement interface: circle must inherit property "blur()" with the proper type
-PASS SVGEllipseElement interface: existence and properties of interface object
-PASS SVGEllipseElement interface object length
-PASS SVGEllipseElement interface object name
-PASS SVGEllipseElement interface: existence and properties of interface prototype object
-PASS SVGEllipseElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGEllipseElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGEllipseElement interface: attribute cx
-PASS Unscopable handled correctly for cx property on SVGEllipseElement
-PASS SVGEllipseElement interface: attribute cy
-PASS Unscopable handled correctly for cy property on SVGEllipseElement
-PASS SVGEllipseElement interface: attribute rx
-PASS Unscopable handled correctly for rx property on SVGEllipseElement
-PASS SVGEllipseElement interface: attribute ry
-PASS Unscopable handled correctly for ry property on SVGEllipseElement
-PASS SVGEllipseElement must be primary interface of ellipse
-PASS Stringification of ellipse
-PASS SVGEllipseElement interface: ellipse must inherit property "cx" with the proper type
-PASS SVGEllipseElement interface: ellipse must inherit property "cy" with the proper type
-PASS SVGEllipseElement interface: ellipse must inherit property "rx" with the proper type
-PASS SVGEllipseElement interface: ellipse must inherit property "ry" with the proper type
-PASS SVGGeometryElement interface: ellipse must inherit property "pathLength" with the proper type
-PASS SVGGeometryElement interface: ellipse must inherit property "isPointInFill(DOMPoint)" with the proper type
-PASS SVGGeometryElement interface: calling isPointInFill(DOMPoint) on ellipse with too few arguments must throw TypeError
-PASS SVGGeometryElement interface: ellipse must inherit property "isPointInStroke(DOMPoint)" with the proper type
-PASS SVGGeometryElement interface: calling isPointInStroke(DOMPoint) on ellipse with too few arguments must throw TypeError
-PASS SVGGeometryElement interface: ellipse must inherit property "getTotalLength()" with the proper type
-PASS SVGGeometryElement interface: ellipse must inherit property "getPointAtLength(float)" with the proper type
-PASS SVGGeometryElement interface: calling getPointAtLength(float) on ellipse with too few arguments must throw TypeError
-PASS SVGGraphicsElement interface: ellipse must inherit property "transform" with the proper type
-PASS SVGGraphicsElement interface: ellipse must inherit property "getBBox(SVGBoundingBoxOptions)" with the proper type
-PASS SVGGraphicsElement interface: calling getBBox(SVGBoundingBoxOptions) on ellipse with too few arguments must throw TypeError
-PASS SVGGraphicsElement interface: ellipse must inherit property "getCTM()" with the proper type
-PASS SVGGraphicsElement interface: ellipse must inherit property "getScreenCTM()" with the proper type
-PASS SVGGraphicsElement interface: ellipse must inherit property "requiredExtensions" with the proper type
-PASS SVGGraphicsElement interface: ellipse must inherit property "systemLanguage" with the proper type
-PASS SVGElement interface: ellipse must inherit property "className" with the proper type
-PASS SVGElement interface: ellipse must inherit property "dataset" with the proper type
-PASS SVGElement interface: ellipse must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: ellipse must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: ellipse must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: ellipse must inherit property "focus()" with the proper type
-PASS SVGElement interface: ellipse must inherit property "blur()" with the proper type
-PASS SVGLineElement interface: existence and properties of interface object
-PASS SVGLineElement interface object length
-PASS SVGLineElement interface object name
-PASS SVGLineElement interface: existence and properties of interface prototype object
-PASS SVGLineElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGLineElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGLineElement interface: attribute x1
-PASS Unscopable handled correctly for x1 property on SVGLineElement
-PASS SVGLineElement interface: attribute y1
-PASS Unscopable handled correctly for y1 property on SVGLineElement
-PASS SVGLineElement interface: attribute x2
-PASS Unscopable handled correctly for x2 property on SVGLineElement
-PASS SVGLineElement interface: attribute y2
-PASS Unscopable handled correctly for y2 property on SVGLineElement
-PASS SVGLineElement must be primary interface of line
-PASS Stringification of line
-PASS SVGLineElement interface: line must inherit property "x1" with the proper type
-PASS SVGLineElement interface: line must inherit property "y1" with the proper type
-PASS SVGLineElement interface: line must inherit property "x2" with the proper type
-PASS SVGLineElement interface: line must inherit property "y2" with the proper type
-PASS SVGGeometryElement interface: line must inherit property "pathLength" with the proper type
-PASS SVGGeometryElement interface: line must inherit property "isPointInFill(DOMPoint)" with the proper type
-PASS SVGGeometryElement interface: calling isPointInFill(DOMPoint) on line with too few arguments must throw TypeError
-PASS SVGGeometryElement interface: line must inherit property "isPointInStroke(DOMPoint)" with the proper type
-PASS SVGGeometryElement interface: calling isPointInStroke(DOMPoint) on line with too few arguments must throw TypeError
-PASS SVGGeometryElement interface: line must inherit property "getTotalLength()" with the proper type
-PASS SVGGeometryElement interface: line must inherit property "getPointAtLength(float)" with the proper type
-PASS SVGGeometryElement interface: calling getPointAtLength(float) on line with too few arguments must throw TypeError
-PASS SVGGraphicsElement interface: line must inherit property "transform" with the proper type
-PASS SVGGraphicsElement interface: line must inherit property "getBBox(SVGBoundingBoxOptions)" with the proper type
-PASS SVGGraphicsElement interface: calling getBBox(SVGBoundingBoxOptions) on line with too few arguments must throw TypeError
-PASS SVGGraphicsElement interface: line must inherit property "getCTM()" with the proper type
-PASS SVGGraphicsElement interface: line must inherit property "getScreenCTM()" with the proper type
-PASS SVGGraphicsElement interface: line must inherit property "requiredExtensions" with the proper type
-PASS SVGGraphicsElement interface: line must inherit property "systemLanguage" with the proper type
-PASS SVGElement interface: line must inherit property "className" with the proper type
-PASS SVGElement interface: line must inherit property "dataset" with the proper type
-PASS SVGElement interface: line must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: line must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: line must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: line must inherit property "focus()" with the proper type
-PASS SVGElement interface: line must inherit property "blur()" with the proper type
-PASS SVGPointList interface: existence and properties of interface object
-PASS SVGPointList interface object length
-PASS SVGPointList interface object name
-PASS SVGPointList interface: existence and properties of interface prototype object
-PASS SVGPointList interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGPointList interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGPointList interface: attribute length
-PASS Unscopable handled correctly for length property on SVGPointList
-PASS SVGPointList interface: attribute numberOfItems
-PASS Unscopable handled correctly for numberOfItems property on SVGPointList
-PASS SVGPointList interface: operation clear()
-PASS Unscopable handled correctly for clear() on SVGPointList
-PASS SVGPointList interface: operation initialize(DOMPoint)
-PASS Unscopable handled correctly for initialize(DOMPoint) on SVGPointList
-PASS SVGPointList interface: operation getItem(unsigned long)
-PASS Unscopable handled correctly for getItem(unsigned long) on SVGPointList
-PASS SVGPointList interface: operation insertItemBefore(DOMPoint, unsigned long)
-PASS Unscopable handled correctly for insertItemBefore(DOMPoint, unsigned long) on SVGPointList
-PASS SVGPointList interface: operation replaceItem(DOMPoint, unsigned long)
-PASS Unscopable handled correctly for replaceItem(DOMPoint, unsigned long) on SVGPointList
-PASS SVGPointList interface: operation removeItem(unsigned long)
-PASS Unscopable handled correctly for removeItem(unsigned long) on SVGPointList
-PASS SVGPointList interface: operation appendItem(DOMPoint)
-PASS Unscopable handled correctly for appendItem(DOMPoint) on SVGPointList
-PASS SVGPointList must be primary interface of polygon.points
-PASS Stringification of polygon.points
-PASS SVGPointList interface: polygon.points must inherit property "length" with the proper type
-PASS SVGPointList interface: polygon.points must inherit property "numberOfItems" with the proper type
-PASS SVGPointList interface: polygon.points must inherit property "clear()" with the proper type
-PASS SVGPointList interface: polygon.points must inherit property "initialize(DOMPoint)" with the proper type
-PASS SVGPointList interface: calling initialize(DOMPoint) on polygon.points with too few arguments must throw TypeError
-PASS SVGPointList interface: polygon.points must inherit property "getItem(unsigned long)" with the proper type
-PASS SVGPointList interface: calling getItem(unsigned long) on polygon.points with too few arguments must throw TypeError
-PASS SVGPointList interface: polygon.points must inherit property "insertItemBefore(DOMPoint, unsigned long)" with the proper type
-PASS SVGPointList interface: calling insertItemBefore(DOMPoint, unsigned long) on polygon.points with too few arguments must throw TypeError
-PASS SVGPointList interface: polygon.points must inherit property "replaceItem(DOMPoint, unsigned long)" with the proper type
-PASS SVGPointList interface: calling replaceItem(DOMPoint, unsigned long) on polygon.points with too few arguments must throw TypeError
-PASS SVGPointList interface: polygon.points must inherit property "removeItem(unsigned long)" with the proper type
-PASS SVGPointList interface: calling removeItem(unsigned long) on polygon.points with too few arguments must throw TypeError
-PASS SVGPointList interface: polygon.points must inherit property "appendItem(DOMPoint)" with the proper type
-PASS SVGPointList interface: calling appendItem(DOMPoint) on polygon.points with too few arguments must throw TypeError
-PASS SVGPolylineElement interface: existence and properties of interface object
-PASS SVGPolylineElement interface object length
-PASS SVGPolylineElement interface object name
-PASS SVGPolylineElement interface: existence and properties of interface prototype object
-PASS SVGPolylineElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGPolylineElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGPolylineElement interface: attribute points
-PASS Unscopable handled correctly for points property on SVGPolylineElement
-PASS SVGPolylineElement interface: attribute animatedPoints
-PASS Unscopable handled correctly for animatedPoints property on SVGPolylineElement
-PASS SVGPolylineElement must be primary interface of polyline
-PASS Stringification of polyline
-PASS SVGPolylineElement interface: polyline must inherit property "points" with the proper type
-PASS SVGPolylineElement interface: polyline must inherit property "animatedPoints" with the proper type
-PASS SVGGeometryElement interface: polyline must inherit property "pathLength" with the proper type
-PASS SVGGeometryElement interface: polyline must inherit property "isPointInFill(DOMPoint)" with the proper type
-PASS SVGGeometryElement interface: calling isPointInFill(DOMPoint) on polyline with too few arguments must throw TypeError
-PASS SVGGeometryElement interface: polyline must inherit property "isPointInStroke(DOMPoint)" with the proper type
-PASS SVGGeometryElement interface: calling isPointInStroke(DOMPoint) on polyline with too few arguments must throw TypeError
-PASS SVGGeometryElement interface: polyline must inherit property "getTotalLength()" with the proper type
-PASS SVGGeometryElement interface: polyline must inherit property "getPointAtLength(float)" with the proper type
-PASS SVGGeometryElement interface: calling getPointAtLength(float) on polyline with too few arguments must throw TypeError
-PASS SVGGraphicsElement interface: polyline must inherit property "transform" with the proper type
-PASS SVGGraphicsElement interface: polyline must inherit property "getBBox(SVGBoundingBoxOptions)" with the proper type
-PASS SVGGraphicsElement interface: calling getBBox(SVGBoundingBoxOptions) on polyline with too few arguments must throw TypeError
-PASS SVGGraphicsElement interface: polyline must inherit property "getCTM()" with the proper type
-PASS SVGGraphicsElement interface: polyline must inherit property "getScreenCTM()" with the proper type
-PASS SVGGraphicsElement interface: polyline must inherit property "requiredExtensions" with the proper type
-PASS SVGGraphicsElement interface: polyline must inherit property "systemLanguage" with the proper type
-PASS SVGElement interface: polyline must inherit property "className" with the proper type
-PASS SVGElement interface: polyline must inherit property "dataset" with the proper type
-PASS SVGElement interface: polyline must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: polyline must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: polyline must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: polyline must inherit property "focus()" with the proper type
-PASS SVGElement interface: polyline must inherit property "blur()" with the proper type
-PASS SVGPolygonElement interface: existence and properties of interface object
-PASS SVGPolygonElement interface object length
-PASS SVGPolygonElement interface object name
-PASS SVGPolygonElement interface: existence and properties of interface prototype object
-PASS SVGPolygonElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGPolygonElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGPolygonElement interface: attribute points
-PASS Unscopable handled correctly for points property on SVGPolygonElement
-PASS SVGPolygonElement interface: attribute animatedPoints
-PASS Unscopable handled correctly for animatedPoints property on SVGPolygonElement
-PASS SVGPolygonElement must be primary interface of polygon
-PASS Stringification of polygon
-PASS SVGPolygonElement interface: polygon must inherit property "points" with the proper type
-PASS SVGPolygonElement interface: polygon must inherit property "animatedPoints" with the proper type
-PASS SVGGeometryElement interface: polygon must inherit property "pathLength" with the proper type
-PASS SVGGeometryElement interface: polygon must inherit property "isPointInFill(DOMPoint)" with the proper type
-PASS SVGGeometryElement interface: calling isPointInFill(DOMPoint) on polygon with too few arguments must throw TypeError
-PASS SVGGeometryElement interface: polygon must inherit property "isPointInStroke(DOMPoint)" with the proper type
-PASS SVGGeometryElement interface: calling isPointInStroke(DOMPoint) on polygon with too few arguments must throw TypeError
-PASS SVGGeometryElement interface: polygon must inherit property "getTotalLength()" with the proper type
-PASS SVGGeometryElement interface: polygon must inherit property "getPointAtLength(float)" with the proper type
-PASS SVGGeometryElement interface: calling getPointAtLength(float) on polygon with too few arguments must throw TypeError
-PASS SVGGraphicsElement interface: polygon must inherit property "transform" with the proper type
-PASS SVGGraphicsElement interface: polygon must inherit property "getBBox(SVGBoundingBoxOptions)" with the proper type
-PASS SVGGraphicsElement interface: calling getBBox(SVGBoundingBoxOptions) on polygon with too few arguments must throw TypeError
-PASS SVGGraphicsElement interface: polygon must inherit property "getCTM()" with the proper type
-PASS SVGGraphicsElement interface: polygon must inherit property "getScreenCTM()" with the proper type
-PASS SVGGraphicsElement interface: polygon must inherit property "requiredExtensions" with the proper type
-PASS SVGGraphicsElement interface: polygon must inherit property "systemLanguage" with the proper type
-PASS SVGElement interface: polygon must inherit property "className" with the proper type
-PASS SVGElement interface: polygon must inherit property "dataset" with the proper type
-PASS SVGElement interface: polygon must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: polygon must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: polygon must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: polygon must inherit property "focus()" with the proper type
-PASS SVGElement interface: polygon must inherit property "blur()" with the proper type
-PASS SVGTextContentElement interface: existence and properties of interface object
-PASS SVGTextContentElement interface object length
-PASS SVGTextContentElement interface object name
-PASS SVGTextContentElement interface: existence and properties of interface prototype object
-PASS SVGTextContentElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGTextContentElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGTextContentElement interface: constant LENGTHADJUST_UNKNOWN on interface object
-PASS SVGTextContentElement interface: constant LENGTHADJUST_UNKNOWN on interface prototype object
-PASS SVGTextContentElement interface: constant LENGTHADJUST_SPACING on interface object
-PASS SVGTextContentElement interface: constant LENGTHADJUST_SPACING on interface prototype object
-PASS SVGTextContentElement interface: constant LENGTHADJUST_SPACINGANDGLYPHS on interface object
-PASS SVGTextContentElement interface: constant LENGTHADJUST_SPACINGANDGLYPHS on interface prototype object
-PASS SVGTextContentElement interface: attribute textLength
-PASS Unscopable handled correctly for textLength property on SVGTextContentElement
-PASS SVGTextContentElement interface: attribute lengthAdjust
-PASS Unscopable handled correctly for lengthAdjust property on SVGTextContentElement
-PASS SVGTextContentElement interface: operation getNumberOfChars()
-PASS Unscopable handled correctly for getNumberOfChars() on SVGTextContentElement
-PASS SVGTextContentElement interface: operation getComputedTextLength()
-PASS Unscopable handled correctly for getComputedTextLength() on SVGTextContentElement
-PASS SVGTextContentElement interface: operation getSubStringLength(unsigned long, unsigned long)
-PASS Unscopable handled correctly for getSubStringLength(unsigned long, unsigned long) on SVGTextContentElement
-PASS SVGTextContentElement interface: operation getStartPositionOfChar(unsigned long)
-PASS Unscopable handled correctly for getStartPositionOfChar(unsigned long) on SVGTextContentElement
-PASS SVGTextContentElement interface: operation getEndPositionOfChar(unsigned long)
-PASS Unscopable handled correctly for getEndPositionOfChar(unsigned long) on SVGTextContentElement
-PASS SVGTextContentElement interface: operation getExtentOfChar(unsigned long)
-PASS Unscopable handled correctly for getExtentOfChar(unsigned long) on SVGTextContentElement
-PASS SVGTextContentElement interface: operation getRotationOfChar(unsigned long)
-PASS Unscopable handled correctly for getRotationOfChar(unsigned long) on SVGTextContentElement
-PASS SVGTextContentElement interface: operation getCharNumAtPosition(DOMPoint)
-PASS Unscopable handled correctly for getCharNumAtPosition(DOMPoint) on SVGTextContentElement
-PASS SVGTextContentElement interface: operation selectSubString(unsigned long, unsigned long)
-PASS Unscopable handled correctly for selectSubString(unsigned long, unsigned long) on SVGTextContentElement
-PASS SVGTextPositioningElement interface: existence and properties of interface object
-PASS SVGTextPositioningElement interface object length
-PASS SVGTextPositioningElement interface object name
-PASS SVGTextPositioningElement interface: existence and properties of interface prototype object
-PASS SVGTextPositioningElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGTextPositioningElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGTextPositioningElement interface: attribute x
-PASS Unscopable handled correctly for x property on SVGTextPositioningElement
-PASS SVGTextPositioningElement interface: attribute y
-PASS Unscopable handled correctly for y property on SVGTextPositioningElement
-PASS SVGTextPositioningElement interface: attribute dx
-PASS Unscopable handled correctly for dx property on SVGTextPositioningElement
-PASS SVGTextPositioningElement interface: attribute dy
-PASS Unscopable handled correctly for dy property on SVGTextPositioningElement
-PASS SVGTextPositioningElement interface: attribute rotate
-PASS Unscopable handled correctly for rotate property on SVGTextPositioningElement
-PASS SVGTextElement interface: existence and properties of interface object
-PASS SVGTextElement interface object length
-PASS SVGTextElement interface object name
-PASS SVGTextElement interface: existence and properties of interface prototype object
-PASS SVGTextElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGTextElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGTextElement must be primary interface of text
-PASS Stringification of text
-PASS SVGTextPositioningElement interface: text must inherit property "x" with the proper type
-PASS SVGTextPositioningElement interface: text must inherit property "y" with the proper type
-PASS SVGTextPositioningElement interface: text must inherit property "dx" with the proper type
-PASS SVGTextPositioningElement interface: text must inherit property "dy" with the proper type
-PASS SVGTextPositioningElement interface: text must inherit property "rotate" with the proper type
-PASS SVGTextContentElement interface: text must inherit property "LENGTHADJUST_UNKNOWN" with the proper type
-PASS SVGTextContentElement interface: text must inherit property "LENGTHADJUST_SPACING" with the proper type
-PASS SVGTextContentElement interface: text must inherit property "LENGTHADJUST_SPACINGANDGLYPHS" with the proper type
-PASS SVGTextContentElement interface: text must inherit property "textLength" with the proper type
-PASS SVGTextContentElement interface: text must inherit property "lengthAdjust" with the proper type
-PASS SVGTextContentElement interface: text must inherit property "getNumberOfChars()" with the proper type
-PASS SVGTextContentElement interface: text must inherit property "getComputedTextLength()" with the proper type
-PASS SVGTextContentElement interface: text must inherit property "getSubStringLength(unsigned long, unsigned long)" with the proper type
-PASS SVGTextContentElement interface: calling getSubStringLength(unsigned long, unsigned long) on text with too few arguments must throw TypeError
-PASS SVGTextContentElement interface: text must inherit property "getStartPositionOfChar(unsigned long)" with the proper type
-PASS SVGTextContentElement interface: calling getStartPositionOfChar(unsigned long) on text with too few arguments must throw TypeError
-PASS SVGTextContentElement interface: text must inherit property "getEndPositionOfChar(unsigned long)" with the proper type
-PASS SVGTextContentElement interface: calling getEndPositionOfChar(unsigned long) on text with too few arguments must throw TypeError
-PASS SVGTextContentElement interface: text must inherit property "getExtentOfChar(unsigned long)" with the proper type
-PASS SVGTextContentElement interface: calling getExtentOfChar(unsigned long) on text with too few arguments must throw TypeError
-PASS SVGTextContentElement interface: text must inherit property "getRotationOfChar(unsigned long)" with the proper type
-PASS SVGTextContentElement interface: calling getRotationOfChar(unsigned long) on text with too few arguments must throw TypeError
-PASS SVGTextContentElement interface: text must inherit property "getCharNumAtPosition(DOMPoint)" with the proper type
-PASS SVGTextContentElement interface: calling getCharNumAtPosition(DOMPoint) on text with too few arguments must throw TypeError
-PASS SVGTextContentElement interface: text must inherit property "selectSubString(unsigned long, unsigned long)" with the proper type
-PASS SVGTextContentElement interface: calling selectSubString(unsigned long, unsigned long) on text with too few arguments must throw TypeError
-PASS SVGGraphicsElement interface: text must inherit property "transform" with the proper type
-PASS SVGGraphicsElement interface: text must inherit property "getBBox(SVGBoundingBoxOptions)" with the proper type
-PASS SVGGraphicsElement interface: calling getBBox(SVGBoundingBoxOptions) on text with too few arguments must throw TypeError
-PASS SVGGraphicsElement interface: text must inherit property "getCTM()" with the proper type
-PASS SVGGraphicsElement interface: text must inherit property "getScreenCTM()" with the proper type
-PASS SVGGraphicsElement interface: text must inherit property "requiredExtensions" with the proper type
-PASS SVGGraphicsElement interface: text must inherit property "systemLanguage" with the proper type
-PASS SVGElement interface: text must inherit property "className" with the proper type
-PASS SVGElement interface: text must inherit property "dataset" with the proper type
-PASS SVGElement interface: text must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: text must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: text must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: text must inherit property "focus()" with the proper type
-PASS SVGElement interface: text must inherit property "blur()" with the proper type
-PASS SVGTSpanElement interface: existence and properties of interface object
-PASS SVGTSpanElement interface object length
-PASS SVGTSpanElement interface object name
-PASS SVGTSpanElement interface: existence and properties of interface prototype object
-PASS SVGTSpanElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGTSpanElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGTSpanElement must be primary interface of tspan
-PASS Stringification of tspan
-PASS SVGTextPositioningElement interface: tspan must inherit property "x" with the proper type
-PASS SVGTextPositioningElement interface: tspan must inherit property "y" with the proper type
-PASS SVGTextPositioningElement interface: tspan must inherit property "dx" with the proper type
-PASS SVGTextPositioningElement interface: tspan must inherit property "dy" with the proper type
-PASS SVGTextPositioningElement interface: tspan must inherit property "rotate" with the proper type
-PASS SVGTextContentElement interface: tspan must inherit property "LENGTHADJUST_UNKNOWN" with the proper type
-PASS SVGTextContentElement interface: tspan must inherit property "LENGTHADJUST_SPACING" with the proper type
-PASS SVGTextContentElement interface: tspan must inherit property "LENGTHADJUST_SPACINGANDGLYPHS" with the proper type
-PASS SVGTextContentElement interface: tspan must inherit property "textLength" with the proper type
-PASS SVGTextContentElement interface: tspan must inherit property "lengthAdjust" with the proper type
-PASS SVGTextContentElement interface: tspan must inherit property "getNumberOfChars()" with the proper type
-PASS SVGTextContentElement interface: tspan must inherit property "getComputedTextLength()" with the proper type
-PASS SVGTextContentElement interface: tspan must inherit property "getSubStringLength(unsigned long, unsigned long)" with the proper type
-PASS SVGTextContentElement interface: calling getSubStringLength(unsigned long, unsigned long) on tspan with too few arguments must throw TypeError
-PASS SVGTextContentElement interface: tspan must inherit property "getStartPositionOfChar(unsigned long)" with the proper type
-PASS SVGTextContentElement interface: calling getStartPositionOfChar(unsigned long) on tspan with too few arguments must throw TypeError
-PASS SVGTextContentElement interface: tspan must inherit property "getEndPositionOfChar(unsigned long)" with the proper type
-PASS SVGTextContentElement interface: calling getEndPositionOfChar(unsigned long) on tspan with too few arguments must throw TypeError
-PASS SVGTextContentElement interface: tspan must inherit property "getExtentOfChar(unsigned long)" with the proper type
-PASS SVGTextContentElement interface: calling getExtentOfChar(unsigned long) on tspan with too few arguments must throw TypeError
-PASS SVGTextContentElement interface: tspan must inherit property "getRotationOfChar(unsigned long)" with the proper type
-PASS SVGTextContentElement interface: calling getRotationOfChar(unsigned long) on tspan with too few arguments must throw TypeError
-PASS SVGTextContentElement interface: tspan must inherit property "getCharNumAtPosition(DOMPoint)" with the proper type
-PASS SVGTextContentElement interface: calling getCharNumAtPosition(DOMPoint) on tspan with too few arguments must throw TypeError
-PASS SVGTextContentElement interface: tspan must inherit property "selectSubString(unsigned long, unsigned long)" with the proper type
-PASS SVGTextContentElement interface: calling selectSubString(unsigned long, unsigned long) on tspan with too few arguments must throw TypeError
-PASS SVGGraphicsElement interface: tspan must inherit property "transform" with the proper type
-PASS SVGGraphicsElement interface: tspan must inherit property "getBBox(SVGBoundingBoxOptions)" with the proper type
-PASS SVGGraphicsElement interface: calling getBBox(SVGBoundingBoxOptions) on tspan with too few arguments must throw TypeError
-PASS SVGGraphicsElement interface: tspan must inherit property "getCTM()" with the proper type
-PASS SVGGraphicsElement interface: tspan must inherit property "getScreenCTM()" with the proper type
-PASS SVGGraphicsElement interface: tspan must inherit property "requiredExtensions" with the proper type
-PASS SVGGraphicsElement interface: tspan must inherit property "systemLanguage" with the proper type
-PASS SVGElement interface: tspan must inherit property "className" with the proper type
-PASS SVGElement interface: tspan must inherit property "dataset" with the proper type
-PASS SVGElement interface: tspan must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: tspan must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: tspan must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: tspan must inherit property "focus()" with the proper type
-PASS SVGElement interface: tspan must inherit property "blur()" with the proper type
-PASS SVGTextPathElement interface: existence and properties of interface object
-PASS SVGTextPathElement interface object length
-PASS SVGTextPathElement interface object name
-PASS SVGTextPathElement interface: existence and properties of interface prototype object
-PASS SVGTextPathElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGTextPathElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGTextPathElement interface: constant TEXTPATH_METHODTYPE_UNKNOWN on interface object
-PASS SVGTextPathElement interface: constant TEXTPATH_METHODTYPE_UNKNOWN on interface prototype object
-PASS SVGTextPathElement interface: constant TEXTPATH_METHODTYPE_ALIGN on interface object
-PASS SVGTextPathElement interface: constant TEXTPATH_METHODTYPE_ALIGN on interface prototype object
-PASS SVGTextPathElement interface: constant TEXTPATH_METHODTYPE_STRETCH on interface object
-PASS SVGTextPathElement interface: constant TEXTPATH_METHODTYPE_STRETCH on interface prototype object
-PASS SVGTextPathElement interface: constant TEXTPATH_SPACINGTYPE_UNKNOWN on interface object
-PASS SVGTextPathElement interface: constant TEXTPATH_SPACINGTYPE_UNKNOWN on interface prototype object
-PASS SVGTextPathElement interface: constant TEXTPATH_SPACINGTYPE_AUTO on interface object
-PASS SVGTextPathElement interface: constant TEXTPATH_SPACINGTYPE_AUTO on interface prototype object
-PASS SVGTextPathElement interface: constant TEXTPATH_SPACINGTYPE_EXACT on interface object
-PASS SVGTextPathElement interface: constant TEXTPATH_SPACINGTYPE_EXACT on interface prototype object
-PASS SVGTextPathElement interface: attribute startOffset
-PASS Unscopable handled correctly for startOffset property on SVGTextPathElement
-PASS SVGTextPathElement interface: attribute method
-PASS Unscopable handled correctly for method property on SVGTextPathElement
-PASS SVGTextPathElement interface: attribute spacing
-PASS Unscopable handled correctly for spacing property on SVGTextPathElement
-PASS SVGTextPathElement interface: attribute href
-PASS Unscopable handled correctly for href property on SVGTextPathElement
-PASS SVGTextPathElement must be primary interface of textPath
-PASS Stringification of textPath
-PASS SVGTextPathElement interface: textPath must inherit property "TEXTPATH_METHODTYPE_UNKNOWN" with the proper type
-PASS SVGTextPathElement interface: textPath must inherit property "TEXTPATH_METHODTYPE_ALIGN" with the proper type
-PASS SVGTextPathElement interface: textPath must inherit property "TEXTPATH_METHODTYPE_STRETCH" with the proper type
-PASS SVGTextPathElement interface: textPath must inherit property "TEXTPATH_SPACINGTYPE_UNKNOWN" with the proper type
-PASS SVGTextPathElement interface: textPath must inherit property "TEXTPATH_SPACINGTYPE_AUTO" with the proper type
-PASS SVGTextPathElement interface: textPath must inherit property "TEXTPATH_SPACINGTYPE_EXACT" with the proper type
-PASS SVGTextPathElement interface: textPath must inherit property "startOffset" with the proper type
-PASS SVGTextPathElement interface: textPath must inherit property "method" with the proper type
-PASS SVGTextPathElement interface: textPath must inherit property "spacing" with the proper type
-PASS SVGTextPathElement interface: textPath must inherit property "href" with the proper type
-PASS SVGTextContentElement interface: textPath must inherit property "LENGTHADJUST_UNKNOWN" with the proper type
-PASS SVGTextContentElement interface: textPath must inherit property "LENGTHADJUST_SPACING" with the proper type
-PASS SVGTextContentElement interface: textPath must inherit property "LENGTHADJUST_SPACINGANDGLYPHS" with the proper type
-PASS SVGTextContentElement interface: textPath must inherit property "textLength" with the proper type
-PASS SVGTextContentElement interface: textPath must inherit property "lengthAdjust" with the proper type
-PASS SVGTextContentElement interface: textPath must inherit property "getNumberOfChars()" with the proper type
-PASS SVGTextContentElement interface: textPath must inherit property "getComputedTextLength()" with the proper type
-PASS SVGTextContentElement interface: textPath must inherit property "getSubStringLength(unsigned long, unsigned long)" with the proper type
-PASS SVGTextContentElement interface: calling getSubStringLength(unsigned long, unsigned long) on textPath with too few arguments must throw TypeError
-PASS SVGTextContentElement interface: textPath must inherit property "getStartPositionOfChar(unsigned long)" with the proper type
-PASS SVGTextContentElement interface: calling getStartPositionOfChar(unsigned long) on textPath with too few arguments must throw TypeError
-PASS SVGTextContentElement interface: textPath must inherit property "getEndPositionOfChar(unsigned long)" with the proper type
-PASS SVGTextContentElement interface: calling getEndPositionOfChar(unsigned long) on textPath with too few arguments must throw TypeError
-PASS SVGTextContentElement interface: textPath must inherit property "getExtentOfChar(unsigned long)" with the proper type
-PASS SVGTextContentElement interface: calling getExtentOfChar(unsigned long) on textPath with too few arguments must throw TypeError
-PASS SVGTextContentElement interface: textPath must inherit property "getRotationOfChar(unsigned long)" with the proper type
-PASS SVGTextContentElement interface: calling getRotationOfChar(unsigned long) on textPath with too few arguments must throw TypeError
-PASS SVGTextContentElement interface: textPath must inherit property "getCharNumAtPosition(DOMPoint)" with the proper type
-PASS SVGTextContentElement interface: calling getCharNumAtPosition(DOMPoint) on textPath with too few arguments must throw TypeError
-PASS SVGTextContentElement interface: textPath must inherit property "selectSubString(unsigned long, unsigned long)" with the proper type
-PASS SVGTextContentElement interface: calling selectSubString(unsigned long, unsigned long) on textPath with too few arguments must throw TypeError
-PASS SVGGraphicsElement interface: textPath must inherit property "transform" with the proper type
-PASS SVGGraphicsElement interface: textPath must inherit property "getBBox(SVGBoundingBoxOptions)" with the proper type
-PASS SVGGraphicsElement interface: calling getBBox(SVGBoundingBoxOptions) on textPath with too few arguments must throw TypeError
-PASS SVGGraphicsElement interface: textPath must inherit property "getCTM()" with the proper type
-PASS SVGGraphicsElement interface: textPath must inherit property "getScreenCTM()" with the proper type
-PASS SVGGraphicsElement interface: textPath must inherit property "requiredExtensions" with the proper type
-PASS SVGGraphicsElement interface: textPath must inherit property "systemLanguage" with the proper type
-PASS SVGElement interface: textPath must inherit property "className" with the proper type
-PASS SVGElement interface: textPath must inherit property "dataset" with the proper type
-PASS SVGElement interface: textPath must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: textPath must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: textPath must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: textPath must inherit property "focus()" with the proper type
-PASS SVGElement interface: textPath must inherit property "blur()" with the proper type
-PASS SVGImageElement interface: existence and properties of interface object
-PASS SVGImageElement interface object length
-PASS SVGImageElement interface object name
-PASS SVGImageElement interface: existence and properties of interface prototype object
-PASS SVGImageElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGImageElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGImageElement interface: attribute x
-PASS Unscopable handled correctly for x property on SVGImageElement
-PASS SVGImageElement interface: attribute y
-PASS Unscopable handled correctly for y property on SVGImageElement
-PASS SVGImageElement interface: attribute width
-PASS Unscopable handled correctly for width property on SVGImageElement
-PASS SVGImageElement interface: attribute height
-PASS Unscopable handled correctly for height property on SVGImageElement
-PASS SVGImageElement interface: attribute preserveAspectRatio
-PASS Unscopable handled correctly for preserveAspectRatio property on SVGImageElement
-FAIL SVGImageElement interface: attribute crossOrigin assert_true: The prototype object must have a property "crossOrigin" expected true got false
-PASS Unscopable handled correctly for crossOrigin property on SVGImageElement
-PASS SVGImageElement interface: attribute href
-PASS Unscopable handled correctly for href property on SVGImageElement
-PASS SVGImageElement must be primary interface of image
-PASS Stringification of image
-PASS SVGImageElement interface: image must inherit property "x" with the proper type
-PASS SVGImageElement interface: image must inherit property "y" with the proper type
-PASS SVGImageElement interface: image must inherit property "width" with the proper type
-PASS SVGImageElement interface: image must inherit property "height" with the proper type
-PASS SVGImageElement interface: image must inherit property "preserveAspectRatio" with the proper type
-FAIL SVGImageElement interface: image must inherit property "crossOrigin" with the proper type assert_inherits: property "crossOrigin" not found in prototype chain
-PASS SVGImageElement interface: image must inherit property "href" with the proper type
-PASS SVGGraphicsElement interface: image must inherit property "transform" with the proper type
-PASS SVGGraphicsElement interface: image must inherit property "getBBox(SVGBoundingBoxOptions)" with the proper type
-PASS SVGGraphicsElement interface: calling getBBox(SVGBoundingBoxOptions) on image with too few arguments must throw TypeError
-PASS SVGGraphicsElement interface: image must inherit property "getCTM()" with the proper type
-PASS SVGGraphicsElement interface: image must inherit property "getScreenCTM()" with the proper type
-PASS SVGGraphicsElement interface: image must inherit property "requiredExtensions" with the proper type
-PASS SVGGraphicsElement interface: image must inherit property "systemLanguage" with the proper type
-PASS SVGElement interface: image must inherit property "className" with the proper type
-PASS SVGElement interface: image must inherit property "dataset" with the proper type
-PASS SVGElement interface: image must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: image must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: image must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: image must inherit property "focus()" with the proper type
-PASS SVGElement interface: image must inherit property "blur()" with the proper type
-PASS SVGForeignObjectElement interface: existence and properties of interface object
-PASS SVGForeignObjectElement interface object length
-PASS SVGForeignObjectElement interface object name
-PASS SVGForeignObjectElement interface: existence and properties of interface prototype object
-PASS SVGForeignObjectElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGForeignObjectElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGForeignObjectElement interface: attribute x
-PASS Unscopable handled correctly for x property on SVGForeignObjectElement
-PASS SVGForeignObjectElement interface: attribute y
-PASS Unscopable handled correctly for y property on SVGForeignObjectElement
-PASS SVGForeignObjectElement interface: attribute width
-PASS Unscopable handled correctly for width property on SVGForeignObjectElement
-PASS SVGForeignObjectElement interface: attribute height
-PASS Unscopable handled correctly for height property on SVGForeignObjectElement
-PASS SVGForeignObjectElement must be primary interface of foreignObject
-PASS Stringification of foreignObject
-PASS SVGForeignObjectElement interface: foreignObject must inherit property "x" with the proper type
-PASS SVGForeignObjectElement interface: foreignObject must inherit property "y" with the proper type
-PASS SVGForeignObjectElement interface: foreignObject must inherit property "width" with the proper type
-PASS SVGForeignObjectElement interface: foreignObject must inherit property "height" with the proper type
-PASS SVGGraphicsElement interface: foreignObject must inherit property "transform" with the proper type
-PASS SVGGraphicsElement interface: foreignObject must inherit property "getBBox(SVGBoundingBoxOptions)" with the proper type
-PASS SVGGraphicsElement interface: calling getBBox(SVGBoundingBoxOptions) on foreignObject with too few arguments must throw TypeError
-PASS SVGGraphicsElement interface: foreignObject must inherit property "getCTM()" with the proper type
-PASS SVGGraphicsElement interface: foreignObject must inherit property "getScreenCTM()" with the proper type
-PASS SVGGraphicsElement interface: foreignObject must inherit property "requiredExtensions" with the proper type
-PASS SVGGraphicsElement interface: foreignObject must inherit property "systemLanguage" with the proper type
-PASS SVGElement interface: foreignObject must inherit property "className" with the proper type
-PASS SVGElement interface: foreignObject must inherit property "dataset" with the proper type
-PASS SVGElement interface: foreignObject must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: foreignObject must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: foreignObject must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: foreignObject must inherit property "focus()" with the proper type
-PASS SVGElement interface: foreignObject must inherit property "blur()" with the proper type
-PASS SVGMarkerElement interface: existence and properties of interface object
-PASS SVGMarkerElement interface object length
-PASS SVGMarkerElement interface object name
-PASS SVGMarkerElement interface: existence and properties of interface prototype object
-PASS SVGMarkerElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGMarkerElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGMarkerElement interface: constant SVG_MARKERUNITS_UNKNOWN on interface object
-PASS SVGMarkerElement interface: constant SVG_MARKERUNITS_UNKNOWN on interface prototype object
-PASS SVGMarkerElement interface: constant SVG_MARKERUNITS_USERSPACEONUSE on interface object
-PASS SVGMarkerElement interface: constant SVG_MARKERUNITS_USERSPACEONUSE on interface prototype object
-PASS SVGMarkerElement interface: constant SVG_MARKERUNITS_STROKEWIDTH on interface object
-PASS SVGMarkerElement interface: constant SVG_MARKERUNITS_STROKEWIDTH on interface prototype object
-PASS SVGMarkerElement interface: constant SVG_MARKER_ORIENT_UNKNOWN on interface object
-PASS SVGMarkerElement interface: constant SVG_MARKER_ORIENT_UNKNOWN on interface prototype object
-PASS SVGMarkerElement interface: constant SVG_MARKER_ORIENT_AUTO on interface object
-PASS SVGMarkerElement interface: constant SVG_MARKER_ORIENT_AUTO on interface prototype object
-PASS SVGMarkerElement interface: constant SVG_MARKER_ORIENT_ANGLE on interface object
-PASS SVGMarkerElement interface: constant SVG_MARKER_ORIENT_ANGLE on interface prototype object
-PASS SVGMarkerElement interface: attribute refX
-PASS Unscopable handled correctly for refX property on SVGMarkerElement
-PASS SVGMarkerElement interface: attribute refY
-PASS Unscopable handled correctly for refY property on SVGMarkerElement
-PASS SVGMarkerElement interface: attribute markerUnits
-PASS Unscopable handled correctly for markerUnits property on SVGMarkerElement
-PASS SVGMarkerElement interface: attribute markerWidth
-PASS Unscopable handled correctly for markerWidth property on SVGMarkerElement
-PASS SVGMarkerElement interface: attribute markerHeight
-PASS Unscopable handled correctly for markerHeight property on SVGMarkerElement
-PASS SVGMarkerElement interface: attribute orientType
-PASS Unscopable handled correctly for orientType property on SVGMarkerElement
-PASS SVGMarkerElement interface: attribute orientAngle
-PASS Unscopable handled correctly for orientAngle property on SVGMarkerElement
-FAIL SVGMarkerElement interface: attribute orient assert_true: The prototype object must have a property "orient" expected true got false
-PASS Unscopable handled correctly for orient property on SVGMarkerElement
-PASS SVGMarkerElement interface: operation setOrientToAuto()
-PASS Unscopable handled correctly for setOrientToAuto() on SVGMarkerElement
-PASS SVGMarkerElement interface: operation setOrientToAngle(SVGAngle)
-PASS Unscopable handled correctly for setOrientToAngle(SVGAngle) on SVGMarkerElement
-PASS SVGMarkerElement interface: attribute viewBox
-PASS Unscopable handled correctly for viewBox property on SVGMarkerElement
-PASS SVGMarkerElement interface: attribute preserveAspectRatio
-PASS Unscopable handled correctly for preserveAspectRatio property on SVGMarkerElement
-PASS SVGMarkerElement must be primary interface of marker
-PASS Stringification of marker
-PASS SVGMarkerElement interface: marker must inherit property "SVG_MARKERUNITS_UNKNOWN" with the proper type
-PASS SVGMarkerElement interface: marker must inherit property "SVG_MARKERUNITS_USERSPACEONUSE" with the proper type
-PASS SVGMarkerElement interface: marker must inherit property "SVG_MARKERUNITS_STROKEWIDTH" with the proper type
-PASS SVGMarkerElement interface: marker must inherit property "SVG_MARKER_ORIENT_UNKNOWN" with the proper type
-PASS SVGMarkerElement interface: marker must inherit property "SVG_MARKER_ORIENT_AUTO" with the proper type
-PASS SVGMarkerElement interface: marker must inherit property "SVG_MARKER_ORIENT_ANGLE" with the proper type
-PASS SVGMarkerElement interface: marker must inherit property "refX" with the proper type
-PASS SVGMarkerElement interface: marker must inherit property "refY" with the proper type
-PASS SVGMarkerElement interface: marker must inherit property "markerUnits" with the proper type
-PASS SVGMarkerElement interface: marker must inherit property "markerWidth" with the proper type
-PASS SVGMarkerElement interface: marker must inherit property "markerHeight" with the proper type
-PASS SVGMarkerElement interface: marker must inherit property "orientType" with the proper type
-PASS SVGMarkerElement interface: marker must inherit property "orientAngle" with the proper type
-FAIL SVGMarkerElement interface: marker must inherit property "orient" with the proper type assert_inherits: property "orient" not found in prototype chain
-PASS SVGMarkerElement interface: marker must inherit property "setOrientToAuto()" with the proper type
-PASS SVGMarkerElement interface: marker must inherit property "setOrientToAngle(SVGAngle)" with the proper type
-PASS SVGMarkerElement interface: calling setOrientToAngle(SVGAngle) on marker with too few arguments must throw TypeError
-PASS SVGMarkerElement interface: marker must inherit property "viewBox" with the proper type
-PASS SVGMarkerElement interface: marker must inherit property "preserveAspectRatio" with the proper type
-PASS SVGElement interface: marker must inherit property "className" with the proper type
-PASS SVGElement interface: marker must inherit property "dataset" with the proper type
-PASS SVGElement interface: marker must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: marker must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: marker must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: marker must inherit property "focus()" with the proper type
-PASS SVGElement interface: marker must inherit property "blur()" with the proper type
-FAIL SVGSolidcolorElement interface: existence and properties of interface object assert_own_property: self does not have own property "SVGSolidcolorElement" expected property "SVGSolidcolorElement" missing
-FAIL SVGSolidcolorElement interface object length assert_own_property: self does not have own property "SVGSolidcolorElement" expected property "SVGSolidcolorElement" missing
-FAIL SVGSolidcolorElement interface object name assert_own_property: self does not have own property "SVGSolidcolorElement" expected property "SVGSolidcolorElement" missing
-FAIL SVGSolidcolorElement interface: existence and properties of interface prototype object assert_own_property: self does not have own property "SVGSolidcolorElement" expected property "SVGSolidcolorElement" missing
-FAIL SVGSolidcolorElement interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "SVGSolidcolorElement" expected property "SVGSolidcolorElement" missing
-FAIL SVGSolidcolorElement interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "SVGSolidcolorElement" expected property "SVGSolidcolorElement" missing
-PASS SVGGradientElement interface: existence and properties of interface object
-PASS SVGGradientElement interface object length
-PASS SVGGradientElement interface object name
-PASS SVGGradientElement interface: existence and properties of interface prototype object
-PASS SVGGradientElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGGradientElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGGradientElement interface: constant SVG_SPREADMETHOD_UNKNOWN on interface object
-PASS SVGGradientElement interface: constant SVG_SPREADMETHOD_UNKNOWN on interface prototype object
-PASS SVGGradientElement interface: constant SVG_SPREADMETHOD_PAD on interface object
-PASS SVGGradientElement interface: constant SVG_SPREADMETHOD_PAD on interface prototype object
-PASS SVGGradientElement interface: constant SVG_SPREADMETHOD_REFLECT on interface object
-PASS SVGGradientElement interface: constant SVG_SPREADMETHOD_REFLECT on interface prototype object
-PASS SVGGradientElement interface: constant SVG_SPREADMETHOD_REPEAT on interface object
-PASS SVGGradientElement interface: constant SVG_SPREADMETHOD_REPEAT on interface prototype object
-PASS SVGGradientElement interface: attribute gradientUnits
-PASS Unscopable handled correctly for gradientUnits property on SVGGradientElement
-PASS SVGGradientElement interface: attribute gradientTransform
-PASS Unscopable handled correctly for gradientTransform property on SVGGradientElement
-PASS SVGGradientElement interface: attribute spreadMethod
-PASS Unscopable handled correctly for spreadMethod property on SVGGradientElement
-PASS SVGGradientElement interface: attribute href
-PASS Unscopable handled correctly for href property on SVGGradientElement
-PASS SVGLinearGradientElement interface: existence and properties of interface object
-PASS SVGLinearGradientElement interface object length
-PASS SVGLinearGradientElement interface object name
-PASS SVGLinearGradientElement interface: existence and properties of interface prototype object
-PASS SVGLinearGradientElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGLinearGradientElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGLinearGradientElement interface: attribute x1
-PASS Unscopable handled correctly for x1 property on SVGLinearGradientElement
-PASS SVGLinearGradientElement interface: attribute y1
-PASS Unscopable handled correctly for y1 property on SVGLinearGradientElement
-PASS SVGLinearGradientElement interface: attribute x2
-PASS Unscopable handled correctly for x2 property on SVGLinearGradientElement
-PASS SVGLinearGradientElement interface: attribute y2
-PASS Unscopable handled correctly for y2 property on SVGLinearGradientElement
-PASS SVGLinearGradientElement must be primary interface of linearGradient
-PASS Stringification of linearGradient
-PASS SVGLinearGradientElement interface: linearGradient must inherit property "x1" with the proper type
-PASS SVGLinearGradientElement interface: linearGradient must inherit property "y1" with the proper type
-PASS SVGLinearGradientElement interface: linearGradient must inherit property "x2" with the proper type
-PASS SVGLinearGradientElement interface: linearGradient must inherit property "y2" with the proper type
-PASS SVGGradientElement interface: linearGradient must inherit property "SVG_SPREADMETHOD_UNKNOWN" with the proper type
-PASS SVGGradientElement interface: linearGradient must inherit property "SVG_SPREADMETHOD_PAD" with the proper type
-PASS SVGGradientElement interface: linearGradient must inherit property "SVG_SPREADMETHOD_REFLECT" with the proper type
-PASS SVGGradientElement interface: linearGradient must inherit property "SVG_SPREADMETHOD_REPEAT" with the proper type
-PASS SVGGradientElement interface: linearGradient must inherit property "gradientUnits" with the proper type
-PASS SVGGradientElement interface: linearGradient must inherit property "gradientTransform" with the proper type
-PASS SVGGradientElement interface: linearGradient must inherit property "spreadMethod" with the proper type
-PASS SVGGradientElement interface: linearGradient must inherit property "href" with the proper type
-PASS SVGElement interface: linearGradient must inherit property "className" with the proper type
-PASS SVGElement interface: linearGradient must inherit property "dataset" with the proper type
-PASS SVGElement interface: linearGradient must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: linearGradient must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: linearGradient must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: linearGradient must inherit property "focus()" with the proper type
-PASS SVGElement interface: linearGradient must inherit property "blur()" with the proper type
-PASS SVGRadialGradientElement interface: existence and properties of interface object
-PASS SVGRadialGradientElement interface object length
-PASS SVGRadialGradientElement interface object name
-PASS SVGRadialGradientElement interface: existence and properties of interface prototype object
-PASS SVGRadialGradientElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGRadialGradientElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGRadialGradientElement interface: attribute cx
-PASS Unscopable handled correctly for cx property on SVGRadialGradientElement
-PASS SVGRadialGradientElement interface: attribute cy
-PASS Unscopable handled correctly for cy property on SVGRadialGradientElement
-PASS SVGRadialGradientElement interface: attribute r
-PASS Unscopable handled correctly for r property on SVGRadialGradientElement
-PASS SVGRadialGradientElement interface: attribute fx
-PASS Unscopable handled correctly for fx property on SVGRadialGradientElement
-PASS SVGRadialGradientElement interface: attribute fy
-PASS Unscopable handled correctly for fy property on SVGRadialGradientElement
-PASS SVGRadialGradientElement interface: attribute fr
-PASS Unscopable handled correctly for fr property on SVGRadialGradientElement
-PASS SVGRadialGradientElement must be primary interface of radialGradient
-PASS Stringification of radialGradient
-PASS SVGRadialGradientElement interface: radialGradient must inherit property "cx" with the proper type
-PASS SVGRadialGradientElement interface: radialGradient must inherit property "cy" with the proper type
-PASS SVGRadialGradientElement interface: radialGradient must inherit property "r" with the proper type
-PASS SVGRadialGradientElement interface: radialGradient must inherit property "fx" with the proper type
-PASS SVGRadialGradientElement interface: radialGradient must inherit property "fy" with the proper type
-PASS SVGRadialGradientElement interface: radialGradient must inherit property "fr" with the proper type
-PASS SVGGradientElement interface: radialGradient must inherit property "SVG_SPREADMETHOD_UNKNOWN" with the proper type
-PASS SVGGradientElement interface: radialGradient must inherit property "SVG_SPREADMETHOD_PAD" with the proper type
-PASS SVGGradientElement interface: radialGradient must inherit property "SVG_SPREADMETHOD_REFLECT" with the proper type
-PASS SVGGradientElement interface: radialGradient must inherit property "SVG_SPREADMETHOD_REPEAT" with the proper type
-PASS SVGGradientElement interface: radialGradient must inherit property "gradientUnits" with the proper type
-PASS SVGGradientElement interface: radialGradient must inherit property "gradientTransform" with the proper type
-PASS SVGGradientElement interface: radialGradient must inherit property "spreadMethod" with the proper type
-PASS SVGGradientElement interface: radialGradient must inherit property "href" with the proper type
-PASS SVGElement interface: radialGradient must inherit property "className" with the proper type
-PASS SVGElement interface: radialGradient must inherit property "dataset" with the proper type
-PASS SVGElement interface: radialGradient must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: radialGradient must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: radialGradient must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: radialGradient must inherit property "focus()" with the proper type
-PASS SVGElement interface: radialGradient must inherit property "blur()" with the proper type
-FAIL SVGMeshElement interface: existence and properties of interface object assert_own_property: self does not have own property "SVGMeshElement" expected property "SVGMeshElement" missing
-FAIL SVGMeshElement interface object length assert_own_property: self does not have own property "SVGMeshElement" expected property "SVGMeshElement" missing
-FAIL SVGMeshElement interface object name assert_own_property: self does not have own property "SVGMeshElement" expected property "SVGMeshElement" missing
-FAIL SVGMeshElement interface: existence and properties of interface prototype object assert_own_property: self does not have own property "SVGMeshElement" expected property "SVGMeshElement" missing
-FAIL SVGMeshElement interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "SVGMeshElement" expected property "SVGMeshElement" missing
-FAIL SVGMeshElement interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "SVGMeshElement" expected property "SVGMeshElement" missing
-FAIL SVGMeshrowElement interface: existence and properties of interface object assert_own_property: self does not have own property "SVGMeshrowElement" expected property "SVGMeshrowElement" missing
-FAIL SVGMeshrowElement interface object length assert_own_property: self does not have own property "SVGMeshrowElement" expected property "SVGMeshrowElement" missing
-FAIL SVGMeshrowElement interface object name assert_own_property: self does not have own property "SVGMeshrowElement" expected property "SVGMeshrowElement" missing
-FAIL SVGMeshrowElement interface: existence and properties of interface prototype object assert_own_property: self does not have own property "SVGMeshrowElement" expected property "SVGMeshrowElement" missing
-FAIL SVGMeshrowElement interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "SVGMeshrowElement" expected property "SVGMeshrowElement" missing
-FAIL SVGMeshrowElement interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "SVGMeshrowElement" expected property "SVGMeshrowElement" missing
-FAIL SVGMeshpatchElement interface: existence and properties of interface object assert_own_property: self does not have own property "SVGMeshpatchElement" expected property "SVGMeshpatchElement" missing
-FAIL SVGMeshpatchElement interface object length assert_own_property: self does not have own property "SVGMeshpatchElement" expected property "SVGMeshpatchElement" missing
-FAIL SVGMeshpatchElement interface object name assert_own_property: self does not have own property "SVGMeshpatchElement" expected property "SVGMeshpatchElement" missing
-FAIL SVGMeshpatchElement interface: existence and properties of interface prototype object assert_own_property: self does not have own property "SVGMeshpatchElement" expected property "SVGMeshpatchElement" missing
-FAIL SVGMeshpatchElement interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "SVGMeshpatchElement" expected property "SVGMeshpatchElement" missing
-FAIL SVGMeshpatchElement interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "SVGMeshpatchElement" expected property "SVGMeshpatchElement" missing
-PASS SVGStopElement interface: existence and properties of interface object
-PASS SVGStopElement interface object length
-PASS SVGStopElement interface object name
-PASS SVGStopElement interface: existence and properties of interface prototype object
-PASS SVGStopElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGStopElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGStopElement interface: attribute offset
-PASS Unscopable handled correctly for offset property on SVGStopElement
-PASS SVGStopElement must be primary interface of stop
-PASS Stringification of stop
-PASS SVGStopElement interface: stop must inherit property "offset" with the proper type
-PASS SVGElement interface: stop must inherit property "className" with the proper type
-PASS SVGElement interface: stop must inherit property "dataset" with the proper type
-PASS SVGElement interface: stop must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: stop must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: stop must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: stop must inherit property "focus()" with the proper type
-PASS SVGElement interface: stop must inherit property "blur()" with the proper type
-PASS SVGPatternElement interface: existence and properties of interface object
-PASS SVGPatternElement interface object length
-PASS SVGPatternElement interface object name
-PASS SVGPatternElement interface: existence and properties of interface prototype object
-PASS SVGPatternElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGPatternElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGPatternElement interface: attribute patternUnits
-PASS Unscopable handled correctly for patternUnits property on SVGPatternElement
-PASS SVGPatternElement interface: attribute patternContentUnits
-PASS Unscopable handled correctly for patternContentUnits property on SVGPatternElement
-PASS SVGPatternElement interface: attribute patternTransform
-PASS Unscopable handled correctly for patternTransform property on SVGPatternElement
-PASS SVGPatternElement interface: attribute x
-PASS Unscopable handled correctly for x property on SVGPatternElement
-PASS SVGPatternElement interface: attribute y
-PASS Unscopable handled correctly for y property on SVGPatternElement
-PASS SVGPatternElement interface: attribute width
-PASS Unscopable handled correctly for width property on SVGPatternElement
-PASS SVGPatternElement interface: attribute height
-PASS Unscopable handled correctly for height property on SVGPatternElement
-PASS SVGPatternElement interface: attribute viewBox
-PASS Unscopable handled correctly for viewBox property on SVGPatternElement
-PASS SVGPatternElement interface: attribute preserveAspectRatio
-PASS Unscopable handled correctly for preserveAspectRatio property on SVGPatternElement
-PASS SVGPatternElement interface: attribute href
-PASS Unscopable handled correctly for href property on SVGPatternElement
-PASS SVGPatternElement must be primary interface of pattern
-PASS Stringification of pattern
-PASS SVGPatternElement interface: pattern must inherit property "patternUnits" with the proper type
-PASS SVGPatternElement interface: pattern must inherit property "patternContentUnits" with the proper type
-PASS SVGPatternElement interface: pattern must inherit property "patternTransform" with the proper type
-PASS SVGPatternElement interface: pattern must inherit property "x" with the proper type
-PASS SVGPatternElement interface: pattern must inherit property "y" with the proper type
-PASS SVGPatternElement interface: pattern must inherit property "width" with the proper type
-PASS SVGPatternElement interface: pattern must inherit property "height" with the proper type
-PASS SVGPatternElement interface: pattern must inherit property "viewBox" with the proper type
-PASS SVGPatternElement interface: pattern must inherit property "preserveAspectRatio" with the proper type
-PASS SVGPatternElement interface: pattern must inherit property "href" with the proper type
-PASS SVGElement interface: pattern must inherit property "className" with the proper type
-PASS SVGElement interface: pattern must inherit property "dataset" with the proper type
-PASS SVGElement interface: pattern must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: pattern must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: pattern must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: pattern must inherit property "focus()" with the proper type
-PASS SVGElement interface: pattern must inherit property "blur()" with the proper type
-FAIL SVGHatchElement interface: existence and properties of interface object assert_own_property: self does not have own property "SVGHatchElement" expected property "SVGHatchElement" missing
-FAIL SVGHatchElement interface object length assert_own_property: self does not have own property "SVGHatchElement" expected property "SVGHatchElement" missing
-FAIL SVGHatchElement interface object name assert_own_property: self does not have own property "SVGHatchElement" expected property "SVGHatchElement" missing
-FAIL SVGHatchElement interface: existence and properties of interface prototype object assert_own_property: self does not have own property "SVGHatchElement" expected property "SVGHatchElement" missing
-FAIL SVGHatchElement interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "SVGHatchElement" expected property "SVGHatchElement" missing
-FAIL SVGHatchElement interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "SVGHatchElement" expected property "SVGHatchElement" missing
-FAIL SVGHatchpathElement interface: existence and properties of interface object assert_own_property: self does not have own property "SVGHatchpathElement" expected property "SVGHatchpathElement" missing
-FAIL SVGHatchpathElement interface object length assert_own_property: self does not have own property "SVGHatchpathElement" expected property "SVGHatchpathElement" missing
-FAIL SVGHatchpathElement interface object name assert_own_property: self does not have own property "SVGHatchpathElement" expected property "SVGHatchpathElement" missing
-FAIL SVGHatchpathElement interface: existence and properties of interface prototype object assert_own_property: self does not have own property "SVGHatchpathElement" expected property "SVGHatchpathElement" missing
-FAIL SVGHatchpathElement interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "SVGHatchpathElement" expected property "SVGHatchpathElement" missing
-FAIL SVGHatchpathElement interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "SVGHatchpathElement" expected property "SVGHatchpathElement" missing
-FAIL SVGCursorElement interface: existence and properties of interface object assert_own_property: self does not have own property "SVGCursorElement" expected property "SVGCursorElement" missing
-FAIL SVGCursorElement interface object length assert_own_property: self does not have own property "SVGCursorElement" expected property "SVGCursorElement" missing
-FAIL SVGCursorElement interface object name assert_own_property: self does not have own property "SVGCursorElement" expected property "SVGCursorElement" missing
-FAIL SVGCursorElement interface: existence and properties of interface prototype object assert_own_property: self does not have own property "SVGCursorElement" expected property "SVGCursorElement" missing
-FAIL SVGCursorElement interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "SVGCursorElement" expected property "SVGCursorElement" missing
-FAIL SVGCursorElement interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "SVGCursorElement" expected property "SVGCursorElement" missing
-FAIL SVGCursorElement interface: attribute x assert_own_property: self does not have own property "SVGCursorElement" expected property "SVGCursorElement" missing
-PASS Unscopable handled correctly for x property on SVGCursorElement
-FAIL SVGCursorElement interface: attribute y assert_own_property: self does not have own property "SVGCursorElement" expected property "SVGCursorElement" missing
-PASS Unscopable handled correctly for y property on SVGCursorElement
-FAIL SVGCursorElement interface: attribute href assert_own_property: self does not have own property "SVGCursorElement" expected property "SVGCursorElement" missing
-PASS Unscopable handled correctly for href property on SVGCursorElement
-FAIL SVGCursorElement must be primary interface of cursor assert_own_property: self does not have own property "SVGCursorElement" expected property "SVGCursorElement" missing
-FAIL Stringification of cursor assert_equals: class string of cursor expected "[object SVGCursorElement]" but got "[object SVGElement]"
-FAIL SVGCursorElement interface: cursor must inherit property "x" with the proper type assert_inherits: property "x" not found in prototype chain
-FAIL SVGCursorElement interface: cursor must inherit property "y" with the proper type assert_inherits: property "y" not found in prototype chain
-FAIL SVGCursorElement interface: cursor must inherit property "href" with the proper type assert_inherits: property "href" not found in prototype chain
-PASS SVGElement interface: cursor must inherit property "className" with the proper type
-PASS SVGElement interface: cursor must inherit property "dataset" with the proper type
-PASS SVGElement interface: cursor must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: cursor must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: cursor must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: cursor must inherit property "focus()" with the proper type
-PASS SVGElement interface: cursor must inherit property "blur()" with the proper type
-PASS SVGScriptElement interface: existence and properties of interface object
-PASS SVGScriptElement interface object length
-PASS SVGScriptElement interface object name
-PASS SVGScriptElement interface: existence and properties of interface prototype object
-PASS SVGScriptElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGScriptElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGScriptElement interface: attribute type
-PASS Unscopable handled correctly for type property on SVGScriptElement
-FAIL SVGScriptElement interface: attribute crossOrigin assert_true: The prototype object must have a property "crossOrigin" expected true got false
-PASS Unscopable handled correctly for crossOrigin property on SVGScriptElement
-PASS SVGScriptElement interface: attribute href
-PASS Unscopable handled correctly for href property on SVGScriptElement
-PASS SVGScriptElement must be primary interface of script
-PASS Stringification of script
-PASS SVGScriptElement interface: script must inherit property "type" with the proper type
-FAIL SVGScriptElement interface: script must inherit property "crossOrigin" with the proper type assert_inherits: property "crossOrigin" not found in prototype chain
-PASS SVGScriptElement interface: script must inherit property "href" with the proper type
-PASS SVGElement interface: script must inherit property "className" with the proper type
-PASS SVGElement interface: script must inherit property "dataset" with the proper type
-PASS SVGElement interface: script must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: script must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: script must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: script must inherit property "focus()" with the proper type
-PASS SVGElement interface: script must inherit property "blur()" with the proper type
-PASS SVGAElement interface: existence and properties of interface object
-PASS SVGAElement interface object length
-PASS SVGAElement interface object name
-PASS SVGAElement interface: existence and properties of interface prototype object
-PASS SVGAElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGAElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGAElement interface: attribute target
-PASS Unscopable handled correctly for target property on SVGAElement
-PASS SVGAElement interface: attribute href
-PASS Unscopable handled correctly for href property on SVGAElement
-PASS SVGAElement must be primary interface of a
-PASS Stringification of a
-PASS SVGAElement interface: a must inherit property "target" with the proper type
-PASS SVGAElement interface: a must inherit property "href" with the proper type
-PASS SVGGraphicsElement interface: a must inherit property "transform" with the proper type
-PASS SVGGraphicsElement interface: a must inherit property "getBBox(SVGBoundingBoxOptions)" with the proper type
-PASS SVGGraphicsElement interface: calling getBBox(SVGBoundingBoxOptions) on a with too few arguments must throw TypeError
-PASS SVGGraphicsElement interface: a must inherit property "getCTM()" with the proper type
-PASS SVGGraphicsElement interface: a must inherit property "getScreenCTM()" with the proper type
-PASS SVGGraphicsElement interface: a must inherit property "requiredExtensions" with the proper type
-PASS SVGGraphicsElement interface: a must inherit property "systemLanguage" with the proper type
-PASS SVGElement interface: a must inherit property "className" with the proper type
-PASS SVGElement interface: a must inherit property "dataset" with the proper type
-PASS SVGElement interface: a must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: a must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: a must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: a must inherit property "focus()" with the proper type
-PASS SVGElement interface: a must inherit property "blur()" with the proper type
-PASS SVGViewElement interface: existence and properties of interface object
-PASS SVGViewElement interface object length
-PASS SVGViewElement interface object name
-PASS SVGViewElement interface: existence and properties of interface prototype object
-PASS SVGViewElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGViewElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGViewElement interface: attribute viewBox
-PASS Unscopable handled correctly for viewBox property on SVGViewElement
-PASS SVGViewElement interface: attribute preserveAspectRatio
-PASS Unscopable handled correctly for preserveAspectRatio property on SVGViewElement
-PASS SVGViewElement interface: constant SVG_ZOOMANDPAN_UNKNOWN on interface object
-PASS SVGViewElement interface: constant SVG_ZOOMANDPAN_UNKNOWN on interface prototype object
-PASS SVGViewElement interface: constant SVG_ZOOMANDPAN_DISABLE on interface object
-PASS SVGViewElement interface: constant SVG_ZOOMANDPAN_DISABLE on interface prototype object
-PASS SVGViewElement interface: constant SVG_ZOOMANDPAN_MAGNIFY on interface object
-PASS SVGViewElement interface: constant SVG_ZOOMANDPAN_MAGNIFY on interface prototype object
-PASS SVGViewElement interface: attribute zoomAndPan
-PASS Unscopable handled correctly for zoomAndPan property on SVGViewElement
-PASS SVGViewElement must be primary interface of view
-PASS Stringification of view
-PASS SVGViewElement interface: view must inherit property "viewBox" with the proper type
-PASS SVGViewElement interface: view must inherit property "preserveAspectRatio" with the proper type
-PASS SVGViewElement interface: view must inherit property "SVG_ZOOMANDPAN_UNKNOWN" with the proper type
-PASS SVGViewElement interface: view must inherit property "SVG_ZOOMANDPAN_DISABLE" with the proper type
-PASS SVGViewElement interface: view must inherit property "SVG_ZOOMANDPAN_MAGNIFY" with the proper type
-PASS SVGViewElement interface: view must inherit property "zoomAndPan" with the proper type
-PASS SVGElement interface: view must inherit property "className" with the proper type
-PASS SVGElement interface: view must inherit property "dataset" with the proper type
-PASS SVGElement interface: view must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: view must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: view must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: view must inherit property "focus()" with the proper type
-PASS SVGElement interface: view must inherit property "blur()" with the proper type
-PASS SVGFilterElement interface: existence and properties of interface object
-PASS SVGFilterElement interface object length
-PASS SVGFilterElement interface object name
-PASS SVGFilterElement interface: existence and properties of interface prototype object
-PASS SVGFilterElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGFilterElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGFilterElement interface: attribute filterUnits
-PASS Unscopable handled correctly for filterUnits property on SVGFilterElement
-PASS SVGFilterElement interface: attribute primitiveUnits
-PASS Unscopable handled correctly for primitiveUnits property on SVGFilterElement
-PASS SVGFilterElement interface: attribute x
-PASS Unscopable handled correctly for x property on SVGFilterElement
-PASS SVGFilterElement interface: attribute y
-PASS Unscopable handled correctly for y property on SVGFilterElement
-PASS SVGFilterElement interface: attribute width
-PASS Unscopable handled correctly for width property on SVGFilterElement
-PASS SVGFilterElement interface: attribute height
-PASS Unscopable handled correctly for height property on SVGFilterElement
-PASS SVGFilterElement interface: attribute href
-PASS Unscopable handled correctly for href property on SVGFilterElement
-PASS SVGFilterElement must be primary interface of filter
-PASS Stringification of filter
-PASS SVGFilterElement interface: filter must inherit property "filterUnits" with the proper type
-PASS SVGFilterElement interface: filter must inherit property "primitiveUnits" with the proper type
-PASS SVGFilterElement interface: filter must inherit property "x" with the proper type
-PASS SVGFilterElement interface: filter must inherit property "y" with the proper type
-PASS SVGFilterElement interface: filter must inherit property "width" with the proper type
-PASS SVGFilterElement interface: filter must inherit property "height" with the proper type
-PASS SVGFilterElement interface: filter must inherit property "href" with the proper type
-PASS SVGElement interface: filter must inherit property "className" with the proper type
-PASS SVGElement interface: filter must inherit property "dataset" with the proper type
-PASS SVGElement interface: filter must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: filter must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: filter must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: filter must inherit property "focus()" with the proper type
-PASS SVGElement interface: filter must inherit property "blur()" with the proper type
-PASS SVGFEBlendElement interface: existence and properties of interface object
-PASS SVGFEBlendElement interface object length
-PASS SVGFEBlendElement interface object name
-PASS SVGFEBlendElement interface: existence and properties of interface prototype object
-PASS SVGFEBlendElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGFEBlendElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGFEBlendElement interface: constant SVG_FEBLEND_MODE_UNKNOWN on interface object
-PASS SVGFEBlendElement interface: constant SVG_FEBLEND_MODE_UNKNOWN on interface prototype object
-PASS SVGFEBlendElement interface: constant SVG_FEBLEND_MODE_NORMAL on interface object
-PASS SVGFEBlendElement interface: constant SVG_FEBLEND_MODE_NORMAL on interface prototype object
-PASS SVGFEBlendElement interface: constant SVG_FEBLEND_MODE_MULTIPLY on interface object
-PASS SVGFEBlendElement interface: constant SVG_FEBLEND_MODE_MULTIPLY on interface prototype object
-PASS SVGFEBlendElement interface: constant SVG_FEBLEND_MODE_SCREEN on interface object
-PASS SVGFEBlendElement interface: constant SVG_FEBLEND_MODE_SCREEN on interface prototype object
-PASS SVGFEBlendElement interface: constant SVG_FEBLEND_MODE_DARKEN on interface object
-PASS SVGFEBlendElement interface: constant SVG_FEBLEND_MODE_DARKEN on interface prototype object
-PASS SVGFEBlendElement interface: constant SVG_FEBLEND_MODE_LIGHTEN on interface object
-PASS SVGFEBlendElement interface: constant SVG_FEBLEND_MODE_LIGHTEN on interface prototype object
-PASS SVGFEBlendElement interface: attribute in1
-PASS Unscopable handled correctly for in1 property on SVGFEBlendElement
-PASS SVGFEBlendElement interface: attribute in2
-PASS Unscopable handled correctly for in2 property on SVGFEBlendElement
-PASS SVGFEBlendElement interface: attribute mode
-PASS Unscopable handled correctly for mode property on SVGFEBlendElement
-PASS SVGFEBlendElement interface: attribute x
-PASS Unscopable handled correctly for x property on SVGFEBlendElement
-PASS SVGFEBlendElement interface: attribute y
-PASS Unscopable handled correctly for y property on SVGFEBlendElement
-PASS SVGFEBlendElement interface: attribute width
-PASS Unscopable handled correctly for width property on SVGFEBlendElement
-PASS SVGFEBlendElement interface: attribute height
-PASS Unscopable handled correctly for height property on SVGFEBlendElement
-PASS SVGFEBlendElement interface: attribute result
-PASS Unscopable handled correctly for result property on SVGFEBlendElement
-PASS SVGFEBlendElement must be primary interface of feBlend
-PASS Stringification of feBlend
-PASS SVGFEBlendElement interface: feBlend must inherit property "SVG_FEBLEND_MODE_UNKNOWN" with the proper type
-PASS SVGFEBlendElement interface: feBlend must inherit property "SVG_FEBLEND_MODE_NORMAL" with the proper type
-PASS SVGFEBlendElement interface: feBlend must inherit property "SVG_FEBLEND_MODE_MULTIPLY" with the proper type
-PASS SVGFEBlendElement interface: feBlend must inherit property "SVG_FEBLEND_MODE_SCREEN" with the proper type
-PASS SVGFEBlendElement interface: feBlend must inherit property "SVG_FEBLEND_MODE_DARKEN" with the proper type
-PASS SVGFEBlendElement interface: feBlend must inherit property "SVG_FEBLEND_MODE_LIGHTEN" with the proper type
-PASS SVGFEBlendElement interface: feBlend must inherit property "in1" with the proper type
-PASS SVGFEBlendElement interface: feBlend must inherit property "in2" with the proper type
-PASS SVGFEBlendElement interface: feBlend must inherit property "mode" with the proper type
-PASS SVGFEBlendElement interface: feBlend must inherit property "x" with the proper type
-PASS SVGFEBlendElement interface: feBlend must inherit property "y" with the proper type
-PASS SVGFEBlendElement interface: feBlend must inherit property "width" with the proper type
-PASS SVGFEBlendElement interface: feBlend must inherit property "height" with the proper type
-PASS SVGFEBlendElement interface: feBlend must inherit property "result" with the proper type
-PASS SVGElement interface: feBlend must inherit property "className" with the proper type
-PASS SVGElement interface: feBlend must inherit property "dataset" with the proper type
-PASS SVGElement interface: feBlend must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: feBlend must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: feBlend must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: feBlend must inherit property "focus()" with the proper type
-PASS SVGElement interface: feBlend must inherit property "blur()" with the proper type
-PASS SVGFEColorMatrixElement interface: existence and properties of interface object
-PASS SVGFEColorMatrixElement interface object length
-PASS SVGFEColorMatrixElement interface object name
-PASS SVGFEColorMatrixElement interface: existence and properties of interface prototype object
-PASS SVGFEColorMatrixElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGFEColorMatrixElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGFEColorMatrixElement interface: constant SVG_FECOLORMATRIX_TYPE_UNKNOWN on interface object
-PASS SVGFEColorMatrixElement interface: constant SVG_FECOLORMATRIX_TYPE_UNKNOWN on interface prototype object
-PASS SVGFEColorMatrixElement interface: constant SVG_FECOLORMATRIX_TYPE_MATRIX on interface object
-PASS SVGFEColorMatrixElement interface: constant SVG_FECOLORMATRIX_TYPE_MATRIX on interface prototype object
-PASS SVGFEColorMatrixElement interface: constant SVG_FECOLORMATRIX_TYPE_SATURATE on interface object
-PASS SVGFEColorMatrixElement interface: constant SVG_FECOLORMATRIX_TYPE_SATURATE on interface prototype object
-PASS SVGFEColorMatrixElement interface: constant SVG_FECOLORMATRIX_TYPE_HUEROTATE on interface object
-PASS SVGFEColorMatrixElement interface: constant SVG_FECOLORMATRIX_TYPE_HUEROTATE on interface prototype object
-PASS SVGFEColorMatrixElement interface: constant SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA on interface object
-PASS SVGFEColorMatrixElement interface: constant SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA on interface prototype object
-PASS SVGFEColorMatrixElement interface: attribute in1
-PASS Unscopable handled correctly for in1 property on SVGFEColorMatrixElement
-PASS SVGFEColorMatrixElement interface: attribute type
-PASS Unscopable handled correctly for type property on SVGFEColorMatrixElement
-PASS SVGFEColorMatrixElement interface: attribute values
-PASS Unscopable handled correctly for values property on SVGFEColorMatrixElement
-PASS SVGFEColorMatrixElement interface: attribute x
-PASS Unscopable handled correctly for x property on SVGFEColorMatrixElement
-PASS SVGFEColorMatrixElement interface: attribute y
-PASS Unscopable handled correctly for y property on SVGFEColorMatrixElement
-PASS SVGFEColorMatrixElement interface: attribute width
-PASS Unscopable handled correctly for width property on SVGFEColorMatrixElement
-PASS SVGFEColorMatrixElement interface: attribute height
-PASS Unscopable handled correctly for height property on SVGFEColorMatrixElement
-PASS SVGFEColorMatrixElement interface: attribute result
-PASS Unscopable handled correctly for result property on SVGFEColorMatrixElement
-PASS SVGFEColorMatrixElement must be primary interface of feColorMatrix
-PASS Stringification of feColorMatrix
-PASS SVGFEColorMatrixElement interface: feColorMatrix must inherit property "SVG_FECOLORMATRIX_TYPE_UNKNOWN" with the proper type
-PASS SVGFEColorMatrixElement interface: feColorMatrix must inherit property "SVG_FECOLORMATRIX_TYPE_MATRIX" with the proper type
-PASS SVGFEColorMatrixElement interface: feColorMatrix must inherit property "SVG_FECOLORMATRIX_TYPE_SATURATE" with the proper type
-PASS SVGFEColorMatrixElement interface: feColorMatrix must inherit property "SVG_FECOLORMATRIX_TYPE_HUEROTATE" with the proper type
-PASS SVGFEColorMatrixElement interface: feColorMatrix must inherit property "SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA" with the proper type
-PASS SVGFEColorMatrixElement interface: feColorMatrix must inherit property "in1" with the proper type
-PASS SVGFEColorMatrixElement interface: feColorMatrix must inherit property "type" with the proper type
-PASS SVGFEColorMatrixElement interface: feColorMatrix must inherit property "values" with the proper type
-PASS SVGFEColorMatrixElement interface: feColorMatrix must inherit property "x" with the proper type
-PASS SVGFEColorMatrixElement interface: feColorMatrix must inherit property "y" with the proper type
-PASS SVGFEColorMatrixElement interface: feColorMatrix must inherit property "width" with the proper type
-PASS SVGFEColorMatrixElement interface: feColorMatrix must inherit property "height" with the proper type
-PASS SVGFEColorMatrixElement interface: feColorMatrix must inherit property "result" with the proper type
-PASS SVGElement interface: feColorMatrix must inherit property "className" with the proper type
-PASS SVGElement interface: feColorMatrix must inherit property "dataset" with the proper type
-PASS SVGElement interface: feColorMatrix must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: feColorMatrix must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: feColorMatrix must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: feColorMatrix must inherit property "focus()" with the proper type
-PASS SVGElement interface: feColorMatrix must inherit property "blur()" with the proper type
-PASS SVGFEComponentTransferElement interface: existence and properties of interface object
-PASS SVGFEComponentTransferElement interface object length
-PASS SVGFEComponentTransferElement interface object name
-PASS SVGFEComponentTransferElement interface: existence and properties of interface prototype object
-PASS SVGFEComponentTransferElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGFEComponentTransferElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGFEComponentTransferElement interface: attribute in1
-PASS Unscopable handled correctly for in1 property on SVGFEComponentTransferElement
-PASS SVGFEComponentTransferElement interface: attribute x
-PASS Unscopable handled correctly for x property on SVGFEComponentTransferElement
-PASS SVGFEComponentTransferElement interface: attribute y
-PASS Unscopable handled correctly for y property on SVGFEComponentTransferElement
-PASS SVGFEComponentTransferElement interface: attribute width
-PASS Unscopable handled correctly for width property on SVGFEComponentTransferElement
-PASS SVGFEComponentTransferElement interface: attribute height
-PASS Unscopable handled correctly for height property on SVGFEComponentTransferElement
-PASS SVGFEComponentTransferElement interface: attribute result
-PASS Unscopable handled correctly for result property on SVGFEComponentTransferElement
-PASS SVGFEComponentTransferElement must be primary interface of feComponentTransfer
-PASS Stringification of feComponentTransfer
-PASS SVGFEComponentTransferElement interface: feComponentTransfer must inherit property "in1" with the proper type
-PASS SVGFEComponentTransferElement interface: feComponentTransfer must inherit property "x" with the proper type
-PASS SVGFEComponentTransferElement interface: feComponentTransfer must inherit property "y" with the proper type
-PASS SVGFEComponentTransferElement interface: feComponentTransfer must inherit property "width" with the proper type
-PASS SVGFEComponentTransferElement interface: feComponentTransfer must inherit property "height" with the proper type
-PASS SVGFEComponentTransferElement interface: feComponentTransfer must inherit property "result" with the proper type
-PASS SVGElement interface: feComponentTransfer must inherit property "className" with the proper type
-PASS SVGElement interface: feComponentTransfer must inherit property "dataset" with the proper type
-PASS SVGElement interface: feComponentTransfer must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: feComponentTransfer must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: feComponentTransfer must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: feComponentTransfer must inherit property "focus()" with the proper type
-PASS SVGElement interface: feComponentTransfer must inherit property "blur()" with the proper type
-PASS SVGComponentTransferFunctionElement interface: existence and properties of interface object
-PASS SVGComponentTransferFunctionElement interface object length
-PASS SVGComponentTransferFunctionElement interface object name
-PASS SVGComponentTransferFunctionElement interface: existence and properties of interface prototype object
-PASS SVGComponentTransferFunctionElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGComponentTransferFunctionElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGComponentTransferFunctionElement interface: constant SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN on interface object
-PASS SVGComponentTransferFunctionElement interface: constant SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN on interface prototype object
-PASS SVGComponentTransferFunctionElement interface: constant SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY on interface object
-PASS SVGComponentTransferFunctionElement interface: constant SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY on interface prototype object
-PASS SVGComponentTransferFunctionElement interface: constant SVG_FECOMPONENTTRANSFER_TYPE_TABLE on interface object
-PASS SVGComponentTransferFunctionElement interface: constant SVG_FECOMPONENTTRANSFER_TYPE_TABLE on interface prototype object
-PASS SVGComponentTransferFunctionElement interface: constant SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE on interface object
-PASS SVGComponentTransferFunctionElement interface: constant SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE on interface prototype object
-PASS SVGComponentTransferFunctionElement interface: constant SVG_FECOMPONENTTRANSFER_TYPE_LINEAR on interface object
-PASS SVGComponentTransferFunctionElement interface: constant SVG_FECOMPONENTTRANSFER_TYPE_LINEAR on interface prototype object
-PASS SVGComponentTransferFunctionElement interface: constant SVG_FECOMPONENTTRANSFER_TYPE_GAMMA on interface object
-PASS SVGComponentTransferFunctionElement interface: constant SVG_FECOMPONENTTRANSFER_TYPE_GAMMA on interface prototype object
-PASS SVGComponentTransferFunctionElement interface: attribute type
-PASS Unscopable handled correctly for type property on SVGComponentTransferFunctionElement
-PASS SVGComponentTransferFunctionElement interface: attribute tableValues
-PASS Unscopable handled correctly for tableValues property on SVGComponentTransferFunctionElement
-PASS SVGComponentTransferFunctionElement interface: attribute slope
-PASS Unscopable handled correctly for slope property on SVGComponentTransferFunctionElement
-PASS SVGComponentTransferFunctionElement interface: attribute intercept
-PASS Unscopable handled correctly for intercept property on SVGComponentTransferFunctionElement
-PASS SVGComponentTransferFunctionElement interface: attribute amplitude
-PASS Unscopable handled correctly for amplitude property on SVGComponentTransferFunctionElement
-PASS SVGComponentTransferFunctionElement interface: attribute exponent
-PASS Unscopable handled correctly for exponent property on SVGComponentTransferFunctionElement
-PASS SVGComponentTransferFunctionElement interface: attribute offset
-PASS Unscopable handled correctly for offset property on SVGComponentTransferFunctionElement
-PASS SVGFEFuncRElement interface: existence and properties of interface object
-PASS SVGFEFuncRElement interface object length
-PASS SVGFEFuncRElement interface object name
-PASS SVGFEFuncRElement interface: existence and properties of interface prototype object
-PASS SVGFEFuncRElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGFEFuncRElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGFEFuncRElement must be primary interface of feFuncR
-PASS Stringification of feFuncR
-PASS SVGComponentTransferFunctionElement interface: feFuncR must inherit property "SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncR must inherit property "SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncR must inherit property "SVG_FECOMPONENTTRANSFER_TYPE_TABLE" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncR must inherit property "SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncR must inherit property "SVG_FECOMPONENTTRANSFER_TYPE_LINEAR" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncR must inherit property "SVG_FECOMPONENTTRANSFER_TYPE_GAMMA" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncR must inherit property "type" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncR must inherit property "tableValues" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncR must inherit property "slope" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncR must inherit property "intercept" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncR must inherit property "amplitude" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncR must inherit property "exponent" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncR must inherit property "offset" with the proper type
-PASS SVGElement interface: feFuncR must inherit property "className" with the proper type
-PASS SVGElement interface: feFuncR must inherit property "dataset" with the proper type
-PASS SVGElement interface: feFuncR must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: feFuncR must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: feFuncR must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: feFuncR must inherit property "focus()" with the proper type
-PASS SVGElement interface: feFuncR must inherit property "blur()" with the proper type
-PASS SVGFEFuncGElement interface: existence and properties of interface object
-PASS SVGFEFuncGElement interface object length
-PASS SVGFEFuncGElement interface object name
-PASS SVGFEFuncGElement interface: existence and properties of interface prototype object
-PASS SVGFEFuncGElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGFEFuncGElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGFEFuncGElement must be primary interface of feFuncG
-PASS Stringification of feFuncG
-PASS SVGComponentTransferFunctionElement interface: feFuncG must inherit property "SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncG must inherit property "SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncG must inherit property "SVG_FECOMPONENTTRANSFER_TYPE_TABLE" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncG must inherit property "SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncG must inherit property "SVG_FECOMPONENTTRANSFER_TYPE_LINEAR" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncG must inherit property "SVG_FECOMPONENTTRANSFER_TYPE_GAMMA" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncG must inherit property "type" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncG must inherit property "tableValues" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncG must inherit property "slope" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncG must inherit property "intercept" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncG must inherit property "amplitude" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncG must inherit property "exponent" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncG must inherit property "offset" with the proper type
-PASS SVGElement interface: feFuncG must inherit property "className" with the proper type
-PASS SVGElement interface: feFuncG must inherit property "dataset" with the proper type
-PASS SVGElement interface: feFuncG must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: feFuncG must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: feFuncG must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: feFuncG must inherit property "focus()" with the proper type
-PASS SVGElement interface: feFuncG must inherit property "blur()" with the proper type
-PASS SVGFEFuncBElement interface: existence and properties of interface object
-PASS SVGFEFuncBElement interface object length
-PASS SVGFEFuncBElement interface object name
-PASS SVGFEFuncBElement interface: existence and properties of interface prototype object
-PASS SVGFEFuncBElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGFEFuncBElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGFEFuncBElement must be primary interface of feFuncB
-PASS Stringification of feFuncB
-PASS SVGComponentTransferFunctionElement interface: feFuncB must inherit property "SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncB must inherit property "SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncB must inherit property "SVG_FECOMPONENTTRANSFER_TYPE_TABLE" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncB must inherit property "SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncB must inherit property "SVG_FECOMPONENTTRANSFER_TYPE_LINEAR" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncB must inherit property "SVG_FECOMPONENTTRANSFER_TYPE_GAMMA" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncB must inherit property "type" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncB must inherit property "tableValues" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncB must inherit property "slope" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncB must inherit property "intercept" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncB must inherit property "amplitude" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncB must inherit property "exponent" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncB must inherit property "offset" with the proper type
-PASS SVGElement interface: feFuncB must inherit property "className" with the proper type
-PASS SVGElement interface: feFuncB must inherit property "dataset" with the proper type
-PASS SVGElement interface: feFuncB must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: feFuncB must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: feFuncB must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: feFuncB must inherit property "focus()" with the proper type
-PASS SVGElement interface: feFuncB must inherit property "blur()" with the proper type
-PASS SVGFEFuncAElement interface: existence and properties of interface object
-PASS SVGFEFuncAElement interface object length
-PASS SVGFEFuncAElement interface object name
-PASS SVGFEFuncAElement interface: existence and properties of interface prototype object
-PASS SVGFEFuncAElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGFEFuncAElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGFEFuncAElement must be primary interface of feFuncA
-PASS Stringification of feFuncA
-PASS SVGComponentTransferFunctionElement interface: feFuncA must inherit property "SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncA must inherit property "SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncA must inherit property "SVG_FECOMPONENTTRANSFER_TYPE_TABLE" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncA must inherit property "SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncA must inherit property "SVG_FECOMPONENTTRANSFER_TYPE_LINEAR" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncA must inherit property "SVG_FECOMPONENTTRANSFER_TYPE_GAMMA" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncA must inherit property "type" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncA must inherit property "tableValues" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncA must inherit property "slope" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncA must inherit property "intercept" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncA must inherit property "amplitude" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncA must inherit property "exponent" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncA must inherit property "offset" with the proper type
-PASS SVGElement interface: feFuncA must inherit property "className" with the proper type
-PASS SVGElement interface: feFuncA must inherit property "dataset" with the proper type
-PASS SVGElement interface: feFuncA must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: feFuncA must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: feFuncA must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: feFuncA must inherit property "focus()" with the proper type
-PASS SVGElement interface: feFuncA must inherit property "blur()" with the proper type
-PASS SVGFECompositeElement interface: existence and properties of interface object
-PASS SVGFECompositeElement interface object length
-PASS SVGFECompositeElement interface object name
-PASS SVGFECompositeElement interface: existence and properties of interface prototype object
-PASS SVGFECompositeElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGFECompositeElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGFECompositeElement interface: constant SVG_FECOMPOSITE_OPERATOR_UNKNOWN on interface object
-PASS SVGFECompositeElement interface: constant SVG_FECOMPOSITE_OPERATOR_UNKNOWN on interface prototype object
-PASS SVGFECompositeElement interface: constant SVG_FECOMPOSITE_OPERATOR_OVER on interface object
-PASS SVGFECompositeElement interface: constant SVG_FECOMPOSITE_OPERATOR_OVER on interface prototype object
-PASS SVGFECompositeElement interface: constant SVG_FECOMPOSITE_OPERATOR_IN on interface object
-PASS SVGFECompositeElement interface: constant SVG_FECOMPOSITE_OPERATOR_IN on interface prototype object
-PASS SVGFECompositeElement interface: constant SVG_FECOMPOSITE_OPERATOR_OUT on interface object
-PASS SVGFECompositeElement interface: constant SVG_FECOMPOSITE_OPERATOR_OUT on interface prototype object
-PASS SVGFECompositeElement interface: constant SVG_FECOMPOSITE_OPERATOR_ATOP on interface object
-PASS SVGFECompositeElement interface: constant SVG_FECOMPOSITE_OPERATOR_ATOP on interface prototype object
-PASS SVGFECompositeElement interface: constant SVG_FECOMPOSITE_OPERATOR_XOR on interface object
-PASS SVGFECompositeElement interface: constant SVG_FECOMPOSITE_OPERATOR_XOR on interface prototype object
-PASS SVGFECompositeElement interface: constant SVG_FECOMPOSITE_OPERATOR_ARITHMETIC on interface object
-PASS SVGFECompositeElement interface: constant SVG_FECOMPOSITE_OPERATOR_ARITHMETIC on interface prototype object
-PASS SVGFECompositeElement interface: attribute in1
-PASS Unscopable handled correctly for in1 property on SVGFECompositeElement
-PASS SVGFECompositeElement interface: attribute in2
-PASS Unscopable handled correctly for in2 property on SVGFECompositeElement
-PASS SVGFECompositeElement interface: attribute operator
-PASS Unscopable handled correctly for operator property on SVGFECompositeElement
-PASS SVGFECompositeElement interface: attribute k1
-PASS Unscopable handled correctly for k1 property on SVGFECompositeElement
-PASS SVGFECompositeElement interface: attribute k2
-PASS Unscopable handled correctly for k2 property on SVGFECompositeElement
-PASS SVGFECompositeElement interface: attribute k3
-PASS Unscopable handled correctly for k3 property on SVGFECompositeElement
-PASS SVGFECompositeElement interface: attribute k4
-PASS Unscopable handled correctly for k4 property on SVGFECompositeElement
-PASS SVGFECompositeElement interface: attribute x
-PASS Unscopable handled correctly for x property on SVGFECompositeElement
-PASS SVGFECompositeElement interface: attribute y
-PASS Unscopable handled correctly for y property on SVGFECompositeElement
-PASS SVGFECompositeElement interface: attribute width
-PASS Unscopable handled correctly for width property on SVGFECompositeElement
-PASS SVGFECompositeElement interface: attribute height
-PASS Unscopable handled correctly for height property on SVGFECompositeElement
-PASS SVGFECompositeElement interface: attribute result
-PASS Unscopable handled correctly for result property on SVGFECompositeElement
-PASS SVGFECompositeElement must be primary interface of feComposite
-PASS Stringification of feComposite
-PASS SVGFECompositeElement interface: feComposite must inherit property "SVG_FECOMPOSITE_OPERATOR_UNKNOWN" with the proper type
-PASS SVGFECompositeElement interface: feComposite must inherit property "SVG_FECOMPOSITE_OPERATOR_OVER" with the proper type
-PASS SVGFECompositeElement interface: feComposite must inherit property "SVG_FECOMPOSITE_OPERATOR_IN" with the proper type
-PASS SVGFECompositeElement interface: feComposite must inherit property "SVG_FECOMPOSITE_OPERATOR_OUT" with the proper type
-PASS SVGFECompositeElement interface: feComposite must inherit property "SVG_FECOMPOSITE_OPERATOR_ATOP" with the proper type
-PASS SVGFECompositeElement interface: feComposite must inherit property "SVG_FECOMPOSITE_OPERATOR_XOR" with the proper type
-PASS SVGFECompositeElement interface: feComposite must inherit property "SVG_FECOMPOSITE_OPERATOR_ARITHMETIC" with the proper type
-PASS SVGFECompositeElement interface: feComposite must inherit property "in1" with the proper type
-PASS SVGFECompositeElement interface: feComposite must inherit property "in2" with the proper type
-PASS SVGFECompositeElement interface: feComposite must inherit property "operator" with the proper type
-PASS SVGFECompositeElement interface: feComposite must inherit property "k1" with the proper type
-PASS SVGFECompositeElement interface: feComposite must inherit property "k2" with the proper type
-PASS SVGFECompositeElement interface: feComposite must inherit property "k3" with the proper type
-PASS SVGFECompositeElement interface: feComposite must inherit property "k4" with the proper type
-PASS SVGFECompositeElement interface: feComposite must inherit property "x" with the proper type
-PASS SVGFECompositeElement interface: feComposite must inherit property "y" with the proper type
-PASS SVGFECompositeElement interface: feComposite must inherit property "width" with the proper type
-PASS SVGFECompositeElement interface: feComposite must inherit property "height" with the proper type
-PASS SVGFECompositeElement interface: feComposite must inherit property "result" with the proper type
-PASS SVGElement interface: feComposite must inherit property "className" with the proper type
-PASS SVGElement interface: feComposite must inherit property "dataset" with the proper type
-PASS SVGElement interface: feComposite must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: feComposite must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: feComposite must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: feComposite must inherit property "focus()" with the proper type
-PASS SVGElement interface: feComposite must inherit property "blur()" with the proper type
-PASS SVGFEConvolveMatrixElement interface: existence and properties of interface object
-PASS SVGFEConvolveMatrixElement interface object length
-PASS SVGFEConvolveMatrixElement interface object name
-PASS SVGFEConvolveMatrixElement interface: existence and properties of interface prototype object
-PASS SVGFEConvolveMatrixElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGFEConvolveMatrixElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGFEConvolveMatrixElement interface: constant SVG_EDGEMODE_UNKNOWN on interface object
-PASS SVGFEConvolveMatrixElement interface: constant SVG_EDGEMODE_UNKNOWN on interface prototype object
-PASS SVGFEConvolveMatrixElement interface: constant SVG_EDGEMODE_DUPLICATE on interface object
-PASS SVGFEConvolveMatrixElement interface: constant SVG_EDGEMODE_DUPLICATE on interface prototype object
-PASS SVGFEConvolveMatrixElement interface: constant SVG_EDGEMODE_WRAP on interface object
-PASS SVGFEConvolveMatrixElement interface: constant SVG_EDGEMODE_WRAP on interface prototype object
-PASS SVGFEConvolveMatrixElement interface: constant SVG_EDGEMODE_NONE on interface object
-PASS SVGFEConvolveMatrixElement interface: constant SVG_EDGEMODE_NONE on interface prototype object
-PASS SVGFEConvolveMatrixElement interface: attribute in1
-PASS Unscopable handled correctly for in1 property on SVGFEConvolveMatrixElement
-PASS SVGFEConvolveMatrixElement interface: attribute orderX
-PASS Unscopable handled correctly for orderX property on SVGFEConvolveMatrixElement
-PASS SVGFEConvolveMatrixElement interface: attribute orderY
-PASS Unscopable handled correctly for orderY property on SVGFEConvolveMatrixElement
-PASS SVGFEConvolveMatrixElement interface: attribute kernelMatrix
-PASS Unscopable handled correctly for kernelMatrix property on SVGFEConvolveMatrixElement
-PASS SVGFEConvolveMatrixElement interface: attribute divisor
-PASS Unscopable handled correctly for divisor property on SVGFEConvolveMatrixElement
-PASS SVGFEConvolveMatrixElement interface: attribute bias
-PASS Unscopable handled correctly for bias property on SVGFEConvolveMatrixElement
-PASS SVGFEConvolveMatrixElement interface: attribute targetX
-PASS Unscopable handled correctly for targetX property on SVGFEConvolveMatrixElement
-PASS SVGFEConvolveMatrixElement interface: attribute targetY
-PASS Unscopable handled correctly for targetY property on SVGFEConvolveMatrixElement
-PASS SVGFEConvolveMatrixElement interface: attribute edgeMode
-PASS Unscopable handled correctly for edgeMode property on SVGFEConvolveMatrixElement
-PASS SVGFEConvolveMatrixElement interface: attribute kernelUnitLengthX
-PASS Unscopable handled correctly for kernelUnitLengthX property on SVGFEConvolveMatrixElement
-PASS SVGFEConvolveMatrixElement interface: attribute kernelUnitLengthY
-PASS Unscopable handled correctly for kernelUnitLengthY property on SVGFEConvolveMatrixElement
-PASS SVGFEConvolveMatrixElement interface: attribute x
-PASS Unscopable handled correctly for x property on SVGFEConvolveMatrixElement
-PASS SVGFEConvolveMatrixElement interface: attribute y
-PASS Unscopable handled correctly for y property on SVGFEConvolveMatrixElement
-PASS SVGFEConvolveMatrixElement interface: attribute width
-PASS Unscopable handled correctly for width property on SVGFEConvolveMatrixElement
-PASS SVGFEConvolveMatrixElement interface: attribute height
-PASS Unscopable handled correctly for height property on SVGFEConvolveMatrixElement
-PASS SVGFEConvolveMatrixElement interface: attribute result
-PASS Unscopable handled correctly for result property on SVGFEConvolveMatrixElement
-PASS SVGFEConvolveMatrixElement must be primary interface of feConvolveMatrix
-PASS Stringification of feConvolveMatrix
-PASS SVGFEConvolveMatrixElement interface: feConvolveMatrix must inherit property "SVG_EDGEMODE_UNKNOWN" with the proper type
-PASS SVGFEConvolveMatrixElement interface: feConvolveMatrix must inherit property "SVG_EDGEMODE_DUPLICATE" with the proper type
-PASS SVGFEConvolveMatrixElement interface: feConvolveMatrix must inherit property "SVG_EDGEMODE_WRAP" with the proper type
-PASS SVGFEConvolveMatrixElement interface: feConvolveMatrix must inherit property "SVG_EDGEMODE_NONE" with the proper type
-PASS SVGFEConvolveMatrixElement interface: feConvolveMatrix must inherit property "in1" with the proper type
-PASS SVGFEConvolveMatrixElement interface: feConvolveMatrix must inherit property "orderX" with the proper type
-PASS SVGFEConvolveMatrixElement interface: feConvolveMatrix must inherit property "orderY" with the proper type
-PASS SVGFEConvolveMatrixElement interface: feConvolveMatrix must inherit property "kernelMatrix" with the proper type
-PASS SVGFEConvolveMatrixElement interface: feConvolveMatrix must inherit property "divisor" with the proper type
-PASS SVGFEConvolveMatrixElement interface: feConvolveMatrix must inherit property "bias" with the proper type
-PASS SVGFEConvolveMatrixElement interface: feConvolveMatrix must inherit property "targetX" with the proper type
-PASS SVGFEConvolveMatrixElement interface: feConvolveMatrix must inherit property "targetY" with the proper type
-PASS SVGFEConvolveMatrixElement interface: feConvolveMatrix must inherit property "edgeMode" with the proper type
-PASS SVGFEConvolveMatrixElement interface: feConvolveMatrix must inherit property "kernelUnitLengthX" with the proper type
-PASS SVGFEConvolveMatrixElement interface: feConvolveMatrix must inherit property "kernelUnitLengthY" with the proper type
-PASS SVGFEConvolveMatrixElement interface: feConvolveMatrix must inherit property "x" with the proper type
-PASS SVGFEConvolveMatrixElement interface: feConvolveMatrix must inherit property "y" with the proper type
-PASS SVGFEConvolveMatrixElement interface: feConvolveMatrix must inherit property "width" with the proper type
-PASS SVGFEConvolveMatrixElement interface: feConvolveMatrix must inherit property "height" with the proper type
-PASS SVGFEConvolveMatrixElement interface: feConvolveMatrix must inherit property "result" with the proper type
-PASS SVGElement interface: feConvolveMatrix must inherit property "className" with the proper type
-PASS SVGElement interface: feConvolveMatrix must inherit property "dataset" with the proper type
-PASS SVGElement interface: feConvolveMatrix must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: feConvolveMatrix must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: feConvolveMatrix must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: feConvolveMatrix must inherit property "focus()" with the proper type
-PASS SVGElement interface: feConvolveMatrix must inherit property "blur()" with the proper type
-PASS SVGFEDiffuseLightingElement interface: existence and properties of interface object
-PASS SVGFEDiffuseLightingElement interface object length
-PASS SVGFEDiffuseLightingElement interface object name
-PASS SVGFEDiffuseLightingElement interface: existence and properties of interface prototype object
-PASS SVGFEDiffuseLightingElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGFEDiffuseLightingElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGFEDiffuseLightingElement interface: attribute in1
-PASS Unscopable handled correctly for in1 property on SVGFEDiffuseLightingElement
-PASS SVGFEDiffuseLightingElement interface: attribute surfaceScale
-PASS Unscopable handled correctly for surfaceScale property on SVGFEDiffuseLightingElement
-PASS SVGFEDiffuseLightingElement interface: attribute diffuseConstant
-PASS Unscopable handled correctly for diffuseConstant property on SVGFEDiffuseLightingElement
-PASS SVGFEDiffuseLightingElement interface: attribute kernelUnitLengthX
-PASS Unscopable handled correctly for kernelUnitLengthX property on SVGFEDiffuseLightingElement
-PASS SVGFEDiffuseLightingElement interface: attribute kernelUnitLengthY
-PASS Unscopable handled correctly for kernelUnitLengthY property on SVGFEDiffuseLightingElement
-PASS SVGFEDiffuseLightingElement interface: attribute x
-PASS Unscopable handled correctly for x property on SVGFEDiffuseLightingElement
-PASS SVGFEDiffuseLightingElement interface: attribute y
-PASS Unscopable handled correctly for y property on SVGFEDiffuseLightingElement
-PASS SVGFEDiffuseLightingElement interface: attribute width
-PASS Unscopable handled correctly for width property on SVGFEDiffuseLightingElement
-PASS SVGFEDiffuseLightingElement interface: attribute height
-PASS Unscopable handled correctly for height property on SVGFEDiffuseLightingElement
-PASS SVGFEDiffuseLightingElement interface: attribute result
-PASS Unscopable handled correctly for result property on SVGFEDiffuseLightingElement
-PASS SVGFEDiffuseLightingElement must be primary interface of feDiffuseLighting
-PASS Stringification of feDiffuseLighting
-PASS SVGFEDiffuseLightingElement interface: feDiffuseLighting must inherit property "in1" with the proper type
-PASS SVGFEDiffuseLightingElement interface: feDiffuseLighting must inherit property "surfaceScale" with the proper type
-PASS SVGFEDiffuseLightingElement interface: feDiffuseLighting must inherit property "diffuseConstant" with the proper type
-PASS SVGFEDiffuseLightingElement interface: feDiffuseLighting must inherit property "kernelUnitLengthX" with the proper type
-PASS SVGFEDiffuseLightingElement interface: feDiffuseLighting must inherit property "kernelUnitLengthY" with the proper type
-PASS SVGFEDiffuseLightingElement interface: feDiffuseLighting must inherit property "x" with the proper type
-PASS SVGFEDiffuseLightingElement interface: feDiffuseLighting must inherit property "y" with the proper type
-PASS SVGFEDiffuseLightingElement interface: feDiffuseLighting must inherit property "width" with the proper type
-PASS SVGFEDiffuseLightingElement interface: feDiffuseLighting must inherit property "height" with the proper type
-PASS SVGFEDiffuseLightingElement interface: feDiffuseLighting must inherit property "result" with the proper type
-PASS SVGElement interface: feDiffuseLighting must inherit property "className" with the proper type
-PASS SVGElement interface: feDiffuseLighting must inherit property "dataset" with the proper type
-PASS SVGElement interface: feDiffuseLighting must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: feDiffuseLighting must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: feDiffuseLighting must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: feDiffuseLighting must inherit property "focus()" with the proper type
-PASS SVGElement interface: feDiffuseLighting must inherit property "blur()" with the proper type
-PASS SVGFEDistantLightElement interface: existence and properties of interface object
-PASS SVGFEDistantLightElement interface object length
-PASS SVGFEDistantLightElement interface object name
-PASS SVGFEDistantLightElement interface: existence and properties of interface prototype object
-PASS SVGFEDistantLightElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGFEDistantLightElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGFEDistantLightElement interface: attribute azimuth
-PASS Unscopable handled correctly for azimuth property on SVGFEDistantLightElement
-PASS SVGFEDistantLightElement interface: attribute elevation
-PASS Unscopable handled correctly for elevation property on SVGFEDistantLightElement
-PASS SVGFEPointLightElement interface: existence and properties of interface object
-PASS SVGFEPointLightElement interface object length
-PASS SVGFEPointLightElement interface object name
-PASS SVGFEPointLightElement interface: existence and properties of interface prototype object
-PASS SVGFEPointLightElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGFEPointLightElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGFEPointLightElement interface: attribute x
-PASS Unscopable handled correctly for x property on SVGFEPointLightElement
-PASS SVGFEPointLightElement interface: attribute y
-PASS Unscopable handled correctly for y property on SVGFEPointLightElement
-PASS SVGFEPointLightElement interface: attribute z
-PASS Unscopable handled correctly for z property on SVGFEPointLightElement
-PASS SVGFEPointLightElement must be primary interface of fePointLight
-PASS Stringification of fePointLight
-PASS SVGFEPointLightElement interface: fePointLight must inherit property "x" with the proper type
-PASS SVGFEPointLightElement interface: fePointLight must inherit property "y" with the proper type
-PASS SVGFEPointLightElement interface: fePointLight must inherit property "z" with the proper type
-PASS SVGElement interface: fePointLight must inherit property "className" with the proper type
-PASS SVGElement interface: fePointLight must inherit property "dataset" with the proper type
-PASS SVGElement interface: fePointLight must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: fePointLight must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: fePointLight must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: fePointLight must inherit property "focus()" with the proper type
-PASS SVGElement interface: fePointLight must inherit property "blur()" with the proper type
-PASS SVGFESpotLightElement interface: existence and properties of interface object
-PASS SVGFESpotLightElement interface object length
-PASS SVGFESpotLightElement interface object name
-PASS SVGFESpotLightElement interface: existence and properties of interface prototype object
-PASS SVGFESpotLightElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGFESpotLightElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGFESpotLightElement interface: attribute x
-PASS Unscopable handled correctly for x property on SVGFESpotLightElement
-PASS SVGFESpotLightElement interface: attribute y
-PASS Unscopable handled correctly for y property on SVGFESpotLightElement
-PASS SVGFESpotLightElement interface: attribute z
-PASS Unscopable handled correctly for z property on SVGFESpotLightElement
-PASS SVGFESpotLightElement interface: attribute pointsAtX
-PASS Unscopable handled correctly for pointsAtX property on SVGFESpotLightElement
-PASS SVGFESpotLightElement interface: attribute pointsAtY
-PASS Unscopable handled correctly for pointsAtY property on SVGFESpotLightElement
-PASS SVGFESpotLightElement interface: attribute pointsAtZ
-PASS Unscopable handled correctly for pointsAtZ property on SVGFESpotLightElement
-PASS SVGFESpotLightElement interface: attribute specularExponent
-PASS Unscopable handled correctly for specularExponent property on SVGFESpotLightElement
-PASS SVGFESpotLightElement interface: attribute limitingConeAngle
-PASS Unscopable handled correctly for limitingConeAngle property on SVGFESpotLightElement
-PASS SVGFESpotLightElement must be primary interface of feSpotLight
-PASS Stringification of feSpotLight
-PASS SVGFESpotLightElement interface: feSpotLight must inherit property "x" with the proper type
-PASS SVGFESpotLightElement interface: feSpotLight must inherit property "y" with the proper type
-PASS SVGFESpotLightElement interface: feSpotLight must inherit property "z" with the proper type
-PASS SVGFESpotLightElement interface: feSpotLight must inherit property "pointsAtX" with the proper type
-PASS SVGFESpotLightElement interface: feSpotLight must inherit property "pointsAtY" with the proper type
-PASS SVGFESpotLightElement interface: feSpotLight must inherit property "pointsAtZ" with the proper type
-PASS SVGFESpotLightElement interface: feSpotLight must inherit property "specularExponent" with the proper type
-PASS SVGFESpotLightElement interface: feSpotLight must inherit property "limitingConeAngle" with the proper type
-PASS SVGElement interface: feSpotLight must inherit property "className" with the proper type
-PASS SVGElement interface: feSpotLight must inherit property "dataset" with the proper type
-PASS SVGElement interface: feSpotLight must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: feSpotLight must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: feSpotLight must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: feSpotLight must inherit property "focus()" with the proper type
-PASS SVGElement interface: feSpotLight must inherit property "blur()" with the proper type
-PASS SVGFEDisplacementMapElement interface: existence and properties of interface object
-PASS SVGFEDisplacementMapElement interface object length
-PASS SVGFEDisplacementMapElement interface object name
-PASS SVGFEDisplacementMapElement interface: existence and properties of interface prototype object
-PASS SVGFEDisplacementMapElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGFEDisplacementMapElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGFEDisplacementMapElement interface: constant SVG_CHANNEL_UNKNOWN on interface object
-PASS SVGFEDisplacementMapElement interface: constant SVG_CHANNEL_UNKNOWN on interface prototype object
-PASS SVGFEDisplacementMapElement interface: constant SVG_CHANNEL_R on interface object
-PASS SVGFEDisplacementMapElement interface: constant SVG_CHANNEL_R on interface prototype object
-PASS SVGFEDisplacementMapElement interface: constant SVG_CHANNEL_G on interface object
-PASS SVGFEDisplacementMapElement interface: constant SVG_CHANNEL_G on interface prototype object
-PASS SVGFEDisplacementMapElement interface: constant SVG_CHANNEL_B on interface object
-PASS SVGFEDisplacementMapElement interface: constant SVG_CHANNEL_B on interface prototype object
-PASS SVGFEDisplacementMapElement interface: constant SVG_CHANNEL_A on interface object
-PASS SVGFEDisplacementMapElement interface: constant SVG_CHANNEL_A on interface prototype object
-PASS SVGFEDisplacementMapElement interface: attribute in1
-PASS Unscopable handled correctly for in1 property on SVGFEDisplacementMapElement
-PASS SVGFEDisplacementMapElement interface: attribute in2
-PASS Unscopable handled correctly for in2 property on SVGFEDisplacementMapElement
-PASS SVGFEDisplacementMapElement interface: attribute scale
-PASS Unscopable handled correctly for scale property on SVGFEDisplacementMapElement
-PASS SVGFEDisplacementMapElement interface: attribute xChannelSelector
-PASS Unscopable handled correctly for xChannelSelector property on SVGFEDisplacementMapElement
-PASS SVGFEDisplacementMapElement interface: attribute yChannelSelector
-PASS Unscopable handled correctly for yChannelSelector property on SVGFEDisplacementMapElement
-PASS SVGFEDisplacementMapElement interface: attribute x
-PASS Unscopable handled correctly for x property on SVGFEDisplacementMapElement
-PASS SVGFEDisplacementMapElement interface: attribute y
-PASS Unscopable handled correctly for y property on SVGFEDisplacementMapElement
-PASS SVGFEDisplacementMapElement interface: attribute width
-PASS Unscopable handled correctly for width property on SVGFEDisplacementMapElement
-PASS SVGFEDisplacementMapElement interface: attribute height
-PASS Unscopable handled correctly for height property on SVGFEDisplacementMapElement
-PASS SVGFEDisplacementMapElement interface: attribute result
-PASS Unscopable handled correctly for result property on SVGFEDisplacementMapElement
-PASS SVGFEDisplacementMapElement must be primary interface of feDisplacementMap
-PASS Stringification of feDisplacementMap
-PASS SVGFEDisplacementMapElement interface: feDisplacementMap must inherit property "SVG_CHANNEL_UNKNOWN" with the proper type
-PASS SVGFEDisplacementMapElement interface: feDisplacementMap must inherit property "SVG_CHANNEL_R" with the proper type
-PASS SVGFEDisplacementMapElement interface: feDisplacementMap must inherit property "SVG_CHANNEL_G" with the proper type
-PASS SVGFEDisplacementMapElement interface: feDisplacementMap must inherit property "SVG_CHANNEL_B" with the proper type
-PASS SVGFEDisplacementMapElement interface: feDisplacementMap must inherit property "SVG_CHANNEL_A" with the proper type
-PASS SVGFEDisplacementMapElement interface: feDisplacementMap must inherit property "in1" with the proper type
-PASS SVGFEDisplacementMapElement interface: feDisplacementMap must inherit property "in2" with the proper type
-PASS SVGFEDisplacementMapElement interface: feDisplacementMap must inherit property "scale" with the proper type
-PASS SVGFEDisplacementMapElement interface: feDisplacementMap must inherit property "xChannelSelector" with the proper type
-PASS SVGFEDisplacementMapElement interface: feDisplacementMap must inherit property "yChannelSelector" with the proper type
-PASS SVGFEDisplacementMapElement interface: feDisplacementMap must inherit property "x" with the proper type
-PASS SVGFEDisplacementMapElement interface: feDisplacementMap must inherit property "y" with the proper type
-PASS SVGFEDisplacementMapElement interface: feDisplacementMap must inherit property "width" with the proper type
-PASS SVGFEDisplacementMapElement interface: feDisplacementMap must inherit property "height" with the proper type
-PASS SVGFEDisplacementMapElement interface: feDisplacementMap must inherit property "result" with the proper type
-PASS SVGElement interface: feDisplacementMap must inherit property "className" with the proper type
-PASS SVGElement interface: feDisplacementMap must inherit property "dataset" with the proper type
-PASS SVGElement interface: feDisplacementMap must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: feDisplacementMap must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: feDisplacementMap must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: feDisplacementMap must inherit property "focus()" with the proper type
-PASS SVGElement interface: feDisplacementMap must inherit property "blur()" with the proper type
-PASS SVGFEDropShadowElement interface: existence and properties of interface object
-PASS SVGFEDropShadowElement interface object length
-PASS SVGFEDropShadowElement interface object name
-PASS SVGFEDropShadowElement interface: existence and properties of interface prototype object
-PASS SVGFEDropShadowElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGFEDropShadowElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGFEDropShadowElement interface: attribute in1
-PASS Unscopable handled correctly for in1 property on SVGFEDropShadowElement
-PASS SVGFEDropShadowElement interface: attribute dx
-PASS Unscopable handled correctly for dx property on SVGFEDropShadowElement
-PASS SVGFEDropShadowElement interface: attribute dy
-PASS Unscopable handled correctly for dy property on SVGFEDropShadowElement
-PASS SVGFEDropShadowElement interface: attribute stdDeviationX
-PASS Unscopable handled correctly for stdDeviationX property on SVGFEDropShadowElement
-PASS SVGFEDropShadowElement interface: attribute stdDeviationY
-PASS Unscopable handled correctly for stdDeviationY property on SVGFEDropShadowElement
-PASS SVGFEDropShadowElement interface: operation setStdDeviation(float, float)
-PASS Unscopable handled correctly for setStdDeviation(float, float) on SVGFEDropShadowElement
-PASS SVGFEDropShadowElement interface: attribute x
-PASS Unscopable handled correctly for x property on SVGFEDropShadowElement
-PASS SVGFEDropShadowElement interface: attribute y
-PASS Unscopable handled correctly for y property on SVGFEDropShadowElement
-PASS SVGFEDropShadowElement interface: attribute width
-PASS Unscopable handled correctly for width property on SVGFEDropShadowElement
-PASS SVGFEDropShadowElement interface: attribute height
-PASS Unscopable handled correctly for height property on SVGFEDropShadowElement
-PASS SVGFEDropShadowElement interface: attribute result
-PASS Unscopable handled correctly for result property on SVGFEDropShadowElement
-PASS SVGFEDropShadowElement must be primary interface of feDropShadow
-PASS Stringification of feDropShadow
-PASS SVGFEDropShadowElement interface: feDropShadow must inherit property "in1" with the proper type
-PASS SVGFEDropShadowElement interface: feDropShadow must inherit property "dx" with the proper type
-PASS SVGFEDropShadowElement interface: feDropShadow must inherit property "dy" with the proper type
-PASS SVGFEDropShadowElement interface: feDropShadow must inherit property "stdDeviationX" with the proper type
-PASS SVGFEDropShadowElement interface: feDropShadow must inherit property "stdDeviationY" with the proper type
-PASS SVGFEDropShadowElement interface: feDropShadow must inherit property "setStdDeviation(float, float)" with the proper type
-PASS SVGFEDropShadowElement interface: calling setStdDeviation(float, float) on feDropShadow with too few arguments must throw TypeError
-PASS SVGFEDropShadowElement interface: feDropShadow must inherit property "x" with the proper type
-PASS SVGFEDropShadowElement interface: feDropShadow must inherit property "y" with the proper type
-PASS SVGFEDropShadowElement interface: feDropShadow must inherit property "width" with the proper type
-PASS SVGFEDropShadowElement interface: feDropShadow must inherit property "height" with the proper type
-PASS SVGFEDropShadowElement interface: feDropShadow must inherit property "result" with the proper type
-PASS SVGElement interface: feDropShadow must inherit property "className" with the proper type
-PASS SVGElement interface: feDropShadow must inherit property "dataset" with the proper type
-PASS SVGElement interface: feDropShadow must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: feDropShadow must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: feDropShadow must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: feDropShadow must inherit property "focus()" with the proper type
-PASS SVGElement interface: feDropShadow must inherit property "blur()" with the proper type
-PASS SVGFEFloodElement interface: existence and properties of interface object
-PASS SVGFEFloodElement interface object length
-PASS SVGFEFloodElement interface object name
-PASS SVGFEFloodElement interface: existence and properties of interface prototype object
-PASS SVGFEFloodElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGFEFloodElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGFEFloodElement interface: attribute x
-PASS Unscopable handled correctly for x property on SVGFEFloodElement
-PASS SVGFEFloodElement interface: attribute y
-PASS Unscopable handled correctly for y property on SVGFEFloodElement
-PASS SVGFEFloodElement interface: attribute width
-PASS Unscopable handled correctly for width property on SVGFEFloodElement
-PASS SVGFEFloodElement interface: attribute height
-PASS Unscopable handled correctly for height property on SVGFEFloodElement
-PASS SVGFEFloodElement interface: attribute result
-PASS Unscopable handled correctly for result property on SVGFEFloodElement
-PASS SVGFEFloodElement must be primary interface of feFlood
-PASS Stringification of feFlood
-PASS SVGFEFloodElement interface: feFlood must inherit property "x" with the proper type
-PASS SVGFEFloodElement interface: feFlood must inherit property "y" with the proper type
-PASS SVGFEFloodElement interface: feFlood must inherit property "width" with the proper type
-PASS SVGFEFloodElement interface: feFlood must inherit property "height" with the proper type
-PASS SVGFEFloodElement interface: feFlood must inherit property "result" with the proper type
-PASS SVGElement interface: feFlood must inherit property "className" with the proper type
-PASS SVGElement interface: feFlood must inherit property "dataset" with the proper type
-PASS SVGElement interface: feFlood must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: feFlood must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: feFlood must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: feFlood must inherit property "focus()" with the proper type
-PASS SVGElement interface: feFlood must inherit property "blur()" with the proper type
-PASS SVGFEGaussianBlurElement interface: existence and properties of interface object
-PASS SVGFEGaussianBlurElement interface object length
-PASS SVGFEGaussianBlurElement interface object name
-PASS SVGFEGaussianBlurElement interface: existence and properties of interface prototype object
-PASS SVGFEGaussianBlurElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGFEGaussianBlurElement interface: existence and properties of interface prototype object's @@unscopables property
-FAIL SVGFEGaussianBlurElement interface: constant SVG_EDGEMODE_UNKNOWN on interface object assert_own_property: expected property "SVG_EDGEMODE_UNKNOWN" missing
-FAIL SVGFEGaussianBlurElement interface: constant SVG_EDGEMODE_UNKNOWN on interface prototype object assert_own_property: expected property "SVG_EDGEMODE_UNKNOWN" missing
-FAIL SVGFEGaussianBlurElement interface: constant SVG_EDGEMODE_DUPLICATE on interface object assert_own_property: expected property "SVG_EDGEMODE_DUPLICATE" missing
-FAIL SVGFEGaussianBlurElement interface: constant SVG_EDGEMODE_DUPLICATE on interface prototype object assert_own_property: expected property "SVG_EDGEMODE_DUPLICATE" missing
-FAIL SVGFEGaussianBlurElement interface: constant SVG_EDGEMODE_WRAP on interface object assert_own_property: expected property "SVG_EDGEMODE_WRAP" missing
-FAIL SVGFEGaussianBlurElement interface: constant SVG_EDGEMODE_WRAP on interface prototype object assert_own_property: expected property "SVG_EDGEMODE_WRAP" missing
-FAIL SVGFEGaussianBlurElement interface: constant SVG_EDGEMODE_NONE on interface object assert_own_property: expected property "SVG_EDGEMODE_NONE" missing
-FAIL SVGFEGaussianBlurElement interface: constant SVG_EDGEMODE_NONE on interface prototype object assert_own_property: expected property "SVG_EDGEMODE_NONE" missing
-PASS SVGFEGaussianBlurElement interface: attribute in1
-PASS Unscopable handled correctly for in1 property on SVGFEGaussianBlurElement
-PASS SVGFEGaussianBlurElement interface: attribute stdDeviationX
-PASS Unscopable handled correctly for stdDeviationX property on SVGFEGaussianBlurElement
-PASS SVGFEGaussianBlurElement interface: attribute stdDeviationY
-PASS Unscopable handled correctly for stdDeviationY property on SVGFEGaussianBlurElement
-FAIL SVGFEGaussianBlurElement interface: attribute edgeMode assert_true: The prototype object must have a property "edgeMode" expected true got false
-PASS Unscopable handled correctly for edgeMode property on SVGFEGaussianBlurElement
-PASS SVGFEGaussianBlurElement interface: operation setStdDeviation(float, float)
-PASS Unscopable handled correctly for setStdDeviation(float, float) on SVGFEGaussianBlurElement
-PASS SVGFEGaussianBlurElement interface: attribute x
-PASS Unscopable handled correctly for x property on SVGFEGaussianBlurElement
-PASS SVGFEGaussianBlurElement interface: attribute y
-PASS Unscopable handled correctly for y property on SVGFEGaussianBlurElement
-PASS SVGFEGaussianBlurElement interface: attribute width
-PASS Unscopable handled correctly for width property on SVGFEGaussianBlurElement
-PASS SVGFEGaussianBlurElement interface: attribute height
-PASS Unscopable handled correctly for height property on SVGFEGaussianBlurElement
-PASS SVGFEGaussianBlurElement interface: attribute result
-PASS Unscopable handled correctly for result property on SVGFEGaussianBlurElement
-PASS SVGFEGaussianBlurElement must be primary interface of feGaussianBlur
-PASS Stringification of feGaussianBlur
-FAIL SVGFEGaussianBlurElement interface: feGaussianBlur must inherit property "SVG_EDGEMODE_UNKNOWN" with the proper type assert_inherits: property "SVG_EDGEMODE_UNKNOWN" not found in prototype chain
-FAIL SVGFEGaussianBlurElement interface: feGaussianBlur must inherit property "SVG_EDGEMODE_DUPLICATE" with the proper type assert_inherits: property "SVG_EDGEMODE_DUPLICATE" not found in prototype chain
-FAIL SVGFEGaussianBlurElement interface: feGaussianBlur must inherit property "SVG_EDGEMODE_WRAP" with the proper type assert_inherits: property "SVG_EDGEMODE_WRAP" not found in prototype chain
-FAIL SVGFEGaussianBlurElement interface: feGaussianBlur must inherit property "SVG_EDGEMODE_NONE" with the proper type assert_inherits: property "SVG_EDGEMODE_NONE" not found in prototype chain
-PASS SVGFEGaussianBlurElement interface: feGaussianBlur must inherit property "in1" with the proper type
-PASS SVGFEGaussianBlurElement interface: feGaussianBlur must inherit property "stdDeviationX" with the proper type
-PASS SVGFEGaussianBlurElement interface: feGaussianBlur must inherit property "stdDeviationY" with the proper type
-FAIL SVGFEGaussianBlurElement interface: feGaussianBlur must inherit property "edgeMode" with the proper type assert_inherits: property "edgeMode" not found in prototype chain
-PASS SVGFEGaussianBlurElement interface: feGaussianBlur must inherit property "setStdDeviation(float, float)" with the proper type
-PASS SVGFEGaussianBlurElement interface: calling setStdDeviation(float, float) on feGaussianBlur with too few arguments must throw TypeError
-PASS SVGFEGaussianBlurElement interface: feGaussianBlur must inherit property "x" with the proper type
-PASS SVGFEGaussianBlurElement interface: feGaussianBlur must inherit property "y" with the proper type
-PASS SVGFEGaussianBlurElement interface: feGaussianBlur must inherit property "width" with the proper type
-PASS SVGFEGaussianBlurElement interface: feGaussianBlur must inherit property "height" with the proper type
-PASS SVGFEGaussianBlurElement interface: feGaussianBlur must inherit property "result" with the proper type
-PASS SVGElement interface: feGaussianBlur must inherit property "className" with the proper type
-PASS SVGElement interface: feGaussianBlur must inherit property "dataset" with the proper type
-PASS SVGElement interface: feGaussianBlur must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: feGaussianBlur must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: feGaussianBlur must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: feGaussianBlur must inherit property "focus()" with the proper type
-PASS SVGElement interface: feGaussianBlur must inherit property "blur()" with the proper type
-PASS SVGFEImageElement interface: existence and properties of interface object
-PASS SVGFEImageElement interface object length
-PASS SVGFEImageElement interface object name
-PASS SVGFEImageElement interface: existence and properties of interface prototype object
-PASS SVGFEImageElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGFEImageElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGFEImageElement interface: attribute preserveAspectRatio
-PASS Unscopable handled correctly for preserveAspectRatio property on SVGFEImageElement
-FAIL SVGFEImageElement interface: attribute crossOrigin assert_true: The prototype object must have a property "crossOrigin" expected true got false
-PASS Unscopable handled correctly for crossOrigin property on SVGFEImageElement
-PASS SVGFEImageElement interface: attribute x
-PASS Unscopable handled correctly for x property on SVGFEImageElement
-PASS SVGFEImageElement interface: attribute y
-PASS Unscopable handled correctly for y property on SVGFEImageElement
-PASS SVGFEImageElement interface: attribute width
-PASS Unscopable handled correctly for width property on SVGFEImageElement
-PASS SVGFEImageElement interface: attribute height
-PASS Unscopable handled correctly for height property on SVGFEImageElement
-PASS SVGFEImageElement interface: attribute result
-PASS Unscopable handled correctly for result property on SVGFEImageElement
-PASS SVGFEImageElement interface: attribute href
-PASS Unscopable handled correctly for href property on SVGFEImageElement
-PASS SVGFEImageElement must be primary interface of feImage
-PASS Stringification of feImage
-PASS SVGFEImageElement interface: feImage must inherit property "preserveAspectRatio" with the proper type
-FAIL SVGFEImageElement interface: feImage must inherit property "crossOrigin" with the proper type assert_inherits: property "crossOrigin" not found in prototype chain
-PASS SVGFEImageElement interface: feImage must inherit property "x" with the proper type
-PASS SVGFEImageElement interface: feImage must inherit property "y" with the proper type
-PASS SVGFEImageElement interface: feImage must inherit property "width" with the proper type
-PASS SVGFEImageElement interface: feImage must inherit property "height" with the proper type
-PASS SVGFEImageElement interface: feImage must inherit property "result" with the proper type
-PASS SVGFEImageElement interface: feImage must inherit property "href" with the proper type
-PASS SVGElement interface: feImage must inherit property "className" with the proper type
-PASS SVGElement interface: feImage must inherit property "dataset" with the proper type
-PASS SVGElement interface: feImage must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: feImage must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: feImage must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: feImage must inherit property "focus()" with the proper type
-PASS SVGElement interface: feImage must inherit property "blur()" with the proper type
-PASS SVGFEMergeElement interface: existence and properties of interface object
-PASS SVGFEMergeElement interface object length
-PASS SVGFEMergeElement interface object name
-PASS SVGFEMergeElement interface: existence and properties of interface prototype object
-PASS SVGFEMergeElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGFEMergeElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGFEMergeElement interface: attribute x
-PASS Unscopable handled correctly for x property on SVGFEMergeElement
-PASS SVGFEMergeElement interface: attribute y
-PASS Unscopable handled correctly for y property on SVGFEMergeElement
-PASS SVGFEMergeElement interface: attribute width
-PASS Unscopable handled correctly for width property on SVGFEMergeElement
-PASS SVGFEMergeElement interface: attribute height
-PASS Unscopable handled correctly for height property on SVGFEMergeElement
-PASS SVGFEMergeElement interface: attribute result
-PASS Unscopable handled correctly for result property on SVGFEMergeElement
-PASS SVGFEMergeElement must be primary interface of feMerge
-PASS Stringification of feMerge
-PASS SVGFEMergeElement interface: feMerge must inherit property "x" with the proper type
-PASS SVGFEMergeElement interface: feMerge must inherit property "y" with the proper type
-PASS SVGFEMergeElement interface: feMerge must inherit property "width" with the proper type
-PASS SVGFEMergeElement interface: feMerge must inherit property "height" with the proper type
-PASS SVGFEMergeElement interface: feMerge must inherit property "result" with the proper type
-PASS SVGElement interface: feMerge must inherit property "className" with the proper type
-PASS SVGElement interface: feMerge must inherit property "dataset" with the proper type
-PASS SVGElement interface: feMerge must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: feMerge must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: feMerge must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: feMerge must inherit property "focus()" with the proper type
-PASS SVGElement interface: feMerge must inherit property "blur()" with the proper type
-PASS SVGFEMergeNodeElement interface: existence and properties of interface object
-PASS SVGFEMergeNodeElement interface object length
-PASS SVGFEMergeNodeElement interface object name
-PASS SVGFEMergeNodeElement interface: existence and properties of interface prototype object
-PASS SVGFEMergeNodeElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGFEMergeNodeElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGFEMergeNodeElement interface: attribute in1
-PASS Unscopable handled correctly for in1 property on SVGFEMergeNodeElement
-PASS SVGFEMergeNodeElement must be primary interface of feMergeNode
-PASS Stringification of feMergeNode
-PASS SVGFEMergeNodeElement interface: feMergeNode must inherit property "in1" with the proper type
-PASS SVGElement interface: feMergeNode must inherit property "className" with the proper type
-PASS SVGElement interface: feMergeNode must inherit property "dataset" with the proper type
-PASS SVGElement interface: feMergeNode must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: feMergeNode must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: feMergeNode must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: feMergeNode must inherit property "focus()" with the proper type
-PASS SVGElement interface: feMergeNode must inherit property "blur()" with the proper type
-PASS SVGFEMorphologyElement interface: existence and properties of interface object
-PASS SVGFEMorphologyElement interface object length
-PASS SVGFEMorphologyElement interface object name
-PASS SVGFEMorphologyElement interface: existence and properties of interface prototype object
-PASS SVGFEMorphologyElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGFEMorphologyElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGFEMorphologyElement interface: constant SVG_MORPHOLOGY_OPERATOR_UNKNOWN on interface object
-PASS SVGFEMorphologyElement interface: constant SVG_MORPHOLOGY_OPERATOR_UNKNOWN on interface prototype object
-PASS SVGFEMorphologyElement interface: constant SVG_MORPHOLOGY_OPERATOR_ERODE on interface object
-PASS SVGFEMorphologyElement interface: constant SVG_MORPHOLOGY_OPERATOR_ERODE on interface prototype object
-PASS SVGFEMorphologyElement interface: constant SVG_MORPHOLOGY_OPERATOR_DILATE on interface object
-PASS SVGFEMorphologyElement interface: constant SVG_MORPHOLOGY_OPERATOR_DILATE on interface prototype object
-PASS SVGFEMorphologyElement interface: attribute in1
-PASS Unscopable handled correctly for in1 property on SVGFEMorphologyElement
-PASS SVGFEMorphologyElement interface: attribute operator
-PASS Unscopable handled correctly for operator property on SVGFEMorphologyElement
-PASS SVGFEMorphologyElement interface: attribute radiusX
-PASS Unscopable handled correctly for radiusX property on SVGFEMorphologyElement
-PASS SVGFEMorphologyElement interface: attribute radiusY
-PASS Unscopable handled correctly for radiusY property on SVGFEMorphologyElement
-PASS SVGFEMorphologyElement interface: attribute x
-PASS Unscopable handled correctly for x property on SVGFEMorphologyElement
-PASS SVGFEMorphologyElement interface: attribute y
-PASS Unscopable handled correctly for y property on SVGFEMorphologyElement
-PASS SVGFEMorphologyElement interface: attribute width
-PASS Unscopable handled correctly for width property on SVGFEMorphologyElement
-PASS SVGFEMorphologyElement interface: attribute height
-PASS Unscopable handled correctly for height property on SVGFEMorphologyElement
-PASS SVGFEMorphologyElement interface: attribute result
-PASS Unscopable handled correctly for result property on SVGFEMorphologyElement
-PASS SVGFEMorphologyElement must be primary interface of feMorphology
-PASS Stringification of feMorphology
-PASS SVGFEMorphologyElement interface: feMorphology must inherit property "SVG_MORPHOLOGY_OPERATOR_UNKNOWN" with the proper type
-PASS SVGFEMorphologyElement interface: feMorphology must inherit property "SVG_MORPHOLOGY_OPERATOR_ERODE" with the proper type
-PASS SVGFEMorphologyElement interface: feMorphology must inherit property "SVG_MORPHOLOGY_OPERATOR_DILATE" with the proper type
-PASS SVGFEMorphologyElement interface: feMorphology must inherit property "in1" with the proper type
-PASS SVGFEMorphologyElement interface: feMorphology must inherit property "operator" with the proper type
-PASS SVGFEMorphologyElement interface: feMorphology must inherit property "radiusX" with the proper type
-PASS SVGFEMorphologyElement interface: feMorphology must inherit property "radiusY" with the proper type
-PASS SVGFEMorphologyElement interface: feMorphology must inherit property "x" with the proper type
-PASS SVGFEMorphologyElement interface: feMorphology must inherit property "y" with the proper type
-PASS SVGFEMorphologyElement interface: feMorphology must inherit property "width" with the proper type
-PASS SVGFEMorphologyElement interface: feMorphology must inherit property "height" with the proper type
-PASS SVGFEMorphologyElement interface: feMorphology must inherit property "result" with the proper type
-PASS SVGElement interface: feMorphology must inherit property "className" with the proper type
-PASS SVGElement interface: feMorphology must inherit property "dataset" with the proper type
-PASS SVGElement interface: feMorphology must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: feMorphology must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: feMorphology must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: feMorphology must inherit property "focus()" with the proper type
-PASS SVGElement interface: feMorphology must inherit property "blur()" with the proper type
-PASS SVGFEOffsetElement interface: existence and properties of interface object
-PASS SVGFEOffsetElement interface object length
-PASS SVGFEOffsetElement interface object name
-PASS SVGFEOffsetElement interface: existence and properties of interface prototype object
-PASS SVGFEOffsetElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGFEOffsetElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGFEOffsetElement interface: attribute in1
-PASS Unscopable handled correctly for in1 property on SVGFEOffsetElement
-PASS SVGFEOffsetElement interface: attribute dx
-PASS Unscopable handled correctly for dx property on SVGFEOffsetElement
-PASS SVGFEOffsetElement interface: attribute dy
-PASS Unscopable handled correctly for dy property on SVGFEOffsetElement
-PASS SVGFEOffsetElement interface: attribute x
-PASS Unscopable handled correctly for x property on SVGFEOffsetElement
-PASS SVGFEOffsetElement interface: attribute y
-PASS Unscopable handled correctly for y property on SVGFEOffsetElement
-PASS SVGFEOffsetElement interface: attribute width
-PASS Unscopable handled correctly for width property on SVGFEOffsetElement
-PASS SVGFEOffsetElement interface: attribute height
-PASS Unscopable handled correctly for height property on SVGFEOffsetElement
-PASS SVGFEOffsetElement interface: attribute result
-PASS Unscopable handled correctly for result property on SVGFEOffsetElement
-PASS SVGFESpecularLightingElement interface: existence and properties of interface object
-PASS SVGFESpecularLightingElement interface object length
-PASS SVGFESpecularLightingElement interface object name
-PASS SVGFESpecularLightingElement interface: existence and properties of interface prototype object
-PASS SVGFESpecularLightingElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGFESpecularLightingElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGFESpecularLightingElement interface: attribute in1
-PASS Unscopable handled correctly for in1 property on SVGFESpecularLightingElement
-PASS SVGFESpecularLightingElement interface: attribute surfaceScale
-PASS Unscopable handled correctly for surfaceScale property on SVGFESpecularLightingElement
-PASS SVGFESpecularLightingElement interface: attribute specularConstant
-PASS Unscopable handled correctly for specularConstant property on SVGFESpecularLightingElement
-PASS SVGFESpecularLightingElement interface: attribute specularExponent
-PASS Unscopable handled correctly for specularExponent property on SVGFESpecularLightingElement
-PASS SVGFESpecularLightingElement interface: attribute kernelUnitLengthX
-PASS Unscopable handled correctly for kernelUnitLengthX property on SVGFESpecularLightingElement
-PASS SVGFESpecularLightingElement interface: attribute kernelUnitLengthY
-PASS Unscopable handled correctly for kernelUnitLengthY property on SVGFESpecularLightingElement
-PASS SVGFESpecularLightingElement interface: attribute x
-PASS Unscopable handled correctly for x property on SVGFESpecularLightingElement
-PASS SVGFESpecularLightingElement interface: attribute y
-PASS Unscopable handled correctly for y property on SVGFESpecularLightingElement
-PASS SVGFESpecularLightingElement interface: attribute width
-PASS Unscopable handled correctly for width property on SVGFESpecularLightingElement
-PASS SVGFESpecularLightingElement interface: attribute height
-PASS Unscopable handled correctly for height property on SVGFESpecularLightingElement
-PASS SVGFESpecularLightingElement interface: attribute result
-PASS Unscopable handled correctly for result property on SVGFESpecularLightingElement
-PASS SVGFESpecularLightingElement must be primary interface of feSpecularLighting
-PASS Stringification of feSpecularLighting
-PASS SVGFESpecularLightingElement interface: feSpecularLighting must inherit property "in1" with the proper type
-PASS SVGFESpecularLightingElement interface: feSpecularLighting must inherit property "surfaceScale" with the proper type
-PASS SVGFESpecularLightingElement interface: feSpecularLighting must inherit property "specularConstant" with the proper type
-PASS SVGFESpecularLightingElement interface: feSpecularLighting must inherit property "specularExponent" with the proper type
-PASS SVGFESpecularLightingElement interface: feSpecularLighting must inherit property "kernelUnitLengthX" with the proper type
-PASS SVGFESpecularLightingElement interface: feSpecularLighting must inherit property "kernelUnitLengthY" with the proper type
-PASS SVGFESpecularLightingElement interface: feSpecularLighting must inherit property "x" with the proper type
-PASS SVGFESpecularLightingElement interface: feSpecularLighting must inherit property "y" with the proper type
-PASS SVGFESpecularLightingElement interface: feSpecularLighting must inherit property "width" with the proper type
-PASS SVGFESpecularLightingElement interface: feSpecularLighting must inherit property "height" with the proper type
-PASS SVGFESpecularLightingElement interface: feSpecularLighting must inherit property "result" with the proper type
-PASS SVGElement interface: feSpecularLighting must inherit property "className" with the proper type
-PASS SVGElement interface: feSpecularLighting must inherit property "dataset" with the proper type
-PASS SVGElement interface: feSpecularLighting must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: feSpecularLighting must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: feSpecularLighting must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: feSpecularLighting must inherit property "focus()" with the proper type
-PASS SVGElement interface: feSpecularLighting must inherit property "blur()" with the proper type
-PASS SVGFETileElement interface: existence and properties of interface object
-PASS SVGFETileElement interface object length
-PASS SVGFETileElement interface object name
-PASS SVGFETileElement interface: existence and properties of interface prototype object
-PASS SVGFETileElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGFETileElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGFETileElement interface: attribute in1
-PASS Unscopable handled correctly for in1 property on SVGFETileElement
-PASS SVGFETileElement interface: attribute x
-PASS Unscopable handled correctly for x property on SVGFETileElement
-PASS SVGFETileElement interface: attribute y
-PASS Unscopable handled correctly for y property on SVGFETileElement
-PASS SVGFETileElement interface: attribute width
-PASS Unscopable handled correctly for width property on SVGFETileElement
-PASS SVGFETileElement interface: attribute height
-PASS Unscopable handled correctly for height property on SVGFETileElement
-PASS SVGFETileElement interface: attribute result
-PASS Unscopable handled correctly for result property on SVGFETileElement
-PASS SVGFETileElement must be primary interface of feTile
-PASS Stringification of feTile
-PASS SVGFETileElement interface: feTile must inherit property "in1" with the proper type
-PASS SVGFETileElement interface: feTile must inherit property "x" with the proper type
-PASS SVGFETileElement interface: feTile must inherit property "y" with the proper type
-PASS SVGFETileElement interface: feTile must inherit property "width" with the proper type
-PASS SVGFETileElement interface: feTile must inherit property "height" with the proper type
-PASS SVGFETileElement interface: feTile must inherit property "result" with the proper type
-PASS SVGElement interface: feTile must inherit property "className" with the proper type
-PASS SVGElement interface: feTile must inherit property "dataset" with the proper type
-PASS SVGElement interface: feTile must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: feTile must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: feTile must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: feTile must inherit property "focus()" with the proper type
-PASS SVGElement interface: feTile must inherit property "blur()" with the proper type
-PASS SVGFETurbulenceElement interface: existence and properties of interface object
-PASS SVGFETurbulenceElement interface object length
-PASS SVGFETurbulenceElement interface object name
-PASS SVGFETurbulenceElement interface: existence and properties of interface prototype object
-PASS SVGFETurbulenceElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGFETurbulenceElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGFETurbulenceElement interface: constant SVG_TURBULENCE_TYPE_UNKNOWN on interface object
-PASS SVGFETurbulenceElement interface: constant SVG_TURBULENCE_TYPE_UNKNOWN on interface prototype object
-PASS SVGFETurbulenceElement interface: constant SVG_TURBULENCE_TYPE_FRACTALNOISE on interface object
-PASS SVGFETurbulenceElement interface: constant SVG_TURBULENCE_TYPE_FRACTALNOISE on interface prototype object
-PASS SVGFETurbulenceElement interface: constant SVG_TURBULENCE_TYPE_TURBULENCE on interface object
-PASS SVGFETurbulenceElement interface: constant SVG_TURBULENCE_TYPE_TURBULENCE on interface prototype object
-PASS SVGFETurbulenceElement interface: constant SVG_STITCHTYPE_UNKNOWN on interface object
-PASS SVGFETurbulenceElement interface: constant SVG_STITCHTYPE_UNKNOWN on interface prototype object
-PASS SVGFETurbulenceElement interface: constant SVG_STITCHTYPE_STITCH on interface object
-PASS SVGFETurbulenceElement interface: constant SVG_STITCHTYPE_STITCH on interface prototype object
-PASS SVGFETurbulenceElement interface: constant SVG_STITCHTYPE_NOSTITCH on interface object
-PASS SVGFETurbulenceElement interface: constant SVG_STITCHTYPE_NOSTITCH on interface prototype object
-PASS SVGFETurbulenceElement interface: attribute baseFrequencyX
-PASS Unscopable handled correctly for baseFrequencyX property on SVGFETurbulenceElement
-PASS SVGFETurbulenceElement interface: attribute baseFrequencyY
-PASS Unscopable handled correctly for baseFrequencyY property on SVGFETurbulenceElement
-PASS SVGFETurbulenceElement interface: attribute numOctaves
-PASS Unscopable handled correctly for numOctaves property on SVGFETurbulenceElement
-PASS SVGFETurbulenceElement interface: attribute seed
-PASS Unscopable handled correctly for seed property on SVGFETurbulenceElement
-PASS SVGFETurbulenceElement interface: attribute stitchTiles
-PASS Unscopable handled correctly for stitchTiles property on SVGFETurbulenceElement
-PASS SVGFETurbulenceElement interface: attribute type
-PASS Unscopable handled correctly for type property on SVGFETurbulenceElement
-PASS SVGFETurbulenceElement interface: attribute x
-PASS Unscopable handled correctly for x property on SVGFETurbulenceElement
-PASS SVGFETurbulenceElement interface: attribute y
-PASS Unscopable handled correctly for y property on SVGFETurbulenceElement
-PASS SVGFETurbulenceElement interface: attribute width
-PASS Unscopable handled correctly for width property on SVGFETurbulenceElement
-PASS SVGFETurbulenceElement interface: attribute height
-PASS Unscopable handled correctly for height property on SVGFETurbulenceElement
-PASS SVGFETurbulenceElement interface: attribute result
-PASS Unscopable handled correctly for result property on SVGFETurbulenceElement
-PASS SVGFETurbulenceElement must be primary interface of feTurbulence
-PASS Stringification of feTurbulence
-PASS SVGFETurbulenceElement interface: feTurbulence must inherit property "SVG_TURBULENCE_TYPE_UNKNOWN" with the proper type
-PASS SVGFETurbulenceElement interface: feTurbulence must inherit property "SVG_TURBULENCE_TYPE_FRACTALNOISE" with the proper type
-PASS SVGFETurbulenceElement interface: feTurbulence must inherit property "SVG_TURBULENCE_TYPE_TURBULENCE" with the proper type
-PASS SVGFETurbulenceElement interface: feTurbulence must inherit property "SVG_STITCHTYPE_UNKNOWN" with the proper type
-PASS SVGFETurbulenceElement interface: feTurbulence must inherit property "SVG_STITCHTYPE_STITCH" with the proper type
-PASS SVGFETurbulenceElement interface: feTurbulence must inherit property "SVG_STITCHTYPE_NOSTITCH" with the proper type
-PASS SVGFETurbulenceElement interface: feTurbulence must inherit property "baseFrequencyX" with the proper type
-PASS SVGFETurbulenceElement interface: feTurbulence must inherit property "baseFrequencyY" with the proper type
-PASS SVGFETurbulenceElement interface: feTurbulence must inherit property "numOctaves" with the proper type
-PASS SVGFETurbulenceElement interface: feTurbulence must inherit property "seed" with the proper type
-PASS SVGFETurbulenceElement interface: feTurbulence must inherit property "stitchTiles" with the proper type
-PASS SVGFETurbulenceElement interface: feTurbulence must inherit property "type" with the proper type
-PASS SVGFETurbulenceElement interface: feTurbulence must inherit property "x" with the proper type
-PASS SVGFETurbulenceElement interface: feTurbulence must inherit property "y" with the proper type
-PASS SVGFETurbulenceElement interface: feTurbulence must inherit property "width" with the proper type
-PASS SVGFETurbulenceElement interface: feTurbulence must inherit property "height" with the proper type
-PASS SVGFETurbulenceElement interface: feTurbulence must inherit property "result" with the proper type
-PASS SVGElement interface: feTurbulence must inherit property "className" with the proper type
-PASS SVGElement interface: feTurbulence must inherit property "dataset" with the proper type
-PASS SVGElement interface: feTurbulence must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: feTurbulence must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: feTurbulence must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: feTurbulence must inherit property "focus()" with the proper type
-PASS SVGElement interface: feTurbulence must inherit property "blur()" with the proper type
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/url/interfaces.any-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/url/interfaces.any-expected.txt
deleted file mode 100644
index 4bd8ffd2..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/url/interfaces.any-expected.txt
+++ /dev/null
@@ -1,105 +0,0 @@
-This is a testharness.js-based test.
-Found 101 tests; 98 PASS, 3 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS URL interface: existence and properties of interface object
-PASS URL interface object length
-PASS URL interface object name
-PASS URL interface: legacy window alias
-PASS URL interface: existence and properties of interface prototype object
-PASS URL interface: existence and properties of interface prototype object's "constructor" property
-PASS URL interface: existence and properties of interface prototype object's @@unscopables property
-PASS URL interface: attribute href
-PASS Unscopable handled correctly for href property on URL
-PASS URL interface: stringifier
-PASS URL interface: attribute origin
-PASS Unscopable handled correctly for origin property on URL
-PASS URL interface: attribute protocol
-PASS Unscopable handled correctly for protocol property on URL
-PASS URL interface: attribute username
-PASS Unscopable handled correctly for username property on URL
-PASS URL interface: attribute password
-PASS Unscopable handled correctly for password property on URL
-PASS URL interface: attribute host
-PASS Unscopable handled correctly for host property on URL
-PASS URL interface: attribute hostname
-PASS Unscopable handled correctly for hostname property on URL
-PASS URL interface: attribute port
-PASS Unscopable handled correctly for port property on URL
-PASS URL interface: attribute pathname
-PASS Unscopable handled correctly for pathname property on URL
-PASS URL interface: attribute search
-PASS Unscopable handled correctly for search property on URL
-PASS URL interface: attribute searchParams
-PASS Unscopable handled correctly for searchParams property on URL
-PASS URL interface: attribute hash
-PASS Unscopable handled correctly for hash property on URL
-FAIL URL interface: operation toJSON() assert_own_property: interface prototype object missing non-static operation expected property "toJSON" missing
-PASS Unscopable handled correctly for toJSON() on URL
-PASS URL must be primary interface of new URL("http://foo")
-PASS Stringification of new URL("http://foo")
-PASS URL interface: new URL("http://foo") must inherit property "href" with the proper type
-PASS URL interface: new URL("http://foo") must inherit property "origin" with the proper type
-PASS URL interface: new URL("http://foo") must inherit property "protocol" with the proper type
-PASS URL interface: new URL("http://foo") must inherit property "username" with the proper type
-PASS URL interface: new URL("http://foo") must inherit property "password" with the proper type
-PASS URL interface: new URL("http://foo") must inherit property "host" with the proper type
-PASS URL interface: new URL("http://foo") must inherit property "hostname" with the proper type
-PASS URL interface: new URL("http://foo") must inherit property "port" with the proper type
-PASS URL interface: new URL("http://foo") must inherit property "pathname" with the proper type
-PASS URL interface: new URL("http://foo") must inherit property "search" with the proper type
-PASS URL interface: new URL("http://foo") must inherit property "searchParams" with the proper type
-PASS URL interface: new URL("http://foo") must inherit property "hash" with the proper type
-FAIL URL interface: new URL("http://foo") must inherit property "toJSON()" with the proper type assert_inherits: property "toJSON" not found in prototype chain
-FAIL Test toJSON operation of URL memberHolderObject.toJSON is not a function
-PASS URLSearchParams interface: existence and properties of interface object
-PASS URLSearchParams interface object length
-PASS URLSearchParams interface object name
-PASS URLSearchParams interface: existence and properties of interface prototype object
-PASS URLSearchParams interface: existence and properties of interface prototype object's "constructor" property
-PASS URLSearchParams interface: existence and properties of interface prototype object's @@unscopables property
-PASS URLSearchParams interface: operation append(USVString, USVString)
-PASS Unscopable handled correctly for append(USVString, USVString) on URLSearchParams
-PASS URLSearchParams interface: operation delete(USVString)
-PASS Unscopable handled correctly for delete(USVString) on URLSearchParams
-PASS URLSearchParams interface: operation get(USVString)
-PASS Unscopable handled correctly for get(USVString) on URLSearchParams
-PASS URLSearchParams interface: operation getAll(USVString)
-PASS Unscopable handled correctly for getAll(USVString) on URLSearchParams
-PASS URLSearchParams interface: operation has(USVString)
-PASS Unscopable handled correctly for has(USVString) on URLSearchParams
-PASS URLSearchParams interface: operation set(USVString, USVString)
-PASS Unscopable handled correctly for set(USVString, USVString) on URLSearchParams
-PASS URLSearchParams interface: operation sort()
-PASS Unscopable handled correctly for sort() on URLSearchParams
-PASS Testing Symbol.iterator property of iterable interface URLSearchParams
-PASS Testing pair iterable interface URLSearchParams
-PASS URLSearchParams interface: stringifier
-PASS URLSearchParams interface: operation entries()
-PASS Unscopable handled correctly for entries() on URLSearchParams
-PASS URLSearchParams interface: operation keys()
-PASS Unscopable handled correctly for keys() on URLSearchParams
-PASS URLSearchParams interface: operation values()
-PASS Unscopable handled correctly for values() on URLSearchParams
-PASS URLSearchParams interface: operation forEach(function, any)
-PASS Unscopable handled correctly for forEach(function, any) on URLSearchParams
-PASS URLSearchParams must be primary interface of new URLSearchParams("hi=there&thank=you")
-PASS Stringification of new URLSearchParams("hi=there&thank=you")
-PASS URLSearchParams interface: new URLSearchParams("hi=there&thank=you") must inherit property "append(USVString, USVString)" with the proper type
-PASS URLSearchParams interface: calling append(USVString, USVString) on new URLSearchParams("hi=there&thank=you") with too few arguments must throw TypeError
-PASS URLSearchParams interface: new URLSearchParams("hi=there&thank=you") must inherit property "delete(USVString)" with the proper type
-PASS URLSearchParams interface: calling delete(USVString) on new URLSearchParams("hi=there&thank=you") with too few arguments must throw TypeError
-PASS URLSearchParams interface: new URLSearchParams("hi=there&thank=you") must inherit property "get(USVString)" with the proper type
-PASS URLSearchParams interface: calling get(USVString) on new URLSearchParams("hi=there&thank=you") with too few arguments must throw TypeError
-PASS URLSearchParams interface: new URLSearchParams("hi=there&thank=you") must inherit property "getAll(USVString)" with the proper type
-PASS URLSearchParams interface: calling getAll(USVString) on new URLSearchParams("hi=there&thank=you") with too few arguments must throw TypeError
-PASS URLSearchParams interface: new URLSearchParams("hi=there&thank=you") must inherit property "has(USVString)" with the proper type
-PASS URLSearchParams interface: calling has(USVString) on new URLSearchParams("hi=there&thank=you") with too few arguments must throw TypeError
-PASS URLSearchParams interface: new URLSearchParams("hi=there&thank=you") must inherit property "set(USVString, USVString)" with the proper type
-PASS URLSearchParams interface: calling set(USVString, USVString) on new URLSearchParams("hi=there&thank=you") with too few arguments must throw TypeError
-PASS URLSearchParams interface: new URLSearchParams("hi=there&thank=you") must inherit property "sort()" with the proper type
-PASS URLSearchParams interface: new URLSearchParams("hi=there&thank=you") must inherit property "entries()" with the proper type
-PASS URLSearchParams interface: new URLSearchParams("hi=there&thank=you") must inherit property "keys()" with the proper type
-PASS URLSearchParams interface: new URLSearchParams("hi=there&thank=you") must inherit property "values()" with the proper type
-PASS URLSearchParams interface: new URLSearchParams("hi=there&thank=you") must inherit property "forEach(function, any)" with the proper type
-PASS URLSearchParams interface: calling forEach(function, any) on new URLSearchParams("hi=there&thank=you") with too few arguments must throw TypeError
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/url/interfaces.any.worker-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/url/interfaces.any.worker-expected.txt
deleted file mode 100644
index 4bd8ffd2..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/url/interfaces.any.worker-expected.txt
+++ /dev/null
@@ -1,105 +0,0 @@
-This is a testharness.js-based test.
-Found 101 tests; 98 PASS, 3 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS URL interface: existence and properties of interface object
-PASS URL interface object length
-PASS URL interface object name
-PASS URL interface: legacy window alias
-PASS URL interface: existence and properties of interface prototype object
-PASS URL interface: existence and properties of interface prototype object's "constructor" property
-PASS URL interface: existence and properties of interface prototype object's @@unscopables property
-PASS URL interface: attribute href
-PASS Unscopable handled correctly for href property on URL
-PASS URL interface: stringifier
-PASS URL interface: attribute origin
-PASS Unscopable handled correctly for origin property on URL
-PASS URL interface: attribute protocol
-PASS Unscopable handled correctly for protocol property on URL
-PASS URL interface: attribute username
-PASS Unscopable handled correctly for username property on URL
-PASS URL interface: attribute password
-PASS Unscopable handled correctly for password property on URL
-PASS URL interface: attribute host
-PASS Unscopable handled correctly for host property on URL
-PASS URL interface: attribute hostname
-PASS Unscopable handled correctly for hostname property on URL
-PASS URL interface: attribute port
-PASS Unscopable handled correctly for port property on URL
-PASS URL interface: attribute pathname
-PASS Unscopable handled correctly for pathname property on URL
-PASS URL interface: attribute search
-PASS Unscopable handled correctly for search property on URL
-PASS URL interface: attribute searchParams
-PASS Unscopable handled correctly for searchParams property on URL
-PASS URL interface: attribute hash
-PASS Unscopable handled correctly for hash property on URL
-FAIL URL interface: operation toJSON() assert_own_property: interface prototype object missing non-static operation expected property "toJSON" missing
-PASS Unscopable handled correctly for toJSON() on URL
-PASS URL must be primary interface of new URL("http://foo")
-PASS Stringification of new URL("http://foo")
-PASS URL interface: new URL("http://foo") must inherit property "href" with the proper type
-PASS URL interface: new URL("http://foo") must inherit property "origin" with the proper type
-PASS URL interface: new URL("http://foo") must inherit property "protocol" with the proper type
-PASS URL interface: new URL("http://foo") must inherit property "username" with the proper type
-PASS URL interface: new URL("http://foo") must inherit property "password" with the proper type
-PASS URL interface: new URL("http://foo") must inherit property "host" with the proper type
-PASS URL interface: new URL("http://foo") must inherit property "hostname" with the proper type
-PASS URL interface: new URL("http://foo") must inherit property "port" with the proper type
-PASS URL interface: new URL("http://foo") must inherit property "pathname" with the proper type
-PASS URL interface: new URL("http://foo") must inherit property "search" with the proper type
-PASS URL interface: new URL("http://foo") must inherit property "searchParams" with the proper type
-PASS URL interface: new URL("http://foo") must inherit property "hash" with the proper type
-FAIL URL interface: new URL("http://foo") must inherit property "toJSON()" with the proper type assert_inherits: property "toJSON" not found in prototype chain
-FAIL Test toJSON operation of URL memberHolderObject.toJSON is not a function
-PASS URLSearchParams interface: existence and properties of interface object
-PASS URLSearchParams interface object length
-PASS URLSearchParams interface object name
-PASS URLSearchParams interface: existence and properties of interface prototype object
-PASS URLSearchParams interface: existence and properties of interface prototype object's "constructor" property
-PASS URLSearchParams interface: existence and properties of interface prototype object's @@unscopables property
-PASS URLSearchParams interface: operation append(USVString, USVString)
-PASS Unscopable handled correctly for append(USVString, USVString) on URLSearchParams
-PASS URLSearchParams interface: operation delete(USVString)
-PASS Unscopable handled correctly for delete(USVString) on URLSearchParams
-PASS URLSearchParams interface: operation get(USVString)
-PASS Unscopable handled correctly for get(USVString) on URLSearchParams
-PASS URLSearchParams interface: operation getAll(USVString)
-PASS Unscopable handled correctly for getAll(USVString) on URLSearchParams
-PASS URLSearchParams interface: operation has(USVString)
-PASS Unscopable handled correctly for has(USVString) on URLSearchParams
-PASS URLSearchParams interface: operation set(USVString, USVString)
-PASS Unscopable handled correctly for set(USVString, USVString) on URLSearchParams
-PASS URLSearchParams interface: operation sort()
-PASS Unscopable handled correctly for sort() on URLSearchParams
-PASS Testing Symbol.iterator property of iterable interface URLSearchParams
-PASS Testing pair iterable interface URLSearchParams
-PASS URLSearchParams interface: stringifier
-PASS URLSearchParams interface: operation entries()
-PASS Unscopable handled correctly for entries() on URLSearchParams
-PASS URLSearchParams interface: operation keys()
-PASS Unscopable handled correctly for keys() on URLSearchParams
-PASS URLSearchParams interface: operation values()
-PASS Unscopable handled correctly for values() on URLSearchParams
-PASS URLSearchParams interface: operation forEach(function, any)
-PASS Unscopable handled correctly for forEach(function, any) on URLSearchParams
-PASS URLSearchParams must be primary interface of new URLSearchParams("hi=there&thank=you")
-PASS Stringification of new URLSearchParams("hi=there&thank=you")
-PASS URLSearchParams interface: new URLSearchParams("hi=there&thank=you") must inherit property "append(USVString, USVString)" with the proper type
-PASS URLSearchParams interface: calling append(USVString, USVString) on new URLSearchParams("hi=there&thank=you") with too few arguments must throw TypeError
-PASS URLSearchParams interface: new URLSearchParams("hi=there&thank=you") must inherit property "delete(USVString)" with the proper type
-PASS URLSearchParams interface: calling delete(USVString) on new URLSearchParams("hi=there&thank=you") with too few arguments must throw TypeError
-PASS URLSearchParams interface: new URLSearchParams("hi=there&thank=you") must inherit property "get(USVString)" with the proper type
-PASS URLSearchParams interface: calling get(USVString) on new URLSearchParams("hi=there&thank=you") with too few arguments must throw TypeError
-PASS URLSearchParams interface: new URLSearchParams("hi=there&thank=you") must inherit property "getAll(USVString)" with the proper type
-PASS URLSearchParams interface: calling getAll(USVString) on new URLSearchParams("hi=there&thank=you") with too few arguments must throw TypeError
-PASS URLSearchParams interface: new URLSearchParams("hi=there&thank=you") must inherit property "has(USVString)" with the proper type
-PASS URLSearchParams interface: calling has(USVString) on new URLSearchParams("hi=there&thank=you") with too few arguments must throw TypeError
-PASS URLSearchParams interface: new URLSearchParams("hi=there&thank=you") must inherit property "set(USVString, USVString)" with the proper type
-PASS URLSearchParams interface: calling set(USVString, USVString) on new URLSearchParams("hi=there&thank=you") with too few arguments must throw TypeError
-PASS URLSearchParams interface: new URLSearchParams("hi=there&thank=you") must inherit property "sort()" with the proper type
-PASS URLSearchParams interface: new URLSearchParams("hi=there&thank=you") must inherit property "entries()" with the proper type
-PASS URLSearchParams interface: new URLSearchParams("hi=there&thank=you") must inherit property "keys()" with the proper type
-PASS URLSearchParams interface: new URLSearchParams("hi=there&thank=you") must inherit property "values()" with the proper type
-PASS URLSearchParams interface: new URLSearchParams("hi=there&thank=you") must inherit property "forEach(function, any)" with the proper type
-PASS URLSearchParams interface: calling forEach(function, any) on new URLSearchParams("hi=there&thank=you") with too few arguments must throw TypeError
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/web-animations/interfaces/Animation/idlharness-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/web-animations/interfaces/Animation/idlharness-expected.txt
deleted file mode 100644
index d416e23b..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/web-animations/interfaces/Animation/idlharness-expected.txt
+++ /dev/null
@@ -1,67 +0,0 @@
-This is a testharness.js-based test.
-Found 63 tests; 57 PASS, 6 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS Animation interface: existence and properties of interface object
-PASS Animation interface object length
-PASS Animation interface object name
-PASS Animation interface: existence and properties of interface prototype object
-PASS Animation interface: existence and properties of interface prototype object's "constructor" property
-PASS Animation interface: existence and properties of interface prototype object's @@unscopables property
-PASS Animation interface: attribute id
-PASS Unscopable handled correctly for id property on Animation
-PASS Animation interface: attribute effect
-PASS Unscopable handled correctly for effect property on Animation
-FAIL Animation interface: attribute timeline assert_equals: setter must be function for PutForwards, Replaceable, or non-readonly attributes expected "function" but got "undefined"
-PASS Unscopable handled correctly for timeline property on Animation
-PASS Animation interface: attribute startTime
-PASS Unscopable handled correctly for startTime property on Animation
-PASS Animation interface: attribute currentTime
-PASS Unscopable handled correctly for currentTime property on Animation
-PASS Animation interface: attribute playbackRate
-PASS Unscopable handled correctly for playbackRate property on Animation
-PASS Animation interface: attribute playState
-PASS Unscopable handled correctly for playState property on Animation
-FAIL Animation interface: attribute pending assert_true: The prototype object must have a property "pending" expected true got false
-PASS Unscopable handled correctly for pending property on Animation
-PASS Animation interface: attribute ready
-PASS Unscopable handled correctly for ready property on Animation
-PASS Animation interface: attribute finished
-PASS Unscopable handled correctly for finished property on Animation
-PASS Animation interface: attribute onfinish
-PASS Unscopable handled correctly for onfinish property on Animation
-PASS Animation interface: attribute oncancel
-PASS Unscopable handled correctly for oncancel property on Animation
-PASS Animation interface: operation cancel()
-PASS Unscopable handled correctly for cancel() on Animation
-PASS Animation interface: operation finish()
-PASS Unscopable handled correctly for finish() on Animation
-PASS Animation interface: operation play()
-PASS Unscopable handled correctly for play() on Animation
-PASS Animation interface: operation pause()
-PASS Unscopable handled correctly for pause() on Animation
-FAIL Animation interface: operation updatePlaybackRate(double) assert_own_property: interface prototype object missing non-static operation expected property "updatePlaybackRate" missing
-PASS Unscopable handled correctly for updatePlaybackRate(double) on Animation
-PASS Animation interface: operation reverse()
-PASS Unscopable handled correctly for reverse() on Animation
-PASS Animation must be primary interface of new Animation()
-PASS Stringification of new Animation()
-PASS Animation interface: new Animation() must inherit property "id" with the proper type
-PASS Animation interface: new Animation() must inherit property "effect" with the proper type
-PASS Animation interface: new Animation() must inherit property "timeline" with the proper type
-PASS Animation interface: new Animation() must inherit property "startTime" with the proper type
-PASS Animation interface: new Animation() must inherit property "currentTime" with the proper type
-PASS Animation interface: new Animation() must inherit property "playbackRate" with the proper type
-PASS Animation interface: new Animation() must inherit property "playState" with the proper type
-FAIL Animation interface: new Animation() must inherit property "pending" with the proper type assert_inherits: property "pending" not found in prototype chain
-PASS Animation interface: new Animation() must inherit property "ready" with the proper type
-PASS Animation interface: new Animation() must inherit property "finished" with the proper type
-PASS Animation interface: new Animation() must inherit property "onfinish" with the proper type
-PASS Animation interface: new Animation() must inherit property "oncancel" with the proper type
-PASS Animation interface: new Animation() must inherit property "cancel()" with the proper type
-PASS Animation interface: new Animation() must inherit property "finish()" with the proper type
-PASS Animation interface: new Animation() must inherit property "play()" with the proper type
-PASS Animation interface: new Animation() must inherit property "pause()" with the proper type
-FAIL Animation interface: new Animation() must inherit property "updatePlaybackRate(double)" with the proper type assert_inherits: property "updatePlaybackRate" not found in prototype chain
-FAIL Animation interface: calling updatePlaybackRate(double) on new Animation() with too few arguments must throw TypeError assert_inherits: property "updatePlaybackRate" not found in prototype chain
-PASS Animation interface: new Animation() must inherit property "reverse()" with the proper type
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/web-animations/interfaces/KeyframeEffect/idlharness-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/web-animations/interfaces/KeyframeEffect/idlharness-expected.txt
deleted file mode 100644
index 5c87a92..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/web-animations/interfaces/KeyframeEffect/idlharness-expected.txt
+++ /dev/null
@@ -1,63 +0,0 @@
-This is a testharness.js-based test.
-Found 59 tests; 53 PASS, 6 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS AnimationEffectReadOnly interface: existence and properties of interface object
-PASS AnimationEffectReadOnly interface object length
-PASS AnimationEffectReadOnly interface object name
-PASS AnimationEffectReadOnly interface: existence and properties of interface prototype object
-PASS AnimationEffectReadOnly interface: existence and properties of interface prototype object's "constructor" property
-PASS AnimationEffectReadOnly interface: existence and properties of interface prototype object's @@unscopables property
-PASS AnimationEffectReadOnly interface: attribute timing
-PASS Unscopable handled correctly for timing property on AnimationEffectReadOnly
-PASS AnimationEffectReadOnly interface: operation getComputedTiming()
-PASS Unscopable handled correctly for getComputedTiming() on AnimationEffectReadOnly
-PASS KeyframeEffectReadOnly interface: existence and properties of interface object
-PASS KeyframeEffectReadOnly interface object length
-PASS KeyframeEffectReadOnly interface object name
-PASS KeyframeEffectReadOnly interface: existence and properties of interface prototype object
-PASS KeyframeEffectReadOnly interface: existence and properties of interface prototype object's "constructor" property
-PASS KeyframeEffectReadOnly interface: existence and properties of interface prototype object's @@unscopables property
-PASS KeyframeEffectReadOnly interface: attribute target
-PASS Unscopable handled correctly for target property on KeyframeEffectReadOnly
-FAIL KeyframeEffectReadOnly interface: attribute iterationComposite assert_true: The prototype object must have a property "iterationComposite" expected true got false
-PASS Unscopable handled correctly for iterationComposite property on KeyframeEffectReadOnly
-PASS KeyframeEffectReadOnly interface: attribute composite
-PASS Unscopable handled correctly for composite property on KeyframeEffectReadOnly
-PASS KeyframeEffectReadOnly interface: operation getKeyframes()
-PASS Unscopable handled correctly for getKeyframes() on KeyframeEffectReadOnly
-PASS KeyframeEffectReadOnly must be primary interface of new KeyframeEffectReadOnly(null, null)
-PASS Stringification of new KeyframeEffectReadOnly(null, null)
-PASS KeyframeEffectReadOnly interface: new KeyframeEffectReadOnly(null, null) must inherit property "target" with the proper type
-FAIL KeyframeEffectReadOnly interface: new KeyframeEffectReadOnly(null, null) must inherit property "iterationComposite" with the proper type assert_inherits: property "iterationComposite" not found in prototype chain
-PASS KeyframeEffectReadOnly interface: new KeyframeEffectReadOnly(null, null) must inherit property "composite" with the proper type
-PASS KeyframeEffectReadOnly interface: new KeyframeEffectReadOnly(null, null) must inherit property "getKeyframes()" with the proper type
-PASS AnimationEffectReadOnly interface: new KeyframeEffectReadOnly(null, null) must inherit property "timing" with the proper type
-PASS AnimationEffectReadOnly interface: new KeyframeEffectReadOnly(null, null) must inherit property "getComputedTiming()" with the proper type
-PASS KeyframeEffect interface: existence and properties of interface object
-PASS KeyframeEffect interface object length
-PASS KeyframeEffect interface object name
-PASS KeyframeEffect interface: existence and properties of interface prototype object
-PASS KeyframeEffect interface: existence and properties of interface prototype object's "constructor" property
-PASS KeyframeEffect interface: existence and properties of interface prototype object's @@unscopables property
-FAIL KeyframeEffect interface: attribute target assert_own_property: expected property "target" missing
-PASS Unscopable handled correctly for target property on KeyframeEffect
-FAIL KeyframeEffect interface: attribute iterationComposite assert_true: The prototype object must have a property "iterationComposite" expected true got false
-PASS Unscopable handled correctly for iterationComposite property on KeyframeEffect
-PASS KeyframeEffect interface: attribute composite
-PASS Unscopable handled correctly for composite property on KeyframeEffect
-PASS KeyframeEffect interface: operation setKeyframes(object)
-PASS Unscopable handled correctly for setKeyframes(object) on KeyframeEffect
-PASS KeyframeEffect must be primary interface of new KeyframeEffect(null, null)
-PASS Stringification of new KeyframeEffect(null, null)
-PASS KeyframeEffect interface: new KeyframeEffect(null, null) must inherit property "target" with the proper type
-FAIL KeyframeEffect interface: new KeyframeEffect(null, null) must inherit property "iterationComposite" with the proper type assert_inherits: property "iterationComposite" not found in prototype chain
-PASS KeyframeEffect interface: new KeyframeEffect(null, null) must inherit property "composite" with the proper type
-PASS KeyframeEffect interface: new KeyframeEffect(null, null) must inherit property "setKeyframes(object)" with the proper type
-PASS KeyframeEffect interface: calling setKeyframes(object) on new KeyframeEffect(null, null) with too few arguments must throw TypeError
-PASS KeyframeEffectReadOnly interface: new KeyframeEffect(null, null) must inherit property "target" with the proper type
-FAIL KeyframeEffectReadOnly interface: new KeyframeEffect(null, null) must inherit property "iterationComposite" with the proper type assert_inherits: property "iterationComposite" not found in prototype chain
-PASS KeyframeEffectReadOnly interface: new KeyframeEffect(null, null) must inherit property "composite" with the proper type
-PASS KeyframeEffectReadOnly interface: new KeyframeEffect(null, null) must inherit property "getKeyframes()" with the proper type
-PASS AnimationEffectReadOnly interface: new KeyframeEffect(null, null) must inherit property "timing" with the proper type
-PASS AnimationEffectReadOnly interface: new KeyframeEffect(null, null) must inherit property "getComputedTiming()" with the proper type
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/web-animations/timing-model/animations/pausing-an-animation-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/web-animations/timing-model/animations/pausing-an-animation-expected.txt
deleted file mode 100644
index 7872703..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/web-animations/timing-model/animations/pausing-an-animation-expected.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-This is a testharness.js-based test.
-FAIL A pending ready promise should be resolved and not replaced when the animation is paused assert_false: No longer pause-pending expected false got undefined
-FAIL A pause-pending animation maintains the current time when applying a pending playback rate promise_test: Unhandled rejection with value: object "TypeError: animation.updatePlaybackRate is not a function"
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/web-animations/timing-model/animations/playing-an-animation-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/web-animations/timing-model/animations/playing-an-animation-expected.txt
deleted file mode 100644
index b823e17..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/web-animations/timing-model/animations/playing-an-animation-expected.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-This is a testharness.js-based test.
-PASS Playing a running animation leaves the current time unchanged
-PASS Playing a finished animation seeks back to the start
-PASS Playing a finished and reversed animation seeks to end
-PASS The ready promise should be replaced if the animation is not already pending
-PASS A pending ready promise should be resolved and not replaced when the animation enters the running state
-FAIL A pending playback rate is used when determining auto-rewind behavior promise_test: Unhandled rejection with value: object "TypeError: animation.updatePlaybackRate is not a function"
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/web-animations/timing-model/animations/reversing-an-animation-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/web-animations/timing-model/animations/reversing-an-animation-expected.txt
deleted file mode 100644
index 08f10c4..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/web-animations/timing-model/animations/reversing-an-animation-expected.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-This is a testharness.js-based test.
-FAIL Reversing an animation inverts the playback rate assert_equals: Playback rate should not have changed expected 1 but got -1
-PASS Reversing an animation plays a pausing animation
-PASS Reversing an animation maintains the same current time
-FAIL Reversing an animation does not cause it to leave the pending state assert_true: The animation is pending before we call reverse expected true got undefined
-PASS Reversing an animation does not cause it to resolve the ready promise
-PASS Reversing an animation when playbackRate > 0 and currentTime > effect end should make it play from the end
-PASS Reversing an animation when playbackRate > 0 and currentTime < 0 should make it play from the end
-PASS Reversing an animation when playbackRate < 0 and currentTime < 0 should make it play from the start
-PASS Reversing an animation when playbackRate < 0 and currentTime > effect end should make it play from the start
-PASS Reversing an animation when playbackRate > 0 and currentTime < 0 and the target effect end is positive infinity should throw an exception
-FAIL When reversing throws an exception, the playback rate remains unchanged assert_equals: playbackRate is unchanged expected 1 but got -1
-PASS Reversing animation when playbackRate = 0 and currentTime < 0 and the target effect end is positive infinity should NOT throw an exception
-PASS Reversing an animation when playbackRate < 0 and currentTime < 0 and the target effect end is positive infinity should make it play from the start
-PASS Reversing when when playbackRate == 0 should preserve the current time and playback rate
-FAIL Reversing an animation without an active timeline throws an InvalidStateError assert_throws: function "() => { animation.reverse(); }" did not throw
-FAIL Reversing should use the negative pending playback rate promise_test: Unhandled rejection with value: object "TypeError: animation.updatePlaybackRate is not a function"
-FAIL When reversing fails, it should restore any previous pending playback rate promise_test: Unhandled rejection with value: object "TypeError: animation.updatePlaybackRate is not a function"
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/web-animations/timing-model/animations/seamlessly-updating-the-playback-rate-of-an-animation-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/web-animations/timing-model/animations/seamlessly-updating-the-playback-rate-of-an-animation-expected.txt
deleted file mode 100644
index 5e43dc2..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/web-animations/timing-model/animations/seamlessly-updating-the-playback-rate-of-an-animation-expected.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-This is a testharness.js-based test.
-FAIL Updating the playback rate maintains the current time promise_test: Unhandled rejection with value: object "TypeError: animation.updatePlaybackRate is not a function"
-FAIL Updating the playback rate while running makes the animation pending assert_false: expected false got undefined
-FAIL Updating the playback rate on a play-pending animation maintains the current time assert_true: expected true got undefined
-FAIL Updating the playback rate on a pause-pending animation maintains the current time promise_test: Unhandled rejection with value: object "TypeError: animation.updatePlaybackRate is not a function"
-FAIL If a pending playback rate is set multiple times, the latest wins promise_test: Unhandled rejection with value: object "TypeError: animation.updatePlaybackRate is not a function"
-FAIL In the idle state, the playback rate is applied immediately animation.updatePlaybackRate is not a function
-FAIL In the paused state, the playback rate is applied immediately promise_test: Unhandled rejection with value: object "TypeError: animation.updatePlaybackRate is not a function"
-FAIL Updating the playback rate on a finished animation maintains the current time assert_false: expected false got undefined
-FAIL Updating the playback rate to zero on a finished animation maintains the current time assert_false: expected false got undefined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/web-animations/timing-model/animations/setting-the-current-time-of-an-animation-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/web-animations/timing-model/animations/setting-the-current-time-of-an-animation-expected.txt
deleted file mode 100644
index 507c24e..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/web-animations/timing-model/animations/setting-the-current-time-of-an-animation-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Setting the current time of a pausing animation applies a pending playback rate assert_true: expected true got undefined
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/web-animations/timing-model/animations/setting-the-playback-rate-of-an-animation-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/web-animations/timing-model/animations/setting-the-playback-rate-of-an-animation-expected.txt
deleted file mode 100644
index 5bc5bed..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/web-animations/timing-model/animations/setting-the-playback-rate-of-an-animation-expected.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-This is a testharness.js-based test.
-PASS The playback rate affects the rate of progress of the current time
-PASS Setting the playback rate while play-pending preserves the current time
-PASS Setting the playback rate while playing preserves the current time
-FAIL Setting the playback rate should clear any pending playback rate promise_test: Unhandled rejection with value: object "TypeError: animation.updatePlaybackRate is not a function"
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/web-animations/timing-model/animations/setting-the-target-effect-of-an-animation-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/web-animations/timing-model/animations/setting-the-target-effect-of-an-animation-expected.txt
deleted file mode 100644
index a87d0b0..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/web-animations/timing-model/animations/setting-the-target-effect-of-an-animation-expected.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-This is a testharness.js-based test.
-FAIL If new effect is null and old effect is not null, we reset the pending tasks and ready promise is rejected assert_true: expected true got undefined
-FAIL If animation has a pending pause task, reschedule that task to run as soon as animation is ready. assert_true: expected true got undefined
-FAIL If animation has a pending play task, reschedule that task to run as soon as animation is ready to play new effect. assert_true: expected true got undefined
-FAIL When setting the effect of an animation to the effect of an existing animation, the existing animation's target effect should be set to null. assert_equals: expected "finished" but got "idle"
-PASS After setting the target effect of animation to the target effect of an existing animation, the target effect's timing is updated to reflect the current time of the new animation.
-FAIL Setting the target effect to null causes a pending playback rate to be applied anim.updatePlaybackRate is not a function
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/web-animations/timing-model/animations/setting-the-timeline-of-an-animation-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/web-animations/timing-model/animations/setting-the-timeline-of-an-animation-expected.txt
deleted file mode 100644
index fe77f7e..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/web-animations/timing-model/animations/setting-the-timeline-of-an-animation-expected.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-This is a testharness.js-based test.
-FAIL After setting timeline on paused animation it is still paused Cannot assign to read only property 'timeline' of object '#<Animation>'
-FAIL After setting timeline on animation paused outside active interval it is still paused Cannot assign to read only property 'timeline' of object '#<Animation>'
-FAIL After setting timeline on an idle animation without a start time it is still idle Cannot assign to read only property 'timeline' of object '#<Animation>'
-FAIL After setting timeline on an idle animation with a start time it is running assert_equals: expected "idle" but got "running"
-FAIL After setting timeline on an idle animation with a sufficiently ancient start time it is finished assert_equals: expected "idle" but got "finished"
-FAIL After setting timeline on a play-pending animation it begins playing after pending assert_true: Animation is initially play-pending expected true got undefined
-FAIL After setting timeline on a pause-pending animation it becomes paused after pending promise_test: Unhandled rejection with value: object "TypeError: Cannot assign to read only property 'timeline' of object '#<Animation>'"
-FAIL After clearing timeline on paused animation it is still paused assert_false: expected false got undefined
-FAIL After clearing timeline on finished animation it is idle Cannot assign to read only property 'timeline' of object '#<Animation>'
-FAIL After clearing timeline on running animation it is idle Cannot assign to read only property 'timeline' of object '#<Animation>'
-FAIL After clearing timeline on idle animation it is still idle Cannot assign to read only property 'timeline' of object '#<Animation>'
-FAIL After clearing timeline on play-pending animation it is still pending assert_true: expected true got undefined
-FAIL After clearing and re-setting timeline on play-pending animation it begins to play assert_true: expected true got undefined
-FAIL After clearing timeline on a pause-pending animation it is still pending assert_true: expected true got undefined
-FAIL After clearing and re-setting timeline on a pause-pending animation it completes pausing assert_true: expected true got undefined
-FAIL After clearing and re-setting timeline on an animation in the middle of an aborted pause, it continues playing using the same start time promise_test: Unhandled rejection with value: object "TypeError: Cannot assign to read only property 'timeline' of object '#<Animation>'"
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/webauthn/createcredential-badargs-authnrselection.https-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/webauthn/createcredential-badargs-authnrselection.https-expected.txt
deleted file mode 100644
index ffede7d..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/webauthn/createcredential-badargs-authnrselection.https-expected.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-This is a testharness.js-based test.
-FAIL Bad AuthenticatorSelectionCriteria: authenticatorSelection is empty array assert_throws: Expected bad parameters to fail function "function() { throw e }" threw object "NotSupportedError: The user agent does not implement a password store." ("NotSupportedError") expected object "TypeError" ("TypeError")
-FAIL Bad AuthenticatorSelectionCriteria: authenticatorSelection is null assert_throws: Expected bad parameters to fail function "function() { throw e }" threw object "NotSupportedError: The user agent does not implement a password store." ("NotSupportedError") expected object "TypeError" ("TypeError")
-PASS Bad AuthenticatorSelectionCriteria: authenticatorSelection is empty string
-PASS Bad AuthenticatorSelectionCriteria: authenticatorSelection is string
-PASS Bad AuthenticatorSelectionCriteria: authenticatorSelection attachment is empty string
-PASS Bad AuthenticatorSelectionCriteria: authenticatorSelection attachment is empty object
-PASS Bad AuthenticatorSelectionCriteria: authenticatorSelection attachment is null
-FAIL Bad AuthenticatorSelectionCriteria: authenticatorSelection attachment platform assert_throws: Expected bad parameters to fail function "function() { throw e }" threw object "NotSupportedError: The user agent does not implement a password store." that is not a DOMException NotAllowedError: property "code" is equal to 9, expected 0
-FAIL Bad AuthenticatorSelectionCriteria: authenticatorSelection residentKey true assert_throws: Expected bad parameters to fail function "function() { throw e }" threw object "NotSupportedError: The user agent does not implement a password store." that is not a DOMException NotAllowedError: property "code" is equal to 9, expected 0
-FAIL Bad AuthenticatorSelectionCriteria: authenticatorSelection residentKey is string assert_throws: Expected bad parameters to fail function "function() { throw e }" threw object "NotSupportedError: The user agent does not implement a password store." ("NotSupportedError") expected object "TypeError" ("TypeError")
-FAIL Bad AuthenticatorSelectionCriteria: authenticatorSelection userVerification empty string assert_throws: Expected bad parameters to fail function "function() { throw e }" threw object "NotSupportedError: The user agent does not implement a password store." ("NotSupportedError") expected object "TypeError" ("TypeError")
-FAIL Bad AuthenticatorSelectionCriteria: authenticatorSelection userVerification empty object assert_throws: Expected bad parameters to fail function "function() { throw e }" threw object "NotSupportedError: The user agent does not implement a password store." ("NotSupportedError") expected object "TypeError" ("TypeError")
-FAIL Bad AuthenticatorSelectionCriteria: authenticatorSelection userVerification bad value assert_throws: Expected bad parameters to fail function "function() { throw e }" threw object "NotSupportedError: The user agent does not implement a password store." ("NotSupportedError") expected object "TypeError" ("TypeError")
-FAIL Bad AuthenticatorSelectionCriteria: authenticatorSelection userVerification null assert_throws: Expected bad parameters to fail function "function() { throw e }" threw object "NotSupportedError: The user agent does not implement a password store." ("NotSupportedError") expected object "TypeError" ("TypeError")
-FAIL Bad AuthenticatorSelectionCriteria: authenticatorSelection userVerification required assert_throws: Expected bad parameters to fail function "function() { throw e }" threw object "NotSupportedError: The user agent does not implement a password store." that is not a DOMException NotAllowedError: property "code" is equal to 9, expected 0
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/webauthn/createcredential-badargs-challenge.https-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/webauthn/createcredential-badargs-challenge.https-expected.txt
deleted file mode 100644
index 13bd75df0..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/webauthn/createcredential-badargs-challenge.https-expected.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-This is a testharness.js-based test.
-PASS Bad challenge: challenge missing
-PASS Bad challenge: challenge is string
-PASS Bad challenge: challenge is null
-PASS Bad challenge: challenge is empty object
-PASS Bad challenge: challenge is empty Array
-FAIL Bad challenge: challenge is empty ArrayBuffer assert_throws: Expected bad parameters to fail function "function() { throw e }" threw object "NotSupportedError: The user agent does not implement a password store." ("NotSupportedError") expected object "TypeError" ("TypeError")
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/webauthn/createcredential-badargs-rp.https-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/webauthn/createcredential-badargs-rp.https-expected.txt
deleted file mode 100644
index 8f9b546b..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/webauthn/createcredential-badargs-rp.https-expected.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-This is a testharness.js-based test.
-PASS Bad rp: rp missing
-PASS Bad rp: rp is string
-PASS Bad rp: rp is empty object
-FAIL Bad rp: id is object assert_throws: Expected bad parameters to fail function "function() { throw e }" threw object "SecurityError: The relying party ID '[object Object]' is not a registrable domain suffix of, nor equal to 'https://web-platform.test:8444'." ("SecurityError") expected object "TypeError" ("TypeError")
-PASS Bad rp: id is null
-FAIL Bad rp: id is empty String assert_throws: Expected bad parameters to fail function "function() { throw e }" threw object "NotSupportedError: The user agent does not implement a password store." that is not a DOMException SecurityError: property "code" is equal to 9, expected 18
-PASS Bad rp: id is invalid domain (has space)
-PASS Bad rp: id is invalid domain (starts with dash)
-PASS Bad rp: id is invalid domain (starts with number)
-PASS rp missing name
-FAIL Bad rp: name is object assert_throws: Expected bad parameters to fail function "function() { throw e }" threw object "NotSupportedError: The user agent does not implement a password store." ("NotSupportedError") expected object "TypeError" ("TypeError")
-FAIL Bad rp: name is null assert_throws: Expected bad parameters to fail function "function() { throw e }" threw object "NotSupportedError: The user agent does not implement a password store." ("NotSupportedError") expected object "TypeError" ("TypeError")
-FAIL Bad rp: name is empty String assert_throws: Expected bad parameters to fail function "function() { throw e }" threw object "NotSupportedError: The user agent does not implement a password store." ("NotSupportedError") expected object "TypeError" ("TypeError")
-FAIL Bad rp: icon is object assert_throws: Expected bad parameters to fail function "function() { throw e }" threw object "NotSupportedError: The user agent does not implement a password store." ("NotSupportedError") expected object "TypeError" ("TypeError")
-FAIL Bad rp: icon is null assert_throws: Expected bad parameters to fail function "function() { throw e }" threw object "NotSupportedError: The user agent does not implement a password store." ("NotSupportedError") expected object "TypeError" ("TypeError")
-FAIL Bad rp: icon is empty String assert_throws: Expected bad parameters to fail function "function() { throw e }" threw object "NotSupportedError: The user agent does not implement a password store." ("NotSupportedError") expected object "TypeError" ("TypeError")
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/webauthn/createcredential-badargs-user.https-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/webauthn/createcredential-badargs-user.https-expected.txt
deleted file mode 100644
index f4483f9..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/webauthn/createcredential-badargs-user.https-expected.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-This is a testharness.js-based test.
-PASS Bad user: user missing
-PASS Bad user: user is string
-PASS Bad user: user is empty object
-PASS Bad user: id is undefined
-PASS Bad user: id is object
-PASS Bad user: id is null
-PASS Bad user: id is empty String
-PASS Bad user: id is empty Array
-FAIL Bad user: id is empty ArrayBuffer assert_throws: Expected bad parameters to fail function "function() { throw e }" threw object "NotSupportedError: The user agent does not implement a password store." ("NotSupportedError") expected object "TypeError" ("TypeError")
-FAIL Bad user: ArrayBuffer id is too long (65 bytes) assert_throws: Expected bad parameters to fail function "function() { throw e }" threw object "NotSupportedError: The user agent does not implement a password store." ("NotSupportedError") expected object "TypeError" ("TypeError")
-FAIL Bad user: Int16Array id is too long (66 bytes) assert_throws: Expected bad parameters to fail function "function() { throw e }" threw object "NotSupportedError: The user agent does not implement a password store." ("NotSupportedError") expected object "TypeError" ("TypeError")
-FAIL Bad user: Int32Array id is too long (68 bytes) assert_throws: Expected bad parameters to fail function "function() { throw e }" threw object "NotSupportedError: The user agent does not implement a password store." ("NotSupportedError") expected object "TypeError" ("TypeError")
-FAIL Bad user: Float32Array id is too long (68 bytes) assert_throws: Expected bad parameters to fail function "function() { throw e }" threw object "NotSupportedError: The user agent does not implement a password store." ("NotSupportedError") expected object "TypeError" ("TypeError")
-FAIL Bad user: Float64Array id is too long (72 bytes) assert_throws: Expected bad parameters to fail function "function() { throw e }" threw object "NotSupportedError: The user agent does not implement a password store." ("NotSupportedError") expected object "TypeError" ("TypeError")
-FAIL Bad user: id is too long (65 bytes) assert_throws: Expected bad parameters to fail function "function() { throw e }" threw object "NotSupportedError: The user agent does not implement a password store." ("NotSupportedError") expected object "TypeError" ("TypeError")
-PASS user missing name
-FAIL Bad user: name is object assert_throws: Expected bad parameters to fail function "function() { throw e }" threw object "NotSupportedError: The user agent does not implement a password store." ("NotSupportedError") expected object "TypeError" ("TypeError")
-FAIL Bad user: name is null assert_throws: Expected bad parameters to fail function "function() { throw e }" threw object "NotSupportedError: The user agent does not implement a password store." ("NotSupportedError") expected object "TypeError" ("TypeError")
-FAIL Bad user: name is empty String assert_throws: Expected bad parameters to fail function "function() { throw e }" threw object "NotSupportedError: The user agent does not implement a password store." ("NotSupportedError") expected object "TypeError" ("TypeError")
-FAIL Bad user: icon is object assert_throws: Expected bad parameters to fail function "function() { throw e }" threw object "NotSupportedError: The user agent does not implement a password store." ("NotSupportedError") expected object "TypeError" ("TypeError")
-FAIL Bad user: icon is null assert_throws: Expected bad parameters to fail function "function() { throw e }" threw object "NotSupportedError: The user agent does not implement a password store." ("NotSupportedError") expected object "TypeError" ("TypeError")
-FAIL Bad user: icon is empty String assert_throws: Expected bad parameters to fail function "function() { throw e }" threw object "NotSupportedError: The user agent does not implement a password store." ("NotSupportedError") expected object "TypeError" ("TypeError")
-PASS Bad user: displayName is undefined
-FAIL Bad user: displayName is object assert_throws: Expected bad parameters to fail function "function() { throw e }" threw object "NotSupportedError: The user agent does not implement a password store." ("NotSupportedError") expected object "TypeError" ("TypeError")
-FAIL Bad user: displayName is null assert_throws: Expected bad parameters to fail function "function() { throw e }" threw object "NotSupportedError: The user agent does not implement a password store." ("NotSupportedError") expected object "TypeError" ("TypeError")
-FAIL Bad user: displayName is empty String assert_throws: Expected bad parameters to fail function "function() { throw e }" threw object "NotSupportedError: The user agent does not implement a password store." ("NotSupportedError") expected object "TypeError" ("TypeError")
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/webauthn/createcredential-excludecredentials.https-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/webauthn/createcredential-excludecredentials.https-expected.txt
deleted file mode 100644
index 38e27530..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/webauthn/createcredential-excludecredentials.https-expected.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-This is a testharness.js-based test.
-PASS Bad excludeCredentials: string
-PASS Bad excludeCredentials: empty object
-FAIL excludeCredentials missing promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL excludeCredentials empty array promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL exclude existing credential promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL exclude random (non-existing) credential promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/webauthn/createcredential-extensions.https-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/webauthn/createcredential-extensions.https-expected.txt
deleted file mode 100644
index e4804ab..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/webauthn/createcredential-extensions.https-expected.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-This is a testharness.js-based test.
-FAIL Bad extensions: extensions is string assert_throws: Expected bad parameters to fail function "function() { throw e }" threw object "NotSupportedError: The user agent does not implement a password store." ("NotSupportedError") expected object "TypeError" ("TypeError")
-FAIL Bad extensions: extensions is null assert_throws: Expected bad parameters to fail function "function() { throw e }" threw object "NotSupportedError: The user agent does not implement a password store." ("NotSupportedError") expected object "TypeError" ("TypeError")
-FAIL Bad extensions: extensions is empty Array assert_throws: Expected bad parameters to fail function "function() { throw e }" threw object "NotSupportedError: The user agent does not implement a password store." ("NotSupportedError") expected object "TypeError" ("TypeError")
-FAIL Bad extensions: extensions is empty ArrayBuffer assert_throws: Expected bad parameters to fail function "function() { throw e }" threw object "NotSupportedError: The user agent does not implement a password store." ("NotSupportedError") expected object "TypeError" ("TypeError")
-FAIL Bad extensions: malformatted JSON assert_throws: Expected bad parameters to fail function "function() { throw e }" threw object "NotSupportedError: The user agent does not implement a password store." ("NotSupportedError") expected object "TypeError" ("TypeError")
-FAIL Bad extensions: JavaScript object assert_throws: Expected bad parameters to fail function "function() { throw e }" threw object "NotSupportedError: The user agent does not implement a password store." ("NotSupportedError") expected object "TypeError" ("TypeError")
-FAIL Bad extensions: extension ID too long assert_throws: Expected bad parameters to fail function "function() { throw e }" threw object "NotSupportedError: The user agent does not implement a password store." ("NotSupportedError") expected object "TypeError" ("TypeError")
-FAIL extensions is a nonsensical JSON string promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/webauthn/createcredential-passing.https-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/webauthn/createcredential-passing.https-expected.txt
deleted file mode 100644
index a02742bd..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/webauthn/createcredential-passing.https-expected.txt
+++ /dev/null
@@ -1,41 +0,0 @@
-This is a testharness.js-based test.
-FAIL passing credentials.create() with default arguments promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL passing credentials.create() with rpId (host and port) promise_test: Unhandled rejection with value: object "SecurityError: The relying party ID 'web-platform.test:8444' is not a registrable domain suffix of, nor equal to 'https://web-platform.test:8444'."
-FAIL passing credentials.create() with rpId (hostname) promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL passing credentials.create() without rp.icon promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL very short user id promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL max length user id promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL Uint8Array user id promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL Int8Array user id promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL Int16Array user id promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL Int32Array user id promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL Float32Array user id promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL DataView user id promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL passing credentials.create() without user.icon promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL Int16Array challenge promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL Int32Array challenge promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL Float32Array challenge promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL Float64Array challenge promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL DataView challenge promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL Absurdly large challenge promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL Bad pubKeyCredParams: pubKeyCredParams is empty Array promise_test: Unhandled rejection with value: object "NotSupportedError: Required parameters missing in `options.publicKey`."
-FAIL EC256 pubKeyCredParams promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL SelectEC256 pubKeyCredParams from a list promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL passing credentials.create() with no timeout promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL authenticatorSelection is undefined promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL authenticatorSelection is empty object promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL authenticatorSelection default values promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL authenticatorSelection attachment undefined promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL authenticatorSelection residentKey undefined promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL authenticatorSelection residentKey false promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL authenticatorSelection userVerification undefined promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL authenticatorSelection userVerification discouraged promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL attestation parameter: attestation is "none" promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL attestation parameter: attestation is "indirect" promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL attestation parameter: attestation is "direct" promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL attestation parameter: attestation is undefined promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL extensions undefined promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL extensions are empty object promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL extensions are dict of empty strings promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/webauthn/createcredential-timeout.https-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/webauthn/createcredential-timeout.https-expected.txt
deleted file mode 100644
index 6b52a554..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/webauthn/createcredential-timeout.https-expected.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-This is a testharness.js-based test.
-Harness Error. harness_status.status = 1 , harness_status.message = The user agent does not implement a password store.
-FAIL ensure create credential times out promise_test: Unhandled rejection with value: object "Error: timed out"
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/webauthn/getcredential-badargs-rpid.https-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/webauthn/getcredential-badargs-rpid.https-expected.txt
deleted file mode 100644
index 764d364a..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/webauthn/getcredential-badargs-rpid.https-expected.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-This is a testharness.js-based test.
-FAIL Bad rpId: empty string promise_test: Unhandled rejection with value: object "Error: NotSupportedError: The user agent does not implement a password store."
-FAIL Bad rpId: null promise_test: Unhandled rejection with value: object "Error: NotSupportedError: The user agent does not implement a password store."
-FAIL Bad rpId: invalid domain (has space) promise_test: Unhandled rejection with value: object "Error: NotSupportedError: The user agent does not implement a password store."
-FAIL Bad rpId: invalid domain (starts with dash) promise_test: Unhandled rejection with value: object "Error: NotSupportedError: The user agent does not implement a password store."
-FAIL Bad rpId: invalid domain (starts with number) promise_test: Unhandled rejection with value: object "Error: NotSupportedError: The user agent does not implement a password store."
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/webauthn/getcredential-badargs-userverification.https-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/webauthn/getcredential-badargs-userverification.https-expected.txt
deleted file mode 100644
index c6dfa025..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/webauthn/getcredential-badargs-userverification.https-expected.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-This is a testharness.js-based test.
-FAIL Bad userVerification: empty string promise_test: Unhandled rejection with value: object "Error: NotSupportedError: The user agent does not implement a password store."
-FAIL Bad userVerification: empty object promise_test: Unhandled rejection with value: object "Error: NotSupportedError: The user agent does not implement a password store."
-FAIL Bad userVerification: bad value promise_test: Unhandled rejection with value: object "Error: NotSupportedError: The user agent does not implement a password store."
-FAIL Bad userVerification: null promise_test: Unhandled rejection with value: object "Error: NotSupportedError: The user agent does not implement a password store."
-FAIL Bad userVerification: "required" promise_test: Unhandled rejection with value: object "Error: NotSupportedError: The user agent does not implement a password store."
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/webauthn/getcredential-extensions.https-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/webauthn/getcredential-extensions.https-expected.txt
deleted file mode 100644
index 50dde17..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/webauthn/getcredential-extensions.https-expected.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-This is a testharness.js-based test.
-FAIL Bad extensions: extensions is string promise_test: Unhandled rejection with value: object "Error: NotSupportedError: The user agent does not implement a password store."
-FAIL Bad extensions: extensions is null promise_test: Unhandled rejection with value: object "Error: NotSupportedError: The user agent does not implement a password store."
-FAIL Bad extensions: extensions is empty Array promise_test: Unhandled rejection with value: object "Error: NotSupportedError: The user agent does not implement a password store."
-FAIL Bad extensions: extensions is empty ArrayBuffer promise_test: Unhandled rejection with value: object "Error: NotSupportedError: The user agent does not implement a password store."
-FAIL Bad extensions: malformatted JSON promise_test: Unhandled rejection with value: object "Error: NotSupportedError: The user agent does not implement a password store."
-FAIL Bad extensions: JavaScript object promise_test: Unhandled rejection with value: object "Error: NotSupportedError: The user agent does not implement a password store."
-FAIL Bad extensions: extension ID too long promise_test: Unhandled rejection with value: object "Error: NotSupportedError: The user agent does not implement a password store."
-FAIL extensions is a nonsensical JSON string promise_test: Unhandled rejection with value: object "Error: NotSupportedError: The user agent does not implement a password store."
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/webauthn/getcredential-passing.https-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/webauthn/getcredential-passing.https-expected.txt
deleted file mode 100644
index 7e13307..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/webauthn/getcredential-passing.https-expected.txt
+++ /dev/null
@@ -1,15 +0,0 @@
-This is a testharness.js-based test.
-FAIL passing credentials.get() with default args promise_test: Unhandled rejection with value: object "Error: NotSupportedError: The user agent does not implement a password store."
-FAIL passing credentials.create() with no timeout promise_test: Unhandled rejection with value: object "Error: NotSupportedError: The user agent does not implement a password store."
-FAIL rpId undefined promise_test: Unhandled rejection with value: object "Error: NotSupportedError: The user agent does not implement a password store."
-FAIL passing credentials.get() with rpId (host and port) promise_test: Unhandled rejection with value: object "Error: NotSupportedError: The user agent does not implement a password store."
-FAIL passing credentials.get() with rpId (hostname) promise_test: Unhandled rejection with value: object "Error: NotSupportedError: The user agent does not implement a password store."
-FAIL no credential specified promise_test: Unhandled rejection with value: object "Error: Attempting list without defining credential to test"
-FAIL authenticatorSelection userVerification undefined promise_test: Unhandled rejection with value: object "Error: NotSupportedError: The user agent does not implement a password store."
-FAIL authenticatorSelection userVerification preferred promise_test: Unhandled rejection with value: object "Error: NotSupportedError: The user agent does not implement a password store."
-FAIL authenticatorSelection userVerification discouraged promise_test: Unhandled rejection with value: object "Error: NotSupportedError: The user agent does not implement a password store."
-FAIL extensions undefined promise_test: Unhandled rejection with value: object "Error: NotSupportedError: The user agent does not implement a password store."
-FAIL extensions are empty object promise_test: Unhandled rejection with value: object "Error: NotSupportedError: The user agent does not implement a password store."
-FAIL extensions are dict of empty strings promise_test: Unhandled rejection with value: object "Error: NotSupportedError: The user agent does not implement a password store."
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/webauthn/getcredential-timeout.https-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/webauthn/getcredential-timeout.https-expected.txt
deleted file mode 100644
index f7553fe..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/webauthn/getcredential-timeout.https-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL ensure create credential times out promise_test: Unhandled rejection with value: object "Error: NotSupportedError: The user agent does not implement a password store."
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/webauthn/interfaces.https-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/webauthn/interfaces.https-expected.txt
deleted file mode 100644
index 83dbc02..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/webauthn/interfaces.https-expected.txt
+++ /dev/null
@@ -1,46 +0,0 @@
-This is a testharness.js-based test.
-PASS Validate WebAuthn IDL
-FAIL PublicKeyCredential interface: existence and properties of interface object Cannot read property 'has_extended_attribute' of undefined
-PASS PublicKeyCredential interface object length
-PASS PublicKeyCredential interface object name
-FAIL PublicKeyCredential interface: existence and properties of interface prototype object Cannot read property 'has_extended_attribute' of undefined
-PASS PublicKeyCredential interface: existence and properties of interface prototype object's "constructor" property
-PASS PublicKeyCredential interface: existence and properties of interface prototype object's @@unscopables property
-PASS PublicKeyCredential interface: attribute rawId
-PASS Unscopable handled correctly for rawId property on PublicKeyCredential
-PASS PublicKeyCredential interface: attribute response
-PASS Unscopable handled correctly for response property on PublicKeyCredential
-FAIL PublicKeyCredential interface: operation getClientExtensionResults() assert_own_property: interface prototype object missing non-static operation expected property "getClientExtensionResults" missing
-PASS Unscopable handled correctly for getClientExtensionResults() on PublicKeyCredential
-FAIL PublicKeyCredential interface: operation isUserVerifyingPlatformAuthenticatorAvailable() assert_own_property: interface object missing static operation expected property "isUserVerifyingPlatformAuthenticatorAvailable" missing
-PASS Unscopable handled correctly for isUserVerifyingPlatformAuthenticatorAvailable() on PublicKeyCredential
-PASS AuthenticatorResponse interface: existence and properties of interface object
-PASS AuthenticatorResponse interface object length
-PASS AuthenticatorResponse interface object name
-PASS AuthenticatorResponse interface: existence and properties of interface prototype object
-PASS AuthenticatorResponse interface: existence and properties of interface prototype object's "constructor" property
-PASS AuthenticatorResponse interface: existence and properties of interface prototype object's @@unscopables property
-PASS AuthenticatorResponse interface: attribute clientDataJSON
-PASS Unscopable handled correctly for clientDataJSON property on AuthenticatorResponse
-PASS AuthenticatorAttestationResponse interface: existence and properties of interface object
-PASS AuthenticatorAttestationResponse interface object length
-PASS AuthenticatorAttestationResponse interface object name
-PASS AuthenticatorAttestationResponse interface: existence and properties of interface prototype object
-PASS AuthenticatorAttestationResponse interface: existence and properties of interface prototype object's "constructor" property
-PASS AuthenticatorAttestationResponse interface: existence and properties of interface prototype object's @@unscopables property
-PASS AuthenticatorAttestationResponse interface: attribute attestationObject
-PASS Unscopable handled correctly for attestationObject property on AuthenticatorAttestationResponse
-PASS AuthenticatorAssertionResponse interface: existence and properties of interface object
-PASS AuthenticatorAssertionResponse interface object length
-PASS AuthenticatorAssertionResponse interface object name
-PASS AuthenticatorAssertionResponse interface: existence and properties of interface prototype object
-PASS AuthenticatorAssertionResponse interface: existence and properties of interface prototype object's "constructor" property
-PASS AuthenticatorAssertionResponse interface: existence and properties of interface prototype object's @@unscopables property
-PASS AuthenticatorAssertionResponse interface: attribute authenticatorData
-PASS Unscopable handled correctly for authenticatorData property on AuthenticatorAssertionResponse
-PASS AuthenticatorAssertionResponse interface: attribute signature
-PASS Unscopable handled correctly for signature property on AuthenticatorAssertionResponse
-PASS AuthenticatorAssertionResponse interface: attribute userHandle
-PASS Unscopable handled correctly for userHandle property on AuthenticatorAssertionResponse
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/webauthn/securecontext.http-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/webauthn/securecontext.http-expected.txt
deleted file mode 100644
index 21f6fd77..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/webauthn/securecontext.http-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-PASS no navigator.credentials.create in non-secure context
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/webrtc/interfaces.https-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/webrtc/interfaces.https-expected.txt
deleted file mode 100644
index 566708d..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/webrtc/interfaces.https-expected.txt
+++ /dev/null
@@ -1,697 +0,0 @@
-This is a testharness.js-based test.
-PASS Main test driver
-PASS Test driver for asyncInitCertificate
-FAIL Test driver for asyncInitTransports assert_unreached: Failed to run asyncInitTransports: ReferenceError: RTCSctpTransport is not defined Reached unreachable code
-PASS Test driver for asyncInitMediaStreamTrack
-FAIL MediaStreamTrack interface: existence and properties of interface object Cannot read property 'has_extended_attribute' of undefined
-PASS MediaStreamTrack interface object length
-PASS MediaStreamTrack interface object name
-FAIL MediaStreamTrack interface: existence and properties of interface prototype object Cannot read property 'has_extended_attribute' of undefined
-PASS MediaStreamTrack interface: existence and properties of interface prototype object's "constructor" property
-PASS MediaStreamTrack interface: existence and properties of interface prototype object's @@unscopables property
-FAIL MediaStreamTrack interface: attribute isolated assert_true: The prototype object must have a property "isolated" expected true got false
-PASS Unscopable handled correctly for isolated property on MediaStreamTrack
-FAIL MediaStreamTrack interface: attribute onisolationchange assert_true: The prototype object must have a property "onisolationchange" expected true got false
-PASS Unscopable handled correctly for onisolationchange property on MediaStreamTrack
-PASS MediaStreamTrack must be primary interface of idlTestObjects.mediaStreamTrack
-FAIL Stringification of idlTestObjects.mediaStreamTrack Cannot read property 'has_stringifier' of undefined
-FAIL MediaStreamTrack interface: idlTestObjects.mediaStreamTrack must inherit property "isolated" with the proper type assert_inherits: property "isolated" not found in prototype chain
-FAIL MediaStreamTrack interface: idlTestObjects.mediaStreamTrack must inherit property "onisolationchange" with the proper type assert_inherits: property "onisolationchange" not found in prototype chain
-FAIL MediaStreamTrack must be primary interface of generateMediaStreamTrack('audio') assert_equals: Unexpected exception when evaluating object expected null but got object "Error: assert_idl_attribute: Expect pc to have addTransceiver() method property "addTransceiver" not found in prototype chain"
-FAIL Stringification of generateMediaStreamTrack('audio') assert_equals: Unexpected exception when evaluating object expected null but got object "Error: assert_idl_attribute: Expect pc to have addTransceiver() method property "addTransceiver" not found in prototype chain"
-FAIL MediaStreamTrack interface: generateMediaStreamTrack('audio') must inherit property "isolated" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "Error: assert_idl_attribute: Expect pc to have addTransceiver() method property "addTransceiver" not found in prototype chain"
-FAIL MediaStreamTrack interface: generateMediaStreamTrack('audio') must inherit property "onisolationchange" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "Error: assert_idl_attribute: Expect pc to have addTransceiver() method property "addTransceiver" not found in prototype chain"
-FAIL RTCPeerConnection interface: existence and properties of interface object Cannot read property 'has_extended_attribute' of undefined
-PASS RTCPeerConnection interface object length
-PASS RTCPeerConnection interface object name
-FAIL RTCPeerConnection interface: existence and properties of interface prototype object Cannot read property 'has_extended_attribute' of undefined
-PASS RTCPeerConnection interface: existence and properties of interface prototype object's "constructor" property
-PASS RTCPeerConnection interface: existence and properties of interface prototype object's @@unscopables property
-PASS RTCPeerConnection interface: operation createOffer(RTCOfferOptions)
-PASS Unscopable handled correctly for createOffer(RTCOfferOptions) on RTCPeerConnection
-PASS RTCPeerConnection interface: operation createAnswer(RTCAnswerOptions)
-PASS Unscopable handled correctly for createAnswer(RTCAnswerOptions) on RTCPeerConnection
-PASS RTCPeerConnection interface: operation setLocalDescription(RTCSessionDescriptionInit)
-PASS Unscopable handled correctly for setLocalDescription(RTCSessionDescriptionInit) on RTCPeerConnection
-PASS RTCPeerConnection interface: attribute localDescription
-PASS Unscopable handled correctly for localDescription property on RTCPeerConnection
-FAIL RTCPeerConnection interface: attribute currentLocalDescription assert_true: The prototype object must have a property "currentLocalDescription" expected true got false
-PASS Unscopable handled correctly for currentLocalDescription property on RTCPeerConnection
-FAIL RTCPeerConnection interface: attribute pendingLocalDescription assert_true: The prototype object must have a property "pendingLocalDescription" expected true got false
-PASS Unscopable handled correctly for pendingLocalDescription property on RTCPeerConnection
-PASS RTCPeerConnection interface: operation setRemoteDescription(RTCSessionDescriptionInit)
-PASS Unscopable handled correctly for setRemoteDescription(RTCSessionDescriptionInit) on RTCPeerConnection
-PASS RTCPeerConnection interface: attribute remoteDescription
-PASS Unscopable handled correctly for remoteDescription property on RTCPeerConnection
-FAIL RTCPeerConnection interface: attribute currentRemoteDescription assert_true: The prototype object must have a property "currentRemoteDescription" expected true got false
-PASS Unscopable handled correctly for currentRemoteDescription property on RTCPeerConnection
-FAIL RTCPeerConnection interface: attribute pendingRemoteDescription assert_true: The prototype object must have a property "pendingRemoteDescription" expected true got false
-PASS Unscopable handled correctly for pendingRemoteDescription property on RTCPeerConnection
-PASS RTCPeerConnection interface: operation addIceCandidate([object Object],[object Object])
-PASS Unscopable handled correctly for addIceCandidate([object Object],[object Object]) on RTCPeerConnection
-PASS RTCPeerConnection interface: attribute signalingState
-PASS Unscopable handled correctly for signalingState property on RTCPeerConnection
-PASS RTCPeerConnection interface: attribute iceGatheringState
-PASS Unscopable handled correctly for iceGatheringState property on RTCPeerConnection
-PASS RTCPeerConnection interface: attribute iceConnectionState
-PASS Unscopable handled correctly for iceConnectionState property on RTCPeerConnection
-FAIL RTCPeerConnection interface: attribute connectionState assert_true: The prototype object must have a property "connectionState" expected true got false
-PASS Unscopable handled correctly for connectionState property on RTCPeerConnection
-FAIL RTCPeerConnection interface: attribute canTrickleIceCandidates assert_true: The prototype object must have a property "canTrickleIceCandidates" expected true got false
-PASS Unscopable handled correctly for canTrickleIceCandidates property on RTCPeerConnection
-FAIL RTCPeerConnection interface: operation getDefaultIceServers() assert_own_property: interface object missing static operation expected property "getDefaultIceServers" missing
-PASS Unscopable handled correctly for getDefaultIceServers() on RTCPeerConnection
-FAIL RTCPeerConnection interface: operation getConfiguration() assert_own_property: interface prototype object missing non-static operation expected property "getConfiguration" missing
-PASS Unscopable handled correctly for getConfiguration() on RTCPeerConnection
-PASS RTCPeerConnection interface: operation setConfiguration(RTCConfiguration)
-PASS Unscopable handled correctly for setConfiguration(RTCConfiguration) on RTCPeerConnection
-PASS RTCPeerConnection interface: operation close()
-PASS Unscopable handled correctly for close() on RTCPeerConnection
-PASS RTCPeerConnection interface: attribute onnegotiationneeded
-PASS Unscopable handled correctly for onnegotiationneeded property on RTCPeerConnection
-PASS RTCPeerConnection interface: attribute onicecandidate
-PASS Unscopable handled correctly for onicecandidate property on RTCPeerConnection
-FAIL RTCPeerConnection interface: attribute onicecandidateerror assert_true: The prototype object must have a property "onicecandidateerror" expected true got false
-PASS Unscopable handled correctly for onicecandidateerror property on RTCPeerConnection
-PASS RTCPeerConnection interface: attribute onsignalingstatechange
-PASS Unscopable handled correctly for onsignalingstatechange property on RTCPeerConnection
-PASS RTCPeerConnection interface: attribute oniceconnectionstatechange
-PASS Unscopable handled correctly for oniceconnectionstatechange property on RTCPeerConnection
-PASS RTCPeerConnection interface: attribute onicegatheringstatechange
-PASS Unscopable handled correctly for onicegatheringstatechange property on RTCPeerConnection
-FAIL RTCPeerConnection interface: attribute onconnectionstatechange assert_true: The prototype object must have a property "onconnectionstatechange" expected true got false
-PASS Unscopable handled correctly for onconnectionstatechange property on RTCPeerConnection
-FAIL RTCPeerConnection interface: attribute onfingerprintfailure assert_true: The prototype object must have a property "onfingerprintfailure" expected true got false
-PASS Unscopable handled correctly for onfingerprintfailure property on RTCPeerConnection
-PASS RTCPeerConnection interface: operation createOffer(RTCSessionDescriptionCallback, RTCPeerConnectionErrorCallback, RTCOfferOptions)
-PASS Unscopable handled correctly for createOffer(RTCSessionDescriptionCallback, RTCPeerConnectionErrorCallback, RTCOfferOptions) on RTCPeerConnection
-PASS RTCPeerConnection interface: operation setLocalDescription(RTCSessionDescriptionInit, VoidFunction, RTCPeerConnectionErrorCallback)
-PASS Unscopable handled correctly for setLocalDescription(RTCSessionDescriptionInit, VoidFunction, RTCPeerConnectionErrorCallback) on RTCPeerConnection
-PASS RTCPeerConnection interface: operation createAnswer(RTCSessionDescriptionCallback, RTCPeerConnectionErrorCallback)
-PASS Unscopable handled correctly for createAnswer(RTCSessionDescriptionCallback, RTCPeerConnectionErrorCallback) on RTCPeerConnection
-PASS RTCPeerConnection interface: operation setRemoteDescription(RTCSessionDescriptionInit, VoidFunction, RTCPeerConnectionErrorCallback)
-PASS Unscopable handled correctly for setRemoteDescription(RTCSessionDescriptionInit, VoidFunction, RTCPeerConnectionErrorCallback) on RTCPeerConnection
-PASS RTCPeerConnection interface: operation addIceCandidate([object Object],[object Object], VoidFunction, RTCPeerConnectionErrorCallback)
-PASS Unscopable handled correctly for addIceCandidate([object Object],[object Object], VoidFunction, RTCPeerConnectionErrorCallback) on RTCPeerConnection
-PASS RTCPeerConnection interface: operation generateCertificate(AlgorithmIdentifier)
-PASS Unscopable handled correctly for generateCertificate(AlgorithmIdentifier) on RTCPeerConnection
-PASS RTCPeerConnection interface: operation getSenders()
-PASS Unscopable handled correctly for getSenders() on RTCPeerConnection
-PASS RTCPeerConnection interface: operation getReceivers()
-PASS Unscopable handled correctly for getReceivers() on RTCPeerConnection
-FAIL RTCPeerConnection interface: operation getTransceivers() assert_own_property: interface prototype object missing non-static operation expected property "getTransceivers" missing
-PASS Unscopable handled correctly for getTransceivers() on RTCPeerConnection
-PASS RTCPeerConnection interface: operation addTrack(MediaStreamTrack, MediaStream)
-PASS Unscopable handled correctly for addTrack(MediaStreamTrack, MediaStream) on RTCPeerConnection
-PASS RTCPeerConnection interface: operation removeTrack(RTCRtpSender)
-PASS Unscopable handled correctly for removeTrack(RTCRtpSender) on RTCPeerConnection
-FAIL RTCPeerConnection interface: operation addTransceiver([object Object],[object Object], RTCRtpTransceiverInit) assert_own_property: interface prototype object missing non-static operation expected property "addTransceiver" missing
-PASS Unscopable handled correctly for addTransceiver([object Object],[object Object], RTCRtpTransceiverInit) on RTCPeerConnection
-PASS RTCPeerConnection interface: attribute ontrack
-PASS Unscopable handled correctly for ontrack property on RTCPeerConnection
-FAIL RTCPeerConnection interface: attribute sctp assert_true: The prototype object must have a property "sctp" expected true got false
-PASS Unscopable handled correctly for sctp property on RTCPeerConnection
-PASS RTCPeerConnection interface: operation createDataChannel(USVString, RTCDataChannelInit)
-PASS Unscopable handled correctly for createDataChannel(USVString, RTCDataChannelInit) on RTCPeerConnection
-PASS RTCPeerConnection interface: attribute ondatachannel
-PASS Unscopable handled correctly for ondatachannel property on RTCPeerConnection
-PASS RTCPeerConnection interface: operation getStats(MediaStreamTrack)
-PASS Unscopable handled correctly for getStats(MediaStreamTrack) on RTCPeerConnection
-FAIL RTCPeerConnection interface: operation setIdentityProvider(DOMString, RTCIdentityProviderOptions) assert_own_property: interface prototype object missing non-static operation expected property "setIdentityProvider" missing
-PASS Unscopable handled correctly for setIdentityProvider(DOMString, RTCIdentityProviderOptions) on RTCPeerConnection
-FAIL RTCPeerConnection interface: operation getIdentityAssertion() assert_own_property: interface prototype object missing non-static operation expected property "getIdentityAssertion" missing
-PASS Unscopable handled correctly for getIdentityAssertion() on RTCPeerConnection
-FAIL RTCPeerConnection interface: attribute peerIdentity assert_true: The prototype object must have a property "peerIdentity" expected true got false
-PASS Unscopable handled correctly for peerIdentity property on RTCPeerConnection
-FAIL RTCPeerConnection interface: attribute idpLoginUrl assert_true: The prototype object must have a property "idpLoginUrl" expected true got false
-PASS Unscopable handled correctly for idpLoginUrl property on RTCPeerConnection
-FAIL RTCPeerConnection interface: attribute idpErrorInfo assert_true: The prototype object must have a property "idpErrorInfo" expected true got false
-PASS Unscopable handled correctly for idpErrorInfo property on RTCPeerConnection
-PASS RTCPeerConnection must be primary interface of new RTCPeerConnection()
-FAIL Stringification of new RTCPeerConnection() Cannot read property 'has_stringifier' of undefined
-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "createOffer(RTCOfferOptions)" with the proper type
-PASS RTCPeerConnection interface: calling createOffer(RTCOfferOptions) on new RTCPeerConnection() with too few arguments must throw TypeError
-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "createAnswer(RTCAnswerOptions)" with the proper type
-PASS RTCPeerConnection interface: calling createAnswer(RTCAnswerOptions) on new RTCPeerConnection() with too few arguments must throw TypeError
-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "setLocalDescription(RTCSessionDescriptionInit)" with the proper type
-PASS RTCPeerConnection interface: calling setLocalDescription(RTCSessionDescriptionInit) on new RTCPeerConnection() with too few arguments must throw TypeError
-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "localDescription" with the proper type
-FAIL RTCPeerConnection interface: new RTCPeerConnection() must inherit property "currentLocalDescription" with the proper type assert_inherits: property "currentLocalDescription" not found in prototype chain
-FAIL RTCPeerConnection interface: new RTCPeerConnection() must inherit property "pendingLocalDescription" with the proper type assert_inherits: property "pendingLocalDescription" not found in prototype chain
-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "setRemoteDescription(RTCSessionDescriptionInit)" with the proper type
-PASS RTCPeerConnection interface: calling setRemoteDescription(RTCSessionDescriptionInit) on new RTCPeerConnection() with too few arguments must throw TypeError
-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "remoteDescription" with the proper type
-FAIL RTCPeerConnection interface: new RTCPeerConnection() must inherit property "currentRemoteDescription" with the proper type assert_inherits: property "currentRemoteDescription" not found in prototype chain
-FAIL RTCPeerConnection interface: new RTCPeerConnection() must inherit property "pendingRemoteDescription" with the proper type assert_inherits: property "pendingRemoteDescription" not found in prototype chain
-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "addIceCandidate([object Object],[object Object])" with the proper type
-PASS RTCPeerConnection interface: calling addIceCandidate([object Object],[object Object]) on new RTCPeerConnection() with too few arguments must throw TypeError
-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "signalingState" with the proper type
-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "iceGatheringState" with the proper type
-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "iceConnectionState" with the proper type
-FAIL RTCPeerConnection interface: new RTCPeerConnection() must inherit property "connectionState" with the proper type assert_inherits: property "connectionState" not found in prototype chain
-FAIL RTCPeerConnection interface: new RTCPeerConnection() must inherit property "canTrickleIceCandidates" with the proper type assert_inherits: property "canTrickleIceCandidates" not found in prototype chain
-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "getDefaultIceServers()" with the proper type
-FAIL RTCPeerConnection interface: new RTCPeerConnection() must inherit property "getConfiguration()" with the proper type assert_inherits: property "getConfiguration" not found in prototype chain
-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "setConfiguration(RTCConfiguration)" with the proper type
-PASS RTCPeerConnection interface: calling setConfiguration(RTCConfiguration) on new RTCPeerConnection() with too few arguments must throw TypeError
-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "close()" with the proper type
-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "onnegotiationneeded" with the proper type
-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "onicecandidate" with the proper type
-FAIL RTCPeerConnection interface: new RTCPeerConnection() must inherit property "onicecandidateerror" with the proper type assert_inherits: property "onicecandidateerror" not found in prototype chain
-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "onsignalingstatechange" with the proper type
-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "oniceconnectionstatechange" with the proper type
-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "onicegatheringstatechange" with the proper type
-FAIL RTCPeerConnection interface: new RTCPeerConnection() must inherit property "onconnectionstatechange" with the proper type assert_inherits: property "onconnectionstatechange" not found in prototype chain
-FAIL RTCPeerConnection interface: new RTCPeerConnection() must inherit property "onfingerprintfailure" with the proper type assert_inherits: property "onfingerprintfailure" not found in prototype chain
-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "createOffer(RTCSessionDescriptionCallback, RTCPeerConnectionErrorCallback, RTCOfferOptions)" with the proper type
-PASS RTCPeerConnection interface: calling createOffer(RTCSessionDescriptionCallback, RTCPeerConnectionErrorCallback, RTCOfferOptions) on new RTCPeerConnection() with too few arguments must throw TypeError
-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "setLocalDescription(RTCSessionDescriptionInit, VoidFunction, RTCPeerConnectionErrorCallback)" with the proper type
-PASS RTCPeerConnection interface: calling setLocalDescription(RTCSessionDescriptionInit, VoidFunction, RTCPeerConnectionErrorCallback) on new RTCPeerConnection() with too few arguments must throw TypeError
-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "createAnswer(RTCSessionDescriptionCallback, RTCPeerConnectionErrorCallback)" with the proper type
-PASS RTCPeerConnection interface: calling createAnswer(RTCSessionDescriptionCallback, RTCPeerConnectionErrorCallback) on new RTCPeerConnection() with too few arguments must throw TypeError
-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "setRemoteDescription(RTCSessionDescriptionInit, VoidFunction, RTCPeerConnectionErrorCallback)" with the proper type
-PASS RTCPeerConnection interface: calling setRemoteDescription(RTCSessionDescriptionInit, VoidFunction, RTCPeerConnectionErrorCallback) on new RTCPeerConnection() with too few arguments must throw TypeError
-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "addIceCandidate([object Object],[object Object], VoidFunction, RTCPeerConnectionErrorCallback)" with the proper type
-PASS RTCPeerConnection interface: calling addIceCandidate([object Object],[object Object], VoidFunction, RTCPeerConnectionErrorCallback) on new RTCPeerConnection() with too few arguments must throw TypeError
-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "generateCertificate(AlgorithmIdentifier)" with the proper type
-PASS RTCPeerConnection interface: calling generateCertificate(AlgorithmIdentifier) on new RTCPeerConnection() with too few arguments must throw TypeError
-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "getSenders()" with the proper type
-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "getReceivers()" with the proper type
-FAIL RTCPeerConnection interface: new RTCPeerConnection() must inherit property "getTransceivers()" with the proper type assert_inherits: property "getTransceivers" not found in prototype chain
-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "addTrack(MediaStreamTrack, MediaStream)" with the proper type
-PASS RTCPeerConnection interface: calling addTrack(MediaStreamTrack, MediaStream) on new RTCPeerConnection() with too few arguments must throw TypeError
-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "removeTrack(RTCRtpSender)" with the proper type
-PASS RTCPeerConnection interface: calling removeTrack(RTCRtpSender) on new RTCPeerConnection() with too few arguments must throw TypeError
-FAIL RTCPeerConnection interface: new RTCPeerConnection() must inherit property "addTransceiver([object Object],[object Object], RTCRtpTransceiverInit)" with the proper type assert_inherits: property "addTransceiver" not found in prototype chain
-FAIL RTCPeerConnection interface: calling addTransceiver([object Object],[object Object], RTCRtpTransceiverInit) on new RTCPeerConnection() with too few arguments must throw TypeError assert_inherits: property "addTransceiver" not found in prototype chain
-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "ontrack" with the proper type
-FAIL RTCPeerConnection interface: new RTCPeerConnection() must inherit property "sctp" with the proper type assert_inherits: property "sctp" not found in prototype chain
-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "createDataChannel(USVString, RTCDataChannelInit)" with the proper type
-PASS RTCPeerConnection interface: calling createDataChannel(USVString, RTCDataChannelInit) on new RTCPeerConnection() with too few arguments must throw TypeError
-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "ondatachannel" with the proper type
-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "getStats(MediaStreamTrack)" with the proper type
-PASS RTCPeerConnection interface: calling getStats(MediaStreamTrack) on new RTCPeerConnection() with too few arguments must throw TypeError
-FAIL RTCPeerConnection interface: new RTCPeerConnection() must inherit property "setIdentityProvider(DOMString, RTCIdentityProviderOptions)" with the proper type assert_inherits: property "setIdentityProvider" not found in prototype chain
-FAIL RTCPeerConnection interface: calling setIdentityProvider(DOMString, RTCIdentityProviderOptions) on new RTCPeerConnection() with too few arguments must throw TypeError assert_inherits: property "setIdentityProvider" not found in prototype chain
-FAIL RTCPeerConnection interface: new RTCPeerConnection() must inherit property "getIdentityAssertion()" with the proper type assert_inherits: property "getIdentityAssertion" not found in prototype chain
-FAIL RTCPeerConnection interface: new RTCPeerConnection() must inherit property "peerIdentity" with the proper type assert_inherits: property "peerIdentity" not found in prototype chain
-FAIL RTCPeerConnection interface: new RTCPeerConnection() must inherit property "idpLoginUrl" with the proper type assert_inherits: property "idpLoginUrl" not found in prototype chain
-FAIL RTCPeerConnection interface: new RTCPeerConnection() must inherit property "idpErrorInfo" with the proper type assert_inherits: property "idpErrorInfo" not found in prototype chain
-PASS RTCSessionDescription interface: existence and properties of interface object
-FAIL RTCSessionDescription interface object length assert_equals: wrong value for RTCSessionDescription.length expected 1 but got 0
-PASS RTCSessionDescription interface object name
-PASS RTCSessionDescription interface: existence and properties of interface prototype object
-PASS RTCSessionDescription interface: existence and properties of interface prototype object's "constructor" property
-PASS RTCSessionDescription interface: existence and properties of interface prototype object's @@unscopables property
-FAIL RTCSessionDescription interface: attribute type assert_equals: setter must be undefined for readonly attributes expected (undefined) undefined but got (function) function "function () { [native code] }"
-PASS Unscopable handled correctly for type property on RTCSessionDescription
-FAIL RTCSessionDescription interface: attribute sdp assert_equals: setter must be undefined for readonly attributes expected (undefined) undefined but got (function) function "function () { [native code] }"
-PASS Unscopable handled correctly for sdp property on RTCSessionDescription
-PASS RTCSessionDescription interface: operation toJSON()
-PASS Unscopable handled correctly for toJSON() on RTCSessionDescription
-PASS RTCSessionDescription must be primary interface of new RTCSessionDescription({ type: 'offer' })
-PASS Stringification of new RTCSessionDescription({ type: 'offer' })
-PASS RTCSessionDescription interface: new RTCSessionDescription({ type: 'offer' }) must inherit property "type" with the proper type
-FAIL RTCSessionDescription interface: new RTCSessionDescription({ type: 'offer' }) must inherit property "sdp" with the proper type assert_equals: expected "string" but got "object"
-PASS RTCSessionDescription interface: new RTCSessionDescription({ type: 'offer' }) must inherit property "toJSON()" with the proper type
-FAIL Test default toJSON operation of RTCSessionDescription assert_equals: expected "string" but got "object"
-PASS RTCIceCandidate interface: existence and properties of interface object
-FAIL RTCIceCandidate interface object length assert_equals: wrong value for RTCIceCandidate.length expected 0 but got 1
-PASS RTCIceCandidate interface object name
-PASS RTCIceCandidate interface: existence and properties of interface prototype object
-PASS RTCIceCandidate interface: existence and properties of interface prototype object's "constructor" property
-PASS RTCIceCandidate interface: existence and properties of interface prototype object's @@unscopables property
-FAIL RTCIceCandidate interface: attribute candidate assert_equals: setter must be undefined for readonly attributes expected (undefined) undefined but got (function) function "function () { [native code] }"
-PASS Unscopable handled correctly for candidate property on RTCIceCandidate
-FAIL RTCIceCandidate interface: attribute sdpMid assert_equals: setter must be undefined for readonly attributes expected (undefined) undefined but got (function) function "function () { [native code] }"
-PASS Unscopable handled correctly for sdpMid property on RTCIceCandidate
-FAIL RTCIceCandidate interface: attribute sdpMLineIndex assert_equals: setter must be undefined for readonly attributes expected (undefined) undefined but got (function) function "function () { [native code] }"
-PASS Unscopable handled correctly for sdpMLineIndex property on RTCIceCandidate
-FAIL RTCIceCandidate interface: attribute foundation assert_true: The prototype object must have a property "foundation" expected true got false
-PASS Unscopable handled correctly for foundation property on RTCIceCandidate
-FAIL RTCIceCandidate interface: attribute component assert_true: The prototype object must have a property "component" expected true got false
-PASS Unscopable handled correctly for component property on RTCIceCandidate
-FAIL RTCIceCandidate interface: attribute priority assert_true: The prototype object must have a property "priority" expected true got false
-PASS Unscopable handled correctly for priority property on RTCIceCandidate
-FAIL RTCIceCandidate interface: attribute ip assert_true: The prototype object must have a property "ip" expected true got false
-PASS Unscopable handled correctly for ip property on RTCIceCandidate
-FAIL RTCIceCandidate interface: attribute protocol assert_true: The prototype object must have a property "protocol" expected true got false
-PASS Unscopable handled correctly for protocol property on RTCIceCandidate
-FAIL RTCIceCandidate interface: attribute port assert_true: The prototype object must have a property "port" expected true got false
-PASS Unscopable handled correctly for port property on RTCIceCandidate
-FAIL RTCIceCandidate interface: attribute type assert_true: The prototype object must have a property "type" expected true got false
-PASS Unscopable handled correctly for type property on RTCIceCandidate
-FAIL RTCIceCandidate interface: attribute tcpType assert_true: The prototype object must have a property "tcpType" expected true got false
-PASS Unscopable handled correctly for tcpType property on RTCIceCandidate
-FAIL RTCIceCandidate interface: attribute relatedAddress assert_true: The prototype object must have a property "relatedAddress" expected true got false
-PASS Unscopable handled correctly for relatedAddress property on RTCIceCandidate
-FAIL RTCIceCandidate interface: attribute relatedPort assert_true: The prototype object must have a property "relatedPort" expected true got false
-PASS Unscopable handled correctly for relatedPort property on RTCIceCandidate
-FAIL RTCIceCandidate interface: attribute usernameFragment assert_true: The prototype object must have a property "usernameFragment" expected true got false
-PASS Unscopable handled correctly for usernameFragment property on RTCIceCandidate
-PASS RTCIceCandidate interface: operation toJSON()
-PASS Unscopable handled correctly for toJSON() on RTCIceCandidate
-FAIL RTCIceCandidate must be primary interface of new RTCIceCandidate({ sdpMid: 1 }) assert_equals: Unexpected exception when evaluating object expected null but got object "TypeMismatchError: Failed to construct 'RTCIceCandidate': The 'candidate' property is not a string, or is empty."
-FAIL Stringification of new RTCIceCandidate({ sdpMid: 1 }) assert_equals: Unexpected exception when evaluating object expected null but got object "TypeMismatchError: Failed to construct 'RTCIceCandidate': The 'candidate' property is not a string, or is empty."
-FAIL RTCIceCandidate interface: new RTCIceCandidate({ sdpMid: 1 }) must inherit property "candidate" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeMismatchError: Failed to construct 'RTCIceCandidate': The 'candidate' property is not a string, or is empty."
-FAIL RTCIceCandidate interface: new RTCIceCandidate({ sdpMid: 1 }) must inherit property "sdpMid" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeMismatchError: Failed to construct 'RTCIceCandidate': The 'candidate' property is not a string, or is empty."
-FAIL RTCIceCandidate interface: new RTCIceCandidate({ sdpMid: 1 }) must inherit property "sdpMLineIndex" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeMismatchError: Failed to construct 'RTCIceCandidate': The 'candidate' property is not a string, or is empty."
-FAIL RTCIceCandidate interface: new RTCIceCandidate({ sdpMid: 1 }) must inherit property "foundation" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeMismatchError: Failed to construct 'RTCIceCandidate': The 'candidate' property is not a string, or is empty."
-FAIL RTCIceCandidate interface: new RTCIceCandidate({ sdpMid: 1 }) must inherit property "component" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeMismatchError: Failed to construct 'RTCIceCandidate': The 'candidate' property is not a string, or is empty."
-FAIL RTCIceCandidate interface: new RTCIceCandidate({ sdpMid: 1 }) must inherit property "priority" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeMismatchError: Failed to construct 'RTCIceCandidate': The 'candidate' property is not a string, or is empty."
-FAIL RTCIceCandidate interface: new RTCIceCandidate({ sdpMid: 1 }) must inherit property "ip" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeMismatchError: Failed to construct 'RTCIceCandidate': The 'candidate' property is not a string, or is empty."
-FAIL RTCIceCandidate interface: new RTCIceCandidate({ sdpMid: 1 }) must inherit property "protocol" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeMismatchError: Failed to construct 'RTCIceCandidate': The 'candidate' property is not a string, or is empty."
-FAIL RTCIceCandidate interface: new RTCIceCandidate({ sdpMid: 1 }) must inherit property "port" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeMismatchError: Failed to construct 'RTCIceCandidate': The 'candidate' property is not a string, or is empty."
-FAIL RTCIceCandidate interface: new RTCIceCandidate({ sdpMid: 1 }) must inherit property "type" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeMismatchError: Failed to construct 'RTCIceCandidate': The 'candidate' property is not a string, or is empty."
-FAIL RTCIceCandidate interface: new RTCIceCandidate({ sdpMid: 1 }) must inherit property "tcpType" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeMismatchError: Failed to construct 'RTCIceCandidate': The 'candidate' property is not a string, or is empty."
-FAIL RTCIceCandidate interface: new RTCIceCandidate({ sdpMid: 1 }) must inherit property "relatedAddress" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeMismatchError: Failed to construct 'RTCIceCandidate': The 'candidate' property is not a string, or is empty."
-FAIL RTCIceCandidate interface: new RTCIceCandidate({ sdpMid: 1 }) must inherit property "relatedPort" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeMismatchError: Failed to construct 'RTCIceCandidate': The 'candidate' property is not a string, or is empty."
-FAIL RTCIceCandidate interface: new RTCIceCandidate({ sdpMid: 1 }) must inherit property "usernameFragment" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeMismatchError: Failed to construct 'RTCIceCandidate': The 'candidate' property is not a string, or is empty."
-FAIL RTCIceCandidate interface: new RTCIceCandidate({ sdpMid: 1 }) must inherit property "toJSON()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeMismatchError: Failed to construct 'RTCIceCandidate': The 'candidate' property is not a string, or is empty."
-FAIL Test toJSON operation of RTCIceCandidate Cannot read property 'toJSON' of undefined
-FAIL RTCPeerConnectionIceEvent interface: existence and properties of interface object Cannot read property 'has_extended_attribute' of undefined
-PASS RTCPeerConnectionIceEvent interface object length
-PASS RTCPeerConnectionIceEvent interface object name
-FAIL RTCPeerConnectionIceEvent interface: existence and properties of interface prototype object Cannot read property 'has_extended_attribute' of undefined
-PASS RTCPeerConnectionIceEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS RTCPeerConnectionIceEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS RTCPeerConnectionIceEvent interface: attribute candidate
-PASS Unscopable handled correctly for candidate property on RTCPeerConnectionIceEvent
-FAIL RTCPeerConnectionIceEvent interface: attribute url assert_true: The prototype object must have a property "url" expected true got false
-PASS Unscopable handled correctly for url property on RTCPeerConnectionIceEvent
-PASS RTCPeerConnectionIceEvent must be primary interface of new RTCPeerConnectionIceEvent('ice')
-FAIL Stringification of new RTCPeerConnectionIceEvent('ice') Cannot read property 'has_stringifier' of undefined
-PASS RTCPeerConnectionIceEvent interface: new RTCPeerConnectionIceEvent('ice') must inherit property "candidate" with the proper type
-FAIL RTCPeerConnectionIceEvent interface: new RTCPeerConnectionIceEvent('ice') must inherit property "url" with the proper type assert_inherits: property "url" not found in prototype chain
-FAIL RTCPeerConnectionIceErrorEvent interface: existence and properties of interface object assert_own_property: self does not have own property "RTCPeerConnectionIceErrorEvent" expected property "RTCPeerConnectionIceErrorEvent" missing
-FAIL RTCPeerConnectionIceErrorEvent interface object length assert_own_property: self does not have own property "RTCPeerConnectionIceErrorEvent" expected property "RTCPeerConnectionIceErrorEvent" missing
-FAIL RTCPeerConnectionIceErrorEvent interface object name assert_own_property: self does not have own property "RTCPeerConnectionIceErrorEvent" expected property "RTCPeerConnectionIceErrorEvent" missing
-FAIL RTCPeerConnectionIceErrorEvent interface: existence and properties of interface prototype object assert_own_property: self does not have own property "RTCPeerConnectionIceErrorEvent" expected property "RTCPeerConnectionIceErrorEvent" missing
-FAIL RTCPeerConnectionIceErrorEvent interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "RTCPeerConnectionIceErrorEvent" expected property "RTCPeerConnectionIceErrorEvent" missing
-FAIL RTCPeerConnectionIceErrorEvent interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "RTCPeerConnectionIceErrorEvent" expected property "RTCPeerConnectionIceErrorEvent" missing
-FAIL RTCPeerConnectionIceErrorEvent interface: attribute hostCandidate assert_own_property: self does not have own property "RTCPeerConnectionIceErrorEvent" expected property "RTCPeerConnectionIceErrorEvent" missing
-PASS Unscopable handled correctly for hostCandidate property on RTCPeerConnectionIceErrorEvent
-FAIL RTCPeerConnectionIceErrorEvent interface: attribute url assert_own_property: self does not have own property "RTCPeerConnectionIceErrorEvent" expected property "RTCPeerConnectionIceErrorEvent" missing
-PASS Unscopable handled correctly for url property on RTCPeerConnectionIceErrorEvent
-FAIL RTCPeerConnectionIceErrorEvent interface: attribute errorCode assert_own_property: self does not have own property "RTCPeerConnectionIceErrorEvent" expected property "RTCPeerConnectionIceErrorEvent" missing
-PASS Unscopable handled correctly for errorCode property on RTCPeerConnectionIceErrorEvent
-FAIL RTCPeerConnectionIceErrorEvent interface: attribute errorText assert_own_property: self does not have own property "RTCPeerConnectionIceErrorEvent" expected property "RTCPeerConnectionIceErrorEvent" missing
-PASS Unscopable handled correctly for errorText property on RTCPeerConnectionIceErrorEvent
-FAIL RTCPeerConnectionIceErrorEvent must be primary interface of new RTCPeerConnectionIceErrorEvent('ice-error', { errorCode: 701 }); assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: RTCPeerConnectionIceErrorEvent is not defined"
-FAIL Stringification of new RTCPeerConnectionIceErrorEvent('ice-error', { errorCode: 701 }); assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: RTCPeerConnectionIceErrorEvent is not defined"
-FAIL RTCPeerConnectionIceErrorEvent interface: new RTCPeerConnectionIceErrorEvent('ice-error', { errorCode: 701 }); must inherit property "hostCandidate" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: RTCPeerConnectionIceErrorEvent is not defined"
-FAIL RTCPeerConnectionIceErrorEvent interface: new RTCPeerConnectionIceErrorEvent('ice-error', { errorCode: 701 }); must inherit property "url" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: RTCPeerConnectionIceErrorEvent is not defined"
-FAIL RTCPeerConnectionIceErrorEvent interface: new RTCPeerConnectionIceErrorEvent('ice-error', { errorCode: 701 }); must inherit property "errorCode" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: RTCPeerConnectionIceErrorEvent is not defined"
-FAIL RTCPeerConnectionIceErrorEvent interface: new RTCPeerConnectionIceErrorEvent('ice-error', { errorCode: 701 }); must inherit property "errorText" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: RTCPeerConnectionIceErrorEvent is not defined"
-PASS RTCCertificate interface: existence and properties of interface object
-PASS RTCCertificate interface object length
-PASS RTCCertificate interface object name
-PASS RTCCertificate interface: existence and properties of interface prototype object
-PASS RTCCertificate interface: existence and properties of interface prototype object's "constructor" property
-PASS RTCCertificate interface: existence and properties of interface prototype object's @@unscopables property
-PASS RTCCertificate interface: attribute expires
-PASS Unscopable handled correctly for expires property on RTCCertificate
-PASS RTCCertificate interface: operation getFingerprints()
-PASS Unscopable handled correctly for getFingerprints() on RTCCertificate
-FAIL RTCCertificate interface: operation getAlgorithm() assert_own_property: interface prototype object missing non-static operation expected property "getAlgorithm" missing
-PASS Unscopable handled correctly for getAlgorithm() on RTCCertificate
-PASS RTCCertificate must be primary interface of idlTestObjects.certificate
-PASS Stringification of idlTestObjects.certificate
-PASS RTCCertificate interface: idlTestObjects.certificate must inherit property "expires" with the proper type
-PASS RTCCertificate interface: idlTestObjects.certificate must inherit property "getFingerprints()" with the proper type
-FAIL RTCCertificate interface: idlTestObjects.certificate must inherit property "getAlgorithm()" with the proper type assert_inherits: property "getAlgorithm" not found in prototype chain
-PASS RTCRtpSender interface: existence and properties of interface object
-PASS RTCRtpSender interface object length
-PASS RTCRtpSender interface object name
-PASS RTCRtpSender interface: existence and properties of interface prototype object
-PASS RTCRtpSender interface: existence and properties of interface prototype object's "constructor" property
-PASS RTCRtpSender interface: existence and properties of interface prototype object's @@unscopables property
-PASS RTCRtpSender interface: attribute track
-PASS Unscopable handled correctly for track property on RTCRtpSender
-FAIL RTCRtpSender interface: attribute transport assert_true: The prototype object must have a property "transport" expected true got false
-PASS Unscopable handled correctly for transport property on RTCRtpSender
-FAIL RTCRtpSender interface: attribute rtcpTransport assert_true: The prototype object must have a property "rtcpTransport" expected true got false
-PASS Unscopable handled correctly for rtcpTransport property on RTCRtpSender
-FAIL RTCRtpSender interface: operation getCapabilities(DOMString) assert_own_property: interface object missing static operation expected property "getCapabilities" missing
-PASS Unscopable handled correctly for getCapabilities(DOMString) on RTCRtpSender
-FAIL RTCRtpSender interface: operation setParameters(RTCRtpParameters) assert_own_property: interface prototype object missing non-static operation expected property "setParameters" missing
-PASS Unscopable handled correctly for setParameters(RTCRtpParameters) on RTCRtpSender
-FAIL RTCRtpSender interface: operation getParameters() assert_own_property: interface prototype object missing non-static operation expected property "getParameters" missing
-PASS Unscopable handled correctly for getParameters() on RTCRtpSender
-PASS RTCRtpSender interface: operation replaceTrack(MediaStreamTrack)
-PASS Unscopable handled correctly for replaceTrack(MediaStreamTrack) on RTCRtpSender
-FAIL RTCRtpSender interface: operation getStats() assert_own_property: interface prototype object missing non-static operation expected property "getStats" missing
-PASS Unscopable handled correctly for getStats() on RTCRtpSender
-PASS RTCRtpSender interface: attribute dtmf
-PASS Unscopable handled correctly for dtmf property on RTCRtpSender
-FAIL RTCRtpSender must be primary interface of new RTCPeerConnection().addTransceiver('audio').sender assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL Stringification of new RTCPeerConnection().addTransceiver('audio').sender assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCRtpSender interface: new RTCPeerConnection().addTransceiver('audio').sender must inherit property "track" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCRtpSender interface: new RTCPeerConnection().addTransceiver('audio').sender must inherit property "transport" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCRtpSender interface: new RTCPeerConnection().addTransceiver('audio').sender must inherit property "rtcpTransport" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCRtpSender interface: new RTCPeerConnection().addTransceiver('audio').sender must inherit property "getCapabilities(DOMString)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCRtpSender interface: calling getCapabilities(DOMString) on new RTCPeerConnection().addTransceiver('audio').sender with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCRtpSender interface: new RTCPeerConnection().addTransceiver('audio').sender must inherit property "setParameters(RTCRtpParameters)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCRtpSender interface: calling setParameters(RTCRtpParameters) on new RTCPeerConnection().addTransceiver('audio').sender with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCRtpSender interface: new RTCPeerConnection().addTransceiver('audio').sender must inherit property "getParameters()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCRtpSender interface: new RTCPeerConnection().addTransceiver('audio').sender must inherit property "replaceTrack(MediaStreamTrack)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCRtpSender interface: calling replaceTrack(MediaStreamTrack) on new RTCPeerConnection().addTransceiver('audio').sender with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCRtpSender interface: new RTCPeerConnection().addTransceiver('audio').sender must inherit property "getStats()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCRtpSender interface: new RTCPeerConnection().addTransceiver('audio').sender must inherit property "dtmf" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-PASS RTCRtpReceiver interface: existence and properties of interface object
-PASS RTCRtpReceiver interface object length
-PASS RTCRtpReceiver interface object name
-PASS RTCRtpReceiver interface: existence and properties of interface prototype object
-PASS RTCRtpReceiver interface: existence and properties of interface prototype object's "constructor" property
-PASS RTCRtpReceiver interface: existence and properties of interface prototype object's @@unscopables property
-PASS RTCRtpReceiver interface: attribute track
-PASS Unscopable handled correctly for track property on RTCRtpReceiver
-FAIL RTCRtpReceiver interface: attribute transport assert_true: The prototype object must have a property "transport" expected true got false
-PASS Unscopable handled correctly for transport property on RTCRtpReceiver
-FAIL RTCRtpReceiver interface: attribute rtcpTransport assert_true: The prototype object must have a property "rtcpTransport" expected true got false
-PASS Unscopable handled correctly for rtcpTransport property on RTCRtpReceiver
-FAIL RTCRtpReceiver interface: operation getCapabilities(DOMString) assert_own_property: interface object missing static operation expected property "getCapabilities" missing
-PASS Unscopable handled correctly for getCapabilities(DOMString) on RTCRtpReceiver
-FAIL RTCRtpReceiver interface: operation getParameters() assert_own_property: interface prototype object missing non-static operation expected property "getParameters" missing
-PASS Unscopable handled correctly for getParameters() on RTCRtpReceiver
-PASS RTCRtpReceiver interface: operation getContributingSources()
-PASS Unscopable handled correctly for getContributingSources() on RTCRtpReceiver
-FAIL RTCRtpReceiver interface: operation getSynchronizationSources() assert_own_property: interface prototype object missing non-static operation expected property "getSynchronizationSources" missing
-PASS Unscopable handled correctly for getSynchronizationSources() on RTCRtpReceiver
-FAIL RTCRtpReceiver interface: operation getStats() assert_own_property: interface prototype object missing non-static operation expected property "getStats" missing
-PASS Unscopable handled correctly for getStats() on RTCRtpReceiver
-FAIL RTCRtpReceiver must be primary interface of new RTCPeerConnection().addTransceiver('audio').receiver assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL Stringification of new RTCPeerConnection().addTransceiver('audio').receiver assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCRtpReceiver interface: new RTCPeerConnection().addTransceiver('audio').receiver must inherit property "track" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCRtpReceiver interface: new RTCPeerConnection().addTransceiver('audio').receiver must inherit property "transport" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCRtpReceiver interface: new RTCPeerConnection().addTransceiver('audio').receiver must inherit property "rtcpTransport" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCRtpReceiver interface: new RTCPeerConnection().addTransceiver('audio').receiver must inherit property "getCapabilities(DOMString)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCRtpReceiver interface: calling getCapabilities(DOMString) on new RTCPeerConnection().addTransceiver('audio').receiver with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCRtpReceiver interface: new RTCPeerConnection().addTransceiver('audio').receiver must inherit property "getParameters()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCRtpReceiver interface: new RTCPeerConnection().addTransceiver('audio').receiver must inherit property "getContributingSources()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCRtpReceiver interface: new RTCPeerConnection().addTransceiver('audio').receiver must inherit property "getSynchronizationSources()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCRtpReceiver interface: new RTCPeerConnection().addTransceiver('audio').receiver must inherit property "getStats()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-PASS RTCRtpContributingSource interface: existence and properties of interface object
-PASS RTCRtpContributingSource interface object length
-PASS RTCRtpContributingSource interface object name
-PASS RTCRtpContributingSource interface: existence and properties of interface prototype object
-PASS RTCRtpContributingSource interface: existence and properties of interface prototype object's "constructor" property
-PASS RTCRtpContributingSource interface: existence and properties of interface prototype object's @@unscopables property
-PASS RTCRtpContributingSource interface: attribute timestamp
-PASS Unscopable handled correctly for timestamp property on RTCRtpContributingSource
-PASS RTCRtpContributingSource interface: attribute source
-PASS Unscopable handled correctly for source property on RTCRtpContributingSource
-FAIL RTCRtpContributingSource interface: attribute audioLevel assert_true: The prototype object must have a property "audioLevel" expected true got false
-PASS Unscopable handled correctly for audioLevel property on RTCRtpContributingSource
-FAIL RTCRtpSynchronizationSource interface: existence and properties of interface object assert_own_property: self does not have own property "RTCRtpSynchronizationSource" expected property "RTCRtpSynchronizationSource" missing
-FAIL RTCRtpSynchronizationSource interface object length assert_own_property: self does not have own property "RTCRtpSynchronizationSource" expected property "RTCRtpSynchronizationSource" missing
-FAIL RTCRtpSynchronizationSource interface object name assert_own_property: self does not have own property "RTCRtpSynchronizationSource" expected property "RTCRtpSynchronizationSource" missing
-FAIL RTCRtpSynchronizationSource interface: existence and properties of interface prototype object assert_own_property: self does not have own property "RTCRtpSynchronizationSource" expected property "RTCRtpSynchronizationSource" missing
-FAIL RTCRtpSynchronizationSource interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "RTCRtpSynchronizationSource" expected property "RTCRtpSynchronizationSource" missing
-FAIL RTCRtpSynchronizationSource interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "RTCRtpSynchronizationSource" expected property "RTCRtpSynchronizationSource" missing
-FAIL RTCRtpSynchronizationSource interface: attribute timestamp assert_own_property: self does not have own property "RTCRtpSynchronizationSource" expected property "RTCRtpSynchronizationSource" missing
-PASS Unscopable handled correctly for timestamp property on RTCRtpSynchronizationSource
-FAIL RTCRtpSynchronizationSource interface: attribute source assert_own_property: self does not have own property "RTCRtpSynchronizationSource" expected property "RTCRtpSynchronizationSource" missing
-PASS Unscopable handled correctly for source property on RTCRtpSynchronizationSource
-FAIL RTCRtpSynchronizationSource interface: attribute audioLevel assert_own_property: self does not have own property "RTCRtpSynchronizationSource" expected property "RTCRtpSynchronizationSource" missing
-PASS Unscopable handled correctly for audioLevel property on RTCRtpSynchronizationSource
-FAIL RTCRtpSynchronizationSource interface: attribute voiceActivityFlag assert_own_property: self does not have own property "RTCRtpSynchronizationSource" expected property "RTCRtpSynchronizationSource" missing
-PASS Unscopable handled correctly for voiceActivityFlag property on RTCRtpSynchronizationSource
-FAIL RTCRtpTransceiver interface: existence and properties of interface object assert_own_property: self does not have own property "RTCRtpTransceiver" expected property "RTCRtpTransceiver" missing
-FAIL RTCRtpTransceiver interface object length assert_own_property: self does not have own property "RTCRtpTransceiver" expected property "RTCRtpTransceiver" missing
-FAIL RTCRtpTransceiver interface object name assert_own_property: self does not have own property "RTCRtpTransceiver" expected property "RTCRtpTransceiver" missing
-FAIL RTCRtpTransceiver interface: existence and properties of interface prototype object assert_own_property: self does not have own property "RTCRtpTransceiver" expected property "RTCRtpTransceiver" missing
-FAIL RTCRtpTransceiver interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "RTCRtpTransceiver" expected property "RTCRtpTransceiver" missing
-FAIL RTCRtpTransceiver interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "RTCRtpTransceiver" expected property "RTCRtpTransceiver" missing
-FAIL RTCRtpTransceiver interface: attribute mid assert_own_property: self does not have own property "RTCRtpTransceiver" expected property "RTCRtpTransceiver" missing
-PASS Unscopable handled correctly for mid property on RTCRtpTransceiver
-FAIL RTCRtpTransceiver interface: attribute sender assert_own_property: self does not have own property "RTCRtpTransceiver" expected property "RTCRtpTransceiver" missing
-PASS Unscopable handled correctly for sender property on RTCRtpTransceiver
-FAIL RTCRtpTransceiver interface: attribute receiver assert_own_property: self does not have own property "RTCRtpTransceiver" expected property "RTCRtpTransceiver" missing
-PASS Unscopable handled correctly for receiver property on RTCRtpTransceiver
-FAIL RTCRtpTransceiver interface: attribute stopped assert_own_property: self does not have own property "RTCRtpTransceiver" expected property "RTCRtpTransceiver" missing
-PASS Unscopable handled correctly for stopped property on RTCRtpTransceiver
-FAIL RTCRtpTransceiver interface: attribute direction assert_own_property: self does not have own property "RTCRtpTransceiver" expected property "RTCRtpTransceiver" missing
-PASS Unscopable handled correctly for direction property on RTCRtpTransceiver
-FAIL RTCRtpTransceiver interface: attribute currentDirection assert_own_property: self does not have own property "RTCRtpTransceiver" expected property "RTCRtpTransceiver" missing
-PASS Unscopable handled correctly for currentDirection property on RTCRtpTransceiver
-FAIL RTCRtpTransceiver interface: operation setDirection(RTCRtpTransceiverDirection) assert_own_property: self does not have own property "RTCRtpTransceiver" expected property "RTCRtpTransceiver" missing
-PASS Unscopable handled correctly for setDirection(RTCRtpTransceiverDirection) on RTCRtpTransceiver
-FAIL RTCRtpTransceiver interface: operation stop() assert_own_property: self does not have own property "RTCRtpTransceiver" expected property "RTCRtpTransceiver" missing
-PASS Unscopable handled correctly for stop() on RTCRtpTransceiver
-FAIL RTCRtpTransceiver interface: operation setCodecPreferences([object Object]) assert_own_property: self does not have own property "RTCRtpTransceiver" expected property "RTCRtpTransceiver" missing
-PASS Unscopable handled correctly for setCodecPreferences([object Object]) on RTCRtpTransceiver
-FAIL RTCRtpTransceiver must be primary interface of new RTCPeerConnection().addTransceiver('audio') assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL Stringification of new RTCPeerConnection().addTransceiver('audio') assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCRtpTransceiver interface: new RTCPeerConnection().addTransceiver('audio') must inherit property "mid" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCRtpTransceiver interface: new RTCPeerConnection().addTransceiver('audio') must inherit property "sender" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCRtpTransceiver interface: new RTCPeerConnection().addTransceiver('audio') must inherit property "receiver" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCRtpTransceiver interface: new RTCPeerConnection().addTransceiver('audio') must inherit property "stopped" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCRtpTransceiver interface: new RTCPeerConnection().addTransceiver('audio') must inherit property "direction" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCRtpTransceiver interface: new RTCPeerConnection().addTransceiver('audio') must inherit property "currentDirection" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCRtpTransceiver interface: new RTCPeerConnection().addTransceiver('audio') must inherit property "setDirection(RTCRtpTransceiverDirection)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCRtpTransceiver interface: calling setDirection(RTCRtpTransceiverDirection) on new RTCPeerConnection().addTransceiver('audio') with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCRtpTransceiver interface: new RTCPeerConnection().addTransceiver('audio') must inherit property "stop()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCRtpTransceiver interface: new RTCPeerConnection().addTransceiver('audio') must inherit property "setCodecPreferences([object Object])" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCRtpTransceiver interface: calling setCodecPreferences([object Object]) on new RTCPeerConnection().addTransceiver('audio') with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCDtlsTransport interface: existence and properties of interface object assert_own_property: self does not have own property "RTCDtlsTransport" expected property "RTCDtlsTransport" missing
-FAIL RTCDtlsTransport interface object length assert_own_property: self does not have own property "RTCDtlsTransport" expected property "RTCDtlsTransport" missing
-FAIL RTCDtlsTransport interface object name assert_own_property: self does not have own property "RTCDtlsTransport" expected property "RTCDtlsTransport" missing
-FAIL RTCDtlsTransport interface: existence and properties of interface prototype object assert_own_property: self does not have own property "RTCDtlsTransport" expected property "RTCDtlsTransport" missing
-FAIL RTCDtlsTransport interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "RTCDtlsTransport" expected property "RTCDtlsTransport" missing
-FAIL RTCDtlsTransport interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "RTCDtlsTransport" expected property "RTCDtlsTransport" missing
-FAIL RTCDtlsTransport interface: attribute transport assert_own_property: self does not have own property "RTCDtlsTransport" expected property "RTCDtlsTransport" missing
-PASS Unscopable handled correctly for transport property on RTCDtlsTransport
-FAIL RTCDtlsTransport interface: attribute state assert_own_property: self does not have own property "RTCDtlsTransport" expected property "RTCDtlsTransport" missing
-PASS Unscopable handled correctly for state property on RTCDtlsTransport
-FAIL RTCDtlsTransport interface: operation getRemoteCertificates() assert_own_property: self does not have own property "RTCDtlsTransport" expected property "RTCDtlsTransport" missing
-PASS Unscopable handled correctly for getRemoteCertificates() on RTCDtlsTransport
-FAIL RTCDtlsTransport interface: attribute onstatechange assert_own_property: self does not have own property "RTCDtlsTransport" expected property "RTCDtlsTransport" missing
-PASS Unscopable handled correctly for onstatechange property on RTCDtlsTransport
-FAIL RTCDtlsTransport must be primary interface of idlTestObjects.dtlsTransport assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL Stringification of idlTestObjects.dtlsTransport assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL RTCDtlsTransport interface: idlTestObjects.dtlsTransport must inherit property "transport" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL RTCDtlsTransport interface: idlTestObjects.dtlsTransport must inherit property "state" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL RTCDtlsTransport interface: idlTestObjects.dtlsTransport must inherit property "getRemoteCertificates()" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL RTCDtlsTransport interface: idlTestObjects.dtlsTransport must inherit property "onstatechange" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL RTCIceTransport interface: existence and properties of interface object assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing
-FAIL RTCIceTransport interface object length assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing
-FAIL RTCIceTransport interface object name assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing
-FAIL RTCIceTransport interface: existence and properties of interface prototype object assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing
-FAIL RTCIceTransport interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing
-FAIL RTCIceTransport interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing
-FAIL RTCIceTransport interface: attribute role assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing
-PASS Unscopable handled correctly for role property on RTCIceTransport
-FAIL RTCIceTransport interface: attribute component assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing
-PASS Unscopable handled correctly for component property on RTCIceTransport
-FAIL RTCIceTransport interface: attribute state assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing
-PASS Unscopable handled correctly for state property on RTCIceTransport
-FAIL RTCIceTransport interface: attribute gatheringState assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing
-PASS Unscopable handled correctly for gatheringState property on RTCIceTransport
-FAIL RTCIceTransport interface: operation getLocalCandidates() assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing
-PASS Unscopable handled correctly for getLocalCandidates() on RTCIceTransport
-FAIL RTCIceTransport interface: operation getRemoteCandidates() assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing
-PASS Unscopable handled correctly for getRemoteCandidates() on RTCIceTransport
-FAIL RTCIceTransport interface: operation getSelectedCandidatePair() assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing
-PASS Unscopable handled correctly for getSelectedCandidatePair() on RTCIceTransport
-FAIL RTCIceTransport interface: operation getLocalParameters() assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing
-PASS Unscopable handled correctly for getLocalParameters() on RTCIceTransport
-FAIL RTCIceTransport interface: operation getRemoteParameters() assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing
-PASS Unscopable handled correctly for getRemoteParameters() on RTCIceTransport
-FAIL RTCIceTransport interface: attribute onstatechange assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing
-PASS Unscopable handled correctly for onstatechange property on RTCIceTransport
-FAIL RTCIceTransport interface: attribute ongatheringstatechange assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing
-PASS Unscopable handled correctly for ongatheringstatechange property on RTCIceTransport
-FAIL RTCIceTransport interface: attribute onselectedcandidatepairchange assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing
-PASS Unscopable handled correctly for onselectedcandidatepairchange property on RTCIceTransport
-FAIL RTCIceTransport must be primary interface of idlTestObjects.iceTransport assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL Stringification of idlTestObjects.iceTransport assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "role" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "component" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "state" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "gatheringState" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "getLocalCandidates()" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "getRemoteCandidates()" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "getSelectedCandidatePair()" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "getLocalParameters()" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "getRemoteParameters()" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "onstatechange" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "ongatheringstatechange" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "onselectedcandidatepairchange" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL RTCTrackEvent interface: existence and properties of interface object Cannot read property 'has_extended_attribute' of undefined
-PASS RTCTrackEvent interface object length
-PASS RTCTrackEvent interface object name
-FAIL RTCTrackEvent interface: existence and properties of interface prototype object Cannot read property 'has_extended_attribute' of undefined
-PASS RTCTrackEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS RTCTrackEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS RTCTrackEvent interface: attribute receiver
-PASS Unscopable handled correctly for receiver property on RTCTrackEvent
-PASS RTCTrackEvent interface: attribute track
-PASS Unscopable handled correctly for track property on RTCTrackEvent
-PASS RTCTrackEvent interface: attribute streams
-PASS Unscopable handled correctly for streams property on RTCTrackEvent
-FAIL RTCTrackEvent interface: attribute transceiver assert_true: The prototype object must have a property "transceiver" expected true got false
-PASS Unscopable handled correctly for transceiver property on RTCTrackEvent
-FAIL RTCTrackEvent must be primary interface of initTrackEvent() assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: pc.addTransceiver is not a function"
-FAIL Stringification of initTrackEvent() assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: pc.addTransceiver is not a function"
-FAIL RTCTrackEvent interface: initTrackEvent() must inherit property "receiver" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: pc.addTransceiver is not a function"
-FAIL RTCTrackEvent interface: initTrackEvent() must inherit property "track" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: pc.addTransceiver is not a function"
-FAIL RTCTrackEvent interface: initTrackEvent() must inherit property "streams" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: pc.addTransceiver is not a function"
-FAIL RTCTrackEvent interface: initTrackEvent() must inherit property "transceiver" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: pc.addTransceiver is not a function"
-FAIL RTCSctpTransport interface: existence and properties of interface object assert_own_property: self does not have own property "RTCSctpTransport" expected property "RTCSctpTransport" missing
-FAIL RTCSctpTransport interface object length assert_own_property: self does not have own property "RTCSctpTransport" expected property "RTCSctpTransport" missing
-FAIL RTCSctpTransport interface object name assert_own_property: self does not have own property "RTCSctpTransport" expected property "RTCSctpTransport" missing
-FAIL RTCSctpTransport interface: existence and properties of interface prototype object assert_own_property: self does not have own property "RTCSctpTransport" expected property "RTCSctpTransport" missing
-FAIL RTCSctpTransport interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "RTCSctpTransport" expected property "RTCSctpTransport" missing
-FAIL RTCSctpTransport interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "RTCSctpTransport" expected property "RTCSctpTransport" missing
-FAIL RTCSctpTransport interface: attribute transport assert_own_property: self does not have own property "RTCSctpTransport" expected property "RTCSctpTransport" missing
-PASS Unscopable handled correctly for transport property on RTCSctpTransport
-FAIL RTCSctpTransport interface: attribute maxMessageSize assert_own_property: self does not have own property "RTCSctpTransport" expected property "RTCSctpTransport" missing
-PASS Unscopable handled correctly for maxMessageSize property on RTCSctpTransport
-FAIL RTCSctpTransport must be primary interface of idlTestObjects.sctpTransport assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL Stringification of idlTestObjects.sctpTransport assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL RTCSctpTransport interface: idlTestObjects.sctpTransport must inherit property "transport" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL RTCSctpTransport interface: idlTestObjects.sctpTransport must inherit property "maxMessageSize" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL RTCDataChannel interface: existence and properties of interface object Cannot read property 'has_extended_attribute' of undefined
-PASS RTCDataChannel interface object length
-PASS RTCDataChannel interface object name
-FAIL RTCDataChannel interface: existence and properties of interface prototype object Cannot read property 'has_extended_attribute' of undefined
-PASS RTCDataChannel interface: existence and properties of interface prototype object's "constructor" property
-PASS RTCDataChannel interface: existence and properties of interface prototype object's @@unscopables property
-PASS RTCDataChannel interface: attribute label
-PASS Unscopable handled correctly for label property on RTCDataChannel
-PASS RTCDataChannel interface: attribute ordered
-PASS Unscopable handled correctly for ordered property on RTCDataChannel
-FAIL RTCDataChannel interface: attribute maxPacketLifeTime assert_true: The prototype object must have a property "maxPacketLifeTime" expected true got false
-PASS Unscopable handled correctly for maxPacketLifeTime property on RTCDataChannel
-PASS RTCDataChannel interface: attribute maxRetransmits
-PASS Unscopable handled correctly for maxRetransmits property on RTCDataChannel
-PASS RTCDataChannel interface: attribute protocol
-PASS Unscopable handled correctly for protocol property on RTCDataChannel
-PASS RTCDataChannel interface: attribute negotiated
-PASS Unscopable handled correctly for negotiated property on RTCDataChannel
-PASS RTCDataChannel interface: attribute id
-PASS Unscopable handled correctly for id property on RTCDataChannel
-FAIL RTCDataChannel interface: attribute priority assert_true: The prototype object must have a property "priority" expected true got false
-PASS Unscopable handled correctly for priority property on RTCDataChannel
-PASS RTCDataChannel interface: attribute readyState
-PASS Unscopable handled correctly for readyState property on RTCDataChannel
-PASS RTCDataChannel interface: attribute bufferedAmount
-PASS Unscopable handled correctly for bufferedAmount property on RTCDataChannel
-PASS RTCDataChannel interface: attribute bufferedAmountLowThreshold
-PASS Unscopable handled correctly for bufferedAmountLowThreshold property on RTCDataChannel
-PASS RTCDataChannel interface: attribute onopen
-PASS Unscopable handled correctly for onopen property on RTCDataChannel
-PASS RTCDataChannel interface: attribute onbufferedamountlow
-PASS Unscopable handled correctly for onbufferedamountlow property on RTCDataChannel
-PASS RTCDataChannel interface: attribute onerror
-PASS Unscopable handled correctly for onerror property on RTCDataChannel
-PASS RTCDataChannel interface: attribute onclose
-PASS Unscopable handled correctly for onclose property on RTCDataChannel
-PASS RTCDataChannel interface: operation close()
-PASS Unscopable handled correctly for close() on RTCDataChannel
-PASS RTCDataChannel interface: attribute onmessage
-PASS Unscopable handled correctly for onmessage property on RTCDataChannel
-PASS RTCDataChannel interface: attribute binaryType
-PASS Unscopable handled correctly for binaryType property on RTCDataChannel
-PASS RTCDataChannel interface: operation send(USVString)
-PASS Unscopable handled correctly for send(USVString) on RTCDataChannel
-PASS RTCDataChannel interface: operation send(Blob)
-PASS Unscopable handled correctly for send(Blob) on RTCDataChannel
-PASS RTCDataChannel interface: operation send(ArrayBuffer)
-PASS Unscopable handled correctly for send(ArrayBuffer) on RTCDataChannel
-PASS RTCDataChannel interface: operation send(ArrayBufferView)
-PASS Unscopable handled correctly for send(ArrayBufferView) on RTCDataChannel
-PASS RTCDataChannel must be primary interface of new RTCPeerConnection().createDataChannel('')
-FAIL Stringification of new RTCPeerConnection().createDataChannel('') Cannot read property 'has_stringifier' of undefined
-PASS RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "label" with the proper type
-PASS RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "ordered" with the proper type
-FAIL RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "maxPacketLifeTime" with the proper type assert_inherits: property "maxPacketLifeTime" not found in prototype chain
-PASS RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "maxRetransmits" with the proper type
-PASS RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "protocol" with the proper type
-PASS RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "negotiated" with the proper type
-PASS RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "id" with the proper type
-FAIL RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "priority" with the proper type assert_inherits: property "priority" not found in prototype chain
-PASS RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "readyState" with the proper type
-PASS RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "bufferedAmount" with the proper type
-PASS RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "bufferedAmountLowThreshold" with the proper type
-PASS RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "onopen" with the proper type
-PASS RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "onbufferedamountlow" with the proper type
-PASS RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "onerror" with the proper type
-PASS RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "onclose" with the proper type
-PASS RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "close()" with the proper type
-PASS RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "onmessage" with the proper type
-PASS RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "binaryType" with the proper type
-PASS RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "send(USVString)" with the proper type
-PASS RTCDataChannel interface: calling send(USVString) on new RTCPeerConnection().createDataChannel('') with too few arguments must throw TypeError
-PASS RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "send(Blob)" with the proper type
-PASS RTCDataChannel interface: calling send(Blob) on new RTCPeerConnection().createDataChannel('') with too few arguments must throw TypeError
-PASS RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "send(ArrayBuffer)" with the proper type
-PASS RTCDataChannel interface: calling send(ArrayBuffer) on new RTCPeerConnection().createDataChannel('') with too few arguments must throw TypeError
-PASS RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "send(ArrayBufferView)" with the proper type
-PASS RTCDataChannel interface: calling send(ArrayBufferView) on new RTCPeerConnection().createDataChannel('') with too few arguments must throw TypeError
-FAIL RTCDataChannelEvent interface: existence and properties of interface object Cannot read property 'has_extended_attribute' of undefined
-PASS RTCDataChannelEvent interface object length
-PASS RTCDataChannelEvent interface object name
-FAIL RTCDataChannelEvent interface: existence and properties of interface prototype object Cannot read property 'has_extended_attribute' of undefined
-PASS RTCDataChannelEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS RTCDataChannelEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS RTCDataChannelEvent interface: attribute channel
-PASS Unscopable handled correctly for channel property on RTCDataChannelEvent
-PASS RTCDataChannelEvent must be primary interface of new RTCDataChannelEvent('channel',
-        { channel: new RTCPeerConnection().createDataChannel('') })
-FAIL Stringification of new RTCDataChannelEvent('channel',
-        { channel: new RTCPeerConnection().createDataChannel('') }) Cannot read property 'has_stringifier' of undefined
-PASS RTCDataChannelEvent interface: new RTCDataChannelEvent('channel',
-        { channel: new RTCPeerConnection().createDataChannel('') }) must inherit property "channel" with the proper type
-FAIL RTCDTMFSender interface: existence and properties of interface object Cannot read property 'has_extended_attribute' of undefined
-PASS RTCDTMFSender interface object length
-PASS RTCDTMFSender interface object name
-FAIL RTCDTMFSender interface: existence and properties of interface prototype object Cannot read property 'has_extended_attribute' of undefined
-PASS RTCDTMFSender interface: existence and properties of interface prototype object's "constructor" property
-PASS RTCDTMFSender interface: existence and properties of interface prototype object's @@unscopables property
-PASS RTCDTMFSender interface: operation insertDTMF(DOMString, unsigned long, unsigned long)
-PASS Unscopable handled correctly for insertDTMF(DOMString, unsigned long, unsigned long) on RTCDTMFSender
-PASS RTCDTMFSender interface: attribute ontonechange
-PASS Unscopable handled correctly for ontonechange property on RTCDTMFSender
-PASS RTCDTMFSender interface: attribute toneBuffer
-PASS Unscopable handled correctly for toneBuffer property on RTCDTMFSender
-FAIL RTCDTMFToneChangeEvent interface: existence and properties of interface object Cannot read property 'has_extended_attribute' of undefined
-PASS RTCDTMFToneChangeEvent interface object length
-PASS RTCDTMFToneChangeEvent interface object name
-FAIL RTCDTMFToneChangeEvent interface: existence and properties of interface prototype object Cannot read property 'has_extended_attribute' of undefined
-PASS RTCDTMFToneChangeEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS RTCDTMFToneChangeEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS RTCDTMFToneChangeEvent interface: attribute tone
-PASS Unscopable handled correctly for tone property on RTCDTMFToneChangeEvent
-PASS RTCStatsReport interface: existence and properties of interface object
-PASS RTCStatsReport interface object length
-PASS RTCStatsReport interface object name
-PASS RTCStatsReport interface: existence and properties of interface prototype object
-PASS RTCStatsReport interface: existence and properties of interface prototype object's "constructor" property
-PASS RTCStatsReport interface: existence and properties of interface prototype object's @@unscopables property
-PASS RTCIdentityProviderGlobalScope interface: existence and properties of interface object
-PASS RTCIdentityProviderRegistrar interface: existence and properties of interface object
-FAIL RTCIdentityAssertion interface: existence and properties of interface object assert_own_property: self does not have own property "RTCIdentityAssertion" expected property "RTCIdentityAssertion" missing
-FAIL RTCIdentityAssertion interface object length assert_own_property: self does not have own property "RTCIdentityAssertion" expected property "RTCIdentityAssertion" missing
-FAIL RTCIdentityAssertion interface object name assert_own_property: self does not have own property "RTCIdentityAssertion" expected property "RTCIdentityAssertion" missing
-FAIL RTCIdentityAssertion interface: existence and properties of interface prototype object assert_own_property: self does not have own property "RTCIdentityAssertion" expected property "RTCIdentityAssertion" missing
-FAIL RTCIdentityAssertion interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "RTCIdentityAssertion" expected property "RTCIdentityAssertion" missing
-FAIL RTCIdentityAssertion interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "RTCIdentityAssertion" expected property "RTCIdentityAssertion" missing
-FAIL RTCIdentityAssertion interface: attribute idp assert_own_property: self does not have own property "RTCIdentityAssertion" expected property "RTCIdentityAssertion" missing
-PASS Unscopable handled correctly for idp property on RTCIdentityAssertion
-FAIL RTCIdentityAssertion interface: attribute name assert_own_property: self does not have own property "RTCIdentityAssertion" expected property "RTCIdentityAssertion" missing
-PASS Unscopable handled correctly for name property on RTCIdentityAssertion
-FAIL RTCErrorEvent interface: existence and properties of interface object assert_own_property: self does not have own property "RTCErrorEvent" expected property "RTCErrorEvent" missing
-FAIL RTCErrorEvent interface object length assert_own_property: self does not have own property "RTCErrorEvent" expected property "RTCErrorEvent" missing
-FAIL RTCErrorEvent interface object name assert_own_property: self does not have own property "RTCErrorEvent" expected property "RTCErrorEvent" missing
-FAIL RTCErrorEvent interface: existence and properties of interface prototype object assert_own_property: self does not have own property "RTCErrorEvent" expected property "RTCErrorEvent" missing
-FAIL RTCErrorEvent interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "RTCErrorEvent" expected property "RTCErrorEvent" missing
-FAIL RTCErrorEvent interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "RTCErrorEvent" expected property "RTCErrorEvent" missing
-FAIL RTCErrorEvent interface: attribute error assert_own_property: self does not have own property "RTCErrorEvent" expected property "RTCErrorEvent" missing
-PASS Unscopable handled correctly for error property on RTCErrorEvent
-FAIL RTCErrorEvent must be primary interface of new RTCErrorEvent('error') assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: RTCErrorEvent is not defined"
-FAIL Stringification of new RTCErrorEvent('error') assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: RTCErrorEvent is not defined"
-FAIL RTCErrorEvent interface: new RTCErrorEvent('error') must inherit property "error" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: RTCErrorEvent is not defined"
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/webvr/idlharness.https-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/webvr/idlharness.https-expected.txt
deleted file mode 100644
index afa899a..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/webvr/idlharness.https-expected.txt
+++ /dev/null
@@ -1,145 +0,0 @@
-This is a testharness.js-based test.
-FAIL Window interface: attribute onvrdisplayconnect assert_own_property: The global object must have a property "onvrdisplayconnect" expected property "onvrdisplayconnect" missing
-PASS Unscopable handled correctly for onvrdisplayconnect property on Window
-FAIL Window interface: attribute onvrdisplaydisconnect assert_own_property: The global object must have a property "onvrdisplaydisconnect" expected property "onvrdisplaydisconnect" missing
-PASS Unscopable handled correctly for onvrdisplaydisconnect property on Window
-FAIL Window interface: attribute onvrdisplayactivate assert_own_property: The global object must have a property "onvrdisplayactivate" expected property "onvrdisplayactivate" missing
-PASS Unscopable handled correctly for onvrdisplayactivate property on Window
-FAIL Window interface: attribute onvrdisplaydeactivate assert_own_property: The global object must have a property "onvrdisplaydeactivate" expected property "onvrdisplaydeactivate" missing
-PASS Unscopable handled correctly for onvrdisplaydeactivate property on Window
-FAIL Window interface: attribute onvrdisplayblur assert_own_property: The global object must have a property "onvrdisplayblur" expected property "onvrdisplayblur" missing
-PASS Unscopable handled correctly for onvrdisplayblur property on Window
-FAIL Window interface: attribute onvrdisplayfocus assert_own_property: The global object must have a property "onvrdisplayfocus" expected property "onvrdisplayfocus" missing
-PASS Unscopable handled correctly for onvrdisplayfocus property on Window
-FAIL Window interface: attribute onvrdisplaypresentchange assert_own_property: The global object must have a property "onvrdisplaypresentchange" expected property "onvrdisplaypresentchange" missing
-PASS Unscopable handled correctly for onvrdisplaypresentchange property on Window
-PASS Navigator interface: operation getVRDisplays()
-PASS Unscopable handled correctly for getVRDisplays() on Navigator
-FAIL Navigator interface: attribute activeVRDisplays assert_true: The prototype object must have a property "activeVRDisplays" expected true got false
-PASS Unscopable handled correctly for activeVRDisplays property on Navigator
-FAIL Navigator interface: attribute vrEnabled assert_true: The prototype object must have a property "vrEnabled" expected true got false
-PASS Unscopable handled correctly for vrEnabled property on Navigator
-FAIL HTMLIFrameElement interface: attribute allowvr assert_true: The prototype object must have a property "allowvr" expected true got false
-PASS Unscopable handled correctly for allowvr property on HTMLIFrameElement
-PASS Gamepad interface: attribute displayId
-PASS Unscopable handled correctly for displayId property on Gamepad
-PASS VRDisplay interface: existence and properties of interface object
-PASS VRDisplay interface object length
-PASS VRDisplay interface object name
-PASS VRDisplay interface: existence and properties of interface prototype object
-PASS VRDisplay interface: existence and properties of interface prototype object's "constructor" property
-PASS VRDisplay interface: existence and properties of interface prototype object's @@unscopables property
-PASS VRDisplay interface: attribute isPresenting
-PASS Unscopable handled correctly for isPresenting property on VRDisplay
-PASS VRDisplay interface: attribute capabilities
-PASS Unscopable handled correctly for capabilities property on VRDisplay
-PASS VRDisplay interface: attribute stageParameters
-PASS Unscopable handled correctly for stageParameters property on VRDisplay
-PASS VRDisplay interface: operation getEyeParameters(VREye)
-PASS Unscopable handled correctly for getEyeParameters(VREye) on VRDisplay
-PASS VRDisplay interface: attribute displayId
-PASS Unscopable handled correctly for displayId property on VRDisplay
-PASS VRDisplay interface: attribute displayName
-PASS Unscopable handled correctly for displayName property on VRDisplay
-PASS VRDisplay interface: operation getFrameData(VRFrameData)
-PASS Unscopable handled correctly for getFrameData(VRFrameData) on VRDisplay
-PASS VRDisplay interface: attribute depthNear
-PASS Unscopable handled correctly for depthNear property on VRDisplay
-PASS VRDisplay interface: attribute depthFar
-PASS Unscopable handled correctly for depthFar property on VRDisplay
-PASS VRDisplay interface: operation requestAnimationFrame(FrameRequestCallback)
-PASS Unscopable handled correctly for requestAnimationFrame(FrameRequestCallback) on VRDisplay
-PASS VRDisplay interface: operation cancelAnimationFrame(long)
-PASS Unscopable handled correctly for cancelAnimationFrame(long) on VRDisplay
-PASS VRDisplay interface: operation requestPresent([object Object])
-PASS Unscopable handled correctly for requestPresent([object Object]) on VRDisplay
-PASS VRDisplay interface: operation exitPresent()
-PASS Unscopable handled correctly for exitPresent() on VRDisplay
-PASS VRDisplay interface: operation getLayers()
-PASS Unscopable handled correctly for getLayers() on VRDisplay
-PASS VRDisplay interface: operation submitFrame()
-PASS Unscopable handled correctly for submitFrame() on VRDisplay
-PASS VRDisplayCapabilities interface: existence and properties of interface object
-PASS VRDisplayCapabilities interface object length
-PASS VRDisplayCapabilities interface object name
-PASS VRDisplayCapabilities interface: existence and properties of interface prototype object
-PASS VRDisplayCapabilities interface: existence and properties of interface prototype object's "constructor" property
-PASS VRDisplayCapabilities interface: existence and properties of interface prototype object's @@unscopables property
-PASS VRDisplayCapabilities interface: attribute hasPosition
-PASS Unscopable handled correctly for hasPosition property on VRDisplayCapabilities
-PASS VRDisplayCapabilities interface: attribute hasExternalDisplay
-PASS Unscopable handled correctly for hasExternalDisplay property on VRDisplayCapabilities
-PASS VRDisplayCapabilities interface: attribute canPresent
-PASS Unscopable handled correctly for canPresent property on VRDisplayCapabilities
-PASS VRDisplayCapabilities interface: attribute maxLayers
-PASS Unscopable handled correctly for maxLayers property on VRDisplayCapabilities
-PASS VRPose interface: existence and properties of interface object
-PASS VRPose interface object length
-PASS VRPose interface object name
-PASS VRPose interface: existence and properties of interface prototype object
-PASS VRPose interface: existence and properties of interface prototype object's "constructor" property
-PASS VRPose interface: existence and properties of interface prototype object's @@unscopables property
-PASS VRPose interface: attribute position
-PASS Unscopable handled correctly for position property on VRPose
-PASS VRPose interface: attribute linearVelocity
-PASS Unscopable handled correctly for linearVelocity property on VRPose
-PASS VRPose interface: attribute linearAcceleration
-PASS Unscopable handled correctly for linearAcceleration property on VRPose
-PASS VRPose interface: attribute orientation
-PASS Unscopable handled correctly for orientation property on VRPose
-PASS VRPose interface: attribute angularVelocity
-PASS Unscopable handled correctly for angularVelocity property on VRPose
-PASS VRPose interface: attribute angularAcceleration
-PASS Unscopable handled correctly for angularAcceleration property on VRPose
-PASS VRFrameData interface: existence and properties of interface object
-PASS VRFrameData interface object length
-PASS VRFrameData interface object name
-PASS VRFrameData interface: existence and properties of interface prototype object
-PASS VRFrameData interface: existence and properties of interface prototype object's "constructor" property
-PASS VRFrameData interface: existence and properties of interface prototype object's @@unscopables property
-PASS VRFrameData interface: attribute leftProjectionMatrix
-PASS Unscopable handled correctly for leftProjectionMatrix property on VRFrameData
-PASS VRFrameData interface: attribute leftViewMatrix
-PASS Unscopable handled correctly for leftViewMatrix property on VRFrameData
-PASS VRFrameData interface: attribute rightProjectionMatrix
-PASS Unscopable handled correctly for rightProjectionMatrix property on VRFrameData
-PASS VRFrameData interface: attribute rightViewMatrix
-PASS Unscopable handled correctly for rightViewMatrix property on VRFrameData
-PASS VRFrameData interface: attribute pose
-PASS Unscopable handled correctly for pose property on VRFrameData
-PASS VREyeParameters interface: existence and properties of interface object
-PASS VREyeParameters interface object length
-PASS VREyeParameters interface object name
-PASS VREyeParameters interface: existence and properties of interface prototype object
-PASS VREyeParameters interface: existence and properties of interface prototype object's "constructor" property
-PASS VREyeParameters interface: existence and properties of interface prototype object's @@unscopables property
-PASS VREyeParameters interface: attribute offset
-PASS Unscopable handled correctly for offset property on VREyeParameters
-PASS VREyeParameters interface: attribute renderWidth
-PASS Unscopable handled correctly for renderWidth property on VREyeParameters
-PASS VREyeParameters interface: attribute renderHeight
-PASS Unscopable handled correctly for renderHeight property on VREyeParameters
-PASS VRStageParameters interface: existence and properties of interface object
-PASS VRStageParameters interface object length
-PASS VRStageParameters interface object name
-PASS VRStageParameters interface: existence and properties of interface prototype object
-PASS VRStageParameters interface: existence and properties of interface prototype object's "constructor" property
-PASS VRStageParameters interface: existence and properties of interface prototype object's @@unscopables property
-PASS VRStageParameters interface: attribute sittingToStandingTransform
-PASS Unscopable handled correctly for sittingToStandingTransform property on VRStageParameters
-PASS VRStageParameters interface: attribute sizeX
-PASS Unscopable handled correctly for sizeX property on VRStageParameters
-PASS VRStageParameters interface: attribute sizeZ
-PASS Unscopable handled correctly for sizeZ property on VRStageParameters
-PASS VRDisplayEvent interface: existence and properties of interface object
-FAIL VRDisplayEvent interface object length assert_equals: wrong value for VRDisplayEvent.length expected 2 but got 1
-PASS VRDisplayEvent interface object name
-PASS VRDisplayEvent interface: existence and properties of interface prototype object
-PASS VRDisplayEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS VRDisplayEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS VRDisplayEvent interface: attribute display
-PASS Unscopable handled correctly for display property on VRDisplayEvent
-PASS VRDisplayEvent interface: attribute reason
-PASS Unscopable handled correctly for reason property on VRDisplayEvent
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/webvtt/api/interfaces-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/webvtt/api/interfaces-expected.txt
deleted file mode 100644
index fc1dd8bd..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/webvtt/api/interfaces-expected.txt
+++ /dev/null
@@ -1,77 +0,0 @@
-This is a testharness.js-based test.
-Found 73 tests; 69 PASS, 4 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS VTTCue interface: existence and properties of interface object
-PASS VTTCue interface object length
-PASS VTTCue interface object name
-PASS VTTCue interface: existence and properties of interface prototype object
-PASS VTTCue interface: existence and properties of interface prototype object's "constructor" property
-PASS VTTCue interface: existence and properties of interface prototype object's @@unscopables property
-PASS VTTCue interface: attribute region
-PASS Unscopable handled correctly for region property on VTTCue
-PASS VTTCue interface: attribute vertical
-PASS Unscopable handled correctly for vertical property on VTTCue
-PASS VTTCue interface: attribute snapToLines
-PASS Unscopable handled correctly for snapToLines property on VTTCue
-PASS VTTCue interface: attribute line
-PASS Unscopable handled correctly for line property on VTTCue
-FAIL VTTCue interface: attribute lineAlign assert_true: The prototype object must have a property "lineAlign" expected true got false
-PASS Unscopable handled correctly for lineAlign property on VTTCue
-PASS VTTCue interface: attribute position
-PASS Unscopable handled correctly for position property on VTTCue
-FAIL VTTCue interface: attribute positionAlign assert_true: The prototype object must have a property "positionAlign" expected true got false
-PASS Unscopable handled correctly for positionAlign property on VTTCue
-PASS VTTCue interface: attribute size
-PASS Unscopable handled correctly for size property on VTTCue
-PASS VTTCue interface: attribute align
-PASS Unscopable handled correctly for align property on VTTCue
-PASS VTTCue interface: attribute text
-PASS Unscopable handled correctly for text property on VTTCue
-PASS VTTCue interface: operation getCueAsHTML()
-PASS Unscopable handled correctly for getCueAsHTML() on VTTCue
-PASS VTTCue must be primary interface of new VTTCue(0, 0, "")
-PASS Stringification of new VTTCue(0, 0, "")
-PASS VTTCue interface: new VTTCue(0, 0, "") must inherit property "region" with the proper type
-PASS VTTCue interface: new VTTCue(0, 0, "") must inherit property "vertical" with the proper type
-PASS VTTCue interface: new VTTCue(0, 0, "") must inherit property "snapToLines" with the proper type
-PASS VTTCue interface: new VTTCue(0, 0, "") must inherit property "line" with the proper type
-FAIL VTTCue interface: new VTTCue(0, 0, "") must inherit property "lineAlign" with the proper type assert_inherits: property "lineAlign" not found in prototype chain
-PASS VTTCue interface: new VTTCue(0, 0, "") must inherit property "position" with the proper type
-FAIL VTTCue interface: new VTTCue(0, 0, "") must inherit property "positionAlign" with the proper type assert_inherits: property "positionAlign" not found in prototype chain
-PASS VTTCue interface: new VTTCue(0, 0, "") must inherit property "size" with the proper type
-PASS VTTCue interface: new VTTCue(0, 0, "") must inherit property "align" with the proper type
-PASS VTTCue interface: new VTTCue(0, 0, "") must inherit property "text" with the proper type
-PASS VTTCue interface: new VTTCue(0, 0, "") must inherit property "getCueAsHTML()" with the proper type
-PASS VTTRegion interface: existence and properties of interface object
-PASS VTTRegion interface object length
-PASS VTTRegion interface object name
-PASS VTTRegion interface: existence and properties of interface prototype object
-PASS VTTRegion interface: existence and properties of interface prototype object's "constructor" property
-PASS VTTRegion interface: existence and properties of interface prototype object's @@unscopables property
-PASS VTTRegion interface: attribute id
-PASS Unscopable handled correctly for id property on VTTRegion
-PASS VTTRegion interface: attribute width
-PASS Unscopable handled correctly for width property on VTTRegion
-PASS VTTRegion interface: attribute lines
-PASS Unscopable handled correctly for lines property on VTTRegion
-PASS VTTRegion interface: attribute regionAnchorX
-PASS Unscopable handled correctly for regionAnchorX property on VTTRegion
-PASS VTTRegion interface: attribute regionAnchorY
-PASS Unscopable handled correctly for regionAnchorY property on VTTRegion
-PASS VTTRegion interface: attribute viewportAnchorX
-PASS Unscopable handled correctly for viewportAnchorX property on VTTRegion
-PASS VTTRegion interface: attribute viewportAnchorY
-PASS Unscopable handled correctly for viewportAnchorY property on VTTRegion
-PASS VTTRegion interface: attribute scroll
-PASS Unscopable handled correctly for scroll property on VTTRegion
-PASS VTTRegion must be primary interface of new VTTRegion()
-PASS Stringification of new VTTRegion()
-PASS VTTRegion interface: new VTTRegion() must inherit property "id" with the proper type
-PASS VTTRegion interface: new VTTRegion() must inherit property "width" with the proper type
-PASS VTTRegion interface: new VTTRegion() must inherit property "lines" with the proper type
-PASS VTTRegion interface: new VTTRegion() must inherit property "regionAnchorX" with the proper type
-PASS VTTRegion interface: new VTTRegion() must inherit property "regionAnchorY" with the proper type
-PASS VTTRegion interface: new VTTRegion() must inherit property "viewportAnchorX" with the proper type
-PASS VTTRegion interface: new VTTRegion() must inherit property "viewportAnchorY" with the proper type
-PASS VTTRegion interface: new VTTRegion() must inherit property "scroll" with the proper type
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/webxr/interfaces.https-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/webxr/interfaces.https-expected.txt
deleted file mode 100644
index 6ae9ac7b..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/webxr/interfaces.https-expected.txt
+++ /dev/null
@@ -1,203 +0,0 @@
-This is a testharness.js-based test.
-PASS Test IDL implementation of WebXR API
-PASS Navigator interface: attribute xr
-PASS Unscopable handled correctly for xr property on Navigator
-PASS Navigator interface: navigator must inherit property "xr" with the proper type
-PASS XR interface: existence and properties of interface object
-PASS XR interface object length
-PASS XR interface object name
-PASS XR interface: existence and properties of interface prototype object
-PASS XR interface: existence and properties of interface prototype object's "constructor" property
-PASS XR interface: existence and properties of interface prototype object's @@unscopables property
-PASS XR interface: operation requestDevice()
-PASS Unscopable handled correctly for requestDevice() on XR
-PASS XR interface: attribute ondevicechange
-PASS Unscopable handled correctly for ondevicechange property on XR
-PASS XRDevice interface: existence and properties of interface object
-PASS XRDevice interface object length
-PASS XRDevice interface object name
-PASS XRDevice interface: existence and properties of interface prototype object
-PASS XRDevice interface: existence and properties of interface prototype object's "constructor" property
-PASS XRDevice interface: existence and properties of interface prototype object's @@unscopables property
-PASS XRDevice interface: attribute external
-PASS Unscopable handled correctly for external property on XRDevice
-PASS XRDevice interface: operation supportsSession(XRSessionCreationOptions)
-PASS Unscopable handled correctly for supportsSession(XRSessionCreationOptions) on XRDevice
-PASS XRDevice interface: operation requestSession(XRSessionCreationOptions)
-PASS Unscopable handled correctly for requestSession(XRSessionCreationOptions) on XRDevice
-PASS XRSession interface: existence and properties of interface object
-PASS XRSession interface object length
-PASS XRSession interface object name
-PASS XRSession interface: existence and properties of interface prototype object
-PASS XRSession interface: existence and properties of interface prototype object's "constructor" property
-PASS XRSession interface: existence and properties of interface prototype object's @@unscopables property
-PASS XRSession interface: attribute device
-PASS Unscopable handled correctly for device property on XRSession
-PASS XRSession interface: attribute exclusive
-PASS Unscopable handled correctly for exclusive property on XRSession
-PASS XRSession interface: attribute outputContext
-PASS Unscopable handled correctly for outputContext property on XRSession
-PASS XRSession interface: attribute depthNear
-PASS Unscopable handled correctly for depthNear property on XRSession
-PASS XRSession interface: attribute depthFar
-PASS Unscopable handled correctly for depthFar property on XRSession
-PASS XRSession interface: attribute baseLayer
-PASS Unscopable handled correctly for baseLayer property on XRSession
-PASS XRSession interface: operation requestFrameOfReference(XRFrameOfReferenceType, XRFrameOfReferenceOptions)
-PASS Unscopable handled correctly for requestFrameOfReference(XRFrameOfReferenceType, XRFrameOfReferenceOptions) on XRSession
-PASS XRSession interface: operation requestAnimationFrame(XRFrameRequestCallback)
-PASS Unscopable handled correctly for requestAnimationFrame(XRFrameRequestCallback) on XRSession
-PASS XRSession interface: operation cancelAnimationFrame(long)
-PASS Unscopable handled correctly for cancelAnimationFrame(long) on XRSession
-PASS XRSession interface: operation end()
-PASS Unscopable handled correctly for end() on XRSession
-PASS XRSession interface: attribute onblur
-PASS Unscopable handled correctly for onblur property on XRSession
-PASS XRSession interface: attribute onfocus
-PASS Unscopable handled correctly for onfocus property on XRSession
-PASS XRSession interface: attribute onresetpose
-PASS Unscopable handled correctly for onresetpose property on XRSession
-PASS XRSession interface: attribute onend
-PASS Unscopable handled correctly for onend property on XRSession
-PASS XRPresentationFrame interface: existence and properties of interface object
-PASS XRPresentationFrame interface object length
-PASS XRPresentationFrame interface object name
-PASS XRPresentationFrame interface: existence and properties of interface prototype object
-PASS XRPresentationFrame interface: existence and properties of interface prototype object's "constructor" property
-PASS XRPresentationFrame interface: existence and properties of interface prototype object's @@unscopables property
-PASS XRPresentationFrame interface: attribute views
-PASS Unscopable handled correctly for views property on XRPresentationFrame
-PASS XRPresentationFrame interface: operation getDevicePose(XRCoordinateSystem)
-PASS Unscopable handled correctly for getDevicePose(XRCoordinateSystem) on XRPresentationFrame
-FAIL XRCoordinateSystem interface: existence and properties of interface object assert_equals: prototype of XRCoordinateSystem is not EventTarget expected function "function EventTarget() { [native code] }" but got function "function () { [native code] }"
-PASS XRCoordinateSystem interface object length
-PASS XRCoordinateSystem interface object name
-FAIL XRCoordinateSystem interface: existence and properties of interface prototype object assert_equals: prototype of XRCoordinateSystem.prototype is not EventTarget.prototype expected object "[object EventTarget]" but got object "[object Object]"
-PASS XRCoordinateSystem interface: existence and properties of interface prototype object's "constructor" property
-PASS XRCoordinateSystem interface: existence and properties of interface prototype object's @@unscopables property
-PASS XRCoordinateSystem interface: operation getTransformTo(XRCoordinateSystem)
-PASS Unscopable handled correctly for getTransformTo(XRCoordinateSystem) on XRCoordinateSystem
-PASS XRFrameOfReference interface: existence and properties of interface object
-PASS XRFrameOfReference interface object length
-PASS XRFrameOfReference interface object name
-PASS XRFrameOfReference interface: existence and properties of interface prototype object
-PASS XRFrameOfReference interface: existence and properties of interface prototype object's "constructor" property
-PASS XRFrameOfReference interface: existence and properties of interface prototype object's @@unscopables property
-PASS XRFrameOfReference interface: attribute bounds
-PASS Unscopable handled correctly for bounds property on XRFrameOfReference
-PASS XRFrameOfReference interface: attribute emulatedHeight
-PASS Unscopable handled correctly for emulatedHeight property on XRFrameOfReference
-FAIL XRFrameOfReference interface: attribute onboundschange assert_true: The prototype object must have a property "onboundschange" expected true got false
-PASS Unscopable handled correctly for onboundschange property on XRFrameOfReference
-PASS XRStageBounds interface: existence and properties of interface object
-PASS XRStageBounds interface object length
-PASS XRStageBounds interface object name
-PASS XRStageBounds interface: existence and properties of interface prototype object
-PASS XRStageBounds interface: existence and properties of interface prototype object's "constructor" property
-PASS XRStageBounds interface: existence and properties of interface prototype object's @@unscopables property
-PASS XRStageBounds interface: attribute geometry
-PASS Unscopable handled correctly for geometry property on XRStageBounds
-PASS XRStageBoundsPoint interface: existence and properties of interface object
-PASS XRStageBoundsPoint interface object length
-PASS XRStageBoundsPoint interface object name
-PASS XRStageBoundsPoint interface: existence and properties of interface prototype object
-PASS XRStageBoundsPoint interface: existence and properties of interface prototype object's "constructor" property
-PASS XRStageBoundsPoint interface: existence and properties of interface prototype object's @@unscopables property
-PASS XRStageBoundsPoint interface: attribute x
-PASS Unscopable handled correctly for x property on XRStageBoundsPoint
-PASS XRStageBoundsPoint interface: attribute z
-PASS Unscopable handled correctly for z property on XRStageBoundsPoint
-PASS XRView interface: existence and properties of interface object
-PASS XRView interface object length
-PASS XRView interface object name
-PASS XRView interface: existence and properties of interface prototype object
-PASS XRView interface: existence and properties of interface prototype object's "constructor" property
-PASS XRView interface: existence and properties of interface prototype object's @@unscopables property
-PASS XRView interface: attribute eye
-PASS Unscopable handled correctly for eye property on XRView
-PASS XRView interface: attribute projectionMatrix
-PASS Unscopable handled correctly for projectionMatrix property on XRView
-PASS XRView interface: operation getViewport(XRLayer)
-PASS Unscopable handled correctly for getViewport(XRLayer) on XRView
-PASS XRViewport interface: existence and properties of interface object
-PASS XRViewport interface object length
-PASS XRViewport interface object name
-PASS XRViewport interface: existence and properties of interface prototype object
-PASS XRViewport interface: existence and properties of interface prototype object's "constructor" property
-PASS XRViewport interface: existence and properties of interface prototype object's @@unscopables property
-PASS XRViewport interface: attribute x
-PASS Unscopable handled correctly for x property on XRViewport
-PASS XRViewport interface: attribute y
-PASS Unscopable handled correctly for y property on XRViewport
-PASS XRViewport interface: attribute width
-PASS Unscopable handled correctly for width property on XRViewport
-PASS XRViewport interface: attribute height
-PASS Unscopable handled correctly for height property on XRViewport
-PASS XRDevicePose interface: existence and properties of interface object
-PASS XRDevicePose interface object length
-PASS XRDevicePose interface object name
-PASS XRDevicePose interface: existence and properties of interface prototype object
-PASS XRDevicePose interface: existence and properties of interface prototype object's "constructor" property
-PASS XRDevicePose interface: existence and properties of interface prototype object's @@unscopables property
-PASS XRDevicePose interface: attribute poseModelMatrix
-PASS Unscopable handled correctly for poseModelMatrix property on XRDevicePose
-PASS XRDevicePose interface: operation getViewMatrix(XRView)
-PASS Unscopable handled correctly for getViewMatrix(XRView) on XRDevicePose
-PASS XRLayer interface: existence and properties of interface object
-PASS XRLayer interface object length
-PASS XRLayer interface object name
-PASS XRLayer interface: existence and properties of interface prototype object
-PASS XRLayer interface: existence and properties of interface prototype object's "constructor" property
-PASS XRLayer interface: existence and properties of interface prototype object's @@unscopables property
-PASS XRWebGLLayer interface: existence and properties of interface object
-PASS XRWebGLLayer interface object length
-PASS XRWebGLLayer interface object name
-PASS XRWebGLLayer interface: existence and properties of interface prototype object
-PASS XRWebGLLayer interface: existence and properties of interface prototype object's "constructor" property
-PASS XRWebGLLayer interface: existence and properties of interface prototype object's @@unscopables property
-PASS XRWebGLLayer interface: attribute context
-PASS Unscopable handled correctly for context property on XRWebGLLayer
-PASS XRWebGLLayer interface: attribute antialias
-PASS Unscopable handled correctly for antialias property on XRWebGLLayer
-PASS XRWebGLLayer interface: attribute depth
-PASS Unscopable handled correctly for depth property on XRWebGLLayer
-PASS XRWebGLLayer interface: attribute stencil
-PASS Unscopable handled correctly for stencil property on XRWebGLLayer
-PASS XRWebGLLayer interface: attribute alpha
-PASS Unscopable handled correctly for alpha property on XRWebGLLayer
-PASS XRWebGLLayer interface: attribute multiview
-PASS Unscopable handled correctly for multiview property on XRWebGLLayer
-PASS XRWebGLLayer interface: attribute framebuffer
-PASS Unscopable handled correctly for framebuffer property on XRWebGLLayer
-PASS XRWebGLLayer interface: attribute framebufferWidth
-PASS Unscopable handled correctly for framebufferWidth property on XRWebGLLayer
-PASS XRWebGLLayer interface: attribute framebufferHeight
-PASS Unscopable handled correctly for framebufferHeight property on XRWebGLLayer
-PASS XRWebGLLayer interface: operation requestViewportScaling(double)
-PASS Unscopable handled correctly for requestViewportScaling(double) on XRWebGLLayer
-PASS XRPresentationContext interface: existence and properties of interface object
-PASS XRPresentationContext interface object length
-PASS XRPresentationContext interface object name
-PASS XRPresentationContext interface: existence and properties of interface prototype object
-PASS XRPresentationContext interface: existence and properties of interface prototype object's "constructor" property
-PASS XRPresentationContext interface: existence and properties of interface prototype object's @@unscopables property
-PASS XRPresentationContext interface: attribute canvas
-PASS Unscopable handled correctly for canvas property on XRPresentationContext
-PASS XRSessionEvent interface: existence and properties of interface object
-PASS XRSessionEvent interface object length
-PASS XRSessionEvent interface object name
-PASS XRSessionEvent interface: existence and properties of interface prototype object
-PASS XRSessionEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS XRSessionEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS XRSessionEvent interface: attribute session
-PASS Unscopable handled correctly for session property on XRSessionEvent
-FAIL XRCoordinateSystemEvent interface: existence and properties of interface object assert_own_property: self does not have own property "XRCoordinateSystemEvent" expected property "XRCoordinateSystemEvent" missing
-FAIL XRCoordinateSystemEvent interface object length assert_own_property: self does not have own property "XRCoordinateSystemEvent" expected property "XRCoordinateSystemEvent" missing
-FAIL XRCoordinateSystemEvent interface object name assert_own_property: self does not have own property "XRCoordinateSystemEvent" expected property "XRCoordinateSystemEvent" missing
-FAIL XRCoordinateSystemEvent interface: existence and properties of interface prototype object assert_own_property: self does not have own property "XRCoordinateSystemEvent" expected property "XRCoordinateSystemEvent" missing
-FAIL XRCoordinateSystemEvent interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "XRCoordinateSystemEvent" expected property "XRCoordinateSystemEvent" missing
-FAIL XRCoordinateSystemEvent interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "XRCoordinateSystemEvent" expected property "XRCoordinateSystemEvent" missing
-FAIL XRCoordinateSystemEvent interface: attribute coordinateSystem assert_own_property: self does not have own property "XRCoordinateSystemEvent" expected property "XRCoordinateSystemEvent" missing
-PASS Unscopable handled correctly for coordinateSystem property on XRCoordinateSystemEvent
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/workers/interfaces.worker-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/workers/interfaces.worker-expected.txt
deleted file mode 100644
index 44a3e5fe..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/workers/interfaces.worker-expected.txt
+++ /dev/null
@@ -1,211 +0,0 @@
-This is a testharness.js-based test.
-Found 207 tests; 195 PASS, 12 FAIL, 0 TIMEOUT, 0 NOTRUN.
-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, [object Object],[object Object])
-PASS Unscopable handled correctly for addEventListener(DOMString, EventListener, [object Object],[object Object]) on EventTarget
-PASS EventTarget interface: operation removeEventListener(DOMString, EventListener, [object Object],[object Object])
-PASS Unscopable handled correctly for removeEventListener(DOMString, EventListener, [object Object],[object Object]) on EventTarget
-PASS EventTarget interface: operation dispatchEvent(Event)
-PASS Unscopable handled correctly for dispatchEvent(Event) on EventTarget
-PASS EventListener interface: existence and properties of interface object
-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 Unscopable handled correctly for self property on WorkerGlobalScope
-PASS WorkerGlobalScope interface: attribute location
-PASS Unscopable handled correctly for location property on WorkerGlobalScope
-PASS WorkerGlobalScope interface: attribute navigator
-PASS Unscopable handled correctly for navigator property on WorkerGlobalScope
-PASS WorkerGlobalScope interface: operation importScripts(USVString)
-PASS Unscopable handled correctly for importScripts(USVString) on WorkerGlobalScope
-PASS WorkerGlobalScope interface: attribute onerror
-PASS Unscopable handled correctly for onerror property on WorkerGlobalScope
-FAIL WorkerGlobalScope interface: attribute onlanguagechange assert_true: The prototype object must have a property "onlanguagechange" expected true got false
-PASS Unscopable handled correctly for onlanguagechange property on WorkerGlobalScope
-FAIL WorkerGlobalScope interface: attribute onoffline assert_true: The prototype object must have a property "onoffline" expected true got false
-PASS Unscopable handled correctly for onoffline property on WorkerGlobalScope
-FAIL WorkerGlobalScope interface: attribute ononline assert_true: The prototype object must have a property "ononline" expected true got false
-PASS Unscopable handled correctly for ononline property on WorkerGlobalScope
-PASS WorkerGlobalScope interface: attribute onrejectionhandled
-PASS Unscopable handled correctly for onrejectionhandled property on WorkerGlobalScope
-PASS WorkerGlobalScope interface: attribute onunhandledrejection
-PASS Unscopable handled correctly for onunhandledrejection property on WorkerGlobalScope
-PASS WorkerGlobalScope interface: attribute origin
-PASS Unscopable handled correctly for origin property on WorkerGlobalScope
-PASS WorkerGlobalScope interface: operation btoa(DOMString)
-PASS Unscopable handled correctly for btoa(DOMString) on WorkerGlobalScope
-PASS WorkerGlobalScope interface: operation atob(DOMString)
-PASS Unscopable handled correctly for atob(DOMString) on WorkerGlobalScope
-PASS WorkerGlobalScope interface: operation setTimeout(TimerHandler, long, any)
-PASS Unscopable handled correctly for setTimeout(TimerHandler, long, any) on WorkerGlobalScope
-PASS WorkerGlobalScope interface: operation clearTimeout(long)
-PASS Unscopable handled correctly for clearTimeout(long) on WorkerGlobalScope
-PASS WorkerGlobalScope interface: operation setInterval(TimerHandler, long, any)
-PASS Unscopable handled correctly for setInterval(TimerHandler, long, any) on WorkerGlobalScope
-PASS WorkerGlobalScope interface: operation clearInterval(long)
-PASS Unscopable handled correctly for clearInterval(long) on WorkerGlobalScope
-PASS WorkerGlobalScope interface: operation createImageBitmap(ImageBitmapSource, ImageBitmapOptions)
-PASS Unscopable handled correctly for createImageBitmap(ImageBitmapSource, ImageBitmapOptions) on WorkerGlobalScope
-PASS WorkerGlobalScope interface: operation createImageBitmap(ImageBitmapSource, long, long, long, long, ImageBitmapOptions)
-PASS Unscopable handled correctly for createImageBitmap(ImageBitmapSource, long, long, long, long, ImageBitmapOptions) on WorkerGlobalScope
-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
-FAIL DedicatedWorkerGlobalScope interface: attribute name assert_own_property: The global object must have a property "name" expected property "name" missing
-PASS Unscopable handled correctly for name property on DedicatedWorkerGlobalScope
-PASS DedicatedWorkerGlobalScope interface: operation postMessage(any, [object Object])
-PASS Unscopable handled correctly for postMessage(any, [object Object]) on DedicatedWorkerGlobalScope
-PASS DedicatedWorkerGlobalScope interface: operation close()
-PASS Unscopable handled correctly for close() on DedicatedWorkerGlobalScope
-PASS DedicatedWorkerGlobalScope interface: attribute onmessage
-PASS Unscopable handled correctly for onmessage property on DedicatedWorkerGlobalScope
-PASS DedicatedWorkerGlobalScope interface: attribute onmessageerror
-PASS Unscopable handled correctly for onmessageerror property on DedicatedWorkerGlobalScope
-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
-FAIL DedicatedWorkerGlobalScope interface: self must inherit property "name" with the proper type assert_own_property: expected property "name" missing
-PASS DedicatedWorkerGlobalScope interface: self must inherit property "postMessage(any, [object Object])" with the proper type
-PASS DedicatedWorkerGlobalScope interface: calling postMessage(any, [object Object]) 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 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
-FAIL WorkerGlobalScope interface: self must inherit property "onlanguagechange" with the proper type assert_inherits: property "onlanguagechange" not found in prototype chain
-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 "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, long, any)" with the proper type
-PASS WorkerGlobalScope interface: calling setTimeout(TimerHandler, long, any) on self with too few arguments must throw TypeError
-PASS WorkerGlobalScope interface: self must inherit property "clearTimeout(long)" with the proper type
-PASS WorkerGlobalScope interface: calling clearTimeout(long) on self with too few arguments must throw TypeError
-PASS WorkerGlobalScope interface: self must inherit property "setInterval(TimerHandler, long, any)" with the proper type
-PASS WorkerGlobalScope interface: calling setInterval(TimerHandler, long, any) on self with too few arguments must throw TypeError
-PASS WorkerGlobalScope interface: self must inherit property "clearInterval(long)" with the proper type
-PASS WorkerGlobalScope interface: calling clearInterval(long) on self with too few arguments must throw TypeError
-PASS WorkerGlobalScope interface: self must inherit property "createImageBitmap(ImageBitmapSource, ImageBitmapOptions)" with the proper type
-PASS WorkerGlobalScope interface: calling createImageBitmap(ImageBitmapSource, ImageBitmapOptions) on self with too few arguments must throw TypeError
-PASS WorkerGlobalScope interface: self must inherit property "createImageBitmap(ImageBitmapSource, long, long, long, long, ImageBitmapOptions)" with the proper type
-PASS WorkerGlobalScope interface: calling createImageBitmap(ImageBitmapSource, long, long, long, long, ImageBitmapOptions) on self with too few arguments must throw TypeError
-PASS EventTarget interface: self must inherit property "addEventListener(DOMString, EventListener, [object Object],[object Object])" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener, [object Object],[object Object]) on self with too few arguments must throw TypeError
-PASS EventTarget interface: self must inherit property "removeEventListener(DOMString, EventListener, [object Object],[object Object])" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener, [object Object],[object Object]) on self with too few arguments must throw TypeError
-PASS EventTarget interface: self must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on self with too few arguments must throw TypeError
-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 Unscopable handled correctly for appCodeName property on WorkerNavigator
-PASS WorkerNavigator interface: attribute appName
-PASS Unscopable handled correctly for appName property on WorkerNavigator
-PASS WorkerNavigator interface: attribute appVersion
-PASS Unscopable handled correctly for appVersion property on WorkerNavigator
-PASS WorkerNavigator interface: attribute platform
-PASS Unscopable handled correctly for platform property on WorkerNavigator
-PASS WorkerNavigator interface: attribute product
-PASS Unscopable handled correctly for product property on WorkerNavigator
-PASS WorkerNavigator interface: member productSub
-PASS WorkerNavigator interface: attribute userAgent
-PASS Unscopable handled correctly for userAgent property on WorkerNavigator
-PASS WorkerNavigator interface: member vendor
-PASS WorkerNavigator interface: member vendorSub
-FAIL WorkerNavigator interface: attribute language assert_true: The prototype object must have a property "language" expected true got false
-PASS Unscopable handled correctly for language property on WorkerNavigator
-FAIL WorkerNavigator interface: attribute languages assert_true: The prototype object must have a property "languages" expected true got false
-PASS Unscopable handled correctly for languages property on WorkerNavigator
-PASS WorkerNavigator interface: attribute onLine
-PASS Unscopable handled correctly for onLine property on WorkerNavigator
-PASS WorkerNavigator interface: attribute hardwareConcurrency
-PASS Unscopable handled correctly for hardwareConcurrency property on WorkerNavigator
-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"
-FAIL WorkerNavigator interface: self.navigator must inherit property "language" with the proper type assert_inherits: property "language" not found in prototype chain
-FAIL WorkerNavigator interface: self.navigator must inherit property "languages" with the proper type assert_inherits: property "languages" not found in prototype chain
-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 Unscopable handled correctly for href property on WorkerLocation
-PASS WorkerLocation interface: stringifier
-PASS WorkerLocation interface: attribute origin
-PASS Unscopable handled correctly for origin property on WorkerLocation
-PASS WorkerLocation interface: attribute protocol
-PASS Unscopable handled correctly for protocol property on WorkerLocation
-PASS WorkerLocation interface: attribute host
-PASS Unscopable handled correctly for host property on WorkerLocation
-PASS WorkerLocation interface: attribute hostname
-PASS Unscopable handled correctly for hostname property on WorkerLocation
-PASS WorkerLocation interface: attribute port
-PASS Unscopable handled correctly for port property on WorkerLocation
-PASS WorkerLocation interface: attribute pathname
-PASS Unscopable handled correctly for pathname property on WorkerLocation
-PASS WorkerLocation interface: attribute search
-PASS Unscopable handled correctly for search property on WorkerLocation
-PASS WorkerLocation interface: attribute hash
-PASS Unscopable handled correctly for hash property on WorkerLocation
-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
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/virtual/feature-policy-permissions/external/wpt/mediacapture-streams/MediaDevices-IDL-all-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/virtual/feature-policy-permissions/external/wpt/mediacapture-streams/MediaDevices-IDL-all-expected.txt
deleted file mode 100644
index 66f2aaf..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/virtual/feature-policy-permissions/external/wpt/mediacapture-streams/MediaDevices-IDL-all-expected.txt
+++ /dev/null
@@ -1,139 +0,0 @@
-This is a testharness.js-based test.
-Found 135 tests; 118 PASS, 17 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS Test driver
-PASS Navigator interface: attribute mediaDevices
-PASS Unscopable handled correctly for mediaDevices property on Navigator
-PASS Navigator interface: operation getUserMedia(MediaStreamConstraints, NavigatorUserMediaSuccessCallback, NavigatorUserMediaErrorCallback)
-PASS Unscopable handled correctly for getUserMedia(MediaStreamConstraints, NavigatorUserMediaSuccessCallback, NavigatorUserMediaErrorCallback) on Navigator
-PASS Navigator interface: navigator must inherit property "mediaDevices" with the proper type
-PASS Navigator interface: navigator must inherit property "getUserMedia(MediaStreamConstraints, NavigatorUserMediaSuccessCallback, NavigatorUserMediaErrorCallback)" with the proper type
-PASS Navigator interface: calling getUserMedia(MediaStreamConstraints, NavigatorUserMediaSuccessCallback, NavigatorUserMediaErrorCallback) on navigator with too few arguments must throw TypeError
-PASS MediaStream interface: existence and properties of interface object
-PASS MediaStream interface object length
-PASS MediaStream interface object name
-PASS MediaStream interface: existence and properties of interface prototype object
-PASS MediaStream interface: existence and properties of interface prototype object's "constructor" property
-PASS MediaStream interface: existence and properties of interface prototype object's @@unscopables property
-PASS MediaStream interface: attribute id
-PASS Unscopable handled correctly for id property on MediaStream
-PASS MediaStream interface: operation getAudioTracks()
-PASS Unscopable handled correctly for getAudioTracks() on MediaStream
-PASS MediaStream interface: operation getVideoTracks()
-PASS Unscopable handled correctly for getVideoTracks() on MediaStream
-PASS MediaStream interface: operation getTracks()
-PASS Unscopable handled correctly for getTracks() on MediaStream
-PASS MediaStream interface: operation getTrackById(DOMString)
-PASS Unscopable handled correctly for getTrackById(DOMString) on MediaStream
-PASS MediaStream interface: operation addTrack(MediaStreamTrack)
-PASS Unscopable handled correctly for addTrack(MediaStreamTrack) on MediaStream
-PASS MediaStream interface: operation removeTrack(MediaStreamTrack)
-PASS Unscopable handled correctly for removeTrack(MediaStreamTrack) on MediaStream
-PASS MediaStream interface: operation clone()
-PASS Unscopable handled correctly for clone() on MediaStream
-PASS MediaStream interface: attribute active
-PASS Unscopable handled correctly for active property on MediaStream
-PASS MediaStream interface: attribute onaddtrack
-PASS Unscopable handled correctly for onaddtrack property on MediaStream
-PASS MediaStream interface: attribute onremovetrack
-PASS Unscopable handled correctly for onremovetrack property on MediaStream
-PASS MediaStreamTrack interface: existence and properties of interface object
-PASS MediaStreamTrack interface object length
-PASS MediaStreamTrack interface object name
-PASS MediaStreamTrack interface: existence and properties of interface prototype object
-PASS MediaStreamTrack interface: existence and properties of interface prototype object's "constructor" property
-PASS MediaStreamTrack interface: existence and properties of interface prototype object's @@unscopables property
-PASS MediaStreamTrack interface: attribute kind
-PASS Unscopable handled correctly for kind property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute id
-PASS Unscopable handled correctly for id property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute label
-PASS Unscopable handled correctly for label property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute enabled
-PASS Unscopable handled correctly for enabled property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute muted
-PASS Unscopable handled correctly for muted property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute onmute
-PASS Unscopable handled correctly for onmute property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute onunmute
-PASS Unscopable handled correctly for onunmute property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute readyState
-PASS Unscopable handled correctly for readyState property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute onended
-PASS Unscopable handled correctly for onended property on MediaStreamTrack
-PASS MediaStreamTrack interface: operation clone()
-PASS Unscopable handled correctly for clone() on MediaStreamTrack
-PASS MediaStreamTrack interface: operation stop()
-PASS Unscopable handled correctly for stop() on MediaStreamTrack
-PASS MediaStreamTrack interface: operation getCapabilities()
-PASS Unscopable handled correctly for getCapabilities() on MediaStreamTrack
-PASS MediaStreamTrack interface: operation getConstraints()
-PASS Unscopable handled correctly for getConstraints() on MediaStreamTrack
-PASS MediaStreamTrack interface: operation getSettings()
-PASS Unscopable handled correctly for getSettings() on MediaStreamTrack
-PASS MediaStreamTrack interface: operation applyConstraints(MediaTrackConstraints)
-PASS Unscopable handled correctly for applyConstraints(MediaTrackConstraints) on MediaStreamTrack
-FAIL MediaStreamTrack interface: attribute onoverconstrained assert_true: The prototype object must have a property "onoverconstrained" expected true got false
-PASS Unscopable handled correctly for onoverconstrained property on MediaStreamTrack
-FAIL MediaStreamTrackEvent interface: existence and properties of interface object Cannot read property 'has_extended_attribute' of undefined
-PASS MediaStreamTrackEvent interface object length
-PASS MediaStreamTrackEvent interface object name
-FAIL MediaStreamTrackEvent interface: existence and properties of interface prototype object Cannot read property 'has_extended_attribute' of undefined
-PASS MediaStreamTrackEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS MediaStreamTrackEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS MediaStreamTrackEvent interface: attribute track
-PASS Unscopable handled correctly for track property on MediaStreamTrackEvent
-FAIL OverconstrainedErrorEvent interface: existence and properties of interface object assert_own_property: self does not have own property "OverconstrainedErrorEvent" expected property "OverconstrainedErrorEvent" missing
-FAIL OverconstrainedErrorEvent interface object length assert_own_property: self does not have own property "OverconstrainedErrorEvent" expected property "OverconstrainedErrorEvent" missing
-FAIL OverconstrainedErrorEvent interface object name assert_own_property: self does not have own property "OverconstrainedErrorEvent" expected property "OverconstrainedErrorEvent" missing
-FAIL OverconstrainedErrorEvent interface: existence and properties of interface prototype object assert_own_property: self does not have own property "OverconstrainedErrorEvent" expected property "OverconstrainedErrorEvent" missing
-FAIL OverconstrainedErrorEvent interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "OverconstrainedErrorEvent" expected property "OverconstrainedErrorEvent" missing
-FAIL OverconstrainedErrorEvent interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "OverconstrainedErrorEvent" expected property "OverconstrainedErrorEvent" missing
-FAIL OverconstrainedErrorEvent interface: attribute error assert_own_property: self does not have own property "OverconstrainedErrorEvent" expected property "OverconstrainedErrorEvent" missing
-PASS Unscopable handled correctly for error property on OverconstrainedErrorEvent
-PASS MediaDevices interface: existence and properties of interface object
-PASS MediaDevices interface object length
-PASS MediaDevices interface object name
-PASS MediaDevices interface: existence and properties of interface prototype object
-PASS MediaDevices interface: existence and properties of interface prototype object's "constructor" property
-PASS MediaDevices interface: existence and properties of interface prototype object's @@unscopables property
-PASS MediaDevices interface: attribute ondevicechange
-PASS Unscopable handled correctly for ondevicechange property on MediaDevices
-PASS MediaDevices interface: operation enumerateDevices()
-PASS Unscopable handled correctly for enumerateDevices() on MediaDevices
-PASS MediaDevices interface: operation getSupportedConstraints()
-PASS Unscopable handled correctly for getSupportedConstraints() on MediaDevices
-PASS MediaDevices interface: operation getUserMedia(MediaStreamConstraints)
-PASS Unscopable handled correctly for getUserMedia(MediaStreamConstraints) on MediaDevices
-PASS MediaDevices must be primary interface of navigator.mediaDevices
-PASS Stringification of navigator.mediaDevices
-PASS MediaDevices interface: navigator.mediaDevices must inherit property "ondevicechange" with the proper type
-PASS MediaDevices interface: navigator.mediaDevices must inherit property "enumerateDevices()" with the proper type
-PASS MediaDevices interface: navigator.mediaDevices must inherit property "getSupportedConstraints()" with the proper type
-PASS MediaDevices interface: navigator.mediaDevices must inherit property "getUserMedia(MediaStreamConstraints)" with the proper type
-PASS MediaDevices interface: calling getUserMedia(MediaStreamConstraints) on navigator.mediaDevices with too few arguments must throw TypeError
-PASS MediaDeviceInfo interface: existence and properties of interface object
-PASS MediaDeviceInfo interface object length
-PASS MediaDeviceInfo interface object name
-PASS MediaDeviceInfo interface: existence and properties of interface prototype object
-PASS MediaDeviceInfo interface: existence and properties of interface prototype object's "constructor" property
-PASS MediaDeviceInfo interface: existence and properties of interface prototype object's @@unscopables property
-PASS MediaDeviceInfo interface: attribute deviceId
-PASS Unscopable handled correctly for deviceId property on MediaDeviceInfo
-PASS MediaDeviceInfo interface: attribute kind
-PASS Unscopable handled correctly for kind property on MediaDeviceInfo
-PASS MediaDeviceInfo interface: attribute label
-PASS Unscopable handled correctly for label property on MediaDeviceInfo
-PASS MediaDeviceInfo interface: attribute groupId
-PASS Unscopable handled correctly for groupId property on MediaDeviceInfo
-PASS MediaDeviceInfo interface: operation toJSON()
-PASS Unscopable handled correctly for toJSON() on MediaDeviceInfo
-FAIL InputDeviceInfo interface: existence and properties of interface object assert_own_property: self does not have own property "InputDeviceInfo" expected property "InputDeviceInfo" missing
-FAIL InputDeviceInfo interface object length assert_own_property: self does not have own property "InputDeviceInfo" expected property "InputDeviceInfo" missing
-FAIL InputDeviceInfo interface object name assert_own_property: self does not have own property "InputDeviceInfo" expected property "InputDeviceInfo" missing
-FAIL InputDeviceInfo interface: existence and properties of interface prototype object assert_own_property: self does not have own property "InputDeviceInfo" expected property "InputDeviceInfo" missing
-FAIL InputDeviceInfo interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "InputDeviceInfo" expected property "InputDeviceInfo" missing
-FAIL InputDeviceInfo interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "InputDeviceInfo" expected property "InputDeviceInfo" missing
-FAIL InputDeviceInfo interface: operation getCapabilities() assert_own_property: self does not have own property "InputDeviceInfo" expected property "InputDeviceInfo" missing
-PASS Unscopable handled correctly for getCapabilities() on InputDeviceInfo
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/virtual/feature-policy-permissions/external/wpt/mediacapture-streams/MediaDevices-IDL-enumerateDevices-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/virtual/feature-policy-permissions/external/wpt/mediacapture-streams/MediaDevices-IDL-enumerateDevices-expected.txt
deleted file mode 100644
index a50274d..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/virtual/feature-policy-permissions/external/wpt/mediacapture-streams/MediaDevices-IDL-enumerateDevices-expected.txt
+++ /dev/null
@@ -1,137 +0,0 @@
-This is a testharness.js-based test.
-Found 133 tests; 118 PASS, 15 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS Test MediaDevices.enumerateDevices call and result. Types only.
-PASS Navigator interface: attribute mediaDevices
-PASS Unscopable handled correctly for mediaDevices property on Navigator
-PASS Navigator interface: operation getUserMedia(MediaStreamConstraints, NavigatorUserMediaSuccessCallback, NavigatorUserMediaErrorCallback)
-PASS Unscopable handled correctly for getUserMedia(MediaStreamConstraints, NavigatorUserMediaSuccessCallback, NavigatorUserMediaErrorCallback) on Navigator
-PASS MediaStream interface: existence and properties of interface object
-PASS MediaStream interface object length
-PASS MediaStream interface object name
-PASS MediaStream interface: existence and properties of interface prototype object
-PASS MediaStream interface: existence and properties of interface prototype object's "constructor" property
-PASS MediaStream interface: existence and properties of interface prototype object's @@unscopables property
-PASS MediaStream interface: attribute id
-PASS Unscopable handled correctly for id property on MediaStream
-PASS MediaStream interface: operation getAudioTracks()
-PASS Unscopable handled correctly for getAudioTracks() on MediaStream
-PASS MediaStream interface: operation getVideoTracks()
-PASS Unscopable handled correctly for getVideoTracks() on MediaStream
-PASS MediaStream interface: operation getTracks()
-PASS Unscopable handled correctly for getTracks() on MediaStream
-PASS MediaStream interface: operation getTrackById(DOMString)
-PASS Unscopable handled correctly for getTrackById(DOMString) on MediaStream
-PASS MediaStream interface: operation addTrack(MediaStreamTrack)
-PASS Unscopable handled correctly for addTrack(MediaStreamTrack) on MediaStream
-PASS MediaStream interface: operation removeTrack(MediaStreamTrack)
-PASS Unscopable handled correctly for removeTrack(MediaStreamTrack) on MediaStream
-PASS MediaStream interface: operation clone()
-PASS Unscopable handled correctly for clone() on MediaStream
-PASS MediaStream interface: attribute active
-PASS Unscopable handled correctly for active property on MediaStream
-PASS MediaStream interface: attribute onaddtrack
-PASS Unscopable handled correctly for onaddtrack property on MediaStream
-PASS MediaStream interface: attribute onremovetrack
-PASS Unscopable handled correctly for onremovetrack property on MediaStream
-PASS MediaStreamTrack interface: existence and properties of interface object
-PASS MediaStreamTrack interface object length
-PASS MediaStreamTrack interface object name
-PASS MediaStreamTrack interface: existence and properties of interface prototype object
-PASS MediaStreamTrack interface: existence and properties of interface prototype object's "constructor" property
-PASS MediaStreamTrack interface: existence and properties of interface prototype object's @@unscopables property
-PASS MediaStreamTrack interface: attribute kind
-PASS Unscopable handled correctly for kind property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute id
-PASS Unscopable handled correctly for id property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute label
-PASS Unscopable handled correctly for label property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute enabled
-PASS Unscopable handled correctly for enabled property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute muted
-PASS Unscopable handled correctly for muted property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute onmute
-PASS Unscopable handled correctly for onmute property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute onunmute
-PASS Unscopable handled correctly for onunmute property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute readyState
-PASS Unscopable handled correctly for readyState property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute onended
-PASS Unscopable handled correctly for onended property on MediaStreamTrack
-PASS MediaStreamTrack interface: operation clone()
-PASS Unscopable handled correctly for clone() on MediaStreamTrack
-PASS MediaStreamTrack interface: operation stop()
-PASS Unscopable handled correctly for stop() on MediaStreamTrack
-PASS MediaStreamTrack interface: operation getCapabilities()
-PASS Unscopable handled correctly for getCapabilities() on MediaStreamTrack
-PASS MediaStreamTrack interface: operation getConstraints()
-PASS Unscopable handled correctly for getConstraints() on MediaStreamTrack
-PASS MediaStreamTrack interface: operation getSettings()
-PASS Unscopable handled correctly for getSettings() on MediaStreamTrack
-PASS MediaStreamTrack interface: operation applyConstraints(MediaTrackConstraints)
-PASS Unscopable handled correctly for applyConstraints(MediaTrackConstraints) on MediaStreamTrack
-FAIL MediaStreamTrack interface: attribute onoverconstrained assert_true: The prototype object must have a property "onoverconstrained" expected true got false
-PASS Unscopable handled correctly for onoverconstrained property on MediaStreamTrack
-PASS MediaStreamTrackEvent interface: existence and properties of interface object
-PASS MediaStreamTrackEvent interface object length
-PASS MediaStreamTrackEvent interface object name
-PASS MediaStreamTrackEvent interface: existence and properties of interface prototype object
-PASS MediaStreamTrackEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS MediaStreamTrackEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS MediaStreamTrackEvent interface: attribute track
-PASS Unscopable handled correctly for track property on MediaStreamTrackEvent
-FAIL OverconstrainedErrorEvent interface: existence and properties of interface object assert_own_property: self does not have own property "OverconstrainedErrorEvent" expected property "OverconstrainedErrorEvent" missing
-FAIL OverconstrainedErrorEvent interface object length assert_own_property: self does not have own property "OverconstrainedErrorEvent" expected property "OverconstrainedErrorEvent" missing
-FAIL OverconstrainedErrorEvent interface object name assert_own_property: self does not have own property "OverconstrainedErrorEvent" expected property "OverconstrainedErrorEvent" missing
-FAIL OverconstrainedErrorEvent interface: existence and properties of interface prototype object assert_own_property: self does not have own property "OverconstrainedErrorEvent" expected property "OverconstrainedErrorEvent" missing
-FAIL OverconstrainedErrorEvent interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "OverconstrainedErrorEvent" expected property "OverconstrainedErrorEvent" missing
-FAIL OverconstrainedErrorEvent interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "OverconstrainedErrorEvent" expected property "OverconstrainedErrorEvent" missing
-FAIL OverconstrainedErrorEvent interface: attribute error assert_own_property: self does not have own property "OverconstrainedErrorEvent" expected property "OverconstrainedErrorEvent" missing
-PASS Unscopable handled correctly for error property on OverconstrainedErrorEvent
-PASS MediaDevices interface: existence and properties of interface object
-PASS MediaDevices interface object length
-PASS MediaDevices interface object name
-PASS MediaDevices interface: existence and properties of interface prototype object
-PASS MediaDevices interface: existence and properties of interface prototype object's "constructor" property
-PASS MediaDevices interface: existence and properties of interface prototype object's @@unscopables property
-PASS MediaDevices interface: attribute ondevicechange
-PASS Unscopable handled correctly for ondevicechange property on MediaDevices
-PASS MediaDevices interface: operation enumerateDevices()
-PASS Unscopable handled correctly for enumerateDevices() on MediaDevices
-PASS MediaDevices interface: operation getSupportedConstraints()
-PASS Unscopable handled correctly for getSupportedConstraints() on MediaDevices
-PASS MediaDevices interface: operation getUserMedia(MediaStreamConstraints)
-PASS Unscopable handled correctly for getUserMedia(MediaStreamConstraints) on MediaDevices
-PASS MediaDeviceInfo interface: existence and properties of interface object
-PASS MediaDeviceInfo interface object length
-PASS MediaDeviceInfo interface object name
-PASS MediaDeviceInfo interface: existence and properties of interface prototype object
-PASS MediaDeviceInfo interface: existence and properties of interface prototype object's "constructor" property
-PASS MediaDeviceInfo interface: existence and properties of interface prototype object's @@unscopables property
-PASS MediaDeviceInfo interface: attribute deviceId
-PASS Unscopable handled correctly for deviceId property on MediaDeviceInfo
-PASS MediaDeviceInfo interface: attribute kind
-PASS Unscopable handled correctly for kind property on MediaDeviceInfo
-PASS MediaDeviceInfo interface: attribute label
-PASS Unscopable handled correctly for label property on MediaDeviceInfo
-PASS MediaDeviceInfo interface: attribute groupId
-PASS Unscopable handled correctly for groupId property on MediaDeviceInfo
-PASS MediaDeviceInfo interface: operation toJSON()
-PASS Unscopable handled correctly for toJSON() on MediaDeviceInfo
-PASS MediaDeviceInfo must be primary interface of _mediaInfo
-PASS Stringification of _mediaInfo
-PASS MediaDeviceInfo interface: _mediaInfo must inherit property "deviceId" with the proper type
-PASS MediaDeviceInfo interface: _mediaInfo must inherit property "kind" with the proper type
-PASS MediaDeviceInfo interface: _mediaInfo must inherit property "label" with the proper type
-PASS MediaDeviceInfo interface: _mediaInfo must inherit property "groupId" with the proper type
-PASS MediaDeviceInfo interface: _mediaInfo must inherit property "toJSON()" with the proper type
-PASS Test default toJSON operation of MediaDeviceInfo
-FAIL InputDeviceInfo interface: existence and properties of interface object assert_own_property: self does not have own property "InputDeviceInfo" expected property "InputDeviceInfo" missing
-FAIL InputDeviceInfo interface object length assert_own_property: self does not have own property "InputDeviceInfo" expected property "InputDeviceInfo" missing
-FAIL InputDeviceInfo interface object name assert_own_property: self does not have own property "InputDeviceInfo" expected property "InputDeviceInfo" missing
-FAIL InputDeviceInfo interface: existence and properties of interface prototype object assert_own_property: self does not have own property "InputDeviceInfo" expected property "InputDeviceInfo" missing
-FAIL InputDeviceInfo interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "InputDeviceInfo" expected property "InputDeviceInfo" missing
-FAIL InputDeviceInfo interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "InputDeviceInfo" expected property "InputDeviceInfo" missing
-FAIL InputDeviceInfo interface: operation getCapabilities() assert_own_property: self does not have own property "InputDeviceInfo" expected property "InputDeviceInfo" missing
-PASS Unscopable handled correctly for getCapabilities() on InputDeviceInfo
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/virtual/feature-policy-permissions/external/wpt/mediacapture-streams/MediaStreamTrack-idl.https-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/virtual/feature-policy-permissions/external/wpt/mediacapture-streams/MediaStreamTrack-idl.https-expected.txt
deleted file mode 100644
index 124aa42..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/virtual/feature-policy-permissions/external/wpt/mediacapture-streams/MediaStreamTrack-idl.https-expected.txt
+++ /dev/null
@@ -1,61 +0,0 @@
-This is a testharness.js-based test.
-PASS Test driver
-PASS MediaStreamTrack interface: existence and properties of interface object
-PASS MediaStreamTrack interface object length
-PASS MediaStreamTrack interface object name
-PASS MediaStreamTrack interface: existence and properties of interface prototype object
-PASS MediaStreamTrack interface: existence and properties of interface prototype object's "constructor" property
-PASS MediaStreamTrack interface: existence and properties of interface prototype object's @@unscopables property
-PASS MediaStreamTrack interface: attribute kind
-PASS Unscopable handled correctly for kind property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute id
-PASS Unscopable handled correctly for id property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute label
-PASS Unscopable handled correctly for label property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute enabled
-PASS Unscopable handled correctly for enabled property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute muted
-PASS Unscopable handled correctly for muted property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute onmute
-PASS Unscopable handled correctly for onmute property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute onunmute
-PASS Unscopable handled correctly for onunmute property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute readyState
-PASS Unscopable handled correctly for readyState property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute onended
-PASS Unscopable handled correctly for onended property on MediaStreamTrack
-FAIL MediaStreamTrack interface: attribute onoverconstrained assert_true: The prototype object must have a property "onoverconstrained" expected true got false
-PASS Unscopable handled correctly for onoverconstrained property on MediaStreamTrack
-PASS MediaStreamTrack interface: operation clone()
-PASS Unscopable handled correctly for clone() on MediaStreamTrack
-PASS MediaStreamTrack interface: operation stop()
-PASS Unscopable handled correctly for stop() on MediaStreamTrack
-PASS MediaStreamTrack interface: operation getCapabilities()
-PASS Unscopable handled correctly for getCapabilities() on MediaStreamTrack
-PASS MediaStreamTrack interface: operation getConstraints()
-PASS Unscopable handled correctly for getConstraints() on MediaStreamTrack
-PASS MediaStreamTrack interface: operation getSettings()
-PASS Unscopable handled correctly for getSettings() on MediaStreamTrack
-PASS MediaStreamTrack interface: operation applyConstraints(MediaTrackConstraints)
-PASS Unscopable handled correctly for applyConstraints(MediaTrackConstraints) on MediaStreamTrack
-PASS MediaStreamTrack must be primary interface of track
-PASS Stringification of track
-PASS MediaStreamTrack interface: track must inherit property "kind" with the proper type
-PASS MediaStreamTrack interface: track must inherit property "id" with the proper type
-PASS MediaStreamTrack interface: track must inherit property "label" with the proper type
-PASS MediaStreamTrack interface: track must inherit property "enabled" with the proper type
-PASS MediaStreamTrack interface: track must inherit property "muted" with the proper type
-PASS MediaStreamTrack interface: track must inherit property "onmute" with the proper type
-PASS MediaStreamTrack interface: track must inherit property "onunmute" with the proper type
-PASS MediaStreamTrack interface: track must inherit property "readyState" with the proper type
-PASS MediaStreamTrack interface: track must inherit property "onended" with the proper type
-FAIL MediaStreamTrack interface: track must inherit property "onoverconstrained" with the proper type assert_inherits: property "onoverconstrained" not found in prototype chain
-PASS MediaStreamTrack interface: track must inherit property "clone()" with the proper type
-PASS MediaStreamTrack interface: track must inherit property "stop()" with the proper type
-PASS MediaStreamTrack interface: track must inherit property "getCapabilities()" with the proper type
-PASS MediaStreamTrack interface: track must inherit property "getConstraints()" with the proper type
-PASS MediaStreamTrack interface: track must inherit property "getSettings()" with the proper type
-PASS MediaStreamTrack interface: track must inherit property "applyConstraints(MediaTrackConstraints)" with the proper type
-PASS MediaStreamTrack interface: calling applyConstraints(MediaTrackConstraints) on track with too few arguments must throw TypeError
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/virtual/navigation-mojo-response/external/wpt/service-workers/service-worker/interfaces-sw.https-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/virtual/navigation-mojo-response/external/wpt/service-workers/service-worker/interfaces-sw.https-expected.txt
deleted file mode 100644
index 379e5662..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/virtual/navigation-mojo-response/external/wpt/service-workers/service-worker/interfaces-sw.https-expected.txt
+++ /dev/null
@@ -1,250 +0,0 @@
-This is a testharness.js-based test.
-PASS Interfaces and attributes in ServiceWorkerGlobalScope
-PASS test setup (cache creation)
-FAIL Event constructors assert_equals: FetchEvent.isReload should not exist expected (undefined) undefined but got (boolean) false
-PASS xhr is not exposed
-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 Unscopable handled correctly for clients property on ServiceWorkerGlobalScope
-PASS ServiceWorkerGlobalScope interface: attribute registration
-PASS Unscopable handled correctly for registration property on ServiceWorkerGlobalScope
-PASS ServiceWorkerGlobalScope interface: operation skipWaiting()
-PASS Unscopable handled correctly for skipWaiting() on ServiceWorkerGlobalScope
-PASS ServiceWorkerGlobalScope interface: attribute oninstall
-PASS Unscopable handled correctly for oninstall property on ServiceWorkerGlobalScope
-PASS ServiceWorkerGlobalScope interface: attribute onactivate
-PASS Unscopable handled correctly for onactivate property on ServiceWorkerGlobalScope
-PASS ServiceWorkerGlobalScope interface: attribute onfetch
-PASS Unscopable handled correctly for onfetch property on ServiceWorkerGlobalScope
-PASS ServiceWorkerGlobalScope interface: attribute onmessage
-PASS Unscopable handled correctly for onmessage property on ServiceWorkerGlobalScope
-FAIL ServiceWorkerGlobalScope interface: attribute onmessageerror assert_own_property: The global object must have a property "onmessageerror" expected property "onmessageerror" missing
-PASS Unscopable handled correctly for onmessageerror property on ServiceWorkerGlobalScope
-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 "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
-FAIL ServiceWorkerGlobalScope interface: self must inherit property "onmessageerror" with the proper type assert_own_property: expected property "onmessageerror" missing
-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 Unscopable handled correctly for url property on Client
-PASS Client interface: attribute id
-PASS Unscopable handled correctly for id property on Client
-PASS Client interface: attribute type
-PASS Unscopable handled correctly for type property on Client
-FAIL Client interface: attribute reserved assert_true: The prototype object must have a property "reserved" expected true got false
-PASS Unscopable handled correctly for reserved property on Client
-PASS Client interface: operation postMessage(any, [object Object])
-PASS Unscopable handled correctly for postMessage(any, [object Object]) on Client
-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 Unscopable handled correctly for visibilityState property on WindowClient
-PASS WindowClient interface: attribute focused
-PASS Unscopable handled correctly for focused property on WindowClient
-FAIL WindowClient interface: attribute ancestorOrigins assert_true: The prototype object must have a property "ancestorOrigins" expected true got false
-PASS Unscopable handled correctly for ancestorOrigins property on WindowClient
-PASS WindowClient interface: operation focus()
-PASS Unscopable handled correctly for focus() on WindowClient
-PASS WindowClient interface: operation navigate(USVString)
-PASS Unscopable handled correctly for navigate(USVString) on WindowClient
-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 Unscopable handled correctly for get(DOMString) on Clients
-PASS Clients interface: operation matchAll(ClientQueryOptions)
-PASS Unscopable handled correctly for matchAll(ClientQueryOptions) on Clients
-PASS Clients interface: operation openWindow(USVString)
-PASS Unscopable handled correctly for openWindow(USVString) on Clients
-PASS Clients interface: operation claim()
-PASS Unscopable handled correctly for claim() on Clients
-PASS Clients must be primary interface of self.clients
-PASS Stringification of self.clients
-PASS Clients interface: self.clients must inherit property "get(DOMString)" with the proper type
-PASS Clients interface: calling get(DOMString) on self.clients with too few arguments must throw TypeError
-PASS Clients interface: self.clients must inherit property "matchAll(ClientQueryOptions)" with the proper type
-PASS Clients interface: calling matchAll(ClientQueryOptions) on self.clients with too few arguments must throw TypeError
-PASS Clients interface: self.clients must inherit property "openWindow(USVString)" with the proper type
-PASS Clients interface: calling openWindow(USVString) on self.clients with too few arguments must throw TypeError
-PASS Clients interface: self.clients must inherit property "claim()" with the proper type
-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
-PASS Unscopable handled correctly for scriptURL property on ServiceWorker
-FAIL ServiceWorker interface: attribute state assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-PASS Unscopable handled correctly for state property on ServiceWorker
-FAIL ServiceWorker interface: operation postMessage(any, [object Object]) assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-PASS Unscopable handled correctly for postMessage(any, [object Object]) on ServiceWorker
-FAIL ServiceWorker interface: attribute onstatechange assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-PASS Unscopable handled correctly for onstatechange property on ServiceWorker
-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 Unscopable handled correctly for installing property on ServiceWorkerRegistration
-PASS ServiceWorkerRegistration interface: attribute waiting
-PASS Unscopable handled correctly for waiting property on ServiceWorkerRegistration
-PASS ServiceWorkerRegistration interface: attribute active
-PASS Unscopable handled correctly for active property on ServiceWorkerRegistration
-PASS ServiceWorkerRegistration interface: attribute navigationPreload
-PASS Unscopable handled correctly for navigationPreload property on ServiceWorkerRegistration
-PASS ServiceWorkerRegistration interface: attribute scope
-PASS Unscopable handled correctly for scope property on ServiceWorkerRegistration
-PASS ServiceWorkerRegistration interface: attribute updateViaCache
-PASS Unscopable handled correctly for updateViaCache property on ServiceWorkerRegistration
-PASS ServiceWorkerRegistration interface: operation update()
-PASS Unscopable handled correctly for update() on ServiceWorkerRegistration
-PASS ServiceWorkerRegistration interface: operation unregister()
-PASS Unscopable handled correctly for unregister() on ServiceWorkerRegistration
-PASS ServiceWorkerRegistration interface: attribute onupdatefound
-PASS Unscopable handled correctly for onupdatefound property on ServiceWorkerRegistration
-PASS ServiceWorkerRegistration must be primary interface of self.registration
-PASS Stringification of self.registration
-PASS ServiceWorkerRegistration interface: self.registration must inherit property "installing" with the proper type
-PASS ServiceWorkerRegistration interface: self.registration must inherit property "waiting" with the proper type
-PASS ServiceWorkerRegistration interface: self.registration must inherit property "active" with the proper type
-PASS ServiceWorkerRegistration interface: self.registration must inherit property "navigationPreload" with the proper type
-PASS ServiceWorkerRegistration interface: self.registration must inherit property "scope" with the proper type
-PASS ServiceWorkerRegistration interface: self.registration must inherit property "updateViaCache" with the proper type
-PASS ServiceWorkerRegistration interface: self.registration must inherit property "update()" with the proper type
-PASS ServiceWorkerRegistration interface: self.registration must inherit property "unregister()" with the proper type
-PASS ServiceWorkerRegistration interface: self.registration must inherit property "onupdatefound" with the proper type
-PASS EventTarget interface: self.registration must inherit property "addEventListener(DOMString, EventListener, [object Object],[object Object])" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener, [object Object],[object Object]) on self.registration with too few arguments must throw TypeError
-PASS EventTarget interface: self.registration must inherit property "removeEventListener(DOMString, EventListener, [object Object],[object Object])" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener, [object Object],[object Object]) on self.registration with too few arguments must throw TypeError
-PASS EventTarget interface: self.registration must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on self.registration 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, [object Object],[object Object])
-PASS Unscopable handled correctly for addEventListener(DOMString, EventListener, [object Object],[object Object]) on EventTarget
-PASS EventTarget interface: operation removeEventListener(DOMString, EventListener, [object Object],[object Object])
-PASS Unscopable handled correctly for removeEventListener(DOMString, EventListener, [object Object],[object Object]) on EventTarget
-PASS EventTarget interface: operation dispatchEvent(Event)
-PASS Unscopable handled correctly for dispatchEvent(Event) on EventTarget
-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 Unscopable handled correctly for enable() on NavigationPreloadManager
-PASS NavigationPreloadManager interface: operation disable()
-PASS Unscopable handled correctly for disable() on NavigationPreloadManager
-PASS NavigationPreloadManager interface: operation setHeaderValue(ByteString)
-PASS Unscopable handled correctly for setHeaderValue(ByteString) on NavigationPreloadManager
-PASS NavigationPreloadManager interface: operation getState()
-PASS Unscopable handled correctly for getState() on NavigationPreloadManager
-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, CacheQueryOptions)
-PASS Unscopable handled correctly for match(RequestInfo, CacheQueryOptions) on Cache
-PASS Cache interface: operation matchAll(RequestInfo, CacheQueryOptions)
-PASS Unscopable handled correctly for matchAll(RequestInfo, CacheQueryOptions) on Cache
-PASS Cache interface: operation add(RequestInfo)
-PASS Unscopable handled correctly for add(RequestInfo) on Cache
-PASS Cache interface: operation addAll([object Object])
-PASS Unscopable handled correctly for addAll([object Object]) on Cache
-PASS Cache interface: operation put(RequestInfo, Response)
-PASS Unscopable handled correctly for put(RequestInfo, Response) on Cache
-PASS Cache interface: operation delete(RequestInfo, CacheQueryOptions)
-PASS Unscopable handled correctly for delete(RequestInfo, CacheQueryOptions) on Cache
-PASS Cache interface: operation keys(RequestInfo, CacheQueryOptions)
-PASS Unscopable handled correctly for keys(RequestInfo, CacheQueryOptions) on Cache
-PASS Cache must be primary interface of self.cacheInstance
-PASS Stringification of self.cacheInstance
-PASS Cache interface: self.cacheInstance must inherit property "match(RequestInfo, CacheQueryOptions)" with the proper type
-PASS Cache interface: calling match(RequestInfo, CacheQueryOptions) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "matchAll(RequestInfo, CacheQueryOptions)" with the proper type
-PASS Cache interface: calling matchAll(RequestInfo, 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([object Object])" with the proper type
-PASS Cache interface: calling addAll([object Object]) 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, CacheQueryOptions)" with the proper type
-PASS Cache interface: calling delete(RequestInfo, CacheQueryOptions) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "keys(RequestInfo, CacheQueryOptions)" with the proper type
-PASS Cache interface: calling keys(RequestInfo, 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, CacheQueryOptions)
-PASS Unscopable handled correctly for match(RequestInfo, CacheQueryOptions) on CacheStorage
-PASS CacheStorage interface: operation has(DOMString)
-PASS Unscopable handled correctly for has(DOMString) on CacheStorage
-PASS CacheStorage interface: operation open(DOMString)
-PASS Unscopable handled correctly for open(DOMString) on CacheStorage
-PASS CacheStorage interface: operation delete(DOMString)
-PASS Unscopable handled correctly for delete(DOMString) on CacheStorage
-PASS CacheStorage interface: operation keys()
-PASS Unscopable handled correctly for keys() on CacheStorage
-PASS CacheStorage must be primary interface of self.caches
-PASS Stringification of self.caches
-PASS CacheStorage interface: self.caches must inherit property "match(RequestInfo, CacheQueryOptions)" with the proper type
-PASS CacheStorage interface: calling match(RequestInfo, CacheQueryOptions) on self.caches with too few arguments must throw TypeError
-PASS CacheStorage interface: self.caches must inherit property "has(DOMString)" with the proper type
-PASS CacheStorage interface: calling has(DOMString) on self.caches with too few arguments must throw TypeError
-PASS CacheStorage interface: self.caches must inherit property "open(DOMString)" with the proper type
-PASS CacheStorage interface: calling open(DOMString) on self.caches with too few arguments must throw TypeError
-PASS CacheStorage interface: self.caches must inherit property "delete(DOMString)" with the proper type
-PASS CacheStorage interface: calling delete(DOMString) on self.caches with too few arguments must throw TypeError
-PASS CacheStorage interface: self.caches must inherit property "keys()" with the proper type
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/virtual/outofblink-cors/external/wpt/fetch/api/request/request-idl-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/virtual/outofblink-cors/external/wpt/fetch/api/request/request-idl-expected.txt
deleted file mode 100644
index fe8cfccb..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/virtual/outofblink-cors/external/wpt/fetch/api/request/request-idl-expected.txt
+++ /dev/null
@@ -1,69 +0,0 @@
-This is a testharness.js-based test.
-Found 65 tests; 63 PASS, 2 FAIL, 0 TIMEOUT, 0 NOTRUN.
-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 Unscopable handled correctly for method property on Request
-PASS Request interface: attribute url
-PASS Unscopable handled correctly for url property on Request
-PASS Request interface: attribute headers
-PASS Unscopable handled correctly for headers property on Request
-PASS Request interface: attribute destination
-PASS Unscopable handled correctly for destination property on Request
-PASS Request interface: attribute referrer
-PASS Unscopable handled correctly for referrer property on Request
-PASS Request interface: attribute referrerPolicy
-PASS Unscopable handled correctly for referrerPolicy property on Request
-PASS Request interface: attribute mode
-PASS Unscopable handled correctly for mode property on Request
-PASS Request interface: attribute credentials
-PASS Unscopable handled correctly for credentials property on Request
-PASS Request interface: attribute cache
-PASS Unscopable handled correctly for cache property on Request
-PASS Request interface: attribute redirect
-PASS Unscopable handled correctly for redirect property on Request
-PASS Request interface: attribute integrity
-PASS Unscopable handled correctly for integrity property on Request
-PASS Request interface: operation clone()
-PASS Unscopable handled correctly for clone() on Request
-FAIL Request interface: attribute body assert_true: The prototype object must have a property "body" expected true got false
-PASS Unscopable handled correctly for body property on Request
-PASS Request interface: attribute bodyUsed
-PASS Unscopable handled correctly for bodyUsed property on Request
-PASS Request interface: operation arrayBuffer()
-PASS Unscopable handled correctly for arrayBuffer() on Request
-PASS Request interface: operation blob()
-PASS Unscopable handled correctly for blob() on Request
-PASS Request interface: operation formData()
-PASS Unscopable handled correctly for formData() on Request
-PASS Request interface: operation json()
-PASS Unscopable handled correctly for json() on Request
-PASS Request interface: operation text()
-PASS Unscopable handled correctly for text() on Request
-PASS Request must be primary interface of new Request("")
-PASS Stringification of new Request("")
-PASS Request interface: new Request("") must inherit property "method" with the proper type
-PASS Request interface: new Request("") must inherit property "url" with the proper type
-PASS Request interface: new Request("") must inherit property "headers" with the proper type
-PASS Request interface: new Request("") must inherit property "destination" with the proper type
-PASS Request interface: new Request("") must inherit property "referrer" with the proper type
-PASS Request interface: new Request("") must inherit property "referrerPolicy" with the proper type
-PASS Request interface: new Request("") must inherit property "mode" with the proper type
-PASS Request interface: new Request("") must inherit property "credentials" with the proper type
-PASS Request interface: new Request("") must inherit property "cache" with the proper type
-PASS Request interface: new Request("") must inherit property "redirect" with the proper type
-PASS Request interface: new Request("") must inherit property "integrity" with the proper type
-PASS Request interface: new Request("") must inherit property "clone()" with the proper type
-FAIL Request interface: new Request("") must inherit property "body" with the proper type assert_inherits: property "body" not found in prototype chain
-PASS Request interface: new Request("") must inherit property "bodyUsed" with the proper type
-PASS Request interface: new Request("") must inherit property "arrayBuffer()" with the proper type
-PASS Request interface: new Request("") must inherit property "blob()" with the proper type
-PASS Request interface: new Request("") must inherit property "formData()" with the proper type
-PASS Request interface: new Request("") must inherit property "json()" with the proper type
-PASS Request interface: new Request("") must inherit property "text()" with the proper type
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/virtual/outofblink-cors/external/wpt/fetch/api/response/response-idl-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/virtual/outofblink-cors/external/wpt/fetch/api/response/response-idl-expected.txt
deleted file mode 100644
index 81ae70e..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/virtual/outofblink-cors/external/wpt/fetch/api/response/response-idl-expected.txt
+++ /dev/null
@@ -1,64 +0,0 @@
-This is a testharness.js-based test.
-Found 60 tests; 58 PASS, 2 FAIL, 0 TIMEOUT, 0 NOTRUN.
-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 Unscopable handled correctly for error() on Response
-PASS Response interface: operation redirect(USVString, unsigned short)
-PASS Unscopable handled correctly for redirect(USVString, unsigned short) on Response
-PASS Response interface: attribute type
-PASS Unscopable handled correctly for type property on Response
-PASS Response interface: attribute url
-PASS Unscopable handled correctly for url property on Response
-PASS Response interface: attribute status
-PASS Unscopable handled correctly for status property on Response
-PASS Response interface: attribute ok
-PASS Unscopable handled correctly for ok property on Response
-PASS Response interface: attribute statusText
-PASS Unscopable handled correctly for statusText property on Response
-PASS Response interface: attribute headers
-PASS Unscopable handled correctly for headers property on Response
-FAIL Response interface: attribute trailer assert_true: The prototype object must have a property "trailer" expected true got false
-PASS Unscopable handled correctly for trailer property on Response
-PASS Response interface: operation clone()
-PASS Unscopable handled correctly for clone() on Response
-PASS Response interface: attribute body
-PASS Unscopable handled correctly for body property on Response
-PASS Response interface: attribute bodyUsed
-PASS Unscopable handled correctly for bodyUsed property on Response
-PASS Response interface: operation arrayBuffer()
-PASS Unscopable handled correctly for arrayBuffer() on Response
-PASS Response interface: operation blob()
-PASS Unscopable handled correctly for blob() on Response
-PASS Response interface: operation formData()
-PASS Unscopable handled correctly for formData() on Response
-PASS Response interface: operation json()
-PASS Unscopable handled correctly for json() on Response
-PASS Response interface: operation text()
-PASS Unscopable handled correctly for text() on Response
-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, unsigned short)" with the proper type
-PASS Response interface: calling redirect(USVString, 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 "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
-FAIL Response interface: new Response() must inherit property "trailer" with the proper type assert_inherits: property "trailer" not found in prototype chain
-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
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/virtual/outofblink-cors/external/wpt/service-workers/service-worker/interfaces-sw.https-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.12/virtual/outofblink-cors/external/wpt/service-workers/service-worker/interfaces-sw.https-expected.txt
deleted file mode 100644
index 379e5662..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/virtual/outofblink-cors/external/wpt/service-workers/service-worker/interfaces-sw.https-expected.txt
+++ /dev/null
@@ -1,250 +0,0 @@
-This is a testharness.js-based test.
-PASS Interfaces and attributes in ServiceWorkerGlobalScope
-PASS test setup (cache creation)
-FAIL Event constructors assert_equals: FetchEvent.isReload should not exist expected (undefined) undefined but got (boolean) false
-PASS xhr is not exposed
-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 Unscopable handled correctly for clients property on ServiceWorkerGlobalScope
-PASS ServiceWorkerGlobalScope interface: attribute registration
-PASS Unscopable handled correctly for registration property on ServiceWorkerGlobalScope
-PASS ServiceWorkerGlobalScope interface: operation skipWaiting()
-PASS Unscopable handled correctly for skipWaiting() on ServiceWorkerGlobalScope
-PASS ServiceWorkerGlobalScope interface: attribute oninstall
-PASS Unscopable handled correctly for oninstall property on ServiceWorkerGlobalScope
-PASS ServiceWorkerGlobalScope interface: attribute onactivate
-PASS Unscopable handled correctly for onactivate property on ServiceWorkerGlobalScope
-PASS ServiceWorkerGlobalScope interface: attribute onfetch
-PASS Unscopable handled correctly for onfetch property on ServiceWorkerGlobalScope
-PASS ServiceWorkerGlobalScope interface: attribute onmessage
-PASS Unscopable handled correctly for onmessage property on ServiceWorkerGlobalScope
-FAIL ServiceWorkerGlobalScope interface: attribute onmessageerror assert_own_property: The global object must have a property "onmessageerror" expected property "onmessageerror" missing
-PASS Unscopable handled correctly for onmessageerror property on ServiceWorkerGlobalScope
-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 "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
-FAIL ServiceWorkerGlobalScope interface: self must inherit property "onmessageerror" with the proper type assert_own_property: expected property "onmessageerror" missing
-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 Unscopable handled correctly for url property on Client
-PASS Client interface: attribute id
-PASS Unscopable handled correctly for id property on Client
-PASS Client interface: attribute type
-PASS Unscopable handled correctly for type property on Client
-FAIL Client interface: attribute reserved assert_true: The prototype object must have a property "reserved" expected true got false
-PASS Unscopable handled correctly for reserved property on Client
-PASS Client interface: operation postMessage(any, [object Object])
-PASS Unscopable handled correctly for postMessage(any, [object Object]) on Client
-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 Unscopable handled correctly for visibilityState property on WindowClient
-PASS WindowClient interface: attribute focused
-PASS Unscopable handled correctly for focused property on WindowClient
-FAIL WindowClient interface: attribute ancestorOrigins assert_true: The prototype object must have a property "ancestorOrigins" expected true got false
-PASS Unscopable handled correctly for ancestorOrigins property on WindowClient
-PASS WindowClient interface: operation focus()
-PASS Unscopable handled correctly for focus() on WindowClient
-PASS WindowClient interface: operation navigate(USVString)
-PASS Unscopable handled correctly for navigate(USVString) on WindowClient
-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 Unscopable handled correctly for get(DOMString) on Clients
-PASS Clients interface: operation matchAll(ClientQueryOptions)
-PASS Unscopable handled correctly for matchAll(ClientQueryOptions) on Clients
-PASS Clients interface: operation openWindow(USVString)
-PASS Unscopable handled correctly for openWindow(USVString) on Clients
-PASS Clients interface: operation claim()
-PASS Unscopable handled correctly for claim() on Clients
-PASS Clients must be primary interface of self.clients
-PASS Stringification of self.clients
-PASS Clients interface: self.clients must inherit property "get(DOMString)" with the proper type
-PASS Clients interface: calling get(DOMString) on self.clients with too few arguments must throw TypeError
-PASS Clients interface: self.clients must inherit property "matchAll(ClientQueryOptions)" with the proper type
-PASS Clients interface: calling matchAll(ClientQueryOptions) on self.clients with too few arguments must throw TypeError
-PASS Clients interface: self.clients must inherit property "openWindow(USVString)" with the proper type
-PASS Clients interface: calling openWindow(USVString) on self.clients with too few arguments must throw TypeError
-PASS Clients interface: self.clients must inherit property "claim()" with the proper type
-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
-PASS Unscopable handled correctly for scriptURL property on ServiceWorker
-FAIL ServiceWorker interface: attribute state assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-PASS Unscopable handled correctly for state property on ServiceWorker
-FAIL ServiceWorker interface: operation postMessage(any, [object Object]) assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-PASS Unscopable handled correctly for postMessage(any, [object Object]) on ServiceWorker
-FAIL ServiceWorker interface: attribute onstatechange assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-PASS Unscopable handled correctly for onstatechange property on ServiceWorker
-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 Unscopable handled correctly for installing property on ServiceWorkerRegistration
-PASS ServiceWorkerRegistration interface: attribute waiting
-PASS Unscopable handled correctly for waiting property on ServiceWorkerRegistration
-PASS ServiceWorkerRegistration interface: attribute active
-PASS Unscopable handled correctly for active property on ServiceWorkerRegistration
-PASS ServiceWorkerRegistration interface: attribute navigationPreload
-PASS Unscopable handled correctly for navigationPreload property on ServiceWorkerRegistration
-PASS ServiceWorkerRegistration interface: attribute scope
-PASS Unscopable handled correctly for scope property on ServiceWorkerRegistration
-PASS ServiceWorkerRegistration interface: attribute updateViaCache
-PASS Unscopable handled correctly for updateViaCache property on ServiceWorkerRegistration
-PASS ServiceWorkerRegistration interface: operation update()
-PASS Unscopable handled correctly for update() on ServiceWorkerRegistration
-PASS ServiceWorkerRegistration interface: operation unregister()
-PASS Unscopable handled correctly for unregister() on ServiceWorkerRegistration
-PASS ServiceWorkerRegistration interface: attribute onupdatefound
-PASS Unscopable handled correctly for onupdatefound property on ServiceWorkerRegistration
-PASS ServiceWorkerRegistration must be primary interface of self.registration
-PASS Stringification of self.registration
-PASS ServiceWorkerRegistration interface: self.registration must inherit property "installing" with the proper type
-PASS ServiceWorkerRegistration interface: self.registration must inherit property "waiting" with the proper type
-PASS ServiceWorkerRegistration interface: self.registration must inherit property "active" with the proper type
-PASS ServiceWorkerRegistration interface: self.registration must inherit property "navigationPreload" with the proper type
-PASS ServiceWorkerRegistration interface: self.registration must inherit property "scope" with the proper type
-PASS ServiceWorkerRegistration interface: self.registration must inherit property "updateViaCache" with the proper type
-PASS ServiceWorkerRegistration interface: self.registration must inherit property "update()" with the proper type
-PASS ServiceWorkerRegistration interface: self.registration must inherit property "unregister()" with the proper type
-PASS ServiceWorkerRegistration interface: self.registration must inherit property "onupdatefound" with the proper type
-PASS EventTarget interface: self.registration must inherit property "addEventListener(DOMString, EventListener, [object Object],[object Object])" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener, [object Object],[object Object]) on self.registration with too few arguments must throw TypeError
-PASS EventTarget interface: self.registration must inherit property "removeEventListener(DOMString, EventListener, [object Object],[object Object])" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener, [object Object],[object Object]) on self.registration with too few arguments must throw TypeError
-PASS EventTarget interface: self.registration must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on self.registration 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, [object Object],[object Object])
-PASS Unscopable handled correctly for addEventListener(DOMString, EventListener, [object Object],[object Object]) on EventTarget
-PASS EventTarget interface: operation removeEventListener(DOMString, EventListener, [object Object],[object Object])
-PASS Unscopable handled correctly for removeEventListener(DOMString, EventListener, [object Object],[object Object]) on EventTarget
-PASS EventTarget interface: operation dispatchEvent(Event)
-PASS Unscopable handled correctly for dispatchEvent(Event) on EventTarget
-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 Unscopable handled correctly for enable() on NavigationPreloadManager
-PASS NavigationPreloadManager interface: operation disable()
-PASS Unscopable handled correctly for disable() on NavigationPreloadManager
-PASS NavigationPreloadManager interface: operation setHeaderValue(ByteString)
-PASS Unscopable handled correctly for setHeaderValue(ByteString) on NavigationPreloadManager
-PASS NavigationPreloadManager interface: operation getState()
-PASS Unscopable handled correctly for getState() on NavigationPreloadManager
-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, CacheQueryOptions)
-PASS Unscopable handled correctly for match(RequestInfo, CacheQueryOptions) on Cache
-PASS Cache interface: operation matchAll(RequestInfo, CacheQueryOptions)
-PASS Unscopable handled correctly for matchAll(RequestInfo, CacheQueryOptions) on Cache
-PASS Cache interface: operation add(RequestInfo)
-PASS Unscopable handled correctly for add(RequestInfo) on Cache
-PASS Cache interface: operation addAll([object Object])
-PASS Unscopable handled correctly for addAll([object Object]) on Cache
-PASS Cache interface: operation put(RequestInfo, Response)
-PASS Unscopable handled correctly for put(RequestInfo, Response) on Cache
-PASS Cache interface: operation delete(RequestInfo, CacheQueryOptions)
-PASS Unscopable handled correctly for delete(RequestInfo, CacheQueryOptions) on Cache
-PASS Cache interface: operation keys(RequestInfo, CacheQueryOptions)
-PASS Unscopable handled correctly for keys(RequestInfo, CacheQueryOptions) on Cache
-PASS Cache must be primary interface of self.cacheInstance
-PASS Stringification of self.cacheInstance
-PASS Cache interface: self.cacheInstance must inherit property "match(RequestInfo, CacheQueryOptions)" with the proper type
-PASS Cache interface: calling match(RequestInfo, CacheQueryOptions) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "matchAll(RequestInfo, CacheQueryOptions)" with the proper type
-PASS Cache interface: calling matchAll(RequestInfo, 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([object Object])" with the proper type
-PASS Cache interface: calling addAll([object Object]) 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, CacheQueryOptions)" with the proper type
-PASS Cache interface: calling delete(RequestInfo, CacheQueryOptions) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "keys(RequestInfo, CacheQueryOptions)" with the proper type
-PASS Cache interface: calling keys(RequestInfo, 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, CacheQueryOptions)
-PASS Unscopable handled correctly for match(RequestInfo, CacheQueryOptions) on CacheStorage
-PASS CacheStorage interface: operation has(DOMString)
-PASS Unscopable handled correctly for has(DOMString) on CacheStorage
-PASS CacheStorage interface: operation open(DOMString)
-PASS Unscopable handled correctly for open(DOMString) on CacheStorage
-PASS CacheStorage interface: operation delete(DOMString)
-PASS Unscopable handled correctly for delete(DOMString) on CacheStorage
-PASS CacheStorage interface: operation keys()
-PASS Unscopable handled correctly for keys() on CacheStorage
-PASS CacheStorage must be primary interface of self.caches
-PASS Stringification of self.caches
-PASS CacheStorage interface: self.caches must inherit property "match(RequestInfo, CacheQueryOptions)" with the proper type
-PASS CacheStorage interface: calling match(RequestInfo, CacheQueryOptions) on self.caches with too few arguments must throw TypeError
-PASS CacheStorage interface: self.caches must inherit property "has(DOMString)" with the proper type
-PASS CacheStorage interface: calling has(DOMString) on self.caches with too few arguments must throw TypeError
-PASS CacheStorage interface: self.caches must inherit property "open(DOMString)" with the proper type
-PASS CacheStorage interface: calling open(DOMString) on self.caches with too few arguments must throw TypeError
-PASS CacheStorage interface: self.caches must inherit property "delete(DOMString)" with the proper type
-PASS CacheStorage interface: calling delete(DOMString) on self.caches with too few arguments must throw TypeError
-PASS CacheStorage interface: self.caches must inherit property "keys()" with the proper type
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/compat/webkit-appearance.tentative-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/external/wpt/compat/webkit-appearance.tentative-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/mac-mac10.12/external/wpt/compat/webkit-appearance.tentative-expected.txt
rename to third_party/WebKit/LayoutTests/platform/mac/external/wpt/compat/webkit-appearance.tentative-expected.txt
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/WebCryptoAPI/idlharness.https.worker-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/WebCryptoAPI/idlharness.https.worker-expected.txt
deleted file mode 100644
index a83da9a..0000000
--- a/third_party/WebKit/LayoutTests/platform/win/external/wpt/WebCryptoAPI/idlharness.https.worker-expected.txt
+++ /dev/null
@@ -1,91 +0,0 @@
-This is a testharness.js-based test.
-PASS Window interface: existence and properties of interface object
-FAIL ArrayBuffer interface: existence and properties of interface object assert_false: expected false got true
-PASS ArrayBufferView interface: existence and properties of interface object
-PASS Crypto interface: existence and properties of interface object
-PASS Crypto interface object length
-PASS Crypto interface object name
-PASS Crypto interface: existence and properties of interface prototype object
-PASS Crypto interface: existence and properties of interface prototype object's "constructor" property
-PASS Crypto interface: existence and properties of interface prototype object's @@unscopables property
-PASS Crypto interface: attribute subtle
-PASS Unscopable handled correctly for subtle property on Crypto
-PASS Crypto interface: operation getRandomValues(ArrayBufferView)
-PASS Unscopable handled correctly for getRandomValues(ArrayBufferView) on Crypto
-PASS Crypto must be primary interface of crypto
-PASS Stringification of crypto
-PASS Crypto interface: crypto must inherit property "subtle" with the proper type
-PASS Crypto interface: crypto must inherit property "getRandomValues(ArrayBufferView)" with the proper type
-PASS Crypto interface: calling getRandomValues(ArrayBufferView) on crypto with too few arguments must throw TypeError
-PASS CryptoKey interface: existence and properties of interface object
-PASS CryptoKey interface object length
-PASS CryptoKey interface object name
-PASS CryptoKey interface: existence and properties of interface prototype object
-PASS CryptoKey interface: existence and properties of interface prototype object's "constructor" property
-PASS CryptoKey interface: existence and properties of interface prototype object's @@unscopables property
-PASS CryptoKey interface: attribute type
-PASS Unscopable handled correctly for type property on CryptoKey
-PASS CryptoKey interface: attribute extractable
-PASS Unscopable handled correctly for extractable property on CryptoKey
-PASS CryptoKey interface: attribute algorithm
-PASS Unscopable handled correctly for algorithm property on CryptoKey
-PASS CryptoKey interface: attribute usages
-PASS Unscopable handled correctly for usages property on CryptoKey
-PASS SubtleCrypto interface: existence and properties of interface object
-PASS SubtleCrypto interface object length
-PASS SubtleCrypto interface object name
-PASS SubtleCrypto interface: existence and properties of interface prototype object
-PASS SubtleCrypto interface: existence and properties of interface prototype object's "constructor" property
-PASS SubtleCrypto interface: existence and properties of interface prototype object's @@unscopables property
-PASS SubtleCrypto interface: operation encrypt(AlgorithmIdentifier, CryptoKey, BufferSource)
-PASS Unscopable handled correctly for encrypt(AlgorithmIdentifier, CryptoKey, BufferSource) on SubtleCrypto
-PASS SubtleCrypto interface: operation decrypt(AlgorithmIdentifier, CryptoKey, BufferSource)
-PASS Unscopable handled correctly for decrypt(AlgorithmIdentifier, CryptoKey, BufferSource) on SubtleCrypto
-PASS SubtleCrypto interface: operation sign(AlgorithmIdentifier, CryptoKey, BufferSource)
-PASS Unscopable handled correctly for sign(AlgorithmIdentifier, CryptoKey, BufferSource) on SubtleCrypto
-PASS SubtleCrypto interface: operation verify(AlgorithmIdentifier, CryptoKey, BufferSource, BufferSource)
-PASS Unscopable handled correctly for verify(AlgorithmIdentifier, CryptoKey, BufferSource, BufferSource) on SubtleCrypto
-PASS SubtleCrypto interface: operation digest(AlgorithmIdentifier, BufferSource)
-PASS Unscopable handled correctly for digest(AlgorithmIdentifier, BufferSource) on SubtleCrypto
-PASS SubtleCrypto interface: operation generateKey(AlgorithmIdentifier, boolean, [object Object])
-PASS Unscopable handled correctly for generateKey(AlgorithmIdentifier, boolean, [object Object]) on SubtleCrypto
-PASS SubtleCrypto interface: operation deriveKey(AlgorithmIdentifier, CryptoKey, AlgorithmIdentifier, boolean, [object Object])
-PASS Unscopable handled correctly for deriveKey(AlgorithmIdentifier, CryptoKey, AlgorithmIdentifier, boolean, [object Object]) on SubtleCrypto
-PASS SubtleCrypto interface: operation deriveBits(AlgorithmIdentifier, CryptoKey, unsigned long)
-PASS Unscopable handled correctly for deriveBits(AlgorithmIdentifier, CryptoKey, unsigned long) on SubtleCrypto
-PASS SubtleCrypto interface: operation importKey(KeyFormat, [object Object],[object Object], AlgorithmIdentifier, boolean, [object Object])
-PASS Unscopable handled correctly for importKey(KeyFormat, [object Object],[object Object], AlgorithmIdentifier, boolean, [object Object]) on SubtleCrypto
-PASS SubtleCrypto interface: operation exportKey(KeyFormat, CryptoKey)
-PASS Unscopable handled correctly for exportKey(KeyFormat, CryptoKey) on SubtleCrypto
-PASS SubtleCrypto interface: operation wrapKey(KeyFormat, CryptoKey, CryptoKey, AlgorithmIdentifier)
-PASS Unscopable handled correctly for wrapKey(KeyFormat, CryptoKey, CryptoKey, AlgorithmIdentifier) on SubtleCrypto
-PASS SubtleCrypto interface: operation unwrapKey(KeyFormat, BufferSource, CryptoKey, AlgorithmIdentifier, AlgorithmIdentifier, boolean, [object Object])
-PASS Unscopable handled correctly for unwrapKey(KeyFormat, BufferSource, CryptoKey, AlgorithmIdentifier, AlgorithmIdentifier, boolean, [object Object]) on SubtleCrypto
-PASS SubtleCrypto must be primary interface of crypto.subtle
-PASS Stringification of crypto.subtle
-PASS SubtleCrypto interface: crypto.subtle must inherit property "encrypt(AlgorithmIdentifier, CryptoKey, BufferSource)" with the proper type
-PASS SubtleCrypto interface: calling encrypt(AlgorithmIdentifier, CryptoKey, BufferSource) on crypto.subtle with too few arguments must throw TypeError
-PASS SubtleCrypto interface: crypto.subtle must inherit property "decrypt(AlgorithmIdentifier, CryptoKey, BufferSource)" with the proper type
-PASS SubtleCrypto interface: calling decrypt(AlgorithmIdentifier, CryptoKey, BufferSource) on crypto.subtle with too few arguments must throw TypeError
-PASS SubtleCrypto interface: crypto.subtle must inherit property "sign(AlgorithmIdentifier, CryptoKey, BufferSource)" with the proper type
-PASS SubtleCrypto interface: calling sign(AlgorithmIdentifier, CryptoKey, BufferSource) on crypto.subtle with too few arguments must throw TypeError
-PASS SubtleCrypto interface: crypto.subtle must inherit property "verify(AlgorithmIdentifier, CryptoKey, BufferSource, BufferSource)" with the proper type
-PASS SubtleCrypto interface: calling verify(AlgorithmIdentifier, CryptoKey, BufferSource, BufferSource) on crypto.subtle with too few arguments must throw TypeError
-PASS SubtleCrypto interface: crypto.subtle must inherit property "digest(AlgorithmIdentifier, BufferSource)" with the proper type
-PASS SubtleCrypto interface: calling digest(AlgorithmIdentifier, BufferSource) on crypto.subtle with too few arguments must throw TypeError
-PASS SubtleCrypto interface: crypto.subtle must inherit property "generateKey(AlgorithmIdentifier, boolean, [object Object])" with the proper type
-PASS SubtleCrypto interface: calling generateKey(AlgorithmIdentifier, boolean, [object Object]) on crypto.subtle with too few arguments must throw TypeError
-PASS SubtleCrypto interface: crypto.subtle must inherit property "deriveKey(AlgorithmIdentifier, CryptoKey, AlgorithmIdentifier, boolean, [object Object])" with the proper type
-PASS SubtleCrypto interface: calling deriveKey(AlgorithmIdentifier, CryptoKey, AlgorithmIdentifier, boolean, [object Object]) on crypto.subtle with too few arguments must throw TypeError
-PASS SubtleCrypto interface: crypto.subtle must inherit property "deriveBits(AlgorithmIdentifier, CryptoKey, unsigned long)" with the proper type
-PASS SubtleCrypto interface: calling deriveBits(AlgorithmIdentifier, CryptoKey, unsigned long) on crypto.subtle with too few arguments must throw TypeError
-PASS SubtleCrypto interface: crypto.subtle must inherit property "importKey(KeyFormat, [object Object],[object Object], AlgorithmIdentifier, boolean, [object Object])" with the proper type
-PASS SubtleCrypto interface: calling importKey(KeyFormat, [object Object],[object Object], AlgorithmIdentifier, boolean, [object Object]) on crypto.subtle with too few arguments must throw TypeError
-PASS SubtleCrypto interface: crypto.subtle must inherit property "exportKey(KeyFormat, CryptoKey)" with the proper type
-PASS SubtleCrypto interface: calling exportKey(KeyFormat, CryptoKey) on crypto.subtle with too few arguments must throw TypeError
-PASS SubtleCrypto interface: crypto.subtle must inherit property "wrapKey(KeyFormat, CryptoKey, CryptoKey, AlgorithmIdentifier)" with the proper type
-PASS SubtleCrypto interface: calling wrapKey(KeyFormat, CryptoKey, CryptoKey, AlgorithmIdentifier) on crypto.subtle with too few arguments must throw TypeError
-PASS SubtleCrypto interface: crypto.subtle must inherit property "unwrapKey(KeyFormat, BufferSource, CryptoKey, AlgorithmIdentifier, AlgorithmIdentifier, boolean, [object Object])" with the proper type
-PASS SubtleCrypto interface: calling unwrapKey(KeyFormat, BufferSource, CryptoKey, AlgorithmIdentifier, AlgorithmIdentifier, boolean, [object Object]) on crypto.subtle with too few arguments must throw TypeError
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accelerometer/idlharness.https-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/accelerometer/idlharness.https-expected.txt
deleted file mode 100644
index 1911e73ae..0000000
--- a/third_party/WebKit/LayoutTests/platform/win/external/wpt/accelerometer/idlharness.https-expected.txt
+++ /dev/null
@@ -1,89 +0,0 @@
-This is a testharness.js-based test.
-PASS Test IDL implementation of Accelerometer Sensor
-PASS Sensor interface: existence and properties of interface object
-PASS Sensor interface object length
-PASS Sensor interface object name
-PASS Sensor interface: existence and properties of interface prototype object
-PASS Sensor interface: existence and properties of interface prototype object's "constructor" property
-PASS Sensor interface: existence and properties of interface prototype object's @@unscopables property
-PASS Sensor interface: attribute activated
-PASS Unscopable handled correctly for activated property on Sensor
-PASS Sensor interface: attribute hasReading
-PASS Unscopable handled correctly for hasReading property on Sensor
-PASS Sensor interface: attribute timestamp
-PASS Unscopable handled correctly for timestamp property on Sensor
-PASS Sensor interface: operation start()
-PASS Unscopable handled correctly for start() on Sensor
-PASS Sensor interface: operation stop()
-PASS Unscopable handled correctly for stop() on Sensor
-PASS Sensor interface: attribute onreading
-PASS Unscopable handled correctly for onreading property on Sensor
-PASS Sensor interface: attribute onactivate
-PASS Unscopable handled correctly for onactivate property on Sensor
-PASS Sensor interface: attribute onerror
-PASS Unscopable handled correctly for onerror property on Sensor
-PASS Accelerometer interface: existence and properties of interface object
-PASS Accelerometer interface object length
-PASS Accelerometer interface object name
-PASS Accelerometer interface: existence and properties of interface prototype object
-PASS Accelerometer interface: existence and properties of interface prototype object's "constructor" property
-PASS Accelerometer interface: existence and properties of interface prototype object's @@unscopables property
-PASS Accelerometer interface: attribute x
-PASS Unscopable handled correctly for x property on Accelerometer
-PASS Accelerometer interface: attribute y
-PASS Unscopable handled correctly for y property on Accelerometer
-PASS Accelerometer interface: attribute z
-PASS Unscopable handled correctly for z property on Accelerometer
-PASS Accelerometer must be primary interface of new Accelerometer();
-PASS Stringification of new Accelerometer();
-PASS Accelerometer interface: new Accelerometer(); must inherit property "x" with the proper type
-PASS Accelerometer interface: new Accelerometer(); must inherit property "y" with the proper type
-PASS Accelerometer interface: new Accelerometer(); must inherit property "z" with the proper type
-PASS Sensor interface: new Accelerometer(); must inherit property "activated" with the proper type
-PASS Sensor interface: new Accelerometer(); must inherit property "hasReading" with the proper type
-PASS Sensor interface: new Accelerometer(); must inherit property "timestamp" with the proper type
-PASS Sensor interface: new Accelerometer(); must inherit property "start()" with the proper type
-PASS Sensor interface: new Accelerometer(); must inherit property "stop()" with the proper type
-PASS Sensor interface: new Accelerometer(); must inherit property "onreading" with the proper type
-PASS Sensor interface: new Accelerometer(); must inherit property "onactivate" with the proper type
-PASS Sensor interface: new Accelerometer(); must inherit property "onerror" with the proper type
-PASS LinearAccelerationSensor interface: existence and properties of interface object
-PASS LinearAccelerationSensor interface object length
-PASS LinearAccelerationSensor interface object name
-PASS LinearAccelerationSensor interface: existence and properties of interface prototype object
-PASS LinearAccelerationSensor interface: existence and properties of interface prototype object's "constructor" property
-PASS LinearAccelerationSensor interface: existence and properties of interface prototype object's @@unscopables property
-PASS LinearAccelerationSensor must be primary interface of new LinearAccelerationSensor();
-PASS Stringification of new LinearAccelerationSensor();
-PASS Accelerometer interface: new LinearAccelerationSensor(); must inherit property "x" with the proper type
-PASS Accelerometer interface: new LinearAccelerationSensor(); must inherit property "y" with the proper type
-PASS Accelerometer interface: new LinearAccelerationSensor(); must inherit property "z" with the proper type
-PASS Sensor interface: new LinearAccelerationSensor(); must inherit property "activated" with the proper type
-PASS Sensor interface: new LinearAccelerationSensor(); must inherit property "hasReading" with the proper type
-PASS Sensor interface: new LinearAccelerationSensor(); must inherit property "timestamp" with the proper type
-PASS Sensor interface: new LinearAccelerationSensor(); must inherit property "start()" with the proper type
-PASS Sensor interface: new LinearAccelerationSensor(); must inherit property "stop()" with the proper type
-PASS Sensor interface: new LinearAccelerationSensor(); must inherit property "onreading" with the proper type
-PASS Sensor interface: new LinearAccelerationSensor(); must inherit property "onactivate" with the proper type
-PASS Sensor interface: new LinearAccelerationSensor(); must inherit property "onerror" with the proper type
-FAIL GravitySensor interface: existence and properties of interface object assert_own_property: self does not have own property "GravitySensor" expected property "GravitySensor" missing
-FAIL GravitySensor interface object length assert_own_property: self does not have own property "GravitySensor" expected property "GravitySensor" missing
-FAIL GravitySensor interface object name assert_own_property: self does not have own property "GravitySensor" expected property "GravitySensor" missing
-FAIL GravitySensor interface: existence and properties of interface prototype object assert_own_property: self does not have own property "GravitySensor" expected property "GravitySensor" missing
-FAIL GravitySensor interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "GravitySensor" expected property "GravitySensor" missing
-FAIL GravitySensor interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "GravitySensor" expected property "GravitySensor" missing
-FAIL GravitySensor must be primary interface of new GravitySensor(); assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GravitySensor is not defined"
-FAIL Stringification of new GravitySensor(); assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GravitySensor is not defined"
-FAIL Accelerometer interface: new GravitySensor(); must inherit property "x" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GravitySensor is not defined"
-FAIL Accelerometer interface: new GravitySensor(); must inherit property "y" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GravitySensor is not defined"
-FAIL Accelerometer interface: new GravitySensor(); must inherit property "z" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GravitySensor is not defined"
-FAIL Sensor interface: new GravitySensor(); must inherit property "activated" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GravitySensor is not defined"
-FAIL Sensor interface: new GravitySensor(); must inherit property "hasReading" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GravitySensor is not defined"
-FAIL Sensor interface: new GravitySensor(); must inherit property "timestamp" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GravitySensor is not defined"
-FAIL Sensor interface: new GravitySensor(); must inherit property "start()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GravitySensor is not defined"
-FAIL Sensor interface: new GravitySensor(); must inherit property "stop()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GravitySensor is not defined"
-FAIL Sensor interface: new GravitySensor(); must inherit property "onreading" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GravitySensor is not defined"
-FAIL Sensor interface: new GravitySensor(); must inherit property "onactivate" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GravitySensor is not defined"
-FAIL Sensor interface: new GravitySensor(); must inherit property "onerror" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GravitySensor is not defined"
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/background-fetch/interfaces-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/background-fetch/interfaces-expected.txt
deleted file mode 100644
index dbd51c5..0000000
--- a/third_party/WebKit/LayoutTests/platform/win/external/wpt/background-fetch/interfaces-expected.txt
+++ /dev/null
@@ -1,74 +0,0 @@
-This is a testharness.js-based test.
-Found 70 tests; 52 PASS, 18 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS Exposed interfaces in a Document.
-PASS ServiceWorkerRegistration interface: attribute backgroundFetch
-PASS Unscopable handled correctly for backgroundFetch property on ServiceWorkerRegistration
-PASS ServiceWorkerGlobalScope interface: existence and properties of interface object
-PASS BackgroundFetchManager interface: existence and properties of interface object
-PASS BackgroundFetchManager interface object length
-PASS BackgroundFetchManager interface object name
-PASS BackgroundFetchManager interface: existence and properties of interface prototype object
-PASS BackgroundFetchManager interface: existence and properties of interface prototype object's "constructor" property
-PASS BackgroundFetchManager interface: existence and properties of interface prototype object's @@unscopables property
-PASS BackgroundFetchManager interface: operation fetch(DOMString, [object Object],[object Object], BackgroundFetchOptions)
-PASS Unscopable handled correctly for fetch(DOMString, [object Object],[object Object], BackgroundFetchOptions) on BackgroundFetchManager
-PASS BackgroundFetchManager interface: operation get(DOMString)
-PASS Unscopable handled correctly for get(DOMString) on BackgroundFetchManager
-PASS BackgroundFetchManager interface: operation getIds()
-PASS Unscopable handled correctly for getIds() on BackgroundFetchManager
-FAIL BackgroundFetchRegistration interface: existence and properties of interface object Cannot read property 'has_extended_attribute' of undefined
-PASS BackgroundFetchRegistration interface object length
-PASS BackgroundFetchRegistration interface object name
-FAIL BackgroundFetchRegistration interface: existence and properties of interface prototype object Cannot read property 'has_extended_attribute' of undefined
-PASS BackgroundFetchRegistration interface: existence and properties of interface prototype object's "constructor" property
-PASS BackgroundFetchRegistration interface: existence and properties of interface prototype object's @@unscopables property
-PASS BackgroundFetchRegistration interface: attribute id
-PASS Unscopable handled correctly for id property on BackgroundFetchRegistration
-PASS BackgroundFetchRegistration interface: attribute uploadTotal
-PASS Unscopable handled correctly for uploadTotal property on BackgroundFetchRegistration
-PASS BackgroundFetchRegistration interface: attribute uploaded
-PASS Unscopable handled correctly for uploaded property on BackgroundFetchRegistration
-PASS BackgroundFetchRegistration interface: attribute downloadTotal
-PASS Unscopable handled correctly for downloadTotal property on BackgroundFetchRegistration
-PASS BackgroundFetchRegistration interface: attribute downloaded
-PASS Unscopable handled correctly for downloaded property on BackgroundFetchRegistration
-FAIL BackgroundFetchRegistration interface: attribute activeFetches assert_true: The prototype object must have a property "activeFetches" expected true got false
-PASS Unscopable handled correctly for activeFetches property on BackgroundFetchRegistration
-PASS BackgroundFetchRegistration interface: attribute onprogress
-PASS Unscopable handled correctly for onprogress property on BackgroundFetchRegistration
-PASS BackgroundFetchRegistration interface: operation abort()
-PASS Unscopable handled correctly for abort() on BackgroundFetchRegistration
-PASS BackgroundFetchFetch interface: existence and properties of interface object
-PASS BackgroundFetchFetch interface object length
-PASS BackgroundFetchFetch interface object name
-PASS BackgroundFetchFetch interface: existence and properties of interface prototype object
-PASS BackgroundFetchFetch interface: existence and properties of interface prototype object's "constructor" property
-PASS BackgroundFetchFetch interface: existence and properties of interface prototype object's @@unscopables property
-PASS BackgroundFetchFetch interface: attribute request
-PASS Unscopable handled correctly for request property on BackgroundFetchFetch
-FAIL BackgroundFetchActiveFetches interface: existence and properties of interface object assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
-FAIL BackgroundFetchActiveFetches interface object length assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
-FAIL BackgroundFetchActiveFetches interface object name assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
-FAIL BackgroundFetchActiveFetches interface: existence and properties of interface prototype object assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
-FAIL BackgroundFetchActiveFetches interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
-FAIL BackgroundFetchActiveFetches interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
-FAIL BackgroundFetchActiveFetches interface: operation match(RequestInfo) assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
-PASS Unscopable handled correctly for match(RequestInfo) on BackgroundFetchActiveFetches
-FAIL BackgroundFetchActiveFetches interface: operation values() assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
-PASS Unscopable handled correctly for values() on BackgroundFetchActiveFetches
-FAIL BackgroundFetchActiveFetch interface: existence and properties of interface object assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
-FAIL BackgroundFetchActiveFetch interface object length assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
-FAIL BackgroundFetchActiveFetch interface object name assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
-FAIL BackgroundFetchActiveFetch interface: existence and properties of interface prototype object assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
-FAIL BackgroundFetchActiveFetch interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
-FAIL BackgroundFetchActiveFetch interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
-FAIL BackgroundFetchActiveFetch interface: attribute responseReady assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
-PASS Unscopable handled correctly for responseReady property on BackgroundFetchActiveFetch
-PASS BackgroundFetchEvent interface: existence and properties of interface object
-PASS BackgroundFetchSettledEvent interface: existence and properties of interface object
-PASS BackgroundFetchSettledFetches interface: existence and properties of interface object
-PASS BackgroundFetchSettledFetch interface: existence and properties of interface object
-PASS BackgroundFetchUpdateEvent interface: existence and properties of interface object
-PASS BackgroundFetchClickEvent interface: existence and properties of interface object
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/background-fetch/interfaces-worker.https-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/background-fetch/interfaces-worker.https-expected.txt
deleted file mode 100644
index 9831c3d5..0000000
--- a/third_party/WebKit/LayoutTests/platform/win/external/wpt/background-fetch/interfaces-worker.https-expected.txt
+++ /dev/null
@@ -1,124 +0,0 @@
-This is a testharness.js-based test.
-PASS Service Worker-scoped tests.
-PASS Exposed interfaces in a Service Worker.
-FAIL ServiceWorkerRegistration interface: existence and properties of interface object assert_false: expected false got true
-FAIL ServiceWorkerGlobalScope interface: attribute onbackgroundfetched assert_true: The prototype object must have a property "onbackgroundfetched" expected true got false
-PASS Unscopable handled correctly for onbackgroundfetched property on ServiceWorkerGlobalScope
-FAIL ServiceWorkerGlobalScope interface: attribute onbackgroundfetchfail assert_true: The prototype object must have a property "onbackgroundfetchfail" expected true got false
-PASS Unscopable handled correctly for onbackgroundfetchfail property on ServiceWorkerGlobalScope
-FAIL ServiceWorkerGlobalScope interface: attribute onbackgroundfetchabort assert_true: The prototype object must have a property "onbackgroundfetchabort" expected true got false
-PASS Unscopable handled correctly for onbackgroundfetchabort property on ServiceWorkerGlobalScope
-FAIL ServiceWorkerGlobalScope interface: attribute onbackgroundfetchclick assert_true: The prototype object must have a property "onbackgroundfetchclick" expected true got false
-PASS Unscopable handled correctly for onbackgroundfetchclick property on ServiceWorkerGlobalScope
-PASS BackgroundFetchManager interface: existence and properties of interface object
-PASS BackgroundFetchManager interface object length
-PASS BackgroundFetchManager interface object name
-PASS BackgroundFetchManager interface: existence and properties of interface prototype object
-PASS BackgroundFetchManager interface: existence and properties of interface prototype object's "constructor" property
-PASS BackgroundFetchManager interface: existence and properties of interface prototype object's @@unscopables property
-PASS BackgroundFetchManager interface: operation fetch(DOMString, [object Object],[object Object], BackgroundFetchOptions)
-PASS Unscopable handled correctly for fetch(DOMString, [object Object],[object Object], BackgroundFetchOptions) on BackgroundFetchManager
-PASS BackgroundFetchManager interface: operation get(DOMString)
-PASS Unscopable handled correctly for get(DOMString) on BackgroundFetchManager
-PASS BackgroundFetchManager interface: operation getIds()
-PASS Unscopable handled correctly for getIds() on BackgroundFetchManager
-FAIL BackgroundFetchRegistration interface: existence and properties of interface object Cannot read property 'has_extended_attribute' of undefined
-PASS BackgroundFetchRegistration interface object length
-PASS BackgroundFetchRegistration interface object name
-FAIL BackgroundFetchRegistration interface: existence and properties of interface prototype object Cannot read property 'has_extended_attribute' of undefined
-PASS BackgroundFetchRegistration interface: existence and properties of interface prototype object's "constructor" property
-PASS BackgroundFetchRegistration interface: existence and properties of interface prototype object's @@unscopables property
-PASS BackgroundFetchRegistration interface: attribute id
-PASS Unscopable handled correctly for id property on BackgroundFetchRegistration
-PASS BackgroundFetchRegistration interface: attribute uploadTotal
-PASS Unscopable handled correctly for uploadTotal property on BackgroundFetchRegistration
-PASS BackgroundFetchRegistration interface: attribute uploaded
-PASS Unscopable handled correctly for uploaded property on BackgroundFetchRegistration
-PASS BackgroundFetchRegistration interface: attribute downloadTotal
-PASS Unscopable handled correctly for downloadTotal property on BackgroundFetchRegistration
-PASS BackgroundFetchRegistration interface: attribute downloaded
-PASS Unscopable handled correctly for downloaded property on BackgroundFetchRegistration
-FAIL BackgroundFetchRegistration interface: attribute activeFetches assert_true: The prototype object must have a property "activeFetches" expected true got false
-PASS Unscopable handled correctly for activeFetches property on BackgroundFetchRegistration
-PASS BackgroundFetchRegistration interface: attribute onprogress
-PASS Unscopable handled correctly for onprogress property on BackgroundFetchRegistration
-PASS BackgroundFetchRegistration interface: operation abort()
-PASS Unscopable handled correctly for abort() on BackgroundFetchRegistration
-PASS BackgroundFetchFetch interface: existence and properties of interface object
-PASS BackgroundFetchFetch interface object length
-PASS BackgroundFetchFetch interface object name
-PASS BackgroundFetchFetch interface: existence and properties of interface prototype object
-PASS BackgroundFetchFetch interface: existence and properties of interface prototype object's "constructor" property
-PASS BackgroundFetchFetch interface: existence and properties of interface prototype object's @@unscopables property
-PASS BackgroundFetchFetch interface: attribute request
-PASS Unscopable handled correctly for request property on BackgroundFetchFetch
-FAIL BackgroundFetchActiveFetches interface: existence and properties of interface object assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
-FAIL BackgroundFetchActiveFetches interface object length assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
-FAIL BackgroundFetchActiveFetches interface object name assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
-FAIL BackgroundFetchActiveFetches interface: existence and properties of interface prototype object assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
-FAIL BackgroundFetchActiveFetches interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
-FAIL BackgroundFetchActiveFetches interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
-FAIL BackgroundFetchActiveFetches interface: operation match(RequestInfo) assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
-PASS Unscopable handled correctly for match(RequestInfo) on BackgroundFetchActiveFetches
-FAIL BackgroundFetchActiveFetches interface: operation values() assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
-PASS Unscopable handled correctly for values() on BackgroundFetchActiveFetches
-FAIL BackgroundFetchActiveFetch interface: existence and properties of interface object assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
-FAIL BackgroundFetchActiveFetch interface object length assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
-FAIL BackgroundFetchActiveFetch interface object name assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
-FAIL BackgroundFetchActiveFetch interface: existence and properties of interface prototype object assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
-FAIL BackgroundFetchActiveFetch interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
-FAIL BackgroundFetchActiveFetch interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
-FAIL BackgroundFetchActiveFetch interface: attribute responseReady assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
-PASS Unscopable handled correctly for responseReady property on BackgroundFetchActiveFetch
-FAIL BackgroundFetchEvent interface: existence and properties of interface object Cannot read property 'has_extended_attribute' of undefined
-PASS BackgroundFetchEvent interface object length
-PASS BackgroundFetchEvent interface object name
-FAIL BackgroundFetchEvent interface: existence and properties of interface prototype object Cannot read property 'has_extended_attribute' of undefined
-PASS BackgroundFetchEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS BackgroundFetchEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS BackgroundFetchEvent interface: attribute id
-PASS Unscopable handled correctly for id property on BackgroundFetchEvent
-FAIL BackgroundFetchSettledEvent interface: existence and properties of interface object assert_own_property: self does not have own property "BackgroundFetchSettledEvent" expected property "BackgroundFetchSettledEvent" missing
-FAIL BackgroundFetchSettledEvent interface object length assert_own_property: self does not have own property "BackgroundFetchSettledEvent" expected property "BackgroundFetchSettledEvent" missing
-FAIL BackgroundFetchSettledEvent interface object name assert_own_property: self does not have own property "BackgroundFetchSettledEvent" expected property "BackgroundFetchSettledEvent" missing
-FAIL BackgroundFetchSettledEvent interface: existence and properties of interface prototype object assert_own_property: self does not have own property "BackgroundFetchSettledEvent" expected property "BackgroundFetchSettledEvent" missing
-FAIL BackgroundFetchSettledEvent interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "BackgroundFetchSettledEvent" expected property "BackgroundFetchSettledEvent" missing
-FAIL BackgroundFetchSettledEvent interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "BackgroundFetchSettledEvent" expected property "BackgroundFetchSettledEvent" missing
-FAIL BackgroundFetchSettledEvent interface: attribute fetches assert_own_property: self does not have own property "BackgroundFetchSettledEvent" expected property "BackgroundFetchSettledEvent" missing
-PASS Unscopable handled correctly for fetches property on BackgroundFetchSettledEvent
-FAIL BackgroundFetchSettledFetches interface: existence and properties of interface object assert_own_property: self does not have own property "BackgroundFetchSettledFetches" expected property "BackgroundFetchSettledFetches" missing
-FAIL BackgroundFetchSettledFetches interface object length assert_own_property: self does not have own property "BackgroundFetchSettledFetches" expected property "BackgroundFetchSettledFetches" missing
-FAIL BackgroundFetchSettledFetches interface object name assert_own_property: self does not have own property "BackgroundFetchSettledFetches" expected property "BackgroundFetchSettledFetches" missing
-FAIL BackgroundFetchSettledFetches interface: existence and properties of interface prototype object assert_own_property: self does not have own property "BackgroundFetchSettledFetches" expected property "BackgroundFetchSettledFetches" missing
-FAIL BackgroundFetchSettledFetches interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "BackgroundFetchSettledFetches" expected property "BackgroundFetchSettledFetches" missing
-FAIL BackgroundFetchSettledFetches interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "BackgroundFetchSettledFetches" expected property "BackgroundFetchSettledFetches" missing
-FAIL BackgroundFetchSettledFetches interface: operation match(RequestInfo) assert_own_property: self does not have own property "BackgroundFetchSettledFetches" expected property "BackgroundFetchSettledFetches" missing
-PASS Unscopable handled correctly for match(RequestInfo) on BackgroundFetchSettledFetches
-FAIL BackgroundFetchSettledFetches interface: operation values() assert_own_property: self does not have own property "BackgroundFetchSettledFetches" expected property "BackgroundFetchSettledFetches" missing
-PASS Unscopable handled correctly for values() on BackgroundFetchSettledFetches
-PASS BackgroundFetchSettledFetch interface: existence and properties of interface object
-FAIL BackgroundFetchSettledFetch interface object length assert_equals: wrong value for BackgroundFetchSettledFetch.length expected 0 but got 2
-PASS BackgroundFetchSettledFetch interface object name
-PASS BackgroundFetchSettledFetch interface: existence and properties of interface prototype object
-PASS BackgroundFetchSettledFetch interface: existence and properties of interface prototype object's "constructor" property
-PASS BackgroundFetchSettledFetch interface: existence and properties of interface prototype object's @@unscopables property
-PASS BackgroundFetchSettledFetch interface: attribute response
-PASS Unscopable handled correctly for response property on BackgroundFetchSettledFetch
-FAIL BackgroundFetchUpdateEvent interface: existence and properties of interface object assert_own_property: self does not have own property "BackgroundFetchUpdateEvent" expected property "BackgroundFetchUpdateEvent" missing
-FAIL BackgroundFetchUpdateEvent interface object length assert_own_property: self does not have own property "BackgroundFetchUpdateEvent" expected property "BackgroundFetchUpdateEvent" missing
-FAIL BackgroundFetchUpdateEvent interface object name assert_own_property: self does not have own property "BackgroundFetchUpdateEvent" expected property "BackgroundFetchUpdateEvent" missing
-FAIL BackgroundFetchUpdateEvent interface: existence and properties of interface prototype object assert_own_property: self does not have own property "BackgroundFetchUpdateEvent" expected property "BackgroundFetchUpdateEvent" missing
-FAIL BackgroundFetchUpdateEvent interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "BackgroundFetchUpdateEvent" expected property "BackgroundFetchUpdateEvent" missing
-FAIL BackgroundFetchUpdateEvent interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "BackgroundFetchUpdateEvent" expected property "BackgroundFetchUpdateEvent" missing
-FAIL BackgroundFetchUpdateEvent interface: operation updateUI(DOMString) assert_own_property: self does not have own property "BackgroundFetchUpdateEvent" expected property "BackgroundFetchUpdateEvent" missing
-PASS Unscopable handled correctly for updateUI(DOMString) on BackgroundFetchUpdateEvent
-PASS BackgroundFetchClickEvent interface: existence and properties of interface object
-PASS BackgroundFetchClickEvent interface object length
-PASS BackgroundFetchClickEvent interface object name
-FAIL BackgroundFetchClickEvent interface: existence and properties of interface prototype object Cannot read property 'has_stringifier' of undefined
-PASS BackgroundFetchClickEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS BackgroundFetchClickEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS BackgroundFetchClickEvent interface: attribute state
-PASS Unscopable handled correctly for state property on BackgroundFetchClickEvent
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/background-fetch/interfaces.worker-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/background-fetch/interfaces.worker-expected.txt
deleted file mode 100644
index 8340efd..0000000
--- a/third_party/WebKit/LayoutTests/platform/win/external/wpt/background-fetch/interfaces.worker-expected.txt
+++ /dev/null
@@ -1,73 +0,0 @@
-This is a testharness.js-based test.
-Found 69 tests; 50 PASS, 19 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS Exposed interfaces in a Service Worker.
-FAIL ServiceWorkerRegistration interface: existence and properties of interface object assert_false: expected false got true
-PASS ServiceWorkerGlobalScope interface: existence and properties of interface object
-PASS BackgroundFetchManager interface: existence and properties of interface object
-PASS BackgroundFetchManager interface object length
-PASS BackgroundFetchManager interface object name
-PASS BackgroundFetchManager interface: existence and properties of interface prototype object
-PASS BackgroundFetchManager interface: existence and properties of interface prototype object's "constructor" property
-PASS BackgroundFetchManager interface: existence and properties of interface prototype object's @@unscopables property
-PASS BackgroundFetchManager interface: operation fetch(DOMString, [object Object],[object Object], BackgroundFetchOptions)
-PASS Unscopable handled correctly for fetch(DOMString, [object Object],[object Object], BackgroundFetchOptions) on BackgroundFetchManager
-PASS BackgroundFetchManager interface: operation get(DOMString)
-PASS Unscopable handled correctly for get(DOMString) on BackgroundFetchManager
-PASS BackgroundFetchManager interface: operation getIds()
-PASS Unscopable handled correctly for getIds() on BackgroundFetchManager
-FAIL BackgroundFetchRegistration interface: existence and properties of interface object Cannot read property 'has_extended_attribute' of undefined
-PASS BackgroundFetchRegistration interface object length
-PASS BackgroundFetchRegistration interface object name
-FAIL BackgroundFetchRegistration interface: existence and properties of interface prototype object Cannot read property 'has_extended_attribute' of undefined
-PASS BackgroundFetchRegistration interface: existence and properties of interface prototype object's "constructor" property
-PASS BackgroundFetchRegistration interface: existence and properties of interface prototype object's @@unscopables property
-PASS BackgroundFetchRegistration interface: attribute id
-PASS Unscopable handled correctly for id property on BackgroundFetchRegistration
-PASS BackgroundFetchRegistration interface: attribute uploadTotal
-PASS Unscopable handled correctly for uploadTotal property on BackgroundFetchRegistration
-PASS BackgroundFetchRegistration interface: attribute uploaded
-PASS Unscopable handled correctly for uploaded property on BackgroundFetchRegistration
-PASS BackgroundFetchRegistration interface: attribute downloadTotal
-PASS Unscopable handled correctly for downloadTotal property on BackgroundFetchRegistration
-PASS BackgroundFetchRegistration interface: attribute downloaded
-PASS Unscopable handled correctly for downloaded property on BackgroundFetchRegistration
-FAIL BackgroundFetchRegistration interface: attribute activeFetches assert_true: The prototype object must have a property "activeFetches" expected true got false
-PASS Unscopable handled correctly for activeFetches property on BackgroundFetchRegistration
-PASS BackgroundFetchRegistration interface: attribute onprogress
-PASS Unscopable handled correctly for onprogress property on BackgroundFetchRegistration
-PASS BackgroundFetchRegistration interface: operation abort()
-PASS Unscopable handled correctly for abort() on BackgroundFetchRegistration
-PASS BackgroundFetchFetch interface: existence and properties of interface object
-PASS BackgroundFetchFetch interface object length
-PASS BackgroundFetchFetch interface object name
-PASS BackgroundFetchFetch interface: existence and properties of interface prototype object
-PASS BackgroundFetchFetch interface: existence and properties of interface prototype object's "constructor" property
-PASS BackgroundFetchFetch interface: existence and properties of interface prototype object's @@unscopables property
-PASS BackgroundFetchFetch interface: attribute request
-PASS Unscopable handled correctly for request property on BackgroundFetchFetch
-FAIL BackgroundFetchActiveFetches interface: existence and properties of interface object assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
-FAIL BackgroundFetchActiveFetches interface object length assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
-FAIL BackgroundFetchActiveFetches interface object name assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
-FAIL BackgroundFetchActiveFetches interface: existence and properties of interface prototype object assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
-FAIL BackgroundFetchActiveFetches interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
-FAIL BackgroundFetchActiveFetches interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
-FAIL BackgroundFetchActiveFetches interface: operation match(RequestInfo) assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
-PASS Unscopable handled correctly for match(RequestInfo) on BackgroundFetchActiveFetches
-FAIL BackgroundFetchActiveFetches interface: operation values() assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
-PASS Unscopable handled correctly for values() on BackgroundFetchActiveFetches
-FAIL BackgroundFetchActiveFetch interface: existence and properties of interface object assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
-FAIL BackgroundFetchActiveFetch interface object length assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
-FAIL BackgroundFetchActiveFetch interface object name assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
-FAIL BackgroundFetchActiveFetch interface: existence and properties of interface prototype object assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
-FAIL BackgroundFetchActiveFetch interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
-FAIL BackgroundFetchActiveFetch interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
-FAIL BackgroundFetchActiveFetch interface: attribute responseReady assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
-PASS Unscopable handled correctly for responseReady property on BackgroundFetchActiveFetch
-PASS BackgroundFetchEvent interface: existence and properties of interface object
-PASS BackgroundFetchSettledEvent interface: existence and properties of interface object
-PASS BackgroundFetchSettledFetches interface: existence and properties of interface object
-PASS BackgroundFetchSettledFetch interface: existence and properties of interface object
-PASS BackgroundFetchUpdateEvent interface: existence and properties of interface object
-PASS BackgroundFetchClickEvent interface: existence and properties of interface object
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/css/css-backgrounds/background-331-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/css/css-backgrounds/background-331-expected.txt
deleted file mode 100644
index 7ee38e7..0000000
--- a/third_party/WebKit/LayoutTests/platform/win/external/wpt/css/css-backgrounds/background-331-expected.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-This is a testharness.js-based test.
-PASS background_initial_image
-PASS background_initial_position
-PASS background_initial_size
-PASS background_initial_repeat
-PASS background_initial_attachment
-PASS background_initial_origin
-PASS background_initial_clip
-PASS background_initial_color
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/css/css-backgrounds/background-332-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/css/css-backgrounds/background-332-expected.txt
deleted file mode 100644
index 28192fd..0000000
--- a/third_party/WebKit/LayoutTests/platform/win/external/wpt/css/css-backgrounds/background-332-expected.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-This is a testharness.js-based test.
-FAIL background_specified_image assert_equals: background specified value for background-image expected "url(support/60x60-green.png)" but got "url(\"http://web-platform.test:8001/css/css-backgrounds/support/60x60-green.png\")"
-PASS background_specified_position
-FAIL background_specified_size assert_equals: background specified value for background-size expected "10em 10em" but got "160px"
-FAIL background_specified_repeat assert_equals: background specified value for background-repeat expected "round round" but got "round"
-PASS background_specified_attachment
-PASS background_specified_origin
-PASS background_specified_clip
-PASS background_specified_color
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/css/css-backgrounds/background-333-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/css/css-backgrounds/background-333-expected.txt
deleted file mode 100644
index 7ed2ae78..0000000
--- a/third_party/WebKit/LayoutTests/platform/win/external/wpt/css/css-backgrounds/background-333-expected.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-This is a testharness.js-based test.
-PASS background_specified_color_image
-PASS background_specified_color_position
-PASS background_specified_color_size
-PASS background_specified_color_repeat
-PASS background_specified_color_attachment
-PASS background_specified_color_origin
-PASS background_specified_color_clip
-PASS background_specified_color_color
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/css/css-typed-om/interfaces-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/css/css-typed-om/interfaces-expected.txt
deleted file mode 100644
index f64d713..0000000
--- a/third_party/WebKit/LayoutTests/platform/win/external/wpt/css/css-typed-om/interfaces-expected.txt
+++ /dev/null
@@ -1,355 +0,0 @@
-This is a testharness.js-based test.
-Found 333 tests; 323 PASS, 10 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS CSS Typed OM IDL test
-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(DOMString, DOMString)
-PASS Unscopable handled correctly for parse(DOMString, DOMString) on CSSStyleValue
-PASS CSSStyleValue interface: operation parseAll(DOMString, DOMString)
-PASS Unscopable handled correctly for parseAll(DOMString, DOMString) on CSSStyleValue
-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 Testing Symbol.iterator property of iterable interface StylePropertyMapReadOnly
-PASS Testing pair iterable interface StylePropertyMapReadOnly
-PASS StylePropertyMapReadOnly interface: operation get(DOMString)
-PASS Unscopable handled correctly for get(DOMString) on StylePropertyMapReadOnly
-PASS StylePropertyMapReadOnly interface: operation getAll(DOMString)
-PASS Unscopable handled correctly for getAll(DOMString) on StylePropertyMapReadOnly
-PASS StylePropertyMapReadOnly interface: operation has(DOMString)
-PASS Unscopable handled correctly for has(DOMString) on StylePropertyMapReadOnly
-PASS StylePropertyMapReadOnly interface: attribute size
-PASS Unscopable handled correctly for size property on StylePropertyMapReadOnly
-PASS StylePropertyMapReadOnly interface: operation entries()
-PASS Unscopable handled correctly for entries() on StylePropertyMapReadOnly
-PASS StylePropertyMapReadOnly interface: operation keys()
-PASS Unscopable handled correctly for keys() on StylePropertyMapReadOnly
-PASS StylePropertyMapReadOnly interface: operation values()
-PASS Unscopable handled correctly for values() on StylePropertyMapReadOnly
-PASS StylePropertyMapReadOnly interface: operation forEach(function, any)
-PASS Unscopable handled correctly for forEach(function, any) on StylePropertyMapReadOnly
-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(DOMString, [object Object],[object Object])
-PASS Unscopable handled correctly for set(DOMString, [object Object],[object Object]) on StylePropertyMap
-PASS StylePropertyMap interface: operation append(DOMString, [object Object],[object Object])
-PASS Unscopable handled correctly for append(DOMString, [object Object],[object Object]) on StylePropertyMap
-PASS StylePropertyMap interface: operation delete(DOMString)
-PASS Unscopable handled correctly for delete(DOMString) on StylePropertyMap
-PASS StylePropertyMap interface: operation clear()
-PASS Unscopable handled correctly for clear() on StylePropertyMap
-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 Testing Symbol.iterator property of iterable interface CSSUnparsedValue
-PASS Testing value iterable interface CSSUnparsedValue
-PASS CSSUnparsedValue interface: attribute length
-PASS Unscopable handled correctly for length property on CSSUnparsedValue
-FAIL CSSUnparsedValue interface: operation entries() assert_throws: calling operation with this = {} didn't throw TypeError function "function() {
-            fn.apply(obj, args);
-        }" did not throw
-PASS Unscopable handled correctly for entries() on CSSUnparsedValue
-FAIL CSSUnparsedValue interface: operation keys() assert_throws: calling operation with this = {} didn't throw TypeError function "function() {
-            fn.apply(obj, args);
-        }" did not throw
-PASS Unscopable handled correctly for keys() on CSSUnparsedValue
-FAIL CSSUnparsedValue interface: operation values() assert_throws: calling operation with this = {} didn't throw TypeError function "function() {
-            fn.apply(obj, args);
-        }" did not throw
-PASS Unscopable handled correctly for values() on CSSUnparsedValue
-PASS CSSUnparsedValue interface: operation forEach(function, any)
-PASS Unscopable handled correctly for forEach(function, any) on CSSUnparsedValue
-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 Unscopable handled correctly for variable property on CSSVariableReferenceValue
-PASS CSSVariableReferenceValue interface: attribute fallback
-PASS Unscopable handled correctly for fallback property on CSSVariableReferenceValue
-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 Unscopable handled correctly for value property on CSSKeywordValue
-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 Unscopable handled correctly for add(CSSNumberish) on CSSNumericValue
-PASS CSSNumericValue interface: operation sub(CSSNumberish)
-PASS Unscopable handled correctly for sub(CSSNumberish) on CSSNumericValue
-PASS CSSNumericValue interface: operation mul(CSSNumberish)
-PASS Unscopable handled correctly for mul(CSSNumberish) on CSSNumericValue
-PASS CSSNumericValue interface: operation div(CSSNumberish)
-PASS Unscopable handled correctly for div(CSSNumberish) on CSSNumericValue
-PASS CSSNumericValue interface: operation min(CSSNumberish)
-PASS Unscopable handled correctly for min(CSSNumberish) on CSSNumericValue
-PASS CSSNumericValue interface: operation max(CSSNumberish)
-PASS Unscopable handled correctly for max(CSSNumberish) on CSSNumericValue
-PASS CSSNumericValue interface: operation equals(CSSNumberish)
-PASS Unscopable handled correctly for equals(CSSNumberish) on CSSNumericValue
-PASS CSSNumericValue interface: operation to(DOMString)
-PASS Unscopable handled correctly for to(DOMString) on CSSNumericValue
-PASS CSSNumericValue interface: operation toSum(DOMString)
-PASS Unscopable handled correctly for toSum(DOMString) on CSSNumericValue
-PASS CSSNumericValue interface: operation type()
-PASS Unscopable handled correctly for type() on CSSNumericValue
-PASS CSSNumericValue interface: operation parse(DOMString)
-PASS Unscopable handled correctly for parse(DOMString) on CSSNumericValue
-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 Unscopable handled correctly for value property on CSSUnitValue
-PASS CSSUnitValue interface: attribute unit
-PASS Unscopable handled correctly for unit property on CSSUnitValue
-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 Unscopable handled correctly for operator property on CSSMathValue
-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 Unscopable handled correctly for values property on CSSMathSum
-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 Unscopable handled correctly for values property on CSSMathProduct
-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 Unscopable handled correctly for value property on CSSMathNegate
-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 Unscopable handled correctly for value property on CSSMathInvert
-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 Unscopable handled correctly for values property on CSSMathMin
-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
-PASS Unscopable handled correctly for values property on CSSMathMax
-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 Testing Symbol.iterator property of iterable interface CSSNumericArray
-PASS Testing value iterable interface CSSNumericArray
-PASS CSSNumericArray interface: attribute length
-PASS Unscopable handled correctly for length property on CSSNumericArray
-FAIL CSSNumericArray interface: operation entries() assert_throws: calling operation with this = {} didn't throw TypeError function "function() {
-            fn.apply(obj, args);
-        }" did not throw
-PASS Unscopable handled correctly for entries() on CSSNumericArray
-FAIL CSSNumericArray interface: operation keys() assert_throws: calling operation with this = {} didn't throw TypeError function "function() {
-            fn.apply(obj, args);
-        }" did not throw
-PASS Unscopable handled correctly for keys() on CSSNumericArray
-FAIL CSSNumericArray interface: operation values() assert_throws: calling operation with this = {} didn't throw TypeError function "function() {
-            fn.apply(obj, args);
-        }" did not throw
-PASS Unscopable handled correctly for values() on CSSNumericArray
-PASS CSSNumericArray interface: operation forEach(function, any)
-PASS Unscopable handled correctly for forEach(function, any) on CSSNumericArray
-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 Testing Symbol.iterator property of iterable interface CSSTransformValue
-PASS Testing value iterable interface CSSTransformValue
-PASS CSSTransformValue interface: attribute length
-PASS Unscopable handled correctly for length property on CSSTransformValue
-PASS CSSTransformValue interface: attribute is2D
-PASS Unscopable handled correctly for is2D property on CSSTransformValue
-PASS CSSTransformValue interface: operation toMatrix()
-PASS Unscopable handled correctly for toMatrix() on CSSTransformValue
-FAIL CSSTransformValue interface: operation entries() assert_throws: calling operation with this = {} didn't throw TypeError function "function() {
-            fn.apply(obj, args);
-        }" did not throw
-PASS Unscopable handled correctly for entries() on CSSTransformValue
-FAIL CSSTransformValue interface: operation keys() assert_throws: calling operation with this = {} didn't throw TypeError function "function() {
-            fn.apply(obj, args);
-        }" did not throw
-PASS Unscopable handled correctly for keys() on CSSTransformValue
-FAIL CSSTransformValue interface: operation values() assert_throws: calling operation with this = {} didn't throw TypeError function "function() {
-            fn.apply(obj, args);
-        }" did not throw
-PASS Unscopable handled correctly for values() on CSSTransformValue
-PASS CSSTransformValue interface: operation forEach(function, any)
-PASS Unscopable handled correctly for forEach(function, any) on CSSTransformValue
-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 Unscopable handled correctly for is2D property on CSSTransformComponent
-PASS CSSTransformComponent interface: operation toMatrix()
-PASS Unscopable handled correctly for toMatrix() on CSSTransformComponent
-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 Unscopable handled correctly for x property on CSSTranslate
-PASS CSSTranslate interface: attribute y
-PASS Unscopable handled correctly for y property on CSSTranslate
-PASS CSSTranslate interface: attribute z
-PASS Unscopable handled correctly for z property on CSSTranslate
-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 Unscopable handled correctly for x property on CSSRotate
-PASS CSSRotate interface: attribute y
-PASS Unscopable handled correctly for y property on CSSRotate
-PASS CSSRotate interface: attribute z
-PASS Unscopable handled correctly for z property on CSSRotate
-PASS CSSRotate interface: attribute angle
-PASS Unscopable handled correctly for angle property on CSSRotate
-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 Unscopable handled correctly for x property on CSSScale
-PASS CSSScale interface: attribute y
-PASS Unscopable handled correctly for y property on CSSScale
-PASS CSSScale interface: attribute z
-PASS Unscopable handled correctly for z property on CSSScale
-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 Unscopable handled correctly for ax property on CSSSkew
-PASS CSSSkew interface: attribute ay
-PASS Unscopable handled correctly for ay property on CSSSkew
-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 Unscopable handled correctly for ax property on CSSSkewX
-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 Unscopable handled correctly for ay property on CSSSkewY
-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 Unscopable handled correctly for length property on CSSPerspective
-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 Unscopable handled correctly for matrix property on CSSMatrixComponent
-PASS CSSPositionValue interface: existence and properties of interface object
-PASS CSSPositionValue interface object length
-PASS CSSPositionValue interface object name
-PASS CSSPositionValue interface: existence and properties of interface prototype object
-PASS CSSPositionValue interface: existence and properties of interface prototype object's "constructor" property
-PASS CSSPositionValue interface: existence and properties of interface prototype object's @@unscopables property
-PASS CSSPositionValue interface: attribute x
-PASS Unscopable handled correctly for x property on CSSPositionValue
-PASS CSSPositionValue interface: attribute y
-PASS Unscopable handled correctly for y property on CSSPositionValue
-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
-PASS Element interface: operation computedStyleMap()
-PASS Unscopable handled correctly for computedStyleMap() on Element
-PASS CSSStyleRule interface: attribute styleMap
-PASS Unscopable handled correctly for styleMap property on CSSStyleRule
-FAIL ElementCSSInlineStyle interface: attribute attributeStyleMap assert_own_property: self does not have own property "ElementCSSInlineStyle" expected property "ElementCSSInlineStyle" missing
-PASS Unscopable handled correctly for attributeStyleMap property on ElementCSSInlineStyle
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/css/cssom-view/interfaces-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/css/cssom-view/interfaces-expected.txt
deleted file mode 100644
index 3514a3c4..0000000
--- a/third_party/WebKit/LayoutTests/platform/win/external/wpt/css/cssom-view/interfaces-expected.txt
+++ /dev/null
@@ -1,389 +0,0 @@
-This is a testharness.js-based test.
-Found 385 tests; 310 PASS, 75 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS Test driver
-PASS HTMLElement interface: attribute offsetParent
-PASS Unscopable handled correctly for offsetParent property on HTMLElement
-PASS HTMLElement interface: attribute offsetTop
-PASS Unscopable handled correctly for offsetTop property on HTMLElement
-PASS HTMLElement interface: attribute offsetLeft
-PASS Unscopable handled correctly for offsetLeft property on HTMLElement
-PASS HTMLElement interface: attribute offsetWidth
-PASS Unscopable handled correctly for offsetWidth property on HTMLElement
-PASS HTMLElement interface: attribute offsetHeight
-PASS Unscopable handled correctly for offsetHeight property on HTMLElement
-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([object Object],[object Object])" with the proper type
-PASS Element interface: calling scrollIntoView([object Object],[object Object]) on document.createElement('div') with too few arguments must throw TypeError
-PASS Element interface: document.createElement('div') must inherit property "scroll(ScrollToOptions)" with the proper type
-PASS Element interface: calling scroll(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(ScrollToOptions)" with the proper type
-PASS Element interface: calling scrollTo(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(ScrollToOptions)" with the proper type
-PASS Element interface: calling scrollBy(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(BoxQuadOptions)" with the proper type assert_inherits: property "getBoxQuads" not found in prototype chain
-FAIL Element interface: calling getBoxQuads(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, ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertQuadFromNode" not found in prototype chain
-FAIL Element interface: calling convertQuadFromNode(DOMQuadInit, GeometryNode, 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, ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertRectFromNode" not found in prototype chain
-FAIL Element interface: calling convertRectFromNode(DOMRectReadOnly, GeometryNode, 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, ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertPointFromNode" not found in prototype chain
-FAIL Element interface: calling convertPointFromNode(DOMPointInit, GeometryNode, 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 Unscopable handled correctly for x property on HTMLImageElement
-PASS HTMLImageElement interface: attribute y
-PASS Unscopable handled correctly for y property on HTMLImageElement
-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([object Object],[object Object])" with the proper type
-PASS Element interface: calling scrollIntoView([object Object],[object Object]) on document.createElement('img') with too few arguments must throw TypeError
-PASS Element interface: document.createElement('img') must inherit property "scroll(ScrollToOptions)" with the proper type
-PASS Element interface: calling scroll(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(ScrollToOptions)" with the proper type
-PASS Element interface: calling scrollTo(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(ScrollToOptions)" with the proper type
-PASS Element interface: calling scrollBy(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(BoxQuadOptions)" with the proper type assert_inherits: property "getBoxQuads" not found in prototype chain
-FAIL Element interface: calling getBoxQuads(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, ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertQuadFromNode" not found in prototype chain
-FAIL Element interface: calling convertQuadFromNode(DOMQuadInit, GeometryNode, 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, ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertRectFromNode" not found in prototype chain
-FAIL Element interface: calling convertRectFromNode(DOMRectReadOnly, GeometryNode, 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, ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertPointFromNode" not found in prototype chain
-FAIL Element interface: calling convertPointFromNode(DOMPointInit, GeometryNode, 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 Unscopable handled correctly for matchMedia(CSSOMString) on Window
-PASS Window interface: attribute screen
-PASS Unscopable handled correctly for screen property on Window
-PASS Window interface: operation moveTo(long, long)
-PASS Unscopable handled correctly for moveTo(long, long) on Window
-PASS Window interface: operation moveBy(long, long)
-PASS Unscopable handled correctly for moveBy(long, long) on Window
-PASS Window interface: operation resizeTo(long, long)
-PASS Unscopable handled correctly for resizeTo(long, long) on Window
-PASS Window interface: operation resizeBy(long, long)
-PASS Unscopable handled correctly for resizeBy(long, long) on Window
-PASS Window interface: attribute innerWidth
-PASS Unscopable handled correctly for innerWidth property on Window
-PASS Window interface: attribute innerHeight
-PASS Unscopable handled correctly for innerHeight property on Window
-PASS Window interface: attribute scrollX
-PASS Unscopable handled correctly for scrollX property on Window
-PASS Window interface: attribute pageXOffset
-PASS Unscopable handled correctly for pageXOffset property on Window
-PASS Window interface: attribute scrollY
-PASS Unscopable handled correctly for scrollY property on Window
-PASS Window interface: attribute pageYOffset
-PASS Unscopable handled correctly for pageYOffset property on Window
-FAIL Window interface: operation scroll(ScrollToOptions) assert_equals: property has wrong .length expected 0 but got 2
-PASS Unscopable handled correctly for scroll(ScrollToOptions) on Window
-FAIL Window interface: operation scroll(unrestricted double, unrestricted double) assert_equals: property has wrong .length expected 0 but got 2
-PASS Unscopable handled correctly for scroll(unrestricted double, unrestricted double) on Window
-FAIL Window interface: operation scrollTo(ScrollToOptions) assert_equals: property has wrong .length expected 0 but got 2
-PASS Unscopable handled correctly for scrollTo(ScrollToOptions) on Window
-FAIL Window interface: operation scrollTo(unrestricted double, unrestricted double) assert_equals: property has wrong .length expected 0 but got 2
-PASS Unscopable handled correctly for scrollTo(unrestricted double, unrestricted double) on Window
-FAIL Window interface: operation scrollBy(ScrollToOptions) assert_equals: property has wrong .length expected 0 but got 2
-PASS Unscopable handled correctly for scrollBy(ScrollToOptions) on Window
-FAIL Window interface: operation scrollBy(unrestricted double, unrestricted double) assert_equals: property has wrong .length expected 0 but got 2
-PASS Unscopable handled correctly for scrollBy(unrestricted double, unrestricted double) on Window
-PASS Window interface: attribute screenX
-PASS Unscopable handled correctly for screenX property on Window
-PASS Window interface: attribute screenY
-PASS Unscopable handled correctly for screenY property on Window
-PASS Window interface: attribute outerWidth
-PASS Unscopable handled correctly for outerWidth property on Window
-PASS Window interface: attribute outerHeight
-PASS Unscopable handled correctly for outerHeight property on Window
-PASS Window interface: attribute devicePixelRatio
-PASS Unscopable handled correctly for devicePixelRatio property on Window
-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(ScrollToOptions)" with the proper type
-PASS Window interface: calling scroll(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(ScrollToOptions)" with the proper type
-PASS Window interface: calling scrollTo(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(ScrollToOptions)" with the proper type
-PASS Window interface: calling scrollBy(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 "screenY" 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 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 WorkerNavigator interface: existence and properties of interface object
-PASS WorkerLocation interface: existence and properties of interface object
-PASS Document interface: operation elementFromPoint(double, double)
-PASS Unscopable handled correctly for elementFromPoint(double, double) on Document
-PASS Document interface: operation elementsFromPoint(double, double)
-PASS Unscopable handled correctly for elementsFromPoint(double, double) on Document
-FAIL Document interface: operation caretPositionFromPoint(double, double) assert_own_property: interface prototype object missing non-static operation expected property "caretPositionFromPoint" missing
-PASS Unscopable handled correctly for caretPositionFromPoint(double, double) on Document
-PASS Document interface: attribute scrollingElement
-PASS Unscopable handled correctly for scrollingElement property on Document
-FAIL Document interface: operation getBoxQuads(BoxQuadOptions) assert_own_property: interface prototype object missing non-static operation expected property "getBoxQuads" missing
-PASS Unscopable handled correctly for getBoxQuads(BoxQuadOptions) on Document
-FAIL Document interface: operation convertQuadFromNode(DOMQuadInit, GeometryNode, ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertQuadFromNode" missing
-PASS Unscopable handled correctly for convertQuadFromNode(DOMQuadInit, GeometryNode, ConvertCoordinateOptions) on Document
-FAIL Document interface: operation convertRectFromNode(DOMRectReadOnly, GeometryNode, ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertRectFromNode" missing
-PASS Unscopable handled correctly for convertRectFromNode(DOMRectReadOnly, GeometryNode, ConvertCoordinateOptions) on Document
-FAIL Document interface: operation convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertPointFromNode" missing
-PASS Unscopable handled correctly for convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions) on Document
-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(BoxQuadOptions)" with the proper type assert_inherits: property "getBoxQuads" not found in prototype chain
-FAIL Document interface: calling getBoxQuads(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, ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertQuadFromNode" not found in prototype chain
-FAIL Document interface: calling convertQuadFromNode(DOMQuadInit, GeometryNode, 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, ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertRectFromNode" not found in prototype chain
-FAIL Document interface: calling convertRectFromNode(DOMRectReadOnly, GeometryNode, 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, ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertPointFromNode" not found in prototype chain
-FAIL Document interface: calling convertPointFromNode(DOMPointInit, GeometryNode, 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 Unscopable handled correctly for getClientRects() on Element
-PASS Element interface: operation getBoundingClientRect()
-PASS Unscopable handled correctly for getBoundingClientRect() on Element
-PASS Element interface: operation scrollIntoView([object Object],[object Object])
-PASS Unscopable handled correctly for scrollIntoView([object Object],[object Object]) on Element
-PASS Element interface: operation scroll(ScrollToOptions)
-PASS Unscopable handled correctly for scroll(ScrollToOptions) on Element
-PASS Element interface: operation scroll(unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for scroll(unrestricted double, unrestricted double) on Element
-PASS Element interface: operation scrollTo(ScrollToOptions)
-PASS Unscopable handled correctly for scrollTo(ScrollToOptions) on Element
-PASS Element interface: operation scrollTo(unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for scrollTo(unrestricted double, unrestricted double) on Element
-PASS Element interface: operation scrollBy(ScrollToOptions)
-PASS Unscopable handled correctly for scrollBy(ScrollToOptions) on Element
-PASS Element interface: operation scrollBy(unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for scrollBy(unrestricted double, unrestricted double) on Element
-PASS Element interface: attribute scrollTop
-PASS Unscopable handled correctly for scrollTop property on Element
-PASS Element interface: attribute scrollLeft
-PASS Unscopable handled correctly for scrollLeft property on Element
-PASS Element interface: attribute scrollWidth
-PASS Unscopable handled correctly for scrollWidth property on Element
-PASS Element interface: attribute scrollHeight
-PASS Unscopable handled correctly for scrollHeight property on Element
-PASS Element interface: attribute clientTop
-PASS Unscopable handled correctly for clientTop property on Element
-PASS Element interface: attribute clientLeft
-PASS Unscopable handled correctly for clientLeft property on Element
-PASS Element interface: attribute clientWidth
-PASS Unscopable handled correctly for clientWidth property on Element
-PASS Element interface: attribute clientHeight
-PASS Unscopable handled correctly for clientHeight property on Element
-FAIL Element interface: operation getBoxQuads(BoxQuadOptions) assert_own_property: interface prototype object missing non-static operation expected property "getBoxQuads" missing
-PASS Unscopable handled correctly for getBoxQuads(BoxQuadOptions) on Element
-FAIL Element interface: operation convertQuadFromNode(DOMQuadInit, GeometryNode, ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertQuadFromNode" missing
-PASS Unscopable handled correctly for convertQuadFromNode(DOMQuadInit, GeometryNode, ConvertCoordinateOptions) on Element
-FAIL Element interface: operation convertRectFromNode(DOMRectReadOnly, GeometryNode, ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertRectFromNode" missing
-PASS Unscopable handled correctly for convertRectFromNode(DOMRectReadOnly, GeometryNode, ConvertCoordinateOptions) on Element
-FAIL Element interface: operation convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertPointFromNode" missing
-PASS Unscopable handled correctly for convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions) on Element
-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([object Object],[object Object])" with the proper type
-PASS Element interface: calling scrollIntoView([object Object],[object Object]) on document.createElementNS('x', 'y') with too few arguments must throw TypeError
-PASS Element interface: document.createElementNS('x', 'y') must inherit property "scroll(ScrollToOptions)" with the proper type
-PASS Element interface: calling scroll(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(ScrollToOptions)" with the proper type
-PASS Element interface: calling scrollTo(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(ScrollToOptions)" with the proper type
-PASS Element interface: calling scrollBy(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(BoxQuadOptions)" with the proper type assert_inherits: property "getBoxQuads" not found in prototype chain
-FAIL Element interface: calling getBoxQuads(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, ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertQuadFromNode" not found in prototype chain
-FAIL Element interface: calling convertQuadFromNode(DOMQuadInit, GeometryNode, 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, ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertRectFromNode" not found in prototype chain
-FAIL Element interface: calling convertRectFromNode(DOMRectReadOnly, GeometryNode, 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, ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertPointFromNode" not found in prototype chain
-FAIL Element interface: calling convertPointFromNode(DOMPointInit, GeometryNode, 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(BoxQuadOptions) assert_own_property: interface prototype object missing non-static operation expected property "getBoxQuads" missing
-PASS Unscopable handled correctly for getBoxQuads(BoxQuadOptions) on Text
-FAIL Text interface: operation convertQuadFromNode(DOMQuadInit, GeometryNode, ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertQuadFromNode" missing
-PASS Unscopable handled correctly for convertQuadFromNode(DOMQuadInit, GeometryNode, ConvertCoordinateOptions) on Text
-FAIL Text interface: operation convertRectFromNode(DOMRectReadOnly, GeometryNode, ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertRectFromNode" missing
-PASS Unscopable handled correctly for convertRectFromNode(DOMRectReadOnly, GeometryNode, ConvertCoordinateOptions) on Text
-FAIL Text interface: operation convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertPointFromNode" missing
-PASS Unscopable handled correctly for convertPointFromNode(DOMPointInit, GeometryNode, ConvertCoordinateOptions) on Text
-FAIL Text interface: document.createTextNode('x') must inherit property "getBoxQuads(BoxQuadOptions)" with the proper type assert_inherits: property "getBoxQuads" not found in prototype chain
-FAIL Text interface: calling getBoxQuads(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, ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertQuadFromNode" not found in prototype chain
-FAIL Text interface: calling convertQuadFromNode(DOMQuadInit, GeometryNode, 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, ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertRectFromNode" not found in prototype chain
-FAIL Text interface: calling convertRectFromNode(DOMRectReadOnly, GeometryNode, 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, ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertPointFromNode" not found in prototype chain
-FAIL Text interface: calling convertPointFromNode(DOMPointInit, GeometryNode, 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 Unscopable handled correctly for getClientRects() on Range
-PASS Range interface: operation getBoundingClientRect()
-PASS Unscopable handled correctly for getBoundingClientRect() on Range
-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
-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 Unscopable handled correctly for media property on MediaQueryList
-PASS MediaQueryList interface: attribute matches
-PASS Unscopable handled correctly for matches property on MediaQueryList
-PASS MediaQueryList interface: operation addListener(EventListener)
-PASS Unscopable handled correctly for addListener(EventListener) on MediaQueryList
-PASS MediaQueryList interface: operation removeListener(EventListener)
-PASS Unscopable handled correctly for removeListener(EventListener) on MediaQueryList
-PASS MediaQueryList interface: attribute onchange
-PASS Unscopable handled correctly for onchange property on MediaQueryList
-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 Unscopable handled correctly for media property on MediaQueryListEvent
-PASS MediaQueryListEvent interface: attribute matches
-PASS Unscopable handled correctly for matches property on MediaQueryListEvent
-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 Unscopable handled correctly for availWidth property on Screen
-PASS Screen interface: attribute availHeight
-PASS Unscopable handled correctly for availHeight property on Screen
-PASS Screen interface: attribute width
-PASS Unscopable handled correctly for width property on Screen
-PASS Screen interface: attribute height
-PASS Unscopable handled correctly for height property on Screen
-PASS Screen interface: attribute colorDepth
-PASS Unscopable handled correctly for colorDepth property on Screen
-PASS Screen interface: attribute pixelDepth
-PASS Unscopable handled correctly for pixelDepth property on Screen
-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
-PASS Unscopable handled correctly for offsetNode property on CaretPosition
-FAIL CaretPosition interface: attribute offset assert_own_property: self does not have own property "CaretPosition" expected property "CaretPosition" missing
-PASS Unscopable handled correctly for offset property on CaretPosition
-FAIL CaretPosition interface: operation getClientRect() assert_own_property: self does not have own property "CaretPosition" expected property "CaretPosition" missing
-PASS Unscopable handled correctly for getClientRect() on CaretPosition
-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"
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/css/cssom/interfaces-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/css/cssom/interfaces-expected.txt
deleted file mode 100644
index 6c6c499..0000000
--- a/third_party/WebKit/LayoutTests/platform/win/external/wpt/css/cssom/interfaces-expected.txt
+++ /dev/null
@@ -1,474 +0,0 @@
-This is a testharness.js-based test.
-Found 470 tests; 385 PASS, 85 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS Test driver
-PASS HTMLElement interface: attribute style
-PASS Unscopable handled correctly for style property on HTMLElement
-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 Unscopable handled correctly for sheet property on HTMLLinkElement
-PASS HTMLStyleElement interface: attribute sheet
-PASS Unscopable handled correctly for sheet property on HTMLStyleElement
-PASS Window interface: operation getComputedStyle(Element, CSSOMString)
-PASS Unscopable handled correctly for getComputedStyle(Element, CSSOMString) on Window
-PASS Window interface: window must inherit property "getComputedStyle(Element, CSSOMString)" with the proper type
-PASS Window interface: calling getComputedStyle(Element, CSSOMString) on window with too few arguments must throw TypeError
-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 WorkerNavigator interface: existence and properties of interface object
-PASS WorkerLocation interface: existence and properties of interface object
-PASS Document interface: attribute styleSheets
-PASS Unscopable handled correctly for styleSheets property on Document
-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 ProcessingInstruction interface: attribute sheet
-PASS Unscopable handled correctly for sheet property on ProcessingInstruction
-PASS ProcessingInstruction interface: xmlss_pi must inherit property "sheet" with the proper type
-PASS SVGElement interface: attribute style
-PASS Unscopable handled correctly for style property on SVGElement
-PASS SVGElement interface: svg_element must inherit property "style" with the proper type
-PASS MediaList interface: existence and properties of interface object
-PASS MediaList interface object length
-PASS MediaList interface object name
-FAIL MediaList interface: existence and properties of interface prototype object assert_equals: prototype of MediaList.prototype is not Array.prototype expected [] but got object "[object 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 Unscopable handled correctly for mediaText property on MediaList
-PASS MediaList interface: stringifier
-PASS MediaList interface: attribute length
-PASS Unscopable handled correctly for length property on MediaList
-PASS MediaList interface: operation item(unsigned long)
-PASS Unscopable handled correctly for item(unsigned long) on MediaList
-PASS MediaList interface: operation appendMedium(CSSOMString)
-PASS Unscopable handled correctly for appendMedium(CSSOMString) on MediaList
-PASS MediaList interface: operation deleteMedium(CSSOMString)
-PASS Unscopable handled correctly for deleteMedium(CSSOMString) on MediaList
-PASS MediaList must be primary interface of style_element.sheet.media
-PASS Stringification of style_element.sheet.media
-PASS MediaList interface: style_element.sheet.media must inherit property "mediaText" with the proper type
-PASS MediaList interface: style_element.sheet.media must inherit property "length" with the proper type
-PASS MediaList interface: style_element.sheet.media must inherit property "item(unsigned long)" with the proper type
-PASS MediaList interface: calling item(unsigned long) on style_element.sheet.media with too few arguments must throw TypeError
-PASS MediaList interface: style_element.sheet.media must inherit property "appendMedium(CSSOMString)" with the proper type
-PASS MediaList interface: calling appendMedium(CSSOMString) on style_element.sheet.media with too few arguments must throw TypeError
-PASS MediaList interface: style_element.sheet.media must inherit property "deleteMedium(CSSOMString)" with the proper type
-PASS MediaList interface: calling deleteMedium(CSSOMString) on style_element.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 Unscopable handled correctly for type property on StyleSheet
-PASS StyleSheet interface: attribute href
-PASS Unscopable handled correctly for href property on StyleSheet
-PASS StyleSheet interface: attribute ownerNode
-PASS Unscopable handled correctly for ownerNode property on StyleSheet
-PASS StyleSheet interface: attribute parentStyleSheet
-PASS Unscopable handled correctly for parentStyleSheet property on StyleSheet
-PASS StyleSheet interface: attribute title
-PASS Unscopable handled correctly for title property on StyleSheet
-PASS StyleSheet interface: attribute media
-PASS Unscopable handled correctly for media property on StyleSheet
-PASS StyleSheet interface: attribute disabled
-PASS Unscopable handled correctly for disabled property on StyleSheet
-PASS CSSStyleSheet interface: existence and properties of interface object
-FAIL CSSStyleSheet interface object length assert_equals: wrong value for CSSStyleSheet.length expected 0 but got 1
-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 Unscopable handled correctly for ownerRule property on CSSStyleSheet
-PASS CSSStyleSheet interface: attribute cssRules
-PASS Unscopable handled correctly for cssRules property on CSSStyleSheet
-PASS CSSStyleSheet interface: operation insertRule(CSSOMString, unsigned long)
-PASS Unscopable handled correctly for insertRule(CSSOMString, unsigned long) on CSSStyleSheet
-PASS CSSStyleSheet interface: operation deleteRule(unsigned long)
-PASS Unscopable handled correctly for deleteRule(unsigned long) on CSSStyleSheet
-PASS CSSStyleSheet must be primary interface of style_element.sheet
-PASS Stringification of style_element.sheet
-PASS CSSStyleSheet interface: style_element.sheet must inherit property "ownerRule" with the proper type
-PASS CSSStyleSheet interface: style_element.sheet must inherit property "cssRules" with the proper type
-PASS CSSStyleSheet interface: style_element.sheet must inherit property "insertRule(CSSOMString, unsigned long)" with the proper type
-PASS CSSStyleSheet interface: calling insertRule(CSSOMString, unsigned long) on style_element.sheet with too few arguments must throw TypeError
-PASS CSSStyleSheet interface: style_element.sheet must inherit property "deleteRule(unsigned long)" with the proper type
-PASS CSSStyleSheet interface: calling deleteRule(unsigned long) on style_element.sheet with too few arguments must throw TypeError
-PASS StyleSheet interface: style_element.sheet must inherit property "type" with the proper type
-PASS StyleSheet interface: style_element.sheet must inherit property "href" with the proper type
-PASS StyleSheet interface: style_element.sheet must inherit property "ownerNode" with the proper type
-PASS StyleSheet interface: style_element.sheet must inherit property "parentStyleSheet" with the proper type
-PASS StyleSheet interface: style_element.sheet must inherit property "title" with the proper type
-PASS StyleSheet interface: style_element.sheet must inherit property "media" with the proper type
-PASS StyleSheet interface: style_element.sheet must inherit property "disabled" with the proper type
-PASS StyleSheetList interface: existence and properties of interface object
-FAIL StyleSheetList interface object length assert_equals: wrong value for StyleSheetList.length expected 0 but got 1
-PASS StyleSheetList interface object name
-FAIL StyleSheetList interface: existence and properties of interface prototype object assert_equals: prototype of StyleSheetList.prototype is not Array.prototype expected [] but got object "[object 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 Unscopable handled correctly for item(unsigned long) on StyleSheetList
-PASS StyleSheetList interface: attribute length
-PASS Unscopable handled correctly for length property on StyleSheetList
-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
-FAIL CSSRuleList interface: existence and properties of interface prototype object assert_equals: prototype of CSSRuleList.prototype is not Array.prototype expected [] but got object "[object 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 Unscopable handled correctly for item(unsigned long) on CSSRuleList
-PASS CSSRuleList interface: attribute length
-PASS Unscopable handled correctly for length property on CSSRuleList
-PASS CSSRuleList must be primary interface of style_element.sheet.cssRules
-PASS Stringification of style_element.sheet.cssRules
-PASS CSSRuleList interface: style_element.sheet.cssRules must inherit property "item(unsigned long)" with the proper type
-PASS CSSRuleList interface: calling item(unsigned long) on style_element.sheet.cssRules with too few arguments must throw TypeError
-PASS CSSRuleList interface: style_element.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: 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 CSSRule interface: attribute type
-PASS Unscopable handled correctly for type property on CSSRule
-PASS CSSRule interface: attribute cssText
-PASS Unscopable handled correctly for cssText property on CSSRule
-PASS CSSRule interface: attribute parentRule
-PASS Unscopable handled correctly for parentRule property on CSSRule
-PASS CSSRule interface: attribute parentStyleSheet
-PASS Unscopable handled correctly for parentStyleSheet property on CSSRule
-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 Unscopable handled correctly for selectorText property on CSSStyleRule
-PASS CSSStyleRule interface: attribute style
-PASS Unscopable handled correctly for style property on CSSStyleRule
-PASS CSSStyleRule must be primary interface of style_element.sheet.cssRules[4]
-PASS Stringification of style_element.sheet.cssRules[4]
-PASS CSSStyleRule interface: style_element.sheet.cssRules[4] must inherit property "selectorText" with the proper type
-PASS CSSStyleRule interface: style_element.sheet.cssRules[4] must inherit property "style" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[4] must inherit property "STYLE_RULE" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[4] must inherit property "CHARSET_RULE" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[4] must inherit property "IMPORT_RULE" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[4] must inherit property "MEDIA_RULE" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[4] must inherit property "FONT_FACE_RULE" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[4] must inherit property "PAGE_RULE" with the proper type
-FAIL CSSRule interface: style_element.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: style_element.sheet.cssRules[4] must inherit property "NAMESPACE_RULE" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[4] must inherit property "type" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[4] must inherit property "cssText" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[4] must inherit property "parentRule" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[4] must inherit property "parentStyleSheet" 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 Unscopable handled correctly for href property on CSSImportRule
-PASS CSSImportRule interface: attribute media
-PASS Unscopable handled correctly for media property on CSSImportRule
-PASS CSSImportRule interface: attribute styleSheet
-PASS Unscopable handled correctly for styleSheet property on CSSImportRule
-PASS CSSImportRule must be primary interface of style_element.sheet.cssRules[0]
-PASS Stringification of style_element.sheet.cssRules[0]
-PASS CSSImportRule interface: style_element.sheet.cssRules[0] must inherit property "href" with the proper type
-PASS CSSImportRule interface: style_element.sheet.cssRules[0] must inherit property "media" with the proper type
-PASS CSSImportRule interface: style_element.sheet.cssRules[0] must inherit property "styleSheet" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[0] must inherit property "STYLE_RULE" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[0] must inherit property "CHARSET_RULE" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[0] must inherit property "IMPORT_RULE" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[0] must inherit property "MEDIA_RULE" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[0] must inherit property "FONT_FACE_RULE" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[0] must inherit property "PAGE_RULE" with the proper type
-FAIL CSSRule interface: style_element.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: style_element.sheet.cssRules[0] must inherit property "NAMESPACE_RULE" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[0] must inherit property "type" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[0] must inherit property "cssText" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[0] must inherit property "parentRule" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[0] must inherit property "parentStyleSheet" 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
-PASS Unscopable handled correctly for cssRules property on CSSGroupingRule
-FAIL CSSGroupingRule interface: operation insertRule(CSSOMString, unsigned long) assert_equals: property has wrong .length expected 1 but got 2
-PASS Unscopable handled correctly for insertRule(CSSOMString, unsigned long) on CSSGroupingRule
-PASS CSSGroupingRule interface: operation deleteRule(unsigned long)
-PASS Unscopable handled correctly for deleteRule(unsigned long) on CSSGroupingRule
-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 Unscopable handled correctly for selectorText property on CSSPageRule
-PASS CSSPageRule interface: attribute style
-PASS Unscopable handled correctly for style property on CSSPageRule
-PASS CSSPageRule must be primary interface of style_element.sheet.cssRules[2]
-PASS Stringification of style_element.sheet.cssRules[2]
-PASS CSSPageRule interface: style_element.sheet.cssRules[2] must inherit property "selectorText" with the proper type
-PASS CSSPageRule interface: style_element.sheet.cssRules[2] must inherit property "style" with the proper type
-FAIL CSSGroupingRule interface: style_element.sheet.cssRules[2] must inherit property "cssRules" with the proper type assert_inherits: property "cssRules" not found in prototype chain
-FAIL CSSGroupingRule interface: style_element.sheet.cssRules[2] must inherit property "insertRule(CSSOMString, unsigned long)" with the proper type assert_inherits: property "insertRule" not found in prototype chain
-FAIL CSSGroupingRule interface: calling insertRule(CSSOMString, unsigned long) on style_element.sheet.cssRules[2] with too few arguments must throw TypeError assert_inherits: property "insertRule" not found in prototype chain
-FAIL CSSGroupingRule interface: style_element.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 style_element.sheet.cssRules[2] with too few arguments must throw TypeError assert_inherits: property "deleteRule" not found in prototype chain
-PASS CSSRule interface: style_element.sheet.cssRules[2] must inherit property "STYLE_RULE" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[2] must inherit property "CHARSET_RULE" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[2] must inherit property "IMPORT_RULE" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[2] must inherit property "MEDIA_RULE" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[2] must inherit property "FONT_FACE_RULE" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[2] must inherit property "PAGE_RULE" with the proper type
-FAIL CSSRule interface: style_element.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: style_element.sheet.cssRules[2] must inherit property "NAMESPACE_RULE" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[2] must inherit property "type" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[2] must inherit property "cssText" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[2] must inherit property "parentRule" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[2] must inherit property "parentStyleSheet" 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
-PASS Unscopable handled correctly for name property on CSSMarginRule
-FAIL CSSMarginRule interface: attribute style assert_own_property: self does not have own property "CSSMarginRule" expected property "CSSMarginRule" missing
-PASS Unscopable handled correctly for style property on CSSMarginRule
-FAIL CSSMarginRule must be primary interface of style_element.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 style_element.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: style_element.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: style_element.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: style_element.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: style_element.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: style_element.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: style_element.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: style_element.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: style_element.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: style_element.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: style_element.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"
-FAIL CSSRule interface: style_element.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: style_element.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: style_element.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: style_element.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"
-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 Unscopable handled correctly for namespaceURI property on CSSNamespaceRule
-PASS CSSNamespaceRule interface: attribute prefix
-PASS Unscopable handled correctly for prefix property on CSSNamespaceRule
-PASS CSSNamespaceRule must be primary interface of style_element.sheet.cssRules[1]
-PASS Stringification of style_element.sheet.cssRules[1]
-PASS CSSNamespaceRule interface: style_element.sheet.cssRules[1] must inherit property "namespaceURI" with the proper type
-PASS CSSNamespaceRule interface: style_element.sheet.cssRules[1] must inherit property "prefix" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[1] must inherit property "STYLE_RULE" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[1] must inherit property "CHARSET_RULE" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[1] must inherit property "IMPORT_RULE" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[1] must inherit property "MEDIA_RULE" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[1] must inherit property "FONT_FACE_RULE" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[1] must inherit property "PAGE_RULE" with the proper type
-FAIL CSSRule interface: style_element.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: style_element.sheet.cssRules[1] must inherit property "NAMESPACE_RULE" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[1] must inherit property "type" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[1] must inherit property "cssText" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[1] must inherit property "parentRule" with the proper type
-PASS CSSRule interface: style_element.sheet.cssRules[1] must inherit property "parentStyleSheet" 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 Unscopable handled correctly for cssText property on CSSStyleDeclaration
-PASS CSSStyleDeclaration interface: attribute length
-PASS Unscopable handled correctly for length property on CSSStyleDeclaration
-PASS CSSStyleDeclaration interface: operation item(unsigned long)
-PASS Unscopable handled correctly for item(unsigned long) on CSSStyleDeclaration
-PASS CSSStyleDeclaration interface: operation getPropertyValue(CSSOMString)
-PASS Unscopable handled correctly for getPropertyValue(CSSOMString) on CSSStyleDeclaration
-PASS CSSStyleDeclaration interface: operation getPropertyPriority(CSSOMString)
-PASS Unscopable handled correctly for getPropertyPriority(CSSOMString) on CSSStyleDeclaration
-PASS CSSStyleDeclaration interface: operation setProperty(CSSOMString, CSSOMString, CSSOMString)
-PASS Unscopable handled correctly for setProperty(CSSOMString, CSSOMString, CSSOMString) on CSSStyleDeclaration
-FAIL CSSStyleDeclaration interface: operation setPropertyValue(CSSOMString, CSSOMString) assert_own_property: interface prototype object missing non-static operation expected property "setPropertyValue" missing
-PASS Unscopable handled correctly for setPropertyValue(CSSOMString, CSSOMString) on CSSStyleDeclaration
-FAIL CSSStyleDeclaration interface: operation setPropertyPriority(CSSOMString, CSSOMString) assert_own_property: interface prototype object missing non-static operation expected property "setPropertyPriority" missing
-PASS Unscopable handled correctly for setPropertyPriority(CSSOMString, CSSOMString) on CSSStyleDeclaration
-PASS CSSStyleDeclaration interface: operation removeProperty(CSSOMString)
-PASS Unscopable handled correctly for removeProperty(CSSOMString) on CSSStyleDeclaration
-PASS CSSStyleDeclaration interface: attribute parentRule
-PASS Unscopable handled correctly for parentRule property on CSSStyleDeclaration
-PASS CSSStyleDeclaration interface: attribute cssFloat
-PASS Unscopable handled correctly for cssFloat property on CSSStyleDeclaration
-PASS CSSStyleDeclaration must be primary interface of style_element.sheet.cssRules[4].style
-PASS Stringification of style_element.sheet.cssRules[4].style
-PASS CSSStyleDeclaration interface: style_element.sheet.cssRules[4].style must inherit property "cssText" with the proper type
-PASS CSSStyleDeclaration interface: style_element.sheet.cssRules[4].style must inherit property "length" with the proper type
-PASS CSSStyleDeclaration interface: style_element.sheet.cssRules[4].style must inherit property "item(unsigned long)" with the proper type
-PASS CSSStyleDeclaration interface: calling item(unsigned long) on style_element.sheet.cssRules[4].style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: style_element.sheet.cssRules[4].style must inherit property "getPropertyValue(CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling getPropertyValue(CSSOMString) on style_element.sheet.cssRules[4].style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: style_element.sheet.cssRules[4].style must inherit property "getPropertyPriority(CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling getPropertyPriority(CSSOMString) on style_element.sheet.cssRules[4].style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: style_element.sheet.cssRules[4].style must inherit property "setProperty(CSSOMString, CSSOMString, CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling setProperty(CSSOMString, CSSOMString, CSSOMString) on style_element.sheet.cssRules[4].style with too few arguments must throw TypeError
-FAIL CSSStyleDeclaration interface: style_element.sheet.cssRules[4].style must inherit property "setPropertyValue(CSSOMString, CSSOMString)" with the proper type assert_inherits: property "setPropertyValue" not found in prototype chain
-FAIL CSSStyleDeclaration interface: calling setPropertyValue(CSSOMString, CSSOMString) on style_element.sheet.cssRules[4].style with too few arguments must throw TypeError assert_inherits: property "setPropertyValue" not found in prototype chain
-FAIL CSSStyleDeclaration interface: style_element.sheet.cssRules[4].style must inherit property "setPropertyPriority(CSSOMString, CSSOMString)" with the proper type assert_inherits: property "setPropertyPriority" not found in prototype chain
-FAIL CSSStyleDeclaration interface: calling setPropertyPriority(CSSOMString, CSSOMString) on style_element.sheet.cssRules[4].style with too few arguments must throw TypeError assert_inherits: property "setPropertyPriority" not found in prototype chain
-PASS CSSStyleDeclaration interface: style_element.sheet.cssRules[4].style must inherit property "removeProperty(CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling removeProperty(CSSOMString) on style_element.sheet.cssRules[4].style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: style_element.sheet.cssRules[4].style must inherit property "parentRule" with the proper type
-PASS CSSStyleDeclaration interface: style_element.sheet.cssRules[4].style must inherit property "cssFloat" with the proper type
-PASS CSSStyleDeclaration must be primary interface of style_element.sheet.cssRules[2].style
-PASS Stringification of style_element.sheet.cssRules[2].style
-PASS CSSStyleDeclaration interface: style_element.sheet.cssRules[2].style must inherit property "cssText" with the proper type
-PASS CSSStyleDeclaration interface: style_element.sheet.cssRules[2].style must inherit property "length" with the proper type
-PASS CSSStyleDeclaration interface: style_element.sheet.cssRules[2].style must inherit property "item(unsigned long)" with the proper type
-PASS CSSStyleDeclaration interface: calling item(unsigned long) on style_element.sheet.cssRules[2].style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: style_element.sheet.cssRules[2].style must inherit property "getPropertyValue(CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling getPropertyValue(CSSOMString) on style_element.sheet.cssRules[2].style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: style_element.sheet.cssRules[2].style must inherit property "getPropertyPriority(CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling getPropertyPriority(CSSOMString) on style_element.sheet.cssRules[2].style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: style_element.sheet.cssRules[2].style must inherit property "setProperty(CSSOMString, CSSOMString, CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling setProperty(CSSOMString, CSSOMString, CSSOMString) on style_element.sheet.cssRules[2].style with too few arguments must throw TypeError
-FAIL CSSStyleDeclaration interface: style_element.sheet.cssRules[2].style must inherit property "setPropertyValue(CSSOMString, CSSOMString)" with the proper type assert_inherits: property "setPropertyValue" not found in prototype chain
-FAIL CSSStyleDeclaration interface: calling setPropertyValue(CSSOMString, CSSOMString) on style_element.sheet.cssRules[2].style with too few arguments must throw TypeError assert_inherits: property "setPropertyValue" not found in prototype chain
-FAIL CSSStyleDeclaration interface: style_element.sheet.cssRules[2].style must inherit property "setPropertyPriority(CSSOMString, CSSOMString)" with the proper type assert_inherits: property "setPropertyPriority" not found in prototype chain
-FAIL CSSStyleDeclaration interface: calling setPropertyPriority(CSSOMString, CSSOMString) on style_element.sheet.cssRules[2].style with too few arguments must throw TypeError assert_inherits: property "setPropertyPriority" not found in prototype chain
-PASS CSSStyleDeclaration interface: style_element.sheet.cssRules[2].style must inherit property "removeProperty(CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling removeProperty(CSSOMString) on style_element.sheet.cssRules[2].style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: style_element.sheet.cssRules[2].style must inherit property "parentRule" with the proper type
-PASS CSSStyleDeclaration interface: style_element.sheet.cssRules[2].style must inherit property "cssFloat" with the proper type
-FAIL CSSStyleDeclaration must be primary interface of style_element.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 style_element.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: style_element.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: style_element.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: style_element.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 style_element.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: style_element.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 style_element.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: style_element.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 style_element.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: style_element.sheet.cssRules[2].cssRules[0].style must inherit property "setProperty(CSSOMString, CSSOMString, 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, CSSOMString) on style_element.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: style_element.sheet.cssRules[2].cssRules[0].style must inherit property "setPropertyValue(CSSOMString, 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 setPropertyValue(CSSOMString, CSSOMString) on style_element.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: style_element.sheet.cssRules[2].cssRules[0].style must inherit property "setPropertyPriority(CSSOMString, 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 setPropertyPriority(CSSOMString, CSSOMString) on style_element.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: style_element.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 style_element.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: style_element.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: style_element.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, CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling setProperty(CSSOMString, CSSOMString, CSSOMString) on style_element.style with too few arguments must throw TypeError
-FAIL CSSStyleDeclaration interface: style_element.style must inherit property "setPropertyValue(CSSOMString, CSSOMString)" with the proper type assert_inherits: property "setPropertyValue" not found in prototype chain
-FAIL CSSStyleDeclaration interface: calling setPropertyValue(CSSOMString, CSSOMString) on style_element.style with too few arguments must throw TypeError assert_inherits: property "setPropertyValue" not found in prototype chain
-FAIL CSSStyleDeclaration interface: style_element.style must inherit property "setPropertyPriority(CSSOMString, CSSOMString)" with the proper type assert_inherits: property "setPropertyPriority" not found in prototype chain
-FAIL CSSStyleDeclaration interface: calling setPropertyPriority(CSSOMString, CSSOMString) on style_element.style with too few arguments must throw TypeError assert_inherits: property "setPropertyPriority" not found in prototype chain
-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, CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling setProperty(CSSOMString, CSSOMString, CSSOMString) on svg_element.style with too few arguments must throw TypeError
-FAIL CSSStyleDeclaration interface: svg_element.style must inherit property "setPropertyValue(CSSOMString, CSSOMString)" with the proper type assert_inherits: property "setPropertyValue" not found in prototype chain
-FAIL CSSStyleDeclaration interface: calling setPropertyValue(CSSOMString, CSSOMString) on svg_element.style with too few arguments must throw TypeError assert_inherits: property "setPropertyValue" not found in prototype chain
-FAIL CSSStyleDeclaration interface: svg_element.style must inherit property "setPropertyPriority(CSSOMString, CSSOMString)" with the proper type assert_inherits: property "setPropertyPriority" not found in prototype chain
-FAIL CSSStyleDeclaration interface: calling setPropertyPriority(CSSOMString, CSSOMString) on svg_element.style with too few arguments must throw TypeError assert_inherits: property "setPropertyPriority" not found in prototype chain
-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, CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling setProperty(CSSOMString, CSSOMString, CSSOMString) on getComputedStyle(svg_element) with too few arguments must throw TypeError
-FAIL CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "setPropertyValue(CSSOMString, CSSOMString)" with the proper type assert_inherits: property "setPropertyValue" not found in prototype chain
-FAIL CSSStyleDeclaration interface: calling setPropertyValue(CSSOMString, CSSOMString) on getComputedStyle(svg_element) with too few arguments must throw TypeError assert_inherits: property "setPropertyValue" not found in prototype chain
-FAIL CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "setPropertyPriority(CSSOMString, CSSOMString)" with the proper type assert_inherits: property "setPropertyPriority" not found in prototype chain
-FAIL CSSStyleDeclaration interface: calling setPropertyPriority(CSSOMString, CSSOMString) on getComputedStyle(svg_element) with too few arguments must throw TypeError assert_inherits: property "setPropertyPriority" not found in prototype chain
-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 interface: existence and properties of interface object
-PASS CSS interface object length
-PASS CSS interface object name
-PASS CSS interface: existence and properties of interface prototype object
-PASS CSS interface: existence and properties of interface prototype object's "constructor" property
-PASS CSS interface: existence and properties of interface prototype object's @@unscopables property
-PASS CSS interface: operation escape(CSSOMString)
-PASS Unscopable handled correctly for escape(CSSOMString) on CSS
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/css/geometry/interfaces-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/css/geometry/interfaces-expected.txt
deleted file mode 100644
index 87bbfe9..0000000
--- a/third_party/WebKit/LayoutTests/platform/win/external/wpt/css/geometry/interfaces-expected.txt
+++ /dev/null
@@ -1,674 +0,0 @@
-This is a testharness.js-based test.
-Found 670 tests; 667 PASS, 3 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS Test driver
-PASS DOMPointReadOnly interface: existence and properties of interface object
-PASS DOMPointReadOnly interface object length
-PASS DOMPointReadOnly interface object name
-PASS DOMPointReadOnly interface: existence and properties of interface prototype object
-PASS DOMPointReadOnly interface: existence and properties of interface prototype object's "constructor" property
-PASS DOMPointReadOnly interface: existence and properties of interface prototype object's @@unscopables property
-PASS DOMPointReadOnly interface: operation fromPoint(DOMPointInit)
-PASS Unscopable handled correctly for fromPoint(DOMPointInit) on DOMPointReadOnly
-PASS DOMPointReadOnly interface: attribute x
-PASS Unscopable handled correctly for x property on DOMPointReadOnly
-PASS DOMPointReadOnly interface: attribute y
-PASS Unscopable handled correctly for y property on DOMPointReadOnly
-PASS DOMPointReadOnly interface: attribute z
-PASS Unscopable handled correctly for z property on DOMPointReadOnly
-PASS DOMPointReadOnly interface: attribute w
-PASS Unscopable handled correctly for w property on DOMPointReadOnly
-PASS DOMPointReadOnly interface: operation matrixTransform(DOMMatrixInit)
-PASS Unscopable handled correctly for matrixTransform(DOMMatrixInit) on DOMPointReadOnly
-PASS DOMPointReadOnly must be primary interface of new DOMPointReadOnly()
-PASS Stringification of new DOMPointReadOnly()
-PASS DOMPointReadOnly interface: new DOMPointReadOnly() must inherit property "fromPoint(DOMPointInit)" with the proper type
-PASS DOMPointReadOnly interface: calling fromPoint(DOMPointInit) on new DOMPointReadOnly() with too few arguments must throw TypeError
-PASS DOMPointReadOnly interface: new DOMPointReadOnly() must inherit property "x" with the proper type
-PASS DOMPointReadOnly interface: new DOMPointReadOnly() must inherit property "y" with the proper type
-PASS DOMPointReadOnly interface: new DOMPointReadOnly() must inherit property "z" with the proper type
-PASS DOMPointReadOnly interface: new DOMPointReadOnly() must inherit property "w" with the proper type
-PASS DOMPointReadOnly interface: new DOMPointReadOnly() must inherit property "matrixTransform(DOMMatrixInit)" with the proper type
-PASS DOMPointReadOnly interface: calling matrixTransform(DOMMatrixInit) on new DOMPointReadOnly() with too few arguments must throw TypeError
-PASS DOMPoint interface: existence and properties of interface object
-PASS DOMPoint interface object length
-PASS DOMPoint interface object name
-FAIL DOMPoint interface: legacy window alias assert_equals: self.SVGPoint should be the same value as self.DOMPoint expected function "function DOMPoint() { [native code] }" but got function "function SVGPoint() { [native code] }"
-PASS DOMPoint interface: existence and properties of interface prototype object
-PASS DOMPoint interface: existence and properties of interface prototype object's "constructor" property
-PASS DOMPoint interface: existence and properties of interface prototype object's @@unscopables property
-PASS DOMPoint interface: operation fromPoint(DOMPointInit)
-PASS Unscopable handled correctly for fromPoint(DOMPointInit) on DOMPoint
-PASS DOMPoint interface: attribute x
-PASS Unscopable handled correctly for x property on DOMPoint
-PASS DOMPoint interface: attribute y
-PASS Unscopable handled correctly for y property on DOMPoint
-PASS DOMPoint interface: attribute z
-PASS Unscopable handled correctly for z property on DOMPoint
-PASS DOMPoint interface: attribute w
-PASS Unscopable handled correctly for w property on DOMPoint
-PASS DOMPoint must be primary interface of new DOMPoint()
-PASS Stringification of new DOMPoint()
-PASS DOMPoint interface: new DOMPoint() must inherit property "fromPoint(DOMPointInit)" with the proper type
-PASS DOMPoint interface: calling fromPoint(DOMPointInit) on new DOMPoint() with too few arguments must throw TypeError
-PASS DOMPoint interface: new DOMPoint() must inherit property "x" with the proper type
-PASS DOMPoint interface: new DOMPoint() must inherit property "y" with the proper type
-PASS DOMPoint interface: new DOMPoint() must inherit property "z" with the proper type
-PASS DOMPoint interface: new DOMPoint() must inherit property "w" with the proper type
-PASS DOMPointReadOnly interface: new DOMPoint() must inherit property "fromPoint(DOMPointInit)" with the proper type
-PASS DOMPointReadOnly interface: calling fromPoint(DOMPointInit) on new DOMPoint() with too few arguments must throw TypeError
-PASS DOMPointReadOnly interface: new DOMPoint() must inherit property "x" with the proper type
-PASS DOMPointReadOnly interface: new DOMPoint() must inherit property "y" with the proper type
-PASS DOMPointReadOnly interface: new DOMPoint() must inherit property "z" with the proper type
-PASS DOMPointReadOnly interface: new DOMPoint() must inherit property "w" with the proper type
-PASS DOMPointReadOnly interface: new DOMPoint() must inherit property "matrixTransform(DOMMatrixInit)" with the proper type
-PASS DOMPointReadOnly interface: calling matrixTransform(DOMMatrixInit) on new DOMPoint() with too few arguments must throw TypeError
-PASS DOMRectReadOnly interface: existence and properties of interface object
-PASS DOMRectReadOnly interface object length
-PASS DOMRectReadOnly interface object name
-PASS DOMRectReadOnly interface: existence and properties of interface prototype object
-PASS DOMRectReadOnly interface: existence and properties of interface prototype object's "constructor" property
-PASS DOMRectReadOnly interface: existence and properties of interface prototype object's @@unscopables property
-PASS DOMRectReadOnly interface: operation fromRect(DOMRectInit)
-PASS Unscopable handled correctly for fromRect(DOMRectInit) on DOMRectReadOnly
-PASS DOMRectReadOnly interface: attribute x
-PASS Unscopable handled correctly for x property on DOMRectReadOnly
-PASS DOMRectReadOnly interface: attribute y
-PASS Unscopable handled correctly for y property on DOMRectReadOnly
-PASS DOMRectReadOnly interface: attribute width
-PASS Unscopable handled correctly for width property on DOMRectReadOnly
-PASS DOMRectReadOnly interface: attribute height
-PASS Unscopable handled correctly for height property on DOMRectReadOnly
-PASS DOMRectReadOnly interface: attribute top
-PASS Unscopable handled correctly for top property on DOMRectReadOnly
-PASS DOMRectReadOnly interface: attribute right
-PASS Unscopable handled correctly for right property on DOMRectReadOnly
-PASS DOMRectReadOnly interface: attribute bottom
-PASS Unscopable handled correctly for bottom property on DOMRectReadOnly
-PASS DOMRectReadOnly interface: attribute left
-PASS Unscopable handled correctly for left property on DOMRectReadOnly
-PASS DOMRectReadOnly must be primary interface of new DOMRectReadOnly()
-PASS Stringification of new DOMRectReadOnly()
-PASS DOMRectReadOnly interface: new DOMRectReadOnly() must inherit property "fromRect(DOMRectInit)" with the proper type
-PASS DOMRectReadOnly interface: calling fromRect(DOMRectInit) on new DOMRectReadOnly() with too few arguments must throw TypeError
-PASS DOMRectReadOnly interface: new DOMRectReadOnly() must inherit property "x" with the proper type
-PASS DOMRectReadOnly interface: new DOMRectReadOnly() must inherit property "y" with the proper type
-PASS DOMRectReadOnly interface: new DOMRectReadOnly() must inherit property "width" with the proper type
-PASS DOMRectReadOnly interface: new DOMRectReadOnly() must inherit property "height" with the proper type
-PASS DOMRectReadOnly interface: new DOMRectReadOnly() must inherit property "top" with the proper type
-PASS DOMRectReadOnly interface: new DOMRectReadOnly() must inherit property "right" with the proper type
-PASS DOMRectReadOnly interface: new DOMRectReadOnly() must inherit property "bottom" with the proper type
-PASS DOMRectReadOnly interface: new DOMRectReadOnly() must inherit property "left" with the proper type
-PASS DOMRect interface: existence and properties of interface object
-PASS DOMRect interface object length
-PASS DOMRect interface object name
-FAIL DOMRect interface: legacy window alias assert_equals: self.SVGRect should be the same value as self.DOMRect expected function "function DOMRect() { [native code] }" but got function "function SVGRect() { [native code] }"
-PASS DOMRect interface: existence and properties of interface prototype object
-PASS DOMRect interface: existence and properties of interface prototype object's "constructor" property
-PASS DOMRect interface: existence and properties of interface prototype object's @@unscopables property
-PASS DOMRect interface: operation fromRect(DOMRectInit)
-PASS Unscopable handled correctly for fromRect(DOMRectInit) on DOMRect
-PASS DOMRect interface: attribute x
-PASS Unscopable handled correctly for x property on DOMRect
-PASS DOMRect interface: attribute y
-PASS Unscopable handled correctly for y property on DOMRect
-PASS DOMRect interface: attribute width
-PASS Unscopable handled correctly for width property on DOMRect
-PASS DOMRect interface: attribute height
-PASS Unscopable handled correctly for height property on DOMRect
-PASS DOMRect must be primary interface of new DOMRect()
-PASS Stringification of new DOMRect()
-PASS DOMRect interface: new DOMRect() must inherit property "fromRect(DOMRectInit)" with the proper type
-PASS DOMRect interface: calling fromRect(DOMRectInit) on new DOMRect() with too few arguments must throw TypeError
-PASS DOMRect interface: new DOMRect() must inherit property "x" with the proper type
-PASS DOMRect interface: new DOMRect() must inherit property "y" with the proper type
-PASS DOMRect interface: new DOMRect() must inherit property "width" with the proper type
-PASS DOMRect interface: new DOMRect() must inherit property "height" with the proper type
-PASS DOMRectReadOnly interface: new DOMRect() must inherit property "fromRect(DOMRectInit)" with the proper type
-PASS DOMRectReadOnly interface: calling fromRect(DOMRectInit) on new DOMRect() with too few arguments must throw TypeError
-PASS DOMRectReadOnly interface: new DOMRect() must inherit property "x" with the proper type
-PASS DOMRectReadOnly interface: new DOMRect() must inherit property "y" with the proper type
-PASS DOMRectReadOnly interface: new DOMRect() must inherit property "width" with the proper type
-PASS DOMRectReadOnly interface: new DOMRect() must inherit property "height" with the proper type
-PASS DOMRectReadOnly interface: new DOMRect() must inherit property "top" with the proper type
-PASS DOMRectReadOnly interface: new DOMRect() must inherit property "right" with the proper type
-PASS DOMRectReadOnly interface: new DOMRect() must inherit property "bottom" with the proper type
-PASS DOMRectReadOnly interface: new DOMRect() must inherit property "left" with the proper type
-PASS Stringification of [object DOMRectList]
-PASS DOMRectList interface: [object DOMRectList] must inherit property "length" with the proper type
-PASS DOMRectList interface: [object DOMRectList] must inherit property "item(unsigned long)" with the proper type
-PASS DOMRectList interface: calling item(unsigned long) on [object DOMRectList] with too few arguments must throw TypeError
-PASS DOMQuad interface: existence and properties of interface object
-PASS DOMQuad interface object length
-PASS DOMQuad interface object name
-PASS DOMQuad interface: existence and properties of interface prototype object
-PASS DOMQuad interface: existence and properties of interface prototype object's "constructor" property
-PASS DOMQuad interface: existence and properties of interface prototype object's @@unscopables property
-PASS DOMQuad interface: operation fromRect(DOMRectInit)
-PASS Unscopable handled correctly for fromRect(DOMRectInit) on DOMQuad
-PASS DOMQuad interface: operation fromQuad(DOMQuadInit)
-PASS Unscopable handled correctly for fromQuad(DOMQuadInit) on DOMQuad
-PASS DOMQuad interface: attribute p1
-PASS Unscopable handled correctly for p1 property on DOMQuad
-PASS DOMQuad interface: attribute p2
-PASS Unscopable handled correctly for p2 property on DOMQuad
-PASS DOMQuad interface: attribute p3
-PASS Unscopable handled correctly for p3 property on DOMQuad
-PASS DOMQuad interface: attribute p4
-PASS Unscopable handled correctly for p4 property on DOMQuad
-PASS DOMQuad interface: operation getBounds()
-PASS Unscopable handled correctly for getBounds() on DOMQuad
-PASS DOMQuad must be primary interface of new DOMQuad()
-PASS Stringification of new DOMQuad()
-PASS DOMQuad interface: new DOMQuad() must inherit property "fromRect(DOMRectInit)" with the proper type
-PASS DOMQuad interface: calling fromRect(DOMRectInit) on new DOMQuad() with too few arguments must throw TypeError
-PASS DOMQuad interface: new DOMQuad() must inherit property "fromQuad(DOMQuadInit)" with the proper type
-PASS DOMQuad interface: calling fromQuad(DOMQuadInit) on new DOMQuad() with too few arguments must throw TypeError
-PASS DOMQuad interface: new DOMQuad() must inherit property "p1" with the proper type
-PASS DOMQuad interface: new DOMQuad() must inherit property "p2" with the proper type
-PASS DOMQuad interface: new DOMQuad() must inherit property "p3" with the proper type
-PASS DOMQuad interface: new DOMQuad() must inherit property "p4" with the proper type
-PASS DOMQuad interface: new DOMQuad() must inherit property "getBounds()" with the proper type
-PASS DOMMatrixReadOnly interface: existence and properties of interface object
-PASS DOMMatrixReadOnly interface object length
-PASS DOMMatrixReadOnly interface object name
-PASS DOMMatrixReadOnly interface: existence and properties of interface prototype object
-PASS DOMMatrixReadOnly interface: existence and properties of interface prototype object's "constructor" property
-PASS DOMMatrixReadOnly interface: existence and properties of interface prototype object's @@unscopables property
-PASS DOMMatrixReadOnly interface: operation fromMatrix(DOMMatrixInit)
-PASS Unscopable handled correctly for fromMatrix(DOMMatrixInit) on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: operation fromFloat32Array(Float32Array)
-PASS Unscopable handled correctly for fromFloat32Array(Float32Array) on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: operation fromFloat64Array(Float64Array)
-PASS Unscopable handled correctly for fromFloat64Array(Float64Array) on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: attribute a
-PASS Unscopable handled correctly for a property on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: attribute b
-PASS Unscopable handled correctly for b property on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: attribute c
-PASS Unscopable handled correctly for c property on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: attribute d
-PASS Unscopable handled correctly for d property on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: attribute e
-PASS Unscopable handled correctly for e property on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: attribute f
-PASS Unscopable handled correctly for f property on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: attribute m11
-PASS Unscopable handled correctly for m11 property on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: attribute m12
-PASS Unscopable handled correctly for m12 property on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: attribute m13
-PASS Unscopable handled correctly for m13 property on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: attribute m14
-PASS Unscopable handled correctly for m14 property on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: attribute m21
-PASS Unscopable handled correctly for m21 property on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: attribute m22
-PASS Unscopable handled correctly for m22 property on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: attribute m23
-PASS Unscopable handled correctly for m23 property on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: attribute m24
-PASS Unscopable handled correctly for m24 property on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: attribute m31
-PASS Unscopable handled correctly for m31 property on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: attribute m32
-PASS Unscopable handled correctly for m32 property on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: attribute m33
-PASS Unscopable handled correctly for m33 property on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: attribute m34
-PASS Unscopable handled correctly for m34 property on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: attribute m41
-PASS Unscopable handled correctly for m41 property on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: attribute m42
-PASS Unscopable handled correctly for m42 property on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: attribute m43
-PASS Unscopable handled correctly for m43 property on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: attribute m44
-PASS Unscopable handled correctly for m44 property on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: attribute is2D
-PASS Unscopable handled correctly for is2D property on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: attribute isIdentity
-PASS Unscopable handled correctly for isIdentity property on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: operation translate(unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for translate(unrestricted double, unrestricted double, unrestricted double) on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: operation scale(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for scale(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: operation scale3d(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for scale3d(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: operation rotate(unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for rotate(unrestricted double, unrestricted double, unrestricted double) on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: operation rotateFromVector(unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for rotateFromVector(unrestricted double, unrestricted double) on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: operation rotateAxisAngle(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for rotateAxisAngle(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: operation skewX(unrestricted double)
-PASS Unscopable handled correctly for skewX(unrestricted double) on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: operation skewY(unrestricted double)
-PASS Unscopable handled correctly for skewY(unrestricted double) on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: operation multiply(DOMMatrixInit)
-PASS Unscopable handled correctly for multiply(DOMMatrixInit) on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: operation flipX()
-PASS Unscopable handled correctly for flipX() on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: operation flipY()
-PASS Unscopable handled correctly for flipY() on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: operation inverse()
-PASS Unscopable handled correctly for inverse() on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: operation transformPoint(DOMPointInit)
-PASS Unscopable handled correctly for transformPoint(DOMPointInit) on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: operation toFloat32Array()
-PASS Unscopable handled correctly for toFloat32Array() on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: operation toFloat64Array()
-PASS Unscopable handled correctly for toFloat64Array() on DOMMatrixReadOnly
-PASS DOMMatrixReadOnly interface: stringifier
-PASS DOMMatrixReadOnly must be primary interface of new DOMMatrixReadOnly()
-PASS Stringification of new DOMMatrixReadOnly()
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "fromMatrix(DOMMatrixInit)" with the proper type
-PASS DOMMatrixReadOnly interface: calling fromMatrix(DOMMatrixInit) on new DOMMatrixReadOnly() with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "fromFloat32Array(Float32Array)" with the proper type
-PASS DOMMatrixReadOnly interface: calling fromFloat32Array(Float32Array) on new DOMMatrixReadOnly() with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "fromFloat64Array(Float64Array)" with the proper type
-PASS DOMMatrixReadOnly interface: calling fromFloat64Array(Float64Array) on new DOMMatrixReadOnly() with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "a" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "b" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "c" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "d" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "e" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "f" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "m11" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "m12" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "m13" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "m14" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "m21" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "m22" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "m23" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "m24" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "m31" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "m32" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "m33" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "m34" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "m41" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "m42" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "m43" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "m44" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "is2D" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "isIdentity" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "translate(unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrixReadOnly interface: calling translate(unrestricted double, unrestricted double, unrestricted double) on new DOMMatrixReadOnly() with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "scale(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrixReadOnly interface: calling scale(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on new DOMMatrixReadOnly() with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "scale3d(unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrixReadOnly interface: calling scale3d(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on new DOMMatrixReadOnly() with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "rotate(unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrixReadOnly interface: calling rotate(unrestricted double, unrestricted double, unrestricted double) on new DOMMatrixReadOnly() with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "rotateFromVector(unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrixReadOnly interface: calling rotateFromVector(unrestricted double, unrestricted double) on new DOMMatrixReadOnly() with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "rotateAxisAngle(unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrixReadOnly interface: calling rotateAxisAngle(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on new DOMMatrixReadOnly() with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "skewX(unrestricted double)" with the proper type
-PASS DOMMatrixReadOnly interface: calling skewX(unrestricted double) on new DOMMatrixReadOnly() with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "skewY(unrestricted double)" with the proper type
-PASS DOMMatrixReadOnly interface: calling skewY(unrestricted double) on new DOMMatrixReadOnly() with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "multiply(DOMMatrixInit)" with the proper type
-PASS DOMMatrixReadOnly interface: calling multiply(DOMMatrixInit) on new DOMMatrixReadOnly() with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "flipX()" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "flipY()" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "inverse()" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "transformPoint(DOMPointInit)" with the proper type
-PASS DOMMatrixReadOnly interface: calling transformPoint(DOMPointInit) on new DOMMatrixReadOnly() with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "toFloat32Array()" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "toFloat64Array()" with the proper type
-PASS DOMMatrixReadOnly must be primary interface of DOMMatrixReadOnly.fromMatrix({is2D: false})
-PASS Stringification of DOMMatrixReadOnly.fromMatrix({is2D: false})
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "fromMatrix(DOMMatrixInit)" with the proper type
-PASS DOMMatrixReadOnly interface: calling fromMatrix(DOMMatrixInit) on DOMMatrixReadOnly.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "fromFloat32Array(Float32Array)" with the proper type
-PASS DOMMatrixReadOnly interface: calling fromFloat32Array(Float32Array) on DOMMatrixReadOnly.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "fromFloat64Array(Float64Array)" with the proper type
-PASS DOMMatrixReadOnly interface: calling fromFloat64Array(Float64Array) on DOMMatrixReadOnly.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "a" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "b" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "c" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "d" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "e" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "f" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "m11" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "m12" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "m13" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "m14" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "m21" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "m22" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "m23" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "m24" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "m31" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "m32" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "m33" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "m34" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "m41" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "m42" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "m43" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "m44" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "is2D" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "isIdentity" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "translate(unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrixReadOnly interface: calling translate(unrestricted double, unrestricted double, unrestricted double) on DOMMatrixReadOnly.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "scale(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrixReadOnly interface: calling scale(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on DOMMatrixReadOnly.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "scale3d(unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrixReadOnly interface: calling scale3d(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on DOMMatrixReadOnly.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "rotate(unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrixReadOnly interface: calling rotate(unrestricted double, unrestricted double, unrestricted double) on DOMMatrixReadOnly.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "rotateFromVector(unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrixReadOnly interface: calling rotateFromVector(unrestricted double, unrestricted double) on DOMMatrixReadOnly.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "rotateAxisAngle(unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrixReadOnly interface: calling rotateAxisAngle(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on DOMMatrixReadOnly.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "skewX(unrestricted double)" with the proper type
-PASS DOMMatrixReadOnly interface: calling skewX(unrestricted double) on DOMMatrixReadOnly.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "skewY(unrestricted double)" with the proper type
-PASS DOMMatrixReadOnly interface: calling skewY(unrestricted double) on DOMMatrixReadOnly.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "multiply(DOMMatrixInit)" with the proper type
-PASS DOMMatrixReadOnly interface: calling multiply(DOMMatrixInit) on DOMMatrixReadOnly.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "flipX()" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "flipY()" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "inverse()" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "transformPoint(DOMPointInit)" with the proper type
-PASS DOMMatrixReadOnly interface: calling transformPoint(DOMPointInit) on DOMMatrixReadOnly.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "toFloat32Array()" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrixReadOnly.fromMatrix({is2D: false}) must inherit property "toFloat64Array()" with the proper type
-PASS DOMMatrix interface: existence and properties of interface object
-PASS DOMMatrix interface object length
-PASS DOMMatrix interface object name
-FAIL DOMMatrix interface: legacy window alias assert_equals: self.SVGMatrix should be the same value as self.DOMMatrix expected function "function DOMMatrix() { [native code] }" but got function "function SVGMatrix() { [native code] }"
-PASS DOMMatrix interface: existence and properties of interface prototype object
-PASS DOMMatrix interface: existence and properties of interface prototype object's "constructor" property
-PASS DOMMatrix interface: existence and properties of interface prototype object's @@unscopables property
-PASS DOMMatrix interface: operation fromMatrix(DOMMatrixInit)
-PASS Unscopable handled correctly for fromMatrix(DOMMatrixInit) on DOMMatrix
-PASS DOMMatrix interface: operation fromFloat32Array(Float32Array)
-PASS Unscopable handled correctly for fromFloat32Array(Float32Array) on DOMMatrix
-PASS DOMMatrix interface: operation fromFloat64Array(Float64Array)
-PASS Unscopable handled correctly for fromFloat64Array(Float64Array) on DOMMatrix
-PASS DOMMatrix interface: attribute a
-PASS Unscopable handled correctly for a property on DOMMatrix
-PASS DOMMatrix interface: attribute b
-PASS Unscopable handled correctly for b property on DOMMatrix
-PASS DOMMatrix interface: attribute c
-PASS Unscopable handled correctly for c property on DOMMatrix
-PASS DOMMatrix interface: attribute d
-PASS Unscopable handled correctly for d property on DOMMatrix
-PASS DOMMatrix interface: attribute e
-PASS Unscopable handled correctly for e property on DOMMatrix
-PASS DOMMatrix interface: attribute f
-PASS Unscopable handled correctly for f property on DOMMatrix
-PASS DOMMatrix interface: attribute m11
-PASS Unscopable handled correctly for m11 property on DOMMatrix
-PASS DOMMatrix interface: attribute m12
-PASS Unscopable handled correctly for m12 property on DOMMatrix
-PASS DOMMatrix interface: attribute m13
-PASS Unscopable handled correctly for m13 property on DOMMatrix
-PASS DOMMatrix interface: attribute m14
-PASS Unscopable handled correctly for m14 property on DOMMatrix
-PASS DOMMatrix interface: attribute m21
-PASS Unscopable handled correctly for m21 property on DOMMatrix
-PASS DOMMatrix interface: attribute m22
-PASS Unscopable handled correctly for m22 property on DOMMatrix
-PASS DOMMatrix interface: attribute m23
-PASS Unscopable handled correctly for m23 property on DOMMatrix
-PASS DOMMatrix interface: attribute m24
-PASS Unscopable handled correctly for m24 property on DOMMatrix
-PASS DOMMatrix interface: attribute m31
-PASS Unscopable handled correctly for m31 property on DOMMatrix
-PASS DOMMatrix interface: attribute m32
-PASS Unscopable handled correctly for m32 property on DOMMatrix
-PASS DOMMatrix interface: attribute m33
-PASS Unscopable handled correctly for m33 property on DOMMatrix
-PASS DOMMatrix interface: attribute m34
-PASS Unscopable handled correctly for m34 property on DOMMatrix
-PASS DOMMatrix interface: attribute m41
-PASS Unscopable handled correctly for m41 property on DOMMatrix
-PASS DOMMatrix interface: attribute m42
-PASS Unscopable handled correctly for m42 property on DOMMatrix
-PASS DOMMatrix interface: attribute m43
-PASS Unscopable handled correctly for m43 property on DOMMatrix
-PASS DOMMatrix interface: attribute m44
-PASS Unscopable handled correctly for m44 property on DOMMatrix
-PASS DOMMatrix interface: operation multiplySelf(DOMMatrixInit)
-PASS Unscopable handled correctly for multiplySelf(DOMMatrixInit) on DOMMatrix
-PASS DOMMatrix interface: operation preMultiplySelf(DOMMatrixInit)
-PASS Unscopable handled correctly for preMultiplySelf(DOMMatrixInit) on DOMMatrix
-PASS DOMMatrix interface: operation translateSelf(unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for translateSelf(unrestricted double, unrestricted double, unrestricted double) on DOMMatrix
-PASS DOMMatrix interface: operation scaleSelf(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for scaleSelf(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on DOMMatrix
-PASS DOMMatrix interface: operation scale3dSelf(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for scale3dSelf(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on DOMMatrix
-PASS DOMMatrix interface: operation rotateSelf(unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for rotateSelf(unrestricted double, unrestricted double, unrestricted double) on DOMMatrix
-PASS DOMMatrix interface: operation rotateFromVectorSelf(unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for rotateFromVectorSelf(unrestricted double, unrestricted double) on DOMMatrix
-PASS DOMMatrix interface: operation rotateAxisAngleSelf(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for rotateAxisAngleSelf(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on DOMMatrix
-PASS DOMMatrix interface: operation skewXSelf(unrestricted double)
-PASS Unscopable handled correctly for skewXSelf(unrestricted double) on DOMMatrix
-PASS DOMMatrix interface: operation skewYSelf(unrestricted double)
-PASS Unscopable handled correctly for skewYSelf(unrestricted double) on DOMMatrix
-PASS DOMMatrix interface: operation invertSelf()
-PASS Unscopable handled correctly for invertSelf() on DOMMatrix
-PASS DOMMatrix interface: operation setMatrixValue(DOMString)
-PASS Unscopable handled correctly for setMatrixValue(DOMString) on DOMMatrix
-PASS DOMMatrix must be primary interface of new DOMMatrix()
-PASS Stringification of new DOMMatrix()
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "fromMatrix(DOMMatrixInit)" with the proper type
-PASS DOMMatrix interface: calling fromMatrix(DOMMatrixInit) on new DOMMatrix() with too few arguments must throw TypeError
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "fromFloat32Array(Float32Array)" with the proper type
-PASS DOMMatrix interface: calling fromFloat32Array(Float32Array) on new DOMMatrix() with too few arguments must throw TypeError
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "fromFloat64Array(Float64Array)" with the proper type
-PASS DOMMatrix interface: calling fromFloat64Array(Float64Array) on new DOMMatrix() with too few arguments must throw TypeError
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "a" with the proper type
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "b" with the proper type
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "c" with the proper type
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "d" with the proper type
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "e" with the proper type
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "f" with the proper type
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "m11" with the proper type
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "m12" with the proper type
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "m13" with the proper type
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "m14" with the proper type
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "m21" with the proper type
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "m22" with the proper type
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "m23" with the proper type
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "m24" with the proper type
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "m31" with the proper type
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "m32" with the proper type
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "m33" with the proper type
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "m34" with the proper type
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "m41" with the proper type
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "m42" with the proper type
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "m43" with the proper type
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "m44" with the proper type
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "multiplySelf(DOMMatrixInit)" with the proper type
-PASS DOMMatrix interface: calling multiplySelf(DOMMatrixInit) on new DOMMatrix() with too few arguments must throw TypeError
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "preMultiplySelf(DOMMatrixInit)" with the proper type
-PASS DOMMatrix interface: calling preMultiplySelf(DOMMatrixInit) on new DOMMatrix() with too few arguments must throw TypeError
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "translateSelf(unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrix interface: calling translateSelf(unrestricted double, unrestricted double, unrestricted double) on new DOMMatrix() with too few arguments must throw TypeError
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "scaleSelf(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrix interface: calling scaleSelf(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on new DOMMatrix() with too few arguments must throw TypeError
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "scale3dSelf(unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrix interface: calling scale3dSelf(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on new DOMMatrix() with too few arguments must throw TypeError
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "rotateSelf(unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrix interface: calling rotateSelf(unrestricted double, unrestricted double, unrestricted double) on new DOMMatrix() with too few arguments must throw TypeError
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "rotateFromVectorSelf(unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrix interface: calling rotateFromVectorSelf(unrestricted double, unrestricted double) on new DOMMatrix() with too few arguments must throw TypeError
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "rotateAxisAngleSelf(unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrix interface: calling rotateAxisAngleSelf(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on new DOMMatrix() with too few arguments must throw TypeError
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "skewXSelf(unrestricted double)" with the proper type
-PASS DOMMatrix interface: calling skewXSelf(unrestricted double) on new DOMMatrix() with too few arguments must throw TypeError
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "skewYSelf(unrestricted double)" with the proper type
-PASS DOMMatrix interface: calling skewYSelf(unrestricted double) on new DOMMatrix() with too few arguments must throw TypeError
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "invertSelf()" with the proper type
-PASS DOMMatrix interface: new DOMMatrix() must inherit property "setMatrixValue(DOMString)" with the proper type
-PASS DOMMatrix interface: calling setMatrixValue(DOMString) on new DOMMatrix() with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "fromMatrix(DOMMatrixInit)" with the proper type
-PASS DOMMatrixReadOnly interface: calling fromMatrix(DOMMatrixInit) on new DOMMatrix() with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "fromFloat32Array(Float32Array)" with the proper type
-PASS DOMMatrixReadOnly interface: calling fromFloat32Array(Float32Array) on new DOMMatrix() with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "fromFloat64Array(Float64Array)" with the proper type
-PASS DOMMatrixReadOnly interface: calling fromFloat64Array(Float64Array) on new DOMMatrix() with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "a" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "b" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "c" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "d" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "e" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "f" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "m11" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "m12" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "m13" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "m14" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "m21" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "m22" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "m23" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "m24" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "m31" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "m32" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "m33" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "m34" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "m41" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "m42" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "m43" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "m44" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "is2D" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "isIdentity" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "translate(unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrixReadOnly interface: calling translate(unrestricted double, unrestricted double, unrestricted double) on new DOMMatrix() with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "scale(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrixReadOnly interface: calling scale(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on new DOMMatrix() with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "scale3d(unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrixReadOnly interface: calling scale3d(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on new DOMMatrix() with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "rotate(unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrixReadOnly interface: calling rotate(unrestricted double, unrestricted double, unrestricted double) on new DOMMatrix() with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "rotateFromVector(unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrixReadOnly interface: calling rotateFromVector(unrestricted double, unrestricted double) on new DOMMatrix() with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "rotateAxisAngle(unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrixReadOnly interface: calling rotateAxisAngle(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on new DOMMatrix() with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "skewX(unrestricted double)" with the proper type
-PASS DOMMatrixReadOnly interface: calling skewX(unrestricted double) on new DOMMatrix() with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "skewY(unrestricted double)" with the proper type
-PASS DOMMatrixReadOnly interface: calling skewY(unrestricted double) on new DOMMatrix() with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "multiply(DOMMatrixInit)" with the proper type
-PASS DOMMatrixReadOnly interface: calling multiply(DOMMatrixInit) on new DOMMatrix() with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "flipX()" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "flipY()" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "inverse()" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "transformPoint(DOMPointInit)" with the proper type
-PASS DOMMatrixReadOnly interface: calling transformPoint(DOMPointInit) on new DOMMatrix() with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "toFloat32Array()" with the proper type
-PASS DOMMatrixReadOnly interface: new DOMMatrix() must inherit property "toFloat64Array()" with the proper type
-PASS DOMMatrix must be primary interface of DOMMatrix.fromMatrix({is2D: false})
-PASS Stringification of DOMMatrix.fromMatrix({is2D: false})
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "fromMatrix(DOMMatrixInit)" with the proper type
-PASS DOMMatrix interface: calling fromMatrix(DOMMatrixInit) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "fromFloat32Array(Float32Array)" with the proper type
-PASS DOMMatrix interface: calling fromFloat32Array(Float32Array) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "fromFloat64Array(Float64Array)" with the proper type
-PASS DOMMatrix interface: calling fromFloat64Array(Float64Array) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "a" with the proper type
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "b" with the proper type
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "c" with the proper type
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "d" with the proper type
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "e" with the proper type
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "f" with the proper type
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m11" with the proper type
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m12" with the proper type
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m13" with the proper type
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m14" with the proper type
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m21" with the proper type
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m22" with the proper type
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m23" with the proper type
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m24" with the proper type
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m31" with the proper type
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m32" with the proper type
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m33" with the proper type
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m34" with the proper type
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m41" with the proper type
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m42" with the proper type
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m43" with the proper type
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m44" with the proper type
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "multiplySelf(DOMMatrixInit)" with the proper type
-PASS DOMMatrix interface: calling multiplySelf(DOMMatrixInit) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "preMultiplySelf(DOMMatrixInit)" with the proper type
-PASS DOMMatrix interface: calling preMultiplySelf(DOMMatrixInit) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "translateSelf(unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrix interface: calling translateSelf(unrestricted double, unrestricted double, unrestricted double) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "scaleSelf(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrix interface: calling scaleSelf(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "scale3dSelf(unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrix interface: calling scale3dSelf(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "rotateSelf(unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrix interface: calling rotateSelf(unrestricted double, unrestricted double, unrestricted double) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "rotateFromVectorSelf(unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrix interface: calling rotateFromVectorSelf(unrestricted double, unrestricted double) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "rotateAxisAngleSelf(unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrix interface: calling rotateAxisAngleSelf(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "skewXSelf(unrestricted double)" with the proper type
-PASS DOMMatrix interface: calling skewXSelf(unrestricted double) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "skewYSelf(unrestricted double)" with the proper type
-PASS DOMMatrix interface: calling skewYSelf(unrestricted double) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "invertSelf()" with the proper type
-PASS DOMMatrix interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "setMatrixValue(DOMString)" with the proper type
-PASS DOMMatrix interface: calling setMatrixValue(DOMString) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "fromMatrix(DOMMatrixInit)" with the proper type
-PASS DOMMatrixReadOnly interface: calling fromMatrix(DOMMatrixInit) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "fromFloat32Array(Float32Array)" with the proper type
-PASS DOMMatrixReadOnly interface: calling fromFloat32Array(Float32Array) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "fromFloat64Array(Float64Array)" with the proper type
-PASS DOMMatrixReadOnly interface: calling fromFloat64Array(Float64Array) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "a" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "b" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "c" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "d" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "e" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "f" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m11" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m12" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m13" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m14" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m21" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m22" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m23" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m24" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m31" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m32" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m33" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m34" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m41" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m42" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m43" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "m44" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "is2D" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "isIdentity" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "translate(unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrixReadOnly interface: calling translate(unrestricted double, unrestricted double, unrestricted double) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "scale(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrixReadOnly interface: calling scale(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "scale3d(unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrixReadOnly interface: calling scale3d(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "rotate(unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrixReadOnly interface: calling rotate(unrestricted double, unrestricted double, unrestricted double) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "rotateFromVector(unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrixReadOnly interface: calling rotateFromVector(unrestricted double, unrestricted double) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "rotateAxisAngle(unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS DOMMatrixReadOnly interface: calling rotateAxisAngle(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "skewX(unrestricted double)" with the proper type
-PASS DOMMatrixReadOnly interface: calling skewX(unrestricted double) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "skewY(unrestricted double)" with the proper type
-PASS DOMMatrixReadOnly interface: calling skewY(unrestricted double) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "multiply(DOMMatrixInit)" with the proper type
-PASS DOMMatrixReadOnly interface: calling multiply(DOMMatrixInit) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "flipX()" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "flipY()" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "inverse()" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "transformPoint(DOMPointInit)" with the proper type
-PASS DOMMatrixReadOnly interface: calling transformPoint(DOMPointInit) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "toFloat32Array()" with the proper type
-PASS DOMMatrixReadOnly interface: DOMMatrix.fromMatrix({is2D: false}) must inherit property "toFloat64Array()" with the proper type
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/entries-api/interfaces-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/entries-api/interfaces-expected.txt
deleted file mode 100644
index 275fe697..0000000
--- a/third_party/WebKit/LayoutTests/platform/win/external/wpt/entries-api/interfaces-expected.txt
+++ /dev/null
@@ -1,96 +0,0 @@
-This is a testharness.js-based test.
-Found 92 tests; 49 PASS, 43 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS Entries API: IDL
-PASS File interface: attribute webkitRelativePath
-PASS Unscopable handled correctly for webkitRelativePath property on File
-PASS File interface: new File([], "example.txt") must inherit property "webkitRelativePath" with the proper type
-PASS HTMLInputElement interface: attribute webkitdirectory
-PASS Unscopable handled correctly for webkitdirectory property on HTMLInputElement
-PASS HTMLInputElement interface: attribute webkitEntries
-PASS Unscopable handled correctly for webkitEntries property on HTMLInputElement
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "webkitdirectory" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "webkitEntries" with the proper type
-PASS DataTransferItem interface: operation webkitGetAsEntry()
-PASS Unscopable handled correctly for webkitGetAsEntry() on DataTransferItem
-PASS ErrorCallback interface: existence and properties of interface object
-PASS ErrorCallback interface: existence and properties of interface prototype object
-PASS ErrorCallback interface: existence and properties of interface prototype object's "constructor" property
-PASS ErrorCallback interface: existence and properties of interface prototype object's @@unscopables property
-PASS ErrorCallback interface: operation handleEvent(DOMException)
-PASS Unscopable handled correctly for handleEvent(DOMException) on ErrorCallback
-FAIL FileSystemEntry interface: existence and properties of interface object assert_own_property: self does not have own property "FileSystemEntry" expected property "FileSystemEntry" missing
-FAIL FileSystemEntry interface object length assert_own_property: self does not have own property "FileSystemEntry" expected property "FileSystemEntry" missing
-FAIL FileSystemEntry interface object name assert_own_property: self does not have own property "FileSystemEntry" expected property "FileSystemEntry" missing
-FAIL FileSystemEntry interface: existence and properties of interface prototype object assert_own_property: self does not have own property "FileSystemEntry" expected property "FileSystemEntry" missing
-FAIL FileSystemEntry interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "FileSystemEntry" expected property "FileSystemEntry" missing
-FAIL FileSystemEntry interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "FileSystemEntry" expected property "FileSystemEntry" missing
-FAIL FileSystemEntry interface: attribute isFile assert_own_property: self does not have own property "FileSystemEntry" expected property "FileSystemEntry" missing
-PASS Unscopable handled correctly for isFile property on FileSystemEntry
-FAIL FileSystemEntry interface: attribute isDirectory assert_own_property: self does not have own property "FileSystemEntry" expected property "FileSystemEntry" missing
-PASS Unscopable handled correctly for isDirectory property on FileSystemEntry
-FAIL FileSystemEntry interface: attribute name assert_own_property: self does not have own property "FileSystemEntry" expected property "FileSystemEntry" missing
-PASS Unscopable handled correctly for name property on FileSystemEntry
-FAIL FileSystemEntry interface: attribute fullPath assert_own_property: self does not have own property "FileSystemEntry" expected property "FileSystemEntry" missing
-PASS Unscopable handled correctly for fullPath property on FileSystemEntry
-FAIL FileSystemEntry interface: attribute filesystem assert_own_property: self does not have own property "FileSystemEntry" expected property "FileSystemEntry" missing
-PASS Unscopable handled correctly for filesystem property on FileSystemEntry
-FAIL FileSystemEntry interface: operation getParent(FileSystemEntryCallback, ErrorCallback) assert_own_property: self does not have own property "FileSystemEntry" expected property "FileSystemEntry" missing
-PASS Unscopable handled correctly for getParent(FileSystemEntryCallback, ErrorCallback) on FileSystemEntry
-FAIL FileSystemDirectoryEntry interface: existence and properties of interface object assert_own_property: self does not have own property "FileSystemDirectoryEntry" expected property "FileSystemDirectoryEntry" missing
-FAIL FileSystemDirectoryEntry interface object length assert_own_property: self does not have own property "FileSystemDirectoryEntry" expected property "FileSystemDirectoryEntry" missing
-FAIL FileSystemDirectoryEntry interface object name assert_own_property: self does not have own property "FileSystemDirectoryEntry" expected property "FileSystemDirectoryEntry" missing
-FAIL FileSystemDirectoryEntry interface: existence and properties of interface prototype object assert_own_property: self does not have own property "FileSystemDirectoryEntry" expected property "FileSystemDirectoryEntry" missing
-FAIL FileSystemDirectoryEntry interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "FileSystemDirectoryEntry" expected property "FileSystemDirectoryEntry" missing
-FAIL FileSystemDirectoryEntry interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "FileSystemDirectoryEntry" expected property "FileSystemDirectoryEntry" missing
-FAIL FileSystemDirectoryEntry interface: operation createReader() assert_own_property: self does not have own property "FileSystemDirectoryEntry" expected property "FileSystemDirectoryEntry" missing
-PASS Unscopable handled correctly for createReader() on FileSystemDirectoryEntry
-FAIL FileSystemDirectoryEntry interface: operation getFile(USVString, FileSystemFlags, FileSystemEntryCallback, ErrorCallback) assert_own_property: self does not have own property "FileSystemDirectoryEntry" expected property "FileSystemDirectoryEntry" missing
-PASS Unscopable handled correctly for getFile(USVString, FileSystemFlags, FileSystemEntryCallback, ErrorCallback) on FileSystemDirectoryEntry
-FAIL FileSystemDirectoryEntry interface: operation getDirectory(USVString, FileSystemFlags, FileSystemEntryCallback, ErrorCallback) assert_own_property: self does not have own property "FileSystemDirectoryEntry" expected property "FileSystemDirectoryEntry" missing
-PASS Unscopable handled correctly for getDirectory(USVString, FileSystemFlags, FileSystemEntryCallback, ErrorCallback) on FileSystemDirectoryEntry
-PASS FileSystemEntryCallback interface: existence and properties of interface object
-PASS FileSystemEntryCallback interface: existence and properties of interface prototype object
-PASS FileSystemEntryCallback interface: existence and properties of interface prototype object's "constructor" property
-PASS FileSystemEntryCallback interface: existence and properties of interface prototype object's @@unscopables property
-PASS FileSystemEntryCallback interface: operation handleEvent(FileSystemEntry)
-PASS Unscopable handled correctly for handleEvent(FileSystemEntry) on FileSystemEntryCallback
-FAIL FileSystemDirectoryReader interface: existence and properties of interface object assert_own_property: self does not have own property "FileSystemDirectoryReader" expected property "FileSystemDirectoryReader" missing
-FAIL FileSystemDirectoryReader interface object length assert_own_property: self does not have own property "FileSystemDirectoryReader" expected property "FileSystemDirectoryReader" missing
-FAIL FileSystemDirectoryReader interface object name assert_own_property: self does not have own property "FileSystemDirectoryReader" expected property "FileSystemDirectoryReader" missing
-FAIL FileSystemDirectoryReader interface: existence and properties of interface prototype object assert_own_property: self does not have own property "FileSystemDirectoryReader" expected property "FileSystemDirectoryReader" missing
-FAIL FileSystemDirectoryReader interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "FileSystemDirectoryReader" expected property "FileSystemDirectoryReader" missing
-FAIL FileSystemDirectoryReader interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "FileSystemDirectoryReader" expected property "FileSystemDirectoryReader" missing
-FAIL FileSystemDirectoryReader interface: operation readEntries(FileSystemEntriesCallback, ErrorCallback) assert_own_property: self does not have own property "FileSystemDirectoryReader" expected property "FileSystemDirectoryReader" missing
-PASS Unscopable handled correctly for readEntries(FileSystemEntriesCallback, ErrorCallback) on FileSystemDirectoryReader
-PASS FileSystemEntriesCallback interface: existence and properties of interface object
-PASS FileSystemEntriesCallback interface: existence and properties of interface prototype object
-PASS FileSystemEntriesCallback interface: existence and properties of interface prototype object's "constructor" property
-PASS FileSystemEntriesCallback interface: existence and properties of interface prototype object's @@unscopables property
-PASS FileSystemEntriesCallback interface: operation handleEvent([object Object])
-PASS Unscopable handled correctly for handleEvent([object Object]) on FileSystemEntriesCallback
-FAIL FileSystemFileEntry interface: existence and properties of interface object assert_own_property: self does not have own property "FileSystemFileEntry" expected property "FileSystemFileEntry" missing
-FAIL FileSystemFileEntry interface object length assert_own_property: self does not have own property "FileSystemFileEntry" expected property "FileSystemFileEntry" missing
-FAIL FileSystemFileEntry interface object name assert_own_property: self does not have own property "FileSystemFileEntry" expected property "FileSystemFileEntry" missing
-FAIL FileSystemFileEntry interface: existence and properties of interface prototype object assert_own_property: self does not have own property "FileSystemFileEntry" expected property "FileSystemFileEntry" missing
-FAIL FileSystemFileEntry interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "FileSystemFileEntry" expected property "FileSystemFileEntry" missing
-FAIL FileSystemFileEntry interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "FileSystemFileEntry" expected property "FileSystemFileEntry" missing
-FAIL FileSystemFileEntry interface: operation file(FileCallback, ErrorCallback) assert_own_property: self does not have own property "FileSystemFileEntry" expected property "FileSystemFileEntry" missing
-PASS Unscopable handled correctly for file(FileCallback, ErrorCallback) on FileSystemFileEntry
-PASS FileCallback interface: existence and properties of interface object
-PASS FileCallback interface: existence and properties of interface prototype object
-PASS FileCallback interface: existence and properties of interface prototype object's "constructor" property
-PASS FileCallback interface: existence and properties of interface prototype object's @@unscopables property
-PASS FileCallback interface: operation handleEvent(File)
-PASS Unscopable handled correctly for handleEvent(File) on FileCallback
-FAIL FileSystem interface: existence and properties of interface object assert_own_property: self does not have own property "FileSystem" expected property "FileSystem" missing
-FAIL FileSystem interface object length assert_own_property: self does not have own property "FileSystem" expected property "FileSystem" missing
-FAIL FileSystem interface object name assert_own_property: self does not have own property "FileSystem" expected property "FileSystem" missing
-FAIL FileSystem interface: existence and properties of interface prototype object assert_own_property: self does not have own property "FileSystem" expected property "FileSystem" missing
-FAIL FileSystem interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "FileSystem" expected property "FileSystem" missing
-FAIL FileSystem interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "FileSystem" expected property "FileSystem" missing
-FAIL FileSystem interface: attribute name assert_own_property: self does not have own property "FileSystem" expected property "FileSystem" missing
-PASS Unscopable handled correctly for name property on FileSystem
-FAIL FileSystem interface: attribute root assert_own_property: self does not have own property "FileSystem" expected property "FileSystem" missing
-PASS Unscopable handled correctly for root property on FileSystem
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/fetch/api/request/request-idl-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/fetch/api/request/request-idl-expected.txt
deleted file mode 100644
index fe8cfccb..0000000
--- a/third_party/WebKit/LayoutTests/platform/win/external/wpt/fetch/api/request/request-idl-expected.txt
+++ /dev/null
@@ -1,69 +0,0 @@
-This is a testharness.js-based test.
-Found 65 tests; 63 PASS, 2 FAIL, 0 TIMEOUT, 0 NOTRUN.
-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 Unscopable handled correctly for method property on Request
-PASS Request interface: attribute url
-PASS Unscopable handled correctly for url property on Request
-PASS Request interface: attribute headers
-PASS Unscopable handled correctly for headers property on Request
-PASS Request interface: attribute destination
-PASS Unscopable handled correctly for destination property on Request
-PASS Request interface: attribute referrer
-PASS Unscopable handled correctly for referrer property on Request
-PASS Request interface: attribute referrerPolicy
-PASS Unscopable handled correctly for referrerPolicy property on Request
-PASS Request interface: attribute mode
-PASS Unscopable handled correctly for mode property on Request
-PASS Request interface: attribute credentials
-PASS Unscopable handled correctly for credentials property on Request
-PASS Request interface: attribute cache
-PASS Unscopable handled correctly for cache property on Request
-PASS Request interface: attribute redirect
-PASS Unscopable handled correctly for redirect property on Request
-PASS Request interface: attribute integrity
-PASS Unscopable handled correctly for integrity property on Request
-PASS Request interface: operation clone()
-PASS Unscopable handled correctly for clone() on Request
-FAIL Request interface: attribute body assert_true: The prototype object must have a property "body" expected true got false
-PASS Unscopable handled correctly for body property on Request
-PASS Request interface: attribute bodyUsed
-PASS Unscopable handled correctly for bodyUsed property on Request
-PASS Request interface: operation arrayBuffer()
-PASS Unscopable handled correctly for arrayBuffer() on Request
-PASS Request interface: operation blob()
-PASS Unscopable handled correctly for blob() on Request
-PASS Request interface: operation formData()
-PASS Unscopable handled correctly for formData() on Request
-PASS Request interface: operation json()
-PASS Unscopable handled correctly for json() on Request
-PASS Request interface: operation text()
-PASS Unscopable handled correctly for text() on Request
-PASS Request must be primary interface of new Request("")
-PASS Stringification of new Request("")
-PASS Request interface: new Request("") must inherit property "method" with the proper type
-PASS Request interface: new Request("") must inherit property "url" with the proper type
-PASS Request interface: new Request("") must inherit property "headers" with the proper type
-PASS Request interface: new Request("") must inherit property "destination" with the proper type
-PASS Request interface: new Request("") must inherit property "referrer" with the proper type
-PASS Request interface: new Request("") must inherit property "referrerPolicy" with the proper type
-PASS Request interface: new Request("") must inherit property "mode" with the proper type
-PASS Request interface: new Request("") must inherit property "credentials" with the proper type
-PASS Request interface: new Request("") must inherit property "cache" with the proper type
-PASS Request interface: new Request("") must inherit property "redirect" with the proper type
-PASS Request interface: new Request("") must inherit property "integrity" with the proper type
-PASS Request interface: new Request("") must inherit property "clone()" with the proper type
-FAIL Request interface: new Request("") must inherit property "body" with the proper type assert_inherits: property "body" not found in prototype chain
-PASS Request interface: new Request("") must inherit property "bodyUsed" with the proper type
-PASS Request interface: new Request("") must inherit property "arrayBuffer()" with the proper type
-PASS Request interface: new Request("") must inherit property "blob()" with the proper type
-PASS Request interface: new Request("") must inherit property "formData()" with the proper type
-PASS Request interface: new Request("") must inherit property "json()" with the proper type
-PASS Request interface: new Request("") must inherit property "text()" with the proper type
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/fetch/api/response/response-idl-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/fetch/api/response/response-idl-expected.txt
deleted file mode 100644
index 81ae70e..0000000
--- a/third_party/WebKit/LayoutTests/platform/win/external/wpt/fetch/api/response/response-idl-expected.txt
+++ /dev/null
@@ -1,64 +0,0 @@
-This is a testharness.js-based test.
-Found 60 tests; 58 PASS, 2 FAIL, 0 TIMEOUT, 0 NOTRUN.
-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 Unscopable handled correctly for error() on Response
-PASS Response interface: operation redirect(USVString, unsigned short)
-PASS Unscopable handled correctly for redirect(USVString, unsigned short) on Response
-PASS Response interface: attribute type
-PASS Unscopable handled correctly for type property on Response
-PASS Response interface: attribute url
-PASS Unscopable handled correctly for url property on Response
-PASS Response interface: attribute status
-PASS Unscopable handled correctly for status property on Response
-PASS Response interface: attribute ok
-PASS Unscopable handled correctly for ok property on Response
-PASS Response interface: attribute statusText
-PASS Unscopable handled correctly for statusText property on Response
-PASS Response interface: attribute headers
-PASS Unscopable handled correctly for headers property on Response
-FAIL Response interface: attribute trailer assert_true: The prototype object must have a property "trailer" expected true got false
-PASS Unscopable handled correctly for trailer property on Response
-PASS Response interface: operation clone()
-PASS Unscopable handled correctly for clone() on Response
-PASS Response interface: attribute body
-PASS Unscopable handled correctly for body property on Response
-PASS Response interface: attribute bodyUsed
-PASS Unscopable handled correctly for bodyUsed property on Response
-PASS Response interface: operation arrayBuffer()
-PASS Unscopable handled correctly for arrayBuffer() on Response
-PASS Response interface: operation blob()
-PASS Unscopable handled correctly for blob() on Response
-PASS Response interface: operation formData()
-PASS Unscopable handled correctly for formData() on Response
-PASS Response interface: operation json()
-PASS Unscopable handled correctly for json() on Response
-PASS Response interface: operation text()
-PASS Unscopable handled correctly for text() on Response
-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, unsigned short)" with the proper type
-PASS Response interface: calling redirect(USVString, 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 "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
-FAIL Response interface: new Response() must inherit property "trailer" with the proper type assert_inherits: property "trailer" not found in prototype chain
-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
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/fullscreen/interfaces-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/fullscreen/interfaces-expected.txt
deleted file mode 100644
index ed3cce9..0000000
--- a/third_party/WebKit/LayoutTests/platform/win/external/wpt/fullscreen/interfaces-expected.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-This is a testharness.js-based test.
-PASS Test driver
-FAIL Document interface: attribute fullscreenEnabled assert_equals: setter must be function for PutForwards, Replaceable, or non-readonly attributes expected "function" but got "undefined"
-PASS Unscopable handled correctly for fullscreenEnabled property on Document
-FAIL Document interface: attribute fullscreen assert_true: The prototype object must have a property "fullscreen" expected true got false
-FAIL Unscopable handled correctly for fullscreen property on Document assert_equals: Document.prototype[Symbol.unscopables].fullscreen must exist expected "object" but got "undefined"
-FAIL Document interface: operation exitFullscreen() assert_unreached: Throws "TypeError: Illegal invocation" instead of rejecting promise Reached unreachable code
-PASS Unscopable handled correctly for exitFullscreen() on Document
-PASS Document interface: attribute onfullscreenchange
-PASS Unscopable handled correctly for onfullscreenchange property on Document
-PASS Document interface: attribute onfullscreenerror
-PASS Unscopable handled correctly for onfullscreenerror property on Document
-FAIL Document interface: attribute fullscreenElement assert_equals: setter must be function for PutForwards, Replaceable, or non-readonly attributes expected "function" but got "undefined"
-PASS Unscopable handled correctly for fullscreenElement property on Document
-PASS Document interface: new Document must inherit property "fullscreenEnabled" with the proper type
-FAIL Document interface: new Document must inherit property "fullscreen" with the proper type assert_inherits: property "fullscreen" not found in prototype chain
-PASS Document interface: new Document must inherit property "exitFullscreen()" with the proper type
-PASS Document interface: new Document must inherit property "onfullscreenchange" with the proper type
-PASS Document interface: new Document must inherit property "onfullscreenerror" with the proper type
-PASS Document interface: new Document must inherit property "fullscreenElement" with the proper type
-FAIL ShadowRoot interface: attribute fullscreenElement assert_equals: setter must be function for PutForwards, Replaceable, or non-readonly attributes expected "function" but got "undefined"
-PASS Unscopable handled correctly for fullscreenElement property on ShadowRoot
-FAIL Element interface: operation requestFullscreen() assert_unreached: Throws "TypeError: Illegal invocation" instead of rejecting promise Reached unreachable code
-PASS Unscopable handled correctly for requestFullscreen() on Element
-PASS Element interface: attribute onfullscreenchange
-PASS Unscopable handled correctly for onfullscreenchange property on Element
-PASS Element interface: attribute onfullscreenerror
-PASS Unscopable handled correctly for onfullscreenerror property on Element
-PASS Element interface: document.createElementNS(null, "test") must inherit property "requestFullscreen()" with the proper type
-PASS Element interface: document.createElementNS(null, "test") must inherit property "onfullscreenchange" with the proper type
-PASS Element interface: document.createElementNS(null, "test") must inherit property "onfullscreenerror" with the proper type
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/geolocation-sensor/idlharness.https-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/geolocation-sensor/idlharness.https-expected.txt
deleted file mode 100644
index 03447b6..0000000
--- a/third_party/WebKit/LayoutTests/platform/win/external/wpt/geolocation-sensor/idlharness.https-expected.txt
+++ /dev/null
@@ -1,67 +0,0 @@
-This is a testharness.js-based test.
-PASS Test IDL implementation of Geolocation Sensor
-PASS Sensor interface: existence and properties of interface object
-PASS Sensor interface object length
-PASS Sensor interface object name
-PASS Sensor interface: existence and properties of interface prototype object
-PASS Sensor interface: existence and properties of interface prototype object's "constructor" property
-PASS Sensor interface: existence and properties of interface prototype object's @@unscopables property
-PASS Sensor interface: attribute activated
-PASS Unscopable handled correctly for activated property on Sensor
-PASS Sensor interface: attribute hasReading
-PASS Unscopable handled correctly for hasReading property on Sensor
-PASS Sensor interface: attribute timestamp
-PASS Unscopable handled correctly for timestamp property on Sensor
-PASS Sensor interface: operation start()
-PASS Unscopable handled correctly for start() on Sensor
-PASS Sensor interface: operation stop()
-PASS Unscopable handled correctly for stop() on Sensor
-PASS Sensor interface: attribute onreading
-PASS Unscopable handled correctly for onreading property on Sensor
-PASS Sensor interface: attribute onactivate
-PASS Unscopable handled correctly for onactivate property on Sensor
-PASS Sensor interface: attribute onerror
-PASS Unscopable handled correctly for onerror property on Sensor
-FAIL GeolocationSensor interface: existence and properties of interface object assert_own_property: self does not have own property "GeolocationSensor" expected property "GeolocationSensor" missing
-FAIL GeolocationSensor interface object length assert_own_property: self does not have own property "GeolocationSensor" expected property "GeolocationSensor" missing
-FAIL GeolocationSensor interface object name assert_own_property: self does not have own property "GeolocationSensor" expected property "GeolocationSensor" missing
-FAIL GeolocationSensor interface: existence and properties of interface prototype object assert_own_property: self does not have own property "GeolocationSensor" expected property "GeolocationSensor" missing
-FAIL GeolocationSensor interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "GeolocationSensor" expected property "GeolocationSensor" missing
-FAIL GeolocationSensor interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "GeolocationSensor" expected property "GeolocationSensor" missing
-FAIL GeolocationSensor interface: operation read(ReadOptions) assert_own_property: self does not have own property "GeolocationSensor" expected property "GeolocationSensor" missing
-PASS Unscopable handled correctly for read(ReadOptions) on GeolocationSensor
-FAIL GeolocationSensor interface: attribute latitude assert_own_property: self does not have own property "GeolocationSensor" expected property "GeolocationSensor" missing
-PASS Unscopable handled correctly for latitude property on GeolocationSensor
-FAIL GeolocationSensor interface: attribute longitude assert_own_property: self does not have own property "GeolocationSensor" expected property "GeolocationSensor" missing
-PASS Unscopable handled correctly for longitude property on GeolocationSensor
-FAIL GeolocationSensor interface: attribute altitude assert_own_property: self does not have own property "GeolocationSensor" expected property "GeolocationSensor" missing
-PASS Unscopable handled correctly for altitude property on GeolocationSensor
-FAIL GeolocationSensor interface: attribute accuracy assert_own_property: self does not have own property "GeolocationSensor" expected property "GeolocationSensor" missing
-PASS Unscopable handled correctly for accuracy property on GeolocationSensor
-FAIL GeolocationSensor interface: attribute altitudeAccuracy assert_own_property: self does not have own property "GeolocationSensor" expected property "GeolocationSensor" missing
-PASS Unscopable handled correctly for altitudeAccuracy property on GeolocationSensor
-FAIL GeolocationSensor interface: attribute heading assert_own_property: self does not have own property "GeolocationSensor" expected property "GeolocationSensor" missing
-PASS Unscopable handled correctly for heading property on GeolocationSensor
-FAIL GeolocationSensor interface: attribute speed assert_own_property: self does not have own property "GeolocationSensor" expected property "GeolocationSensor" missing
-PASS Unscopable handled correctly for speed property on GeolocationSensor
-FAIL GeolocationSensor must be primary interface of new GeolocationSensor assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GeolocationSensor is not defined"
-FAIL Stringification of new GeolocationSensor assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GeolocationSensor is not defined"
-FAIL GeolocationSensor interface: new GeolocationSensor must inherit property "read(ReadOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GeolocationSensor is not defined"
-FAIL GeolocationSensor interface: calling read(ReadOptions) on new GeolocationSensor with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GeolocationSensor is not defined"
-FAIL GeolocationSensor interface: new GeolocationSensor must inherit property "latitude" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GeolocationSensor is not defined"
-FAIL GeolocationSensor interface: new GeolocationSensor must inherit property "longitude" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GeolocationSensor is not defined"
-FAIL GeolocationSensor interface: new GeolocationSensor must inherit property "altitude" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GeolocationSensor is not defined"
-FAIL GeolocationSensor interface: new GeolocationSensor must inherit property "accuracy" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GeolocationSensor is not defined"
-FAIL GeolocationSensor interface: new GeolocationSensor must inherit property "altitudeAccuracy" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GeolocationSensor is not defined"
-FAIL GeolocationSensor interface: new GeolocationSensor must inherit property "heading" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GeolocationSensor is not defined"
-FAIL GeolocationSensor interface: new GeolocationSensor must inherit property "speed" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GeolocationSensor is not defined"
-FAIL Sensor interface: new GeolocationSensor must inherit property "activated" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GeolocationSensor is not defined"
-FAIL Sensor interface: new GeolocationSensor must inherit property "hasReading" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GeolocationSensor is not defined"
-FAIL Sensor interface: new GeolocationSensor must inherit property "timestamp" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GeolocationSensor is not defined"
-FAIL Sensor interface: new GeolocationSensor must inherit property "start()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GeolocationSensor is not defined"
-FAIL Sensor interface: new GeolocationSensor must inherit property "stop()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GeolocationSensor is not defined"
-FAIL Sensor interface: new GeolocationSensor must inherit property "onreading" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GeolocationSensor is not defined"
-FAIL Sensor interface: new GeolocationSensor must inherit property "onactivate" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GeolocationSensor is not defined"
-FAIL Sensor interface: new GeolocationSensor must inherit property "onerror" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: GeolocationSensor is not defined"
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/html-media-capture/idlharness-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/html-media-capture/idlharness-expected.txt
deleted file mode 100644
index ee3ce07..0000000
--- a/third_party/WebKit/LayoutTests/platform/win/external/wpt/html-media-capture/idlharness-expected.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-This is a testharness.js-based test.
-FAIL HTMLInputElement interface: attribute capture assert_true: The prototype object must have a property "capture" expected true got false
-PASS Unscopable handled correctly for capture property on HTMLInputElement
-FAIL HTMLInputElement interface: [object HTMLInputElement] must inherit property "capture" with the proper type assert_inherits: property "capture" not found in prototype chain
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/html/browsers/origin/cross-origin-objects/cross-origin-objects-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/html/browsers/origin/cross-origin-objects/cross-origin-objects-expected.txt
deleted file mode 100644
index 5026c25..0000000
--- a/third_party/WebKit/LayoutTests/platform/win/external/wpt/html/browsers/origin/cross-origin-objects/cross-origin-objects-expected.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-This is a testharness.js-based test.
-PASS Basic sanity-checking
-PASS Only whitelisted properties are accessible cross-origin
-PASS [[GetPrototypeOf]] should return null
-FAIL [[SetPrototypeOf]] should return false assert_throws: proto setter |call| on cross-origin Window function "function() { protoSetter.call(C, new Object()); }" threw object "SecurityError: Blocked a frame with origin "http://web-platform.test:8001" from accessing a cross-origin frame." ("SecurityError") expected object "TypeError" ("TypeError")
-PASS [[IsExtensible]] should return true for cross-origin objects
-FAIL [[PreventExtensions]] should throw for cross-origin objects assert_throws: preventExtensions on cross-origin Window should throw function "function() { Object.preventExtensions(C) }" threw object "SecurityError: Blocked a frame with origin "http://web-platform.test:8001" from accessing a cross-origin frame." ("SecurityError") expected object "TypeError" ("TypeError")
-FAIL [[GetOwnProperty]] - Properties on cross-origin objects should be reported |own| Blocked a frame with origin "http://web-platform.test:8001" from accessing a cross-origin frame.
-FAIL [[GetOwnProperty]] - Property descriptors for cross-origin properties should be set up correctly assert_equals: property descriptor for 0 should be enumerable expected true but got false
-PASS [[GetOwnProperty]] - Subframe named 'then' should shadow the default 'then' value
-PASS [[Delete]] Should throw on cross-origin objects
-PASS [[DefineOwnProperty]] Should throw for cross-origin objects
-FAIL Can only enumerate safelisted enumerable properties assert_equals: Enumerate all enumerable safelisted cross-origin Window properties expected 2 but got 0
-FAIL [[OwnPropertyKeys]] should return all properties from cross-origin objects assert_array_equals: Object.getOwnPropertyNames() gives the right answer for cross-origin Window lengths differ, expected 16 got 13
-FAIL [[OwnPropertyKeys]] should return the right symbol-named properties for cross-origin objects assert_array_equals: Object.getOwnPropertySymbols() should return the three symbol-named properties that are exposed on a cross-origin Window lengths differ, expected 3 got 0
-FAIL [[OwnPropertyKeys]] should place the symbols after the property names after the subframe indices assert_equals: 'then' property should be added to the end of the string list if not there expected "then" but got "close"
-FAIL [[OwnPropertyKeys]] should not reorder where 'then' appears if it's a named subframe, nor add another copy of 'then' assert_equals: expected "then" but got "postMessage"
-PASS A and B jointly observe the same identity for cross-origin Window and Location
-PASS Cross-origin functions get local Function.prototype
-FAIL Cross-origin Window accessors get local Function.prototype Cannot read property 'name' of undefined
-FAIL Same-origin observers get different functions for cross-origin objects assert_true: same-origin Window functions get their own object expected true got false
-FAIL Same-origin observers get different accessors for cross-origin Window assert_true: different Window accessors per-incumbent script settings object expected true got false
-FAIL Same-origin observers get different accessors for cross-origin Location Blocked a frame with origin "http://web-platform.test:8001" from accessing a cross-origin frame.
-FAIL {}.toString.call() does the right thing on cross-origin objects assert_equals: expected "[object Object]" but got "[object Location]"
-PASS Resolving a promise with a cross-origin window without a 'then' subframe should work.
-PASS Resolving a promise with a cross-origin window with a 'then' subframe should work.
-PASS Resolving a promise with a cross-origin location should work.
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/html/dom/interfaces-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/html/dom/interfaces-expected.txt
deleted file mode 100644
index dfcde73..0000000
--- a/third_party/WebKit/LayoutTests/platform/win/external/wpt/html/dom/interfaces-expected.txt
+++ /dev/null
@@ -1,6708 +0,0 @@
-This is a testharness.js-based test.
-Found 6702 tests; 6596 PASS, 106 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS Test driver
-PASS Document interface: attribute domain
-PASS Unscopable handled correctly for domain property on Document
-PASS Document interface: attribute referrer
-PASS Unscopable handled correctly for referrer property on Document
-PASS Document interface: attribute cookie
-PASS Unscopable handled correctly for cookie property on Document
-PASS Document interface: attribute lastModified
-PASS Unscopable handled correctly for lastModified property on Document
-PASS Document interface: attribute readyState
-PASS Unscopable handled correctly for readyState property on Document
-PASS Document interface: attribute title
-PASS Unscopable handled correctly for title property on Document
-PASS Document interface: attribute dir
-PASS Unscopable handled correctly for dir property on Document
-PASS Document interface: attribute body
-PASS Unscopable handled correctly for body property on Document
-PASS Document interface: attribute head
-PASS Unscopable handled correctly for head property on Document
-PASS Document interface: attribute images
-PASS Unscopable handled correctly for images property on Document
-PASS Document interface: attribute embeds
-PASS Unscopable handled correctly for embeds property on Document
-PASS Document interface: attribute plugins
-PASS Unscopable handled correctly for plugins property on Document
-PASS Document interface: attribute links
-PASS Unscopable handled correctly for links property on Document
-PASS Document interface: attribute forms
-PASS Unscopable handled correctly for forms property on Document
-PASS Document interface: attribute scripts
-PASS Unscopable handled correctly for scripts property on Document
-PASS Document interface: operation getElementsByName(DOMString)
-PASS Unscopable handled correctly for getElementsByName(DOMString) on Document
-PASS Document interface: attribute currentScript
-PASS Unscopable handled correctly for currentScript property on Document
-PASS Document interface: operation open(DOMString, DOMString)
-PASS Unscopable handled correctly for open(DOMString, DOMString) on Document
-PASS Document interface: operation open(USVString, DOMString, DOMString)
-PASS Unscopable handled correctly for open(USVString, DOMString, DOMString) on Document
-PASS Document interface: operation close()
-PASS Unscopable handled correctly for close() on Document
-PASS Document interface: operation write(DOMString)
-PASS Unscopable handled correctly for write(DOMString) on Document
-PASS Document interface: operation writeln(DOMString)
-PASS Unscopable handled correctly for writeln(DOMString) on Document
-PASS Document interface: attribute defaultView
-PASS Unscopable handled correctly for defaultView property on Document
-PASS Document interface: attribute activeElement
-PASS Unscopable handled correctly for activeElement property on Document
-PASS Document interface: operation hasFocus()
-PASS Unscopable handled correctly for hasFocus() on Document
-PASS Document interface: attribute designMode
-PASS Unscopable handled correctly for designMode property on Document
-PASS Document interface: operation execCommand(DOMString, boolean, DOMString)
-PASS Unscopable handled correctly for execCommand(DOMString, boolean, DOMString) on Document
-PASS Document interface: operation queryCommandEnabled(DOMString)
-PASS Unscopable handled correctly for queryCommandEnabled(DOMString) on Document
-PASS Document interface: operation queryCommandIndeterm(DOMString)
-PASS Unscopable handled correctly for queryCommandIndeterm(DOMString) on Document
-PASS Document interface: operation queryCommandState(DOMString)
-PASS Unscopable handled correctly for queryCommandState(DOMString) on Document
-PASS Document interface: operation queryCommandSupported(DOMString)
-PASS Unscopable handled correctly for queryCommandSupported(DOMString) on Document
-PASS Document interface: operation queryCommandValue(DOMString)
-PASS Unscopable handled correctly for queryCommandValue(DOMString) on Document
-PASS Document interface: attribute onreadystatechange
-PASS Unscopable handled correctly for onreadystatechange property on Document
-PASS Document interface: attribute fgColor
-PASS Unscopable handled correctly for fgColor property on Document
-PASS Document interface: attribute linkColor
-PASS Unscopable handled correctly for linkColor property on Document
-PASS Document interface: attribute vlinkColor
-PASS Unscopable handled correctly for vlinkColor property on Document
-PASS Document interface: attribute alinkColor
-PASS Unscopable handled correctly for alinkColor property on Document
-PASS Document interface: attribute bgColor
-PASS Unscopable handled correctly for bgColor property on Document
-PASS Document interface: attribute anchors
-PASS Unscopable handled correctly for anchors property on Document
-PASS Document interface: attribute applets
-PASS Unscopable handled correctly for applets property on Document
-PASS Document interface: operation clear()
-PASS Unscopable handled correctly for clear() on Document
-PASS Document interface: operation captureEvents()
-PASS Unscopable handled correctly for captureEvents() on Document
-PASS Document interface: operation releaseEvents()
-PASS Unscopable handled correctly for releaseEvents() on Document
-PASS Document interface: attribute all
-PASS Unscopable handled correctly for all property on Document
-PASS Document interface: attribute onabort
-PASS Unscopable handled correctly for onabort property on Document
-PASS Document interface: attribute onauxclick
-PASS Unscopable handled correctly for onauxclick property on Document
-PASS Document interface: attribute onblur
-PASS Unscopable handled correctly for onblur property on Document
-PASS Document interface: attribute oncancel
-PASS Unscopable handled correctly for oncancel property on Document
-PASS Document interface: attribute oncanplay
-PASS Unscopable handled correctly for oncanplay property on Document
-PASS Document interface: attribute oncanplaythrough
-PASS Unscopable handled correctly for oncanplaythrough property on Document
-PASS Document interface: attribute onchange
-PASS Unscopable handled correctly for onchange property on Document
-PASS Document interface: attribute onclick
-PASS Unscopable handled correctly for onclick property on Document
-PASS Document interface: attribute onclose
-PASS Unscopable handled correctly for onclose property on Document
-PASS Document interface: attribute oncontextmenu
-PASS Unscopable handled correctly for oncontextmenu property on Document
-PASS Document interface: attribute oncuechange
-PASS Unscopable handled correctly for oncuechange property on Document
-PASS Document interface: attribute ondblclick
-PASS Unscopable handled correctly for ondblclick property on Document
-PASS Document interface: attribute ondrag
-PASS Unscopable handled correctly for ondrag property on Document
-PASS Document interface: attribute ondragend
-PASS Unscopable handled correctly for ondragend property on Document
-PASS Document interface: attribute ondragenter
-PASS Unscopable handled correctly for ondragenter property on Document
-FAIL Document interface: attribute ondragexit assert_true: The prototype object must have a property "ondragexit" expected true got false
-PASS Unscopable handled correctly for ondragexit property on Document
-PASS Document interface: attribute ondragleave
-PASS Unscopable handled correctly for ondragleave property on Document
-PASS Document interface: attribute ondragover
-PASS Unscopable handled correctly for ondragover property on Document
-PASS Document interface: attribute ondragstart
-PASS Unscopable handled correctly for ondragstart property on Document
-PASS Document interface: attribute ondrop
-PASS Unscopable handled correctly for ondrop property on Document
-PASS Document interface: attribute ondurationchange
-PASS Unscopable handled correctly for ondurationchange property on Document
-PASS Document interface: attribute onemptied
-PASS Unscopable handled correctly for onemptied property on Document
-PASS Document interface: attribute onended
-PASS Unscopable handled correctly for onended property on Document
-PASS Document interface: attribute onerror
-PASS Unscopable handled correctly for onerror property on Document
-PASS Document interface: attribute onfocus
-PASS Unscopable handled correctly for onfocus property on Document
-PASS Document interface: attribute oninput
-PASS Unscopable handled correctly for oninput property on Document
-PASS Document interface: attribute oninvalid
-PASS Unscopable handled correctly for oninvalid property on Document
-PASS Document interface: attribute onkeydown
-PASS Unscopable handled correctly for onkeydown property on Document
-PASS Document interface: attribute onkeypress
-PASS Unscopable handled correctly for onkeypress property on Document
-PASS Document interface: attribute onkeyup
-PASS Unscopable handled correctly for onkeyup property on Document
-PASS Document interface: attribute onload
-PASS Unscopable handled correctly for onload property on Document
-PASS Document interface: attribute onloadeddata
-PASS Unscopable handled correctly for onloadeddata property on Document
-PASS Document interface: attribute onloadedmetadata
-PASS Unscopable handled correctly for onloadedmetadata property on Document
-FAIL Document interface: attribute onloadend assert_true: The prototype object must have a property "onloadend" expected true got false
-PASS Unscopable handled correctly for onloadend property on Document
-PASS Document interface: attribute onloadstart
-PASS Unscopable handled correctly for onloadstart property on Document
-PASS Document interface: attribute onmousedown
-PASS Unscopable handled correctly for onmousedown property on Document
-PASS Document interface: attribute onmouseenter
-PASS Unscopable handled correctly for onmouseenter property on Document
-PASS Document interface: attribute onmouseleave
-PASS Unscopable handled correctly for onmouseleave property on Document
-PASS Document interface: attribute onmousemove
-PASS Unscopable handled correctly for onmousemove property on Document
-PASS Document interface: attribute onmouseout
-PASS Unscopable handled correctly for onmouseout property on Document
-PASS Document interface: attribute onmouseover
-PASS Unscopable handled correctly for onmouseover property on Document
-PASS Document interface: attribute onmouseup
-PASS Unscopable handled correctly for onmouseup property on Document
-PASS Document interface: attribute onwheel
-PASS Unscopable handled correctly for onwheel property on Document
-PASS Document interface: attribute onpause
-PASS Unscopable handled correctly for onpause property on Document
-PASS Document interface: attribute onplay
-PASS Unscopable handled correctly for onplay property on Document
-PASS Document interface: attribute onplaying
-PASS Unscopable handled correctly for onplaying property on Document
-PASS Document interface: attribute onprogress
-PASS Unscopable handled correctly for onprogress property on Document
-PASS Document interface: attribute onratechange
-PASS Unscopable handled correctly for onratechange property on Document
-PASS Document interface: attribute onreset
-PASS Unscopable handled correctly for onreset property on Document
-PASS Document interface: attribute onresize
-PASS Unscopable handled correctly for onresize property on Document
-PASS Document interface: attribute onscroll
-PASS Unscopable handled correctly for onscroll property on Document
-PASS Document interface: attribute onsecuritypolicyviolation
-PASS Unscopable handled correctly for onsecuritypolicyviolation property on Document
-PASS Document interface: attribute onseeked
-PASS Unscopable handled correctly for onseeked property on Document
-PASS Document interface: attribute onseeking
-PASS Unscopable handled correctly for onseeking property on Document
-PASS Document interface: attribute onselect
-PASS Unscopable handled correctly for onselect property on Document
-PASS Document interface: attribute onstalled
-PASS Unscopable handled correctly for onstalled property on Document
-PASS Document interface: attribute onsubmit
-PASS Unscopable handled correctly for onsubmit property on Document
-PASS Document interface: attribute onsuspend
-PASS Unscopable handled correctly for onsuspend property on Document
-PASS Document interface: attribute ontimeupdate
-PASS Unscopable handled correctly for ontimeupdate property on Document
-PASS Document interface: attribute ontoggle
-PASS Unscopable handled correctly for ontoggle property on Document
-PASS Document interface: attribute onvolumechange
-PASS Unscopable handled correctly for onvolumechange property on Document
-PASS Document interface: attribute onwaiting
-PASS Unscopable handled correctly for onwaiting property on Document
-PASS Document interface: attribute oncopy
-PASS Unscopable handled correctly for oncopy property on Document
-PASS Document interface: attribute oncut
-PASS Unscopable handled correctly for oncut property on Document
-PASS Document interface: attribute onpaste
-PASS Unscopable handled correctly for onpaste property on Document
-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(DOMString, DOMString)" with the proper type
-PASS Document interface: calling open(DOMString, 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
-FAIL Document interface: iframe.contentDocument must inherit property "defaultView" with the proper type Unrecognized type WindowProxy
-PASS Document interface: iframe.contentDocument must inherit property "activeElement" 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, boolean, DOMString)" with the proper type
-PASS Document interface: calling execCommand(DOMString, boolean, 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
-FAIL Document interface: iframe.contentDocument must inherit property "all" with the proper type assert_in_array: wrong type: not object or function value "undefined" not in array ["object", "function"]
-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
-FAIL Document interface: iframe.contentDocument must inherit property "ondragexit" with the proper type assert_inherits: property "ondragexit" not found in prototype chain
-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 "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
-FAIL Document interface: iframe.contentDocument must inherit property "onloadend" with the proper type assert_inherits: property "onloadend" not found in prototype chain
-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 "onwheel" 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
-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 "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: 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(DOMString, DOMString)" with the proper type
-PASS Document interface: calling open(DOMString, 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 "activeElement" 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, boolean, DOMString)" with the proper type
-PASS Document interface: calling execCommand(DOMString, boolean, 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
-FAIL Document interface: new Document() must inherit property "all" with the proper type assert_in_array: wrong type: not object or function value "undefined" not in array ["object", "function"]
-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
-FAIL Document interface: new Document() must inherit property "ondragexit" with the proper type assert_inherits: property "ondragexit" not found in prototype chain
-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 "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
-FAIL Document interface: new Document() must inherit property "onloadend" with the proper type assert_inherits: property "onloadend" not found in prototype chain
-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 "onwheel" 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
-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 "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: document.implementation.createDocument(null, "", null) must have own property "location"
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "domain" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "referrer" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "cookie" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "lastModified" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "readyState" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "title" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "dir" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "body" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "head" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "images" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "embeds" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "plugins" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "links" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "forms" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "scripts" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "getElementsByName(DOMString)" with the proper type
-PASS Document interface: calling getElementsByName(DOMString) on document.implementation.createDocument(null, "", null) with too few arguments must throw TypeError
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "currentScript" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "open(DOMString, DOMString)" with the proper type
-PASS Document interface: calling open(DOMString, DOMString) on document.implementation.createDocument(null, "", null) with too few arguments must throw TypeError
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "open(USVString, DOMString, DOMString)" with the proper type
-PASS Document interface: calling open(USVString, DOMString, DOMString) on document.implementation.createDocument(null, "", null) with too few arguments must throw TypeError
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "close()" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "write(DOMString)" with the proper type
-PASS Document interface: calling write(DOMString) on document.implementation.createDocument(null, "", null) with too few arguments must throw TypeError
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "writeln(DOMString)" with the proper type
-PASS Document interface: calling writeln(DOMString) on document.implementation.createDocument(null, "", null) with too few arguments must throw TypeError
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "defaultView" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "activeElement" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "hasFocus()" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "designMode" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "execCommand(DOMString, boolean, DOMString)" with the proper type
-PASS Document interface: calling execCommand(DOMString, boolean, DOMString) on document.implementation.createDocument(null, "", null) with too few arguments must throw TypeError
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "queryCommandEnabled(DOMString)" with the proper type
-PASS Document interface: calling queryCommandEnabled(DOMString) on document.implementation.createDocument(null, "", null) with too few arguments must throw TypeError
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "queryCommandIndeterm(DOMString)" with the proper type
-PASS Document interface: calling queryCommandIndeterm(DOMString) on document.implementation.createDocument(null, "", null) with too few arguments must throw TypeError
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "queryCommandState(DOMString)" with the proper type
-PASS Document interface: calling queryCommandState(DOMString) on document.implementation.createDocument(null, "", null) with too few arguments must throw TypeError
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "queryCommandSupported(DOMString)" with the proper type
-PASS Document interface: calling queryCommandSupported(DOMString) on document.implementation.createDocument(null, "", null) with too few arguments must throw TypeError
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "queryCommandValue(DOMString)" with the proper type
-PASS Document interface: calling queryCommandValue(DOMString) on document.implementation.createDocument(null, "", null) with too few arguments must throw TypeError
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onreadystatechange" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "fgColor" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "linkColor" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "vlinkColor" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "alinkColor" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "bgColor" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "anchors" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "applets" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "clear()" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "captureEvents()" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "releaseEvents()" with the proper type
-FAIL Document interface: document.implementation.createDocument(null, "", null) must inherit property "all" with the proper type assert_in_array: wrong type: not object or function value "undefined" not in array ["object", "function"]
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onabort" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onauxclick" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onblur" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "oncancel" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "oncanplay" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "oncanplaythrough" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onchange" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onclick" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onclose" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "oncontextmenu" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "oncuechange" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "ondblclick" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "ondrag" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "ondragend" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "ondragenter" with the proper type
-FAIL Document interface: document.implementation.createDocument(null, "", null) must inherit property "ondragexit" with the proper type assert_inherits: property "ondragexit" not found in prototype chain
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "ondragleave" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "ondragover" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "ondragstart" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "ondrop" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "ondurationchange" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onemptied" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onended" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onerror" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onfocus" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "oninput" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "oninvalid" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onkeydown" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onkeypress" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onkeyup" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onload" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onloadeddata" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onloadedmetadata" with the proper type
-FAIL Document interface: document.implementation.createDocument(null, "", null) must inherit property "onloadend" with the proper type assert_inherits: property "onloadend" not found in prototype chain
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onloadstart" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onmousedown" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onmouseenter" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onmouseleave" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onmousemove" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onmouseout" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onmouseover" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onmouseup" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onwheel" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onpause" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onplay" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onplaying" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onprogress" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onratechange" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onreset" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onresize" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onscroll" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onsecuritypolicyviolation" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onseeked" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onseeking" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onselect" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onstalled" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onsubmit" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onsuspend" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "ontimeupdate" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "ontoggle" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onvolumechange" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onwaiting" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "oncopy" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "oncut" with the proper type
-PASS Document interface: document.implementation.createDocument(null, "", null) must inherit property "onpaste" with the proper type
-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 Unscopable handled correctly for length property on HTMLAllCollection
-PASS HTMLAllCollection interface: operation namedItem(DOMString)
-PASS Unscopable handled correctly for namedItem(DOMString) on HTMLAllCollection
-PASS HTMLAllCollection interface: operation item(DOMString)
-PASS Unscopable handled correctly for item(DOMString) on HTMLAllCollection
-FAIL HTMLAllCollection must be primary interface of document.all assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL Stringification of document.all assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL HTMLAllCollection interface: document.all must inherit property "length" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL HTMLAllCollection interface: document.all must inherit property "namedItem(DOMString)" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL HTMLAllCollection interface: calling namedItem(DOMString) on document.all with too few arguments must throw TypeError assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL HTMLAllCollection interface: document.all must inherit property "item(DOMString)" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL HTMLAllCollection interface: calling item(DOMString) on document.all with too few arguments must throw TypeError assert_equals: wrong typeof object expected "object" but got "undefined"
-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 Unscopable handled correctly for namedItem(DOMString) on HTMLFormControlsCollection
-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 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 Unscopable handled correctly for value property on RadioNodeList
-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 Unscopable handled correctly for length property on HTMLOptionsCollection
-PASS HTMLOptionsCollection interface: operation add([object Object],[object Object], [object Object],[object Object])
-PASS Unscopable handled correctly for add([object Object],[object Object], [object Object],[object Object]) on HTMLOptionsCollection
-PASS HTMLOptionsCollection interface: operation remove(long)
-PASS Unscopable handled correctly for remove(long) on HTMLOptionsCollection
-PASS HTMLOptionsCollection interface: attribute selectedIndex
-PASS Unscopable handled correctly for selectedIndex property on HTMLOptionsCollection
-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([object Object],[object Object], [object Object],[object Object])" with the proper type
-PASS HTMLOptionsCollection interface: calling add([object Object],[object Object], [object Object],[object Object]) 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 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 Unscopable handled correctly for length property on DOMStringList
-PASS DOMStringList interface: operation item(unsigned long)
-PASS Unscopable handled correctly for item(unsigned long) on DOMStringList
-PASS DOMStringList interface: operation contains(DOMString)
-PASS Unscopable handled correctly for contains(DOMString) on DOMStringList
-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 Unscopable handled correctly for title property on HTMLElement
-PASS HTMLElement interface: attribute lang
-PASS Unscopable handled correctly for lang property on HTMLElement
-PASS HTMLElement interface: attribute translate
-PASS Unscopable handled correctly for translate property on HTMLElement
-PASS HTMLElement interface: attribute dir
-PASS Unscopable handled correctly for dir property on HTMLElement
-PASS HTMLElement interface: attribute dataset
-PASS Unscopable handled correctly for dataset property on HTMLElement
-PASS HTMLElement interface: attribute hidden
-PASS Unscopable handled correctly for hidden property on HTMLElement
-PASS HTMLElement interface: operation click()
-PASS Unscopable handled correctly for click() on HTMLElement
-PASS HTMLElement interface: attribute tabIndex
-PASS Unscopable handled correctly for tabIndex property on HTMLElement
-PASS HTMLElement interface: operation focus(FocusOptions)
-PASS Unscopable handled correctly for focus(FocusOptions) on HTMLElement
-PASS HTMLElement interface: operation blur()
-PASS Unscopable handled correctly for blur() on HTMLElement
-PASS HTMLElement interface: attribute accessKey
-PASS Unscopable handled correctly for accessKey property on HTMLElement
-FAIL HTMLElement interface: attribute accessKeyLabel assert_true: The prototype object must have a property "accessKeyLabel" expected true got false
-PASS Unscopable handled correctly for accessKeyLabel property on HTMLElement
-PASS HTMLElement interface: attribute draggable
-PASS Unscopable handled correctly for draggable property on HTMLElement
-PASS HTMLElement interface: attribute spellcheck
-PASS Unscopable handled correctly for spellcheck property on HTMLElement
-PASS HTMLElement interface: attribute innerText
-PASS Unscopable handled correctly for innerText property on HTMLElement
-PASS HTMLElement interface: attribute onabort
-PASS Unscopable handled correctly for onabort property on HTMLElement
-PASS HTMLElement interface: attribute onauxclick
-PASS Unscopable handled correctly for onauxclick property on HTMLElement
-PASS HTMLElement interface: attribute onblur
-PASS Unscopable handled correctly for onblur property on HTMLElement
-PASS HTMLElement interface: attribute oncancel
-PASS Unscopable handled correctly for oncancel property on HTMLElement
-PASS HTMLElement interface: attribute oncanplay
-PASS Unscopable handled correctly for oncanplay property on HTMLElement
-PASS HTMLElement interface: attribute oncanplaythrough
-PASS Unscopable handled correctly for oncanplaythrough property on HTMLElement
-PASS HTMLElement interface: attribute onchange
-PASS Unscopable handled correctly for onchange property on HTMLElement
-PASS HTMLElement interface: attribute onclick
-PASS Unscopable handled correctly for onclick property on HTMLElement
-PASS HTMLElement interface: attribute onclose
-PASS Unscopable handled correctly for onclose property on HTMLElement
-PASS HTMLElement interface: attribute oncontextmenu
-PASS Unscopable handled correctly for oncontextmenu property on HTMLElement
-PASS HTMLElement interface: attribute oncuechange
-PASS Unscopable handled correctly for oncuechange property on HTMLElement
-PASS HTMLElement interface: attribute ondblclick
-PASS Unscopable handled correctly for ondblclick property on HTMLElement
-PASS HTMLElement interface: attribute ondrag
-PASS Unscopable handled correctly for ondrag property on HTMLElement
-PASS HTMLElement interface: attribute ondragend
-PASS Unscopable handled correctly for ondragend property on HTMLElement
-PASS HTMLElement interface: attribute ondragenter
-PASS Unscopable handled correctly for ondragenter property on HTMLElement
-FAIL HTMLElement interface: attribute ondragexit assert_true: The prototype object must have a property "ondragexit" expected true got false
-PASS Unscopable handled correctly for ondragexit property on HTMLElement
-PASS HTMLElement interface: attribute ondragleave
-PASS Unscopable handled correctly for ondragleave property on HTMLElement
-PASS HTMLElement interface: attribute ondragover
-PASS Unscopable handled correctly for ondragover property on HTMLElement
-PASS HTMLElement interface: attribute ondragstart
-PASS Unscopable handled correctly for ondragstart property on HTMLElement
-PASS HTMLElement interface: attribute ondrop
-PASS Unscopable handled correctly for ondrop property on HTMLElement
-PASS HTMLElement interface: attribute ondurationchange
-PASS Unscopable handled correctly for ondurationchange property on HTMLElement
-PASS HTMLElement interface: attribute onemptied
-PASS Unscopable handled correctly for onemptied property on HTMLElement
-PASS HTMLElement interface: attribute onended
-PASS Unscopable handled correctly for onended property on HTMLElement
-PASS HTMLElement interface: attribute onerror
-PASS Unscopable handled correctly for onerror property on HTMLElement
-PASS HTMLElement interface: attribute onfocus
-PASS Unscopable handled correctly for onfocus property on HTMLElement
-PASS HTMLElement interface: attribute oninput
-PASS Unscopable handled correctly for oninput property on HTMLElement
-PASS HTMLElement interface: attribute oninvalid
-PASS Unscopable handled correctly for oninvalid property on HTMLElement
-PASS HTMLElement interface: attribute onkeydown
-PASS Unscopable handled correctly for onkeydown property on HTMLElement
-PASS HTMLElement interface: attribute onkeypress
-PASS Unscopable handled correctly for onkeypress property on HTMLElement
-PASS HTMLElement interface: attribute onkeyup
-PASS Unscopable handled correctly for onkeyup property on HTMLElement
-PASS HTMLElement interface: attribute onload
-PASS Unscopable handled correctly for onload property on HTMLElement
-PASS HTMLElement interface: attribute onloadeddata
-PASS Unscopable handled correctly for onloadeddata property on HTMLElement
-PASS HTMLElement interface: attribute onloadedmetadata
-PASS Unscopable handled correctly for onloadedmetadata property on HTMLElement
-FAIL HTMLElement interface: attribute onloadend assert_true: The prototype object must have a property "onloadend" expected true got false
-PASS Unscopable handled correctly for onloadend property on HTMLElement
-PASS HTMLElement interface: attribute onloadstart
-PASS Unscopable handled correctly for onloadstart property on HTMLElement
-PASS HTMLElement interface: attribute onmousedown
-PASS Unscopable handled correctly for onmousedown property on HTMLElement
-PASS HTMLElement interface: attribute onmouseenter
-PASS Unscopable handled correctly for onmouseenter property on HTMLElement
-PASS HTMLElement interface: attribute onmouseleave
-PASS Unscopable handled correctly for onmouseleave property on HTMLElement
-PASS HTMLElement interface: attribute onmousemove
-PASS Unscopable handled correctly for onmousemove property on HTMLElement
-PASS HTMLElement interface: attribute onmouseout
-PASS Unscopable handled correctly for onmouseout property on HTMLElement
-PASS HTMLElement interface: attribute onmouseover
-PASS Unscopable handled correctly for onmouseover property on HTMLElement
-PASS HTMLElement interface: attribute onmouseup
-PASS Unscopable handled correctly for onmouseup property on HTMLElement
-PASS HTMLElement interface: attribute onwheel
-PASS Unscopable handled correctly for onwheel property on HTMLElement
-PASS HTMLElement interface: attribute onpause
-PASS Unscopable handled correctly for onpause property on HTMLElement
-PASS HTMLElement interface: attribute onplay
-PASS Unscopable handled correctly for onplay property on HTMLElement
-PASS HTMLElement interface: attribute onplaying
-PASS Unscopable handled correctly for onplaying property on HTMLElement
-PASS HTMLElement interface: attribute onprogress
-PASS Unscopable handled correctly for onprogress property on HTMLElement
-PASS HTMLElement interface: attribute onratechange
-PASS Unscopable handled correctly for onratechange property on HTMLElement
-PASS HTMLElement interface: attribute onreset
-PASS Unscopable handled correctly for onreset property on HTMLElement
-PASS HTMLElement interface: attribute onresize
-PASS Unscopable handled correctly for onresize property on HTMLElement
-PASS HTMLElement interface: attribute onscroll
-PASS Unscopable handled correctly for onscroll property on HTMLElement
-FAIL HTMLElement interface: attribute onsecuritypolicyviolation assert_true: The prototype object must have a property "onsecuritypolicyviolation" expected true got false
-PASS Unscopable handled correctly for onsecuritypolicyviolation property on HTMLElement
-PASS HTMLElement interface: attribute onseeked
-PASS Unscopable handled correctly for onseeked property on HTMLElement
-PASS HTMLElement interface: attribute onseeking
-PASS Unscopable handled correctly for onseeking property on HTMLElement
-PASS HTMLElement interface: attribute onselect
-PASS Unscopable handled correctly for onselect property on HTMLElement
-PASS HTMLElement interface: attribute onstalled
-PASS Unscopable handled correctly for onstalled property on HTMLElement
-PASS HTMLElement interface: attribute onsubmit
-PASS Unscopable handled correctly for onsubmit property on HTMLElement
-PASS HTMLElement interface: attribute onsuspend
-PASS Unscopable handled correctly for onsuspend property on HTMLElement
-PASS HTMLElement interface: attribute ontimeupdate
-PASS Unscopable handled correctly for ontimeupdate property on HTMLElement
-PASS HTMLElement interface: attribute ontoggle
-PASS Unscopable handled correctly for ontoggle property on HTMLElement
-PASS HTMLElement interface: attribute onvolumechange
-PASS Unscopable handled correctly for onvolumechange property on HTMLElement
-PASS HTMLElement interface: attribute onwaiting
-PASS Unscopable handled correctly for onwaiting property on HTMLElement
-FAIL HTMLElement interface: attribute oncopy assert_own_property: expected property "oncopy" missing
-PASS Unscopable handled correctly for oncopy property on HTMLElement
-FAIL HTMLElement interface: attribute oncut assert_own_property: expected property "oncut" missing
-PASS Unscopable handled correctly for oncut property on HTMLElement
-FAIL HTMLElement interface: attribute onpaste assert_own_property: expected property "onpaste" missing
-PASS Unscopable handled correctly for onpaste property on HTMLElement
-PASS HTMLElement interface: attribute contentEditable
-PASS Unscopable handled correctly for contentEditable property on HTMLElement
-PASS HTMLElement interface: attribute isContentEditable
-PASS Unscopable handled correctly for isContentEditable property on HTMLElement
-PASS HTMLElement interface: attribute inputMode
-PASS Unscopable handled correctly for inputMode property on HTMLElement
-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 "dataset" 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 "tabIndex" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "focus(FocusOptions)" with the proper type
-PASS HTMLElement interface: calling focus(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 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 "innerText" 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
-FAIL HTMLElement interface: document.createElement("noscript") must inherit property "ondragexit" with the proper type assert_inherits: property "ondragexit" not found in prototype chain
-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 "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
-FAIL HTMLElement interface: document.createElement("noscript") must inherit property "onloadend" with the proper type assert_inherits: property "onloadend" not found in prototype chain
-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 "onwheel" 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
-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 "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 "isContentEditable" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "inputMode" 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 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 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 Unscopable handled correctly for version property on HTMLHtmlElement
-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 Unscopable handled correctly for text property on HTMLTitleElement
-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 Unscopable handled correctly for href property on HTMLBaseElement
-PASS HTMLBaseElement interface: attribute target
-PASS Unscopable handled correctly for target property on HTMLBaseElement
-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 Unscopable handled correctly for href property on HTMLLinkElement
-PASS HTMLLinkElement interface: attribute crossOrigin
-PASS Unscopable handled correctly for crossOrigin property on HTMLLinkElement
-PASS HTMLLinkElement interface: attribute rel
-PASS Unscopable handled correctly for rel property on HTMLLinkElement
-PASS HTMLLinkElement interface: attribute as
-PASS Unscopable handled correctly for as property on HTMLLinkElement
-PASS HTMLLinkElement interface: attribute relList
-PASS Unscopable handled correctly for relList property on HTMLLinkElement
-PASS HTMLLinkElement interface: attribute media
-PASS Unscopable handled correctly for media property on HTMLLinkElement
-FAIL HTMLLinkElement interface: attribute nonce assert_own_property: expected property "nonce" missing
-PASS Unscopable handled correctly for nonce property on HTMLLinkElement
-PASS HTMLLinkElement interface: attribute integrity
-PASS Unscopable handled correctly for integrity property on HTMLLinkElement
-PASS HTMLLinkElement interface: attribute hreflang
-PASS Unscopable handled correctly for hreflang property on HTMLLinkElement
-PASS HTMLLinkElement interface: attribute type
-PASS Unscopable handled correctly for type property on HTMLLinkElement
-PASS HTMLLinkElement interface: attribute sizes
-PASS Unscopable handled correctly for sizes property on HTMLLinkElement
-PASS HTMLLinkElement interface: attribute referrerPolicy
-PASS Unscopable handled correctly for referrerPolicy property on HTMLLinkElement
-FAIL HTMLLinkElement interface: attribute workerType assert_true: The prototype object must have a property "workerType" expected true got false
-PASS Unscopable handled correctly for workerType property on HTMLLinkElement
-FAIL HTMLLinkElement interface: attribute updateViaCache assert_true: The prototype object must have a property "updateViaCache" expected true got false
-PASS Unscopable handled correctly for updateViaCache property on HTMLLinkElement
-PASS HTMLLinkElement interface: attribute charset
-PASS Unscopable handled correctly for charset property on HTMLLinkElement
-PASS HTMLLinkElement interface: attribute rev
-PASS Unscopable handled correctly for rev property on HTMLLinkElement
-PASS HTMLLinkElement interface: attribute target
-PASS Unscopable handled correctly for target property on HTMLLinkElement
-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 "nonce" 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 "referrerPolicy" with the proper type
-FAIL HTMLLinkElement interface: document.createElement("link") must inherit property "workerType" with the proper type assert_inherits: property "workerType" not found in prototype chain
-FAIL HTMLLinkElement interface: document.createElement("link") must inherit property "updateViaCache" with the proper type assert_inherits: property "updateViaCache" not found in prototype chain
-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 Unscopable handled correctly for name property on HTMLMetaElement
-PASS HTMLMetaElement interface: attribute httpEquiv
-PASS Unscopable handled correctly for httpEquiv property on HTMLMetaElement
-PASS HTMLMetaElement interface: attribute content
-PASS Unscopable handled correctly for content property on HTMLMetaElement
-PASS HTMLMetaElement interface: attribute scheme
-PASS Unscopable handled correctly for scheme property on HTMLMetaElement
-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 Unscopable handled correctly for media property on HTMLStyleElement
-FAIL HTMLStyleElement interface: attribute nonce assert_own_property: expected property "nonce" missing
-PASS Unscopable handled correctly for nonce property on HTMLStyleElement
-PASS HTMLStyleElement interface: attribute type
-PASS Unscopable handled correctly for type property on HTMLStyleElement
-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 "nonce" 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 Unscopable handled correctly for text property on HTMLBodyElement
-PASS HTMLBodyElement interface: attribute link
-PASS Unscopable handled correctly for link property on HTMLBodyElement
-PASS HTMLBodyElement interface: attribute vLink
-PASS Unscopable handled correctly for vLink property on HTMLBodyElement
-PASS HTMLBodyElement interface: attribute aLink
-PASS Unscopable handled correctly for aLink property on HTMLBodyElement
-PASS HTMLBodyElement interface: attribute bgColor
-PASS Unscopable handled correctly for bgColor property on HTMLBodyElement
-PASS HTMLBodyElement interface: attribute background
-PASS Unscopable handled correctly for background property on HTMLBodyElement
-PASS HTMLBodyElement interface: attribute onafterprint
-PASS Unscopable handled correctly for onafterprint property on HTMLBodyElement
-PASS HTMLBodyElement interface: attribute onbeforeprint
-PASS Unscopable handled correctly for onbeforeprint property on HTMLBodyElement
-PASS HTMLBodyElement interface: attribute onbeforeunload
-PASS Unscopable handled correctly for onbeforeunload property on HTMLBodyElement
-PASS HTMLBodyElement interface: attribute onhashchange
-PASS Unscopable handled correctly for onhashchange property on HTMLBodyElement
-PASS HTMLBodyElement interface: attribute onlanguagechange
-PASS Unscopable handled correctly for onlanguagechange property on HTMLBodyElement
-PASS HTMLBodyElement interface: attribute onmessage
-PASS Unscopable handled correctly for onmessage property on HTMLBodyElement
-PASS HTMLBodyElement interface: attribute onmessageerror
-PASS Unscopable handled correctly for onmessageerror property on HTMLBodyElement
-PASS HTMLBodyElement interface: attribute onoffline
-PASS Unscopable handled correctly for onoffline property on HTMLBodyElement
-PASS HTMLBodyElement interface: attribute ononline
-PASS Unscopable handled correctly for ononline property on HTMLBodyElement
-PASS HTMLBodyElement interface: attribute onpagehide
-PASS Unscopable handled correctly for onpagehide property on HTMLBodyElement
-PASS HTMLBodyElement interface: attribute onpageshow
-PASS Unscopable handled correctly for onpageshow property on HTMLBodyElement
-PASS HTMLBodyElement interface: attribute onpopstate
-PASS Unscopable handled correctly for onpopstate property on HTMLBodyElement
-PASS HTMLBodyElement interface: attribute onrejectionhandled
-PASS Unscopable handled correctly for onrejectionhandled property on HTMLBodyElement
-PASS HTMLBodyElement interface: attribute onstorage
-PASS Unscopable handled correctly for onstorage property on HTMLBodyElement
-PASS HTMLBodyElement interface: attribute onunhandledrejection
-PASS Unscopable handled correctly for onunhandledrejection property on HTMLBodyElement
-PASS HTMLBodyElement interface: attribute onunload
-PASS Unscopable handled correctly for onunload property on HTMLBodyElement
-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 Unscopable handled correctly for align property on HTMLHeadingElement
-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 Unscopable handled correctly for align property on HTMLParagraphElement
-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 Unscopable handled correctly for align property on HTMLHRElement
-PASS HTMLHRElement interface: attribute color
-PASS Unscopable handled correctly for color property on HTMLHRElement
-PASS HTMLHRElement interface: attribute noShade
-PASS Unscopable handled correctly for noShade property on HTMLHRElement
-PASS HTMLHRElement interface: attribute size
-PASS Unscopable handled correctly for size property on HTMLHRElement
-PASS HTMLHRElement interface: attribute width
-PASS Unscopable handled correctly for width property on HTMLHRElement
-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 Unscopable handled correctly for width property on HTMLPreElement
-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 Unscopable handled correctly for cite property on HTMLQuoteElement
-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 Unscopable handled correctly for reversed property on HTMLOListElement
-PASS HTMLOListElement interface: attribute start
-PASS Unscopable handled correctly for start property on HTMLOListElement
-PASS HTMLOListElement interface: attribute type
-PASS Unscopable handled correctly for type property on HTMLOListElement
-PASS HTMLOListElement interface: attribute compact
-PASS Unscopable handled correctly for compact property on HTMLOListElement
-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 Unscopable handled correctly for compact property on HTMLUListElement
-PASS HTMLUListElement interface: attribute type
-PASS Unscopable handled correctly for type property on HTMLUListElement
-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 Unscopable handled correctly for compact property on HTMLMenuElement
-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 Unscopable handled correctly for value property on HTMLLIElement
-PASS HTMLLIElement interface: attribute type
-PASS Unscopable handled correctly for type property on HTMLLIElement
-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 Unscopable handled correctly for compact property on HTMLDListElement
-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 Unscopable handled correctly for align property on HTMLDivElement
-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 Unscopable handled correctly for target property on HTMLAnchorElement
-PASS HTMLAnchorElement interface: attribute download
-PASS Unscopable handled correctly for download property on HTMLAnchorElement
-PASS HTMLAnchorElement interface: attribute ping
-PASS Unscopable handled correctly for ping property on HTMLAnchorElement
-PASS HTMLAnchorElement interface: attribute rel
-PASS Unscopable handled correctly for rel property on HTMLAnchorElement
-PASS HTMLAnchorElement interface: attribute relList
-PASS Unscopable handled correctly for relList property on HTMLAnchorElement
-PASS HTMLAnchorElement interface: attribute hreflang
-PASS Unscopable handled correctly for hreflang property on HTMLAnchorElement
-PASS HTMLAnchorElement interface: attribute type
-PASS Unscopable handled correctly for type property on HTMLAnchorElement
-PASS HTMLAnchorElement interface: attribute text
-PASS Unscopable handled correctly for text property on HTMLAnchorElement
-PASS HTMLAnchorElement interface: attribute referrerPolicy
-PASS Unscopable handled correctly for referrerPolicy property on HTMLAnchorElement
-PASS HTMLAnchorElement interface: attribute coords
-PASS Unscopable handled correctly for coords property on HTMLAnchorElement
-PASS HTMLAnchorElement interface: attribute charset
-PASS Unscopable handled correctly for charset property on HTMLAnchorElement
-PASS HTMLAnchorElement interface: attribute name
-PASS Unscopable handled correctly for name property on HTMLAnchorElement
-PASS HTMLAnchorElement interface: attribute rev
-PASS Unscopable handled correctly for rev property on HTMLAnchorElement
-PASS HTMLAnchorElement interface: attribute shape
-PASS Unscopable handled correctly for shape property on HTMLAnchorElement
-PASS HTMLAnchorElement interface: attribute href
-PASS Unscopable handled correctly for href property on HTMLAnchorElement
-PASS HTMLAnchorElement interface: stringifier
-PASS HTMLAnchorElement interface: attribute origin
-PASS Unscopable handled correctly for origin property on HTMLAnchorElement
-PASS HTMLAnchorElement interface: attribute protocol
-PASS Unscopable handled correctly for protocol property on HTMLAnchorElement
-PASS HTMLAnchorElement interface: attribute username
-PASS Unscopable handled correctly for username property on HTMLAnchorElement
-PASS HTMLAnchorElement interface: attribute password
-PASS Unscopable handled correctly for password property on HTMLAnchorElement
-PASS HTMLAnchorElement interface: attribute host
-PASS Unscopable handled correctly for host property on HTMLAnchorElement
-PASS HTMLAnchorElement interface: attribute hostname
-PASS Unscopable handled correctly for hostname property on HTMLAnchorElement
-PASS HTMLAnchorElement interface: attribute port
-PASS Unscopable handled correctly for port property on HTMLAnchorElement
-PASS HTMLAnchorElement interface: attribute pathname
-PASS Unscopable handled correctly for pathname property on HTMLAnchorElement
-PASS HTMLAnchorElement interface: attribute search
-PASS Unscopable handled correctly for search property on HTMLAnchorElement
-PASS HTMLAnchorElement interface: attribute hash
-PASS Unscopable handled correctly for hash property on HTMLAnchorElement
-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 Unscopable handled correctly for value property on HTMLDataElement
-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 Unscopable handled correctly for dateTime property on HTMLTimeElement
-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 Unscopable handled correctly for clear property on HTMLBRElement
-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 Unscopable handled correctly for cite property on HTMLModElement
-PASS HTMLModElement interface: attribute dateTime
-PASS Unscopable handled correctly for dateTime property on HTMLModElement
-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 Unscopable handled correctly for src property on HTMLSourceElement
-PASS HTMLSourceElement interface: attribute type
-PASS Unscopable handled correctly for type property on HTMLSourceElement
-PASS HTMLSourceElement interface: attribute srcset
-PASS Unscopable handled correctly for srcset property on HTMLSourceElement
-PASS HTMLSourceElement interface: attribute sizes
-PASS Unscopable handled correctly for sizes property on HTMLSourceElement
-PASS HTMLSourceElement interface: attribute media
-PASS Unscopable handled correctly for media property on HTMLSourceElement
-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 HTMLImageElement interface: existence and properties of interface object
-PASS HTMLImageElement interface object length
-PASS HTMLImageElement interface object name
-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 Unscopable handled correctly for alt property on HTMLImageElement
-PASS HTMLImageElement interface: attribute src
-PASS Unscopable handled correctly for src property on HTMLImageElement
-PASS HTMLImageElement interface: attribute srcset
-PASS Unscopable handled correctly for srcset property on HTMLImageElement
-PASS HTMLImageElement interface: attribute sizes
-PASS Unscopable handled correctly for sizes property on HTMLImageElement
-PASS HTMLImageElement interface: attribute crossOrigin
-PASS Unscopable handled correctly for crossOrigin property on HTMLImageElement
-PASS HTMLImageElement interface: attribute useMap
-PASS Unscopable handled correctly for useMap property on HTMLImageElement
-PASS HTMLImageElement interface: attribute isMap
-PASS Unscopable handled correctly for isMap property on HTMLImageElement
-PASS HTMLImageElement interface: attribute width
-PASS Unscopable handled correctly for width property on HTMLImageElement
-PASS HTMLImageElement interface: attribute height
-PASS Unscopable handled correctly for height property on HTMLImageElement
-PASS HTMLImageElement interface: attribute naturalWidth
-PASS Unscopable handled correctly for naturalWidth property on HTMLImageElement
-PASS HTMLImageElement interface: attribute naturalHeight
-PASS Unscopable handled correctly for naturalHeight property on HTMLImageElement
-PASS HTMLImageElement interface: attribute complete
-PASS Unscopable handled correctly for complete property on HTMLImageElement
-PASS HTMLImageElement interface: attribute currentSrc
-PASS Unscopable handled correctly for currentSrc property on HTMLImageElement
-PASS HTMLImageElement interface: attribute referrerPolicy
-PASS Unscopable handled correctly for referrerPolicy property on HTMLImageElement
-PASS HTMLImageElement interface: operation decode()
-PASS Unscopable handled correctly for decode() on HTMLImageElement
-PASS HTMLImageElement interface: attribute name
-PASS Unscopable handled correctly for name property on HTMLImageElement
-PASS HTMLImageElement interface: attribute lowsrc
-PASS Unscopable handled correctly for lowsrc property on HTMLImageElement
-PASS HTMLImageElement interface: attribute align
-PASS Unscopable handled correctly for align property on HTMLImageElement
-PASS HTMLImageElement interface: attribute hspace
-PASS Unscopable handled correctly for hspace property on HTMLImageElement
-PASS HTMLImageElement interface: attribute vspace
-PASS Unscopable handled correctly for vspace property on HTMLImageElement
-PASS HTMLImageElement interface: attribute longDesc
-PASS Unscopable handled correctly for longDesc property on HTMLImageElement
-PASS HTMLImageElement interface: attribute border
-PASS Unscopable handled correctly for border property on HTMLImageElement
-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 "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 "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 Unscopable handled correctly for src property on HTMLIFrameElement
-PASS HTMLIFrameElement interface: attribute srcdoc
-PASS Unscopable handled correctly for srcdoc property on HTMLIFrameElement
-PASS HTMLIFrameElement interface: attribute name
-PASS Unscopable handled correctly for name property on HTMLIFrameElement
-PASS HTMLIFrameElement interface: attribute sandbox
-PASS Unscopable handled correctly for sandbox property on HTMLIFrameElement
-PASS HTMLIFrameElement interface: attribute allowFullscreen
-PASS Unscopable handled correctly for allowFullscreen property on HTMLIFrameElement
-PASS HTMLIFrameElement interface: attribute allowPaymentRequest
-PASS Unscopable handled correctly for allowPaymentRequest property on HTMLIFrameElement
-FAIL HTMLIFrameElement interface: attribute allowUserMedia assert_true: The prototype object must have a property "allowUserMedia" expected true got false
-PASS Unscopable handled correctly for allowUserMedia property on HTMLIFrameElement
-PASS HTMLIFrameElement interface: attribute width
-PASS Unscopable handled correctly for width property on HTMLIFrameElement
-PASS HTMLIFrameElement interface: attribute height
-PASS Unscopable handled correctly for height property on HTMLIFrameElement
-PASS HTMLIFrameElement interface: attribute referrerPolicy
-PASS Unscopable handled correctly for referrerPolicy property on HTMLIFrameElement
-PASS HTMLIFrameElement interface: attribute contentDocument
-PASS Unscopable handled correctly for contentDocument property on HTMLIFrameElement
-PASS HTMLIFrameElement interface: attribute contentWindow
-PASS Unscopable handled correctly for contentWindow property on HTMLIFrameElement
-PASS HTMLIFrameElement interface: operation getSVGDocument()
-PASS Unscopable handled correctly for getSVGDocument() on HTMLIFrameElement
-FAIL HTMLIFrameElement interface: attribute delegateStickyUserActivation assert_true: The prototype object must have a property "delegateStickyUserActivation" expected true got false
-PASS Unscopable handled correctly for delegateStickyUserActivation property on HTMLIFrameElement
-PASS HTMLIFrameElement interface: attribute align
-PASS Unscopable handled correctly for align property on HTMLIFrameElement
-PASS HTMLIFrameElement interface: attribute scrolling
-PASS Unscopable handled correctly for scrolling property on HTMLIFrameElement
-PASS HTMLIFrameElement interface: attribute frameBorder
-PASS Unscopable handled correctly for frameBorder property on HTMLIFrameElement
-PASS HTMLIFrameElement interface: attribute longDesc
-PASS Unscopable handled correctly for longDesc property on HTMLIFrameElement
-PASS HTMLIFrameElement interface: attribute marginHeight
-PASS Unscopable handled correctly for marginHeight property on HTMLIFrameElement
-PASS HTMLIFrameElement interface: attribute marginWidth
-PASS Unscopable handled correctly for marginWidth property on HTMLIFrameElement
-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 Unscopable handled correctly for src property on HTMLEmbedElement
-PASS HTMLEmbedElement interface: attribute type
-PASS Unscopable handled correctly for type property on HTMLEmbedElement
-PASS HTMLEmbedElement interface: attribute width
-PASS Unscopable handled correctly for width property on HTMLEmbedElement
-PASS HTMLEmbedElement interface: attribute height
-PASS Unscopable handled correctly for height property on HTMLEmbedElement
-PASS HTMLEmbedElement interface: operation getSVGDocument()
-PASS Unscopable handled correctly for getSVGDocument() on HTMLEmbedElement
-PASS HTMLEmbedElement interface: attribute align
-PASS Unscopable handled correctly for align property on HTMLEmbedElement
-PASS HTMLEmbedElement interface: attribute name
-PASS Unscopable handled correctly for name property on HTMLEmbedElement
-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 Unscopable handled correctly for data property on HTMLObjectElement
-PASS HTMLObjectElement interface: attribute type
-PASS Unscopable handled correctly for type property on HTMLObjectElement
-FAIL HTMLObjectElement interface: attribute typeMustMatch assert_true: The prototype object must have a property "typeMustMatch" expected true got false
-PASS Unscopable handled correctly for typeMustMatch property on HTMLObjectElement
-PASS HTMLObjectElement interface: attribute name
-PASS Unscopable handled correctly for name property on HTMLObjectElement
-PASS HTMLObjectElement interface: attribute useMap
-PASS Unscopable handled correctly for useMap property on HTMLObjectElement
-PASS HTMLObjectElement interface: attribute form
-PASS Unscopable handled correctly for form property on HTMLObjectElement
-PASS HTMLObjectElement interface: attribute width
-PASS Unscopable handled correctly for width property on HTMLObjectElement
-PASS HTMLObjectElement interface: attribute height
-PASS Unscopable handled correctly for height property on HTMLObjectElement
-PASS HTMLObjectElement interface: attribute contentDocument
-PASS Unscopable handled correctly for contentDocument property on HTMLObjectElement
-PASS HTMLObjectElement interface: attribute contentWindow
-PASS Unscopable handled correctly for contentWindow property on HTMLObjectElement
-PASS HTMLObjectElement interface: operation getSVGDocument()
-PASS Unscopable handled correctly for getSVGDocument() on HTMLObjectElement
-PASS HTMLObjectElement interface: attribute willValidate
-PASS Unscopable handled correctly for willValidate property on HTMLObjectElement
-PASS HTMLObjectElement interface: attribute validity
-PASS Unscopable handled correctly for validity property on HTMLObjectElement
-PASS HTMLObjectElement interface: attribute validationMessage
-PASS Unscopable handled correctly for validationMessage property on HTMLObjectElement
-PASS HTMLObjectElement interface: operation checkValidity()
-PASS Unscopable handled correctly for checkValidity() on HTMLObjectElement
-PASS HTMLObjectElement interface: operation reportValidity()
-PASS Unscopable handled correctly for reportValidity() on HTMLObjectElement
-PASS HTMLObjectElement interface: operation setCustomValidity(DOMString)
-PASS Unscopable handled correctly for setCustomValidity(DOMString) on HTMLObjectElement
-PASS HTMLObjectElement interface: attribute align
-PASS Unscopable handled correctly for align property on HTMLObjectElement
-PASS HTMLObjectElement interface: attribute archive
-PASS Unscopable handled correctly for archive property on HTMLObjectElement
-PASS HTMLObjectElement interface: attribute code
-PASS Unscopable handled correctly for code property on HTMLObjectElement
-PASS HTMLObjectElement interface: attribute declare
-PASS Unscopable handled correctly for declare property on HTMLObjectElement
-PASS HTMLObjectElement interface: attribute hspace
-PASS Unscopable handled correctly for hspace property on HTMLObjectElement
-PASS HTMLObjectElement interface: attribute standby
-PASS Unscopable handled correctly for standby property on HTMLObjectElement
-PASS HTMLObjectElement interface: attribute vspace
-PASS Unscopable handled correctly for vspace property on HTMLObjectElement
-PASS HTMLObjectElement interface: attribute codeBase
-PASS Unscopable handled correctly for codeBase property on HTMLObjectElement
-PASS HTMLObjectElement interface: attribute codeType
-PASS Unscopable handled correctly for codeType property on HTMLObjectElement
-PASS HTMLObjectElement interface: attribute border
-PASS Unscopable handled correctly for border property on HTMLObjectElement
-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
-FAIL HTMLObjectElement interface: document.createElement("object") must inherit property "typeMustMatch" with the proper type assert_inherits: property "typeMustMatch" not found in prototype chain
-PASS HTMLObjectElement interface: document.createElement("object") must inherit property "name" 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 "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 "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 Unscopable handled correctly for name property on HTMLParamElement
-PASS HTMLParamElement interface: attribute value
-PASS Unscopable handled correctly for value property on HTMLParamElement
-PASS HTMLParamElement interface: attribute type
-PASS Unscopable handled correctly for type property on HTMLParamElement
-PASS HTMLParamElement interface: attribute valueType
-PASS Unscopable handled correctly for valueType property on HTMLParamElement
-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 Unscopable handled correctly for width property on HTMLVideoElement
-PASS HTMLVideoElement interface: attribute height
-PASS Unscopable handled correctly for height property on HTMLVideoElement
-PASS HTMLVideoElement interface: attribute videoWidth
-PASS Unscopable handled correctly for videoWidth property on HTMLVideoElement
-PASS HTMLVideoElement interface: attribute videoHeight
-PASS Unscopable handled correctly for videoHeight property on HTMLVideoElement
-PASS HTMLVideoElement interface: attribute poster
-PASS Unscopable handled correctly for poster property on HTMLVideoElement
-FAIL HTMLVideoElement interface: attribute playsInline assert_true: The prototype object must have a property "playsInline" expected true got false
-PASS Unscopable handled correctly for playsInline property on HTMLVideoElement
-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
-FAIL HTMLVideoElement interface: document.createElement("video") must inherit property "playsInline" with the proper type assert_inherits: property "playsInline" not found in prototype chain
-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
-FAIL HTMLMediaElement interface: document.createElement("video") must inherit property "srcObject" with the proper type Unrecognized type MediaStream
-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 "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, DOMString, DOMString)" with the proper type
-PASS HTMLMediaElement interface: calling addTextTrack(TextTrackKind, DOMString, 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: 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
-FAIL HTMLMediaElement interface: document.createElement("audio") must inherit property "srcObject" with the proper type Unrecognized type MediaStream
-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 "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, DOMString, DOMString)" with the proper type
-PASS HTMLMediaElement interface: calling addTextTrack(TextTrackKind, DOMString, 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
-FAIL HTMLMediaElement interface: new Audio() must inherit property "srcObject" with the proper type Unrecognized type MediaStream
-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 "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, DOMString, DOMString)" with the proper type
-PASS HTMLMediaElement interface: calling addTextTrack(TextTrackKind, DOMString, 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 Unscopable handled correctly for kind property on HTMLTrackElement
-PASS HTMLTrackElement interface: attribute src
-PASS Unscopable handled correctly for src property on HTMLTrackElement
-PASS HTMLTrackElement interface: attribute srclang
-PASS Unscopable handled correctly for srclang property on HTMLTrackElement
-PASS HTMLTrackElement interface: attribute label
-PASS Unscopable handled correctly for label property on HTMLTrackElement
-PASS HTMLTrackElement interface: attribute default
-PASS Unscopable handled correctly for default property on HTMLTrackElement
-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 Unscopable handled correctly for readyState property on HTMLTrackElement
-PASS HTMLTrackElement interface: attribute track
-PASS Unscopable handled correctly for track property on HTMLTrackElement
-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 Unscopable handled correctly for error property on HTMLMediaElement
-PASS HTMLMediaElement interface: attribute src
-PASS Unscopable handled correctly for src property on HTMLMediaElement
-PASS HTMLMediaElement interface: attribute srcObject
-PASS Unscopable handled correctly for srcObject property on HTMLMediaElement
-PASS HTMLMediaElement interface: attribute currentSrc
-PASS Unscopable handled correctly for currentSrc property on HTMLMediaElement
-PASS HTMLMediaElement interface: attribute crossOrigin
-PASS Unscopable handled correctly for crossOrigin property on HTMLMediaElement
-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 Unscopable handled correctly for networkState property on HTMLMediaElement
-PASS HTMLMediaElement interface: attribute preload
-PASS Unscopable handled correctly for preload property on HTMLMediaElement
-PASS HTMLMediaElement interface: attribute buffered
-PASS Unscopable handled correctly for buffered property on HTMLMediaElement
-PASS HTMLMediaElement interface: operation load()
-PASS Unscopable handled correctly for load() on HTMLMediaElement
-PASS HTMLMediaElement interface: operation canPlayType(DOMString)
-PASS Unscopable handled correctly for canPlayType(DOMString) on HTMLMediaElement
-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 Unscopable handled correctly for readyState property on HTMLMediaElement
-PASS HTMLMediaElement interface: attribute seeking
-PASS Unscopable handled correctly for seeking property on HTMLMediaElement
-PASS HTMLMediaElement interface: attribute currentTime
-PASS Unscopable handled correctly for currentTime property on HTMLMediaElement
-FAIL HTMLMediaElement interface: operation fastSeek(double) assert_own_property: interface prototype object missing non-static operation expected property "fastSeek" missing
-PASS Unscopable handled correctly for fastSeek(double) on HTMLMediaElement
-PASS HTMLMediaElement interface: attribute duration
-PASS Unscopable handled correctly for duration property on HTMLMediaElement
-FAIL HTMLMediaElement interface: operation getStartDate() assert_own_property: interface prototype object missing non-static operation expected property "getStartDate" missing
-PASS Unscopable handled correctly for getStartDate() on HTMLMediaElement
-PASS HTMLMediaElement interface: attribute paused
-PASS Unscopable handled correctly for paused property on HTMLMediaElement
-PASS HTMLMediaElement interface: attribute defaultPlaybackRate
-PASS Unscopable handled correctly for defaultPlaybackRate property on HTMLMediaElement
-PASS HTMLMediaElement interface: attribute playbackRate
-PASS Unscopable handled correctly for playbackRate property on HTMLMediaElement
-PASS HTMLMediaElement interface: attribute played
-PASS Unscopable handled correctly for played property on HTMLMediaElement
-PASS HTMLMediaElement interface: attribute seekable
-PASS Unscopable handled correctly for seekable property on HTMLMediaElement
-PASS HTMLMediaElement interface: attribute ended
-PASS Unscopable handled correctly for ended property on HTMLMediaElement
-PASS HTMLMediaElement interface: attribute autoplay
-PASS Unscopable handled correctly for autoplay property on HTMLMediaElement
-PASS HTMLMediaElement interface: attribute loop
-PASS Unscopable handled correctly for loop property on HTMLMediaElement
-PASS HTMLMediaElement interface: operation play()
-PASS Unscopable handled correctly for play() on HTMLMediaElement
-PASS HTMLMediaElement interface: operation pause()
-PASS Unscopable handled correctly for pause() on HTMLMediaElement
-PASS HTMLMediaElement interface: attribute controls
-PASS Unscopable handled correctly for controls property on HTMLMediaElement
-PASS HTMLMediaElement interface: attribute volume
-PASS Unscopable handled correctly for volume property on HTMLMediaElement
-PASS HTMLMediaElement interface: attribute muted
-PASS Unscopable handled correctly for muted property on HTMLMediaElement
-PASS HTMLMediaElement interface: attribute defaultMuted
-PASS Unscopable handled correctly for defaultMuted property on HTMLMediaElement
-PASS HTMLMediaElement interface: attribute audioTracks
-PASS Unscopable handled correctly for audioTracks property on HTMLMediaElement
-PASS HTMLMediaElement interface: attribute videoTracks
-PASS Unscopable handled correctly for videoTracks property on HTMLMediaElement
-PASS HTMLMediaElement interface: attribute textTracks
-PASS Unscopable handled correctly for textTracks property on HTMLMediaElement
-PASS HTMLMediaElement interface: operation addTextTrack(TextTrackKind, DOMString, DOMString)
-PASS Unscopable handled correctly for addTextTrack(TextTrackKind, DOMString, DOMString) on HTMLMediaElement
-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 Unscopable handled correctly for code property on MediaError
-PASS MediaError interface: attribute message
-PASS Unscopable handled correctly for message property on MediaError
-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 Unscopable handled correctly for length property on AudioTrackList
-PASS AudioTrackList interface: operation getTrackById(DOMString)
-PASS Unscopable handled correctly for getTrackById(DOMString) on AudioTrackList
-PASS AudioTrackList interface: attribute onchange
-PASS Unscopable handled correctly for onchange property on AudioTrackList
-PASS AudioTrackList interface: attribute onaddtrack
-PASS Unscopable handled correctly for onaddtrack property on AudioTrackList
-PASS AudioTrackList interface: attribute onremovetrack
-PASS Unscopable handled correctly for onremovetrack property on AudioTrackList
-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 Unscopable handled correctly for id property on AudioTrack
-PASS AudioTrack interface: attribute kind
-PASS Unscopable handled correctly for kind property on AudioTrack
-PASS AudioTrack interface: attribute label
-PASS Unscopable handled correctly for label property on AudioTrack
-PASS AudioTrack interface: attribute language
-PASS Unscopable handled correctly for language property on AudioTrack
-PASS AudioTrack interface: attribute enabled
-PASS Unscopable handled correctly for enabled property on AudioTrack
-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 Unscopable handled correctly for length property on VideoTrackList
-PASS VideoTrackList interface: operation getTrackById(DOMString)
-PASS Unscopable handled correctly for getTrackById(DOMString) on VideoTrackList
-PASS VideoTrackList interface: attribute selectedIndex
-PASS Unscopable handled correctly for selectedIndex property on VideoTrackList
-PASS VideoTrackList interface: attribute onchange
-PASS Unscopable handled correctly for onchange property on VideoTrackList
-PASS VideoTrackList interface: attribute onaddtrack
-PASS Unscopable handled correctly for onaddtrack property on VideoTrackList
-PASS VideoTrackList interface: attribute onremovetrack
-PASS Unscopable handled correctly for onremovetrack property on VideoTrackList
-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 Unscopable handled correctly for id property on VideoTrack
-PASS VideoTrack interface: attribute kind
-PASS Unscopable handled correctly for kind property on VideoTrack
-PASS VideoTrack interface: attribute label
-PASS Unscopable handled correctly for label property on VideoTrack
-PASS VideoTrack interface: attribute language
-PASS Unscopable handled correctly for language property on VideoTrack
-PASS VideoTrack interface: attribute selected
-PASS Unscopable handled correctly for selected property on VideoTrack
-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 Unscopable handled correctly for length property on TextTrackList
-PASS TextTrackList interface: operation getTrackById(DOMString)
-PASS Unscopable handled correctly for getTrackById(DOMString) on TextTrackList
-PASS TextTrackList interface: attribute onchange
-PASS Unscopable handled correctly for onchange property on TextTrackList
-PASS TextTrackList interface: attribute onaddtrack
-PASS Unscopable handled correctly for onaddtrack property on TextTrackList
-PASS TextTrackList interface: attribute onremovetrack
-PASS Unscopable handled correctly for onremovetrack property on TextTrackList
-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 Unscopable handled correctly for kind property on TextTrack
-PASS TextTrack interface: attribute label
-PASS Unscopable handled correctly for label property on TextTrack
-PASS TextTrack interface: attribute language
-PASS Unscopable handled correctly for language property on TextTrack
-PASS TextTrack interface: attribute id
-PASS Unscopable handled correctly for id property on TextTrack
-FAIL TextTrack interface: attribute inBandMetadataTrackDispatchType assert_true: The prototype object must have a property "inBandMetadataTrackDispatchType" expected true got false
-PASS Unscopable handled correctly for inBandMetadataTrackDispatchType property on TextTrack
-PASS TextTrack interface: attribute mode
-PASS Unscopable handled correctly for mode property on TextTrack
-PASS TextTrack interface: attribute cues
-PASS Unscopable handled correctly for cues property on TextTrack
-PASS TextTrack interface: attribute activeCues
-PASS Unscopable handled correctly for activeCues property on TextTrack
-PASS TextTrack interface: operation addCue(TextTrackCue)
-PASS Unscopable handled correctly for addCue(TextTrackCue) on TextTrack
-PASS TextTrack interface: operation removeCue(TextTrackCue)
-PASS Unscopable handled correctly for removeCue(TextTrackCue) on TextTrack
-PASS TextTrack interface: attribute oncuechange
-PASS Unscopable handled correctly for oncuechange property on TextTrack
-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 Unscopable handled correctly for length property on TextTrackCueList
-PASS TextTrackCueList interface: operation getCueById(DOMString)
-PASS Unscopable handled correctly for getCueById(DOMString) on TextTrackCueList
-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 Unscopable handled correctly for track property on TextTrackCue
-PASS TextTrackCue interface: attribute id
-PASS Unscopable handled correctly for id property on TextTrackCue
-PASS TextTrackCue interface: attribute startTime
-PASS Unscopable handled correctly for startTime property on TextTrackCue
-PASS TextTrackCue interface: attribute endTime
-PASS Unscopable handled correctly for endTime property on TextTrackCue
-PASS TextTrackCue interface: attribute pauseOnExit
-PASS Unscopable handled correctly for pauseOnExit property on TextTrackCue
-PASS TextTrackCue interface: attribute onenter
-PASS Unscopable handled correctly for onenter property on TextTrackCue
-PASS TextTrackCue interface: attribute onexit
-PASS Unscopable handled correctly for onexit property on TextTrackCue
-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 Unscopable handled correctly for length property on TimeRanges
-PASS TimeRanges interface: operation start(unsigned long)
-PASS Unscopable handled correctly for start(unsigned long) on TimeRanges
-PASS TimeRanges interface: operation end(unsigned long)
-PASS Unscopable handled correctly for end(unsigned long) on TimeRanges
-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 Unscopable handled correctly for track property on TrackEvent
-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 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 Unscopable handled correctly for name property on HTMLMapElement
-PASS HTMLMapElement interface: attribute areas
-PASS Unscopable handled correctly for areas property on HTMLMapElement
-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 Unscopable handled correctly for alt property on HTMLAreaElement
-PASS HTMLAreaElement interface: attribute coords
-PASS Unscopable handled correctly for coords property on HTMLAreaElement
-PASS HTMLAreaElement interface: attribute shape
-PASS Unscopable handled correctly for shape property on HTMLAreaElement
-PASS HTMLAreaElement interface: attribute target
-PASS Unscopable handled correctly for target property on HTMLAreaElement
-PASS HTMLAreaElement interface: attribute download
-PASS Unscopable handled correctly for download property on HTMLAreaElement
-PASS HTMLAreaElement interface: attribute ping
-PASS Unscopable handled correctly for ping property on HTMLAreaElement
-PASS HTMLAreaElement interface: attribute rel
-PASS Unscopable handled correctly for rel property on HTMLAreaElement
-PASS HTMLAreaElement interface: attribute relList
-PASS Unscopable handled correctly for relList property on HTMLAreaElement
-PASS HTMLAreaElement interface: attribute referrerPolicy
-PASS Unscopable handled correctly for referrerPolicy property on HTMLAreaElement
-PASS HTMLAreaElement interface: attribute noHref
-PASS Unscopable handled correctly for noHref property on HTMLAreaElement
-PASS HTMLAreaElement interface: attribute href
-PASS Unscopable handled correctly for href property on HTMLAreaElement
-PASS HTMLAreaElement interface: stringifier
-PASS HTMLAreaElement interface: attribute origin
-PASS Unscopable handled correctly for origin property on HTMLAreaElement
-PASS HTMLAreaElement interface: attribute protocol
-PASS Unscopable handled correctly for protocol property on HTMLAreaElement
-PASS HTMLAreaElement interface: attribute username
-PASS Unscopable handled correctly for username property on HTMLAreaElement
-PASS HTMLAreaElement interface: attribute password
-PASS Unscopable handled correctly for password property on HTMLAreaElement
-PASS HTMLAreaElement interface: attribute host
-PASS Unscopable handled correctly for host property on HTMLAreaElement
-PASS HTMLAreaElement interface: attribute hostname
-PASS Unscopable handled correctly for hostname property on HTMLAreaElement
-PASS HTMLAreaElement interface: attribute port
-PASS Unscopable handled correctly for port property on HTMLAreaElement
-PASS HTMLAreaElement interface: attribute pathname
-PASS Unscopable handled correctly for pathname property on HTMLAreaElement
-PASS HTMLAreaElement interface: attribute search
-PASS Unscopable handled correctly for search property on HTMLAreaElement
-PASS HTMLAreaElement interface: attribute hash
-PASS Unscopable handled correctly for hash property on HTMLAreaElement
-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 Unscopable handled correctly for caption property on HTMLTableElement
-PASS HTMLTableElement interface: operation createCaption()
-PASS Unscopable handled correctly for createCaption() on HTMLTableElement
-PASS HTMLTableElement interface: operation deleteCaption()
-PASS Unscopable handled correctly for deleteCaption() on HTMLTableElement
-PASS HTMLTableElement interface: attribute tHead
-PASS Unscopable handled correctly for tHead property on HTMLTableElement
-PASS HTMLTableElement interface: operation createTHead()
-PASS Unscopable handled correctly for createTHead() on HTMLTableElement
-PASS HTMLTableElement interface: operation deleteTHead()
-PASS Unscopable handled correctly for deleteTHead() on HTMLTableElement
-PASS HTMLTableElement interface: attribute tFoot
-PASS Unscopable handled correctly for tFoot property on HTMLTableElement
-PASS HTMLTableElement interface: operation createTFoot()
-PASS Unscopable handled correctly for createTFoot() on HTMLTableElement
-PASS HTMLTableElement interface: operation deleteTFoot()
-PASS Unscopable handled correctly for deleteTFoot() on HTMLTableElement
-PASS HTMLTableElement interface: attribute tBodies
-PASS Unscopable handled correctly for tBodies property on HTMLTableElement
-PASS HTMLTableElement interface: operation createTBody()
-PASS Unscopable handled correctly for createTBody() on HTMLTableElement
-PASS HTMLTableElement interface: attribute rows
-PASS Unscopable handled correctly for rows property on HTMLTableElement
-PASS HTMLTableElement interface: operation insertRow(long)
-PASS Unscopable handled correctly for insertRow(long) on HTMLTableElement
-PASS HTMLTableElement interface: operation deleteRow(long)
-PASS Unscopable handled correctly for deleteRow(long) on HTMLTableElement
-PASS HTMLTableElement interface: attribute align
-PASS Unscopable handled correctly for align property on HTMLTableElement
-PASS HTMLTableElement interface: attribute border
-PASS Unscopable handled correctly for border property on HTMLTableElement
-PASS HTMLTableElement interface: attribute frame
-PASS Unscopable handled correctly for frame property on HTMLTableElement
-PASS HTMLTableElement interface: attribute rules
-PASS Unscopable handled correctly for rules property on HTMLTableElement
-PASS HTMLTableElement interface: attribute summary
-PASS Unscopable handled correctly for summary property on HTMLTableElement
-PASS HTMLTableElement interface: attribute width
-PASS Unscopable handled correctly for width property on HTMLTableElement
-PASS HTMLTableElement interface: attribute bgColor
-PASS Unscopable handled correctly for bgColor property on HTMLTableElement
-PASS HTMLTableElement interface: attribute cellPadding
-PASS Unscopable handled correctly for cellPadding property on HTMLTableElement
-PASS HTMLTableElement interface: attribute cellSpacing
-PASS Unscopable handled correctly for cellSpacing property on HTMLTableElement
-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(long)" with the proper type
-PASS HTMLTableElement interface: calling insertRow(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 Unscopable handled correctly for align property on HTMLTableCaptionElement
-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 Unscopable handled correctly for span property on HTMLTableColElement
-PASS HTMLTableColElement interface: attribute align
-PASS Unscopable handled correctly for align property on HTMLTableColElement
-PASS HTMLTableColElement interface: attribute ch
-PASS Unscopable handled correctly for ch property on HTMLTableColElement
-PASS HTMLTableColElement interface: attribute chOff
-PASS Unscopable handled correctly for chOff property on HTMLTableColElement
-PASS HTMLTableColElement interface: attribute vAlign
-PASS Unscopable handled correctly for vAlign property on HTMLTableColElement
-PASS HTMLTableColElement interface: attribute width
-PASS Unscopable handled correctly for width property on HTMLTableColElement
-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 Unscopable handled correctly for rows property on HTMLTableSectionElement
-PASS HTMLTableSectionElement interface: operation insertRow(long)
-PASS Unscopable handled correctly for insertRow(long) on HTMLTableSectionElement
-PASS HTMLTableSectionElement interface: operation deleteRow(long)
-PASS Unscopable handled correctly for deleteRow(long) on HTMLTableSectionElement
-PASS HTMLTableSectionElement interface: attribute align
-PASS Unscopable handled correctly for align property on HTMLTableSectionElement
-PASS HTMLTableSectionElement interface: attribute ch
-PASS Unscopable handled correctly for ch property on HTMLTableSectionElement
-PASS HTMLTableSectionElement interface: attribute chOff
-PASS Unscopable handled correctly for chOff property on HTMLTableSectionElement
-PASS HTMLTableSectionElement interface: attribute vAlign
-PASS Unscopable handled correctly for vAlign property on HTMLTableSectionElement
-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(long)" with the proper type
-PASS HTMLTableSectionElement interface: calling insertRow(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(long)" with the proper type
-PASS HTMLTableSectionElement interface: calling insertRow(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(long)" with the proper type
-PASS HTMLTableSectionElement interface: calling insertRow(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 Unscopable handled correctly for rowIndex property on HTMLTableRowElement
-PASS HTMLTableRowElement interface: attribute sectionRowIndex
-PASS Unscopable handled correctly for sectionRowIndex property on HTMLTableRowElement
-PASS HTMLTableRowElement interface: attribute cells
-PASS Unscopable handled correctly for cells property on HTMLTableRowElement
-PASS HTMLTableRowElement interface: operation insertCell(long)
-PASS Unscopable handled correctly for insertCell(long) on HTMLTableRowElement
-PASS HTMLTableRowElement interface: operation deleteCell(long)
-PASS Unscopable handled correctly for deleteCell(long) on HTMLTableRowElement
-PASS HTMLTableRowElement interface: attribute align
-PASS Unscopable handled correctly for align property on HTMLTableRowElement
-PASS HTMLTableRowElement interface: attribute ch
-PASS Unscopable handled correctly for ch property on HTMLTableRowElement
-PASS HTMLTableRowElement interface: attribute chOff
-PASS Unscopable handled correctly for chOff property on HTMLTableRowElement
-PASS HTMLTableRowElement interface: attribute vAlign
-PASS Unscopable handled correctly for vAlign property on HTMLTableRowElement
-PASS HTMLTableRowElement interface: attribute bgColor
-PASS Unscopable handled correctly for bgColor property on HTMLTableRowElement
-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(long)" with the proper type
-PASS HTMLTableRowElement interface: calling insertCell(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 Unscopable handled correctly for colSpan property on HTMLTableCellElement
-PASS HTMLTableCellElement interface: attribute rowSpan
-PASS Unscopable handled correctly for rowSpan property on HTMLTableCellElement
-PASS HTMLTableCellElement interface: attribute headers
-PASS Unscopable handled correctly for headers property on HTMLTableCellElement
-PASS HTMLTableCellElement interface: attribute cellIndex
-PASS Unscopable handled correctly for cellIndex property on HTMLTableCellElement
-PASS HTMLTableCellElement interface: attribute scope
-PASS Unscopable handled correctly for scope property on HTMLTableCellElement
-PASS HTMLTableCellElement interface: attribute abbr
-PASS Unscopable handled correctly for abbr property on HTMLTableCellElement
-PASS HTMLTableCellElement interface: attribute align
-PASS Unscopable handled correctly for align property on HTMLTableCellElement
-PASS HTMLTableCellElement interface: attribute axis
-PASS Unscopable handled correctly for axis property on HTMLTableCellElement
-PASS HTMLTableCellElement interface: attribute height
-PASS Unscopable handled correctly for height property on HTMLTableCellElement
-PASS HTMLTableCellElement interface: attribute width
-PASS Unscopable handled correctly for width property on HTMLTableCellElement
-PASS HTMLTableCellElement interface: attribute ch
-PASS Unscopable handled correctly for ch property on HTMLTableCellElement
-PASS HTMLTableCellElement interface: attribute chOff
-PASS Unscopable handled correctly for chOff property on HTMLTableCellElement
-PASS HTMLTableCellElement interface: attribute noWrap
-PASS Unscopable handled correctly for noWrap property on HTMLTableCellElement
-PASS HTMLTableCellElement interface: attribute vAlign
-PASS Unscopable handled correctly for vAlign property on HTMLTableCellElement
-PASS HTMLTableCellElement interface: attribute bgColor
-PASS Unscopable handled correctly for bgColor property on HTMLTableCellElement
-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 Unscopable handled correctly for acceptCharset property on HTMLFormElement
-PASS HTMLFormElement interface: attribute action
-PASS Unscopable handled correctly for action property on HTMLFormElement
-PASS HTMLFormElement interface: attribute autocomplete
-PASS Unscopable handled correctly for autocomplete property on HTMLFormElement
-PASS HTMLFormElement interface: attribute enctype
-PASS Unscopable handled correctly for enctype property on HTMLFormElement
-PASS HTMLFormElement interface: attribute encoding
-PASS Unscopable handled correctly for encoding property on HTMLFormElement
-PASS HTMLFormElement interface: attribute method
-PASS Unscopable handled correctly for method property on HTMLFormElement
-PASS HTMLFormElement interface: attribute name
-PASS Unscopable handled correctly for name property on HTMLFormElement
-PASS HTMLFormElement interface: attribute noValidate
-PASS Unscopable handled correctly for noValidate property on HTMLFormElement
-PASS HTMLFormElement interface: attribute target
-PASS Unscopable handled correctly for target property on HTMLFormElement
-PASS HTMLFormElement interface: attribute elements
-PASS Unscopable handled correctly for elements property on HTMLFormElement
-PASS HTMLFormElement interface: attribute length
-PASS Unscopable handled correctly for length property on HTMLFormElement
-PASS HTMLFormElement interface: operation submit()
-PASS Unscopable handled correctly for submit() on HTMLFormElement
-PASS HTMLFormElement interface: operation reset()
-PASS Unscopable handled correctly for reset() on HTMLFormElement
-PASS HTMLFormElement interface: operation checkValidity()
-PASS Unscopable handled correctly for checkValidity() on HTMLFormElement
-PASS HTMLFormElement interface: operation reportValidity()
-PASS Unscopable handled correctly for reportValidity() on HTMLFormElement
-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
-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 "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 Unscopable handled correctly for form property on HTMLLabelElement
-PASS HTMLLabelElement interface: attribute htmlFor
-PASS Unscopable handled correctly for htmlFor property on HTMLLabelElement
-PASS HTMLLabelElement interface: attribute control
-PASS Unscopable handled correctly for control property on HTMLLabelElement
-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 Unscopable handled correctly for accept property on HTMLInputElement
-PASS HTMLInputElement interface: attribute alt
-PASS Unscopable handled correctly for alt property on HTMLInputElement
-PASS HTMLInputElement interface: attribute autocomplete
-PASS Unscopable handled correctly for autocomplete property on HTMLInputElement
-PASS HTMLInputElement interface: attribute autofocus
-PASS Unscopable handled correctly for autofocus property on HTMLInputElement
-PASS HTMLInputElement interface: attribute defaultChecked
-PASS Unscopable handled correctly for defaultChecked property on HTMLInputElement
-PASS HTMLInputElement interface: attribute checked
-PASS Unscopable handled correctly for checked property on HTMLInputElement
-PASS HTMLInputElement interface: attribute dirName
-PASS Unscopable handled correctly for dirName property on HTMLInputElement
-PASS HTMLInputElement interface: attribute disabled
-PASS Unscopable handled correctly for disabled property on HTMLInputElement
-PASS HTMLInputElement interface: attribute form
-PASS Unscopable handled correctly for form property on HTMLInputElement
-PASS HTMLInputElement interface: attribute files
-PASS Unscopable handled correctly for files property on HTMLInputElement
-PASS HTMLInputElement interface: attribute formAction
-PASS Unscopable handled correctly for formAction property on HTMLInputElement
-PASS HTMLInputElement interface: attribute formEnctype
-PASS Unscopable handled correctly for formEnctype property on HTMLInputElement
-PASS HTMLInputElement interface: attribute formMethod
-PASS Unscopable handled correctly for formMethod property on HTMLInputElement
-PASS HTMLInputElement interface: attribute formNoValidate
-PASS Unscopable handled correctly for formNoValidate property on HTMLInputElement
-PASS HTMLInputElement interface: attribute formTarget
-PASS Unscopable handled correctly for formTarget property on HTMLInputElement
-PASS HTMLInputElement interface: attribute height
-PASS Unscopable handled correctly for height property on HTMLInputElement
-PASS HTMLInputElement interface: attribute indeterminate
-PASS Unscopable handled correctly for indeterminate property on HTMLInputElement
-PASS HTMLInputElement interface: attribute list
-PASS Unscopable handled correctly for list property on HTMLInputElement
-PASS HTMLInputElement interface: attribute max
-PASS Unscopable handled correctly for max property on HTMLInputElement
-PASS HTMLInputElement interface: attribute maxLength
-PASS Unscopable handled correctly for maxLength property on HTMLInputElement
-PASS HTMLInputElement interface: attribute min
-PASS Unscopable handled correctly for min property on HTMLInputElement
-PASS HTMLInputElement interface: attribute minLength
-PASS Unscopable handled correctly for minLength property on HTMLInputElement
-PASS HTMLInputElement interface: attribute multiple
-PASS Unscopable handled correctly for multiple property on HTMLInputElement
-PASS HTMLInputElement interface: attribute name
-PASS Unscopable handled correctly for name property on HTMLInputElement
-PASS HTMLInputElement interface: attribute pattern
-PASS Unscopable handled correctly for pattern property on HTMLInputElement
-PASS HTMLInputElement interface: attribute placeholder
-PASS Unscopable handled correctly for placeholder property on HTMLInputElement
-PASS HTMLInputElement interface: attribute readOnly
-PASS Unscopable handled correctly for readOnly property on HTMLInputElement
-PASS HTMLInputElement interface: attribute required
-PASS Unscopable handled correctly for required property on HTMLInputElement
-PASS HTMLInputElement interface: attribute size
-PASS Unscopable handled correctly for size property on HTMLInputElement
-PASS HTMLInputElement interface: attribute src
-PASS Unscopable handled correctly for src property on HTMLInputElement
-PASS HTMLInputElement interface: attribute step
-PASS Unscopable handled correctly for step property on HTMLInputElement
-PASS HTMLInputElement interface: attribute type
-PASS Unscopable handled correctly for type property on HTMLInputElement
-PASS HTMLInputElement interface: attribute defaultValue
-PASS Unscopable handled correctly for defaultValue property on HTMLInputElement
-PASS HTMLInputElement interface: attribute value
-PASS Unscopable handled correctly for value property on HTMLInputElement
-PASS HTMLInputElement interface: attribute valueAsDate
-PASS Unscopable handled correctly for valueAsDate property on HTMLInputElement
-PASS HTMLInputElement interface: attribute valueAsNumber
-PASS Unscopable handled correctly for valueAsNumber property on HTMLInputElement
-PASS HTMLInputElement interface: attribute width
-PASS Unscopable handled correctly for width property on HTMLInputElement
-PASS HTMLInputElement interface: operation stepUp(long)
-PASS Unscopable handled correctly for stepUp(long) on HTMLInputElement
-PASS HTMLInputElement interface: operation stepDown(long)
-PASS Unscopable handled correctly for stepDown(long) on HTMLInputElement
-PASS HTMLInputElement interface: attribute willValidate
-PASS Unscopable handled correctly for willValidate property on HTMLInputElement
-PASS HTMLInputElement interface: attribute validity
-PASS Unscopable handled correctly for validity property on HTMLInputElement
-PASS HTMLInputElement interface: attribute validationMessage
-PASS Unscopable handled correctly for validationMessage property on HTMLInputElement
-PASS HTMLInputElement interface: operation checkValidity()
-PASS Unscopable handled correctly for checkValidity() on HTMLInputElement
-PASS HTMLInputElement interface: operation reportValidity()
-PASS Unscopable handled correctly for reportValidity() on HTMLInputElement
-PASS HTMLInputElement interface: operation setCustomValidity(DOMString)
-PASS Unscopable handled correctly for setCustomValidity(DOMString) on HTMLInputElement
-PASS HTMLInputElement interface: attribute labels
-PASS Unscopable handled correctly for labels property on HTMLInputElement
-PASS HTMLInputElement interface: operation select()
-PASS Unscopable handled correctly for select() on HTMLInputElement
-PASS HTMLInputElement interface: attribute selectionStart
-PASS Unscopable handled correctly for selectionStart property on HTMLInputElement
-PASS HTMLInputElement interface: attribute selectionEnd
-PASS Unscopable handled correctly for selectionEnd property on HTMLInputElement
-PASS HTMLInputElement interface: attribute selectionDirection
-PASS Unscopable handled correctly for selectionDirection property on HTMLInputElement
-PASS HTMLInputElement interface: operation setRangeText(DOMString)
-PASS Unscopable handled correctly for setRangeText(DOMString) on HTMLInputElement
-PASS HTMLInputElement interface: operation setRangeText(DOMString, unsigned long, unsigned long, SelectionMode)
-PASS Unscopable handled correctly for setRangeText(DOMString, unsigned long, unsigned long, SelectionMode) on HTMLInputElement
-PASS HTMLInputElement interface: operation setSelectionRange(unsigned long, unsigned long, DOMString)
-PASS Unscopable handled correctly for setSelectionRange(unsigned long, unsigned long, DOMString) on HTMLInputElement
-PASS HTMLInputElement interface: attribute align
-PASS Unscopable handled correctly for align property on HTMLInputElement
-PASS HTMLInputElement interface: attribute useMap
-PASS Unscopable handled correctly for useMap property on HTMLInputElement
-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 "autofocus" 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(long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(long) on document.createElement("input") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "stepDown(long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(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, SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, 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, DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, 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 "autofocus" 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(long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(long) on createInput("text") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("text") must inherit property "stepDown(long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(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, SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, SelectionMode) on createInput("text") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("text") must inherit property "setSelectionRange(unsigned long, unsigned long, DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, 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 "autofocus" 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(long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(long) on createInput("hidden") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "stepDown(long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(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, SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, SelectionMode) on createInput("hidden") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "setSelectionRange(unsigned long, unsigned long, DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, 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 "autofocus" 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(long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(long) on createInput("search") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("search") must inherit property "stepDown(long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(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, SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, SelectionMode) on createInput("search") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("search") must inherit property "setSelectionRange(unsigned long, unsigned long, DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, 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 "autofocus" 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(long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(long) on createInput("tel") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("tel") must inherit property "stepDown(long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(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, SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, SelectionMode) on createInput("tel") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("tel") must inherit property "setSelectionRange(unsigned long, unsigned long, DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, 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 "autofocus" 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(long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(long) on createInput("url") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("url") must inherit property "stepDown(long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(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, SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, SelectionMode) on createInput("url") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("url") must inherit property "setSelectionRange(unsigned long, unsigned long, DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, 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 "autofocus" 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(long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(long) on createInput("email") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("email") must inherit property "stepDown(long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(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, SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, SelectionMode) on createInput("email") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("email") must inherit property "setSelectionRange(unsigned long, unsigned long, DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, 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 "autofocus" 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(long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(long) on createInput("password") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("password") must inherit property "stepDown(long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(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, SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, SelectionMode) on createInput("password") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("password") must inherit property "setSelectionRange(unsigned long, unsigned long, DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, 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 "autofocus" 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(long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(long) on createInput("date") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("date") must inherit property "stepDown(long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(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, SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, SelectionMode) on createInput("date") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("date") must inherit property "setSelectionRange(unsigned long, unsigned long, DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, 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 "autofocus" 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(long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(long) on createInput("month") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("month") must inherit property "stepDown(long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(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, SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, SelectionMode) on createInput("month") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("month") must inherit property "setSelectionRange(unsigned long, unsigned long, DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, 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 "autofocus" 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(long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(long) on createInput("week") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("week") must inherit property "stepDown(long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(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, SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, SelectionMode) on createInput("week") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("week") must inherit property "setSelectionRange(unsigned long, unsigned long, DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, 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 "autofocus" 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(long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(long) on createInput("time") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("time") must inherit property "stepDown(long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(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, SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, SelectionMode) on createInput("time") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("time") must inherit property "setSelectionRange(unsigned long, unsigned long, DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, 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 "autofocus" 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(long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(long) on createInput("datetime-local") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "stepDown(long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(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, SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, 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, DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, 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 "autofocus" 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(long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(long) on createInput("number") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("number") must inherit property "stepDown(long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(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, SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, SelectionMode) on createInput("number") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("number") must inherit property "setSelectionRange(unsigned long, unsigned long, DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, 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 "autofocus" 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(long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(long) on createInput("range") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("range") must inherit property "stepDown(long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(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, SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, SelectionMode) on createInput("range") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("range") must inherit property "setSelectionRange(unsigned long, unsigned long, DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, 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 "autofocus" 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(long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(long) on createInput("color") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("color") must inherit property "stepDown(long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(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, SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, SelectionMode) on createInput("color") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("color") must inherit property "setSelectionRange(unsigned long, unsigned long, DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, 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 "autofocus" 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(long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(long) on createInput("checkbox") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "stepDown(long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(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, SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, SelectionMode) on createInput("checkbox") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "setSelectionRange(unsigned long, unsigned long, DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, 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 "autofocus" 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(long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(long) on createInput("radio") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("radio") must inherit property "stepDown(long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(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, SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, SelectionMode) on createInput("radio") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("radio") must inherit property "setSelectionRange(unsigned long, unsigned long, DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, 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 "autofocus" 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
-FAIL HTMLInputElement interface: createInput("file") must inherit property "files" with the proper type Unrecognized type FileList
-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(long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(long) on createInput("file") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("file") must inherit property "stepDown(long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(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, SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, SelectionMode) on createInput("file") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("file") must inherit property "setSelectionRange(unsigned long, unsigned long, DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, 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 "autofocus" 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(long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(long) on createInput("submit") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("submit") must inherit property "stepDown(long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(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, SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, SelectionMode) on createInput("submit") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("submit") must inherit property "setSelectionRange(unsigned long, unsigned long, DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, 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 "autofocus" 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(long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(long) on createInput("image") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("image") must inherit property "stepDown(long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(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, SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, SelectionMode) on createInput("image") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("image") must inherit property "setSelectionRange(unsigned long, unsigned long, DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, 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 "autofocus" 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(long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(long) on createInput("reset") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("reset") must inherit property "stepDown(long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(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, SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, SelectionMode) on createInput("reset") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("reset") must inherit property "setSelectionRange(unsigned long, unsigned long, DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, 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 "autofocus" 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(long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(long) on createInput("button") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("button") must inherit property "stepDown(long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(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, SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, SelectionMode) on createInput("button") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("button") must inherit property "setSelectionRange(unsigned long, unsigned long, DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, 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 autofocus
-PASS Unscopable handled correctly for autofocus property on HTMLButtonElement
-PASS HTMLButtonElement interface: attribute disabled
-PASS Unscopable handled correctly for disabled property on HTMLButtonElement
-PASS HTMLButtonElement interface: attribute form
-PASS Unscopable handled correctly for form property on HTMLButtonElement
-PASS HTMLButtonElement interface: attribute formAction
-PASS Unscopable handled correctly for formAction property on HTMLButtonElement
-PASS HTMLButtonElement interface: attribute formEnctype
-PASS Unscopable handled correctly for formEnctype property on HTMLButtonElement
-PASS HTMLButtonElement interface: attribute formMethod
-PASS Unscopable handled correctly for formMethod property on HTMLButtonElement
-PASS HTMLButtonElement interface: attribute formNoValidate
-PASS Unscopable handled correctly for formNoValidate property on HTMLButtonElement
-PASS HTMLButtonElement interface: attribute formTarget
-PASS Unscopable handled correctly for formTarget property on HTMLButtonElement
-PASS HTMLButtonElement interface: attribute name
-PASS Unscopable handled correctly for name property on HTMLButtonElement
-PASS HTMLButtonElement interface: attribute type
-PASS Unscopable handled correctly for type property on HTMLButtonElement
-PASS HTMLButtonElement interface: attribute value
-PASS Unscopable handled correctly for value property on HTMLButtonElement
-PASS HTMLButtonElement interface: attribute willValidate
-PASS Unscopable handled correctly for willValidate property on HTMLButtonElement
-PASS HTMLButtonElement interface: attribute validity
-PASS Unscopable handled correctly for validity property on HTMLButtonElement
-PASS HTMLButtonElement interface: attribute validationMessage
-PASS Unscopable handled correctly for validationMessage property on HTMLButtonElement
-PASS HTMLButtonElement interface: operation checkValidity()
-PASS Unscopable handled correctly for checkValidity() on HTMLButtonElement
-PASS HTMLButtonElement interface: operation reportValidity()
-PASS Unscopable handled correctly for reportValidity() on HTMLButtonElement
-PASS HTMLButtonElement interface: operation setCustomValidity(DOMString)
-PASS Unscopable handled correctly for setCustomValidity(DOMString) on HTMLButtonElement
-PASS HTMLButtonElement interface: attribute labels
-PASS Unscopable handled correctly for labels property on HTMLButtonElement
-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 "autofocus" with the proper type
-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 Unscopable handled correctly for autocomplete property on HTMLSelectElement
-PASS HTMLSelectElement interface: attribute autofocus
-PASS Unscopable handled correctly for autofocus property on HTMLSelectElement
-PASS HTMLSelectElement interface: attribute disabled
-PASS Unscopable handled correctly for disabled property on HTMLSelectElement
-PASS HTMLSelectElement interface: attribute form
-PASS Unscopable handled correctly for form property on HTMLSelectElement
-PASS HTMLSelectElement interface: attribute multiple
-PASS Unscopable handled correctly for multiple property on HTMLSelectElement
-PASS HTMLSelectElement interface: attribute name
-PASS Unscopable handled correctly for name property on HTMLSelectElement
-PASS HTMLSelectElement interface: attribute required
-PASS Unscopable handled correctly for required property on HTMLSelectElement
-PASS HTMLSelectElement interface: attribute size
-PASS Unscopable handled correctly for size property on HTMLSelectElement
-PASS HTMLSelectElement interface: attribute type
-PASS Unscopable handled correctly for type property on HTMLSelectElement
-PASS HTMLSelectElement interface: attribute options
-PASS Unscopable handled correctly for options property on HTMLSelectElement
-PASS HTMLSelectElement interface: attribute length
-PASS Unscopable handled correctly for length property on HTMLSelectElement
-PASS HTMLSelectElement interface: operation item(unsigned long)
-PASS Unscopable handled correctly for item(unsigned long) on HTMLSelectElement
-PASS HTMLSelectElement interface: operation namedItem(DOMString)
-PASS Unscopable handled correctly for namedItem(DOMString) on HTMLSelectElement
-PASS HTMLSelectElement interface: operation add([object Object],[object Object], [object Object],[object Object])
-PASS Unscopable handled correctly for add([object Object],[object Object], [object Object],[object Object]) on HTMLSelectElement
-PASS HTMLSelectElement interface: operation remove()
-PASS Unscopable handled correctly for remove() on HTMLSelectElement
-PASS HTMLSelectElement interface: operation remove(long)
-PASS Unscopable handled correctly for remove(long) on HTMLSelectElement
-PASS HTMLSelectElement interface: attribute selectedOptions
-PASS Unscopable handled correctly for selectedOptions property on HTMLSelectElement
-PASS HTMLSelectElement interface: attribute selectedIndex
-PASS Unscopable handled correctly for selectedIndex property on HTMLSelectElement
-PASS HTMLSelectElement interface: attribute value
-PASS Unscopable handled correctly for value property on HTMLSelectElement
-PASS HTMLSelectElement interface: attribute willValidate
-PASS Unscopable handled correctly for willValidate property on HTMLSelectElement
-PASS HTMLSelectElement interface: attribute validity
-PASS Unscopable handled correctly for validity property on HTMLSelectElement
-PASS HTMLSelectElement interface: attribute validationMessage
-PASS Unscopable handled correctly for validationMessage property on HTMLSelectElement
-PASS HTMLSelectElement interface: operation checkValidity()
-PASS Unscopable handled correctly for checkValidity() on HTMLSelectElement
-PASS HTMLSelectElement interface: operation reportValidity()
-PASS Unscopable handled correctly for reportValidity() on HTMLSelectElement
-PASS HTMLSelectElement interface: operation setCustomValidity(DOMString)
-PASS Unscopable handled correctly for setCustomValidity(DOMString) on HTMLSelectElement
-PASS HTMLSelectElement interface: attribute labels
-PASS Unscopable handled correctly for labels property on HTMLSelectElement
-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 "autofocus" 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([object Object],[object Object], [object Object],[object Object])" with the proper type
-PASS HTMLSelectElement interface: calling add([object Object],[object Object], [object Object],[object Object]) 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 Unscopable handled correctly for options property on HTMLDataListElement
-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 Unscopable handled correctly for disabled property on HTMLOptGroupElement
-PASS HTMLOptGroupElement interface: attribute label
-PASS Unscopable handled correctly for label property on HTMLOptGroupElement
-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: 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 Unscopable handled correctly for disabled property on HTMLOptionElement
-PASS HTMLOptionElement interface: attribute form
-PASS Unscopable handled correctly for form property on HTMLOptionElement
-PASS HTMLOptionElement interface: attribute label
-PASS Unscopable handled correctly for label property on HTMLOptionElement
-PASS HTMLOptionElement interface: attribute defaultSelected
-PASS Unscopable handled correctly for defaultSelected property on HTMLOptionElement
-PASS HTMLOptionElement interface: attribute selected
-PASS Unscopable handled correctly for selected property on HTMLOptionElement
-PASS HTMLOptionElement interface: attribute value
-PASS Unscopable handled correctly for value property on HTMLOptionElement
-PASS HTMLOptionElement interface: attribute text
-PASS Unscopable handled correctly for text property on HTMLOptionElement
-PASS HTMLOptionElement interface: attribute index
-PASS Unscopable handled correctly for index property on HTMLOptionElement
-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 Unscopable handled correctly for autocomplete property on HTMLTextAreaElement
-PASS HTMLTextAreaElement interface: attribute autofocus
-PASS Unscopable handled correctly for autofocus property on HTMLTextAreaElement
-PASS HTMLTextAreaElement interface: attribute cols
-PASS Unscopable handled correctly for cols property on HTMLTextAreaElement
-PASS HTMLTextAreaElement interface: attribute dirName
-PASS Unscopable handled correctly for dirName property on HTMLTextAreaElement
-PASS HTMLTextAreaElement interface: attribute disabled
-PASS Unscopable handled correctly for disabled property on HTMLTextAreaElement
-PASS HTMLTextAreaElement interface: attribute form
-PASS Unscopable handled correctly for form property on HTMLTextAreaElement
-PASS HTMLTextAreaElement interface: attribute maxLength
-PASS Unscopable handled correctly for maxLength property on HTMLTextAreaElement
-PASS HTMLTextAreaElement interface: attribute minLength
-PASS Unscopable handled correctly for minLength property on HTMLTextAreaElement
-PASS HTMLTextAreaElement interface: attribute name
-PASS Unscopable handled correctly for name property on HTMLTextAreaElement
-PASS HTMLTextAreaElement interface: attribute placeholder
-PASS Unscopable handled correctly for placeholder property on HTMLTextAreaElement
-PASS HTMLTextAreaElement interface: attribute readOnly
-PASS Unscopable handled correctly for readOnly property on HTMLTextAreaElement
-PASS HTMLTextAreaElement interface: attribute required
-PASS Unscopable handled correctly for required property on HTMLTextAreaElement
-PASS HTMLTextAreaElement interface: attribute rows
-PASS Unscopable handled correctly for rows property on HTMLTextAreaElement
-PASS HTMLTextAreaElement interface: attribute wrap
-PASS Unscopable handled correctly for wrap property on HTMLTextAreaElement
-PASS HTMLTextAreaElement interface: attribute type
-PASS Unscopable handled correctly for type property on HTMLTextAreaElement
-PASS HTMLTextAreaElement interface: attribute defaultValue
-PASS Unscopable handled correctly for defaultValue property on HTMLTextAreaElement
-PASS HTMLTextAreaElement interface: attribute value
-PASS Unscopable handled correctly for value property on HTMLTextAreaElement
-PASS HTMLTextAreaElement interface: attribute textLength
-PASS Unscopable handled correctly for textLength property on HTMLTextAreaElement
-PASS HTMLTextAreaElement interface: attribute willValidate
-PASS Unscopable handled correctly for willValidate property on HTMLTextAreaElement
-PASS HTMLTextAreaElement interface: attribute validity
-PASS Unscopable handled correctly for validity property on HTMLTextAreaElement
-PASS HTMLTextAreaElement interface: attribute validationMessage
-PASS Unscopable handled correctly for validationMessage property on HTMLTextAreaElement
-PASS HTMLTextAreaElement interface: operation checkValidity()
-PASS Unscopable handled correctly for checkValidity() on HTMLTextAreaElement
-PASS HTMLTextAreaElement interface: operation reportValidity()
-PASS Unscopable handled correctly for reportValidity() on HTMLTextAreaElement
-PASS HTMLTextAreaElement interface: operation setCustomValidity(DOMString)
-PASS Unscopable handled correctly for setCustomValidity(DOMString) on HTMLTextAreaElement
-PASS HTMLTextAreaElement interface: attribute labels
-PASS Unscopable handled correctly for labels property on HTMLTextAreaElement
-PASS HTMLTextAreaElement interface: operation select()
-PASS Unscopable handled correctly for select() on HTMLTextAreaElement
-PASS HTMLTextAreaElement interface: attribute selectionStart
-PASS Unscopable handled correctly for selectionStart property on HTMLTextAreaElement
-PASS HTMLTextAreaElement interface: attribute selectionEnd
-PASS Unscopable handled correctly for selectionEnd property on HTMLTextAreaElement
-PASS HTMLTextAreaElement interface: attribute selectionDirection
-PASS Unscopable handled correctly for selectionDirection property on HTMLTextAreaElement
-PASS HTMLTextAreaElement interface: operation setRangeText(DOMString)
-PASS Unscopable handled correctly for setRangeText(DOMString) on HTMLTextAreaElement
-PASS HTMLTextAreaElement interface: operation setRangeText(DOMString, unsigned long, unsigned long, SelectionMode)
-PASS Unscopable handled correctly for setRangeText(DOMString, unsigned long, unsigned long, SelectionMode) on HTMLTextAreaElement
-PASS HTMLTextAreaElement interface: operation setSelectionRange(unsigned long, unsigned long, DOMString)
-PASS Unscopable handled correctly for setSelectionRange(unsigned long, unsigned long, DOMString) on HTMLTextAreaElement
-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 "autofocus" 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, SelectionMode)" with the proper type
-PASS HTMLTextAreaElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, 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, DOMString)" with the proper type
-PASS HTMLTextAreaElement interface: calling setSelectionRange(unsigned long, unsigned long, 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 Unscopable handled correctly for htmlFor property on HTMLOutputElement
-PASS HTMLOutputElement interface: attribute form
-PASS Unscopable handled correctly for form property on HTMLOutputElement
-PASS HTMLOutputElement interface: attribute name
-PASS Unscopable handled correctly for name property on HTMLOutputElement
-PASS HTMLOutputElement interface: attribute type
-PASS Unscopable handled correctly for type property on HTMLOutputElement
-PASS HTMLOutputElement interface: attribute defaultValue
-PASS Unscopable handled correctly for defaultValue property on HTMLOutputElement
-PASS HTMLOutputElement interface: attribute value
-PASS Unscopable handled correctly for value property on HTMLOutputElement
-PASS HTMLOutputElement interface: attribute willValidate
-PASS Unscopable handled correctly for willValidate property on HTMLOutputElement
-PASS HTMLOutputElement interface: attribute validity
-PASS Unscopable handled correctly for validity property on HTMLOutputElement
-PASS HTMLOutputElement interface: attribute validationMessage
-PASS Unscopable handled correctly for validationMessage property on HTMLOutputElement
-PASS HTMLOutputElement interface: operation checkValidity()
-PASS Unscopable handled correctly for checkValidity() on HTMLOutputElement
-PASS HTMLOutputElement interface: operation reportValidity()
-PASS Unscopable handled correctly for reportValidity() on HTMLOutputElement
-PASS HTMLOutputElement interface: operation setCustomValidity(DOMString)
-PASS Unscopable handled correctly for setCustomValidity(DOMString) on HTMLOutputElement
-PASS HTMLOutputElement interface: attribute labels
-PASS Unscopable handled correctly for labels property on HTMLOutputElement
-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 Unscopable handled correctly for value property on HTMLProgressElement
-PASS HTMLProgressElement interface: attribute max
-PASS Unscopable handled correctly for max property on HTMLProgressElement
-PASS HTMLProgressElement interface: attribute position
-PASS Unscopable handled correctly for position property on HTMLProgressElement
-PASS HTMLProgressElement interface: attribute labels
-PASS Unscopable handled correctly for labels property on HTMLProgressElement
-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 Unscopable handled correctly for value property on HTMLMeterElement
-PASS HTMLMeterElement interface: attribute min
-PASS Unscopable handled correctly for min property on HTMLMeterElement
-PASS HTMLMeterElement interface: attribute max
-PASS Unscopable handled correctly for max property on HTMLMeterElement
-PASS HTMLMeterElement interface: attribute low
-PASS Unscopable handled correctly for low property on HTMLMeterElement
-PASS HTMLMeterElement interface: attribute high
-PASS Unscopable handled correctly for high property on HTMLMeterElement
-PASS HTMLMeterElement interface: attribute optimum
-PASS Unscopable handled correctly for optimum property on HTMLMeterElement
-PASS HTMLMeterElement interface: attribute labels
-PASS Unscopable handled correctly for labels property on HTMLMeterElement
-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 Unscopable handled correctly for disabled property on HTMLFieldSetElement
-PASS HTMLFieldSetElement interface: attribute form
-PASS Unscopable handled correctly for form property on HTMLFieldSetElement
-PASS HTMLFieldSetElement interface: attribute name
-PASS Unscopable handled correctly for name property on HTMLFieldSetElement
-PASS HTMLFieldSetElement interface: attribute type
-PASS Unscopable handled correctly for type property on HTMLFieldSetElement
-PASS HTMLFieldSetElement interface: attribute elements
-PASS Unscopable handled correctly for elements property on HTMLFieldSetElement
-PASS HTMLFieldSetElement interface: attribute willValidate
-PASS Unscopable handled correctly for willValidate property on HTMLFieldSetElement
-PASS HTMLFieldSetElement interface: attribute validity
-PASS Unscopable handled correctly for validity property on HTMLFieldSetElement
-PASS HTMLFieldSetElement interface: attribute validationMessage
-PASS Unscopable handled correctly for validationMessage property on HTMLFieldSetElement
-PASS HTMLFieldSetElement interface: operation checkValidity()
-PASS Unscopable handled correctly for checkValidity() on HTMLFieldSetElement
-PASS HTMLFieldSetElement interface: operation reportValidity()
-PASS Unscopable handled correctly for reportValidity() on HTMLFieldSetElement
-PASS HTMLFieldSetElement interface: operation setCustomValidity(DOMString)
-PASS Unscopable handled correctly for setCustomValidity(DOMString) on HTMLFieldSetElement
-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 Unscopable handled correctly for form property on HTMLLegendElement
-PASS HTMLLegendElement interface: attribute align
-PASS Unscopable handled correctly for align property on HTMLLegendElement
-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 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 Unscopable handled correctly for valueMissing property on ValidityState
-PASS ValidityState interface: attribute typeMismatch
-PASS Unscopable handled correctly for typeMismatch property on ValidityState
-PASS ValidityState interface: attribute patternMismatch
-PASS Unscopable handled correctly for patternMismatch property on ValidityState
-PASS ValidityState interface: attribute tooLong
-PASS Unscopable handled correctly for tooLong property on ValidityState
-PASS ValidityState interface: attribute tooShort
-PASS Unscopable handled correctly for tooShort property on ValidityState
-PASS ValidityState interface: attribute rangeUnderflow
-PASS Unscopable handled correctly for rangeUnderflow property on ValidityState
-PASS ValidityState interface: attribute rangeOverflow
-PASS Unscopable handled correctly for rangeOverflow property on ValidityState
-PASS ValidityState interface: attribute stepMismatch
-PASS Unscopable handled correctly for stepMismatch property on ValidityState
-PASS ValidityState interface: attribute badInput
-PASS Unscopable handled correctly for badInput property on ValidityState
-PASS ValidityState interface: attribute customError
-PASS Unscopable handled correctly for customError property on ValidityState
-PASS ValidityState interface: attribute valid
-PASS Unscopable handled correctly for valid property on ValidityState
-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 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 Unscopable handled correctly for open property on HTMLDetailsElement
-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 Unscopable handled correctly for open property on HTMLDialogElement
-PASS HTMLDialogElement interface: attribute returnValue
-PASS Unscopable handled correctly for returnValue property on HTMLDialogElement
-PASS HTMLDialogElement interface: operation show()
-PASS Unscopable handled correctly for show() on HTMLDialogElement
-PASS HTMLDialogElement interface: operation showModal()
-PASS Unscopable handled correctly for showModal() on HTMLDialogElement
-PASS HTMLDialogElement interface: operation close(DOMString)
-PASS Unscopable handled correctly for close(DOMString) on HTMLDialogElement
-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 Unscopable handled correctly for src property on HTMLScriptElement
-PASS HTMLScriptElement interface: attribute type
-PASS Unscopable handled correctly for type property on HTMLScriptElement
-PASS HTMLScriptElement interface: attribute noModule
-PASS Unscopable handled correctly for noModule property on HTMLScriptElement
-PASS HTMLScriptElement interface: attribute async
-PASS Unscopable handled correctly for async property on HTMLScriptElement
-PASS HTMLScriptElement interface: attribute defer
-PASS Unscopable handled correctly for defer property on HTMLScriptElement
-PASS HTMLScriptElement interface: attribute crossOrigin
-PASS Unscopable handled correctly for crossOrigin property on HTMLScriptElement
-PASS HTMLScriptElement interface: attribute text
-PASS Unscopable handled correctly for text property on HTMLScriptElement
-FAIL HTMLScriptElement interface: attribute nonce assert_own_property: expected property "nonce" missing
-PASS Unscopable handled correctly for nonce property on HTMLScriptElement
-PASS HTMLScriptElement interface: attribute integrity
-PASS Unscopable handled correctly for integrity property on HTMLScriptElement
-PASS HTMLScriptElement interface: attribute charset
-PASS Unscopable handled correctly for charset property on HTMLScriptElement
-PASS HTMLScriptElement interface: attribute event
-PASS Unscopable handled correctly for event property on HTMLScriptElement
-PASS HTMLScriptElement interface: attribute htmlFor
-PASS Unscopable handled correctly for htmlFor property on HTMLScriptElement
-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 "nonce" with the proper type
-PASS HTMLScriptElement interface: document.createElement("script") must inherit property "integrity" with the proper type
-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 Unscopable handled correctly for content property on HTMLTemplateElement
-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 Unscopable handled correctly for name property on HTMLSlotElement
-PASS HTMLSlotElement interface: operation assignedNodes(AssignedNodesOptions)
-PASS Unscopable handled correctly for assignedNodes(AssignedNodesOptions) on HTMLSlotElement
-PASS HTMLSlotElement interface: operation assignedElements(AssignedNodesOptions)
-PASS Unscopable handled correctly for assignedElements(AssignedNodesOptions) on HTMLSlotElement
-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(AssignedNodesOptions)" with the proper type
-PASS HTMLSlotElement interface: calling assignedNodes(AssignedNodesOptions) on document.createElement("slot") with too few arguments must throw TypeError
-PASS HTMLSlotElement interface: document.createElement("slot") must inherit property "assignedElements(AssignedNodesOptions)" with the proper type
-PASS HTMLSlotElement interface: calling assignedElements(AssignedNodesOptions) 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 Unscopable handled correctly for width property on HTMLCanvasElement
-PASS HTMLCanvasElement interface: attribute height
-PASS Unscopable handled correctly for height property on HTMLCanvasElement
-PASS HTMLCanvasElement interface: operation getContext(DOMString, any)
-PASS Unscopable handled correctly for getContext(DOMString, any) on HTMLCanvasElement
-PASS HTMLCanvasElement interface: operation toDataURL(DOMString, any)
-PASS Unscopable handled correctly for toDataURL(DOMString, any) on HTMLCanvasElement
-PASS HTMLCanvasElement interface: operation toBlob(BlobCallback, DOMString, any)
-PASS Unscopable handled correctly for toBlob(BlobCallback, DOMString, any) on HTMLCanvasElement
-PASS HTMLCanvasElement interface: operation transferControlToOffscreen()
-PASS Unscopable handled correctly for transferControlToOffscreen() on HTMLCanvasElement
-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, any)" with the proper type
-PASS HTMLCanvasElement interface: calling getContext(DOMString, any) on document.createElement("canvas") with too few arguments must throw TypeError
-PASS HTMLCanvasElement interface: document.createElement("canvas") must inherit property "toDataURL(DOMString, any)" with the proper type
-PASS HTMLCanvasElement interface: calling toDataURL(DOMString, any) on document.createElement("canvas") with too few arguments must throw TypeError
-PASS HTMLCanvasElement interface: document.createElement("canvas") must inherit property "toBlob(BlobCallback, DOMString, any)" with the proper type
-PASS HTMLCanvasElement interface: calling toBlob(BlobCallback, DOMString, 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 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 Unscopable handled correctly for canvas property on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation save()
-PASS Unscopable handled correctly for save() on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation restore()
-PASS Unscopable handled correctly for restore() on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation scale(unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for scale(unrestricted double, unrestricted double) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation rotate(unrestricted double)
-PASS Unscopable handled correctly for rotate(unrestricted double) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation translate(unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for translate(unrestricted double, unrestricted double) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation transform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for transform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on CanvasRenderingContext2D
-FAIL CanvasRenderingContext2D interface: operation getTransform() assert_own_property: interface prototype object missing non-static operation expected property "getTransform" missing
-PASS Unscopable handled correctly for getTransform() on CanvasRenderingContext2D
-FAIL CanvasRenderingContext2D interface: operation setTransform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) assert_equals: property has wrong .length expected 0 but got 6
-PASS Unscopable handled correctly for setTransform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on CanvasRenderingContext2D
-FAIL CanvasRenderingContext2D interface: operation setTransform(DOMMatrix2DInit) assert_equals: property has wrong .length expected 0 but got 6
-PASS Unscopable handled correctly for setTransform(DOMMatrix2DInit) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation resetTransform()
-PASS Unscopable handled correctly for resetTransform() on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: attribute globalAlpha
-PASS Unscopable handled correctly for globalAlpha property on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: attribute globalCompositeOperation
-PASS Unscopable handled correctly for globalCompositeOperation property on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: attribute imageSmoothingEnabled
-PASS Unscopable handled correctly for imageSmoothingEnabled property on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: attribute imageSmoothingQuality
-PASS Unscopable handled correctly for imageSmoothingQuality property on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: attribute strokeStyle
-PASS Unscopable handled correctly for strokeStyle property on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: attribute fillStyle
-PASS Unscopable handled correctly for fillStyle property on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation createLinearGradient(double, double, double, double)
-PASS Unscopable handled correctly for createLinearGradient(double, double, double, double) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation createRadialGradient(double, double, double, double, double, double)
-PASS Unscopable handled correctly for createRadialGradient(double, double, double, double, double, double) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation createPattern(CanvasImageSource, DOMString)
-PASS Unscopable handled correctly for createPattern(CanvasImageSource, DOMString) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: attribute shadowOffsetX
-PASS Unscopable handled correctly for shadowOffsetX property on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: attribute shadowOffsetY
-PASS Unscopable handled correctly for shadowOffsetY property on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: attribute shadowBlur
-PASS Unscopable handled correctly for shadowBlur property on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: attribute shadowColor
-PASS Unscopable handled correctly for shadowColor property on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: attribute filter
-PASS Unscopable handled correctly for filter property on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation clearRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for clearRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation fillRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for fillRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation strokeRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for strokeRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation beginPath()
-PASS Unscopable handled correctly for beginPath() on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation fill(CanvasFillRule)
-PASS Unscopable handled correctly for fill(CanvasFillRule) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation fill(Path2D, CanvasFillRule)
-PASS Unscopable handled correctly for fill(Path2D, CanvasFillRule) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation stroke()
-PASS Unscopable handled correctly for stroke() on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation stroke(Path2D)
-PASS Unscopable handled correctly for stroke(Path2D) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation clip(CanvasFillRule)
-PASS Unscopable handled correctly for clip(CanvasFillRule) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation clip(Path2D, CanvasFillRule)
-PASS Unscopable handled correctly for clip(Path2D, CanvasFillRule) on CanvasRenderingContext2D
-FAIL CanvasRenderingContext2D interface: operation resetClip() assert_own_property: interface prototype object missing non-static operation expected property "resetClip" missing
-PASS Unscopable handled correctly for resetClip() on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation isPointInPath(unrestricted double, unrestricted double, CanvasFillRule)
-PASS Unscopable handled correctly for isPointInPath(unrestricted double, unrestricted double, CanvasFillRule) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation isPointInPath(Path2D, unrestricted double, unrestricted double, CanvasFillRule)
-PASS Unscopable handled correctly for isPointInPath(Path2D, unrestricted double, unrestricted double, CanvasFillRule) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation isPointInStroke(unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for isPointInStroke(unrestricted double, unrestricted double) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation isPointInStroke(Path2D, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for isPointInStroke(Path2D, unrestricted double, unrestricted double) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation drawFocusIfNeeded(Element)
-PASS Unscopable handled correctly for drawFocusIfNeeded(Element) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation drawFocusIfNeeded(Path2D, Element)
-PASS Unscopable handled correctly for drawFocusIfNeeded(Path2D, Element) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation scrollPathIntoView()
-PASS Unscopable handled correctly for scrollPathIntoView() on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation scrollPathIntoView(Path2D)
-PASS Unscopable handled correctly for scrollPathIntoView(Path2D) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation fillText(DOMString, unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for fillText(DOMString, unrestricted double, unrestricted double, unrestricted double) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation strokeText(DOMString, unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for strokeText(DOMString, unrestricted double, unrestricted double, unrestricted double) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation measureText(DOMString)
-PASS Unscopable handled correctly for measureText(DOMString) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation drawImage(CanvasImageSource, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for drawImage(CanvasImageSource, unrestricted double, unrestricted double) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation drawImage(CanvasImageSource, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for drawImage(CanvasImageSource, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation drawImage(CanvasImageSource, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for drawImage(CanvasImageSource, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation createImageData(long, long)
-PASS Unscopable handled correctly for createImageData(long, long) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation createImageData(ImageData)
-PASS Unscopable handled correctly for createImageData(ImageData) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation getImageData(long, long, long, long)
-PASS Unscopable handled correctly for getImageData(long, long, long, long) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation putImageData(ImageData, long, long)
-PASS Unscopable handled correctly for putImageData(ImageData, long, long) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation putImageData(ImageData, long, long, long, long, long, long)
-PASS Unscopable handled correctly for putImageData(ImageData, long, long, long, long, long, long) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: attribute lineWidth
-PASS Unscopable handled correctly for lineWidth property on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: attribute lineCap
-PASS Unscopable handled correctly for lineCap property on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: attribute lineJoin
-PASS Unscopable handled correctly for lineJoin property on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: attribute miterLimit
-PASS Unscopable handled correctly for miterLimit property on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation setLineDash([object Object])
-PASS Unscopable handled correctly for setLineDash([object Object]) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation getLineDash()
-PASS Unscopable handled correctly for getLineDash() on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: attribute lineDashOffset
-PASS Unscopable handled correctly for lineDashOffset property on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: attribute font
-PASS Unscopable handled correctly for font property on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: attribute textAlign
-PASS Unscopable handled correctly for textAlign property on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: attribute textBaseline
-PASS Unscopable handled correctly for textBaseline property on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: attribute direction
-PASS Unscopable handled correctly for direction property on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation closePath()
-PASS Unscopable handled correctly for closePath() on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation moveTo(unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for moveTo(unrestricted double, unrestricted double) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation lineTo(unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for lineTo(unrestricted double, unrestricted double) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation quadraticCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for quadraticCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation bezierCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for bezierCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation arcTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for arcTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation rect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for rect(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation arc(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, boolean)
-PASS Unscopable handled correctly for arc(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, boolean) on CanvasRenderingContext2D
-PASS CanvasRenderingContext2D interface: operation ellipse(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, boolean)
-PASS Unscopable handled correctly for ellipse(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, boolean) on CanvasRenderingContext2D
-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 "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
-FAIL CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "getTransform()" with the proper type assert_inherits: property "getTransform" not found in prototype chain
-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(DOMMatrix2DInit)" with the proper type
-PASS CanvasRenderingContext2D interface: calling setTransform(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(CanvasFillRule)" with the proper type
-PASS CanvasRenderingContext2D interface: calling fill(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, CanvasFillRule)" with the proper type
-PASS CanvasRenderingContext2D interface: calling fill(Path2D, 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(CanvasFillRule)" with the proper type
-PASS CanvasRenderingContext2D interface: calling clip(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, CanvasFillRule)" with the proper type
-PASS CanvasRenderingContext2D interface: calling clip(Path2D, CanvasFillRule) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-FAIL CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "resetClip()" with the proper type assert_inherits: property "resetClip" not found in prototype chain
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "isPointInPath(unrestricted double, unrestricted double, CanvasFillRule)" with the proper type
-PASS CanvasRenderingContext2D interface: calling isPointInPath(unrestricted double, unrestricted double, 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, CanvasFillRule)" with the proper type
-PASS CanvasRenderingContext2D interface: calling isPointInPath(Path2D, unrestricted double, unrestricted double, 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, unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling fillText(DOMString, 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 "strokeText(DOMString, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling strokeText(DOMString, 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 "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([object Object])" with the proper type
-PASS CanvasRenderingContext2D interface: calling setLineDash([object Object]) 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, boolean)" with the proper type
-PASS CanvasRenderingContext2D interface: calling arc(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, 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, boolean)" with the proper type
-PASS CanvasRenderingContext2D interface: calling ellipse(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, 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 Unscopable handled correctly for addColorStop(double, DOMString) on CanvasGradient
-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
-FAIL CanvasPattern interface: operation setTransform(DOMMatrix2DInit) assert_equals: property has wrong .length expected 0 but got 1
-PASS Unscopable handled correctly for setTransform(DOMMatrix2DInit) on CanvasPattern
-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 Unscopable handled correctly for width property on TextMetrics
-PASS TextMetrics interface: attribute actualBoundingBoxLeft
-PASS Unscopable handled correctly for actualBoundingBoxLeft property on TextMetrics
-PASS TextMetrics interface: attribute actualBoundingBoxRight
-PASS Unscopable handled correctly for actualBoundingBoxRight property on TextMetrics
-PASS TextMetrics interface: attribute fontBoundingBoxAscent
-PASS Unscopable handled correctly for fontBoundingBoxAscent property on TextMetrics
-PASS TextMetrics interface: attribute fontBoundingBoxDescent
-PASS Unscopable handled correctly for fontBoundingBoxDescent property on TextMetrics
-PASS TextMetrics interface: attribute actualBoundingBoxAscent
-PASS Unscopable handled correctly for actualBoundingBoxAscent property on TextMetrics
-PASS TextMetrics interface: attribute actualBoundingBoxDescent
-PASS Unscopable handled correctly for actualBoundingBoxDescent property on TextMetrics
-PASS TextMetrics interface: attribute emHeightAscent
-PASS Unscopable handled correctly for emHeightAscent property on TextMetrics
-PASS TextMetrics interface: attribute emHeightDescent
-PASS Unscopable handled correctly for emHeightDescent property on TextMetrics
-PASS TextMetrics interface: attribute hangingBaseline
-PASS Unscopable handled correctly for hangingBaseline property on TextMetrics
-PASS TextMetrics interface: attribute alphabeticBaseline
-PASS Unscopable handled correctly for alphabeticBaseline property on TextMetrics
-PASS TextMetrics interface: attribute ideographicBaseline
-PASS Unscopable handled correctly for ideographicBaseline property on TextMetrics
-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 Unscopable handled correctly for width property on ImageData
-PASS ImageData interface: attribute height
-PASS Unscopable handled correctly for height property on ImageData
-PASS ImageData interface: attribute data
-PASS Unscopable handled correctly for data property on ImageData
-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, DOMMatrix2DInit)
-PASS Unscopable handled correctly for addPath(Path2D, DOMMatrix2DInit) on Path2D
-PASS Path2D interface: operation closePath()
-PASS Unscopable handled correctly for closePath() on Path2D
-PASS Path2D interface: operation moveTo(unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for moveTo(unrestricted double, unrestricted double) on Path2D
-PASS Path2D interface: operation lineTo(unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for lineTo(unrestricted double, unrestricted double) on Path2D
-PASS Path2D interface: operation quadraticCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for quadraticCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on Path2D
-PASS Path2D interface: operation bezierCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for bezierCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on Path2D
-PASS Path2D interface: operation arcTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for arcTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on Path2D
-PASS Path2D interface: operation rect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for rect(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on Path2D
-PASS Path2D interface: operation arc(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, boolean)
-PASS Unscopable handled correctly for arc(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, boolean) on Path2D
-PASS Path2D interface: operation ellipse(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, boolean)
-PASS Unscopable handled correctly for ellipse(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, boolean) on Path2D
-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 Unscopable handled correctly for canvas property on ImageBitmapRenderingContext
-PASS ImageBitmapRenderingContext interface: operation transferFromImageBitmap(ImageBitmap)
-PASS Unscopable handled correctly for transferFromImageBitmap(ImageBitmap) on ImageBitmapRenderingContext
-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 Unscopable handled correctly for width property on OffscreenCanvas
-PASS OffscreenCanvas interface: attribute height
-PASS Unscopable handled correctly for height property on OffscreenCanvas
-PASS OffscreenCanvas interface: operation getContext(OffscreenRenderingContextId, any)
-PASS Unscopable handled correctly for getContext(OffscreenRenderingContextId, any) on OffscreenCanvas
-PASS OffscreenCanvas interface: operation transferToImageBitmap()
-PASS Unscopable handled correctly for transferToImageBitmap() on OffscreenCanvas
-PASS OffscreenCanvas interface: operation convertToBlob(ImageEncodeOptions)
-PASS Unscopable handled correctly for convertToBlob(ImageEncodeOptions) on OffscreenCanvas
-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
-FAIL OffscreenCanvasRenderingContext2D interface: operation commit() assert_throws: calling operation with this = null didn't throw TypeError function "function() {
-            fn.apply(obj, args);
-        }" did not throw
-PASS Unscopable handled correctly for commit() on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: attribute canvas
-PASS Unscopable handled correctly for canvas property on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation save()
-PASS Unscopable handled correctly for save() on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation restore()
-PASS Unscopable handled correctly for restore() on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation scale(unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for scale(unrestricted double, unrestricted double) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation rotate(unrestricted double)
-PASS Unscopable handled correctly for rotate(unrestricted double) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation translate(unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for translate(unrestricted double, unrestricted double) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation transform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for transform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on OffscreenCanvasRenderingContext2D
-FAIL OffscreenCanvasRenderingContext2D interface: operation getTransform() assert_own_property: interface prototype object missing non-static operation expected property "getTransform" missing
-PASS Unscopable handled correctly for getTransform() on OffscreenCanvasRenderingContext2D
-FAIL OffscreenCanvasRenderingContext2D interface: operation setTransform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) assert_equals: property has wrong .length expected 0 but got 6
-PASS Unscopable handled correctly for setTransform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on OffscreenCanvasRenderingContext2D
-FAIL OffscreenCanvasRenderingContext2D interface: operation setTransform(DOMMatrix2DInit) assert_equals: property has wrong .length expected 0 but got 6
-PASS Unscopable handled correctly for setTransform(DOMMatrix2DInit) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation resetTransform()
-PASS Unscopable handled correctly for resetTransform() on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: attribute globalAlpha
-PASS Unscopable handled correctly for globalAlpha property on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: attribute globalCompositeOperation
-PASS Unscopable handled correctly for globalCompositeOperation property on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: attribute imageSmoothingEnabled
-PASS Unscopable handled correctly for imageSmoothingEnabled property on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: attribute imageSmoothingQuality
-PASS Unscopable handled correctly for imageSmoothingQuality property on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: attribute strokeStyle
-PASS Unscopable handled correctly for strokeStyle property on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: attribute fillStyle
-PASS Unscopable handled correctly for fillStyle property on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation createLinearGradient(double, double, double, double)
-PASS Unscopable handled correctly for createLinearGradient(double, double, double, double) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation createRadialGradient(double, double, double, double, double, double)
-PASS Unscopable handled correctly for createRadialGradient(double, double, double, double, double, double) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation createPattern(CanvasImageSource, DOMString)
-PASS Unscopable handled correctly for createPattern(CanvasImageSource, DOMString) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: attribute shadowOffsetX
-PASS Unscopable handled correctly for shadowOffsetX property on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: attribute shadowOffsetY
-PASS Unscopable handled correctly for shadowOffsetY property on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: attribute shadowBlur
-PASS Unscopable handled correctly for shadowBlur property on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: attribute shadowColor
-PASS Unscopable handled correctly for shadowColor property on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: attribute filter
-PASS Unscopable handled correctly for filter property on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation clearRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for clearRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation fillRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for fillRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation strokeRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for strokeRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation beginPath()
-PASS Unscopable handled correctly for beginPath() on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation fill(CanvasFillRule)
-PASS Unscopable handled correctly for fill(CanvasFillRule) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation fill(Path2D, CanvasFillRule)
-PASS Unscopable handled correctly for fill(Path2D, CanvasFillRule) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation stroke()
-PASS Unscopable handled correctly for stroke() on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation stroke(Path2D)
-PASS Unscopable handled correctly for stroke(Path2D) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation clip(CanvasFillRule)
-PASS Unscopable handled correctly for clip(CanvasFillRule) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation clip(Path2D, CanvasFillRule)
-PASS Unscopable handled correctly for clip(Path2D, CanvasFillRule) on OffscreenCanvasRenderingContext2D
-FAIL OffscreenCanvasRenderingContext2D interface: operation resetClip() assert_own_property: interface prototype object missing non-static operation expected property "resetClip" missing
-PASS Unscopable handled correctly for resetClip() on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation isPointInPath(unrestricted double, unrestricted double, CanvasFillRule)
-PASS Unscopable handled correctly for isPointInPath(unrestricted double, unrestricted double, CanvasFillRule) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation isPointInPath(Path2D, unrestricted double, unrestricted double, CanvasFillRule)
-PASS Unscopable handled correctly for isPointInPath(Path2D, unrestricted double, unrestricted double, CanvasFillRule) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation isPointInStroke(unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for isPointInStroke(unrestricted double, unrestricted double) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation isPointInStroke(Path2D, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for isPointInStroke(Path2D, unrestricted double, unrestricted double) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation drawImage(CanvasImageSource, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for drawImage(CanvasImageSource, unrestricted double, unrestricted double) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation drawImage(CanvasImageSource, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for drawImage(CanvasImageSource, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation drawImage(CanvasImageSource, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for drawImage(CanvasImageSource, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation createImageData(long, long)
-PASS Unscopable handled correctly for createImageData(long, long) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation createImageData(ImageData)
-PASS Unscopable handled correctly for createImageData(ImageData) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation getImageData(long, long, long, long)
-PASS Unscopable handled correctly for getImageData(long, long, long, long) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation putImageData(ImageData, long, long)
-PASS Unscopable handled correctly for putImageData(ImageData, long, long) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation putImageData(ImageData, long, long, long, long, long, long)
-PASS Unscopable handled correctly for putImageData(ImageData, long, long, long, long, long, long) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: attribute lineWidth
-PASS Unscopable handled correctly for lineWidth property on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: attribute lineCap
-PASS Unscopable handled correctly for lineCap property on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: attribute lineJoin
-PASS Unscopable handled correctly for lineJoin property on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: attribute miterLimit
-PASS Unscopable handled correctly for miterLimit property on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation setLineDash([object Object])
-PASS Unscopable handled correctly for setLineDash([object Object]) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation getLineDash()
-PASS Unscopable handled correctly for getLineDash() on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: attribute lineDashOffset
-PASS Unscopable handled correctly for lineDashOffset property on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation closePath()
-PASS Unscopable handled correctly for closePath() on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation moveTo(unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for moveTo(unrestricted double, unrestricted double) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation lineTo(unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for lineTo(unrestricted double, unrestricted double) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation quadraticCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for quadraticCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation bezierCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for bezierCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation arcTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for arcTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation rect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Unscopable handled correctly for rect(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation arc(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, boolean)
-PASS Unscopable handled correctly for arc(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, boolean) on OffscreenCanvasRenderingContext2D
-PASS OffscreenCanvasRenderingContext2D interface: operation ellipse(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, boolean)
-PASS Unscopable handled correctly for ellipse(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, boolean) on OffscreenCanvasRenderingContext2D
-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, Function, ElementDefinitionOptions)
-PASS Unscopable handled correctly for define(DOMString, Function, ElementDefinitionOptions) on CustomElementRegistry
-PASS CustomElementRegistry interface: operation get(DOMString)
-PASS Unscopable handled correctly for get(DOMString) on CustomElementRegistry
-PASS CustomElementRegistry interface: operation whenDefined(DOMString)
-PASS Unscopable handled correctly for whenDefined(DOMString) on CustomElementRegistry
-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 Unscopable handled correctly for dropEffect property on DataTransfer
-PASS DataTransfer interface: attribute effectAllowed
-PASS Unscopable handled correctly for effectAllowed property on DataTransfer
-PASS DataTransfer interface: attribute items
-PASS Unscopable handled correctly for items property on DataTransfer
-PASS DataTransfer interface: operation setDragImage(Element, long, long)
-PASS Unscopable handled correctly for setDragImage(Element, long, long) on DataTransfer
-PASS DataTransfer interface: attribute types
-PASS Unscopable handled correctly for types property on DataTransfer
-PASS DataTransfer interface: operation getData(DOMString)
-PASS Unscopable handled correctly for getData(DOMString) on DataTransfer
-PASS DataTransfer interface: operation setData(DOMString, DOMString)
-PASS Unscopable handled correctly for setData(DOMString, DOMString) on DataTransfer
-PASS DataTransfer interface: operation clearData(DOMString)
-PASS Unscopable handled correctly for clearData(DOMString) on DataTransfer
-PASS DataTransfer interface: attribute files
-PASS Unscopable handled correctly for files property on DataTransfer
-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 Unscopable handled correctly for length property on DataTransferItemList
-PASS DataTransferItemList interface: operation add(DOMString, DOMString)
-PASS Unscopable handled correctly for add(DOMString, DOMString) on DataTransferItemList
-PASS DataTransferItemList interface: operation add(File)
-PASS Unscopable handled correctly for add(File) on DataTransferItemList
-PASS DataTransferItemList interface: operation remove(unsigned long)
-PASS Unscopable handled correctly for remove(unsigned long) on DataTransferItemList
-PASS DataTransferItemList interface: operation clear()
-PASS Unscopable handled correctly for clear() on DataTransferItemList
-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 Unscopable handled correctly for kind property on DataTransferItem
-PASS DataTransferItem interface: attribute type
-PASS Unscopable handled correctly for type property on DataTransferItem
-PASS DataTransferItem interface: operation getAsString(FunctionStringCallback)
-PASS Unscopable handled correctly for getAsString(FunctionStringCallback) on DataTransferItem
-PASS DataTransferItem interface: operation getAsFile()
-PASS Unscopable handled correctly for getAsFile() on DataTransferItem
-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 Unscopable handled correctly for dataTransfer property on DragEvent
-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
-FAIL Window interface: attribute self assert_equals: "self" must have a getter expected "function" but got "undefined"
-PASS Unscopable handled correctly for self property on Window
-PASS Window interface: attribute name
-PASS Unscopable handled correctly for name property on Window
-PASS Window interface: attribute history
-PASS Unscopable handled correctly for history property on Window
-PASS Window interface: attribute customElements
-PASS Unscopable handled correctly for customElements property on Window
-PASS Window interface: attribute locationbar
-PASS Unscopable handled correctly for locationbar property on Window
-PASS Window interface: attribute menubar
-PASS Unscopable handled correctly for menubar property on Window
-PASS Window interface: attribute personalbar
-PASS Unscopable handled correctly for personalbar property on Window
-PASS Window interface: attribute scrollbars
-PASS Unscopable handled correctly for scrollbars property on Window
-PASS Window interface: attribute statusbar
-PASS Unscopable handled correctly for statusbar property on Window
-PASS Window interface: attribute toolbar
-PASS Unscopable handled correctly for toolbar property on Window
-PASS Window interface: attribute status
-PASS Unscopable handled correctly for status property on Window
-PASS Window interface: operation close()
-PASS Unscopable handled correctly for close() on Window
-FAIL Window interface: attribute closed assert_equals: "closed" must have a getter expected "function" but got "undefined"
-PASS Unscopable handled correctly for closed property on Window
-PASS Window interface: operation stop()
-PASS Unscopable handled correctly for stop() on Window
-PASS Window interface: operation focus()
-PASS Unscopable handled correctly for focus() on Window
-PASS Window interface: operation blur()
-PASS Unscopable handled correctly for blur() on Window
-FAIL Window interface: attribute frames assert_equals: "frames" must have a getter expected "function" but got "undefined"
-PASS Unscopable handled correctly for frames property on Window
-FAIL Window interface: attribute length assert_equals: "length" must have a getter expected "function" but got "undefined"
-PASS Unscopable handled correctly for length property on Window
-FAIL Window interface: attribute opener assert_equals: "opener" must have a getter expected "function" but got "undefined"
-PASS Unscopable handled correctly for opener property on Window
-FAIL Window interface: attribute parent assert_equals: "parent" must have a getter expected "function" but got "undefined"
-PASS Unscopable handled correctly for parent property on Window
-PASS Window interface: attribute frameElement
-PASS Unscopable handled correctly for frameElement property on Window
-PASS Window interface: operation open(USVString, DOMString, DOMString)
-PASS Unscopable handled correctly for open(USVString, DOMString, DOMString) on Window
-PASS Window interface: attribute navigator
-PASS Unscopable handled correctly for navigator property on Window
-PASS Window interface: attribute applicationCache
-PASS Unscopable handled correctly for applicationCache property on Window
-PASS Window interface: operation alert()
-PASS Unscopable handled correctly for alert() on Window
-PASS Window interface: operation alert(DOMString)
-PASS Unscopable handled correctly for alert(DOMString) on Window
-PASS Window interface: operation confirm(DOMString)
-PASS Unscopable handled correctly for confirm(DOMString) on Window
-PASS Window interface: operation prompt(DOMString, DOMString)
-PASS Unscopable handled correctly for prompt(DOMString, DOMString) on Window
-PASS Window interface: operation print()
-PASS Unscopable handled correctly for print() on Window
-PASS Window interface: operation requestAnimationFrame(FrameRequestCallback)
-PASS Unscopable handled correctly for requestAnimationFrame(FrameRequestCallback) on Window
-PASS Window interface: operation cancelAnimationFrame(unsigned long)
-PASS Unscopable handled correctly for cancelAnimationFrame(unsigned long) on Window
-PASS Window interface: operation postMessage(any, USVString, [object Object])
-PASS Unscopable handled correctly for postMessage(any, USVString, [object Object]) on Window
-PASS Window interface: operation captureEvents()
-PASS Unscopable handled correctly for captureEvents() on Window
-PASS Window interface: operation releaseEvents()
-PASS Unscopable handled correctly for releaseEvents() on Window
-PASS Window interface: attribute external
-PASS Unscopable handled correctly for external property on Window
-PASS Window interface: attribute onabort
-PASS Unscopable handled correctly for onabort property on Window
-PASS Window interface: attribute onauxclick
-PASS Unscopable handled correctly for onauxclick property on Window
-PASS Window interface: attribute onblur
-PASS Unscopable handled correctly for onblur property on Window
-PASS Window interface: attribute oncancel
-PASS Unscopable handled correctly for oncancel property on Window
-PASS Window interface: attribute oncanplay
-PASS Unscopable handled correctly for oncanplay property on Window
-PASS Window interface: attribute oncanplaythrough
-PASS Unscopable handled correctly for oncanplaythrough property on Window
-PASS Window interface: attribute onchange
-PASS Unscopable handled correctly for onchange property on Window
-PASS Window interface: attribute onclick
-PASS Unscopable handled correctly for onclick property on Window
-PASS Window interface: attribute onclose
-PASS Unscopable handled correctly for onclose property on Window
-PASS Window interface: attribute oncontextmenu
-PASS Unscopable handled correctly for oncontextmenu property on Window
-PASS Window interface: attribute oncuechange
-PASS Unscopable handled correctly for oncuechange property on Window
-PASS Window interface: attribute ondblclick
-PASS Unscopable handled correctly for ondblclick property on Window
-PASS Window interface: attribute ondrag
-PASS Unscopable handled correctly for ondrag property on Window
-PASS Window interface: attribute ondragend
-PASS Unscopable handled correctly for ondragend property on Window
-PASS Window interface: attribute ondragenter
-PASS Unscopable handled correctly for ondragenter property on Window
-FAIL Window interface: attribute ondragexit assert_own_property: The global object must have a property "ondragexit" expected property "ondragexit" missing
-PASS Unscopable handled correctly for ondragexit property on Window
-PASS Window interface: attribute ondragleave
-PASS Unscopable handled correctly for ondragleave property on Window
-PASS Window interface: attribute ondragover
-PASS Unscopable handled correctly for ondragover property on Window
-PASS Window interface: attribute ondragstart
-PASS Unscopable handled correctly for ondragstart property on Window
-PASS Window interface: attribute ondrop
-PASS Unscopable handled correctly for ondrop property on Window
-PASS Window interface: attribute ondurationchange
-PASS Unscopable handled correctly for ondurationchange property on Window
-PASS Window interface: attribute onemptied
-PASS Unscopable handled correctly for onemptied property on Window
-PASS Window interface: attribute onended
-PASS Unscopable handled correctly for onended property on Window
-PASS Window interface: attribute onerror
-PASS Unscopable handled correctly for onerror property on Window
-PASS Window interface: attribute onfocus
-PASS Unscopable handled correctly for onfocus property on Window
-PASS Window interface: attribute oninput
-PASS Unscopable handled correctly for oninput property on Window
-PASS Window interface: attribute oninvalid
-PASS Unscopable handled correctly for oninvalid property on Window
-PASS Window interface: attribute onkeydown
-PASS Unscopable handled correctly for onkeydown property on Window
-PASS Window interface: attribute onkeypress
-PASS Unscopable handled correctly for onkeypress property on Window
-PASS Window interface: attribute onkeyup
-PASS Unscopable handled correctly for onkeyup property on Window
-PASS Window interface: attribute onload
-PASS Unscopable handled correctly for onload property on Window
-PASS Window interface: attribute onloadeddata
-PASS Unscopable handled correctly for onloadeddata property on Window
-PASS Window interface: attribute onloadedmetadata
-PASS Unscopable handled correctly for onloadedmetadata property on Window
-FAIL Window interface: attribute onloadend assert_own_property: The global object must have a property "onloadend" expected property "onloadend" missing
-PASS Unscopable handled correctly for onloadend property on Window
-PASS Window interface: attribute onloadstart
-PASS Unscopable handled correctly for onloadstart property on Window
-PASS Window interface: attribute onmousedown
-PASS Unscopable handled correctly for onmousedown property on Window
-PASS Window interface: attribute onmouseenter
-PASS Unscopable handled correctly for onmouseenter property on Window
-PASS Window interface: attribute onmouseleave
-PASS Unscopable handled correctly for onmouseleave property on Window
-PASS Window interface: attribute onmousemove
-PASS Unscopable handled correctly for onmousemove property on Window
-PASS Window interface: attribute onmouseout
-PASS Unscopable handled correctly for onmouseout property on Window
-PASS Window interface: attribute onmouseover
-PASS Unscopable handled correctly for onmouseover property on Window
-PASS Window interface: attribute onmouseup
-PASS Unscopable handled correctly for onmouseup property on Window
-PASS Window interface: attribute onwheel
-PASS Unscopable handled correctly for onwheel property on Window
-PASS Window interface: attribute onpause
-PASS Unscopable handled correctly for onpause property on Window
-PASS Window interface: attribute onplay
-PASS Unscopable handled correctly for onplay property on Window
-PASS Window interface: attribute onplaying
-PASS Unscopable handled correctly for onplaying property on Window
-PASS Window interface: attribute onprogress
-PASS Unscopable handled correctly for onprogress property on Window
-PASS Window interface: attribute onratechange
-PASS Unscopable handled correctly for onratechange property on Window
-PASS Window interface: attribute onreset
-PASS Unscopable handled correctly for onreset property on Window
-PASS Window interface: attribute onresize
-PASS Unscopable handled correctly for onresize property on Window
-PASS Window interface: attribute onscroll
-PASS Unscopable handled correctly for onscroll property on Window
-FAIL Window interface: attribute onsecuritypolicyviolation assert_own_property: The global object must have a property "onsecuritypolicyviolation" expected property "onsecuritypolicyviolation" missing
-PASS Unscopable handled correctly for onsecuritypolicyviolation property on Window
-PASS Window interface: attribute onseeked
-PASS Unscopable handled correctly for onseeked property on Window
-PASS Window interface: attribute onseeking
-PASS Unscopable handled correctly for onseeking property on Window
-PASS Window interface: attribute onselect
-PASS Unscopable handled correctly for onselect property on Window
-PASS Window interface: attribute onstalled
-PASS Unscopable handled correctly for onstalled property on Window
-PASS Window interface: attribute onsubmit
-PASS Unscopable handled correctly for onsubmit property on Window
-PASS Window interface: attribute onsuspend
-PASS Unscopable handled correctly for onsuspend property on Window
-PASS Window interface: attribute ontimeupdate
-PASS Unscopable handled correctly for ontimeupdate property on Window
-PASS Window interface: attribute ontoggle
-PASS Unscopable handled correctly for ontoggle property on Window
-PASS Window interface: attribute onvolumechange
-PASS Unscopable handled correctly for onvolumechange property on Window
-PASS Window interface: attribute onwaiting
-PASS Unscopable handled correctly for onwaiting property on Window
-PASS Window interface: attribute onafterprint
-PASS Unscopable handled correctly for onafterprint property on Window
-PASS Window interface: attribute onbeforeprint
-PASS Unscopable handled correctly for onbeforeprint property on Window
-PASS Window interface: attribute onbeforeunload
-PASS Unscopable handled correctly for onbeforeunload property on Window
-PASS Window interface: attribute onhashchange
-PASS Unscopable handled correctly for onhashchange property on Window
-PASS Window interface: attribute onlanguagechange
-PASS Unscopable handled correctly for onlanguagechange property on Window
-PASS Window interface: attribute onmessage
-PASS Unscopable handled correctly for onmessage property on Window
-PASS Window interface: attribute onmessageerror
-PASS Unscopable handled correctly for onmessageerror property on Window
-PASS Window interface: attribute onoffline
-PASS Unscopable handled correctly for onoffline property on Window
-PASS Window interface: attribute ononline
-PASS Unscopable handled correctly for ononline property on Window
-PASS Window interface: attribute onpagehide
-PASS Unscopable handled correctly for onpagehide property on Window
-PASS Window interface: attribute onpageshow
-PASS Unscopable handled correctly for onpageshow property on Window
-PASS Window interface: attribute onpopstate
-PASS Unscopable handled correctly for onpopstate property on Window
-PASS Window interface: attribute onrejectionhandled
-PASS Unscopable handled correctly for onrejectionhandled property on Window
-PASS Window interface: attribute onstorage
-PASS Unscopable handled correctly for onstorage property on Window
-PASS Window interface: attribute onunhandledrejection
-PASS Unscopable handled correctly for onunhandledrejection property on Window
-PASS Window interface: attribute onunload
-PASS Unscopable handled correctly for onunload property on Window
-PASS Window interface: attribute origin
-PASS Unscopable handled correctly for origin property on Window
-PASS Window interface: operation btoa(DOMString)
-PASS Unscopable handled correctly for btoa(DOMString) on Window
-PASS Window interface: operation atob(DOMString)
-PASS Unscopable handled correctly for atob(DOMString) on Window
-PASS Window interface: operation setTimeout(TimerHandler, long, any)
-PASS Unscopable handled correctly for setTimeout(TimerHandler, long, any) on Window
-PASS Window interface: operation clearTimeout(long)
-PASS Unscopable handled correctly for clearTimeout(long) on Window
-PASS Window interface: operation setInterval(TimerHandler, long, any)
-PASS Unscopable handled correctly for setInterval(TimerHandler, long, any) on Window
-PASS Window interface: operation clearInterval(long)
-PASS Unscopable handled correctly for clearInterval(long) on Window
-PASS Window interface: operation createImageBitmap(ImageBitmapSource, ImageBitmapOptions)
-PASS Unscopable handled correctly for createImageBitmap(ImageBitmapSource, ImageBitmapOptions) on Window
-PASS Window interface: operation createImageBitmap(ImageBitmapSource, long, long, long, long, ImageBitmapOptions)
-PASS Unscopable handled correctly for createImageBitmap(ImageBitmapSource, long, long, long, long, ImageBitmapOptions) on Window
-PASS Window interface: attribute sessionStorage
-PASS Unscopable handled correctly for sessionStorage property on Window
-PASS Window interface: attribute localStorage
-PASS Unscopable handled correctly for localStorage property on Window
-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
-FAIL Window interface: window must have own property "window" assert_false: property descriptor should not have a "value" field expected false got true
-FAIL Window interface: window must inherit property "self" with the proper type Unrecognized type WindowProxy
-PASS Window interface: window must have own property "document"
-PASS Window interface: window must inherit property "name" with the proper type
-FAIL Window interface: window must have own property "location" assert_false: property descriptor should not have a "value" field expected false got true
-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
-FAIL Window interface: window must inherit property "frames" with the proper type Unrecognized type WindowProxy
-PASS Window interface: window must inherit property "length" with the proper type
-FAIL Window interface: window must have own property "top" assert_false: property descriptor should not have a "value" field expected false got true
-PASS Window interface: window must inherit property "opener" with the proper type
-FAIL Window interface: window must inherit property "parent" with the proper type Unrecognized type WindowProxy
-PASS Window interface: window must inherit property "frameElement" with the proper type
-PASS Window interface: window must inherit property "open(USVString, DOMString, DOMString)" with the proper type
-PASS Window interface: calling open(USVString, DOMString, 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 "applicationCache" 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(DOMString)" with the proper type
-PASS Window interface: calling confirm(DOMString) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "prompt(DOMString, DOMString)" with the proper type
-PASS Window interface: calling prompt(DOMString, 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 "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 "postMessage(any, USVString, [object Object])" with the proper type
-PASS Window interface: calling postMessage(any, USVString, [object Object]) 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
-FAIL Window interface: window must inherit property "ondragexit" with the proper type assert_own_property: expected property "ondragexit" missing
-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 "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
-FAIL Window interface: window must inherit property "onloadend" with the proper type assert_own_property: expected property "onloadend" missing
-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 "onwheel" 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
-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 "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 "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, long, any)" with the proper type
-PASS Window interface: calling setTimeout(TimerHandler, long, any) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "clearTimeout(long)" with the proper type
-PASS Window interface: calling clearTimeout(long) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "setInterval(TimerHandler, long, any)" with the proper type
-PASS Window interface: calling setInterval(TimerHandler, long, any) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "clearInterval(long)" with the proper type
-PASS Window interface: calling clearInterval(long) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "createImageBitmap(ImageBitmapSource, ImageBitmapOptions)" with the proper type
-PASS Window interface: calling createImageBitmap(ImageBitmapSource, ImageBitmapOptions) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "createImageBitmap(ImageBitmapSource, long, long, long, long, ImageBitmapOptions)" with the proper type
-PASS Window interface: calling createImageBitmap(ImageBitmapSource, long, long, long, long, ImageBitmapOptions) 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 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 Unscopable handled correctly for visible property on BarProp
-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
-FAIL History interface: attribute index assert_true: The prototype object must have a property "index" expected true got false
-PASS Unscopable handled correctly for index property on History
-PASS History interface: attribute length
-PASS Unscopable handled correctly for length property on History
-PASS History interface: attribute scrollRestoration
-PASS Unscopable handled correctly for scrollRestoration property on History
-PASS History interface: attribute state
-PASS Unscopable handled correctly for state property on History
-PASS History interface: operation go(long)
-PASS Unscopable handled correctly for go(long) on History
-PASS History interface: operation back()
-PASS Unscopable handled correctly for back() on History
-PASS History interface: operation forward()
-PASS Unscopable handled correctly for forward() on History
-PASS History interface: operation pushState(any, DOMString, USVString)
-PASS Unscopable handled correctly for pushState(any, DOMString, USVString) on History
-PASS History interface: operation replaceState(any, DOMString, USVString)
-PASS Unscopable handled correctly for replaceState(any, DOMString, USVString) on History
-PASS History must be primary interface of window.history
-PASS Stringification of window.history
-FAIL History interface: window.history must inherit property "index" with the proper type assert_inherits: property "index" not found in prototype chain
-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(long)" with the proper type
-PASS History interface: calling go(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, USVString)" with the proper type
-PASS History interface: calling pushState(any, DOMString, USVString) on window.history with too few arguments must throw TypeError
-PASS History interface: window.history must inherit property "replaceState(any, DOMString, USVString)" with the proper type
-PASS History interface: calling replaceState(any, DOMString, 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
-FAIL Location interface: window.location must have own property "href" assert_false: property descriptor should not have a "value" field expected false got true
-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 Unscopable handled correctly for state property on PopStateEvent
-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 Unscopable handled correctly for oldURL property on HashChangeEvent
-PASS HashChangeEvent interface: attribute newURL
-PASS Unscopable handled correctly for newURL property on HashChangeEvent
-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 Unscopable handled correctly for persisted property on PageTransitionEvent
-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 Unscopable handled correctly for returnValue property on BeforeUnloadEvent
-PASS ApplicationCache interface: existence and properties of interface object
-PASS ApplicationCache interface object length
-PASS ApplicationCache interface object name
-PASS ApplicationCache interface: existence and properties of interface prototype object
-PASS ApplicationCache interface: existence and properties of interface prototype object's "constructor" property
-PASS ApplicationCache interface: existence and properties of interface prototype object's @@unscopables property
-PASS ApplicationCache interface: constant UNCACHED on interface object
-PASS ApplicationCache interface: constant UNCACHED on interface prototype object
-PASS ApplicationCache interface: constant IDLE on interface object
-PASS ApplicationCache interface: constant IDLE on interface prototype object
-PASS ApplicationCache interface: constant CHECKING on interface object
-PASS ApplicationCache interface: constant CHECKING on interface prototype object
-PASS ApplicationCache interface: constant DOWNLOADING on interface object
-PASS ApplicationCache interface: constant DOWNLOADING on interface prototype object
-PASS ApplicationCache interface: constant UPDATEREADY on interface object
-PASS ApplicationCache interface: constant UPDATEREADY on interface prototype object
-PASS ApplicationCache interface: constant OBSOLETE on interface object
-PASS ApplicationCache interface: constant OBSOLETE on interface prototype object
-PASS ApplicationCache interface: attribute status
-PASS Unscopable handled correctly for status property on ApplicationCache
-PASS ApplicationCache interface: operation update()
-PASS Unscopable handled correctly for update() on ApplicationCache
-PASS ApplicationCache interface: operation abort()
-PASS Unscopable handled correctly for abort() on ApplicationCache
-PASS ApplicationCache interface: operation swapCache()
-PASS Unscopable handled correctly for swapCache() on ApplicationCache
-PASS ApplicationCache interface: attribute onchecking
-PASS Unscopable handled correctly for onchecking property on ApplicationCache
-PASS ApplicationCache interface: attribute onerror
-PASS Unscopable handled correctly for onerror property on ApplicationCache
-PASS ApplicationCache interface: attribute onnoupdate
-PASS Unscopable handled correctly for onnoupdate property on ApplicationCache
-PASS ApplicationCache interface: attribute ondownloading
-PASS Unscopable handled correctly for ondownloading property on ApplicationCache
-PASS ApplicationCache interface: attribute onprogress
-PASS Unscopable handled correctly for onprogress property on ApplicationCache
-PASS ApplicationCache interface: attribute onupdateready
-PASS Unscopable handled correctly for onupdateready property on ApplicationCache
-PASS ApplicationCache interface: attribute oncached
-PASS Unscopable handled correctly for oncached property on ApplicationCache
-PASS ApplicationCache interface: attribute onobsolete
-PASS Unscopable handled correctly for onobsolete property on ApplicationCache
-PASS ApplicationCache must be primary interface of window.applicationCache
-PASS Stringification of window.applicationCache
-PASS ApplicationCache interface: window.applicationCache must inherit property "UNCACHED" with the proper type
-PASS ApplicationCache interface: window.applicationCache must inherit property "IDLE" with the proper type
-PASS ApplicationCache interface: window.applicationCache must inherit property "CHECKING" with the proper type
-PASS ApplicationCache interface: window.applicationCache must inherit property "DOWNLOADING" with the proper type
-PASS ApplicationCache interface: window.applicationCache must inherit property "UPDATEREADY" with the proper type
-PASS ApplicationCache interface: window.applicationCache must inherit property "OBSOLETE" with the proper type
-PASS ApplicationCache interface: window.applicationCache must inherit property "status" with the proper type
-PASS ApplicationCache interface: window.applicationCache must inherit property "update()" with the proper type
-PASS ApplicationCache interface: window.applicationCache must inherit property "abort()" with the proper type
-PASS ApplicationCache interface: window.applicationCache must inherit property "swapCache()" with the proper type
-PASS ApplicationCache interface: window.applicationCache must inherit property "onchecking" with the proper type
-PASS ApplicationCache interface: window.applicationCache must inherit property "onerror" with the proper type
-PASS ApplicationCache interface: window.applicationCache must inherit property "onnoupdate" with the proper type
-PASS ApplicationCache interface: window.applicationCache must inherit property "ondownloading" with the proper type
-PASS ApplicationCache interface: window.applicationCache must inherit property "onprogress" with the proper type
-PASS ApplicationCache interface: window.applicationCache must inherit property "onupdateready" with the proper type
-PASS ApplicationCache interface: window.applicationCache must inherit property "oncached" with the proper type
-PASS ApplicationCache interface: window.applicationCache must inherit property "onobsolete" with the proper type
-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 Unscopable handled correctly for message property on ErrorEvent
-PASS ErrorEvent interface: attribute filename
-PASS Unscopable handled correctly for filename property on ErrorEvent
-PASS ErrorEvent interface: attribute lineno
-PASS Unscopable handled correctly for lineno property on ErrorEvent
-PASS ErrorEvent interface: attribute colno
-PASS Unscopable handled correctly for colno property on ErrorEvent
-PASS ErrorEvent interface: attribute error
-PASS Unscopable handled correctly for error property on ErrorEvent
-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 Unscopable handled correctly for promise property on PromiseRejectionEvent
-PASS PromiseRejectionEvent interface: attribute reason
-PASS Unscopable handled correctly for reason property on PromiseRejectionEvent
-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 Unscopable handled correctly for appCodeName property on Navigator
-PASS Navigator interface: attribute appName
-PASS Unscopable handled correctly for appName property on Navigator
-PASS Navigator interface: attribute appVersion
-PASS Unscopable handled correctly for appVersion property on Navigator
-PASS Navigator interface: attribute platform
-PASS Unscopable handled correctly for platform property on Navigator
-PASS Navigator interface: attribute product
-PASS Unscopable handled correctly for product property on Navigator
-PASS Navigator interface: attribute productSub
-PASS Unscopable handled correctly for productSub property on Navigator
-PASS Navigator interface: attribute userAgent
-PASS Unscopable handled correctly for userAgent property on Navigator
-PASS Navigator interface: attribute vendor
-PASS Unscopable handled correctly for vendor property on Navigator
-PASS Navigator interface: attribute vendorSub
-PASS Unscopable handled correctly for vendorSub property on Navigator
-FAIL Navigator interface: operation taintEnabled() assert_own_property: interface prototype object missing non-static operation expected property "taintEnabled" missing
-PASS Unscopable handled correctly for taintEnabled() on Navigator
-FAIL Navigator interface: attribute oscpu assert_true: The prototype object must have a property "oscpu" expected true got false
-PASS Unscopable handled correctly for oscpu property on Navigator
-PASS Navigator interface: attribute language
-PASS Unscopable handled correctly for language property on Navigator
-PASS Navigator interface: attribute languages
-PASS Unscopable handled correctly for languages property on Navigator
-PASS Navigator interface: attribute onLine
-PASS Unscopable handled correctly for onLine property on Navigator
-PASS Navigator interface: operation registerProtocolHandler(DOMString, USVString, DOMString)
-PASS Unscopable handled correctly for registerProtocolHandler(DOMString, USVString, DOMString) on Navigator
-PASS Navigator interface: operation unregisterProtocolHandler(DOMString, USVString)
-PASS Unscopable handled correctly for unregisterProtocolHandler(DOMString, USVString) on Navigator
-PASS Navigator interface: attribute cookieEnabled
-PASS Unscopable handled correctly for cookieEnabled property on Navigator
-PASS Navigator interface: attribute plugins
-PASS Unscopable handled correctly for plugins property on Navigator
-PASS Navigator interface: attribute mimeTypes
-PASS Unscopable handled correctly for mimeTypes property on Navigator
-PASS Navigator interface: operation javaEnabled()
-PASS Unscopable handled correctly for javaEnabled() on Navigator
-PASS Navigator interface: attribute hardwareConcurrency
-PASS Unscopable handled correctly for hardwareConcurrency property on Navigator
-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, DOMString)" with the proper type
-PASS Navigator interface: calling registerProtocolHandler(DOMString, USVString, DOMString) 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 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(boolean)
-PASS Unscopable handled correctly for refresh(boolean) on PluginArray
-PASS PluginArray interface: attribute length
-PASS Unscopable handled correctly for length property on PluginArray
-PASS PluginArray interface: operation item(unsigned long)
-PASS Unscopable handled correctly for item(unsigned long) on PluginArray
-PASS PluginArray interface: operation namedItem(DOMString)
-PASS Unscopable handled correctly for namedItem(DOMString) on PluginArray
-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 Unscopable handled correctly for length property on MimeTypeArray
-PASS MimeTypeArray interface: operation item(unsigned long)
-PASS Unscopable handled correctly for item(unsigned long) on MimeTypeArray
-PASS MimeTypeArray interface: operation namedItem(DOMString)
-PASS Unscopable handled correctly for namedItem(DOMString) on MimeTypeArray
-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 Unscopable handled correctly for name property on Plugin
-PASS Plugin interface: attribute description
-PASS Unscopable handled correctly for description property on Plugin
-PASS Plugin interface: attribute filename
-PASS Unscopable handled correctly for filename property on Plugin
-PASS Plugin interface: attribute length
-PASS Unscopable handled correctly for length property on Plugin
-PASS Plugin interface: operation item(unsigned long)
-PASS Unscopable handled correctly for item(unsigned long) on Plugin
-PASS Plugin interface: operation namedItem(DOMString)
-PASS Unscopable handled correctly for namedItem(DOMString) on Plugin
-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 Unscopable handled correctly for type property on MimeType
-PASS MimeType interface: attribute description
-PASS Unscopable handled correctly for description property on MimeType
-PASS MimeType interface: attribute suffixes
-PASS Unscopable handled correctly for suffixes property on MimeType
-PASS MimeType interface: attribute enabledPlugin
-PASS Unscopable handled correctly for enabledPlugin property on MimeType
-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 Unscopable handled correctly for width property on ImageBitmap
-PASS ImageBitmap interface: attribute height
-PASS Unscopable handled correctly for height property on ImageBitmap
-PASS ImageBitmap interface: operation close()
-PASS Unscopable handled correctly for close() on ImageBitmap
-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 Unscopable handled correctly for data property on MessageEvent
-PASS MessageEvent interface: attribute origin
-PASS Unscopable handled correctly for origin property on MessageEvent
-PASS MessageEvent interface: attribute lastEventId
-PASS Unscopable handled correctly for lastEventId property on MessageEvent
-PASS MessageEvent interface: attribute source
-PASS Unscopable handled correctly for source property on MessageEvent
-PASS MessageEvent interface: attribute ports
-PASS Unscopable handled correctly for ports property on MessageEvent
-PASS MessageEvent interface: operation initMessageEvent(DOMString, boolean, boolean, any, USVString, DOMString, MessageEventSource, [object Object])
-PASS Unscopable handled correctly for initMessageEvent(DOMString, boolean, boolean, any, USVString, DOMString, MessageEventSource, [object Object]) on MessageEvent
-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
-FAIL MessageEvent interface: new MessageEvent("message", { data: 5 }) must inherit property "source" with the proper type Unrecognized type WindowProxy
-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, boolean, boolean, any, USVString, DOMString, MessageEventSource, [object Object])" with the proper type
-PASS MessageEvent interface: calling initMessageEvent(DOMString, boolean, boolean, any, USVString, DOMString, MessageEventSource, [object Object]) 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 Unscopable handled correctly for url property on EventSource
-PASS EventSource interface: attribute withCredentials
-PASS Unscopable handled correctly for withCredentials property on EventSource
-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 Unscopable handled correctly for readyState property on EventSource
-PASS EventSource interface: attribute onopen
-PASS Unscopable handled correctly for onopen property on EventSource
-PASS EventSource interface: attribute onmessage
-PASS Unscopable handled correctly for onmessage property on EventSource
-PASS EventSource interface: attribute onerror
-PASS Unscopable handled correctly for onerror property on EventSource
-PASS EventSource interface: operation close()
-PASS Unscopable handled correctly for close() on EventSource
-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 Unscopable handled correctly for url property on WebSocket
-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 Unscopable handled correctly for readyState property on WebSocket
-PASS WebSocket interface: attribute bufferedAmount
-PASS Unscopable handled correctly for bufferedAmount property on WebSocket
-PASS WebSocket interface: attribute onopen
-PASS Unscopable handled correctly for onopen property on WebSocket
-PASS WebSocket interface: attribute onerror
-PASS Unscopable handled correctly for onerror property on WebSocket
-PASS WebSocket interface: attribute onclose
-PASS Unscopable handled correctly for onclose property on WebSocket
-PASS WebSocket interface: attribute extensions
-PASS Unscopable handled correctly for extensions property on WebSocket
-PASS WebSocket interface: attribute protocol
-PASS Unscopable handled correctly for protocol property on WebSocket
-PASS WebSocket interface: operation close(unsigned short, USVString)
-PASS Unscopable handled correctly for close(unsigned short, USVString) on WebSocket
-PASS WebSocket interface: attribute onmessage
-PASS Unscopable handled correctly for onmessage property on WebSocket
-PASS WebSocket interface: attribute binaryType
-PASS Unscopable handled correctly for binaryType property on WebSocket
-PASS WebSocket interface: operation send(USVString)
-PASS Unscopable handled correctly for send(USVString) on WebSocket
-PASS WebSocket interface: operation send(Blob)
-PASS Unscopable handled correctly for send(Blob) on WebSocket
-PASS WebSocket interface: operation send(ArrayBuffer)
-PASS Unscopable handled correctly for send(ArrayBuffer) on WebSocket
-PASS WebSocket interface: operation send(ArrayBufferView)
-PASS Unscopable handled correctly for send(ArrayBufferView) on WebSocket
-PASS WebSocket must be primary interface of new WebSocket("ws://foo")
-PASS Stringification of new WebSocket("ws://foo")
-PASS WebSocket interface: new WebSocket("ws://foo") must inherit property "url" with the proper type
-PASS WebSocket interface: new WebSocket("ws://foo") must inherit property "CONNECTING" with the proper type
-PASS WebSocket interface: new WebSocket("ws://foo") must inherit property "OPEN" with the proper type
-PASS WebSocket interface: new WebSocket("ws://foo") must inherit property "CLOSING" with the proper type
-PASS WebSocket interface: new WebSocket("ws://foo") must inherit property "CLOSED" with the proper type
-PASS WebSocket interface: new WebSocket("ws://foo") must inherit property "readyState" with the proper type
-PASS WebSocket interface: new WebSocket("ws://foo") must inherit property "bufferedAmount" with the proper type
-PASS WebSocket interface: new WebSocket("ws://foo") must inherit property "onopen" with the proper type
-PASS WebSocket interface: new WebSocket("ws://foo") must inherit property "onerror" with the proper type
-PASS WebSocket interface: new WebSocket("ws://foo") must inherit property "onclose" with the proper type
-PASS WebSocket interface: new WebSocket("ws://foo") must inherit property "extensions" with the proper type
-PASS WebSocket interface: new WebSocket("ws://foo") must inherit property "protocol" with the proper type
-PASS WebSocket interface: new WebSocket("ws://foo") must inherit property "close(unsigned short, USVString)" with the proper type
-PASS WebSocket interface: calling close(unsigned short, USVString) on new WebSocket("ws://foo") with too few arguments must throw TypeError
-PASS WebSocket interface: new WebSocket("ws://foo") must inherit property "onmessage" with the proper type
-PASS WebSocket interface: new WebSocket("ws://foo") must inherit property "binaryType" with the proper type
-PASS WebSocket interface: new WebSocket("ws://foo") must inherit property "send(USVString)" with the proper type
-PASS WebSocket interface: calling send(USVString) on new WebSocket("ws://foo") with too few arguments must throw TypeError
-PASS WebSocket interface: new WebSocket("ws://foo") must inherit property "send(Blob)" with the proper type
-PASS WebSocket interface: calling send(Blob) on new WebSocket("ws://foo") with too few arguments must throw TypeError
-PASS WebSocket interface: new WebSocket("ws://foo") must inherit property "send(ArrayBuffer)" with the proper type
-PASS WebSocket interface: calling send(ArrayBuffer) on new WebSocket("ws://foo") with too few arguments must throw TypeError
-PASS WebSocket interface: new WebSocket("ws://foo") must inherit property "send(ArrayBufferView)" with the proper type
-PASS WebSocket interface: calling send(ArrayBufferView) on new WebSocket("ws://foo") 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 Unscopable handled correctly for wasClean property on CloseEvent
-PASS CloseEvent interface: attribute code
-PASS Unscopable handled correctly for code property on CloseEvent
-PASS CloseEvent interface: attribute reason
-PASS Unscopable handled correctly for reason property on CloseEvent
-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 Unscopable handled correctly for port1 property on MessageChannel
-PASS MessageChannel interface: attribute port2
-PASS Unscopable handled correctly for port2 property on MessageChannel
-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, [object Object])
-PASS Unscopable handled correctly for postMessage(any, [object Object]) on MessagePort
-PASS MessagePort interface: operation start()
-PASS Unscopable handled correctly for start() on MessagePort
-PASS MessagePort interface: operation close()
-PASS Unscopable handled correctly for close() on MessagePort
-PASS MessagePort interface: attribute onmessage
-PASS Unscopable handled correctly for onmessage property on MessagePort
-PASS MessagePort interface: attribute onmessageerror
-PASS Unscopable handled correctly for onmessageerror property on MessagePort
-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 Unscopable handled correctly for name property on BroadcastChannel
-PASS BroadcastChannel interface: operation postMessage(any)
-PASS Unscopable handled correctly for postMessage(any) on BroadcastChannel
-PASS BroadcastChannel interface: operation close()
-PASS Unscopable handled correctly for close() on BroadcastChannel
-PASS BroadcastChannel interface: attribute onmessage
-PASS Unscopable handled correctly for onmessage property on BroadcastChannel
-PASS BroadcastChannel interface: attribute onmessageerror
-PASS Unscopable handled correctly for onmessageerror property on BroadcastChannel
-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 Unscopable handled correctly for terminate() on Worker
-PASS Worker interface: operation postMessage(any, [object Object])
-PASS Unscopable handled correctly for postMessage(any, [object Object]) on Worker
-PASS Worker interface: attribute onmessage
-PASS Unscopable handled correctly for onmessage property on Worker
-FAIL Worker interface: attribute onmessageerror assert_true: The prototype object must have a property "onmessageerror" expected true got false
-PASS Unscopable handled correctly for onmessageerror property on Worker
-PASS Worker interface: attribute onerror
-PASS Unscopable handled correctly for onerror property on Worker
-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 Unscopable handled correctly for port property on SharedWorker
-PASS SharedWorker interface: attribute onerror
-PASS Unscopable handled correctly for onerror property on SharedWorker
-PASS WorkerNavigator interface: existence and properties of interface object
-PASS WorkerLocation interface: existence and properties of interface object
-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 Unscopable handled correctly for length property on Storage
-PASS Storage interface: operation key(unsigned long)
-PASS Unscopable handled correctly for key(unsigned long) on Storage
-PASS Storage interface: operation getItem(DOMString)
-PASS Unscopable handled correctly for getItem(DOMString) on Storage
-PASS Storage interface: operation setItem(DOMString, DOMString)
-PASS Unscopable handled correctly for setItem(DOMString, DOMString) on Storage
-PASS Storage interface: operation removeItem(DOMString)
-PASS Unscopable handled correctly for removeItem(DOMString) on Storage
-PASS Storage interface: operation clear()
-PASS Unscopable handled correctly for clear() on Storage
-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 Unscopable handled correctly for key property on StorageEvent
-PASS StorageEvent interface: attribute oldValue
-PASS Unscopable handled correctly for oldValue property on StorageEvent
-PASS StorageEvent interface: attribute newValue
-PASS Unscopable handled correctly for newValue property on StorageEvent
-PASS StorageEvent interface: attribute url
-PASS Unscopable handled correctly for url property on StorageEvent
-PASS StorageEvent interface: attribute storageArea
-PASS Unscopable handled correctly for storageArea property on StorageEvent
-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 Unscopable handled correctly for behavior property on HTMLMarqueeElement
-PASS HTMLMarqueeElement interface: attribute bgColor
-PASS Unscopable handled correctly for bgColor property on HTMLMarqueeElement
-PASS HTMLMarqueeElement interface: attribute direction
-PASS Unscopable handled correctly for direction property on HTMLMarqueeElement
-PASS HTMLMarqueeElement interface: attribute height
-PASS Unscopable handled correctly for height property on HTMLMarqueeElement
-PASS HTMLMarqueeElement interface: attribute hspace
-PASS Unscopable handled correctly for hspace property on HTMLMarqueeElement
-PASS HTMLMarqueeElement interface: attribute loop
-PASS Unscopable handled correctly for loop property on HTMLMarqueeElement
-PASS HTMLMarqueeElement interface: attribute scrollAmount
-PASS Unscopable handled correctly for scrollAmount property on HTMLMarqueeElement
-PASS HTMLMarqueeElement interface: attribute scrollDelay
-PASS Unscopable handled correctly for scrollDelay property on HTMLMarqueeElement
-PASS HTMLMarqueeElement interface: attribute trueSpeed
-PASS Unscopable handled correctly for trueSpeed property on HTMLMarqueeElement
-PASS HTMLMarqueeElement interface: attribute vspace
-PASS Unscopable handled correctly for vspace property on HTMLMarqueeElement
-PASS HTMLMarqueeElement interface: attribute width
-PASS Unscopable handled correctly for width property on HTMLMarqueeElement
-FAIL HTMLMarqueeElement interface: attribute onbounce assert_true: The prototype object must have a property "onbounce" expected true got false
-PASS Unscopable handled correctly for onbounce property on HTMLMarqueeElement
-FAIL HTMLMarqueeElement interface: attribute onfinish assert_true: The prototype object must have a property "onfinish" expected true got false
-PASS Unscopable handled correctly for onfinish property on HTMLMarqueeElement
-FAIL HTMLMarqueeElement interface: attribute onstart assert_true: The prototype object must have a property "onstart" expected true got false
-PASS Unscopable handled correctly for onstart property on HTMLMarqueeElement
-PASS HTMLMarqueeElement interface: operation start()
-PASS Unscopable handled correctly for start() on HTMLMarqueeElement
-PASS HTMLMarqueeElement interface: operation stop()
-PASS Unscopable handled correctly for stop() on HTMLMarqueeElement
-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
-FAIL HTMLMarqueeElement interface: document.createElement("marquee") must inherit property "onbounce" with the proper type assert_inherits: property "onbounce" not found in prototype chain
-FAIL HTMLMarqueeElement interface: document.createElement("marquee") must inherit property "onfinish" with the proper type assert_inherits: property "onfinish" not found in prototype chain
-FAIL HTMLMarqueeElement interface: document.createElement("marquee") must inherit property "onstart" with the proper type assert_inherits: property "onstart" not found in prototype chain
-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 Unscopable handled correctly for cols property on HTMLFrameSetElement
-PASS HTMLFrameSetElement interface: attribute rows
-PASS Unscopable handled correctly for rows property on HTMLFrameSetElement
-PASS HTMLFrameSetElement interface: attribute onafterprint
-PASS Unscopable handled correctly for onafterprint property on HTMLFrameSetElement
-PASS HTMLFrameSetElement interface: attribute onbeforeprint
-PASS Unscopable handled correctly for onbeforeprint property on HTMLFrameSetElement
-PASS HTMLFrameSetElement interface: attribute onbeforeunload
-PASS Unscopable handled correctly for onbeforeunload property on HTMLFrameSetElement
-PASS HTMLFrameSetElement interface: attribute onhashchange
-PASS Unscopable handled correctly for onhashchange property on HTMLFrameSetElement
-PASS HTMLFrameSetElement interface: attribute onlanguagechange
-PASS Unscopable handled correctly for onlanguagechange property on HTMLFrameSetElement
-PASS HTMLFrameSetElement interface: attribute onmessage
-PASS Unscopable handled correctly for onmessage property on HTMLFrameSetElement
-PASS HTMLFrameSetElement interface: attribute onmessageerror
-PASS Unscopable handled correctly for onmessageerror property on HTMLFrameSetElement
-PASS HTMLFrameSetElement interface: attribute onoffline
-PASS Unscopable handled correctly for onoffline property on HTMLFrameSetElement
-PASS HTMLFrameSetElement interface: attribute ononline
-PASS Unscopable handled correctly for ononline property on HTMLFrameSetElement
-PASS HTMLFrameSetElement interface: attribute onpagehide
-PASS Unscopable handled correctly for onpagehide property on HTMLFrameSetElement
-PASS HTMLFrameSetElement interface: attribute onpageshow
-PASS Unscopable handled correctly for onpageshow property on HTMLFrameSetElement
-PASS HTMLFrameSetElement interface: attribute onpopstate
-PASS Unscopable handled correctly for onpopstate property on HTMLFrameSetElement
-PASS HTMLFrameSetElement interface: attribute onrejectionhandled
-PASS Unscopable handled correctly for onrejectionhandled property on HTMLFrameSetElement
-PASS HTMLFrameSetElement interface: attribute onstorage
-PASS Unscopable handled correctly for onstorage property on HTMLFrameSetElement
-PASS HTMLFrameSetElement interface: attribute onunhandledrejection
-PASS Unscopable handled correctly for onunhandledrejection property on HTMLFrameSetElement
-PASS HTMLFrameSetElement interface: attribute onunload
-PASS Unscopable handled correctly for onunload property on HTMLFrameSetElement
-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 Unscopable handled correctly for name property on HTMLFrameElement
-PASS HTMLFrameElement interface: attribute scrolling
-PASS Unscopable handled correctly for scrolling property on HTMLFrameElement
-PASS HTMLFrameElement interface: attribute src
-PASS Unscopable handled correctly for src property on HTMLFrameElement
-PASS HTMLFrameElement interface: attribute frameBorder
-PASS Unscopable handled correctly for frameBorder property on HTMLFrameElement
-PASS HTMLFrameElement interface: attribute longDesc
-PASS Unscopable handled correctly for longDesc property on HTMLFrameElement
-PASS HTMLFrameElement interface: attribute noResize
-PASS Unscopable handled correctly for noResize property on HTMLFrameElement
-PASS HTMLFrameElement interface: attribute contentDocument
-PASS Unscopable handled correctly for contentDocument property on HTMLFrameElement
-PASS HTMLFrameElement interface: attribute contentWindow
-PASS Unscopable handled correctly for contentWindow property on HTMLFrameElement
-PASS HTMLFrameElement interface: attribute marginHeight
-PASS Unscopable handled correctly for marginHeight property on HTMLFrameElement
-PASS HTMLFrameElement interface: attribute marginWidth
-PASS Unscopable handled correctly for marginWidth property on HTMLFrameElement
-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 Unscopable handled correctly for compact property on HTMLDirectoryElement
-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 Unscopable handled correctly for color property on HTMLFontElement
-PASS HTMLFontElement interface: attribute face
-PASS Unscopable handled correctly for face property on HTMLFontElement
-PASS HTMLFontElement interface: attribute size
-PASS Unscopable handled correctly for size property on HTMLFontElement
-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
-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
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/keyboard-lock/idlharness.https-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/keyboard-lock/idlharness.https-expected.txt
deleted file mode 100644
index 8d92ab67..0000000
--- a/third_party/WebKit/LayoutTests/platform/win/external/wpt/keyboard-lock/idlharness.https-expected.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-This is a testharness.js-based test.
-FAIL Navigator interface: operation keyboardLock(sequence) assert_throws: calling operation with this = null didn't throw TypeError function "function() {
-            fn.apply(obj, args);
-        }" did not throw
-PASS Unscopable handled correctly for keyboardLock(sequence) on Navigator
-PASS Navigator interface: operation keyboardUnlock()
-PASS Unscopable handled correctly for keyboardUnlock() on Navigator
-PASS Navigator interface: navigator must inherit property "keyboardLock(sequence)" with the proper type
-PASS Navigator interface: calling keyboardLock(sequence) on navigator with too few arguments must throw TypeError
-PASS Navigator interface: navigator must inherit property "keyboardUnlock()" with the proper type
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/magnetometer/idlharness.https-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/magnetometer/idlharness.https-expected.txt
deleted file mode 100644
index 49822f4..0000000
--- a/third_party/WebKit/LayoutTests/platform/win/external/wpt/magnetometer/idlharness.https-expected.txt
+++ /dev/null
@@ -1,85 +0,0 @@
-This is a testharness.js-based test.
-PASS Test IDL implementation of Magnetometer Sensor
-PASS Sensor interface: existence and properties of interface object
-PASS Sensor interface object length
-PASS Sensor interface object name
-PASS Sensor interface: existence and properties of interface prototype object
-PASS Sensor interface: existence and properties of interface prototype object's "constructor" property
-PASS Sensor interface: existence and properties of interface prototype object's @@unscopables property
-PASS Sensor interface: attribute activated
-PASS Unscopable handled correctly for activated property on Sensor
-PASS Sensor interface: attribute hasReading
-PASS Unscopable handled correctly for hasReading property on Sensor
-PASS Sensor interface: attribute timestamp
-PASS Unscopable handled correctly for timestamp property on Sensor
-PASS Sensor interface: operation start()
-PASS Unscopable handled correctly for start() on Sensor
-PASS Sensor interface: operation stop()
-PASS Unscopable handled correctly for stop() on Sensor
-PASS Sensor interface: attribute onreading
-PASS Unscopable handled correctly for onreading property on Sensor
-PASS Sensor interface: attribute onactivate
-PASS Unscopable handled correctly for onactivate property on Sensor
-PASS Sensor interface: attribute onerror
-PASS Unscopable handled correctly for onerror property on Sensor
-PASS Magnetometer interface: existence and properties of interface object
-PASS Magnetometer interface object length
-PASS Magnetometer interface object name
-PASS Magnetometer interface: existence and properties of interface prototype object
-PASS Magnetometer interface: existence and properties of interface prototype object's "constructor" property
-PASS Magnetometer interface: existence and properties of interface prototype object's @@unscopables property
-PASS Magnetometer interface: attribute x
-PASS Unscopable handled correctly for x property on Magnetometer
-PASS Magnetometer interface: attribute y
-PASS Unscopable handled correctly for y property on Magnetometer
-PASS Magnetometer interface: attribute z
-PASS Unscopable handled correctly for z property on Magnetometer
-PASS Magnetometer must be primary interface of new Magnetometer();
-PASS Stringification of new Magnetometer();
-PASS Magnetometer interface: new Magnetometer(); must inherit property "x" with the proper type
-PASS Magnetometer interface: new Magnetometer(); must inherit property "y" with the proper type
-PASS Magnetometer interface: new Magnetometer(); must inherit property "z" with the proper type
-PASS Sensor interface: new Magnetometer(); must inherit property "activated" with the proper type
-PASS Sensor interface: new Magnetometer(); must inherit property "hasReading" with the proper type
-PASS Sensor interface: new Magnetometer(); must inherit property "timestamp" with the proper type
-PASS Sensor interface: new Magnetometer(); must inherit property "start()" with the proper type
-PASS Sensor interface: new Magnetometer(); must inherit property "stop()" with the proper type
-PASS Sensor interface: new Magnetometer(); must inherit property "onreading" with the proper type
-PASS Sensor interface: new Magnetometer(); must inherit property "onactivate" with the proper type
-PASS Sensor interface: new Magnetometer(); must inherit property "onerror" with the proper type
-FAIL UncalibratedMagnetometer interface: existence and properties of interface object assert_own_property: self does not have own property "UncalibratedMagnetometer" expected property "UncalibratedMagnetometer" missing
-FAIL UncalibratedMagnetometer interface object length assert_own_property: self does not have own property "UncalibratedMagnetometer" expected property "UncalibratedMagnetometer" missing
-FAIL UncalibratedMagnetometer interface object name assert_own_property: self does not have own property "UncalibratedMagnetometer" expected property "UncalibratedMagnetometer" missing
-FAIL UncalibratedMagnetometer interface: existence and properties of interface prototype object assert_own_property: self does not have own property "UncalibratedMagnetometer" expected property "UncalibratedMagnetometer" missing
-FAIL UncalibratedMagnetometer interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "UncalibratedMagnetometer" expected property "UncalibratedMagnetometer" missing
-FAIL UncalibratedMagnetometer interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "UncalibratedMagnetometer" expected property "UncalibratedMagnetometer" missing
-FAIL UncalibratedMagnetometer interface: attribute x assert_own_property: self does not have own property "UncalibratedMagnetometer" expected property "UncalibratedMagnetometer" missing
-PASS Unscopable handled correctly for x property on UncalibratedMagnetometer
-FAIL UncalibratedMagnetometer interface: attribute y assert_own_property: self does not have own property "UncalibratedMagnetometer" expected property "UncalibratedMagnetometer" missing
-PASS Unscopable handled correctly for y property on UncalibratedMagnetometer
-FAIL UncalibratedMagnetometer interface: attribute z assert_own_property: self does not have own property "UncalibratedMagnetometer" expected property "UncalibratedMagnetometer" missing
-PASS Unscopable handled correctly for z property on UncalibratedMagnetometer
-FAIL UncalibratedMagnetometer interface: attribute xBias assert_own_property: self does not have own property "UncalibratedMagnetometer" expected property "UncalibratedMagnetometer" missing
-PASS Unscopable handled correctly for xBias property on UncalibratedMagnetometer
-FAIL UncalibratedMagnetometer interface: attribute yBias assert_own_property: self does not have own property "UncalibratedMagnetometer" expected property "UncalibratedMagnetometer" missing
-PASS Unscopable handled correctly for yBias property on UncalibratedMagnetometer
-FAIL UncalibratedMagnetometer interface: attribute zBias assert_own_property: self does not have own property "UncalibratedMagnetometer" expected property "UncalibratedMagnetometer" missing
-PASS Unscopable handled correctly for zBias property on UncalibratedMagnetometer
-FAIL UncalibratedMagnetometer must be primary interface of new UncalibratedMagnetometer(); assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: UncalibratedMagnetometer is not defined"
-FAIL Stringification of new UncalibratedMagnetometer(); assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: UncalibratedMagnetometer is not defined"
-FAIL UncalibratedMagnetometer interface: new UncalibratedMagnetometer(); must inherit property "x" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: UncalibratedMagnetometer is not defined"
-FAIL UncalibratedMagnetometer interface: new UncalibratedMagnetometer(); must inherit property "y" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: UncalibratedMagnetometer is not defined"
-FAIL UncalibratedMagnetometer interface: new UncalibratedMagnetometer(); must inherit property "z" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: UncalibratedMagnetometer is not defined"
-FAIL UncalibratedMagnetometer interface: new UncalibratedMagnetometer(); must inherit property "xBias" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: UncalibratedMagnetometer is not defined"
-FAIL UncalibratedMagnetometer interface: new UncalibratedMagnetometer(); must inherit property "yBias" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: UncalibratedMagnetometer is not defined"
-FAIL UncalibratedMagnetometer interface: new UncalibratedMagnetometer(); must inherit property "zBias" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: UncalibratedMagnetometer is not defined"
-FAIL Sensor interface: new UncalibratedMagnetometer(); must inherit property "activated" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: UncalibratedMagnetometer is not defined"
-FAIL Sensor interface: new UncalibratedMagnetometer(); must inherit property "hasReading" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: UncalibratedMagnetometer is not defined"
-FAIL Sensor interface: new UncalibratedMagnetometer(); must inherit property "timestamp" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: UncalibratedMagnetometer is not defined"
-FAIL Sensor interface: new UncalibratedMagnetometer(); must inherit property "start()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: UncalibratedMagnetometer is not defined"
-FAIL Sensor interface: new UncalibratedMagnetometer(); must inherit property "stop()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: UncalibratedMagnetometer is not defined"
-FAIL Sensor interface: new UncalibratedMagnetometer(); must inherit property "onreading" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: UncalibratedMagnetometer is not defined"
-FAIL Sensor interface: new UncalibratedMagnetometer(); must inherit property "onactivate" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: UncalibratedMagnetometer is not defined"
-FAIL Sensor interface: new UncalibratedMagnetometer(); must inherit property "onerror" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: UncalibratedMagnetometer is not defined"
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/media-capabilities/idlharness-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/media-capabilities/idlharness-expected.txt
deleted file mode 100644
index e99c181..0000000
--- a/third_party/WebKit/LayoutTests/platform/win/external/wpt/media-capabilities/idlharness-expected.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-This is a testharness.js-based test.
-PASS Navigator interface: attribute mediaCapabilities
-PASS Unscopable handled correctly for mediaCapabilities property on Navigator
-PASS Navigator interface: navigator must inherit property "mediaCapabilities" with the proper type
-PASS WorkerNavigator interface: existence and properties of interface object
-PASS MediaCapabilitiesInfo interface: existence and properties of interface object
-PASS MediaCapabilitiesInfo interface object length
-PASS MediaCapabilitiesInfo interface object name
-PASS MediaCapabilitiesInfo interface: existence and properties of interface prototype object
-PASS MediaCapabilitiesInfo interface: existence and properties of interface prototype object's "constructor" property
-PASS MediaCapabilitiesInfo interface: existence and properties of interface prototype object's @@unscopables property
-PASS MediaCapabilitiesInfo interface: attribute supported
-PASS Unscopable handled correctly for supported property on MediaCapabilitiesInfo
-PASS MediaCapabilitiesInfo interface: attribute smooth
-PASS Unscopable handled correctly for smooth property on MediaCapabilitiesInfo
-PASS MediaCapabilitiesInfo interface: attribute powerEfficient
-PASS Unscopable handled correctly for powerEfficient property on MediaCapabilitiesInfo
-PASS MediaCapabilities interface: existence and properties of interface object
-PASS MediaCapabilities interface object length
-PASS MediaCapabilities interface object name
-PASS MediaCapabilities interface: existence and properties of interface prototype object
-PASS MediaCapabilities interface: existence and properties of interface prototype object's "constructor" property
-PASS MediaCapabilities interface: existence and properties of interface prototype object's @@unscopables property
-FAIL MediaCapabilities interface: operation decodingInfo(MediaDecodingConfiguration) assert_throws: calling operation with this = null didn't throw TypeError function "function() {
-            fn.apply(obj, args);
-        }" did not throw
-PASS Unscopable handled correctly for decodingInfo(MediaDecodingConfiguration) on MediaCapabilities
-FAIL MediaCapabilities interface: operation encodingInfo(MediaEncodingConfiguration) assert_throws: calling operation with this = null didn't throw TypeError function "function() {
-            fn.apply(obj, args);
-        }" did not throw
-PASS Unscopable handled correctly for encodingInfo(MediaEncodingConfiguration) on MediaCapabilities
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/media-source/interfaces-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/media-source/interfaces-expected.txt
deleted file mode 100644
index b626df4..0000000
--- a/third_party/WebKit/LayoutTests/platform/win/external/wpt/media-source/interfaces-expected.txt
+++ /dev/null
@@ -1,142 +0,0 @@
-This is a testharness.js-based test.
-Found 138 tests; 135 PASS, 3 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS URL interface: operation createObjectURL(MediaSource)
-PASS Unscopable handled correctly for createObjectURL(MediaSource) on URL
-PASS AudioTrack interface: attribute sourceBuffer
-PASS Unscopable handled correctly for sourceBuffer property on AudioTrack
-PASS VideoTrack interface: attribute sourceBuffer
-PASS Unscopable handled correctly for sourceBuffer property on VideoTrack
-FAIL TextTrack interface: attribute sourceBuffer assert_true: The prototype object must have a property "sourceBuffer" expected true got false
-PASS Unscopable handled correctly for sourceBuffer property on TextTrack
-PASS MediaSource interface: existence and properties of interface object
-PASS MediaSource interface object length
-PASS MediaSource interface object name
-PASS MediaSource interface: existence and properties of interface prototype object
-PASS MediaSource interface: existence and properties of interface prototype object's "constructor" property
-PASS MediaSource interface: existence and properties of interface prototype object's @@unscopables property
-PASS MediaSource interface: attribute sourceBuffers
-PASS Unscopable handled correctly for sourceBuffers property on MediaSource
-PASS MediaSource interface: attribute activeSourceBuffers
-PASS Unscopable handled correctly for activeSourceBuffers property on MediaSource
-PASS MediaSource interface: attribute readyState
-PASS Unscopable handled correctly for readyState property on MediaSource
-PASS MediaSource interface: attribute duration
-PASS Unscopable handled correctly for duration property on MediaSource
-PASS MediaSource interface: attribute onsourceopen
-PASS Unscopable handled correctly for onsourceopen property on MediaSource
-PASS MediaSource interface: attribute onsourceended
-PASS Unscopable handled correctly for onsourceended property on MediaSource
-PASS MediaSource interface: attribute onsourceclose
-PASS Unscopable handled correctly for onsourceclose property on MediaSource
-PASS MediaSource interface: operation addSourceBuffer(DOMString)
-PASS Unscopable handled correctly for addSourceBuffer(DOMString) on MediaSource
-PASS MediaSource interface: operation removeSourceBuffer(SourceBuffer)
-PASS Unscopable handled correctly for removeSourceBuffer(SourceBuffer) on MediaSource
-PASS MediaSource interface: operation endOfStream(EndOfStreamError)
-PASS Unscopable handled correctly for endOfStream(EndOfStreamError) on MediaSource
-PASS MediaSource interface: operation setLiveSeekableRange(double, double)
-PASS Unscopable handled correctly for setLiveSeekableRange(double, double) on MediaSource
-PASS MediaSource interface: operation clearLiveSeekableRange()
-PASS Unscopable handled correctly for clearLiveSeekableRange() on MediaSource
-PASS MediaSource interface: operation isTypeSupported(DOMString)
-PASS Unscopable handled correctly for isTypeSupported(DOMString) on MediaSource
-PASS MediaSource must be primary interface of mediaSource
-PASS Stringification of mediaSource
-PASS MediaSource interface: mediaSource must inherit property "sourceBuffers" with the proper type
-PASS MediaSource interface: mediaSource must inherit property "activeSourceBuffers" with the proper type
-PASS MediaSource interface: mediaSource must inherit property "readyState" with the proper type
-PASS MediaSource interface: mediaSource must inherit property "duration" with the proper type
-PASS MediaSource interface: mediaSource must inherit property "onsourceopen" with the proper type
-PASS MediaSource interface: mediaSource must inherit property "onsourceended" with the proper type
-PASS MediaSource interface: mediaSource must inherit property "onsourceclose" with the proper type
-PASS MediaSource interface: mediaSource must inherit property "addSourceBuffer(DOMString)" with the proper type
-PASS MediaSource interface: calling addSourceBuffer(DOMString) on mediaSource with too few arguments must throw TypeError
-PASS MediaSource interface: mediaSource must inherit property "removeSourceBuffer(SourceBuffer)" with the proper type
-PASS MediaSource interface: calling removeSourceBuffer(SourceBuffer) on mediaSource with too few arguments must throw TypeError
-PASS MediaSource interface: mediaSource must inherit property "endOfStream(EndOfStreamError)" with the proper type
-PASS MediaSource interface: calling endOfStream(EndOfStreamError) on mediaSource with too few arguments must throw TypeError
-PASS MediaSource interface: mediaSource must inherit property "setLiveSeekableRange(double, double)" with the proper type
-PASS MediaSource interface: calling setLiveSeekableRange(double, double) on mediaSource with too few arguments must throw TypeError
-PASS MediaSource interface: mediaSource must inherit property "clearLiveSeekableRange()" with the proper type
-PASS MediaSource interface: mediaSource must inherit property "isTypeSupported(DOMString)" with the proper type
-PASS MediaSource interface: calling isTypeSupported(DOMString) on mediaSource with too few arguments must throw TypeError
-PASS SourceBuffer interface: existence and properties of interface object
-PASS SourceBuffer interface object length
-PASS SourceBuffer interface object name
-PASS SourceBuffer interface: existence and properties of interface prototype object
-PASS SourceBuffer interface: existence and properties of interface prototype object's "constructor" property
-PASS SourceBuffer interface: existence and properties of interface prototype object's @@unscopables property
-PASS SourceBuffer interface: attribute mode
-PASS Unscopable handled correctly for mode property on SourceBuffer
-PASS SourceBuffer interface: attribute updating
-PASS Unscopable handled correctly for updating property on SourceBuffer
-PASS SourceBuffer interface: attribute buffered
-PASS Unscopable handled correctly for buffered property on SourceBuffer
-PASS SourceBuffer interface: attribute timestampOffset
-PASS Unscopable handled correctly for timestampOffset property on SourceBuffer
-PASS SourceBuffer interface: attribute audioTracks
-PASS Unscopable handled correctly for audioTracks property on SourceBuffer
-PASS SourceBuffer interface: attribute videoTracks
-PASS Unscopable handled correctly for videoTracks property on SourceBuffer
-FAIL SourceBuffer interface: attribute textTracks assert_true: The prototype object must have a property "textTracks" expected true got false
-PASS Unscopable handled correctly for textTracks property on SourceBuffer
-PASS SourceBuffer interface: attribute appendWindowStart
-PASS Unscopable handled correctly for appendWindowStart property on SourceBuffer
-PASS SourceBuffer interface: attribute appendWindowEnd
-PASS Unscopable handled correctly for appendWindowEnd property on SourceBuffer
-PASS SourceBuffer interface: attribute onupdatestart
-PASS Unscopable handled correctly for onupdatestart property on SourceBuffer
-PASS SourceBuffer interface: attribute onupdate
-PASS Unscopable handled correctly for onupdate property on SourceBuffer
-PASS SourceBuffer interface: attribute onupdateend
-PASS Unscopable handled correctly for onupdateend property on SourceBuffer
-PASS SourceBuffer interface: attribute onerror
-PASS Unscopable handled correctly for onerror property on SourceBuffer
-PASS SourceBuffer interface: attribute onabort
-PASS Unscopable handled correctly for onabort property on SourceBuffer
-PASS SourceBuffer interface: operation appendBuffer(BufferSource)
-PASS Unscopable handled correctly for appendBuffer(BufferSource) on SourceBuffer
-PASS SourceBuffer interface: operation abort()
-PASS Unscopable handled correctly for abort() on SourceBuffer
-PASS SourceBuffer interface: operation remove(double, unrestricted double)
-PASS Unscopable handled correctly for remove(double, unrestricted double) on SourceBuffer
-PASS SourceBuffer must be primary interface of sourceBuffer
-PASS Stringification of sourceBuffer
-PASS SourceBuffer interface: sourceBuffer must inherit property "mode" with the proper type
-PASS SourceBuffer interface: sourceBuffer must inherit property "updating" with the proper type
-PASS SourceBuffer interface: sourceBuffer must inherit property "buffered" with the proper type
-PASS SourceBuffer interface: sourceBuffer must inherit property "timestampOffset" with the proper type
-PASS SourceBuffer interface: sourceBuffer must inherit property "audioTracks" with the proper type
-PASS SourceBuffer interface: sourceBuffer must inherit property "videoTracks" with the proper type
-FAIL SourceBuffer interface: sourceBuffer must inherit property "textTracks" with the proper type assert_inherits: property "textTracks" not found in prototype chain
-PASS SourceBuffer interface: sourceBuffer must inherit property "appendWindowStart" with the proper type
-PASS SourceBuffer interface: sourceBuffer must inherit property "appendWindowEnd" with the proper type
-PASS SourceBuffer interface: sourceBuffer must inherit property "onupdatestart" with the proper type
-PASS SourceBuffer interface: sourceBuffer must inherit property "onupdate" with the proper type
-PASS SourceBuffer interface: sourceBuffer must inherit property "onupdateend" with the proper type
-PASS SourceBuffer interface: sourceBuffer must inherit property "onerror" with the proper type
-PASS SourceBuffer interface: sourceBuffer must inherit property "onabort" with the proper type
-PASS SourceBuffer interface: sourceBuffer must inherit property "appendBuffer(BufferSource)" with the proper type
-PASS SourceBuffer interface: calling appendBuffer(BufferSource) on sourceBuffer with too few arguments must throw TypeError
-PASS SourceBuffer interface: sourceBuffer must inherit property "abort()" with the proper type
-PASS SourceBuffer interface: sourceBuffer must inherit property "remove(double, unrestricted double)" with the proper type
-PASS SourceBuffer interface: calling remove(double, unrestricted double) on sourceBuffer with too few arguments must throw TypeError
-PASS SourceBufferList interface: existence and properties of interface object
-PASS SourceBufferList interface object length
-PASS SourceBufferList interface object name
-PASS SourceBufferList interface: existence and properties of interface prototype object
-PASS SourceBufferList interface: existence and properties of interface prototype object's "constructor" property
-PASS SourceBufferList interface: existence and properties of interface prototype object's @@unscopables property
-PASS SourceBufferList interface: attribute length
-PASS Unscopable handled correctly for length property on SourceBufferList
-PASS SourceBufferList interface: attribute onaddsourcebuffer
-PASS Unscopable handled correctly for onaddsourcebuffer property on SourceBufferList
-PASS SourceBufferList interface: attribute onremovesourcebuffer
-PASS Unscopable handled correctly for onremovesourcebuffer property on SourceBufferList
-PASS SourceBufferList must be primary interface of mediaSource.sourceBuffers
-PASS Stringification of mediaSource.sourceBuffers
-PASS SourceBufferList interface: mediaSource.sourceBuffers must inherit property "length" with the proper type
-PASS SourceBufferList interface: mediaSource.sourceBuffers must inherit property "onaddsourcebuffer" with the proper type
-PASS SourceBufferList interface: mediaSource.sourceBuffers must inherit property "onremovesourcebuffer" with the proper type
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/mediacapture-fromelement/idlharness-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/mediacapture-fromelement/idlharness-expected.txt
deleted file mode 100644
index dcbc5d1..0000000
--- a/third_party/WebKit/LayoutTests/platform/win/external/wpt/mediacapture-fromelement/idlharness-expected.txt
+++ /dev/null
@@ -1,24 +0,0 @@
-This is a testharness.js-based test.
-PASS HTMLCanvasElement interface: operation captureStream(double)
-PASS Unscopable handled correctly for captureStream(double) on HTMLCanvasElement
-PASS HTMLCanvasElement interface: [object HTMLCanvasElement] must inherit property "captureStream(double)" with the proper type
-PASS HTMLCanvasElement interface: calling captureStream(double) on [object HTMLCanvasElement] with too few arguments must throw TypeError
-PASS HTMLMediaElement interface: operation captureStream()
-PASS Unscopable handled correctly for captureStream() on HTMLMediaElement
-FAIL HTMLMediaElement interface: [object HTMLUnknownElement] must inherit property "captureStream()" with the proper type assert_inherits: property "captureStream" not found in prototype chain
-PASS CanvasCaptureMediaStreamTrack interface: existence and properties of interface object
-PASS CanvasCaptureMediaStreamTrack interface object length
-PASS CanvasCaptureMediaStreamTrack interface object name
-PASS CanvasCaptureMediaStreamTrack interface: existence and properties of interface prototype object
-PASS CanvasCaptureMediaStreamTrack interface: existence and properties of interface prototype object's "constructor" property
-PASS CanvasCaptureMediaStreamTrack interface: existence and properties of interface prototype object's @@unscopables property
-PASS CanvasCaptureMediaStreamTrack interface: attribute canvas
-PASS Unscopable handled correctly for canvas property on CanvasCaptureMediaStreamTrack
-PASS CanvasCaptureMediaStreamTrack interface: operation requestFrame()
-PASS Unscopable handled correctly for requestFrame() on CanvasCaptureMediaStreamTrack
-PASS CanvasCaptureMediaStreamTrack must be primary interface of [object CanvasCaptureMediaStreamTrack]
-PASS Stringification of [object CanvasCaptureMediaStreamTrack]
-PASS CanvasCaptureMediaStreamTrack interface: [object CanvasCaptureMediaStreamTrack] must inherit property "canvas" with the proper type
-PASS CanvasCaptureMediaStreamTrack interface: [object CanvasCaptureMediaStreamTrack] must inherit property "requestFrame()" with the proper type
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/mediacapture-record/idlharness-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/mediacapture-record/idlharness-expected.txt
deleted file mode 100644
index cfb7068..0000000
--- a/third_party/WebKit/LayoutTests/platform/win/external/wpt/mediacapture-record/idlharness-expected.txt
+++ /dev/null
@@ -1,83 +0,0 @@
-This is a testharness.js-based test.
-Found 79 tests; 72 PASS, 7 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS MediaRecorder interface: existence and properties of interface object
-PASS MediaRecorder interface object length
-PASS MediaRecorder interface object name
-PASS MediaRecorder interface: existence and properties of interface prototype object
-PASS MediaRecorder interface: existence and properties of interface prototype object's "constructor" property
-PASS MediaRecorder interface: existence and properties of interface prototype object's @@unscopables property
-PASS MediaRecorder interface: attribute stream
-PASS Unscopable handled correctly for stream property on MediaRecorder
-PASS MediaRecorder interface: attribute mimeType
-PASS Unscopable handled correctly for mimeType property on MediaRecorder
-PASS MediaRecorder interface: attribute state
-PASS Unscopable handled correctly for state property on MediaRecorder
-PASS MediaRecorder interface: attribute onstart
-PASS Unscopable handled correctly for onstart property on MediaRecorder
-PASS MediaRecorder interface: attribute onstop
-PASS Unscopable handled correctly for onstop property on MediaRecorder
-PASS MediaRecorder interface: attribute ondataavailable
-PASS Unscopable handled correctly for ondataavailable property on MediaRecorder
-PASS MediaRecorder interface: attribute onpause
-PASS Unscopable handled correctly for onpause property on MediaRecorder
-PASS MediaRecorder interface: attribute onresume
-PASS Unscopable handled correctly for onresume property on MediaRecorder
-PASS MediaRecorder interface: attribute onerror
-PASS Unscopable handled correctly for onerror property on MediaRecorder
-PASS MediaRecorder interface: attribute videoBitsPerSecond
-PASS Unscopable handled correctly for videoBitsPerSecond property on MediaRecorder
-PASS MediaRecorder interface: attribute audioBitsPerSecond
-PASS Unscopable handled correctly for audioBitsPerSecond property on MediaRecorder
-PASS MediaRecorder interface: operation start(long)
-PASS Unscopable handled correctly for start(long) on MediaRecorder
-PASS MediaRecorder interface: operation stop()
-PASS Unscopable handled correctly for stop() on MediaRecorder
-PASS MediaRecorder interface: operation pause()
-PASS Unscopable handled correctly for pause() on MediaRecorder
-PASS MediaRecorder interface: operation resume()
-PASS Unscopable handled correctly for resume() on MediaRecorder
-PASS MediaRecorder interface: operation requestData()
-PASS Unscopable handled correctly for requestData() on MediaRecorder
-PASS MediaRecorder interface: operation isTypeSupported(DOMString)
-PASS Unscopable handled correctly for isTypeSupported(DOMString) on MediaRecorder
-PASS MediaRecorder must be primary interface of [object MediaRecorder]
-PASS Stringification of [object MediaRecorder]
-PASS MediaRecorder interface: [object MediaRecorder] must inherit property "stream" with the proper type
-PASS MediaRecorder interface: [object MediaRecorder] must inherit property "mimeType" with the proper type
-PASS MediaRecorder interface: [object MediaRecorder] must inherit property "state" with the proper type
-PASS MediaRecorder interface: [object MediaRecorder] must inherit property "onstart" with the proper type
-PASS MediaRecorder interface: [object MediaRecorder] must inherit property "onstop" with the proper type
-PASS MediaRecorder interface: [object MediaRecorder] must inherit property "ondataavailable" with the proper type
-PASS MediaRecorder interface: [object MediaRecorder] must inherit property "onpause" with the proper type
-PASS MediaRecorder interface: [object MediaRecorder] must inherit property "onresume" with the proper type
-PASS MediaRecorder interface: [object MediaRecorder] must inherit property "onerror" with the proper type
-PASS MediaRecorder interface: [object MediaRecorder] must inherit property "videoBitsPerSecond" with the proper type
-PASS MediaRecorder interface: [object MediaRecorder] must inherit property "audioBitsPerSecond" with the proper type
-PASS MediaRecorder interface: [object MediaRecorder] must inherit property "start(long)" with the proper type
-PASS MediaRecorder interface: calling start(long) on [object MediaRecorder] with too few arguments must throw TypeError
-PASS MediaRecorder interface: [object MediaRecorder] must inherit property "stop()" with the proper type
-PASS MediaRecorder interface: [object MediaRecorder] must inherit property "pause()" with the proper type
-PASS MediaRecorder interface: [object MediaRecorder] must inherit property "resume()" with the proper type
-PASS MediaRecorder interface: [object MediaRecorder] must inherit property "requestData()" with the proper type
-PASS MediaRecorder interface: [object MediaRecorder] must inherit property "isTypeSupported(DOMString)" with the proper type
-PASS MediaRecorder interface: calling isTypeSupported(DOMString) on [object MediaRecorder] with too few arguments must throw TypeError
-PASS BlobEvent interface: existence and properties of interface object
-PASS BlobEvent interface object length
-PASS BlobEvent interface object name
-PASS BlobEvent interface: existence and properties of interface prototype object
-PASS BlobEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS BlobEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS BlobEvent interface: attribute data
-PASS Unscopable handled correctly for data property on BlobEvent
-PASS BlobEvent interface: attribute timecode
-PASS Unscopable handled correctly for timecode property on BlobEvent
-FAIL MediaRecorderErrorEvent interface: existence and properties of interface object assert_own_property: self does not have own property "MediaRecorderErrorEvent" expected property "MediaRecorderErrorEvent" missing
-FAIL MediaRecorderErrorEvent interface object length assert_own_property: self does not have own property "MediaRecorderErrorEvent" expected property "MediaRecorderErrorEvent" missing
-FAIL MediaRecorderErrorEvent interface object name assert_own_property: self does not have own property "MediaRecorderErrorEvent" expected property "MediaRecorderErrorEvent" missing
-FAIL MediaRecorderErrorEvent interface: existence and properties of interface prototype object assert_own_property: self does not have own property "MediaRecorderErrorEvent" expected property "MediaRecorderErrorEvent" missing
-FAIL MediaRecorderErrorEvent interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "MediaRecorderErrorEvent" expected property "MediaRecorderErrorEvent" missing
-FAIL MediaRecorderErrorEvent interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "MediaRecorderErrorEvent" expected property "MediaRecorderErrorEvent" missing
-FAIL MediaRecorderErrorEvent interface: attribute error assert_own_property: self does not have own property "MediaRecorderErrorEvent" expected property "MediaRecorderErrorEvent" missing
-PASS Unscopable handled correctly for error property on MediaRecorderErrorEvent
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/mediacapture-streams/MediaDevices-IDL-all-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/mediacapture-streams/MediaDevices-IDL-all-expected.txt
deleted file mode 100644
index 66f2aaf..0000000
--- a/third_party/WebKit/LayoutTests/platform/win/external/wpt/mediacapture-streams/MediaDevices-IDL-all-expected.txt
+++ /dev/null
@@ -1,139 +0,0 @@
-This is a testharness.js-based test.
-Found 135 tests; 118 PASS, 17 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS Test driver
-PASS Navigator interface: attribute mediaDevices
-PASS Unscopable handled correctly for mediaDevices property on Navigator
-PASS Navigator interface: operation getUserMedia(MediaStreamConstraints, NavigatorUserMediaSuccessCallback, NavigatorUserMediaErrorCallback)
-PASS Unscopable handled correctly for getUserMedia(MediaStreamConstraints, NavigatorUserMediaSuccessCallback, NavigatorUserMediaErrorCallback) on Navigator
-PASS Navigator interface: navigator must inherit property "mediaDevices" with the proper type
-PASS Navigator interface: navigator must inherit property "getUserMedia(MediaStreamConstraints, NavigatorUserMediaSuccessCallback, NavigatorUserMediaErrorCallback)" with the proper type
-PASS Navigator interface: calling getUserMedia(MediaStreamConstraints, NavigatorUserMediaSuccessCallback, NavigatorUserMediaErrorCallback) on navigator with too few arguments must throw TypeError
-PASS MediaStream interface: existence and properties of interface object
-PASS MediaStream interface object length
-PASS MediaStream interface object name
-PASS MediaStream interface: existence and properties of interface prototype object
-PASS MediaStream interface: existence and properties of interface prototype object's "constructor" property
-PASS MediaStream interface: existence and properties of interface prototype object's @@unscopables property
-PASS MediaStream interface: attribute id
-PASS Unscopable handled correctly for id property on MediaStream
-PASS MediaStream interface: operation getAudioTracks()
-PASS Unscopable handled correctly for getAudioTracks() on MediaStream
-PASS MediaStream interface: operation getVideoTracks()
-PASS Unscopable handled correctly for getVideoTracks() on MediaStream
-PASS MediaStream interface: operation getTracks()
-PASS Unscopable handled correctly for getTracks() on MediaStream
-PASS MediaStream interface: operation getTrackById(DOMString)
-PASS Unscopable handled correctly for getTrackById(DOMString) on MediaStream
-PASS MediaStream interface: operation addTrack(MediaStreamTrack)
-PASS Unscopable handled correctly for addTrack(MediaStreamTrack) on MediaStream
-PASS MediaStream interface: operation removeTrack(MediaStreamTrack)
-PASS Unscopable handled correctly for removeTrack(MediaStreamTrack) on MediaStream
-PASS MediaStream interface: operation clone()
-PASS Unscopable handled correctly for clone() on MediaStream
-PASS MediaStream interface: attribute active
-PASS Unscopable handled correctly for active property on MediaStream
-PASS MediaStream interface: attribute onaddtrack
-PASS Unscopable handled correctly for onaddtrack property on MediaStream
-PASS MediaStream interface: attribute onremovetrack
-PASS Unscopable handled correctly for onremovetrack property on MediaStream
-PASS MediaStreamTrack interface: existence and properties of interface object
-PASS MediaStreamTrack interface object length
-PASS MediaStreamTrack interface object name
-PASS MediaStreamTrack interface: existence and properties of interface prototype object
-PASS MediaStreamTrack interface: existence and properties of interface prototype object's "constructor" property
-PASS MediaStreamTrack interface: existence and properties of interface prototype object's @@unscopables property
-PASS MediaStreamTrack interface: attribute kind
-PASS Unscopable handled correctly for kind property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute id
-PASS Unscopable handled correctly for id property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute label
-PASS Unscopable handled correctly for label property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute enabled
-PASS Unscopable handled correctly for enabled property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute muted
-PASS Unscopable handled correctly for muted property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute onmute
-PASS Unscopable handled correctly for onmute property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute onunmute
-PASS Unscopable handled correctly for onunmute property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute readyState
-PASS Unscopable handled correctly for readyState property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute onended
-PASS Unscopable handled correctly for onended property on MediaStreamTrack
-PASS MediaStreamTrack interface: operation clone()
-PASS Unscopable handled correctly for clone() on MediaStreamTrack
-PASS MediaStreamTrack interface: operation stop()
-PASS Unscopable handled correctly for stop() on MediaStreamTrack
-PASS MediaStreamTrack interface: operation getCapabilities()
-PASS Unscopable handled correctly for getCapabilities() on MediaStreamTrack
-PASS MediaStreamTrack interface: operation getConstraints()
-PASS Unscopable handled correctly for getConstraints() on MediaStreamTrack
-PASS MediaStreamTrack interface: operation getSettings()
-PASS Unscopable handled correctly for getSettings() on MediaStreamTrack
-PASS MediaStreamTrack interface: operation applyConstraints(MediaTrackConstraints)
-PASS Unscopable handled correctly for applyConstraints(MediaTrackConstraints) on MediaStreamTrack
-FAIL MediaStreamTrack interface: attribute onoverconstrained assert_true: The prototype object must have a property "onoverconstrained" expected true got false
-PASS Unscopable handled correctly for onoverconstrained property on MediaStreamTrack
-FAIL MediaStreamTrackEvent interface: existence and properties of interface object Cannot read property 'has_extended_attribute' of undefined
-PASS MediaStreamTrackEvent interface object length
-PASS MediaStreamTrackEvent interface object name
-FAIL MediaStreamTrackEvent interface: existence and properties of interface prototype object Cannot read property 'has_extended_attribute' of undefined
-PASS MediaStreamTrackEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS MediaStreamTrackEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS MediaStreamTrackEvent interface: attribute track
-PASS Unscopable handled correctly for track property on MediaStreamTrackEvent
-FAIL OverconstrainedErrorEvent interface: existence and properties of interface object assert_own_property: self does not have own property "OverconstrainedErrorEvent" expected property "OverconstrainedErrorEvent" missing
-FAIL OverconstrainedErrorEvent interface object length assert_own_property: self does not have own property "OverconstrainedErrorEvent" expected property "OverconstrainedErrorEvent" missing
-FAIL OverconstrainedErrorEvent interface object name assert_own_property: self does not have own property "OverconstrainedErrorEvent" expected property "OverconstrainedErrorEvent" missing
-FAIL OverconstrainedErrorEvent interface: existence and properties of interface prototype object assert_own_property: self does not have own property "OverconstrainedErrorEvent" expected property "OverconstrainedErrorEvent" missing
-FAIL OverconstrainedErrorEvent interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "OverconstrainedErrorEvent" expected property "OverconstrainedErrorEvent" missing
-FAIL OverconstrainedErrorEvent interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "OverconstrainedErrorEvent" expected property "OverconstrainedErrorEvent" missing
-FAIL OverconstrainedErrorEvent interface: attribute error assert_own_property: self does not have own property "OverconstrainedErrorEvent" expected property "OverconstrainedErrorEvent" missing
-PASS Unscopable handled correctly for error property on OverconstrainedErrorEvent
-PASS MediaDevices interface: existence and properties of interface object
-PASS MediaDevices interface object length
-PASS MediaDevices interface object name
-PASS MediaDevices interface: existence and properties of interface prototype object
-PASS MediaDevices interface: existence and properties of interface prototype object's "constructor" property
-PASS MediaDevices interface: existence and properties of interface prototype object's @@unscopables property
-PASS MediaDevices interface: attribute ondevicechange
-PASS Unscopable handled correctly for ondevicechange property on MediaDevices
-PASS MediaDevices interface: operation enumerateDevices()
-PASS Unscopable handled correctly for enumerateDevices() on MediaDevices
-PASS MediaDevices interface: operation getSupportedConstraints()
-PASS Unscopable handled correctly for getSupportedConstraints() on MediaDevices
-PASS MediaDevices interface: operation getUserMedia(MediaStreamConstraints)
-PASS Unscopable handled correctly for getUserMedia(MediaStreamConstraints) on MediaDevices
-PASS MediaDevices must be primary interface of navigator.mediaDevices
-PASS Stringification of navigator.mediaDevices
-PASS MediaDevices interface: navigator.mediaDevices must inherit property "ondevicechange" with the proper type
-PASS MediaDevices interface: navigator.mediaDevices must inherit property "enumerateDevices()" with the proper type
-PASS MediaDevices interface: navigator.mediaDevices must inherit property "getSupportedConstraints()" with the proper type
-PASS MediaDevices interface: navigator.mediaDevices must inherit property "getUserMedia(MediaStreamConstraints)" with the proper type
-PASS MediaDevices interface: calling getUserMedia(MediaStreamConstraints) on navigator.mediaDevices with too few arguments must throw TypeError
-PASS MediaDeviceInfo interface: existence and properties of interface object
-PASS MediaDeviceInfo interface object length
-PASS MediaDeviceInfo interface object name
-PASS MediaDeviceInfo interface: existence and properties of interface prototype object
-PASS MediaDeviceInfo interface: existence and properties of interface prototype object's "constructor" property
-PASS MediaDeviceInfo interface: existence and properties of interface prototype object's @@unscopables property
-PASS MediaDeviceInfo interface: attribute deviceId
-PASS Unscopable handled correctly for deviceId property on MediaDeviceInfo
-PASS MediaDeviceInfo interface: attribute kind
-PASS Unscopable handled correctly for kind property on MediaDeviceInfo
-PASS MediaDeviceInfo interface: attribute label
-PASS Unscopable handled correctly for label property on MediaDeviceInfo
-PASS MediaDeviceInfo interface: attribute groupId
-PASS Unscopable handled correctly for groupId property on MediaDeviceInfo
-PASS MediaDeviceInfo interface: operation toJSON()
-PASS Unscopable handled correctly for toJSON() on MediaDeviceInfo
-FAIL InputDeviceInfo interface: existence and properties of interface object assert_own_property: self does not have own property "InputDeviceInfo" expected property "InputDeviceInfo" missing
-FAIL InputDeviceInfo interface object length assert_own_property: self does not have own property "InputDeviceInfo" expected property "InputDeviceInfo" missing
-FAIL InputDeviceInfo interface object name assert_own_property: self does not have own property "InputDeviceInfo" expected property "InputDeviceInfo" missing
-FAIL InputDeviceInfo interface: existence and properties of interface prototype object assert_own_property: self does not have own property "InputDeviceInfo" expected property "InputDeviceInfo" missing
-FAIL InputDeviceInfo interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "InputDeviceInfo" expected property "InputDeviceInfo" missing
-FAIL InputDeviceInfo interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "InputDeviceInfo" expected property "InputDeviceInfo" missing
-FAIL InputDeviceInfo interface: operation getCapabilities() assert_own_property: self does not have own property "InputDeviceInfo" expected property "InputDeviceInfo" missing
-PASS Unscopable handled correctly for getCapabilities() on InputDeviceInfo
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/mediacapture-streams/MediaDevices-IDL-enumerateDevices-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/mediacapture-streams/MediaDevices-IDL-enumerateDevices-expected.txt
deleted file mode 100644
index a50274d..0000000
--- a/third_party/WebKit/LayoutTests/platform/win/external/wpt/mediacapture-streams/MediaDevices-IDL-enumerateDevices-expected.txt
+++ /dev/null
@@ -1,137 +0,0 @@
-This is a testharness.js-based test.
-Found 133 tests; 118 PASS, 15 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS Test MediaDevices.enumerateDevices call and result. Types only.
-PASS Navigator interface: attribute mediaDevices
-PASS Unscopable handled correctly for mediaDevices property on Navigator
-PASS Navigator interface: operation getUserMedia(MediaStreamConstraints, NavigatorUserMediaSuccessCallback, NavigatorUserMediaErrorCallback)
-PASS Unscopable handled correctly for getUserMedia(MediaStreamConstraints, NavigatorUserMediaSuccessCallback, NavigatorUserMediaErrorCallback) on Navigator
-PASS MediaStream interface: existence and properties of interface object
-PASS MediaStream interface object length
-PASS MediaStream interface object name
-PASS MediaStream interface: existence and properties of interface prototype object
-PASS MediaStream interface: existence and properties of interface prototype object's "constructor" property
-PASS MediaStream interface: existence and properties of interface prototype object's @@unscopables property
-PASS MediaStream interface: attribute id
-PASS Unscopable handled correctly for id property on MediaStream
-PASS MediaStream interface: operation getAudioTracks()
-PASS Unscopable handled correctly for getAudioTracks() on MediaStream
-PASS MediaStream interface: operation getVideoTracks()
-PASS Unscopable handled correctly for getVideoTracks() on MediaStream
-PASS MediaStream interface: operation getTracks()
-PASS Unscopable handled correctly for getTracks() on MediaStream
-PASS MediaStream interface: operation getTrackById(DOMString)
-PASS Unscopable handled correctly for getTrackById(DOMString) on MediaStream
-PASS MediaStream interface: operation addTrack(MediaStreamTrack)
-PASS Unscopable handled correctly for addTrack(MediaStreamTrack) on MediaStream
-PASS MediaStream interface: operation removeTrack(MediaStreamTrack)
-PASS Unscopable handled correctly for removeTrack(MediaStreamTrack) on MediaStream
-PASS MediaStream interface: operation clone()
-PASS Unscopable handled correctly for clone() on MediaStream
-PASS MediaStream interface: attribute active
-PASS Unscopable handled correctly for active property on MediaStream
-PASS MediaStream interface: attribute onaddtrack
-PASS Unscopable handled correctly for onaddtrack property on MediaStream
-PASS MediaStream interface: attribute onremovetrack
-PASS Unscopable handled correctly for onremovetrack property on MediaStream
-PASS MediaStreamTrack interface: existence and properties of interface object
-PASS MediaStreamTrack interface object length
-PASS MediaStreamTrack interface object name
-PASS MediaStreamTrack interface: existence and properties of interface prototype object
-PASS MediaStreamTrack interface: existence and properties of interface prototype object's "constructor" property
-PASS MediaStreamTrack interface: existence and properties of interface prototype object's @@unscopables property
-PASS MediaStreamTrack interface: attribute kind
-PASS Unscopable handled correctly for kind property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute id
-PASS Unscopable handled correctly for id property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute label
-PASS Unscopable handled correctly for label property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute enabled
-PASS Unscopable handled correctly for enabled property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute muted
-PASS Unscopable handled correctly for muted property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute onmute
-PASS Unscopable handled correctly for onmute property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute onunmute
-PASS Unscopable handled correctly for onunmute property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute readyState
-PASS Unscopable handled correctly for readyState property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute onended
-PASS Unscopable handled correctly for onended property on MediaStreamTrack
-PASS MediaStreamTrack interface: operation clone()
-PASS Unscopable handled correctly for clone() on MediaStreamTrack
-PASS MediaStreamTrack interface: operation stop()
-PASS Unscopable handled correctly for stop() on MediaStreamTrack
-PASS MediaStreamTrack interface: operation getCapabilities()
-PASS Unscopable handled correctly for getCapabilities() on MediaStreamTrack
-PASS MediaStreamTrack interface: operation getConstraints()
-PASS Unscopable handled correctly for getConstraints() on MediaStreamTrack
-PASS MediaStreamTrack interface: operation getSettings()
-PASS Unscopable handled correctly for getSettings() on MediaStreamTrack
-PASS MediaStreamTrack interface: operation applyConstraints(MediaTrackConstraints)
-PASS Unscopable handled correctly for applyConstraints(MediaTrackConstraints) on MediaStreamTrack
-FAIL MediaStreamTrack interface: attribute onoverconstrained assert_true: The prototype object must have a property "onoverconstrained" expected true got false
-PASS Unscopable handled correctly for onoverconstrained property on MediaStreamTrack
-PASS MediaStreamTrackEvent interface: existence and properties of interface object
-PASS MediaStreamTrackEvent interface object length
-PASS MediaStreamTrackEvent interface object name
-PASS MediaStreamTrackEvent interface: existence and properties of interface prototype object
-PASS MediaStreamTrackEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS MediaStreamTrackEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS MediaStreamTrackEvent interface: attribute track
-PASS Unscopable handled correctly for track property on MediaStreamTrackEvent
-FAIL OverconstrainedErrorEvent interface: existence and properties of interface object assert_own_property: self does not have own property "OverconstrainedErrorEvent" expected property "OverconstrainedErrorEvent" missing
-FAIL OverconstrainedErrorEvent interface object length assert_own_property: self does not have own property "OverconstrainedErrorEvent" expected property "OverconstrainedErrorEvent" missing
-FAIL OverconstrainedErrorEvent interface object name assert_own_property: self does not have own property "OverconstrainedErrorEvent" expected property "OverconstrainedErrorEvent" missing
-FAIL OverconstrainedErrorEvent interface: existence and properties of interface prototype object assert_own_property: self does not have own property "OverconstrainedErrorEvent" expected property "OverconstrainedErrorEvent" missing
-FAIL OverconstrainedErrorEvent interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "OverconstrainedErrorEvent" expected property "OverconstrainedErrorEvent" missing
-FAIL OverconstrainedErrorEvent interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "OverconstrainedErrorEvent" expected property "OverconstrainedErrorEvent" missing
-FAIL OverconstrainedErrorEvent interface: attribute error assert_own_property: self does not have own property "OverconstrainedErrorEvent" expected property "OverconstrainedErrorEvent" missing
-PASS Unscopable handled correctly for error property on OverconstrainedErrorEvent
-PASS MediaDevices interface: existence and properties of interface object
-PASS MediaDevices interface object length
-PASS MediaDevices interface object name
-PASS MediaDevices interface: existence and properties of interface prototype object
-PASS MediaDevices interface: existence and properties of interface prototype object's "constructor" property
-PASS MediaDevices interface: existence and properties of interface prototype object's @@unscopables property
-PASS MediaDevices interface: attribute ondevicechange
-PASS Unscopable handled correctly for ondevicechange property on MediaDevices
-PASS MediaDevices interface: operation enumerateDevices()
-PASS Unscopable handled correctly for enumerateDevices() on MediaDevices
-PASS MediaDevices interface: operation getSupportedConstraints()
-PASS Unscopable handled correctly for getSupportedConstraints() on MediaDevices
-PASS MediaDevices interface: operation getUserMedia(MediaStreamConstraints)
-PASS Unscopable handled correctly for getUserMedia(MediaStreamConstraints) on MediaDevices
-PASS MediaDeviceInfo interface: existence and properties of interface object
-PASS MediaDeviceInfo interface object length
-PASS MediaDeviceInfo interface object name
-PASS MediaDeviceInfo interface: existence and properties of interface prototype object
-PASS MediaDeviceInfo interface: existence and properties of interface prototype object's "constructor" property
-PASS MediaDeviceInfo interface: existence and properties of interface prototype object's @@unscopables property
-PASS MediaDeviceInfo interface: attribute deviceId
-PASS Unscopable handled correctly for deviceId property on MediaDeviceInfo
-PASS MediaDeviceInfo interface: attribute kind
-PASS Unscopable handled correctly for kind property on MediaDeviceInfo
-PASS MediaDeviceInfo interface: attribute label
-PASS Unscopable handled correctly for label property on MediaDeviceInfo
-PASS MediaDeviceInfo interface: attribute groupId
-PASS Unscopable handled correctly for groupId property on MediaDeviceInfo
-PASS MediaDeviceInfo interface: operation toJSON()
-PASS Unscopable handled correctly for toJSON() on MediaDeviceInfo
-PASS MediaDeviceInfo must be primary interface of _mediaInfo
-PASS Stringification of _mediaInfo
-PASS MediaDeviceInfo interface: _mediaInfo must inherit property "deviceId" with the proper type
-PASS MediaDeviceInfo interface: _mediaInfo must inherit property "kind" with the proper type
-PASS MediaDeviceInfo interface: _mediaInfo must inherit property "label" with the proper type
-PASS MediaDeviceInfo interface: _mediaInfo must inherit property "groupId" with the proper type
-PASS MediaDeviceInfo interface: _mediaInfo must inherit property "toJSON()" with the proper type
-PASS Test default toJSON operation of MediaDeviceInfo
-FAIL InputDeviceInfo interface: existence and properties of interface object assert_own_property: self does not have own property "InputDeviceInfo" expected property "InputDeviceInfo" missing
-FAIL InputDeviceInfo interface object length assert_own_property: self does not have own property "InputDeviceInfo" expected property "InputDeviceInfo" missing
-FAIL InputDeviceInfo interface object name assert_own_property: self does not have own property "InputDeviceInfo" expected property "InputDeviceInfo" missing
-FAIL InputDeviceInfo interface: existence and properties of interface prototype object assert_own_property: self does not have own property "InputDeviceInfo" expected property "InputDeviceInfo" missing
-FAIL InputDeviceInfo interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "InputDeviceInfo" expected property "InputDeviceInfo" missing
-FAIL InputDeviceInfo interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "InputDeviceInfo" expected property "InputDeviceInfo" missing
-FAIL InputDeviceInfo interface: operation getCapabilities() assert_own_property: self does not have own property "InputDeviceInfo" expected property "InputDeviceInfo" missing
-PASS Unscopable handled correctly for getCapabilities() on InputDeviceInfo
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/mediacapture-streams/MediaStreamTrack-idl.https-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/mediacapture-streams/MediaStreamTrack-idl.https-expected.txt
deleted file mode 100644
index 124aa42..0000000
--- a/third_party/WebKit/LayoutTests/platform/win/external/wpt/mediacapture-streams/MediaStreamTrack-idl.https-expected.txt
+++ /dev/null
@@ -1,61 +0,0 @@
-This is a testharness.js-based test.
-PASS Test driver
-PASS MediaStreamTrack interface: existence and properties of interface object
-PASS MediaStreamTrack interface object length
-PASS MediaStreamTrack interface object name
-PASS MediaStreamTrack interface: existence and properties of interface prototype object
-PASS MediaStreamTrack interface: existence and properties of interface prototype object's "constructor" property
-PASS MediaStreamTrack interface: existence and properties of interface prototype object's @@unscopables property
-PASS MediaStreamTrack interface: attribute kind
-PASS Unscopable handled correctly for kind property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute id
-PASS Unscopable handled correctly for id property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute label
-PASS Unscopable handled correctly for label property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute enabled
-PASS Unscopable handled correctly for enabled property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute muted
-PASS Unscopable handled correctly for muted property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute onmute
-PASS Unscopable handled correctly for onmute property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute onunmute
-PASS Unscopable handled correctly for onunmute property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute readyState
-PASS Unscopable handled correctly for readyState property on MediaStreamTrack
-PASS MediaStreamTrack interface: attribute onended
-PASS Unscopable handled correctly for onended property on MediaStreamTrack
-FAIL MediaStreamTrack interface: attribute onoverconstrained assert_true: The prototype object must have a property "onoverconstrained" expected true got false
-PASS Unscopable handled correctly for onoverconstrained property on MediaStreamTrack
-PASS MediaStreamTrack interface: operation clone()
-PASS Unscopable handled correctly for clone() on MediaStreamTrack
-PASS MediaStreamTrack interface: operation stop()
-PASS Unscopable handled correctly for stop() on MediaStreamTrack
-PASS MediaStreamTrack interface: operation getCapabilities()
-PASS Unscopable handled correctly for getCapabilities() on MediaStreamTrack
-PASS MediaStreamTrack interface: operation getConstraints()
-PASS Unscopable handled correctly for getConstraints() on MediaStreamTrack
-PASS MediaStreamTrack interface: operation getSettings()
-PASS Unscopable handled correctly for getSettings() on MediaStreamTrack
-PASS MediaStreamTrack interface: operation applyConstraints(MediaTrackConstraints)
-PASS Unscopable handled correctly for applyConstraints(MediaTrackConstraints) on MediaStreamTrack
-PASS MediaStreamTrack must be primary interface of track
-PASS Stringification of track
-PASS MediaStreamTrack interface: track must inherit property "kind" with the proper type
-PASS MediaStreamTrack interface: track must inherit property "id" with the proper type
-PASS MediaStreamTrack interface: track must inherit property "label" with the proper type
-PASS MediaStreamTrack interface: track must inherit property "enabled" with the proper type
-PASS MediaStreamTrack interface: track must inherit property "muted" with the proper type
-PASS MediaStreamTrack interface: track must inherit property "onmute" with the proper type
-PASS MediaStreamTrack interface: track must inherit property "onunmute" with the proper type
-PASS MediaStreamTrack interface: track must inherit property "readyState" with the proper type
-PASS MediaStreamTrack interface: track must inherit property "onended" with the proper type
-FAIL MediaStreamTrack interface: track must inherit property "onoverconstrained" with the proper type assert_inherits: property "onoverconstrained" not found in prototype chain
-PASS MediaStreamTrack interface: track must inherit property "clone()" with the proper type
-PASS MediaStreamTrack interface: track must inherit property "stop()" with the proper type
-PASS MediaStreamTrack interface: track must inherit property "getCapabilities()" with the proper type
-PASS MediaStreamTrack interface: track must inherit property "getConstraints()" with the proper type
-PASS MediaStreamTrack interface: track must inherit property "getSettings()" with the proper type
-PASS MediaStreamTrack interface: track must inherit property "applyConstraints(MediaTrackConstraints)" with the proper type
-PASS MediaStreamTrack interface: calling applyConstraints(MediaTrackConstraints) on track with too few arguments must throw TypeError
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/mediasession/idlharness-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/mediasession/idlharness-expected.txt
deleted file mode 100644
index d5c3de3..0000000
--- a/third_party/WebKit/LayoutTests/platform/win/external/wpt/mediasession/idlharness-expected.txt
+++ /dev/null
@@ -1,39 +0,0 @@
-This is a testharness.js-based test.
-FAIL Window interface: existence and properties of interface object assert_false: expected false got true
-PASS Navigator interface: attribute mediaSession
-PASS Unscopable handled correctly for mediaSession property on Navigator
-PASS Navigator interface: navigator must inherit property "mediaSession" with the proper type
-PASS MediaSession interface: existence and properties of interface object
-PASS MediaSession interface object length
-PASS MediaSession interface object name
-PASS MediaSession interface: existence and properties of interface prototype object
-PASS MediaSession interface: existence and properties of interface prototype object's "constructor" property
-PASS MediaSession interface: existence and properties of interface prototype object's @@unscopables property
-PASS MediaSession interface: attribute metadata
-PASS Unscopable handled correctly for metadata property on MediaSession
-PASS MediaSession interface: attribute playbackState
-PASS Unscopable handled correctly for playbackState property on MediaSession
-PASS MediaSession interface: operation setActionHandler(MediaSessionAction, MediaSessionActionHandler)
-PASS Unscopable handled correctly for setActionHandler(MediaSessionAction, MediaSessionActionHandler) on MediaSession
-PASS MediaMetadata interface: existence and properties of interface object
-PASS MediaMetadata interface object length
-PASS MediaMetadata interface object name
-PASS MediaMetadata interface: existence and properties of interface prototype object
-PASS MediaMetadata interface: existence and properties of interface prototype object's "constructor" property
-PASS MediaMetadata interface: existence and properties of interface prototype object's @@unscopables property
-PASS MediaMetadata interface: attribute title
-PASS Unscopable handled correctly for title property on MediaMetadata
-PASS MediaMetadata interface: attribute artist
-PASS Unscopable handled correctly for artist property on MediaMetadata
-PASS MediaMetadata interface: attribute album
-PASS Unscopable handled correctly for album property on MediaMetadata
-PASS MediaMetadata interface: attribute artwork
-PASS Unscopable handled correctly for artwork property on MediaMetadata
-PASS MediaMetadata must be primary interface of [object MediaMetadata]
-PASS Stringification of [object MediaMetadata]
-PASS MediaMetadata interface: [object MediaMetadata] must inherit property "title" with the proper type
-PASS MediaMetadata interface: [object MediaMetadata] must inherit property "artist" with the proper type
-PASS MediaMetadata interface: [object MediaMetadata] must inherit property "album" with the proper type
-FAIL MediaMetadata interface: [object MediaMetadata] must inherit property "artwork" with the proper type Unrecognized type FrozenArray
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/navigation-timing/nav2_idlharness-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/navigation-timing/nav2_idlharness-expected.txt
deleted file mode 100644
index 2851111..0000000
--- a/third_party/WebKit/LayoutTests/platform/win/external/wpt/navigation-timing/nav2_idlharness-expected.txt
+++ /dev/null
@@ -1,31 +0,0 @@
-This is a testharness.js-based test.
-PASS PerformanceNavigationTiming interface: existence and properties of interface object
-PASS PerformanceNavigationTiming interface object length
-PASS PerformanceNavigationTiming interface object name
-FAIL PerformanceNavigationTiming interface: existence and properties of interface prototype object Cannot read property 'has_stringifier' of undefined
-PASS PerformanceNavigationTiming interface: existence and properties of interface prototype object's "constructor" property
-PASS PerformanceNavigationTiming interface: existence and properties of interface prototype object's @@unscopables property
-PASS PerformanceNavigationTiming interface: attribute unloadEventStart
-PASS Unscopable handled correctly for unloadEventStart property on PerformanceNavigationTiming
-PASS PerformanceNavigationTiming interface: attribute unloadEventEnd
-PASS Unscopable handled correctly for unloadEventEnd property on PerformanceNavigationTiming
-PASS PerformanceNavigationTiming interface: attribute domInteractive
-PASS Unscopable handled correctly for domInteractive property on PerformanceNavigationTiming
-PASS PerformanceNavigationTiming interface: attribute domContentLoadedEventStart
-PASS Unscopable handled correctly for domContentLoadedEventStart property on PerformanceNavigationTiming
-PASS PerformanceNavigationTiming interface: attribute domContentLoadedEventEnd
-PASS Unscopable handled correctly for domContentLoadedEventEnd property on PerformanceNavigationTiming
-PASS PerformanceNavigationTiming interface: attribute domComplete
-PASS Unscopable handled correctly for domComplete property on PerformanceNavigationTiming
-PASS PerformanceNavigationTiming interface: attribute loadEventStart
-PASS Unscopable handled correctly for loadEventStart property on PerformanceNavigationTiming
-PASS PerformanceNavigationTiming interface: attribute loadEventEnd
-PASS Unscopable handled correctly for loadEventEnd property on PerformanceNavigationTiming
-PASS PerformanceNavigationTiming interface: attribute type
-PASS Unscopable handled correctly for type property on PerformanceNavigationTiming
-PASS PerformanceNavigationTiming interface: attribute redirectCount
-PASS Unscopable handled correctly for redirectCount property on PerformanceNavigationTiming
-PASS PerformanceNavigationTiming interface: operation toJSON()
-PASS Unscopable handled correctly for toJSON() on PerformanceNavigationTiming
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/orientation-event/idlharness-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/orientation-event/idlharness-expected.txt
deleted file mode 100644
index 31e9ba4..0000000
--- a/third_party/WebKit/LayoutTests/platform/win/external/wpt/orientation-event/idlharness-expected.txt
+++ /dev/null
@@ -1,47 +0,0 @@
-This is a testharness.js-based test.
-FAIL Window interface: attribute ondeviceorientation assert_true: The prototype object must have a property "ondeviceorientation" expected true got false
-PASS Unscopable handled correctly for ondeviceorientation property on Window
-FAIL Window interface: attribute ondevicemotion assert_true: The prototype object must have a property "ondevicemotion" expected true got false
-PASS Unscopable handled correctly for ondevicemotion property on Window
-PASS DeviceOrientationEvent interface: existence and properties of interface object
-PASS DeviceOrientationEvent interface object length
-PASS DeviceOrientationEvent interface object name
-PASS DeviceOrientationEvent interface: existence and properties of interface prototype object
-PASS DeviceOrientationEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS DeviceOrientationEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS DeviceOrientationEvent interface: attribute alpha
-PASS Unscopable handled correctly for alpha property on DeviceOrientationEvent
-PASS DeviceOrientationEvent interface: attribute beta
-PASS Unscopable handled correctly for beta property on DeviceOrientationEvent
-PASS DeviceOrientationEvent interface: attribute gamma
-PASS Unscopable handled correctly for gamma property on DeviceOrientationEvent
-PASS DeviceOrientationEvent interface: attribute absolute
-PASS Unscopable handled correctly for absolute property on DeviceOrientationEvent
-PASS DeviceOrientationEvent must be primary interface of new DeviceOrientationEvent("foo")
-PASS Stringification of new DeviceOrientationEvent("foo")
-PASS DeviceOrientationEvent interface: new DeviceOrientationEvent("foo") must inherit property "alpha" with the proper type
-PASS DeviceOrientationEvent interface: new DeviceOrientationEvent("foo") must inherit property "beta" with the proper type
-PASS DeviceOrientationEvent interface: new DeviceOrientationEvent("foo") must inherit property "gamma" with the proper type
-PASS DeviceOrientationEvent interface: new DeviceOrientationEvent("foo") must inherit property "absolute" with the proper type
-PASS DeviceMotionEvent interface: existence and properties of interface object
-PASS DeviceMotionEvent interface object length
-PASS DeviceMotionEvent interface object name
-PASS DeviceMotionEvent interface: existence and properties of interface prototype object
-PASS DeviceMotionEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS DeviceMotionEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS DeviceMotionEvent interface: attribute acceleration
-PASS Unscopable handled correctly for acceleration property on DeviceMotionEvent
-PASS DeviceMotionEvent interface: attribute accelerationIncludingGravity
-PASS Unscopable handled correctly for accelerationIncludingGravity property on DeviceMotionEvent
-PASS DeviceMotionEvent interface: attribute rotationRate
-PASS Unscopable handled correctly for rotationRate property on DeviceMotionEvent
-PASS DeviceMotionEvent interface: attribute interval
-PASS Unscopable handled correctly for interval property on DeviceMotionEvent
-PASS DeviceMotionEvent must be primary interface of new DeviceMotionEvent("foo")
-PASS Stringification of new DeviceMotionEvent("foo")
-PASS DeviceMotionEvent interface: new DeviceMotionEvent("foo") must inherit property "acceleration" with the proper type
-PASS DeviceMotionEvent interface: new DeviceMotionEvent("foo") must inherit property "accelerationIncludingGravity" with the proper type
-PASS DeviceMotionEvent interface: new DeviceMotionEvent("foo") must inherit property "rotationRate" with the proper type
-PASS DeviceMotionEvent interface: new DeviceMotionEvent("foo") must inherit property "interval" with the proper type
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/payment-handler/interfaces.https.any-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/payment-handler/interfaces.https.any-expected.txt
deleted file mode 100644
index acb6e796..0000000
--- a/third_party/WebKit/LayoutTests/platform/win/external/wpt/payment-handler/interfaces.https.any-expected.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-This is a testharness.js-based test.
-PASS Payment handler interfaces.
-PASS PaymentManager interface: existence and properties of interface object
-PASS PaymentManager interface object length
-PASS PaymentManager interface object name
-PASS PaymentManager interface: existence and properties of interface prototype object
-PASS PaymentManager interface: existence and properties of interface prototype object's "constructor" property
-PASS PaymentManager interface: existence and properties of interface prototype object's @@unscopables property
-PASS PaymentManager interface: attribute instruments
-PASS Unscopable handled correctly for instruments property on PaymentManager
-FAIL PaymentManager interface: operation requestPermission() assert_own_property: interface object missing static operation expected property "requestPermission" missing
-PASS Unscopable handled correctly for requestPermission() on PaymentManager
-PASS PaymentInstruments interface: existence and properties of interface object
-PASS PaymentInstruments interface object length
-PASS PaymentInstruments interface object name
-PASS PaymentInstruments interface: existence and properties of interface prototype object
-PASS PaymentInstruments interface: existence and properties of interface prototype object's "constructor" property
-PASS PaymentInstruments interface: existence and properties of interface prototype object's @@unscopables property
-PASS PaymentInstruments interface: operation delete(DOMString)
-PASS Unscopable handled correctly for delete(DOMString) on PaymentInstruments
-PASS PaymentInstruments interface: operation get(DOMString)
-PASS Unscopable handled correctly for get(DOMString) on PaymentInstruments
-PASS PaymentInstruments interface: operation keys()
-PASS Unscopable handled correctly for keys() on PaymentInstruments
-PASS PaymentInstruments interface: operation has(DOMString)
-PASS Unscopable handled correctly for has(DOMString) on PaymentInstruments
-PASS PaymentInstruments interface: operation set(DOMString, PaymentInstrument)
-PASS Unscopable handled correctly for set(DOMString, PaymentInstrument) on PaymentInstruments
-PASS PaymentInstruments interface: operation clear()
-PASS Unscopable handled correctly for clear() on PaymentInstruments
-PASS PaymentRequestEvent interface: existence and properties of interface object
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/payment-handler/interfaces.https.any.worker-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/payment-handler/interfaces.https.any.worker-expected.txt
deleted file mode 100644
index 234aac8..0000000
--- a/third_party/WebKit/LayoutTests/platform/win/external/wpt/payment-handler/interfaces.https.any.worker-expected.txt
+++ /dev/null
@@ -1,32 +0,0 @@
-This is a testharness.js-based test.
-PASS Payment handler interfaces.
-FAIL PaymentManager interface: existence and properties of interface object assert_own_property: self does not have own property "PaymentManager" expected property "PaymentManager" missing
-FAIL PaymentManager interface object length assert_own_property: self does not have own property "PaymentManager" expected property "PaymentManager" missing
-FAIL PaymentManager interface object name assert_own_property: self does not have own property "PaymentManager" expected property "PaymentManager" missing
-FAIL PaymentManager interface: existence and properties of interface prototype object assert_own_property: self does not have own property "PaymentManager" expected property "PaymentManager" missing
-FAIL PaymentManager interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "PaymentManager" expected property "PaymentManager" missing
-FAIL PaymentManager interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "PaymentManager" expected property "PaymentManager" missing
-FAIL PaymentManager interface: attribute instruments assert_own_property: self does not have own property "PaymentManager" expected property "PaymentManager" missing
-PASS Unscopable handled correctly for instruments property on PaymentManager
-FAIL PaymentManager interface: member requestPermission Cannot use 'in' operator to search for 'requestPermission' in undefined
-PASS PaymentInstruments interface: existence and properties of interface object
-PASS PaymentInstruments interface object length
-PASS PaymentInstruments interface object name
-PASS PaymentInstruments interface: existence and properties of interface prototype object
-PASS PaymentInstruments interface: existence and properties of interface prototype object's "constructor" property
-PASS PaymentInstruments interface: existence and properties of interface prototype object's @@unscopables property
-PASS PaymentInstruments interface: operation delete(DOMString)
-PASS Unscopable handled correctly for delete(DOMString) on PaymentInstruments
-PASS PaymentInstruments interface: operation get(DOMString)
-PASS Unscopable handled correctly for get(DOMString) on PaymentInstruments
-PASS PaymentInstruments interface: operation keys()
-PASS Unscopable handled correctly for keys() on PaymentInstruments
-PASS PaymentInstruments interface: operation has(DOMString)
-PASS Unscopable handled correctly for has(DOMString) on PaymentInstruments
-PASS PaymentInstruments interface: operation set(DOMString, PaymentInstrument)
-PASS Unscopable handled correctly for set(DOMString, PaymentInstrument) on PaymentInstruments
-PASS PaymentInstruments interface: operation clear()
-PASS Unscopable handled correctly for clear() on PaymentInstruments
-PASS PaymentRequestEvent interface: existence and properties of interface object
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/pointerlock/idlharness-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/pointerlock/idlharness-expected.txt
deleted file mode 100644
index 78ee28d..0000000
--- a/third_party/WebKit/LayoutTests/platform/win/external/wpt/pointerlock/idlharness-expected.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-This is a testharness.js-based test.
-PASS Element interface: operation requestPointerLock()
-PASS Unscopable handled correctly for requestPointerLock() on Element
-PASS Element interface: window.document.documentElement must inherit property "requestPointerLock()" with the proper type
-PASS Document interface: attribute onpointerlockchange
-PASS Unscopable handled correctly for onpointerlockchange property on Document
-PASS Document interface: attribute onpointerlockerror
-PASS Unscopable handled correctly for onpointerlockerror property on Document
-PASS Document interface: attribute pointerLockElement
-PASS Unscopable handled correctly for pointerLockElement property on Document
-PASS Document interface: operation exitPointerLock()
-PASS Unscopable handled correctly for exitPointerLock() on Document
-FAIL Document interface: window.document must inherit property "onpointerlockchange" with the proper type Unrecognized type EventHandler
-FAIL Document interface: window.document must inherit property "onpointerlockerror" with the proper type Unrecognized type EventHandler
-PASS Document interface: window.document must inherit property "pointerLockElement" with the proper type
-PASS Document interface: window.document must inherit property "exitPointerLock()" with the proper type
-PASS MouseEvent interface: attribute movementX
-PASS Unscopable handled correctly for movementX property on MouseEvent
-PASS MouseEvent interface: attribute movementY
-PASS Unscopable handled correctly for movementY property on MouseEvent
-PASS MouseEvent interface: new MouseEvent('mousemove') must inherit property "movementX" with the proper type
-PASS MouseEvent interface: new MouseEvent('mousemove') must inherit property "movementY" with the proper type
-PASS MouseEvent interface: new MouseEvent('pointerlockchange') must inherit property "movementX" with the proper type
-PASS MouseEvent interface: new MouseEvent('pointerlockchange') must inherit property "movementY" with the proper type
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/screen-orientation/lock-bad-argument-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/screen-orientation/lock-bad-argument-expected.txt
deleted file mode 100644
index 9be9c26..0000000
--- a/third_party/WebKit/LayoutTests/platform/win/external/wpt/screen-orientation/lock-bad-argument-expected.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-This is a testharness.js-based test.
-PASS screen.orientation.lock() must throw given invalid input.
-PASS screen.orientation.lock() must throw when the input is missing.
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/service-workers/service-worker/interfaces-sw.https-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/service-workers/service-worker/interfaces-sw.https-expected.txt
deleted file mode 100644
index 379e5662..0000000
--- a/third_party/WebKit/LayoutTests/platform/win/external/wpt/service-workers/service-worker/interfaces-sw.https-expected.txt
+++ /dev/null
@@ -1,250 +0,0 @@
-This is a testharness.js-based test.
-PASS Interfaces and attributes in ServiceWorkerGlobalScope
-PASS test setup (cache creation)
-FAIL Event constructors assert_equals: FetchEvent.isReload should not exist expected (undefined) undefined but got (boolean) false
-PASS xhr is not exposed
-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 Unscopable handled correctly for clients property on ServiceWorkerGlobalScope
-PASS ServiceWorkerGlobalScope interface: attribute registration
-PASS Unscopable handled correctly for registration property on ServiceWorkerGlobalScope
-PASS ServiceWorkerGlobalScope interface: operation skipWaiting()
-PASS Unscopable handled correctly for skipWaiting() on ServiceWorkerGlobalScope
-PASS ServiceWorkerGlobalScope interface: attribute oninstall
-PASS Unscopable handled correctly for oninstall property on ServiceWorkerGlobalScope
-PASS ServiceWorkerGlobalScope interface: attribute onactivate
-PASS Unscopable handled correctly for onactivate property on ServiceWorkerGlobalScope
-PASS ServiceWorkerGlobalScope interface: attribute onfetch
-PASS Unscopable handled correctly for onfetch property on ServiceWorkerGlobalScope
-PASS ServiceWorkerGlobalScope interface: attribute onmessage
-PASS Unscopable handled correctly for onmessage property on ServiceWorkerGlobalScope
-FAIL ServiceWorkerGlobalScope interface: attribute onmessageerror assert_own_property: The global object must have a property "onmessageerror" expected property "onmessageerror" missing
-PASS Unscopable handled correctly for onmessageerror property on ServiceWorkerGlobalScope
-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 "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
-FAIL ServiceWorkerGlobalScope interface: self must inherit property "onmessageerror" with the proper type assert_own_property: expected property "onmessageerror" missing
-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 Unscopable handled correctly for url property on Client
-PASS Client interface: attribute id
-PASS Unscopable handled correctly for id property on Client
-PASS Client interface: attribute type
-PASS Unscopable handled correctly for type property on Client
-FAIL Client interface: attribute reserved assert_true: The prototype object must have a property "reserved" expected true got false
-PASS Unscopable handled correctly for reserved property on Client
-PASS Client interface: operation postMessage(any, [object Object])
-PASS Unscopable handled correctly for postMessage(any, [object Object]) on Client
-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 Unscopable handled correctly for visibilityState property on WindowClient
-PASS WindowClient interface: attribute focused
-PASS Unscopable handled correctly for focused property on WindowClient
-FAIL WindowClient interface: attribute ancestorOrigins assert_true: The prototype object must have a property "ancestorOrigins" expected true got false
-PASS Unscopable handled correctly for ancestorOrigins property on WindowClient
-PASS WindowClient interface: operation focus()
-PASS Unscopable handled correctly for focus() on WindowClient
-PASS WindowClient interface: operation navigate(USVString)
-PASS Unscopable handled correctly for navigate(USVString) on WindowClient
-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 Unscopable handled correctly for get(DOMString) on Clients
-PASS Clients interface: operation matchAll(ClientQueryOptions)
-PASS Unscopable handled correctly for matchAll(ClientQueryOptions) on Clients
-PASS Clients interface: operation openWindow(USVString)
-PASS Unscopable handled correctly for openWindow(USVString) on Clients
-PASS Clients interface: operation claim()
-PASS Unscopable handled correctly for claim() on Clients
-PASS Clients must be primary interface of self.clients
-PASS Stringification of self.clients
-PASS Clients interface: self.clients must inherit property "get(DOMString)" with the proper type
-PASS Clients interface: calling get(DOMString) on self.clients with too few arguments must throw TypeError
-PASS Clients interface: self.clients must inherit property "matchAll(ClientQueryOptions)" with the proper type
-PASS Clients interface: calling matchAll(ClientQueryOptions) on self.clients with too few arguments must throw TypeError
-PASS Clients interface: self.clients must inherit property "openWindow(USVString)" with the proper type
-PASS Clients interface: calling openWindow(USVString) on self.clients with too few arguments must throw TypeError
-PASS Clients interface: self.clients must inherit property "claim()" with the proper type
-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
-PASS Unscopable handled correctly for scriptURL property on ServiceWorker
-FAIL ServiceWorker interface: attribute state assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-PASS Unscopable handled correctly for state property on ServiceWorker
-FAIL ServiceWorker interface: operation postMessage(any, [object Object]) assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-PASS Unscopable handled correctly for postMessage(any, [object Object]) on ServiceWorker
-FAIL ServiceWorker interface: attribute onstatechange assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-PASS Unscopable handled correctly for onstatechange property on ServiceWorker
-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 Unscopable handled correctly for installing property on ServiceWorkerRegistration
-PASS ServiceWorkerRegistration interface: attribute waiting
-PASS Unscopable handled correctly for waiting property on ServiceWorkerRegistration
-PASS ServiceWorkerRegistration interface: attribute active
-PASS Unscopable handled correctly for active property on ServiceWorkerRegistration
-PASS ServiceWorkerRegistration interface: attribute navigationPreload
-PASS Unscopable handled correctly for navigationPreload property on ServiceWorkerRegistration
-PASS ServiceWorkerRegistration interface: attribute scope
-PASS Unscopable handled correctly for scope property on ServiceWorkerRegistration
-PASS ServiceWorkerRegistration interface: attribute updateViaCache
-PASS Unscopable handled correctly for updateViaCache property on ServiceWorkerRegistration
-PASS ServiceWorkerRegistration interface: operation update()
-PASS Unscopable handled correctly for update() on ServiceWorkerRegistration
-PASS ServiceWorkerRegistration interface: operation unregister()
-PASS Unscopable handled correctly for unregister() on ServiceWorkerRegistration
-PASS ServiceWorkerRegistration interface: attribute onupdatefound
-PASS Unscopable handled correctly for onupdatefound property on ServiceWorkerRegistration
-PASS ServiceWorkerRegistration must be primary interface of self.registration
-PASS Stringification of self.registration
-PASS ServiceWorkerRegistration interface: self.registration must inherit property "installing" with the proper type
-PASS ServiceWorkerRegistration interface: self.registration must inherit property "waiting" with the proper type
-PASS ServiceWorkerRegistration interface: self.registration must inherit property "active" with the proper type
-PASS ServiceWorkerRegistration interface: self.registration must inherit property "navigationPreload" with the proper type
-PASS ServiceWorkerRegistration interface: self.registration must inherit property "scope" with the proper type
-PASS ServiceWorkerRegistration interface: self.registration must inherit property "updateViaCache" with the proper type
-PASS ServiceWorkerRegistration interface: self.registration must inherit property "update()" with the proper type
-PASS ServiceWorkerRegistration interface: self.registration must inherit property "unregister()" with the proper type
-PASS ServiceWorkerRegistration interface: self.registration must inherit property "onupdatefound" with the proper type
-PASS EventTarget interface: self.registration must inherit property "addEventListener(DOMString, EventListener, [object Object],[object Object])" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener, [object Object],[object Object]) on self.registration with too few arguments must throw TypeError
-PASS EventTarget interface: self.registration must inherit property "removeEventListener(DOMString, EventListener, [object Object],[object Object])" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener, [object Object],[object Object]) on self.registration with too few arguments must throw TypeError
-PASS EventTarget interface: self.registration must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on self.registration 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, [object Object],[object Object])
-PASS Unscopable handled correctly for addEventListener(DOMString, EventListener, [object Object],[object Object]) on EventTarget
-PASS EventTarget interface: operation removeEventListener(DOMString, EventListener, [object Object],[object Object])
-PASS Unscopable handled correctly for removeEventListener(DOMString, EventListener, [object Object],[object Object]) on EventTarget
-PASS EventTarget interface: operation dispatchEvent(Event)
-PASS Unscopable handled correctly for dispatchEvent(Event) on EventTarget
-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 Unscopable handled correctly for enable() on NavigationPreloadManager
-PASS NavigationPreloadManager interface: operation disable()
-PASS Unscopable handled correctly for disable() on NavigationPreloadManager
-PASS NavigationPreloadManager interface: operation setHeaderValue(ByteString)
-PASS Unscopable handled correctly for setHeaderValue(ByteString) on NavigationPreloadManager
-PASS NavigationPreloadManager interface: operation getState()
-PASS Unscopable handled correctly for getState() on NavigationPreloadManager
-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, CacheQueryOptions)
-PASS Unscopable handled correctly for match(RequestInfo, CacheQueryOptions) on Cache
-PASS Cache interface: operation matchAll(RequestInfo, CacheQueryOptions)
-PASS Unscopable handled correctly for matchAll(RequestInfo, CacheQueryOptions) on Cache
-PASS Cache interface: operation add(RequestInfo)
-PASS Unscopable handled correctly for add(RequestInfo) on Cache
-PASS Cache interface: operation addAll([object Object])
-PASS Unscopable handled correctly for addAll([object Object]) on Cache
-PASS Cache interface: operation put(RequestInfo, Response)
-PASS Unscopable handled correctly for put(RequestInfo, Response) on Cache
-PASS Cache interface: operation delete(RequestInfo, CacheQueryOptions)
-PASS Unscopable handled correctly for delete(RequestInfo, CacheQueryOptions) on Cache
-PASS Cache interface: operation keys(RequestInfo, CacheQueryOptions)
-PASS Unscopable handled correctly for keys(RequestInfo, CacheQueryOptions) on Cache
-PASS Cache must be primary interface of self.cacheInstance
-PASS Stringification of self.cacheInstance
-PASS Cache interface: self.cacheInstance must inherit property "match(RequestInfo, CacheQueryOptions)" with the proper type
-PASS Cache interface: calling match(RequestInfo, CacheQueryOptions) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "matchAll(RequestInfo, CacheQueryOptions)" with the proper type
-PASS Cache interface: calling matchAll(RequestInfo, 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([object Object])" with the proper type
-PASS Cache interface: calling addAll([object Object]) 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, CacheQueryOptions)" with the proper type
-PASS Cache interface: calling delete(RequestInfo, CacheQueryOptions) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "keys(RequestInfo, CacheQueryOptions)" with the proper type
-PASS Cache interface: calling keys(RequestInfo, 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, CacheQueryOptions)
-PASS Unscopable handled correctly for match(RequestInfo, CacheQueryOptions) on CacheStorage
-PASS CacheStorage interface: operation has(DOMString)
-PASS Unscopable handled correctly for has(DOMString) on CacheStorage
-PASS CacheStorage interface: operation open(DOMString)
-PASS Unscopable handled correctly for open(DOMString) on CacheStorage
-PASS CacheStorage interface: operation delete(DOMString)
-PASS Unscopable handled correctly for delete(DOMString) on CacheStorage
-PASS CacheStorage interface: operation keys()
-PASS Unscopable handled correctly for keys() on CacheStorage
-PASS CacheStorage must be primary interface of self.caches
-PASS Stringification of self.caches
-PASS CacheStorage interface: self.caches must inherit property "match(RequestInfo, CacheQueryOptions)" with the proper type
-PASS CacheStorage interface: calling match(RequestInfo, CacheQueryOptions) on self.caches with too few arguments must throw TypeError
-PASS CacheStorage interface: self.caches must inherit property "has(DOMString)" with the proper type
-PASS CacheStorage interface: calling has(DOMString) on self.caches with too few arguments must throw TypeError
-PASS CacheStorage interface: self.caches must inherit property "open(DOMString)" with the proper type
-PASS CacheStorage interface: calling open(DOMString) on self.caches with too few arguments must throw TypeError
-PASS CacheStorage interface: self.caches must inherit property "delete(DOMString)" with the proper type
-PASS CacheStorage interface: calling delete(DOMString) on self.caches with too few arguments must throw TypeError
-PASS CacheStorage interface: self.caches must inherit property "keys()" with the proper type
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/streams/piping/close-propagation-forward-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/streams/piping/close-propagation-forward-expected.txt
deleted file mode 100644
index 97077ba..0000000
--- a/third_party/WebKit/LayoutTests/platform/win/external/wpt/streams/piping/close-propagation-forward-expected.txt
+++ /dev/null
@@ -1,32 +0,0 @@
-This is a testharness.js-based test.
-PASS Closing must be propagated forward: starts closed; preventClose omitted; fulfilled close promise
-PASS Closing must be propagated forward: starts closed; preventClose omitted; rejected close promise
-PASS Closing must be propagated forward: starts closed; preventClose = undefined (falsy); fulfilled close promise
-PASS Closing must be propagated forward: starts closed; preventClose = null (falsy); fulfilled close promise
-PASS Closing must be propagated forward: starts closed; preventClose = false (falsy); fulfilled close promise
-PASS Closing must be propagated forward: starts closed; preventClose = 0 (falsy); fulfilled close promise
-PASS Closing must be propagated forward: starts closed; preventClose = -0 (falsy); fulfilled close promise
-PASS Closing must be propagated forward: starts closed; preventClose = NaN (falsy); fulfilled close promise
-PASS Closing must be propagated forward: starts closed; preventClose =  (falsy); fulfilled close promise
-PASS Closing must be propagated forward: starts closed; preventClose = true (truthy)
-PASS Closing must be propagated forward: starts closed; preventClose = a (truthy)
-PASS Closing must be propagated forward: starts closed; preventClose = 1 (truthy)
-PASS Closing must be propagated forward: starts closed; preventClose = Symbol() (truthy)
-PASS Closing must be propagated forward: starts closed; preventClose = [object Object] (truthy)
-PASS Closing must be propagated forward: starts closed; preventClose = true, preventAbort = true
-PASS Closing must be propagated forward: starts closed; preventClose = true, preventAbort = true, preventCancel = true
-PASS Closing must be propagated forward: becomes closed asynchronously; preventClose omitted; fulfilled close promise
-PASS Closing must be propagated forward: becomes closed asynchronously; preventClose omitted; rejected close promise
-PASS Closing must be propagated forward: becomes closed asynchronously; preventClose = true
-PASS Closing must be propagated forward: becomes closed asynchronously; dest never desires chunks; preventClose omitted; fulfilled close promise
-PASS Closing must be propagated forward: becomes closed asynchronously; dest never desires chunks; preventClose omitted; rejected close promise
-PASS Closing must be propagated forward: becomes closed asynchronously; dest never desires chunks; preventClose = true
-PASS Closing must be propagated forward: becomes closed after one chunk; preventClose omitted; fulfilled close promise
-PASS Closing must be propagated forward: becomes closed after one chunk; preventClose omitted; rejected close promise
-PASS Closing must be propagated forward: becomes closed after one chunk; preventClose = true
-PASS Closing must be propagated forward: shutdown must not occur until the final write completes
-FAIL Closing must be propagated forward: shutdown must not occur until the final write completes; preventClose = true assert_equals: the pipe must not be complete expected false but got true
-PASS Closing must be propagated forward: shutdown must not occur until the final write completes; becomes closed after first write
-FAIL Closing must be propagated forward: shutdown must not occur until the final write completes; becomes closed after first write; preventClose = true assert_false: the pipe should not complete while the second write is pending expected false got true
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/streams/piping/close-propagation-forward.dedicatedworker-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/streams/piping/close-propagation-forward.dedicatedworker-expected.txt
deleted file mode 100644
index 97077ba..0000000
--- a/third_party/WebKit/LayoutTests/platform/win/external/wpt/streams/piping/close-propagation-forward.dedicatedworker-expected.txt
+++ /dev/null
@@ -1,32 +0,0 @@
-This is a testharness.js-based test.
-PASS Closing must be propagated forward: starts closed; preventClose omitted; fulfilled close promise
-PASS Closing must be propagated forward: starts closed; preventClose omitted; rejected close promise
-PASS Closing must be propagated forward: starts closed; preventClose = undefined (falsy); fulfilled close promise
-PASS Closing must be propagated forward: starts closed; preventClose = null (falsy); fulfilled close promise
-PASS Closing must be propagated forward: starts closed; preventClose = false (falsy); fulfilled close promise
-PASS Closing must be propagated forward: starts closed; preventClose = 0 (falsy); fulfilled close promise
-PASS Closing must be propagated forward: starts closed; preventClose = -0 (falsy); fulfilled close promise
-PASS Closing must be propagated forward: starts closed; preventClose = NaN (falsy); fulfilled close promise
-PASS Closing must be propagated forward: starts closed; preventClose =  (falsy); fulfilled close promise
-PASS Closing must be propagated forward: starts closed; preventClose = true (truthy)
-PASS Closing must be propagated forward: starts closed; preventClose = a (truthy)
-PASS Closing must be propagated forward: starts closed; preventClose = 1 (truthy)
-PASS Closing must be propagated forward: starts closed; preventClose = Symbol() (truthy)
-PASS Closing must be propagated forward: starts closed; preventClose = [object Object] (truthy)
-PASS Closing must be propagated forward: starts closed; preventClose = true, preventAbort = true
-PASS Closing must be propagated forward: starts closed; preventClose = true, preventAbort = true, preventCancel = true
-PASS Closing must be propagated forward: becomes closed asynchronously; preventClose omitted; fulfilled close promise
-PASS Closing must be propagated forward: becomes closed asynchronously; preventClose omitted; rejected close promise
-PASS Closing must be propagated forward: becomes closed asynchronously; preventClose = true
-PASS Closing must be propagated forward: becomes closed asynchronously; dest never desires chunks; preventClose omitted; fulfilled close promise
-PASS Closing must be propagated forward: becomes closed asynchronously; dest never desires chunks; preventClose omitted; rejected close promise
-PASS Closing must be propagated forward: becomes closed asynchronously; dest never desires chunks; preventClose = true
-PASS Closing must be propagated forward: becomes closed after one chunk; preventClose omitted; fulfilled close promise
-PASS Closing must be propagated forward: becomes closed after one chunk; preventClose omitted; rejected close promise
-PASS Closing must be propagated forward: becomes closed after one chunk; preventClose = true
-PASS Closing must be propagated forward: shutdown must not occur until the final write completes
-FAIL Closing must be propagated forward: shutdown must not occur until the final write completes; preventClose = true assert_equals: the pipe must not be complete expected false but got true
-PASS Closing must be propagated forward: shutdown must not occur until the final write completes; becomes closed after first write
-FAIL Closing must be propagated forward: shutdown must not occur until the final write completes; becomes closed after first write; preventClose = true assert_false: the pipe should not complete while the second write is pending expected false got true
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/streams/piping/close-propagation-forward.serviceworker.https-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/streams/piping/close-propagation-forward.serviceworker.https-expected.txt
deleted file mode 100644
index 824b9f2b2..0000000
--- a/third_party/WebKit/LayoutTests/platform/win/external/wpt/streams/piping/close-propagation-forward.serviceworker.https-expected.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-This is a testharness.js-based test.
-PASS Service worker test setup
-PASS Closing must be propagated forward: starts closed; preventClose omitted; fulfilled close promise
-PASS Closing must be propagated forward: starts closed; preventClose omitted; rejected close promise
-PASS Closing must be propagated forward: starts closed; preventClose = undefined (falsy); fulfilled close promise
-PASS Closing must be propagated forward: starts closed; preventClose = null (falsy); fulfilled close promise
-PASS Closing must be propagated forward: starts closed; preventClose = false (falsy); fulfilled close promise
-PASS Closing must be propagated forward: starts closed; preventClose = 0 (falsy); fulfilled close promise
-PASS Closing must be propagated forward: starts closed; preventClose = -0 (falsy); fulfilled close promise
-PASS Closing must be propagated forward: starts closed; preventClose = NaN (falsy); fulfilled close promise
-PASS Closing must be propagated forward: starts closed; preventClose =  (falsy); fulfilled close promise
-PASS Closing must be propagated forward: starts closed; preventClose = true (truthy)
-PASS Closing must be propagated forward: starts closed; preventClose = a (truthy)
-PASS Closing must be propagated forward: starts closed; preventClose = 1 (truthy)
-PASS Closing must be propagated forward: starts closed; preventClose = Symbol() (truthy)
-PASS Closing must be propagated forward: starts closed; preventClose = [object Object] (truthy)
-PASS Closing must be propagated forward: starts closed; preventClose = true, preventAbort = true
-PASS Closing must be propagated forward: starts closed; preventClose = true, preventAbort = true, preventCancel = true
-PASS Closing must be propagated forward: becomes closed asynchronously; preventClose omitted; fulfilled close promise
-PASS Closing must be propagated forward: becomes closed asynchronously; preventClose omitted; rejected close promise
-PASS Closing must be propagated forward: becomes closed asynchronously; preventClose = true
-PASS Closing must be propagated forward: becomes closed asynchronously; dest never desires chunks; preventClose omitted; fulfilled close promise
-PASS Closing must be propagated forward: becomes closed asynchronously; dest never desires chunks; preventClose omitted; rejected close promise
-PASS Closing must be propagated forward: becomes closed asynchronously; dest never desires chunks; preventClose = true
-PASS Closing must be propagated forward: becomes closed after one chunk; preventClose omitted; fulfilled close promise
-PASS Closing must be propagated forward: becomes closed after one chunk; preventClose omitted; rejected close promise
-PASS Closing must be propagated forward: becomes closed after one chunk; preventClose = true
-PASS Closing must be propagated forward: shutdown must not occur until the final write completes
-FAIL Closing must be propagated forward: shutdown must not occur until the final write completes; preventClose = true assert_equals: the pipe must not be complete expected false but got true
-PASS Closing must be propagated forward: shutdown must not occur until the final write completes; becomes closed after first write
-FAIL Closing must be propagated forward: shutdown must not occur until the final write completes; becomes closed after first write; preventClose = true assert_false: the pipe should not complete while the second write is pending expected false got true
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/streams/piping/close-propagation-forward.sharedworker-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/streams/piping/close-propagation-forward.sharedworker-expected.txt
deleted file mode 100644
index 97077ba..0000000
--- a/third_party/WebKit/LayoutTests/platform/win/external/wpt/streams/piping/close-propagation-forward.sharedworker-expected.txt
+++ /dev/null
@@ -1,32 +0,0 @@
-This is a testharness.js-based test.
-PASS Closing must be propagated forward: starts closed; preventClose omitted; fulfilled close promise
-PASS Closing must be propagated forward: starts closed; preventClose omitted; rejected close promise
-PASS Closing must be propagated forward: starts closed; preventClose = undefined (falsy); fulfilled close promise
-PASS Closing must be propagated forward: starts closed; preventClose = null (falsy); fulfilled close promise
-PASS Closing must be propagated forward: starts closed; preventClose = false (falsy); fulfilled close promise
-PASS Closing must be propagated forward: starts closed; preventClose = 0 (falsy); fulfilled close promise
-PASS Closing must be propagated forward: starts closed; preventClose = -0 (falsy); fulfilled close promise
-PASS Closing must be propagated forward: starts closed; preventClose = NaN (falsy); fulfilled close promise
-PASS Closing must be propagated forward: starts closed; preventClose =  (falsy); fulfilled close promise
-PASS Closing must be propagated forward: starts closed; preventClose = true (truthy)
-PASS Closing must be propagated forward: starts closed; preventClose = a (truthy)
-PASS Closing must be propagated forward: starts closed; preventClose = 1 (truthy)
-PASS Closing must be propagated forward: starts closed; preventClose = Symbol() (truthy)
-PASS Closing must be propagated forward: starts closed; preventClose = [object Object] (truthy)
-PASS Closing must be propagated forward: starts closed; preventClose = true, preventAbort = true
-PASS Closing must be propagated forward: starts closed; preventClose = true, preventAbort = true, preventCancel = true
-PASS Closing must be propagated forward: becomes closed asynchronously; preventClose omitted; fulfilled close promise
-PASS Closing must be propagated forward: becomes closed asynchronously; preventClose omitted; rejected close promise
-PASS Closing must be propagated forward: becomes closed asynchronously; preventClose = true
-PASS Closing must be propagated forward: becomes closed asynchronously; dest never desires chunks; preventClose omitted; fulfilled close promise
-PASS Closing must be propagated forward: becomes closed asynchronously; dest never desires chunks; preventClose omitted; rejected close promise
-PASS Closing must be propagated forward: becomes closed asynchronously; dest never desires chunks; preventClose = true
-PASS Closing must be propagated forward: becomes closed after one chunk; preventClose omitted; fulfilled close promise
-PASS Closing must be propagated forward: becomes closed after one chunk; preventClose omitted; rejected close promise
-PASS Closing must be propagated forward: becomes closed after one chunk; preventClose = true
-PASS Closing must be propagated forward: shutdown must not occur until the final write completes
-FAIL Closing must be propagated forward: shutdown must not occur until the final write completes; preventClose = true assert_equals: the pipe must not be complete expected false but got true
-PASS Closing must be propagated forward: shutdown must not occur until the final write completes; becomes closed after first write
-FAIL Closing must be propagated forward: shutdown must not occur until the final write completes; becomes closed after first write; preventClose = true assert_false: the pipe should not complete while the second write is pending expected false got true
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/svg/interfaces-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/svg/interfaces-expected.txt
deleted file mode 100644
index 645b555..0000000
--- a/third_party/WebKit/LayoutTests/platform/win/external/wpt/svg/interfaces-expected.txt
+++ /dev/null
@@ -1,3021 +0,0 @@
-This is a testharness.js-based test.
-Found 3017 tests; 2935 PASS, 82 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS Document interface: attribute rootElement
-PASS Unscopable handled correctly for rootElement property on Document
-PASS SVGElement interface: existence and properties of interface object
-PASS SVGElement interface object length
-PASS SVGElement interface object name
-PASS SVGElement interface: existence and properties of interface prototype object
-PASS SVGElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGElement interface: attribute className
-PASS Unscopable handled correctly for className property on SVGElement
-PASS SVGElement interface: attribute dataset
-PASS Unscopable handled correctly for dataset property on SVGElement
-PASS SVGElement interface: attribute ownerSVGElement
-PASS Unscopable handled correctly for ownerSVGElement property on SVGElement
-PASS SVGElement interface: attribute viewportElement
-PASS Unscopable handled correctly for viewportElement property on SVGElement
-PASS SVGElement interface: attribute tabIndex
-PASS Unscopable handled correctly for tabIndex property on SVGElement
-PASS SVGElement interface: operation focus()
-PASS Unscopable handled correctly for focus() on SVGElement
-PASS SVGElement interface: operation blur()
-PASS Unscopable handled correctly for blur() on SVGElement
-PASS SVGGraphicsElement interface: existence and properties of interface object
-PASS SVGGraphicsElement interface object length
-PASS SVGGraphicsElement interface object name
-PASS SVGGraphicsElement interface: existence and properties of interface prototype object
-PASS SVGGraphicsElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGGraphicsElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGGraphicsElement interface: attribute transform
-PASS Unscopable handled correctly for transform property on SVGGraphicsElement
-PASS SVGGraphicsElement interface: operation getBBox(SVGBoundingBoxOptions)
-PASS Unscopable handled correctly for getBBox(SVGBoundingBoxOptions) on SVGGraphicsElement
-PASS SVGGraphicsElement interface: operation getCTM()
-PASS Unscopable handled correctly for getCTM() on SVGGraphicsElement
-PASS SVGGraphicsElement interface: operation getScreenCTM()
-PASS Unscopable handled correctly for getScreenCTM() on SVGGraphicsElement
-PASS SVGGraphicsElement interface: attribute requiredExtensions
-PASS Unscopable handled correctly for requiredExtensions property on SVGGraphicsElement
-PASS SVGGraphicsElement interface: attribute systemLanguage
-PASS Unscopable handled correctly for systemLanguage property on SVGGraphicsElement
-PASS SVGGeometryElement interface: existence and properties of interface object
-PASS SVGGeometryElement interface object length
-PASS SVGGeometryElement interface object name
-PASS SVGGeometryElement interface: existence and properties of interface prototype object
-PASS SVGGeometryElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGGeometryElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGGeometryElement interface: attribute pathLength
-PASS Unscopable handled correctly for pathLength property on SVGGeometryElement
-PASS SVGGeometryElement interface: operation isPointInFill(DOMPoint)
-PASS Unscopable handled correctly for isPointInFill(DOMPoint) on SVGGeometryElement
-PASS SVGGeometryElement interface: operation isPointInStroke(DOMPoint)
-PASS Unscopable handled correctly for isPointInStroke(DOMPoint) on SVGGeometryElement
-PASS SVGGeometryElement interface: operation getTotalLength()
-PASS Unscopable handled correctly for getTotalLength() on SVGGeometryElement
-PASS SVGGeometryElement interface: operation getPointAtLength(float)
-PASS Unscopable handled correctly for getPointAtLength(float) on SVGGeometryElement
-PASS SVGNumber interface: existence and properties of interface object
-PASS SVGNumber interface object length
-PASS SVGNumber interface object name
-PASS SVGNumber interface: existence and properties of interface prototype object
-PASS SVGNumber interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGNumber interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGNumber interface: attribute value
-PASS Unscopable handled correctly for value property on SVGNumber
-PASS SVGNumber must be primary interface of svg.createSVGNumber()
-PASS Stringification of svg.createSVGNumber()
-PASS SVGNumber interface: svg.createSVGNumber() must inherit property "value" with the proper type
-PASS SVGLength interface: existence and properties of interface object
-PASS SVGLength interface object length
-PASS SVGLength interface object name
-PASS SVGLength interface: existence and properties of interface prototype object
-PASS SVGLength interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGLength interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGLength interface: constant SVG_LENGTHTYPE_UNKNOWN on interface object
-PASS SVGLength interface: constant SVG_LENGTHTYPE_UNKNOWN on interface prototype object
-PASS SVGLength interface: constant SVG_LENGTHTYPE_NUMBER on interface object
-PASS SVGLength interface: constant SVG_LENGTHTYPE_NUMBER on interface prototype object
-PASS SVGLength interface: constant SVG_LENGTHTYPE_PERCENTAGE on interface object
-PASS SVGLength interface: constant SVG_LENGTHTYPE_PERCENTAGE on interface prototype object
-PASS SVGLength interface: constant SVG_LENGTHTYPE_EMS on interface object
-PASS SVGLength interface: constant SVG_LENGTHTYPE_EMS on interface prototype object
-PASS SVGLength interface: constant SVG_LENGTHTYPE_EXS on interface object
-PASS SVGLength interface: constant SVG_LENGTHTYPE_EXS on interface prototype object
-PASS SVGLength interface: constant SVG_LENGTHTYPE_PX on interface object
-PASS SVGLength interface: constant SVG_LENGTHTYPE_PX on interface prototype object
-PASS SVGLength interface: constant SVG_LENGTHTYPE_CM on interface object
-PASS SVGLength interface: constant SVG_LENGTHTYPE_CM on interface prototype object
-PASS SVGLength interface: constant SVG_LENGTHTYPE_MM on interface object
-PASS SVGLength interface: constant SVG_LENGTHTYPE_MM on interface prototype object
-PASS SVGLength interface: constant SVG_LENGTHTYPE_IN on interface object
-PASS SVGLength interface: constant SVG_LENGTHTYPE_IN on interface prototype object
-PASS SVGLength interface: constant SVG_LENGTHTYPE_PT on interface object
-PASS SVGLength interface: constant SVG_LENGTHTYPE_PT on interface prototype object
-PASS SVGLength interface: constant SVG_LENGTHTYPE_PC on interface object
-PASS SVGLength interface: constant SVG_LENGTHTYPE_PC on interface prototype object
-PASS SVGLength interface: attribute unitType
-PASS Unscopable handled correctly for unitType property on SVGLength
-PASS SVGLength interface: attribute value
-PASS Unscopable handled correctly for value property on SVGLength
-PASS SVGLength interface: attribute valueInSpecifiedUnits
-PASS Unscopable handled correctly for valueInSpecifiedUnits property on SVGLength
-PASS SVGLength interface: attribute valueAsString
-PASS Unscopable handled correctly for valueAsString property on SVGLength
-PASS SVGLength interface: operation newValueSpecifiedUnits(unsigned short, float)
-PASS Unscopable handled correctly for newValueSpecifiedUnits(unsigned short, float) on SVGLength
-PASS SVGLength interface: operation convertToSpecifiedUnits(unsigned short)
-PASS Unscopable handled correctly for convertToSpecifiedUnits(unsigned short) on SVGLength
-PASS SVGLength must be primary interface of svg.createSVGLength()
-PASS Stringification of svg.createSVGLength()
-PASS SVGLength interface: svg.createSVGLength() must inherit property "SVG_LENGTHTYPE_UNKNOWN" with the proper type
-PASS SVGLength interface: svg.createSVGLength() must inherit property "SVG_LENGTHTYPE_NUMBER" with the proper type
-PASS SVGLength interface: svg.createSVGLength() must inherit property "SVG_LENGTHTYPE_PERCENTAGE" with the proper type
-PASS SVGLength interface: svg.createSVGLength() must inherit property "SVG_LENGTHTYPE_EMS" with the proper type
-PASS SVGLength interface: svg.createSVGLength() must inherit property "SVG_LENGTHTYPE_EXS" with the proper type
-PASS SVGLength interface: svg.createSVGLength() must inherit property "SVG_LENGTHTYPE_PX" with the proper type
-PASS SVGLength interface: svg.createSVGLength() must inherit property "SVG_LENGTHTYPE_CM" with the proper type
-PASS SVGLength interface: svg.createSVGLength() must inherit property "SVG_LENGTHTYPE_MM" with the proper type
-PASS SVGLength interface: svg.createSVGLength() must inherit property "SVG_LENGTHTYPE_IN" with the proper type
-PASS SVGLength interface: svg.createSVGLength() must inherit property "SVG_LENGTHTYPE_PT" with the proper type
-PASS SVGLength interface: svg.createSVGLength() must inherit property "SVG_LENGTHTYPE_PC" with the proper type
-PASS SVGLength interface: svg.createSVGLength() must inherit property "unitType" with the proper type
-PASS SVGLength interface: svg.createSVGLength() must inherit property "value" with the proper type
-PASS SVGLength interface: svg.createSVGLength() must inherit property "valueInSpecifiedUnits" with the proper type
-PASS SVGLength interface: svg.createSVGLength() must inherit property "valueAsString" with the proper type
-PASS SVGLength interface: svg.createSVGLength() must inherit property "newValueSpecifiedUnits(unsigned short, float)" with the proper type
-PASS SVGLength interface: calling newValueSpecifiedUnits(unsigned short, float) on svg.createSVGLength() with too few arguments must throw TypeError
-PASS SVGLength interface: svg.createSVGLength() must inherit property "convertToSpecifiedUnits(unsigned short)" with the proper type
-PASS SVGLength interface: calling convertToSpecifiedUnits(unsigned short) on svg.createSVGLength() with too few arguments must throw TypeError
-PASS SVGAngle interface: existence and properties of interface object
-PASS SVGAngle interface object length
-PASS SVGAngle interface object name
-PASS SVGAngle interface: existence and properties of interface prototype object
-PASS SVGAngle interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGAngle interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGAngle interface: constant SVG_ANGLETYPE_UNKNOWN on interface object
-PASS SVGAngle interface: constant SVG_ANGLETYPE_UNKNOWN on interface prototype object
-PASS SVGAngle interface: constant SVG_ANGLETYPE_UNSPECIFIED on interface object
-PASS SVGAngle interface: constant SVG_ANGLETYPE_UNSPECIFIED on interface prototype object
-PASS SVGAngle interface: constant SVG_ANGLETYPE_DEG on interface object
-PASS SVGAngle interface: constant SVG_ANGLETYPE_DEG on interface prototype object
-PASS SVGAngle interface: constant SVG_ANGLETYPE_RAD on interface object
-PASS SVGAngle interface: constant SVG_ANGLETYPE_RAD on interface prototype object
-PASS SVGAngle interface: constant SVG_ANGLETYPE_GRAD on interface object
-PASS SVGAngle interface: constant SVG_ANGLETYPE_GRAD on interface prototype object
-PASS SVGAngle interface: attribute unitType
-PASS Unscopable handled correctly for unitType property on SVGAngle
-PASS SVGAngle interface: attribute value
-PASS Unscopable handled correctly for value property on SVGAngle
-PASS SVGAngle interface: attribute valueInSpecifiedUnits
-PASS Unscopable handled correctly for valueInSpecifiedUnits property on SVGAngle
-PASS SVGAngle interface: attribute valueAsString
-PASS Unscopable handled correctly for valueAsString property on SVGAngle
-PASS SVGAngle interface: operation newValueSpecifiedUnits(unsigned short, float)
-PASS Unscopable handled correctly for newValueSpecifiedUnits(unsigned short, float) on SVGAngle
-PASS SVGAngle interface: operation convertToSpecifiedUnits(unsigned short)
-PASS Unscopable handled correctly for convertToSpecifiedUnits(unsigned short) on SVGAngle
-PASS SVGAngle must be primary interface of svg.createSVGAngle()
-PASS Stringification of svg.createSVGAngle()
-PASS SVGAngle interface: svg.createSVGAngle() must inherit property "SVG_ANGLETYPE_UNKNOWN" with the proper type
-PASS SVGAngle interface: svg.createSVGAngle() must inherit property "SVG_ANGLETYPE_UNSPECIFIED" with the proper type
-PASS SVGAngle interface: svg.createSVGAngle() must inherit property "SVG_ANGLETYPE_DEG" with the proper type
-PASS SVGAngle interface: svg.createSVGAngle() must inherit property "SVG_ANGLETYPE_RAD" with the proper type
-PASS SVGAngle interface: svg.createSVGAngle() must inherit property "SVG_ANGLETYPE_GRAD" with the proper type
-PASS SVGAngle interface: svg.createSVGAngle() must inherit property "unitType" with the proper type
-PASS SVGAngle interface: svg.createSVGAngle() must inherit property "value" with the proper type
-PASS SVGAngle interface: svg.createSVGAngle() must inherit property "valueInSpecifiedUnits" with the proper type
-PASS SVGAngle interface: svg.createSVGAngle() must inherit property "valueAsString" with the proper type
-PASS SVGAngle interface: svg.createSVGAngle() must inherit property "newValueSpecifiedUnits(unsigned short, float)" with the proper type
-PASS SVGAngle interface: calling newValueSpecifiedUnits(unsigned short, float) on svg.createSVGAngle() with too few arguments must throw TypeError
-PASS SVGAngle interface: svg.createSVGAngle() must inherit property "convertToSpecifiedUnits(unsigned short)" with the proper type
-PASS SVGAngle interface: calling convertToSpecifiedUnits(unsigned short) on svg.createSVGAngle() with too few arguments must throw TypeError
-PASS SVGNumberList interface: existence and properties of interface object
-PASS SVGNumberList interface object length
-PASS SVGNumberList interface object name
-PASS SVGNumberList interface: existence and properties of interface prototype object
-PASS SVGNumberList interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGNumberList interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGNumberList interface: attribute length
-PASS Unscopable handled correctly for length property on SVGNumberList
-PASS SVGNumberList interface: attribute numberOfItems
-PASS Unscopable handled correctly for numberOfItems property on SVGNumberList
-PASS SVGNumberList interface: operation clear()
-PASS Unscopable handled correctly for clear() on SVGNumberList
-PASS SVGNumberList interface: operation initialize(SVGNumber)
-PASS Unscopable handled correctly for initialize(SVGNumber) on SVGNumberList
-PASS SVGNumberList interface: operation getItem(unsigned long)
-PASS Unscopable handled correctly for getItem(unsigned long) on SVGNumberList
-PASS SVGNumberList interface: operation insertItemBefore(SVGNumber, unsigned long)
-PASS Unscopable handled correctly for insertItemBefore(SVGNumber, unsigned long) on SVGNumberList
-PASS SVGNumberList interface: operation replaceItem(SVGNumber, unsigned long)
-PASS Unscopable handled correctly for replaceItem(SVGNumber, unsigned long) on SVGNumberList
-PASS SVGNumberList interface: operation removeItem(unsigned long)
-PASS Unscopable handled correctly for removeItem(unsigned long) on SVGNumberList
-PASS SVGNumberList interface: operation appendItem(SVGNumber)
-PASS Unscopable handled correctly for appendItem(SVGNumber) on SVGNumberList
-PASS SVGNumberList must be primary interface of text.rotate.baseVal
-PASS Stringification of text.rotate.baseVal
-PASS SVGNumberList interface: text.rotate.baseVal must inherit property "length" with the proper type
-PASS SVGNumberList interface: text.rotate.baseVal must inherit property "numberOfItems" with the proper type
-PASS SVGNumberList interface: text.rotate.baseVal must inherit property "clear()" with the proper type
-PASS SVGNumberList interface: text.rotate.baseVal must inherit property "initialize(SVGNumber)" with the proper type
-PASS SVGNumberList interface: calling initialize(SVGNumber) on text.rotate.baseVal with too few arguments must throw TypeError
-PASS SVGNumberList interface: text.rotate.baseVal must inherit property "getItem(unsigned long)" with the proper type
-PASS SVGNumberList interface: calling getItem(unsigned long) on text.rotate.baseVal with too few arguments must throw TypeError
-PASS SVGNumberList interface: text.rotate.baseVal must inherit property "insertItemBefore(SVGNumber, unsigned long)" with the proper type
-PASS SVGNumberList interface: calling insertItemBefore(SVGNumber, unsigned long) on text.rotate.baseVal with too few arguments must throw TypeError
-PASS SVGNumberList interface: text.rotate.baseVal must inherit property "replaceItem(SVGNumber, unsigned long)" with the proper type
-PASS SVGNumberList interface: calling replaceItem(SVGNumber, unsigned long) on text.rotate.baseVal with too few arguments must throw TypeError
-PASS SVGNumberList interface: text.rotate.baseVal must inherit property "removeItem(unsigned long)" with the proper type
-PASS SVGNumberList interface: calling removeItem(unsigned long) on text.rotate.baseVal with too few arguments must throw TypeError
-PASS SVGNumberList interface: text.rotate.baseVal must inherit property "appendItem(SVGNumber)" with the proper type
-PASS SVGNumberList interface: calling appendItem(SVGNumber) on text.rotate.baseVal with too few arguments must throw TypeError
-PASS SVGLengthList interface: existence and properties of interface object
-PASS SVGLengthList interface object length
-PASS SVGLengthList interface object name
-PASS SVGLengthList interface: existence and properties of interface prototype object
-PASS SVGLengthList interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGLengthList interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGLengthList interface: attribute length
-PASS Unscopable handled correctly for length property on SVGLengthList
-PASS SVGLengthList interface: attribute numberOfItems
-PASS Unscopable handled correctly for numberOfItems property on SVGLengthList
-PASS SVGLengthList interface: operation clear()
-PASS Unscopable handled correctly for clear() on SVGLengthList
-PASS SVGLengthList interface: operation initialize(SVGLength)
-PASS Unscopable handled correctly for initialize(SVGLength) on SVGLengthList
-PASS SVGLengthList interface: operation getItem(unsigned long)
-PASS Unscopable handled correctly for getItem(unsigned long) on SVGLengthList
-PASS SVGLengthList interface: operation insertItemBefore(SVGLength, unsigned long)
-PASS Unscopable handled correctly for insertItemBefore(SVGLength, unsigned long) on SVGLengthList
-PASS SVGLengthList interface: operation replaceItem(SVGLength, unsigned long)
-PASS Unscopable handled correctly for replaceItem(SVGLength, unsigned long) on SVGLengthList
-PASS SVGLengthList interface: operation removeItem(unsigned long)
-PASS Unscopable handled correctly for removeItem(unsigned long) on SVGLengthList
-PASS SVGLengthList interface: operation appendItem(SVGLength)
-PASS Unscopable handled correctly for appendItem(SVGLength) on SVGLengthList
-PASS SVGAnimatedBoolean interface: existence and properties of interface object
-PASS SVGAnimatedBoolean interface object length
-PASS SVGAnimatedBoolean interface object name
-PASS SVGAnimatedBoolean interface: existence and properties of interface prototype object
-PASS SVGAnimatedBoolean interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGAnimatedBoolean interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGAnimatedBoolean interface: attribute baseVal
-PASS Unscopable handled correctly for baseVal property on SVGAnimatedBoolean
-PASS SVGAnimatedBoolean interface: attribute animVal
-PASS Unscopable handled correctly for animVal property on SVGAnimatedBoolean
-PASS SVGAnimatedBoolean must be primary interface of feConvolveMatrix.preserveAlpha
-PASS Stringification of feConvolveMatrix.preserveAlpha
-PASS SVGAnimatedBoolean interface: feConvolveMatrix.preserveAlpha must inherit property "baseVal" with the proper type
-PASS SVGAnimatedBoolean interface: feConvolveMatrix.preserveAlpha must inherit property "animVal" with the proper type
-PASS SVGAnimatedEnumeration interface: existence and properties of interface object
-PASS SVGAnimatedEnumeration interface object length
-PASS SVGAnimatedEnumeration interface object name
-PASS SVGAnimatedEnumeration interface: existence and properties of interface prototype object
-PASS SVGAnimatedEnumeration interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGAnimatedEnumeration interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGAnimatedEnumeration interface: attribute baseVal
-PASS Unscopable handled correctly for baseVal property on SVGAnimatedEnumeration
-PASS SVGAnimatedEnumeration interface: attribute animVal
-PASS Unscopable handled correctly for animVal property on SVGAnimatedEnumeration
-PASS SVGAnimatedEnumeration must be primary interface of text.lengthAdjust
-PASS Stringification of text.lengthAdjust
-PASS SVGAnimatedEnumeration interface: text.lengthAdjust must inherit property "baseVal" with the proper type
-PASS SVGAnimatedEnumeration interface: text.lengthAdjust must inherit property "animVal" with the proper type
-PASS SVGAnimatedInteger interface: existence and properties of interface object
-PASS SVGAnimatedInteger interface object length
-PASS SVGAnimatedInteger interface object name
-PASS SVGAnimatedInteger interface: existence and properties of interface prototype object
-PASS SVGAnimatedInteger interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGAnimatedInteger interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGAnimatedInteger interface: attribute baseVal
-PASS Unscopable handled correctly for baseVal property on SVGAnimatedInteger
-PASS SVGAnimatedInteger interface: attribute animVal
-PASS Unscopable handled correctly for animVal property on SVGAnimatedInteger
-PASS SVGAnimatedInteger must be primary interface of feConvolveMatrix.orderX
-PASS Stringification of feConvolveMatrix.orderX
-PASS SVGAnimatedInteger interface: feConvolveMatrix.orderX must inherit property "baseVal" with the proper type
-PASS SVGAnimatedInteger interface: feConvolveMatrix.orderX must inherit property "animVal" with the proper type
-PASS SVGAnimatedNumber interface: existence and properties of interface object
-PASS SVGAnimatedNumber interface object length
-PASS SVGAnimatedNumber interface object name
-PASS SVGAnimatedNumber interface: existence and properties of interface prototype object
-PASS SVGAnimatedNumber interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGAnimatedNumber interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGAnimatedNumber interface: attribute baseVal
-PASS Unscopable handled correctly for baseVal property on SVGAnimatedNumber
-PASS SVGAnimatedNumber interface: attribute animVal
-PASS Unscopable handled correctly for animVal property on SVGAnimatedNumber
-PASS SVGAnimatedNumber must be primary interface of stop.offset
-PASS Stringification of stop.offset
-PASS SVGAnimatedNumber interface: stop.offset must inherit property "baseVal" with the proper type
-PASS SVGAnimatedNumber interface: stop.offset must inherit property "animVal" with the proper type
-PASS SVGAnimatedLength interface: existence and properties of interface object
-PASS SVGAnimatedLength interface object length
-PASS SVGAnimatedLength interface object name
-PASS SVGAnimatedLength interface: existence and properties of interface prototype object
-PASS SVGAnimatedLength interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGAnimatedLength interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGAnimatedLength interface: attribute baseVal
-PASS Unscopable handled correctly for baseVal property on SVGAnimatedLength
-PASS SVGAnimatedLength interface: attribute animVal
-PASS Unscopable handled correctly for animVal property on SVGAnimatedLength
-PASS SVGAnimatedLength must be primary interface of svg.x
-PASS Stringification of svg.x
-PASS SVGAnimatedLength interface: svg.x must inherit property "baseVal" with the proper type
-PASS SVGAnimatedLength interface: svg.x must inherit property "animVal" with the proper type
-PASS SVGAnimatedAngle interface: existence and properties of interface object
-PASS SVGAnimatedAngle interface object length
-PASS SVGAnimatedAngle interface object name
-PASS SVGAnimatedAngle interface: existence and properties of interface prototype object
-PASS SVGAnimatedAngle interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGAnimatedAngle interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGAnimatedAngle interface: attribute baseVal
-PASS Unscopable handled correctly for baseVal property on SVGAnimatedAngle
-PASS SVGAnimatedAngle interface: attribute animVal
-PASS Unscopable handled correctly for animVal property on SVGAnimatedAngle
-PASS SVGAnimatedAngle must be primary interface of marker.orientAngle
-PASS Stringification of marker.orientAngle
-PASS SVGAnimatedAngle interface: marker.orientAngle must inherit property "baseVal" with the proper type
-PASS SVGAnimatedAngle interface: marker.orientAngle must inherit property "animVal" with the proper type
-PASS SVGAnimatedString interface: existence and properties of interface object
-PASS SVGAnimatedString interface object length
-PASS SVGAnimatedString interface object name
-PASS SVGAnimatedString interface: existence and properties of interface prototype object
-PASS SVGAnimatedString interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGAnimatedString interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGAnimatedString interface: attribute baseVal
-PASS Unscopable handled correctly for baseVal property on SVGAnimatedString
-PASS SVGAnimatedString interface: attribute animVal
-PASS Unscopable handled correctly for animVal property on SVGAnimatedString
-PASS SVGAnimatedString must be primary interface of a.target
-PASS Stringification of a.target
-PASS SVGAnimatedString interface: a.target must inherit property "baseVal" with the proper type
-PASS SVGAnimatedString interface: a.target must inherit property "animVal" with the proper type
-PASS SVGAnimatedRect interface: existence and properties of interface object
-PASS SVGAnimatedRect interface object length
-PASS SVGAnimatedRect interface object name
-PASS SVGAnimatedRect interface: existence and properties of interface prototype object
-PASS SVGAnimatedRect interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGAnimatedRect interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGAnimatedRect interface: attribute baseVal
-PASS Unscopable handled correctly for baseVal property on SVGAnimatedRect
-PASS SVGAnimatedRect interface: attribute animVal
-PASS Unscopable handled correctly for animVal property on SVGAnimatedRect
-PASS SVGAnimatedRect must be primary interface of svg.viewBox
-PASS Stringification of svg.viewBox
-FAIL SVGAnimatedRect interface: svg.viewBox must inherit property "baseVal" with the proper type assert_true: instanceof DOMRect expected true got false
-FAIL SVGAnimatedRect interface: svg.viewBox must inherit property "animVal" with the proper type assert_true: instanceof DOMRectReadOnly expected true got false
-PASS SVGAnimatedNumberList interface: existence and properties of interface object
-PASS SVGAnimatedNumberList interface object length
-PASS SVGAnimatedNumberList interface object name
-PASS SVGAnimatedNumberList interface: existence and properties of interface prototype object
-PASS SVGAnimatedNumberList interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGAnimatedNumberList interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGAnimatedNumberList interface: attribute baseVal
-PASS Unscopable handled correctly for baseVal property on SVGAnimatedNumberList
-PASS SVGAnimatedNumberList interface: attribute animVal
-PASS Unscopable handled correctly for animVal property on SVGAnimatedNumberList
-PASS SVGAnimatedNumberList must be primary interface of text.rotate
-PASS Stringification of text.rotate
-PASS SVGAnimatedNumberList interface: text.rotate must inherit property "baseVal" with the proper type
-PASS SVGAnimatedNumberList interface: text.rotate must inherit property "animVal" with the proper type
-PASS SVGAnimatedLengthList interface: existence and properties of interface object
-PASS SVGAnimatedLengthList interface object length
-PASS SVGAnimatedLengthList interface object name
-PASS SVGAnimatedLengthList interface: existence and properties of interface prototype object
-PASS SVGAnimatedLengthList interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGAnimatedLengthList interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGAnimatedLengthList interface: attribute baseVal
-PASS Unscopable handled correctly for baseVal property on SVGAnimatedLengthList
-PASS SVGAnimatedLengthList interface: attribute animVal
-PASS Unscopable handled correctly for animVal property on SVGAnimatedLengthList
-PASS SVGAnimatedLengthList must be primary interface of text.x
-PASS Stringification of text.x
-PASS SVGAnimatedLengthList interface: text.x must inherit property "baseVal" with the proper type
-PASS SVGAnimatedLengthList interface: text.x must inherit property "animVal" with the proper type
-PASS SVGStringList interface: existence and properties of interface object
-PASS SVGStringList interface object length
-PASS SVGStringList interface object name
-PASS SVGStringList interface: existence and properties of interface prototype object
-PASS SVGStringList interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGStringList interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGStringList interface: attribute length
-PASS Unscopable handled correctly for length property on SVGStringList
-PASS SVGStringList interface: attribute numberOfItems
-PASS Unscopable handled correctly for numberOfItems property on SVGStringList
-PASS SVGStringList interface: operation clear()
-PASS Unscopable handled correctly for clear() on SVGStringList
-PASS SVGStringList interface: operation initialize(DOMString)
-PASS Unscopable handled correctly for initialize(DOMString) on SVGStringList
-PASS SVGStringList interface: operation getItem(unsigned long)
-PASS Unscopable handled correctly for getItem(unsigned long) on SVGStringList
-PASS SVGStringList interface: operation insertItemBefore(DOMString, unsigned long)
-PASS Unscopable handled correctly for insertItemBefore(DOMString, unsigned long) on SVGStringList
-PASS SVGStringList interface: operation replaceItem(DOMString, unsigned long)
-PASS Unscopable handled correctly for replaceItem(DOMString, unsigned long) on SVGStringList
-PASS SVGStringList interface: operation removeItem(unsigned long)
-PASS Unscopable handled correctly for removeItem(unsigned long) on SVGStringList
-PASS SVGStringList interface: operation appendItem(DOMString)
-PASS Unscopable handled correctly for appendItem(DOMString) on SVGStringList
-PASS SVGStringList must be primary interface of a.requiredExtensions
-PASS Stringification of a.requiredExtensions
-PASS SVGStringList interface: a.requiredExtensions must inherit property "length" with the proper type
-PASS SVGStringList interface: a.requiredExtensions must inherit property "numberOfItems" with the proper type
-PASS SVGStringList interface: a.requiredExtensions must inherit property "clear()" with the proper type
-PASS SVGStringList interface: a.requiredExtensions must inherit property "initialize(DOMString)" with the proper type
-PASS SVGStringList interface: calling initialize(DOMString) on a.requiredExtensions with too few arguments must throw TypeError
-PASS SVGStringList interface: a.requiredExtensions must inherit property "getItem(unsigned long)" with the proper type
-PASS SVGStringList interface: calling getItem(unsigned long) on a.requiredExtensions with too few arguments must throw TypeError
-PASS SVGStringList interface: a.requiredExtensions must inherit property "insertItemBefore(DOMString, unsigned long)" with the proper type
-PASS SVGStringList interface: calling insertItemBefore(DOMString, unsigned long) on a.requiredExtensions with too few arguments must throw TypeError
-PASS SVGStringList interface: a.requiredExtensions must inherit property "replaceItem(DOMString, unsigned long)" with the proper type
-PASS SVGStringList interface: calling replaceItem(DOMString, unsigned long) on a.requiredExtensions with too few arguments must throw TypeError
-PASS SVGStringList interface: a.requiredExtensions must inherit property "removeItem(unsigned long)" with the proper type
-PASS SVGStringList interface: calling removeItem(unsigned long) on a.requiredExtensions with too few arguments must throw TypeError
-PASS SVGStringList interface: a.requiredExtensions must inherit property "appendItem(DOMString)" with the proper type
-PASS SVGStringList interface: calling appendItem(DOMString) on a.requiredExtensions with too few arguments must throw TypeError
-PASS SVGUnitTypes interface: existence and properties of interface object
-PASS SVGUnitTypes interface object length
-PASS SVGUnitTypes interface object name
-PASS SVGUnitTypes interface: existence and properties of interface prototype object
-PASS SVGUnitTypes interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGUnitTypes interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGUnitTypes interface: constant SVG_UNIT_TYPE_UNKNOWN on interface object
-PASS SVGUnitTypes interface: constant SVG_UNIT_TYPE_UNKNOWN on interface prototype object
-PASS SVGUnitTypes interface: constant SVG_UNIT_TYPE_USERSPACEONUSE on interface object
-PASS SVGUnitTypes interface: constant SVG_UNIT_TYPE_USERSPACEONUSE on interface prototype object
-PASS SVGUnitTypes interface: constant SVG_UNIT_TYPE_OBJECTBOUNDINGBOX on interface object
-PASS SVGUnitTypes interface: constant SVG_UNIT_TYPE_OBJECTBOUNDINGBOX on interface prototype object
-PASS SVGSVGElement interface: existence and properties of interface object
-PASS SVGSVGElement interface object length
-PASS SVGSVGElement interface object name
-PASS SVGSVGElement interface: existence and properties of interface prototype object
-PASS SVGSVGElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGSVGElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGSVGElement interface: attribute x
-PASS Unscopable handled correctly for x property on SVGSVGElement
-PASS SVGSVGElement interface: attribute y
-PASS Unscopable handled correctly for y property on SVGSVGElement
-PASS SVGSVGElement interface: attribute width
-PASS Unscopable handled correctly for width property on SVGSVGElement
-PASS SVGSVGElement interface: attribute height
-PASS Unscopable handled correctly for height property on SVGSVGElement
-PASS SVGSVGElement interface: attribute currentScale
-PASS Unscopable handled correctly for currentScale property on SVGSVGElement
-PASS SVGSVGElement interface: attribute currentTranslate
-PASS Unscopable handled correctly for currentTranslate property on SVGSVGElement
-PASS SVGSVGElement interface: operation getIntersectionList(DOMRectReadOnly, SVGElement)
-PASS Unscopable handled correctly for getIntersectionList(DOMRectReadOnly, SVGElement) on SVGSVGElement
-PASS SVGSVGElement interface: operation getEnclosureList(DOMRectReadOnly, SVGElement)
-PASS Unscopable handled correctly for getEnclosureList(DOMRectReadOnly, SVGElement) on SVGSVGElement
-PASS SVGSVGElement interface: operation checkIntersection(SVGElement, DOMRectReadOnly)
-PASS Unscopable handled correctly for checkIntersection(SVGElement, DOMRectReadOnly) on SVGSVGElement
-PASS SVGSVGElement interface: operation checkEnclosure(SVGElement, DOMRectReadOnly)
-PASS Unscopable handled correctly for checkEnclosure(SVGElement, DOMRectReadOnly) on SVGSVGElement
-PASS SVGSVGElement interface: operation deselectAll()
-PASS Unscopable handled correctly for deselectAll() on SVGSVGElement
-PASS SVGSVGElement interface: operation createSVGNumber()
-PASS Unscopable handled correctly for createSVGNumber() on SVGSVGElement
-PASS SVGSVGElement interface: operation createSVGLength()
-PASS Unscopable handled correctly for createSVGLength() on SVGSVGElement
-PASS SVGSVGElement interface: operation createSVGAngle()
-PASS Unscopable handled correctly for createSVGAngle() on SVGSVGElement
-PASS SVGSVGElement interface: operation createSVGPoint()
-PASS Unscopable handled correctly for createSVGPoint() on SVGSVGElement
-PASS SVGSVGElement interface: operation createSVGMatrix()
-PASS Unscopable handled correctly for createSVGMatrix() on SVGSVGElement
-PASS SVGSVGElement interface: operation createSVGRect()
-PASS Unscopable handled correctly for createSVGRect() on SVGSVGElement
-PASS SVGSVGElement interface: operation createSVGTransform()
-PASS Unscopable handled correctly for createSVGTransform() on SVGSVGElement
-PASS SVGSVGElement interface: operation createSVGTransformFromMatrix(DOMMatrixReadOnly)
-PASS Unscopable handled correctly for createSVGTransformFromMatrix(DOMMatrixReadOnly) on SVGSVGElement
-PASS SVGSVGElement interface: operation suspendRedraw(unsigned long)
-PASS Unscopable handled correctly for suspendRedraw(unsigned long) on SVGSVGElement
-PASS SVGSVGElement interface: operation unsuspendRedraw(unsigned long)
-PASS Unscopable handled correctly for unsuspendRedraw(unsigned long) on SVGSVGElement
-PASS SVGSVGElement interface: operation unsuspendRedrawAll()
-PASS Unscopable handled correctly for unsuspendRedrawAll() on SVGSVGElement
-PASS SVGSVGElement interface: operation forceRedraw()
-PASS Unscopable handled correctly for forceRedraw() on SVGSVGElement
-PASS SVGSVGElement interface: attribute viewBox
-PASS Unscopable handled correctly for viewBox property on SVGSVGElement
-PASS SVGSVGElement interface: attribute preserveAspectRatio
-PASS Unscopable handled correctly for preserveAspectRatio property on SVGSVGElement
-PASS SVGSVGElement interface: constant SVG_ZOOMANDPAN_UNKNOWN on interface object
-PASS SVGSVGElement interface: constant SVG_ZOOMANDPAN_UNKNOWN on interface prototype object
-PASS SVGSVGElement interface: constant SVG_ZOOMANDPAN_DISABLE on interface object
-PASS SVGSVGElement interface: constant SVG_ZOOMANDPAN_DISABLE on interface prototype object
-PASS SVGSVGElement interface: constant SVG_ZOOMANDPAN_MAGNIFY on interface object
-PASS SVGSVGElement interface: constant SVG_ZOOMANDPAN_MAGNIFY on interface prototype object
-PASS SVGSVGElement interface: attribute zoomAndPan
-PASS Unscopable handled correctly for zoomAndPan property on SVGSVGElement
-PASS SVGSVGElement must be primary interface of svg
-PASS Stringification of svg
-PASS SVGSVGElement interface: svg must inherit property "x" with the proper type
-PASS SVGSVGElement interface: svg must inherit property "y" with the proper type
-PASS SVGSVGElement interface: svg must inherit property "width" with the proper type
-PASS SVGSVGElement interface: svg must inherit property "height" with the proper type
-PASS SVGSVGElement interface: svg must inherit property "currentScale" with the proper type
-FAIL SVGSVGElement interface: svg must inherit property "currentTranslate" with the proper type assert_true: instanceof DOMPointReadOnly expected true got false
-PASS SVGSVGElement interface: svg must inherit property "getIntersectionList(DOMRectReadOnly, SVGElement)" with the proper type
-PASS SVGSVGElement interface: calling getIntersectionList(DOMRectReadOnly, SVGElement) on svg with too few arguments must throw TypeError
-PASS SVGSVGElement interface: svg must inherit property "getEnclosureList(DOMRectReadOnly, SVGElement)" with the proper type
-PASS SVGSVGElement interface: calling getEnclosureList(DOMRectReadOnly, SVGElement) on svg with too few arguments must throw TypeError
-PASS SVGSVGElement interface: svg must inherit property "checkIntersection(SVGElement, DOMRectReadOnly)" with the proper type
-PASS SVGSVGElement interface: calling checkIntersection(SVGElement, DOMRectReadOnly) on svg with too few arguments must throw TypeError
-PASS SVGSVGElement interface: svg must inherit property "checkEnclosure(SVGElement, DOMRectReadOnly)" with the proper type
-PASS SVGSVGElement interface: calling checkEnclosure(SVGElement, DOMRectReadOnly) on svg with too few arguments must throw TypeError
-PASS SVGSVGElement interface: svg must inherit property "deselectAll()" with the proper type
-PASS SVGSVGElement interface: svg must inherit property "createSVGNumber()" with the proper type
-PASS SVGSVGElement interface: svg must inherit property "createSVGLength()" with the proper type
-PASS SVGSVGElement interface: svg must inherit property "createSVGAngle()" with the proper type
-PASS SVGSVGElement interface: svg must inherit property "createSVGPoint()" with the proper type
-PASS SVGSVGElement interface: svg must inherit property "createSVGMatrix()" with the proper type
-PASS SVGSVGElement interface: svg must inherit property "createSVGRect()" with the proper type
-PASS SVGSVGElement interface: svg must inherit property "createSVGTransform()" with the proper type
-PASS SVGSVGElement interface: svg must inherit property "createSVGTransformFromMatrix(DOMMatrixReadOnly)" with the proper type
-PASS SVGSVGElement interface: calling createSVGTransformFromMatrix(DOMMatrixReadOnly) on svg with too few arguments must throw TypeError
-PASS SVGSVGElement interface: svg must inherit property "suspendRedraw(unsigned long)" with the proper type
-PASS SVGSVGElement interface: calling suspendRedraw(unsigned long) on svg with too few arguments must throw TypeError
-PASS SVGSVGElement interface: svg must inherit property "unsuspendRedraw(unsigned long)" with the proper type
-PASS SVGSVGElement interface: calling unsuspendRedraw(unsigned long) on svg with too few arguments must throw TypeError
-PASS SVGSVGElement interface: svg must inherit property "unsuspendRedrawAll()" with the proper type
-PASS SVGSVGElement interface: svg must inherit property "forceRedraw()" with the proper type
-PASS SVGSVGElement interface: svg must inherit property "viewBox" with the proper type
-PASS SVGSVGElement interface: svg must inherit property "preserveAspectRatio" with the proper type
-PASS SVGSVGElement interface: svg must inherit property "SVG_ZOOMANDPAN_UNKNOWN" with the proper type
-PASS SVGSVGElement interface: svg must inherit property "SVG_ZOOMANDPAN_DISABLE" with the proper type
-PASS SVGSVGElement interface: svg must inherit property "SVG_ZOOMANDPAN_MAGNIFY" with the proper type
-PASS SVGSVGElement interface: svg must inherit property "zoomAndPan" with the proper type
-PASS SVGGraphicsElement interface: svg must inherit property "transform" with the proper type
-PASS SVGGraphicsElement interface: svg must inherit property "getBBox(SVGBoundingBoxOptions)" with the proper type
-PASS SVGGraphicsElement interface: calling getBBox(SVGBoundingBoxOptions) on svg with too few arguments must throw TypeError
-PASS SVGGraphicsElement interface: svg must inherit property "getCTM()" with the proper type
-PASS SVGGraphicsElement interface: svg must inherit property "getScreenCTM()" with the proper type
-PASS SVGGraphicsElement interface: svg must inherit property "requiredExtensions" with the proper type
-PASS SVGGraphicsElement interface: svg must inherit property "systemLanguage" with the proper type
-PASS SVGElement interface: svg must inherit property "className" with the proper type
-PASS SVGElement interface: svg must inherit property "dataset" with the proper type
-PASS SVGElement interface: svg must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: svg must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: svg must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: svg must inherit property "focus()" with the proper type
-PASS SVGElement interface: svg must inherit property "blur()" with the proper type
-PASS SVGGElement interface: existence and properties of interface object
-PASS SVGGElement interface object length
-PASS SVGGElement interface object name
-PASS SVGGElement interface: existence and properties of interface prototype object
-PASS SVGGElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGGElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGGElement must be primary interface of g
-PASS Stringification of g
-PASS SVGGraphicsElement interface: g must inherit property "transform" with the proper type
-PASS SVGGraphicsElement interface: g must inherit property "getBBox(SVGBoundingBoxOptions)" with the proper type
-PASS SVGGraphicsElement interface: calling getBBox(SVGBoundingBoxOptions) on g with too few arguments must throw TypeError
-PASS SVGGraphicsElement interface: g must inherit property "getCTM()" with the proper type
-PASS SVGGraphicsElement interface: g must inherit property "getScreenCTM()" with the proper type
-PASS SVGGraphicsElement interface: g must inherit property "requiredExtensions" with the proper type
-PASS SVGGraphicsElement interface: g must inherit property "systemLanguage" with the proper type
-PASS SVGElement interface: g must inherit property "className" with the proper type
-PASS SVGElement interface: g must inherit property "dataset" with the proper type
-PASS SVGElement interface: g must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: g must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: g must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: g must inherit property "focus()" with the proper type
-PASS SVGElement interface: g must inherit property "blur()" with the proper type
-FAIL SVGUnknownElement interface: existence and properties of interface object assert_own_property: self does not have own property "SVGUnknownElement" expected property "SVGUnknownElement" missing
-FAIL SVGUnknownElement interface object length assert_own_property: self does not have own property "SVGUnknownElement" expected property "SVGUnknownElement" missing
-FAIL SVGUnknownElement interface object name assert_own_property: self does not have own property "SVGUnknownElement" expected property "SVGUnknownElement" missing
-FAIL SVGUnknownElement interface: existence and properties of interface prototype object assert_own_property: self does not have own property "SVGUnknownElement" expected property "SVGUnknownElement" missing
-FAIL SVGUnknownElement interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "SVGUnknownElement" expected property "SVGUnknownElement" missing
-FAIL SVGUnknownElement interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "SVGUnknownElement" expected property "SVGUnknownElement" missing
-PASS SVGDefsElement interface: existence and properties of interface object
-PASS SVGDefsElement interface object length
-PASS SVGDefsElement interface object name
-PASS SVGDefsElement interface: existence and properties of interface prototype object
-PASS SVGDefsElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGDefsElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGDefsElement must be primary interface of defs
-PASS Stringification of defs
-PASS SVGGraphicsElement interface: defs must inherit property "transform" with the proper type
-PASS SVGGraphicsElement interface: defs must inherit property "getBBox(SVGBoundingBoxOptions)" with the proper type
-PASS SVGGraphicsElement interface: calling getBBox(SVGBoundingBoxOptions) on defs with too few arguments must throw TypeError
-PASS SVGGraphicsElement interface: defs must inherit property "getCTM()" with the proper type
-PASS SVGGraphicsElement interface: defs must inherit property "getScreenCTM()" with the proper type
-PASS SVGGraphicsElement interface: defs must inherit property "requiredExtensions" with the proper type
-PASS SVGGraphicsElement interface: defs must inherit property "systemLanguage" with the proper type
-PASS SVGElement interface: defs must inherit property "className" with the proper type
-PASS SVGElement interface: defs must inherit property "dataset" with the proper type
-PASS SVGElement interface: defs must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: defs must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: defs must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: defs must inherit property "focus()" with the proper type
-PASS SVGElement interface: defs must inherit property "blur()" with the proper type
-PASS SVGDescElement interface: existence and properties of interface object
-PASS SVGDescElement interface object length
-PASS SVGDescElement interface object name
-PASS SVGDescElement interface: existence and properties of interface prototype object
-PASS SVGDescElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGDescElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGDescElement must be primary interface of Desc
-PASS Stringification of Desc
-PASS SVGElement interface: Desc must inherit property "className" with the proper type
-PASS SVGElement interface: Desc must inherit property "dataset" with the proper type
-PASS SVGElement interface: Desc must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: Desc must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: Desc must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: Desc must inherit property "focus()" with the proper type
-PASS SVGElement interface: Desc must inherit property "blur()" with the proper type
-PASS SVGMetadataElement interface: existence and properties of interface object
-PASS SVGMetadataElement interface object length
-PASS SVGMetadataElement interface object name
-PASS SVGMetadataElement interface: existence and properties of interface prototype object
-PASS SVGMetadataElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGMetadataElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGMetadataElement must be primary interface of metadata
-PASS Stringification of metadata
-PASS SVGElement interface: metadata must inherit property "className" with the proper type
-PASS SVGElement interface: metadata must inherit property "dataset" with the proper type
-PASS SVGElement interface: metadata must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: metadata must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: metadata must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: metadata must inherit property "focus()" with the proper type
-PASS SVGElement interface: metadata must inherit property "blur()" with the proper type
-PASS SVGTitleElement interface: existence and properties of interface object
-PASS SVGTitleElement interface object length
-PASS SVGTitleElement interface object name
-PASS SVGTitleElement interface: existence and properties of interface prototype object
-PASS SVGTitleElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGTitleElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGTitleElement must be primary interface of title
-PASS Stringification of title
-PASS SVGElement interface: title must inherit property "className" with the proper type
-PASS SVGElement interface: title must inherit property "dataset" with the proper type
-PASS SVGElement interface: title must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: title must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: title must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: title must inherit property "focus()" with the proper type
-PASS SVGElement interface: title must inherit property "blur()" with the proper type
-PASS SVGSymbolElement interface: existence and properties of interface object
-PASS SVGSymbolElement interface object length
-PASS SVGSymbolElement interface object name
-PASS SVGSymbolElement interface: existence and properties of interface prototype object
-PASS SVGSymbolElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGSymbolElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGSymbolElement interface: attribute viewBox
-PASS Unscopable handled correctly for viewBox property on SVGSymbolElement
-PASS SVGSymbolElement interface: attribute preserveAspectRatio
-PASS Unscopable handled correctly for preserveAspectRatio property on SVGSymbolElement
-PASS SVGSymbolElement must be primary interface of symbol
-PASS Stringification of symbol
-PASS SVGSymbolElement interface: symbol must inherit property "viewBox" with the proper type
-PASS SVGSymbolElement interface: symbol must inherit property "preserveAspectRatio" with the proper type
-PASS SVGElement interface: symbol must inherit property "className" with the proper type
-PASS SVGElement interface: symbol must inherit property "dataset" with the proper type
-PASS SVGElement interface: symbol must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: symbol must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: symbol must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: symbol must inherit property "focus()" with the proper type
-PASS SVGElement interface: symbol must inherit property "blur()" with the proper type
-PASS SVGUseElement interface: existence and properties of interface object
-PASS SVGUseElement interface object length
-PASS SVGUseElement interface object name
-PASS SVGUseElement interface: existence and properties of interface prototype object
-PASS SVGUseElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGUseElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGUseElement interface: attribute x
-PASS Unscopable handled correctly for x property on SVGUseElement
-PASS SVGUseElement interface: attribute y
-PASS Unscopable handled correctly for y property on SVGUseElement
-PASS SVGUseElement interface: attribute width
-PASS Unscopable handled correctly for width property on SVGUseElement
-PASS SVGUseElement interface: attribute height
-PASS Unscopable handled correctly for height property on SVGUseElement
-PASS SVGUseElement interface: attribute href
-PASS Unscopable handled correctly for href property on SVGUseElement
-PASS SVGUseElement must be primary interface of use
-PASS Stringification of use
-PASS SVGUseElement interface: use must inherit property "x" with the proper type
-PASS SVGUseElement interface: use must inherit property "y" with the proper type
-PASS SVGUseElement interface: use must inherit property "width" with the proper type
-PASS SVGUseElement interface: use must inherit property "height" with the proper type
-PASS SVGUseElement interface: use must inherit property "href" with the proper type
-PASS SVGGraphicsElement interface: use must inherit property "transform" with the proper type
-PASS SVGGraphicsElement interface: use must inherit property "getBBox(SVGBoundingBoxOptions)" with the proper type
-PASS SVGGraphicsElement interface: calling getBBox(SVGBoundingBoxOptions) on use with too few arguments must throw TypeError
-PASS SVGGraphicsElement interface: use must inherit property "getCTM()" with the proper type
-PASS SVGGraphicsElement interface: use must inherit property "getScreenCTM()" with the proper type
-PASS SVGGraphicsElement interface: use must inherit property "requiredExtensions" with the proper type
-PASS SVGGraphicsElement interface: use must inherit property "systemLanguage" with the proper type
-PASS SVGElement interface: use must inherit property "className" with the proper type
-PASS SVGElement interface: use must inherit property "dataset" with the proper type
-PASS SVGElement interface: use must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: use must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: use must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: use must inherit property "focus()" with the proper type
-PASS SVGElement interface: use must inherit property "blur()" with the proper type
-PASS SVGSwitchElement interface: existence and properties of interface object
-PASS SVGSwitchElement interface object length
-PASS SVGSwitchElement interface object name
-PASS SVGSwitchElement interface: existence and properties of interface prototype object
-PASS SVGSwitchElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGSwitchElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGSwitchElement must be primary interface of Switch
-PASS Stringification of Switch
-PASS SVGGraphicsElement interface: Switch must inherit property "transform" with the proper type
-PASS SVGGraphicsElement interface: Switch must inherit property "getBBox(SVGBoundingBoxOptions)" with the proper type
-PASS SVGGraphicsElement interface: calling getBBox(SVGBoundingBoxOptions) on Switch with too few arguments must throw TypeError
-PASS SVGGraphicsElement interface: Switch must inherit property "getCTM()" with the proper type
-PASS SVGGraphicsElement interface: Switch must inherit property "getScreenCTM()" with the proper type
-PASS SVGGraphicsElement interface: Switch must inherit property "requiredExtensions" with the proper type
-PASS SVGGraphicsElement interface: Switch must inherit property "systemLanguage" with the proper type
-PASS SVGElement interface: Switch must inherit property "className" with the proper type
-PASS SVGElement interface: Switch must inherit property "dataset" with the proper type
-PASS SVGElement interface: Switch must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: Switch must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: Switch must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: Switch must inherit property "focus()" with the proper type
-PASS SVGElement interface: Switch must inherit property "blur()" with the proper type
-PASS SVGStyleElement interface: existence and properties of interface object
-PASS SVGStyleElement interface object length
-PASS SVGStyleElement interface object name
-PASS SVGStyleElement interface: existence and properties of interface prototype object
-PASS SVGStyleElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGStyleElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGStyleElement interface: attribute type
-PASS Unscopable handled correctly for type property on SVGStyleElement
-PASS SVGStyleElement interface: attribute media
-PASS Unscopable handled correctly for media property on SVGStyleElement
-PASS SVGStyleElement interface: attribute title
-PASS Unscopable handled correctly for title property on SVGStyleElement
-PASS SVGStyleElement must be primary interface of style
-PASS Stringification of style
-PASS SVGStyleElement interface: style must inherit property "type" with the proper type
-PASS SVGStyleElement interface: style must inherit property "media" with the proper type
-PASS SVGStyleElement interface: style must inherit property "title" with the proper type
-PASS SVGElement interface: style must inherit property "className" with the proper type
-PASS SVGElement interface: style must inherit property "dataset" with the proper type
-PASS SVGElement interface: style must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: style must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: style must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: style must inherit property "focus()" with the proper type
-PASS SVGElement interface: style must inherit property "blur()" with the proper type
-PASS SVGTransform interface: existence and properties of interface object
-PASS SVGTransform interface object length
-PASS SVGTransform interface object name
-PASS SVGTransform interface: existence and properties of interface prototype object
-PASS SVGTransform interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGTransform interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGTransform interface: constant SVG_TRANSFORM_UNKNOWN on interface object
-PASS SVGTransform interface: constant SVG_TRANSFORM_UNKNOWN on interface prototype object
-PASS SVGTransform interface: constant SVG_TRANSFORM_MATRIX on interface object
-PASS SVGTransform interface: constant SVG_TRANSFORM_MATRIX on interface prototype object
-PASS SVGTransform interface: constant SVG_TRANSFORM_TRANSLATE on interface object
-PASS SVGTransform interface: constant SVG_TRANSFORM_TRANSLATE on interface prototype object
-PASS SVGTransform interface: constant SVG_TRANSFORM_SCALE on interface object
-PASS SVGTransform interface: constant SVG_TRANSFORM_SCALE on interface prototype object
-PASS SVGTransform interface: constant SVG_TRANSFORM_ROTATE on interface object
-PASS SVGTransform interface: constant SVG_TRANSFORM_ROTATE on interface prototype object
-PASS SVGTransform interface: constant SVG_TRANSFORM_SKEWX on interface object
-PASS SVGTransform interface: constant SVG_TRANSFORM_SKEWX on interface prototype object
-PASS SVGTransform interface: constant SVG_TRANSFORM_SKEWY on interface object
-PASS SVGTransform interface: constant SVG_TRANSFORM_SKEWY on interface prototype object
-PASS SVGTransform interface: attribute type
-PASS Unscopable handled correctly for type property on SVGTransform
-PASS SVGTransform interface: attribute matrix
-PASS Unscopable handled correctly for matrix property on SVGTransform
-PASS SVGTransform interface: attribute angle
-PASS Unscopable handled correctly for angle property on SVGTransform
-PASS SVGTransform interface: operation setMatrix(DOMMatrixReadOnly)
-PASS Unscopable handled correctly for setMatrix(DOMMatrixReadOnly) on SVGTransform
-PASS SVGTransform interface: operation setTranslate(float, float)
-PASS Unscopable handled correctly for setTranslate(float, float) on SVGTransform
-PASS SVGTransform interface: operation setScale(float, float)
-PASS Unscopable handled correctly for setScale(float, float) on SVGTransform
-PASS SVGTransform interface: operation setRotate(float, float, float)
-PASS Unscopable handled correctly for setRotate(float, float, float) on SVGTransform
-PASS SVGTransform interface: operation setSkewX(float)
-PASS Unscopable handled correctly for setSkewX(float) on SVGTransform
-PASS SVGTransform interface: operation setSkewY(float)
-PASS Unscopable handled correctly for setSkewY(float) on SVGTransform
-PASS SVGTransform must be primary interface of svg.createSVGTransform()
-PASS Stringification of svg.createSVGTransform()
-PASS SVGTransform interface: svg.createSVGTransform() must inherit property "SVG_TRANSFORM_UNKNOWN" with the proper type
-PASS SVGTransform interface: svg.createSVGTransform() must inherit property "SVG_TRANSFORM_MATRIX" with the proper type
-PASS SVGTransform interface: svg.createSVGTransform() must inherit property "SVG_TRANSFORM_TRANSLATE" with the proper type
-PASS SVGTransform interface: svg.createSVGTransform() must inherit property "SVG_TRANSFORM_SCALE" with the proper type
-PASS SVGTransform interface: svg.createSVGTransform() must inherit property "SVG_TRANSFORM_ROTATE" with the proper type
-PASS SVGTransform interface: svg.createSVGTransform() must inherit property "SVG_TRANSFORM_SKEWX" with the proper type
-PASS SVGTransform interface: svg.createSVGTransform() must inherit property "SVG_TRANSFORM_SKEWY" with the proper type
-PASS SVGTransform interface: svg.createSVGTransform() must inherit property "type" with the proper type
-FAIL SVGTransform interface: svg.createSVGTransform() must inherit property "matrix" with the proper type assert_true: instanceof DOMMatrix expected true got false
-PASS SVGTransform interface: svg.createSVGTransform() must inherit property "angle" with the proper type
-PASS SVGTransform interface: svg.createSVGTransform() must inherit property "setMatrix(DOMMatrixReadOnly)" with the proper type
-PASS SVGTransform interface: calling setMatrix(DOMMatrixReadOnly) on svg.createSVGTransform() with too few arguments must throw TypeError
-PASS SVGTransform interface: svg.createSVGTransform() must inherit property "setTranslate(float, float)" with the proper type
-PASS SVGTransform interface: calling setTranslate(float, float) on svg.createSVGTransform() with too few arguments must throw TypeError
-PASS SVGTransform interface: svg.createSVGTransform() must inherit property "setScale(float, float)" with the proper type
-PASS SVGTransform interface: calling setScale(float, float) on svg.createSVGTransform() with too few arguments must throw TypeError
-PASS SVGTransform interface: svg.createSVGTransform() must inherit property "setRotate(float, float, float)" with the proper type
-PASS SVGTransform interface: calling setRotate(float, float, float) on svg.createSVGTransform() with too few arguments must throw TypeError
-PASS SVGTransform interface: svg.createSVGTransform() must inherit property "setSkewX(float)" with the proper type
-PASS SVGTransform interface: calling setSkewX(float) on svg.createSVGTransform() with too few arguments must throw TypeError
-PASS SVGTransform interface: svg.createSVGTransform() must inherit property "setSkewY(float)" with the proper type
-PASS SVGTransform interface: calling setSkewY(float) on svg.createSVGTransform() with too few arguments must throw TypeError
-PASS SVGTransformList interface: existence and properties of interface object
-PASS SVGTransformList interface object length
-PASS SVGTransformList interface object name
-PASS SVGTransformList interface: existence and properties of interface prototype object
-PASS SVGTransformList interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGTransformList interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGTransformList interface: attribute length
-PASS Unscopable handled correctly for length property on SVGTransformList
-PASS SVGTransformList interface: attribute numberOfItems
-PASS Unscopable handled correctly for numberOfItems property on SVGTransformList
-PASS SVGTransformList interface: operation clear()
-PASS Unscopable handled correctly for clear() on SVGTransformList
-PASS SVGTransformList interface: operation initialize(SVGTransform)
-PASS Unscopable handled correctly for initialize(SVGTransform) on SVGTransformList
-PASS SVGTransformList interface: operation getItem(unsigned long)
-PASS Unscopable handled correctly for getItem(unsigned long) on SVGTransformList
-PASS SVGTransformList interface: operation insertItemBefore(SVGTransform, unsigned long)
-PASS Unscopable handled correctly for insertItemBefore(SVGTransform, unsigned long) on SVGTransformList
-PASS SVGTransformList interface: operation replaceItem(SVGTransform, unsigned long)
-PASS Unscopable handled correctly for replaceItem(SVGTransform, unsigned long) on SVGTransformList
-PASS SVGTransformList interface: operation removeItem(unsigned long)
-PASS Unscopable handled correctly for removeItem(unsigned long) on SVGTransformList
-PASS SVGTransformList interface: operation appendItem(SVGTransform)
-PASS Unscopable handled correctly for appendItem(SVGTransform) on SVGTransformList
-PASS SVGTransformList interface: operation createSVGTransformFromMatrix(DOMMatrixReadOnly)
-PASS Unscopable handled correctly for createSVGTransformFromMatrix(DOMMatrixReadOnly) on SVGTransformList
-PASS SVGTransformList interface: operation consolidate()
-PASS Unscopable handled correctly for consolidate() on SVGTransformList
-PASS SVGTransformList must be primary interface of pattern.patternTransform.baseVal
-PASS Stringification of pattern.patternTransform.baseVal
-PASS SVGTransformList interface: pattern.patternTransform.baseVal must inherit property "length" with the proper type
-PASS SVGTransformList interface: pattern.patternTransform.baseVal must inherit property "numberOfItems" with the proper type
-PASS SVGTransformList interface: pattern.patternTransform.baseVal must inherit property "clear()" with the proper type
-PASS SVGTransformList interface: pattern.patternTransform.baseVal must inherit property "initialize(SVGTransform)" with the proper type
-PASS SVGTransformList interface: calling initialize(SVGTransform) on pattern.patternTransform.baseVal with too few arguments must throw TypeError
-PASS SVGTransformList interface: pattern.patternTransform.baseVal must inherit property "getItem(unsigned long)" with the proper type
-PASS SVGTransformList interface: calling getItem(unsigned long) on pattern.patternTransform.baseVal with too few arguments must throw TypeError
-PASS SVGTransformList interface: pattern.patternTransform.baseVal must inherit property "insertItemBefore(SVGTransform, unsigned long)" with the proper type
-PASS SVGTransformList interface: calling insertItemBefore(SVGTransform, unsigned long) on pattern.patternTransform.baseVal with too few arguments must throw TypeError
-PASS SVGTransformList interface: pattern.patternTransform.baseVal must inherit property "replaceItem(SVGTransform, unsigned long)" with the proper type
-PASS SVGTransformList interface: calling replaceItem(SVGTransform, unsigned long) on pattern.patternTransform.baseVal with too few arguments must throw TypeError
-PASS SVGTransformList interface: pattern.patternTransform.baseVal must inherit property "removeItem(unsigned long)" with the proper type
-PASS SVGTransformList interface: calling removeItem(unsigned long) on pattern.patternTransform.baseVal with too few arguments must throw TypeError
-PASS SVGTransformList interface: pattern.patternTransform.baseVal must inherit property "appendItem(SVGTransform)" with the proper type
-PASS SVGTransformList interface: calling appendItem(SVGTransform) on pattern.patternTransform.baseVal with too few arguments must throw TypeError
-PASS SVGTransformList interface: pattern.patternTransform.baseVal must inherit property "createSVGTransformFromMatrix(DOMMatrixReadOnly)" with the proper type
-PASS SVGTransformList interface: calling createSVGTransformFromMatrix(DOMMatrixReadOnly) on pattern.patternTransform.baseVal with too few arguments must throw TypeError
-PASS SVGTransformList interface: pattern.patternTransform.baseVal must inherit property "consolidate()" with the proper type
-PASS SVGAnimatedTransformList interface: existence and properties of interface object
-PASS SVGAnimatedTransformList interface object length
-PASS SVGAnimatedTransformList interface object name
-PASS SVGAnimatedTransformList interface: existence and properties of interface prototype object
-PASS SVGAnimatedTransformList interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGAnimatedTransformList interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGAnimatedTransformList interface: attribute baseVal
-PASS Unscopable handled correctly for baseVal property on SVGAnimatedTransformList
-PASS SVGAnimatedTransformList interface: attribute animVal
-PASS Unscopable handled correctly for animVal property on SVGAnimatedTransformList
-PASS SVGAnimatedTransformList must be primary interface of pattern.patternTransform
-PASS Stringification of pattern.patternTransform
-PASS SVGAnimatedTransformList interface: pattern.patternTransform must inherit property "baseVal" with the proper type
-PASS SVGAnimatedTransformList interface: pattern.patternTransform must inherit property "animVal" with the proper type
-PASS SVGPreserveAspectRatio interface: existence and properties of interface object
-PASS SVGPreserveAspectRatio interface object length
-PASS SVGPreserveAspectRatio interface object name
-PASS SVGPreserveAspectRatio interface: existence and properties of interface prototype object
-PASS SVGPreserveAspectRatio interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGPreserveAspectRatio interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGPreserveAspectRatio interface: constant SVG_PRESERVEASPECTRATIO_UNKNOWN on interface object
-PASS SVGPreserveAspectRatio interface: constant SVG_PRESERVEASPECTRATIO_UNKNOWN on interface prototype object
-PASS SVGPreserveAspectRatio interface: constant SVG_PRESERVEASPECTRATIO_NONE on interface object
-PASS SVGPreserveAspectRatio interface: constant SVG_PRESERVEASPECTRATIO_NONE on interface prototype object
-PASS SVGPreserveAspectRatio interface: constant SVG_PRESERVEASPECTRATIO_XMINYMIN on interface object
-PASS SVGPreserveAspectRatio interface: constant SVG_PRESERVEASPECTRATIO_XMINYMIN on interface prototype object
-PASS SVGPreserveAspectRatio interface: constant SVG_PRESERVEASPECTRATIO_XMIDYMIN on interface object
-PASS SVGPreserveAspectRatio interface: constant SVG_PRESERVEASPECTRATIO_XMIDYMIN on interface prototype object
-PASS SVGPreserveAspectRatio interface: constant SVG_PRESERVEASPECTRATIO_XMAXYMIN on interface object
-PASS SVGPreserveAspectRatio interface: constant SVG_PRESERVEASPECTRATIO_XMAXYMIN on interface prototype object
-PASS SVGPreserveAspectRatio interface: constant SVG_PRESERVEASPECTRATIO_XMINYMID on interface object
-PASS SVGPreserveAspectRatio interface: constant SVG_PRESERVEASPECTRATIO_XMINYMID on interface prototype object
-PASS SVGPreserveAspectRatio interface: constant SVG_PRESERVEASPECTRATIO_XMIDYMID on interface object
-PASS SVGPreserveAspectRatio interface: constant SVG_PRESERVEASPECTRATIO_XMIDYMID on interface prototype object
-PASS SVGPreserveAspectRatio interface: constant SVG_PRESERVEASPECTRATIO_XMAXYMID on interface object
-PASS SVGPreserveAspectRatio interface: constant SVG_PRESERVEASPECTRATIO_XMAXYMID on interface prototype object
-PASS SVGPreserveAspectRatio interface: constant SVG_PRESERVEASPECTRATIO_XMINYMAX on interface object
-PASS SVGPreserveAspectRatio interface: constant SVG_PRESERVEASPECTRATIO_XMINYMAX on interface prototype object
-PASS SVGPreserveAspectRatio interface: constant SVG_PRESERVEASPECTRATIO_XMIDYMAX on interface object
-PASS SVGPreserveAspectRatio interface: constant SVG_PRESERVEASPECTRATIO_XMIDYMAX on interface prototype object
-PASS SVGPreserveAspectRatio interface: constant SVG_PRESERVEASPECTRATIO_XMAXYMAX on interface object
-PASS SVGPreserveAspectRatio interface: constant SVG_PRESERVEASPECTRATIO_XMAXYMAX on interface prototype object
-PASS SVGPreserveAspectRatio interface: constant SVG_MEETORSLICE_UNKNOWN on interface object
-PASS SVGPreserveAspectRatio interface: constant SVG_MEETORSLICE_UNKNOWN on interface prototype object
-PASS SVGPreserveAspectRatio interface: constant SVG_MEETORSLICE_MEET on interface object
-PASS SVGPreserveAspectRatio interface: constant SVG_MEETORSLICE_MEET on interface prototype object
-PASS SVGPreserveAspectRatio interface: constant SVG_MEETORSLICE_SLICE on interface object
-PASS SVGPreserveAspectRatio interface: constant SVG_MEETORSLICE_SLICE on interface prototype object
-PASS SVGPreserveAspectRatio interface: attribute align
-PASS Unscopable handled correctly for align property on SVGPreserveAspectRatio
-PASS SVGPreserveAspectRatio interface: attribute meetOrSlice
-PASS Unscopable handled correctly for meetOrSlice property on SVGPreserveAspectRatio
-PASS SVGPreserveAspectRatio must be primary interface of image.preserveAspectRatio.baseVal
-PASS Stringification of image.preserveAspectRatio.baseVal
-PASS SVGPreserveAspectRatio interface: image.preserveAspectRatio.baseVal must inherit property "SVG_PRESERVEASPECTRATIO_UNKNOWN" with the proper type
-PASS SVGPreserveAspectRatio interface: image.preserveAspectRatio.baseVal must inherit property "SVG_PRESERVEASPECTRATIO_NONE" with the proper type
-PASS SVGPreserveAspectRatio interface: image.preserveAspectRatio.baseVal must inherit property "SVG_PRESERVEASPECTRATIO_XMINYMIN" with the proper type
-PASS SVGPreserveAspectRatio interface: image.preserveAspectRatio.baseVal must inherit property "SVG_PRESERVEASPECTRATIO_XMIDYMIN" with the proper type
-PASS SVGPreserveAspectRatio interface: image.preserveAspectRatio.baseVal must inherit property "SVG_PRESERVEASPECTRATIO_XMAXYMIN" with the proper type
-PASS SVGPreserveAspectRatio interface: image.preserveAspectRatio.baseVal must inherit property "SVG_PRESERVEASPECTRATIO_XMINYMID" with the proper type
-PASS SVGPreserveAspectRatio interface: image.preserveAspectRatio.baseVal must inherit property "SVG_PRESERVEASPECTRATIO_XMIDYMID" with the proper type
-PASS SVGPreserveAspectRatio interface: image.preserveAspectRatio.baseVal must inherit property "SVG_PRESERVEASPECTRATIO_XMAXYMID" with the proper type
-PASS SVGPreserveAspectRatio interface: image.preserveAspectRatio.baseVal must inherit property "SVG_PRESERVEASPECTRATIO_XMINYMAX" with the proper type
-PASS SVGPreserveAspectRatio interface: image.preserveAspectRatio.baseVal must inherit property "SVG_PRESERVEASPECTRATIO_XMIDYMAX" with the proper type
-PASS SVGPreserveAspectRatio interface: image.preserveAspectRatio.baseVal must inherit property "SVG_PRESERVEASPECTRATIO_XMAXYMAX" with the proper type
-PASS SVGPreserveAspectRatio interface: image.preserveAspectRatio.baseVal must inherit property "SVG_MEETORSLICE_UNKNOWN" with the proper type
-PASS SVGPreserveAspectRatio interface: image.preserveAspectRatio.baseVal must inherit property "SVG_MEETORSLICE_MEET" with the proper type
-PASS SVGPreserveAspectRatio interface: image.preserveAspectRatio.baseVal must inherit property "SVG_MEETORSLICE_SLICE" with the proper type
-PASS SVGPreserveAspectRatio interface: image.preserveAspectRatio.baseVal must inherit property "align" with the proper type
-PASS SVGPreserveAspectRatio interface: image.preserveAspectRatio.baseVal must inherit property "meetOrSlice" with the proper type
-PASS SVGAnimatedPreserveAspectRatio interface: existence and properties of interface object
-PASS SVGAnimatedPreserveAspectRatio interface object length
-PASS SVGAnimatedPreserveAspectRatio interface object name
-PASS SVGAnimatedPreserveAspectRatio interface: existence and properties of interface prototype object
-PASS SVGAnimatedPreserveAspectRatio interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGAnimatedPreserveAspectRatio interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGAnimatedPreserveAspectRatio interface: attribute baseVal
-PASS Unscopable handled correctly for baseVal property on SVGAnimatedPreserveAspectRatio
-PASS SVGAnimatedPreserveAspectRatio interface: attribute animVal
-PASS Unscopable handled correctly for animVal property on SVGAnimatedPreserveAspectRatio
-PASS SVGAnimatedPreserveAspectRatio must be primary interface of image.preserveAspectRatio
-PASS Stringification of image.preserveAspectRatio
-PASS SVGAnimatedPreserveAspectRatio interface: image.preserveAspectRatio must inherit property "baseVal" with the proper type
-PASS SVGAnimatedPreserveAspectRatio interface: image.preserveAspectRatio must inherit property "animVal" with the proper type
-PASS SVGPathElement interface: existence and properties of interface object
-PASS SVGPathElement interface object length
-PASS SVGPathElement interface object name
-PASS SVGPathElement interface: existence and properties of interface prototype object
-PASS SVGPathElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGPathElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGPathElement must be primary interface of path
-PASS Stringification of path
-PASS SVGGeometryElement interface: path must inherit property "pathLength" with the proper type
-PASS SVGGeometryElement interface: path must inherit property "isPointInFill(DOMPoint)" with the proper type
-PASS SVGGeometryElement interface: calling isPointInFill(DOMPoint) on path with too few arguments must throw TypeError
-PASS SVGGeometryElement interface: path must inherit property "isPointInStroke(DOMPoint)" with the proper type
-PASS SVGGeometryElement interface: calling isPointInStroke(DOMPoint) on path with too few arguments must throw TypeError
-PASS SVGGeometryElement interface: path must inherit property "getTotalLength()" with the proper type
-PASS SVGGeometryElement interface: path must inherit property "getPointAtLength(float)" with the proper type
-PASS SVGGeometryElement interface: calling getPointAtLength(float) on path with too few arguments must throw TypeError
-PASS SVGGraphicsElement interface: path must inherit property "transform" with the proper type
-PASS SVGGraphicsElement interface: path must inherit property "getBBox(SVGBoundingBoxOptions)" with the proper type
-PASS SVGGraphicsElement interface: calling getBBox(SVGBoundingBoxOptions) on path with too few arguments must throw TypeError
-PASS SVGGraphicsElement interface: path must inherit property "getCTM()" with the proper type
-PASS SVGGraphicsElement interface: path must inherit property "getScreenCTM()" with the proper type
-PASS SVGGraphicsElement interface: path must inherit property "requiredExtensions" with the proper type
-PASS SVGGraphicsElement interface: path must inherit property "systemLanguage" with the proper type
-PASS SVGElement interface: path must inherit property "className" with the proper type
-PASS SVGElement interface: path must inherit property "dataset" with the proper type
-PASS SVGElement interface: path must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: path must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: path must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: path must inherit property "focus()" with the proper type
-PASS SVGElement interface: path must inherit property "blur()" with the proper type
-PASS SVGRectElement interface: existence and properties of interface object
-PASS SVGRectElement interface object length
-PASS SVGRectElement interface object name
-PASS SVGRectElement interface: existence and properties of interface prototype object
-PASS SVGRectElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGRectElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGRectElement interface: attribute x
-PASS Unscopable handled correctly for x property on SVGRectElement
-PASS SVGRectElement interface: attribute y
-PASS Unscopable handled correctly for y property on SVGRectElement
-PASS SVGRectElement interface: attribute width
-PASS Unscopable handled correctly for width property on SVGRectElement
-PASS SVGRectElement interface: attribute height
-PASS Unscopable handled correctly for height property on SVGRectElement
-PASS SVGRectElement interface: attribute rx
-PASS Unscopable handled correctly for rx property on SVGRectElement
-PASS SVGRectElement interface: attribute ry
-PASS Unscopable handled correctly for ry property on SVGRectElement
-PASS SVGRectElement must be primary interface of rect
-PASS Stringification of rect
-PASS SVGRectElement interface: rect must inherit property "x" with the proper type
-PASS SVGRectElement interface: rect must inherit property "y" with the proper type
-PASS SVGRectElement interface: rect must inherit property "width" with the proper type
-PASS SVGRectElement interface: rect must inherit property "height" with the proper type
-PASS SVGRectElement interface: rect must inherit property "rx" with the proper type
-PASS SVGRectElement interface: rect must inherit property "ry" with the proper type
-PASS SVGGeometryElement interface: rect must inherit property "pathLength" with the proper type
-PASS SVGGeometryElement interface: rect must inherit property "isPointInFill(DOMPoint)" with the proper type
-PASS SVGGeometryElement interface: calling isPointInFill(DOMPoint) on rect with too few arguments must throw TypeError
-PASS SVGGeometryElement interface: rect must inherit property "isPointInStroke(DOMPoint)" with the proper type
-PASS SVGGeometryElement interface: calling isPointInStroke(DOMPoint) on rect with too few arguments must throw TypeError
-PASS SVGGeometryElement interface: rect must inherit property "getTotalLength()" with the proper type
-PASS SVGGeometryElement interface: rect must inherit property "getPointAtLength(float)" with the proper type
-PASS SVGGeometryElement interface: calling getPointAtLength(float) on rect with too few arguments must throw TypeError
-PASS SVGGraphicsElement interface: rect must inherit property "transform" with the proper type
-PASS SVGGraphicsElement interface: rect must inherit property "getBBox(SVGBoundingBoxOptions)" with the proper type
-PASS SVGGraphicsElement interface: calling getBBox(SVGBoundingBoxOptions) on rect with too few arguments must throw TypeError
-PASS SVGGraphicsElement interface: rect must inherit property "getCTM()" with the proper type
-PASS SVGGraphicsElement interface: rect must inherit property "getScreenCTM()" with the proper type
-PASS SVGGraphicsElement interface: rect must inherit property "requiredExtensions" with the proper type
-PASS SVGGraphicsElement interface: rect must inherit property "systemLanguage" with the proper type
-PASS SVGElement interface: rect must inherit property "className" with the proper type
-PASS SVGElement interface: rect must inherit property "dataset" with the proper type
-PASS SVGElement interface: rect must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: rect must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: rect must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: rect must inherit property "focus()" with the proper type
-PASS SVGElement interface: rect must inherit property "blur()" with the proper type
-PASS SVGCircleElement interface: existence and properties of interface object
-PASS SVGCircleElement interface object length
-PASS SVGCircleElement interface object name
-PASS SVGCircleElement interface: existence and properties of interface prototype object
-PASS SVGCircleElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGCircleElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGCircleElement interface: attribute cx
-PASS Unscopable handled correctly for cx property on SVGCircleElement
-PASS SVGCircleElement interface: attribute cy
-PASS Unscopable handled correctly for cy property on SVGCircleElement
-PASS SVGCircleElement interface: attribute r
-PASS Unscopable handled correctly for r property on SVGCircleElement
-PASS SVGCircleElement must be primary interface of circle
-PASS Stringification of circle
-PASS SVGCircleElement interface: circle must inherit property "cx" with the proper type
-PASS SVGCircleElement interface: circle must inherit property "cy" with the proper type
-PASS SVGCircleElement interface: circle must inherit property "r" with the proper type
-PASS SVGGeometryElement interface: circle must inherit property "pathLength" with the proper type
-PASS SVGGeometryElement interface: circle must inherit property "isPointInFill(DOMPoint)" with the proper type
-PASS SVGGeometryElement interface: calling isPointInFill(DOMPoint) on circle with too few arguments must throw TypeError
-PASS SVGGeometryElement interface: circle must inherit property "isPointInStroke(DOMPoint)" with the proper type
-PASS SVGGeometryElement interface: calling isPointInStroke(DOMPoint) on circle with too few arguments must throw TypeError
-PASS SVGGeometryElement interface: circle must inherit property "getTotalLength()" with the proper type
-PASS SVGGeometryElement interface: circle must inherit property "getPointAtLength(float)" with the proper type
-PASS SVGGeometryElement interface: calling getPointAtLength(float) on circle with too few arguments must throw TypeError
-PASS SVGGraphicsElement interface: circle must inherit property "transform" with the proper type
-PASS SVGGraphicsElement interface: circle must inherit property "getBBox(SVGBoundingBoxOptions)" with the proper type
-PASS SVGGraphicsElement interface: calling getBBox(SVGBoundingBoxOptions) on circle with too few arguments must throw TypeError
-PASS SVGGraphicsElement interface: circle must inherit property "getCTM()" with the proper type
-PASS SVGGraphicsElement interface: circle must inherit property "getScreenCTM()" with the proper type
-PASS SVGGraphicsElement interface: circle must inherit property "requiredExtensions" with the proper type
-PASS SVGGraphicsElement interface: circle must inherit property "systemLanguage" with the proper type
-PASS SVGElement interface: circle must inherit property "className" with the proper type
-PASS SVGElement interface: circle must inherit property "dataset" with the proper type
-PASS SVGElement interface: circle must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: circle must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: circle must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: circle must inherit property "focus()" with the proper type
-PASS SVGElement interface: circle must inherit property "blur()" with the proper type
-PASS SVGEllipseElement interface: existence and properties of interface object
-PASS SVGEllipseElement interface object length
-PASS SVGEllipseElement interface object name
-PASS SVGEllipseElement interface: existence and properties of interface prototype object
-PASS SVGEllipseElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGEllipseElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGEllipseElement interface: attribute cx
-PASS Unscopable handled correctly for cx property on SVGEllipseElement
-PASS SVGEllipseElement interface: attribute cy
-PASS Unscopable handled correctly for cy property on SVGEllipseElement
-PASS SVGEllipseElement interface: attribute rx
-PASS Unscopable handled correctly for rx property on SVGEllipseElement
-PASS SVGEllipseElement interface: attribute ry
-PASS Unscopable handled correctly for ry property on SVGEllipseElement
-PASS SVGEllipseElement must be primary interface of ellipse
-PASS Stringification of ellipse
-PASS SVGEllipseElement interface: ellipse must inherit property "cx" with the proper type
-PASS SVGEllipseElement interface: ellipse must inherit property "cy" with the proper type
-PASS SVGEllipseElement interface: ellipse must inherit property "rx" with the proper type
-PASS SVGEllipseElement interface: ellipse must inherit property "ry" with the proper type
-PASS SVGGeometryElement interface: ellipse must inherit property "pathLength" with the proper type
-PASS SVGGeometryElement interface: ellipse must inherit property "isPointInFill(DOMPoint)" with the proper type
-PASS SVGGeometryElement interface: calling isPointInFill(DOMPoint) on ellipse with too few arguments must throw TypeError
-PASS SVGGeometryElement interface: ellipse must inherit property "isPointInStroke(DOMPoint)" with the proper type
-PASS SVGGeometryElement interface: calling isPointInStroke(DOMPoint) on ellipse with too few arguments must throw TypeError
-PASS SVGGeometryElement interface: ellipse must inherit property "getTotalLength()" with the proper type
-PASS SVGGeometryElement interface: ellipse must inherit property "getPointAtLength(float)" with the proper type
-PASS SVGGeometryElement interface: calling getPointAtLength(float) on ellipse with too few arguments must throw TypeError
-PASS SVGGraphicsElement interface: ellipse must inherit property "transform" with the proper type
-PASS SVGGraphicsElement interface: ellipse must inherit property "getBBox(SVGBoundingBoxOptions)" with the proper type
-PASS SVGGraphicsElement interface: calling getBBox(SVGBoundingBoxOptions) on ellipse with too few arguments must throw TypeError
-PASS SVGGraphicsElement interface: ellipse must inherit property "getCTM()" with the proper type
-PASS SVGGraphicsElement interface: ellipse must inherit property "getScreenCTM()" with the proper type
-PASS SVGGraphicsElement interface: ellipse must inherit property "requiredExtensions" with the proper type
-PASS SVGGraphicsElement interface: ellipse must inherit property "systemLanguage" with the proper type
-PASS SVGElement interface: ellipse must inherit property "className" with the proper type
-PASS SVGElement interface: ellipse must inherit property "dataset" with the proper type
-PASS SVGElement interface: ellipse must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: ellipse must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: ellipse must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: ellipse must inherit property "focus()" with the proper type
-PASS SVGElement interface: ellipse must inherit property "blur()" with the proper type
-PASS SVGLineElement interface: existence and properties of interface object
-PASS SVGLineElement interface object length
-PASS SVGLineElement interface object name
-PASS SVGLineElement interface: existence and properties of interface prototype object
-PASS SVGLineElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGLineElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGLineElement interface: attribute x1
-PASS Unscopable handled correctly for x1 property on SVGLineElement
-PASS SVGLineElement interface: attribute y1
-PASS Unscopable handled correctly for y1 property on SVGLineElement
-PASS SVGLineElement interface: attribute x2
-PASS Unscopable handled correctly for x2 property on SVGLineElement
-PASS SVGLineElement interface: attribute y2
-PASS Unscopable handled correctly for y2 property on SVGLineElement
-PASS SVGLineElement must be primary interface of line
-PASS Stringification of line
-PASS SVGLineElement interface: line must inherit property "x1" with the proper type
-PASS SVGLineElement interface: line must inherit property "y1" with the proper type
-PASS SVGLineElement interface: line must inherit property "x2" with the proper type
-PASS SVGLineElement interface: line must inherit property "y2" with the proper type
-PASS SVGGeometryElement interface: line must inherit property "pathLength" with the proper type
-PASS SVGGeometryElement interface: line must inherit property "isPointInFill(DOMPoint)" with the proper type
-PASS SVGGeometryElement interface: calling isPointInFill(DOMPoint) on line with too few arguments must throw TypeError
-PASS SVGGeometryElement interface: line must inherit property "isPointInStroke(DOMPoint)" with the proper type
-PASS SVGGeometryElement interface: calling isPointInStroke(DOMPoint) on line with too few arguments must throw TypeError
-PASS SVGGeometryElement interface: line must inherit property "getTotalLength()" with the proper type
-PASS SVGGeometryElement interface: line must inherit property "getPointAtLength(float)" with the proper type
-PASS SVGGeometryElement interface: calling getPointAtLength(float) on line with too few arguments must throw TypeError
-PASS SVGGraphicsElement interface: line must inherit property "transform" with the proper type
-PASS SVGGraphicsElement interface: line must inherit property "getBBox(SVGBoundingBoxOptions)" with the proper type
-PASS SVGGraphicsElement interface: calling getBBox(SVGBoundingBoxOptions) on line with too few arguments must throw TypeError
-PASS SVGGraphicsElement interface: line must inherit property "getCTM()" with the proper type
-PASS SVGGraphicsElement interface: line must inherit property "getScreenCTM()" with the proper type
-PASS SVGGraphicsElement interface: line must inherit property "requiredExtensions" with the proper type
-PASS SVGGraphicsElement interface: line must inherit property "systemLanguage" with the proper type
-PASS SVGElement interface: line must inherit property "className" with the proper type
-PASS SVGElement interface: line must inherit property "dataset" with the proper type
-PASS SVGElement interface: line must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: line must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: line must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: line must inherit property "focus()" with the proper type
-PASS SVGElement interface: line must inherit property "blur()" with the proper type
-PASS SVGPointList interface: existence and properties of interface object
-PASS SVGPointList interface object length
-PASS SVGPointList interface object name
-PASS SVGPointList interface: existence and properties of interface prototype object
-PASS SVGPointList interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGPointList interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGPointList interface: attribute length
-PASS Unscopable handled correctly for length property on SVGPointList
-PASS SVGPointList interface: attribute numberOfItems
-PASS Unscopable handled correctly for numberOfItems property on SVGPointList
-PASS SVGPointList interface: operation clear()
-PASS Unscopable handled correctly for clear() on SVGPointList
-PASS SVGPointList interface: operation initialize(DOMPoint)
-PASS Unscopable handled correctly for initialize(DOMPoint) on SVGPointList
-PASS SVGPointList interface: operation getItem(unsigned long)
-PASS Unscopable handled correctly for getItem(unsigned long) on SVGPointList
-PASS SVGPointList interface: operation insertItemBefore(DOMPoint, unsigned long)
-PASS Unscopable handled correctly for insertItemBefore(DOMPoint, unsigned long) on SVGPointList
-PASS SVGPointList interface: operation replaceItem(DOMPoint, unsigned long)
-PASS Unscopable handled correctly for replaceItem(DOMPoint, unsigned long) on SVGPointList
-PASS SVGPointList interface: operation removeItem(unsigned long)
-PASS Unscopable handled correctly for removeItem(unsigned long) on SVGPointList
-PASS SVGPointList interface: operation appendItem(DOMPoint)
-PASS Unscopable handled correctly for appendItem(DOMPoint) on SVGPointList
-PASS SVGPointList must be primary interface of polygon.points
-PASS Stringification of polygon.points
-PASS SVGPointList interface: polygon.points must inherit property "length" with the proper type
-PASS SVGPointList interface: polygon.points must inherit property "numberOfItems" with the proper type
-PASS SVGPointList interface: polygon.points must inherit property "clear()" with the proper type
-PASS SVGPointList interface: polygon.points must inherit property "initialize(DOMPoint)" with the proper type
-PASS SVGPointList interface: calling initialize(DOMPoint) on polygon.points with too few arguments must throw TypeError
-PASS SVGPointList interface: polygon.points must inherit property "getItem(unsigned long)" with the proper type
-PASS SVGPointList interface: calling getItem(unsigned long) on polygon.points with too few arguments must throw TypeError
-PASS SVGPointList interface: polygon.points must inherit property "insertItemBefore(DOMPoint, unsigned long)" with the proper type
-PASS SVGPointList interface: calling insertItemBefore(DOMPoint, unsigned long) on polygon.points with too few arguments must throw TypeError
-PASS SVGPointList interface: polygon.points must inherit property "replaceItem(DOMPoint, unsigned long)" with the proper type
-PASS SVGPointList interface: calling replaceItem(DOMPoint, unsigned long) on polygon.points with too few arguments must throw TypeError
-PASS SVGPointList interface: polygon.points must inherit property "removeItem(unsigned long)" with the proper type
-PASS SVGPointList interface: calling removeItem(unsigned long) on polygon.points with too few arguments must throw TypeError
-PASS SVGPointList interface: polygon.points must inherit property "appendItem(DOMPoint)" with the proper type
-PASS SVGPointList interface: calling appendItem(DOMPoint) on polygon.points with too few arguments must throw TypeError
-PASS SVGPolylineElement interface: existence and properties of interface object
-PASS SVGPolylineElement interface object length
-PASS SVGPolylineElement interface object name
-PASS SVGPolylineElement interface: existence and properties of interface prototype object
-PASS SVGPolylineElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGPolylineElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGPolylineElement interface: attribute points
-PASS Unscopable handled correctly for points property on SVGPolylineElement
-PASS SVGPolylineElement interface: attribute animatedPoints
-PASS Unscopable handled correctly for animatedPoints property on SVGPolylineElement
-PASS SVGPolylineElement must be primary interface of polyline
-PASS Stringification of polyline
-PASS SVGPolylineElement interface: polyline must inherit property "points" with the proper type
-PASS SVGPolylineElement interface: polyline must inherit property "animatedPoints" with the proper type
-PASS SVGGeometryElement interface: polyline must inherit property "pathLength" with the proper type
-PASS SVGGeometryElement interface: polyline must inherit property "isPointInFill(DOMPoint)" with the proper type
-PASS SVGGeometryElement interface: calling isPointInFill(DOMPoint) on polyline with too few arguments must throw TypeError
-PASS SVGGeometryElement interface: polyline must inherit property "isPointInStroke(DOMPoint)" with the proper type
-PASS SVGGeometryElement interface: calling isPointInStroke(DOMPoint) on polyline with too few arguments must throw TypeError
-PASS SVGGeometryElement interface: polyline must inherit property "getTotalLength()" with the proper type
-PASS SVGGeometryElement interface: polyline must inherit property "getPointAtLength(float)" with the proper type
-PASS SVGGeometryElement interface: calling getPointAtLength(float) on polyline with too few arguments must throw TypeError
-PASS SVGGraphicsElement interface: polyline must inherit property "transform" with the proper type
-PASS SVGGraphicsElement interface: polyline must inherit property "getBBox(SVGBoundingBoxOptions)" with the proper type
-PASS SVGGraphicsElement interface: calling getBBox(SVGBoundingBoxOptions) on polyline with too few arguments must throw TypeError
-PASS SVGGraphicsElement interface: polyline must inherit property "getCTM()" with the proper type
-PASS SVGGraphicsElement interface: polyline must inherit property "getScreenCTM()" with the proper type
-PASS SVGGraphicsElement interface: polyline must inherit property "requiredExtensions" with the proper type
-PASS SVGGraphicsElement interface: polyline must inherit property "systemLanguage" with the proper type
-PASS SVGElement interface: polyline must inherit property "className" with the proper type
-PASS SVGElement interface: polyline must inherit property "dataset" with the proper type
-PASS SVGElement interface: polyline must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: polyline must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: polyline must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: polyline must inherit property "focus()" with the proper type
-PASS SVGElement interface: polyline must inherit property "blur()" with the proper type
-PASS SVGPolygonElement interface: existence and properties of interface object
-PASS SVGPolygonElement interface object length
-PASS SVGPolygonElement interface object name
-PASS SVGPolygonElement interface: existence and properties of interface prototype object
-PASS SVGPolygonElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGPolygonElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGPolygonElement interface: attribute points
-PASS Unscopable handled correctly for points property on SVGPolygonElement
-PASS SVGPolygonElement interface: attribute animatedPoints
-PASS Unscopable handled correctly for animatedPoints property on SVGPolygonElement
-PASS SVGPolygonElement must be primary interface of polygon
-PASS Stringification of polygon
-PASS SVGPolygonElement interface: polygon must inherit property "points" with the proper type
-PASS SVGPolygonElement interface: polygon must inherit property "animatedPoints" with the proper type
-PASS SVGGeometryElement interface: polygon must inherit property "pathLength" with the proper type
-PASS SVGGeometryElement interface: polygon must inherit property "isPointInFill(DOMPoint)" with the proper type
-PASS SVGGeometryElement interface: calling isPointInFill(DOMPoint) on polygon with too few arguments must throw TypeError
-PASS SVGGeometryElement interface: polygon must inherit property "isPointInStroke(DOMPoint)" with the proper type
-PASS SVGGeometryElement interface: calling isPointInStroke(DOMPoint) on polygon with too few arguments must throw TypeError
-PASS SVGGeometryElement interface: polygon must inherit property "getTotalLength()" with the proper type
-PASS SVGGeometryElement interface: polygon must inherit property "getPointAtLength(float)" with the proper type
-PASS SVGGeometryElement interface: calling getPointAtLength(float) on polygon with too few arguments must throw TypeError
-PASS SVGGraphicsElement interface: polygon must inherit property "transform" with the proper type
-PASS SVGGraphicsElement interface: polygon must inherit property "getBBox(SVGBoundingBoxOptions)" with the proper type
-PASS SVGGraphicsElement interface: calling getBBox(SVGBoundingBoxOptions) on polygon with too few arguments must throw TypeError
-PASS SVGGraphicsElement interface: polygon must inherit property "getCTM()" with the proper type
-PASS SVGGraphicsElement interface: polygon must inherit property "getScreenCTM()" with the proper type
-PASS SVGGraphicsElement interface: polygon must inherit property "requiredExtensions" with the proper type
-PASS SVGGraphicsElement interface: polygon must inherit property "systemLanguage" with the proper type
-PASS SVGElement interface: polygon must inherit property "className" with the proper type
-PASS SVGElement interface: polygon must inherit property "dataset" with the proper type
-PASS SVGElement interface: polygon must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: polygon must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: polygon must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: polygon must inherit property "focus()" with the proper type
-PASS SVGElement interface: polygon must inherit property "blur()" with the proper type
-PASS SVGTextContentElement interface: existence and properties of interface object
-PASS SVGTextContentElement interface object length
-PASS SVGTextContentElement interface object name
-PASS SVGTextContentElement interface: existence and properties of interface prototype object
-PASS SVGTextContentElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGTextContentElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGTextContentElement interface: constant LENGTHADJUST_UNKNOWN on interface object
-PASS SVGTextContentElement interface: constant LENGTHADJUST_UNKNOWN on interface prototype object
-PASS SVGTextContentElement interface: constant LENGTHADJUST_SPACING on interface object
-PASS SVGTextContentElement interface: constant LENGTHADJUST_SPACING on interface prototype object
-PASS SVGTextContentElement interface: constant LENGTHADJUST_SPACINGANDGLYPHS on interface object
-PASS SVGTextContentElement interface: constant LENGTHADJUST_SPACINGANDGLYPHS on interface prototype object
-PASS SVGTextContentElement interface: attribute textLength
-PASS Unscopable handled correctly for textLength property on SVGTextContentElement
-PASS SVGTextContentElement interface: attribute lengthAdjust
-PASS Unscopable handled correctly for lengthAdjust property on SVGTextContentElement
-PASS SVGTextContentElement interface: operation getNumberOfChars()
-PASS Unscopable handled correctly for getNumberOfChars() on SVGTextContentElement
-PASS SVGTextContentElement interface: operation getComputedTextLength()
-PASS Unscopable handled correctly for getComputedTextLength() on SVGTextContentElement
-PASS SVGTextContentElement interface: operation getSubStringLength(unsigned long, unsigned long)
-PASS Unscopable handled correctly for getSubStringLength(unsigned long, unsigned long) on SVGTextContentElement
-PASS SVGTextContentElement interface: operation getStartPositionOfChar(unsigned long)
-PASS Unscopable handled correctly for getStartPositionOfChar(unsigned long) on SVGTextContentElement
-PASS SVGTextContentElement interface: operation getEndPositionOfChar(unsigned long)
-PASS Unscopable handled correctly for getEndPositionOfChar(unsigned long) on SVGTextContentElement
-PASS SVGTextContentElement interface: operation getExtentOfChar(unsigned long)
-PASS Unscopable handled correctly for getExtentOfChar(unsigned long) on SVGTextContentElement
-PASS SVGTextContentElement interface: operation getRotationOfChar(unsigned long)
-PASS Unscopable handled correctly for getRotationOfChar(unsigned long) on SVGTextContentElement
-PASS SVGTextContentElement interface: operation getCharNumAtPosition(DOMPoint)
-PASS Unscopable handled correctly for getCharNumAtPosition(DOMPoint) on SVGTextContentElement
-PASS SVGTextContentElement interface: operation selectSubString(unsigned long, unsigned long)
-PASS Unscopable handled correctly for selectSubString(unsigned long, unsigned long) on SVGTextContentElement
-PASS SVGTextPositioningElement interface: existence and properties of interface object
-PASS SVGTextPositioningElement interface object length
-PASS SVGTextPositioningElement interface object name
-PASS SVGTextPositioningElement interface: existence and properties of interface prototype object
-PASS SVGTextPositioningElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGTextPositioningElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGTextPositioningElement interface: attribute x
-PASS Unscopable handled correctly for x property on SVGTextPositioningElement
-PASS SVGTextPositioningElement interface: attribute y
-PASS Unscopable handled correctly for y property on SVGTextPositioningElement
-PASS SVGTextPositioningElement interface: attribute dx
-PASS Unscopable handled correctly for dx property on SVGTextPositioningElement
-PASS SVGTextPositioningElement interface: attribute dy
-PASS Unscopable handled correctly for dy property on SVGTextPositioningElement
-PASS SVGTextPositioningElement interface: attribute rotate
-PASS Unscopable handled correctly for rotate property on SVGTextPositioningElement
-PASS SVGTextElement interface: existence and properties of interface object
-PASS SVGTextElement interface object length
-PASS SVGTextElement interface object name
-PASS SVGTextElement interface: existence and properties of interface prototype object
-PASS SVGTextElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGTextElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGTextElement must be primary interface of text
-PASS Stringification of text
-PASS SVGTextPositioningElement interface: text must inherit property "x" with the proper type
-PASS SVGTextPositioningElement interface: text must inherit property "y" with the proper type
-PASS SVGTextPositioningElement interface: text must inherit property "dx" with the proper type
-PASS SVGTextPositioningElement interface: text must inherit property "dy" with the proper type
-PASS SVGTextPositioningElement interface: text must inherit property "rotate" with the proper type
-PASS SVGTextContentElement interface: text must inherit property "LENGTHADJUST_UNKNOWN" with the proper type
-PASS SVGTextContentElement interface: text must inherit property "LENGTHADJUST_SPACING" with the proper type
-PASS SVGTextContentElement interface: text must inherit property "LENGTHADJUST_SPACINGANDGLYPHS" with the proper type
-PASS SVGTextContentElement interface: text must inherit property "textLength" with the proper type
-PASS SVGTextContentElement interface: text must inherit property "lengthAdjust" with the proper type
-PASS SVGTextContentElement interface: text must inherit property "getNumberOfChars()" with the proper type
-PASS SVGTextContentElement interface: text must inherit property "getComputedTextLength()" with the proper type
-PASS SVGTextContentElement interface: text must inherit property "getSubStringLength(unsigned long, unsigned long)" with the proper type
-PASS SVGTextContentElement interface: calling getSubStringLength(unsigned long, unsigned long) on text with too few arguments must throw TypeError
-PASS SVGTextContentElement interface: text must inherit property "getStartPositionOfChar(unsigned long)" with the proper type
-PASS SVGTextContentElement interface: calling getStartPositionOfChar(unsigned long) on text with too few arguments must throw TypeError
-PASS SVGTextContentElement interface: text must inherit property "getEndPositionOfChar(unsigned long)" with the proper type
-PASS SVGTextContentElement interface: calling getEndPositionOfChar(unsigned long) on text with too few arguments must throw TypeError
-PASS SVGTextContentElement interface: text must inherit property "getExtentOfChar(unsigned long)" with the proper type
-PASS SVGTextContentElement interface: calling getExtentOfChar(unsigned long) on text with too few arguments must throw TypeError
-PASS SVGTextContentElement interface: text must inherit property "getRotationOfChar(unsigned long)" with the proper type
-PASS SVGTextContentElement interface: calling getRotationOfChar(unsigned long) on text with too few arguments must throw TypeError
-PASS SVGTextContentElement interface: text must inherit property "getCharNumAtPosition(DOMPoint)" with the proper type
-PASS SVGTextContentElement interface: calling getCharNumAtPosition(DOMPoint) on text with too few arguments must throw TypeError
-PASS SVGTextContentElement interface: text must inherit property "selectSubString(unsigned long, unsigned long)" with the proper type
-PASS SVGTextContentElement interface: calling selectSubString(unsigned long, unsigned long) on text with too few arguments must throw TypeError
-PASS SVGGraphicsElement interface: text must inherit property "transform" with the proper type
-PASS SVGGraphicsElement interface: text must inherit property "getBBox(SVGBoundingBoxOptions)" with the proper type
-PASS SVGGraphicsElement interface: calling getBBox(SVGBoundingBoxOptions) on text with too few arguments must throw TypeError
-PASS SVGGraphicsElement interface: text must inherit property "getCTM()" with the proper type
-PASS SVGGraphicsElement interface: text must inherit property "getScreenCTM()" with the proper type
-PASS SVGGraphicsElement interface: text must inherit property "requiredExtensions" with the proper type
-PASS SVGGraphicsElement interface: text must inherit property "systemLanguage" with the proper type
-PASS SVGElement interface: text must inherit property "className" with the proper type
-PASS SVGElement interface: text must inherit property "dataset" with the proper type
-PASS SVGElement interface: text must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: text must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: text must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: text must inherit property "focus()" with the proper type
-PASS SVGElement interface: text must inherit property "blur()" with the proper type
-PASS SVGTSpanElement interface: existence and properties of interface object
-PASS SVGTSpanElement interface object length
-PASS SVGTSpanElement interface object name
-PASS SVGTSpanElement interface: existence and properties of interface prototype object
-PASS SVGTSpanElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGTSpanElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGTSpanElement must be primary interface of tspan
-PASS Stringification of tspan
-PASS SVGTextPositioningElement interface: tspan must inherit property "x" with the proper type
-PASS SVGTextPositioningElement interface: tspan must inherit property "y" with the proper type
-PASS SVGTextPositioningElement interface: tspan must inherit property "dx" with the proper type
-PASS SVGTextPositioningElement interface: tspan must inherit property "dy" with the proper type
-PASS SVGTextPositioningElement interface: tspan must inherit property "rotate" with the proper type
-PASS SVGTextContentElement interface: tspan must inherit property "LENGTHADJUST_UNKNOWN" with the proper type
-PASS SVGTextContentElement interface: tspan must inherit property "LENGTHADJUST_SPACING" with the proper type
-PASS SVGTextContentElement interface: tspan must inherit property "LENGTHADJUST_SPACINGANDGLYPHS" with the proper type
-PASS SVGTextContentElement interface: tspan must inherit property "textLength" with the proper type
-PASS SVGTextContentElement interface: tspan must inherit property "lengthAdjust" with the proper type
-PASS SVGTextContentElement interface: tspan must inherit property "getNumberOfChars()" with the proper type
-PASS SVGTextContentElement interface: tspan must inherit property "getComputedTextLength()" with the proper type
-PASS SVGTextContentElement interface: tspan must inherit property "getSubStringLength(unsigned long, unsigned long)" with the proper type
-PASS SVGTextContentElement interface: calling getSubStringLength(unsigned long, unsigned long) on tspan with too few arguments must throw TypeError
-PASS SVGTextContentElement interface: tspan must inherit property "getStartPositionOfChar(unsigned long)" with the proper type
-PASS SVGTextContentElement interface: calling getStartPositionOfChar(unsigned long) on tspan with too few arguments must throw TypeError
-PASS SVGTextContentElement interface: tspan must inherit property "getEndPositionOfChar(unsigned long)" with the proper type
-PASS SVGTextContentElement interface: calling getEndPositionOfChar(unsigned long) on tspan with too few arguments must throw TypeError
-PASS SVGTextContentElement interface: tspan must inherit property "getExtentOfChar(unsigned long)" with the proper type
-PASS SVGTextContentElement interface: calling getExtentOfChar(unsigned long) on tspan with too few arguments must throw TypeError
-PASS SVGTextContentElement interface: tspan must inherit property "getRotationOfChar(unsigned long)" with the proper type
-PASS SVGTextContentElement interface: calling getRotationOfChar(unsigned long) on tspan with too few arguments must throw TypeError
-PASS SVGTextContentElement interface: tspan must inherit property "getCharNumAtPosition(DOMPoint)" with the proper type
-PASS SVGTextContentElement interface: calling getCharNumAtPosition(DOMPoint) on tspan with too few arguments must throw TypeError
-PASS SVGTextContentElement interface: tspan must inherit property "selectSubString(unsigned long, unsigned long)" with the proper type
-PASS SVGTextContentElement interface: calling selectSubString(unsigned long, unsigned long) on tspan with too few arguments must throw TypeError
-PASS SVGGraphicsElement interface: tspan must inherit property "transform" with the proper type
-PASS SVGGraphicsElement interface: tspan must inherit property "getBBox(SVGBoundingBoxOptions)" with the proper type
-PASS SVGGraphicsElement interface: calling getBBox(SVGBoundingBoxOptions) on tspan with too few arguments must throw TypeError
-PASS SVGGraphicsElement interface: tspan must inherit property "getCTM()" with the proper type
-PASS SVGGraphicsElement interface: tspan must inherit property "getScreenCTM()" with the proper type
-PASS SVGGraphicsElement interface: tspan must inherit property "requiredExtensions" with the proper type
-PASS SVGGraphicsElement interface: tspan must inherit property "systemLanguage" with the proper type
-PASS SVGElement interface: tspan must inherit property "className" with the proper type
-PASS SVGElement interface: tspan must inherit property "dataset" with the proper type
-PASS SVGElement interface: tspan must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: tspan must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: tspan must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: tspan must inherit property "focus()" with the proper type
-PASS SVGElement interface: tspan must inherit property "blur()" with the proper type
-PASS SVGTextPathElement interface: existence and properties of interface object
-PASS SVGTextPathElement interface object length
-PASS SVGTextPathElement interface object name
-PASS SVGTextPathElement interface: existence and properties of interface prototype object
-PASS SVGTextPathElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGTextPathElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGTextPathElement interface: constant TEXTPATH_METHODTYPE_UNKNOWN on interface object
-PASS SVGTextPathElement interface: constant TEXTPATH_METHODTYPE_UNKNOWN on interface prototype object
-PASS SVGTextPathElement interface: constant TEXTPATH_METHODTYPE_ALIGN on interface object
-PASS SVGTextPathElement interface: constant TEXTPATH_METHODTYPE_ALIGN on interface prototype object
-PASS SVGTextPathElement interface: constant TEXTPATH_METHODTYPE_STRETCH on interface object
-PASS SVGTextPathElement interface: constant TEXTPATH_METHODTYPE_STRETCH on interface prototype object
-PASS SVGTextPathElement interface: constant TEXTPATH_SPACINGTYPE_UNKNOWN on interface object
-PASS SVGTextPathElement interface: constant TEXTPATH_SPACINGTYPE_UNKNOWN on interface prototype object
-PASS SVGTextPathElement interface: constant TEXTPATH_SPACINGTYPE_AUTO on interface object
-PASS SVGTextPathElement interface: constant TEXTPATH_SPACINGTYPE_AUTO on interface prototype object
-PASS SVGTextPathElement interface: constant TEXTPATH_SPACINGTYPE_EXACT on interface object
-PASS SVGTextPathElement interface: constant TEXTPATH_SPACINGTYPE_EXACT on interface prototype object
-PASS SVGTextPathElement interface: attribute startOffset
-PASS Unscopable handled correctly for startOffset property on SVGTextPathElement
-PASS SVGTextPathElement interface: attribute method
-PASS Unscopable handled correctly for method property on SVGTextPathElement
-PASS SVGTextPathElement interface: attribute spacing
-PASS Unscopable handled correctly for spacing property on SVGTextPathElement
-PASS SVGTextPathElement interface: attribute href
-PASS Unscopable handled correctly for href property on SVGTextPathElement
-PASS SVGTextPathElement must be primary interface of textPath
-PASS Stringification of textPath
-PASS SVGTextPathElement interface: textPath must inherit property "TEXTPATH_METHODTYPE_UNKNOWN" with the proper type
-PASS SVGTextPathElement interface: textPath must inherit property "TEXTPATH_METHODTYPE_ALIGN" with the proper type
-PASS SVGTextPathElement interface: textPath must inherit property "TEXTPATH_METHODTYPE_STRETCH" with the proper type
-PASS SVGTextPathElement interface: textPath must inherit property "TEXTPATH_SPACINGTYPE_UNKNOWN" with the proper type
-PASS SVGTextPathElement interface: textPath must inherit property "TEXTPATH_SPACINGTYPE_AUTO" with the proper type
-PASS SVGTextPathElement interface: textPath must inherit property "TEXTPATH_SPACINGTYPE_EXACT" with the proper type
-PASS SVGTextPathElement interface: textPath must inherit property "startOffset" with the proper type
-PASS SVGTextPathElement interface: textPath must inherit property "method" with the proper type
-PASS SVGTextPathElement interface: textPath must inherit property "spacing" with the proper type
-PASS SVGTextPathElement interface: textPath must inherit property "href" with the proper type
-PASS SVGTextContentElement interface: textPath must inherit property "LENGTHADJUST_UNKNOWN" with the proper type
-PASS SVGTextContentElement interface: textPath must inherit property "LENGTHADJUST_SPACING" with the proper type
-PASS SVGTextContentElement interface: textPath must inherit property "LENGTHADJUST_SPACINGANDGLYPHS" with the proper type
-PASS SVGTextContentElement interface: textPath must inherit property "textLength" with the proper type
-PASS SVGTextContentElement interface: textPath must inherit property "lengthAdjust" with the proper type
-PASS SVGTextContentElement interface: textPath must inherit property "getNumberOfChars()" with the proper type
-PASS SVGTextContentElement interface: textPath must inherit property "getComputedTextLength()" with the proper type
-PASS SVGTextContentElement interface: textPath must inherit property "getSubStringLength(unsigned long, unsigned long)" with the proper type
-PASS SVGTextContentElement interface: calling getSubStringLength(unsigned long, unsigned long) on textPath with too few arguments must throw TypeError
-PASS SVGTextContentElement interface: textPath must inherit property "getStartPositionOfChar(unsigned long)" with the proper type
-PASS SVGTextContentElement interface: calling getStartPositionOfChar(unsigned long) on textPath with too few arguments must throw TypeError
-PASS SVGTextContentElement interface: textPath must inherit property "getEndPositionOfChar(unsigned long)" with the proper type
-PASS SVGTextContentElement interface: calling getEndPositionOfChar(unsigned long) on textPath with too few arguments must throw TypeError
-PASS SVGTextContentElement interface: textPath must inherit property "getExtentOfChar(unsigned long)" with the proper type
-PASS SVGTextContentElement interface: calling getExtentOfChar(unsigned long) on textPath with too few arguments must throw TypeError
-PASS SVGTextContentElement interface: textPath must inherit property "getRotationOfChar(unsigned long)" with the proper type
-PASS SVGTextContentElement interface: calling getRotationOfChar(unsigned long) on textPath with too few arguments must throw TypeError
-PASS SVGTextContentElement interface: textPath must inherit property "getCharNumAtPosition(DOMPoint)" with the proper type
-PASS SVGTextContentElement interface: calling getCharNumAtPosition(DOMPoint) on textPath with too few arguments must throw TypeError
-PASS SVGTextContentElement interface: textPath must inherit property "selectSubString(unsigned long, unsigned long)" with the proper type
-PASS SVGTextContentElement interface: calling selectSubString(unsigned long, unsigned long) on textPath with too few arguments must throw TypeError
-PASS SVGGraphicsElement interface: textPath must inherit property "transform" with the proper type
-PASS SVGGraphicsElement interface: textPath must inherit property "getBBox(SVGBoundingBoxOptions)" with the proper type
-PASS SVGGraphicsElement interface: calling getBBox(SVGBoundingBoxOptions) on textPath with too few arguments must throw TypeError
-PASS SVGGraphicsElement interface: textPath must inherit property "getCTM()" with the proper type
-PASS SVGGraphicsElement interface: textPath must inherit property "getScreenCTM()" with the proper type
-PASS SVGGraphicsElement interface: textPath must inherit property "requiredExtensions" with the proper type
-PASS SVGGraphicsElement interface: textPath must inherit property "systemLanguage" with the proper type
-PASS SVGElement interface: textPath must inherit property "className" with the proper type
-PASS SVGElement interface: textPath must inherit property "dataset" with the proper type
-PASS SVGElement interface: textPath must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: textPath must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: textPath must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: textPath must inherit property "focus()" with the proper type
-PASS SVGElement interface: textPath must inherit property "blur()" with the proper type
-PASS SVGImageElement interface: existence and properties of interface object
-PASS SVGImageElement interface object length
-PASS SVGImageElement interface object name
-PASS SVGImageElement interface: existence and properties of interface prototype object
-PASS SVGImageElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGImageElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGImageElement interface: attribute x
-PASS Unscopable handled correctly for x property on SVGImageElement
-PASS SVGImageElement interface: attribute y
-PASS Unscopable handled correctly for y property on SVGImageElement
-PASS SVGImageElement interface: attribute width
-PASS Unscopable handled correctly for width property on SVGImageElement
-PASS SVGImageElement interface: attribute height
-PASS Unscopable handled correctly for height property on SVGImageElement
-PASS SVGImageElement interface: attribute preserveAspectRatio
-PASS Unscopable handled correctly for preserveAspectRatio property on SVGImageElement
-FAIL SVGImageElement interface: attribute crossOrigin assert_true: The prototype object must have a property "crossOrigin" expected true got false
-PASS Unscopable handled correctly for crossOrigin property on SVGImageElement
-PASS SVGImageElement interface: attribute href
-PASS Unscopable handled correctly for href property on SVGImageElement
-PASS SVGImageElement must be primary interface of image
-PASS Stringification of image
-PASS SVGImageElement interface: image must inherit property "x" with the proper type
-PASS SVGImageElement interface: image must inherit property "y" with the proper type
-PASS SVGImageElement interface: image must inherit property "width" with the proper type
-PASS SVGImageElement interface: image must inherit property "height" with the proper type
-PASS SVGImageElement interface: image must inherit property "preserveAspectRatio" with the proper type
-FAIL SVGImageElement interface: image must inherit property "crossOrigin" with the proper type assert_inherits: property "crossOrigin" not found in prototype chain
-PASS SVGImageElement interface: image must inherit property "href" with the proper type
-PASS SVGGraphicsElement interface: image must inherit property "transform" with the proper type
-PASS SVGGraphicsElement interface: image must inherit property "getBBox(SVGBoundingBoxOptions)" with the proper type
-PASS SVGGraphicsElement interface: calling getBBox(SVGBoundingBoxOptions) on image with too few arguments must throw TypeError
-PASS SVGGraphicsElement interface: image must inherit property "getCTM()" with the proper type
-PASS SVGGraphicsElement interface: image must inherit property "getScreenCTM()" with the proper type
-PASS SVGGraphicsElement interface: image must inherit property "requiredExtensions" with the proper type
-PASS SVGGraphicsElement interface: image must inherit property "systemLanguage" with the proper type
-PASS SVGElement interface: image must inherit property "className" with the proper type
-PASS SVGElement interface: image must inherit property "dataset" with the proper type
-PASS SVGElement interface: image must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: image must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: image must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: image must inherit property "focus()" with the proper type
-PASS SVGElement interface: image must inherit property "blur()" with the proper type
-PASS SVGForeignObjectElement interface: existence and properties of interface object
-PASS SVGForeignObjectElement interface object length
-PASS SVGForeignObjectElement interface object name
-PASS SVGForeignObjectElement interface: existence and properties of interface prototype object
-PASS SVGForeignObjectElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGForeignObjectElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGForeignObjectElement interface: attribute x
-PASS Unscopable handled correctly for x property on SVGForeignObjectElement
-PASS SVGForeignObjectElement interface: attribute y
-PASS Unscopable handled correctly for y property on SVGForeignObjectElement
-PASS SVGForeignObjectElement interface: attribute width
-PASS Unscopable handled correctly for width property on SVGForeignObjectElement
-PASS SVGForeignObjectElement interface: attribute height
-PASS Unscopable handled correctly for height property on SVGForeignObjectElement
-PASS SVGForeignObjectElement must be primary interface of foreignObject
-PASS Stringification of foreignObject
-PASS SVGForeignObjectElement interface: foreignObject must inherit property "x" with the proper type
-PASS SVGForeignObjectElement interface: foreignObject must inherit property "y" with the proper type
-PASS SVGForeignObjectElement interface: foreignObject must inherit property "width" with the proper type
-PASS SVGForeignObjectElement interface: foreignObject must inherit property "height" with the proper type
-PASS SVGGraphicsElement interface: foreignObject must inherit property "transform" with the proper type
-PASS SVGGraphicsElement interface: foreignObject must inherit property "getBBox(SVGBoundingBoxOptions)" with the proper type
-PASS SVGGraphicsElement interface: calling getBBox(SVGBoundingBoxOptions) on foreignObject with too few arguments must throw TypeError
-PASS SVGGraphicsElement interface: foreignObject must inherit property "getCTM()" with the proper type
-PASS SVGGraphicsElement interface: foreignObject must inherit property "getScreenCTM()" with the proper type
-PASS SVGGraphicsElement interface: foreignObject must inherit property "requiredExtensions" with the proper type
-PASS SVGGraphicsElement interface: foreignObject must inherit property "systemLanguage" with the proper type
-PASS SVGElement interface: foreignObject must inherit property "className" with the proper type
-PASS SVGElement interface: foreignObject must inherit property "dataset" with the proper type
-PASS SVGElement interface: foreignObject must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: foreignObject must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: foreignObject must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: foreignObject must inherit property "focus()" with the proper type
-PASS SVGElement interface: foreignObject must inherit property "blur()" with the proper type
-PASS SVGMarkerElement interface: existence and properties of interface object
-PASS SVGMarkerElement interface object length
-PASS SVGMarkerElement interface object name
-PASS SVGMarkerElement interface: existence and properties of interface prototype object
-PASS SVGMarkerElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGMarkerElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGMarkerElement interface: constant SVG_MARKERUNITS_UNKNOWN on interface object
-PASS SVGMarkerElement interface: constant SVG_MARKERUNITS_UNKNOWN on interface prototype object
-PASS SVGMarkerElement interface: constant SVG_MARKERUNITS_USERSPACEONUSE on interface object
-PASS SVGMarkerElement interface: constant SVG_MARKERUNITS_USERSPACEONUSE on interface prototype object
-PASS SVGMarkerElement interface: constant SVG_MARKERUNITS_STROKEWIDTH on interface object
-PASS SVGMarkerElement interface: constant SVG_MARKERUNITS_STROKEWIDTH on interface prototype object
-PASS SVGMarkerElement interface: constant SVG_MARKER_ORIENT_UNKNOWN on interface object
-PASS SVGMarkerElement interface: constant SVG_MARKER_ORIENT_UNKNOWN on interface prototype object
-PASS SVGMarkerElement interface: constant SVG_MARKER_ORIENT_AUTO on interface object
-PASS SVGMarkerElement interface: constant SVG_MARKER_ORIENT_AUTO on interface prototype object
-PASS SVGMarkerElement interface: constant SVG_MARKER_ORIENT_ANGLE on interface object
-PASS SVGMarkerElement interface: constant SVG_MARKER_ORIENT_ANGLE on interface prototype object
-PASS SVGMarkerElement interface: attribute refX
-PASS Unscopable handled correctly for refX property on SVGMarkerElement
-PASS SVGMarkerElement interface: attribute refY
-PASS Unscopable handled correctly for refY property on SVGMarkerElement
-PASS SVGMarkerElement interface: attribute markerUnits
-PASS Unscopable handled correctly for markerUnits property on SVGMarkerElement
-PASS SVGMarkerElement interface: attribute markerWidth
-PASS Unscopable handled correctly for markerWidth property on SVGMarkerElement
-PASS SVGMarkerElement interface: attribute markerHeight
-PASS Unscopable handled correctly for markerHeight property on SVGMarkerElement
-PASS SVGMarkerElement interface: attribute orientType
-PASS Unscopable handled correctly for orientType property on SVGMarkerElement
-PASS SVGMarkerElement interface: attribute orientAngle
-PASS Unscopable handled correctly for orientAngle property on SVGMarkerElement
-FAIL SVGMarkerElement interface: attribute orient assert_true: The prototype object must have a property "orient" expected true got false
-PASS Unscopable handled correctly for orient property on SVGMarkerElement
-PASS SVGMarkerElement interface: operation setOrientToAuto()
-PASS Unscopable handled correctly for setOrientToAuto() on SVGMarkerElement
-PASS SVGMarkerElement interface: operation setOrientToAngle(SVGAngle)
-PASS Unscopable handled correctly for setOrientToAngle(SVGAngle) on SVGMarkerElement
-PASS SVGMarkerElement interface: attribute viewBox
-PASS Unscopable handled correctly for viewBox property on SVGMarkerElement
-PASS SVGMarkerElement interface: attribute preserveAspectRatio
-PASS Unscopable handled correctly for preserveAspectRatio property on SVGMarkerElement
-PASS SVGMarkerElement must be primary interface of marker
-PASS Stringification of marker
-PASS SVGMarkerElement interface: marker must inherit property "SVG_MARKERUNITS_UNKNOWN" with the proper type
-PASS SVGMarkerElement interface: marker must inherit property "SVG_MARKERUNITS_USERSPACEONUSE" with the proper type
-PASS SVGMarkerElement interface: marker must inherit property "SVG_MARKERUNITS_STROKEWIDTH" with the proper type
-PASS SVGMarkerElement interface: marker must inherit property "SVG_MARKER_ORIENT_UNKNOWN" with the proper type
-PASS SVGMarkerElement interface: marker must inherit property "SVG_MARKER_ORIENT_AUTO" with the proper type
-PASS SVGMarkerElement interface: marker must inherit property "SVG_MARKER_ORIENT_ANGLE" with the proper type
-PASS SVGMarkerElement interface: marker must inherit property "refX" with the proper type
-PASS SVGMarkerElement interface: marker must inherit property "refY" with the proper type
-PASS SVGMarkerElement interface: marker must inherit property "markerUnits" with the proper type
-PASS SVGMarkerElement interface: marker must inherit property "markerWidth" with the proper type
-PASS SVGMarkerElement interface: marker must inherit property "markerHeight" with the proper type
-PASS SVGMarkerElement interface: marker must inherit property "orientType" with the proper type
-PASS SVGMarkerElement interface: marker must inherit property "orientAngle" with the proper type
-FAIL SVGMarkerElement interface: marker must inherit property "orient" with the proper type assert_inherits: property "orient" not found in prototype chain
-PASS SVGMarkerElement interface: marker must inherit property "setOrientToAuto()" with the proper type
-PASS SVGMarkerElement interface: marker must inherit property "setOrientToAngle(SVGAngle)" with the proper type
-PASS SVGMarkerElement interface: calling setOrientToAngle(SVGAngle) on marker with too few arguments must throw TypeError
-PASS SVGMarkerElement interface: marker must inherit property "viewBox" with the proper type
-PASS SVGMarkerElement interface: marker must inherit property "preserveAspectRatio" with the proper type
-PASS SVGElement interface: marker must inherit property "className" with the proper type
-PASS SVGElement interface: marker must inherit property "dataset" with the proper type
-PASS SVGElement interface: marker must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: marker must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: marker must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: marker must inherit property "focus()" with the proper type
-PASS SVGElement interface: marker must inherit property "blur()" with the proper type
-FAIL SVGSolidcolorElement interface: existence and properties of interface object assert_own_property: self does not have own property "SVGSolidcolorElement" expected property "SVGSolidcolorElement" missing
-FAIL SVGSolidcolorElement interface object length assert_own_property: self does not have own property "SVGSolidcolorElement" expected property "SVGSolidcolorElement" missing
-FAIL SVGSolidcolorElement interface object name assert_own_property: self does not have own property "SVGSolidcolorElement" expected property "SVGSolidcolorElement" missing
-FAIL SVGSolidcolorElement interface: existence and properties of interface prototype object assert_own_property: self does not have own property "SVGSolidcolorElement" expected property "SVGSolidcolorElement" missing
-FAIL SVGSolidcolorElement interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "SVGSolidcolorElement" expected property "SVGSolidcolorElement" missing
-FAIL SVGSolidcolorElement interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "SVGSolidcolorElement" expected property "SVGSolidcolorElement" missing
-PASS SVGGradientElement interface: existence and properties of interface object
-PASS SVGGradientElement interface object length
-PASS SVGGradientElement interface object name
-PASS SVGGradientElement interface: existence and properties of interface prototype object
-PASS SVGGradientElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGGradientElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGGradientElement interface: constant SVG_SPREADMETHOD_UNKNOWN on interface object
-PASS SVGGradientElement interface: constant SVG_SPREADMETHOD_UNKNOWN on interface prototype object
-PASS SVGGradientElement interface: constant SVG_SPREADMETHOD_PAD on interface object
-PASS SVGGradientElement interface: constant SVG_SPREADMETHOD_PAD on interface prototype object
-PASS SVGGradientElement interface: constant SVG_SPREADMETHOD_REFLECT on interface object
-PASS SVGGradientElement interface: constant SVG_SPREADMETHOD_REFLECT on interface prototype object
-PASS SVGGradientElement interface: constant SVG_SPREADMETHOD_REPEAT on interface object
-PASS SVGGradientElement interface: constant SVG_SPREADMETHOD_REPEAT on interface prototype object
-PASS SVGGradientElement interface: attribute gradientUnits
-PASS Unscopable handled correctly for gradientUnits property on SVGGradientElement
-PASS SVGGradientElement interface: attribute gradientTransform
-PASS Unscopable handled correctly for gradientTransform property on SVGGradientElement
-PASS SVGGradientElement interface: attribute spreadMethod
-PASS Unscopable handled correctly for spreadMethod property on SVGGradientElement
-PASS SVGGradientElement interface: attribute href
-PASS Unscopable handled correctly for href property on SVGGradientElement
-PASS SVGLinearGradientElement interface: existence and properties of interface object
-PASS SVGLinearGradientElement interface object length
-PASS SVGLinearGradientElement interface object name
-PASS SVGLinearGradientElement interface: existence and properties of interface prototype object
-PASS SVGLinearGradientElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGLinearGradientElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGLinearGradientElement interface: attribute x1
-PASS Unscopable handled correctly for x1 property on SVGLinearGradientElement
-PASS SVGLinearGradientElement interface: attribute y1
-PASS Unscopable handled correctly for y1 property on SVGLinearGradientElement
-PASS SVGLinearGradientElement interface: attribute x2
-PASS Unscopable handled correctly for x2 property on SVGLinearGradientElement
-PASS SVGLinearGradientElement interface: attribute y2
-PASS Unscopable handled correctly for y2 property on SVGLinearGradientElement
-PASS SVGLinearGradientElement must be primary interface of linearGradient
-PASS Stringification of linearGradient
-PASS SVGLinearGradientElement interface: linearGradient must inherit property "x1" with the proper type
-PASS SVGLinearGradientElement interface: linearGradient must inherit property "y1" with the proper type
-PASS SVGLinearGradientElement interface: linearGradient must inherit property "x2" with the proper type
-PASS SVGLinearGradientElement interface: linearGradient must inherit property "y2" with the proper type
-PASS SVGGradientElement interface: linearGradient must inherit property "SVG_SPREADMETHOD_UNKNOWN" with the proper type
-PASS SVGGradientElement interface: linearGradient must inherit property "SVG_SPREADMETHOD_PAD" with the proper type
-PASS SVGGradientElement interface: linearGradient must inherit property "SVG_SPREADMETHOD_REFLECT" with the proper type
-PASS SVGGradientElement interface: linearGradient must inherit property "SVG_SPREADMETHOD_REPEAT" with the proper type
-PASS SVGGradientElement interface: linearGradient must inherit property "gradientUnits" with the proper type
-PASS SVGGradientElement interface: linearGradient must inherit property "gradientTransform" with the proper type
-PASS SVGGradientElement interface: linearGradient must inherit property "spreadMethod" with the proper type
-PASS SVGGradientElement interface: linearGradient must inherit property "href" with the proper type
-PASS SVGElement interface: linearGradient must inherit property "className" with the proper type
-PASS SVGElement interface: linearGradient must inherit property "dataset" with the proper type
-PASS SVGElement interface: linearGradient must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: linearGradient must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: linearGradient must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: linearGradient must inherit property "focus()" with the proper type
-PASS SVGElement interface: linearGradient must inherit property "blur()" with the proper type
-PASS SVGRadialGradientElement interface: existence and properties of interface object
-PASS SVGRadialGradientElement interface object length
-PASS SVGRadialGradientElement interface object name
-PASS SVGRadialGradientElement interface: existence and properties of interface prototype object
-PASS SVGRadialGradientElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGRadialGradientElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGRadialGradientElement interface: attribute cx
-PASS Unscopable handled correctly for cx property on SVGRadialGradientElement
-PASS SVGRadialGradientElement interface: attribute cy
-PASS Unscopable handled correctly for cy property on SVGRadialGradientElement
-PASS SVGRadialGradientElement interface: attribute r
-PASS Unscopable handled correctly for r property on SVGRadialGradientElement
-PASS SVGRadialGradientElement interface: attribute fx
-PASS Unscopable handled correctly for fx property on SVGRadialGradientElement
-PASS SVGRadialGradientElement interface: attribute fy
-PASS Unscopable handled correctly for fy property on SVGRadialGradientElement
-PASS SVGRadialGradientElement interface: attribute fr
-PASS Unscopable handled correctly for fr property on SVGRadialGradientElement
-PASS SVGRadialGradientElement must be primary interface of radialGradient
-PASS Stringification of radialGradient
-PASS SVGRadialGradientElement interface: radialGradient must inherit property "cx" with the proper type
-PASS SVGRadialGradientElement interface: radialGradient must inherit property "cy" with the proper type
-PASS SVGRadialGradientElement interface: radialGradient must inherit property "r" with the proper type
-PASS SVGRadialGradientElement interface: radialGradient must inherit property "fx" with the proper type
-PASS SVGRadialGradientElement interface: radialGradient must inherit property "fy" with the proper type
-PASS SVGRadialGradientElement interface: radialGradient must inherit property "fr" with the proper type
-PASS SVGGradientElement interface: radialGradient must inherit property "SVG_SPREADMETHOD_UNKNOWN" with the proper type
-PASS SVGGradientElement interface: radialGradient must inherit property "SVG_SPREADMETHOD_PAD" with the proper type
-PASS SVGGradientElement interface: radialGradient must inherit property "SVG_SPREADMETHOD_REFLECT" with the proper type
-PASS SVGGradientElement interface: radialGradient must inherit property "SVG_SPREADMETHOD_REPEAT" with the proper type
-PASS SVGGradientElement interface: radialGradient must inherit property "gradientUnits" with the proper type
-PASS SVGGradientElement interface: radialGradient must inherit property "gradientTransform" with the proper type
-PASS SVGGradientElement interface: radialGradient must inherit property "spreadMethod" with the proper type
-PASS SVGGradientElement interface: radialGradient must inherit property "href" with the proper type
-PASS SVGElement interface: radialGradient must inherit property "className" with the proper type
-PASS SVGElement interface: radialGradient must inherit property "dataset" with the proper type
-PASS SVGElement interface: radialGradient must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: radialGradient must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: radialGradient must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: radialGradient must inherit property "focus()" with the proper type
-PASS SVGElement interface: radialGradient must inherit property "blur()" with the proper type
-FAIL SVGMeshElement interface: existence and properties of interface object assert_own_property: self does not have own property "SVGMeshElement" expected property "SVGMeshElement" missing
-FAIL SVGMeshElement interface object length assert_own_property: self does not have own property "SVGMeshElement" expected property "SVGMeshElement" missing
-FAIL SVGMeshElement interface object name assert_own_property: self does not have own property "SVGMeshElement" expected property "SVGMeshElement" missing
-FAIL SVGMeshElement interface: existence and properties of interface prototype object assert_own_property: self does not have own property "SVGMeshElement" expected property "SVGMeshElement" missing
-FAIL SVGMeshElement interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "SVGMeshElement" expected property "SVGMeshElement" missing
-FAIL SVGMeshElement interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "SVGMeshElement" expected property "SVGMeshElement" missing
-FAIL SVGMeshrowElement interface: existence and properties of interface object assert_own_property: self does not have own property "SVGMeshrowElement" expected property "SVGMeshrowElement" missing
-FAIL SVGMeshrowElement interface object length assert_own_property: self does not have own property "SVGMeshrowElement" expected property "SVGMeshrowElement" missing
-FAIL SVGMeshrowElement interface object name assert_own_property: self does not have own property "SVGMeshrowElement" expected property "SVGMeshrowElement" missing
-FAIL SVGMeshrowElement interface: existence and properties of interface prototype object assert_own_property: self does not have own property "SVGMeshrowElement" expected property "SVGMeshrowElement" missing
-FAIL SVGMeshrowElement interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "SVGMeshrowElement" expected property "SVGMeshrowElement" missing
-FAIL SVGMeshrowElement interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "SVGMeshrowElement" expected property "SVGMeshrowElement" missing
-FAIL SVGMeshpatchElement interface: existence and properties of interface object assert_own_property: self does not have own property "SVGMeshpatchElement" expected property "SVGMeshpatchElement" missing
-FAIL SVGMeshpatchElement interface object length assert_own_property: self does not have own property "SVGMeshpatchElement" expected property "SVGMeshpatchElement" missing
-FAIL SVGMeshpatchElement interface object name assert_own_property: self does not have own property "SVGMeshpatchElement" expected property "SVGMeshpatchElement" missing
-FAIL SVGMeshpatchElement interface: existence and properties of interface prototype object assert_own_property: self does not have own property "SVGMeshpatchElement" expected property "SVGMeshpatchElement" missing
-FAIL SVGMeshpatchElement interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "SVGMeshpatchElement" expected property "SVGMeshpatchElement" missing
-FAIL SVGMeshpatchElement interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "SVGMeshpatchElement" expected property "SVGMeshpatchElement" missing
-PASS SVGStopElement interface: existence and properties of interface object
-PASS SVGStopElement interface object length
-PASS SVGStopElement interface object name
-PASS SVGStopElement interface: existence and properties of interface prototype object
-PASS SVGStopElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGStopElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGStopElement interface: attribute offset
-PASS Unscopable handled correctly for offset property on SVGStopElement
-PASS SVGStopElement must be primary interface of stop
-PASS Stringification of stop
-PASS SVGStopElement interface: stop must inherit property "offset" with the proper type
-PASS SVGElement interface: stop must inherit property "className" with the proper type
-PASS SVGElement interface: stop must inherit property "dataset" with the proper type
-PASS SVGElement interface: stop must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: stop must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: stop must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: stop must inherit property "focus()" with the proper type
-PASS SVGElement interface: stop must inherit property "blur()" with the proper type
-PASS SVGPatternElement interface: existence and properties of interface object
-PASS SVGPatternElement interface object length
-PASS SVGPatternElement interface object name
-PASS SVGPatternElement interface: existence and properties of interface prototype object
-PASS SVGPatternElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGPatternElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGPatternElement interface: attribute patternUnits
-PASS Unscopable handled correctly for patternUnits property on SVGPatternElement
-PASS SVGPatternElement interface: attribute patternContentUnits
-PASS Unscopable handled correctly for patternContentUnits property on SVGPatternElement
-PASS SVGPatternElement interface: attribute patternTransform
-PASS Unscopable handled correctly for patternTransform property on SVGPatternElement
-PASS SVGPatternElement interface: attribute x
-PASS Unscopable handled correctly for x property on SVGPatternElement
-PASS SVGPatternElement interface: attribute y
-PASS Unscopable handled correctly for y property on SVGPatternElement
-PASS SVGPatternElement interface: attribute width
-PASS Unscopable handled correctly for width property on SVGPatternElement
-PASS SVGPatternElement interface: attribute height
-PASS Unscopable handled correctly for height property on SVGPatternElement
-PASS SVGPatternElement interface: attribute viewBox
-PASS Unscopable handled correctly for viewBox property on SVGPatternElement
-PASS SVGPatternElement interface: attribute preserveAspectRatio
-PASS Unscopable handled correctly for preserveAspectRatio property on SVGPatternElement
-PASS SVGPatternElement interface: attribute href
-PASS Unscopable handled correctly for href property on SVGPatternElement
-PASS SVGPatternElement must be primary interface of pattern
-PASS Stringification of pattern
-PASS SVGPatternElement interface: pattern must inherit property "patternUnits" with the proper type
-PASS SVGPatternElement interface: pattern must inherit property "patternContentUnits" with the proper type
-PASS SVGPatternElement interface: pattern must inherit property "patternTransform" with the proper type
-PASS SVGPatternElement interface: pattern must inherit property "x" with the proper type
-PASS SVGPatternElement interface: pattern must inherit property "y" with the proper type
-PASS SVGPatternElement interface: pattern must inherit property "width" with the proper type
-PASS SVGPatternElement interface: pattern must inherit property "height" with the proper type
-PASS SVGPatternElement interface: pattern must inherit property "viewBox" with the proper type
-PASS SVGPatternElement interface: pattern must inherit property "preserveAspectRatio" with the proper type
-PASS SVGPatternElement interface: pattern must inherit property "href" with the proper type
-PASS SVGElement interface: pattern must inherit property "className" with the proper type
-PASS SVGElement interface: pattern must inherit property "dataset" with the proper type
-PASS SVGElement interface: pattern must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: pattern must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: pattern must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: pattern must inherit property "focus()" with the proper type
-PASS SVGElement interface: pattern must inherit property "blur()" with the proper type
-FAIL SVGHatchElement interface: existence and properties of interface object assert_own_property: self does not have own property "SVGHatchElement" expected property "SVGHatchElement" missing
-FAIL SVGHatchElement interface object length assert_own_property: self does not have own property "SVGHatchElement" expected property "SVGHatchElement" missing
-FAIL SVGHatchElement interface object name assert_own_property: self does not have own property "SVGHatchElement" expected property "SVGHatchElement" missing
-FAIL SVGHatchElement interface: existence and properties of interface prototype object assert_own_property: self does not have own property "SVGHatchElement" expected property "SVGHatchElement" missing
-FAIL SVGHatchElement interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "SVGHatchElement" expected property "SVGHatchElement" missing
-FAIL SVGHatchElement interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "SVGHatchElement" expected property "SVGHatchElement" missing
-FAIL SVGHatchpathElement interface: existence and properties of interface object assert_own_property: self does not have own property "SVGHatchpathElement" expected property "SVGHatchpathElement" missing
-FAIL SVGHatchpathElement interface object length assert_own_property: self does not have own property "SVGHatchpathElement" expected property "SVGHatchpathElement" missing
-FAIL SVGHatchpathElement interface object name assert_own_property: self does not have own property "SVGHatchpathElement" expected property "SVGHatchpathElement" missing
-FAIL SVGHatchpathElement interface: existence and properties of interface prototype object assert_own_property: self does not have own property "SVGHatchpathElement" expected property "SVGHatchpathElement" missing
-FAIL SVGHatchpathElement interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "SVGHatchpathElement" expected property "SVGHatchpathElement" missing
-FAIL SVGHatchpathElement interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "SVGHatchpathElement" expected property "SVGHatchpathElement" missing
-FAIL SVGCursorElement interface: existence and properties of interface object assert_own_property: self does not have own property "SVGCursorElement" expected property "SVGCursorElement" missing
-FAIL SVGCursorElement interface object length assert_own_property: self does not have own property "SVGCursorElement" expected property "SVGCursorElement" missing
-FAIL SVGCursorElement interface object name assert_own_property: self does not have own property "SVGCursorElement" expected property "SVGCursorElement" missing
-FAIL SVGCursorElement interface: existence and properties of interface prototype object assert_own_property: self does not have own property "SVGCursorElement" expected property "SVGCursorElement" missing
-FAIL SVGCursorElement interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "SVGCursorElement" expected property "SVGCursorElement" missing
-FAIL SVGCursorElement interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "SVGCursorElement" expected property "SVGCursorElement" missing
-FAIL SVGCursorElement interface: attribute x assert_own_property: self does not have own property "SVGCursorElement" expected property "SVGCursorElement" missing
-PASS Unscopable handled correctly for x property on SVGCursorElement
-FAIL SVGCursorElement interface: attribute y assert_own_property: self does not have own property "SVGCursorElement" expected property "SVGCursorElement" missing
-PASS Unscopable handled correctly for y property on SVGCursorElement
-FAIL SVGCursorElement interface: attribute href assert_own_property: self does not have own property "SVGCursorElement" expected property "SVGCursorElement" missing
-PASS Unscopable handled correctly for href property on SVGCursorElement
-FAIL SVGCursorElement must be primary interface of cursor assert_own_property: self does not have own property "SVGCursorElement" expected property "SVGCursorElement" missing
-FAIL Stringification of cursor assert_equals: class string of cursor expected "[object SVGCursorElement]" but got "[object SVGElement]"
-FAIL SVGCursorElement interface: cursor must inherit property "x" with the proper type assert_inherits: property "x" not found in prototype chain
-FAIL SVGCursorElement interface: cursor must inherit property "y" with the proper type assert_inherits: property "y" not found in prototype chain
-FAIL SVGCursorElement interface: cursor must inherit property "href" with the proper type assert_inherits: property "href" not found in prototype chain
-PASS SVGElement interface: cursor must inherit property "className" with the proper type
-PASS SVGElement interface: cursor must inherit property "dataset" with the proper type
-PASS SVGElement interface: cursor must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: cursor must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: cursor must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: cursor must inherit property "focus()" with the proper type
-PASS SVGElement interface: cursor must inherit property "blur()" with the proper type
-PASS SVGScriptElement interface: existence and properties of interface object
-PASS SVGScriptElement interface object length
-PASS SVGScriptElement interface object name
-PASS SVGScriptElement interface: existence and properties of interface prototype object
-PASS SVGScriptElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGScriptElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGScriptElement interface: attribute type
-PASS Unscopable handled correctly for type property on SVGScriptElement
-FAIL SVGScriptElement interface: attribute crossOrigin assert_true: The prototype object must have a property "crossOrigin" expected true got false
-PASS Unscopable handled correctly for crossOrigin property on SVGScriptElement
-PASS SVGScriptElement interface: attribute href
-PASS Unscopable handled correctly for href property on SVGScriptElement
-PASS SVGScriptElement must be primary interface of script
-PASS Stringification of script
-PASS SVGScriptElement interface: script must inherit property "type" with the proper type
-FAIL SVGScriptElement interface: script must inherit property "crossOrigin" with the proper type assert_inherits: property "crossOrigin" not found in prototype chain
-PASS SVGScriptElement interface: script must inherit property "href" with the proper type
-PASS SVGElement interface: script must inherit property "className" with the proper type
-PASS SVGElement interface: script must inherit property "dataset" with the proper type
-PASS SVGElement interface: script must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: script must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: script must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: script must inherit property "focus()" with the proper type
-PASS SVGElement interface: script must inherit property "blur()" with the proper type
-PASS SVGAElement interface: existence and properties of interface object
-PASS SVGAElement interface object length
-PASS SVGAElement interface object name
-PASS SVGAElement interface: existence and properties of interface prototype object
-PASS SVGAElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGAElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGAElement interface: attribute target
-PASS Unscopable handled correctly for target property on SVGAElement
-PASS SVGAElement interface: attribute href
-PASS Unscopable handled correctly for href property on SVGAElement
-PASS SVGAElement must be primary interface of a
-PASS Stringification of a
-PASS SVGAElement interface: a must inherit property "target" with the proper type
-PASS SVGAElement interface: a must inherit property "href" with the proper type
-PASS SVGGraphicsElement interface: a must inherit property "transform" with the proper type
-PASS SVGGraphicsElement interface: a must inherit property "getBBox(SVGBoundingBoxOptions)" with the proper type
-PASS SVGGraphicsElement interface: calling getBBox(SVGBoundingBoxOptions) on a with too few arguments must throw TypeError
-PASS SVGGraphicsElement interface: a must inherit property "getCTM()" with the proper type
-PASS SVGGraphicsElement interface: a must inherit property "getScreenCTM()" with the proper type
-PASS SVGGraphicsElement interface: a must inherit property "requiredExtensions" with the proper type
-PASS SVGGraphicsElement interface: a must inherit property "systemLanguage" with the proper type
-PASS SVGElement interface: a must inherit property "className" with the proper type
-PASS SVGElement interface: a must inherit property "dataset" with the proper type
-PASS SVGElement interface: a must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: a must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: a must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: a must inherit property "focus()" with the proper type
-PASS SVGElement interface: a must inherit property "blur()" with the proper type
-PASS SVGViewElement interface: existence and properties of interface object
-PASS SVGViewElement interface object length
-PASS SVGViewElement interface object name
-PASS SVGViewElement interface: existence and properties of interface prototype object
-PASS SVGViewElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGViewElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGViewElement interface: attribute viewBox
-PASS Unscopable handled correctly for viewBox property on SVGViewElement
-PASS SVGViewElement interface: attribute preserveAspectRatio
-PASS Unscopable handled correctly for preserveAspectRatio property on SVGViewElement
-PASS SVGViewElement interface: constant SVG_ZOOMANDPAN_UNKNOWN on interface object
-PASS SVGViewElement interface: constant SVG_ZOOMANDPAN_UNKNOWN on interface prototype object
-PASS SVGViewElement interface: constant SVG_ZOOMANDPAN_DISABLE on interface object
-PASS SVGViewElement interface: constant SVG_ZOOMANDPAN_DISABLE on interface prototype object
-PASS SVGViewElement interface: constant SVG_ZOOMANDPAN_MAGNIFY on interface object
-PASS SVGViewElement interface: constant SVG_ZOOMANDPAN_MAGNIFY on interface prototype object
-PASS SVGViewElement interface: attribute zoomAndPan
-PASS Unscopable handled correctly for zoomAndPan property on SVGViewElement
-PASS SVGViewElement must be primary interface of view
-PASS Stringification of view
-PASS SVGViewElement interface: view must inherit property "viewBox" with the proper type
-PASS SVGViewElement interface: view must inherit property "preserveAspectRatio" with the proper type
-PASS SVGViewElement interface: view must inherit property "SVG_ZOOMANDPAN_UNKNOWN" with the proper type
-PASS SVGViewElement interface: view must inherit property "SVG_ZOOMANDPAN_DISABLE" with the proper type
-PASS SVGViewElement interface: view must inherit property "SVG_ZOOMANDPAN_MAGNIFY" with the proper type
-PASS SVGViewElement interface: view must inherit property "zoomAndPan" with the proper type
-PASS SVGElement interface: view must inherit property "className" with the proper type
-PASS SVGElement interface: view must inherit property "dataset" with the proper type
-PASS SVGElement interface: view must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: view must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: view must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: view must inherit property "focus()" with the proper type
-PASS SVGElement interface: view must inherit property "blur()" with the proper type
-PASS SVGFilterElement interface: existence and properties of interface object
-PASS SVGFilterElement interface object length
-PASS SVGFilterElement interface object name
-PASS SVGFilterElement interface: existence and properties of interface prototype object
-PASS SVGFilterElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGFilterElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGFilterElement interface: attribute filterUnits
-PASS Unscopable handled correctly for filterUnits property on SVGFilterElement
-PASS SVGFilterElement interface: attribute primitiveUnits
-PASS Unscopable handled correctly for primitiveUnits property on SVGFilterElement
-PASS SVGFilterElement interface: attribute x
-PASS Unscopable handled correctly for x property on SVGFilterElement
-PASS SVGFilterElement interface: attribute y
-PASS Unscopable handled correctly for y property on SVGFilterElement
-PASS SVGFilterElement interface: attribute width
-PASS Unscopable handled correctly for width property on SVGFilterElement
-PASS SVGFilterElement interface: attribute height
-PASS Unscopable handled correctly for height property on SVGFilterElement
-PASS SVGFilterElement interface: attribute href
-PASS Unscopable handled correctly for href property on SVGFilterElement
-PASS SVGFilterElement must be primary interface of filter
-PASS Stringification of filter
-PASS SVGFilterElement interface: filter must inherit property "filterUnits" with the proper type
-PASS SVGFilterElement interface: filter must inherit property "primitiveUnits" with the proper type
-PASS SVGFilterElement interface: filter must inherit property "x" with the proper type
-PASS SVGFilterElement interface: filter must inherit property "y" with the proper type
-PASS SVGFilterElement interface: filter must inherit property "width" with the proper type
-PASS SVGFilterElement interface: filter must inherit property "height" with the proper type
-PASS SVGFilterElement interface: filter must inherit property "href" with the proper type
-PASS SVGElement interface: filter must inherit property "className" with the proper type
-PASS SVGElement interface: filter must inherit property "dataset" with the proper type
-PASS SVGElement interface: filter must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: filter must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: filter must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: filter must inherit property "focus()" with the proper type
-PASS SVGElement interface: filter must inherit property "blur()" with the proper type
-PASS SVGFEBlendElement interface: existence and properties of interface object
-PASS SVGFEBlendElement interface object length
-PASS SVGFEBlendElement interface object name
-PASS SVGFEBlendElement interface: existence and properties of interface prototype object
-PASS SVGFEBlendElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGFEBlendElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGFEBlendElement interface: constant SVG_FEBLEND_MODE_UNKNOWN on interface object
-PASS SVGFEBlendElement interface: constant SVG_FEBLEND_MODE_UNKNOWN on interface prototype object
-PASS SVGFEBlendElement interface: constant SVG_FEBLEND_MODE_NORMAL on interface object
-PASS SVGFEBlendElement interface: constant SVG_FEBLEND_MODE_NORMAL on interface prototype object
-PASS SVGFEBlendElement interface: constant SVG_FEBLEND_MODE_MULTIPLY on interface object
-PASS SVGFEBlendElement interface: constant SVG_FEBLEND_MODE_MULTIPLY on interface prototype object
-PASS SVGFEBlendElement interface: constant SVG_FEBLEND_MODE_SCREEN on interface object
-PASS SVGFEBlendElement interface: constant SVG_FEBLEND_MODE_SCREEN on interface prototype object
-PASS SVGFEBlendElement interface: constant SVG_FEBLEND_MODE_DARKEN on interface object
-PASS SVGFEBlendElement interface: constant SVG_FEBLEND_MODE_DARKEN on interface prototype object
-PASS SVGFEBlendElement interface: constant SVG_FEBLEND_MODE_LIGHTEN on interface object
-PASS SVGFEBlendElement interface: constant SVG_FEBLEND_MODE_LIGHTEN on interface prototype object
-PASS SVGFEBlendElement interface: attribute in1
-PASS Unscopable handled correctly for in1 property on SVGFEBlendElement
-PASS SVGFEBlendElement interface: attribute in2
-PASS Unscopable handled correctly for in2 property on SVGFEBlendElement
-PASS SVGFEBlendElement interface: attribute mode
-PASS Unscopable handled correctly for mode property on SVGFEBlendElement
-PASS SVGFEBlendElement interface: attribute x
-PASS Unscopable handled correctly for x property on SVGFEBlendElement
-PASS SVGFEBlendElement interface: attribute y
-PASS Unscopable handled correctly for y property on SVGFEBlendElement
-PASS SVGFEBlendElement interface: attribute width
-PASS Unscopable handled correctly for width property on SVGFEBlendElement
-PASS SVGFEBlendElement interface: attribute height
-PASS Unscopable handled correctly for height property on SVGFEBlendElement
-PASS SVGFEBlendElement interface: attribute result
-PASS Unscopable handled correctly for result property on SVGFEBlendElement
-PASS SVGFEBlendElement must be primary interface of feBlend
-PASS Stringification of feBlend
-PASS SVGFEBlendElement interface: feBlend must inherit property "SVG_FEBLEND_MODE_UNKNOWN" with the proper type
-PASS SVGFEBlendElement interface: feBlend must inherit property "SVG_FEBLEND_MODE_NORMAL" with the proper type
-PASS SVGFEBlendElement interface: feBlend must inherit property "SVG_FEBLEND_MODE_MULTIPLY" with the proper type
-PASS SVGFEBlendElement interface: feBlend must inherit property "SVG_FEBLEND_MODE_SCREEN" with the proper type
-PASS SVGFEBlendElement interface: feBlend must inherit property "SVG_FEBLEND_MODE_DARKEN" with the proper type
-PASS SVGFEBlendElement interface: feBlend must inherit property "SVG_FEBLEND_MODE_LIGHTEN" with the proper type
-PASS SVGFEBlendElement interface: feBlend must inherit property "in1" with the proper type
-PASS SVGFEBlendElement interface: feBlend must inherit property "in2" with the proper type
-PASS SVGFEBlendElement interface: feBlend must inherit property "mode" with the proper type
-PASS SVGFEBlendElement interface: feBlend must inherit property "x" with the proper type
-PASS SVGFEBlendElement interface: feBlend must inherit property "y" with the proper type
-PASS SVGFEBlendElement interface: feBlend must inherit property "width" with the proper type
-PASS SVGFEBlendElement interface: feBlend must inherit property "height" with the proper type
-PASS SVGFEBlendElement interface: feBlend must inherit property "result" with the proper type
-PASS SVGElement interface: feBlend must inherit property "className" with the proper type
-PASS SVGElement interface: feBlend must inherit property "dataset" with the proper type
-PASS SVGElement interface: feBlend must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: feBlend must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: feBlend must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: feBlend must inherit property "focus()" with the proper type
-PASS SVGElement interface: feBlend must inherit property "blur()" with the proper type
-PASS SVGFEColorMatrixElement interface: existence and properties of interface object
-PASS SVGFEColorMatrixElement interface object length
-PASS SVGFEColorMatrixElement interface object name
-PASS SVGFEColorMatrixElement interface: existence and properties of interface prototype object
-PASS SVGFEColorMatrixElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGFEColorMatrixElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGFEColorMatrixElement interface: constant SVG_FECOLORMATRIX_TYPE_UNKNOWN on interface object
-PASS SVGFEColorMatrixElement interface: constant SVG_FECOLORMATRIX_TYPE_UNKNOWN on interface prototype object
-PASS SVGFEColorMatrixElement interface: constant SVG_FECOLORMATRIX_TYPE_MATRIX on interface object
-PASS SVGFEColorMatrixElement interface: constant SVG_FECOLORMATRIX_TYPE_MATRIX on interface prototype object
-PASS SVGFEColorMatrixElement interface: constant SVG_FECOLORMATRIX_TYPE_SATURATE on interface object
-PASS SVGFEColorMatrixElement interface: constant SVG_FECOLORMATRIX_TYPE_SATURATE on interface prototype object
-PASS SVGFEColorMatrixElement interface: constant SVG_FECOLORMATRIX_TYPE_HUEROTATE on interface object
-PASS SVGFEColorMatrixElement interface: constant SVG_FECOLORMATRIX_TYPE_HUEROTATE on interface prototype object
-PASS SVGFEColorMatrixElement interface: constant SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA on interface object
-PASS SVGFEColorMatrixElement interface: constant SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA on interface prototype object
-PASS SVGFEColorMatrixElement interface: attribute in1
-PASS Unscopable handled correctly for in1 property on SVGFEColorMatrixElement
-PASS SVGFEColorMatrixElement interface: attribute type
-PASS Unscopable handled correctly for type property on SVGFEColorMatrixElement
-PASS SVGFEColorMatrixElement interface: attribute values
-PASS Unscopable handled correctly for values property on SVGFEColorMatrixElement
-PASS SVGFEColorMatrixElement interface: attribute x
-PASS Unscopable handled correctly for x property on SVGFEColorMatrixElement
-PASS SVGFEColorMatrixElement interface: attribute y
-PASS Unscopable handled correctly for y property on SVGFEColorMatrixElement
-PASS SVGFEColorMatrixElement interface: attribute width
-PASS Unscopable handled correctly for width property on SVGFEColorMatrixElement
-PASS SVGFEColorMatrixElement interface: attribute height
-PASS Unscopable handled correctly for height property on SVGFEColorMatrixElement
-PASS SVGFEColorMatrixElement interface: attribute result
-PASS Unscopable handled correctly for result property on SVGFEColorMatrixElement
-PASS SVGFEColorMatrixElement must be primary interface of feColorMatrix
-PASS Stringification of feColorMatrix
-PASS SVGFEColorMatrixElement interface: feColorMatrix must inherit property "SVG_FECOLORMATRIX_TYPE_UNKNOWN" with the proper type
-PASS SVGFEColorMatrixElement interface: feColorMatrix must inherit property "SVG_FECOLORMATRIX_TYPE_MATRIX" with the proper type
-PASS SVGFEColorMatrixElement interface: feColorMatrix must inherit property "SVG_FECOLORMATRIX_TYPE_SATURATE" with the proper type
-PASS SVGFEColorMatrixElement interface: feColorMatrix must inherit property "SVG_FECOLORMATRIX_TYPE_HUEROTATE" with the proper type
-PASS SVGFEColorMatrixElement interface: feColorMatrix must inherit property "SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA" with the proper type
-PASS SVGFEColorMatrixElement interface: feColorMatrix must inherit property "in1" with the proper type
-PASS SVGFEColorMatrixElement interface: feColorMatrix must inherit property "type" with the proper type
-PASS SVGFEColorMatrixElement interface: feColorMatrix must inherit property "values" with the proper type
-PASS SVGFEColorMatrixElement interface: feColorMatrix must inherit property "x" with the proper type
-PASS SVGFEColorMatrixElement interface: feColorMatrix must inherit property "y" with the proper type
-PASS SVGFEColorMatrixElement interface: feColorMatrix must inherit property "width" with the proper type
-PASS SVGFEColorMatrixElement interface: feColorMatrix must inherit property "height" with the proper type
-PASS SVGFEColorMatrixElement interface: feColorMatrix must inherit property "result" with the proper type
-PASS SVGElement interface: feColorMatrix must inherit property "className" with the proper type
-PASS SVGElement interface: feColorMatrix must inherit property "dataset" with the proper type
-PASS SVGElement interface: feColorMatrix must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: feColorMatrix must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: feColorMatrix must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: feColorMatrix must inherit property "focus()" with the proper type
-PASS SVGElement interface: feColorMatrix must inherit property "blur()" with the proper type
-PASS SVGFEComponentTransferElement interface: existence and properties of interface object
-PASS SVGFEComponentTransferElement interface object length
-PASS SVGFEComponentTransferElement interface object name
-PASS SVGFEComponentTransferElement interface: existence and properties of interface prototype object
-PASS SVGFEComponentTransferElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGFEComponentTransferElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGFEComponentTransferElement interface: attribute in1
-PASS Unscopable handled correctly for in1 property on SVGFEComponentTransferElement
-PASS SVGFEComponentTransferElement interface: attribute x
-PASS Unscopable handled correctly for x property on SVGFEComponentTransferElement
-PASS SVGFEComponentTransferElement interface: attribute y
-PASS Unscopable handled correctly for y property on SVGFEComponentTransferElement
-PASS SVGFEComponentTransferElement interface: attribute width
-PASS Unscopable handled correctly for width property on SVGFEComponentTransferElement
-PASS SVGFEComponentTransferElement interface: attribute height
-PASS Unscopable handled correctly for height property on SVGFEComponentTransferElement
-PASS SVGFEComponentTransferElement interface: attribute result
-PASS Unscopable handled correctly for result property on SVGFEComponentTransferElement
-PASS SVGFEComponentTransferElement must be primary interface of feComponentTransfer
-PASS Stringification of feComponentTransfer
-PASS SVGFEComponentTransferElement interface: feComponentTransfer must inherit property "in1" with the proper type
-PASS SVGFEComponentTransferElement interface: feComponentTransfer must inherit property "x" with the proper type
-PASS SVGFEComponentTransferElement interface: feComponentTransfer must inherit property "y" with the proper type
-PASS SVGFEComponentTransferElement interface: feComponentTransfer must inherit property "width" with the proper type
-PASS SVGFEComponentTransferElement interface: feComponentTransfer must inherit property "height" with the proper type
-PASS SVGFEComponentTransferElement interface: feComponentTransfer must inherit property "result" with the proper type
-PASS SVGElement interface: feComponentTransfer must inherit property "className" with the proper type
-PASS SVGElement interface: feComponentTransfer must inherit property "dataset" with the proper type
-PASS SVGElement interface: feComponentTransfer must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: feComponentTransfer must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: feComponentTransfer must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: feComponentTransfer must inherit property "focus()" with the proper type
-PASS SVGElement interface: feComponentTransfer must inherit property "blur()" with the proper type
-PASS SVGComponentTransferFunctionElement interface: existence and properties of interface object
-PASS SVGComponentTransferFunctionElement interface object length
-PASS SVGComponentTransferFunctionElement interface object name
-PASS SVGComponentTransferFunctionElement interface: existence and properties of interface prototype object
-PASS SVGComponentTransferFunctionElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGComponentTransferFunctionElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGComponentTransferFunctionElement interface: constant SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN on interface object
-PASS SVGComponentTransferFunctionElement interface: constant SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN on interface prototype object
-PASS SVGComponentTransferFunctionElement interface: constant SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY on interface object
-PASS SVGComponentTransferFunctionElement interface: constant SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY on interface prototype object
-PASS SVGComponentTransferFunctionElement interface: constant SVG_FECOMPONENTTRANSFER_TYPE_TABLE on interface object
-PASS SVGComponentTransferFunctionElement interface: constant SVG_FECOMPONENTTRANSFER_TYPE_TABLE on interface prototype object
-PASS SVGComponentTransferFunctionElement interface: constant SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE on interface object
-PASS SVGComponentTransferFunctionElement interface: constant SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE on interface prototype object
-PASS SVGComponentTransferFunctionElement interface: constant SVG_FECOMPONENTTRANSFER_TYPE_LINEAR on interface object
-PASS SVGComponentTransferFunctionElement interface: constant SVG_FECOMPONENTTRANSFER_TYPE_LINEAR on interface prototype object
-PASS SVGComponentTransferFunctionElement interface: constant SVG_FECOMPONENTTRANSFER_TYPE_GAMMA on interface object
-PASS SVGComponentTransferFunctionElement interface: constant SVG_FECOMPONENTTRANSFER_TYPE_GAMMA on interface prototype object
-PASS SVGComponentTransferFunctionElement interface: attribute type
-PASS Unscopable handled correctly for type property on SVGComponentTransferFunctionElement
-PASS SVGComponentTransferFunctionElement interface: attribute tableValues
-PASS Unscopable handled correctly for tableValues property on SVGComponentTransferFunctionElement
-PASS SVGComponentTransferFunctionElement interface: attribute slope
-PASS Unscopable handled correctly for slope property on SVGComponentTransferFunctionElement
-PASS SVGComponentTransferFunctionElement interface: attribute intercept
-PASS Unscopable handled correctly for intercept property on SVGComponentTransferFunctionElement
-PASS SVGComponentTransferFunctionElement interface: attribute amplitude
-PASS Unscopable handled correctly for amplitude property on SVGComponentTransferFunctionElement
-PASS SVGComponentTransferFunctionElement interface: attribute exponent
-PASS Unscopable handled correctly for exponent property on SVGComponentTransferFunctionElement
-PASS SVGComponentTransferFunctionElement interface: attribute offset
-PASS Unscopable handled correctly for offset property on SVGComponentTransferFunctionElement
-PASS SVGFEFuncRElement interface: existence and properties of interface object
-PASS SVGFEFuncRElement interface object length
-PASS SVGFEFuncRElement interface object name
-PASS SVGFEFuncRElement interface: existence and properties of interface prototype object
-PASS SVGFEFuncRElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGFEFuncRElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGFEFuncRElement must be primary interface of feFuncR
-PASS Stringification of feFuncR
-PASS SVGComponentTransferFunctionElement interface: feFuncR must inherit property "SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncR must inherit property "SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncR must inherit property "SVG_FECOMPONENTTRANSFER_TYPE_TABLE" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncR must inherit property "SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncR must inherit property "SVG_FECOMPONENTTRANSFER_TYPE_LINEAR" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncR must inherit property "SVG_FECOMPONENTTRANSFER_TYPE_GAMMA" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncR must inherit property "type" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncR must inherit property "tableValues" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncR must inherit property "slope" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncR must inherit property "intercept" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncR must inherit property "amplitude" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncR must inherit property "exponent" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncR must inherit property "offset" with the proper type
-PASS SVGElement interface: feFuncR must inherit property "className" with the proper type
-PASS SVGElement interface: feFuncR must inherit property "dataset" with the proper type
-PASS SVGElement interface: feFuncR must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: feFuncR must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: feFuncR must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: feFuncR must inherit property "focus()" with the proper type
-PASS SVGElement interface: feFuncR must inherit property "blur()" with the proper type
-PASS SVGFEFuncGElement interface: existence and properties of interface object
-PASS SVGFEFuncGElement interface object length
-PASS SVGFEFuncGElement interface object name
-PASS SVGFEFuncGElement interface: existence and properties of interface prototype object
-PASS SVGFEFuncGElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGFEFuncGElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGFEFuncGElement must be primary interface of feFuncG
-PASS Stringification of feFuncG
-PASS SVGComponentTransferFunctionElement interface: feFuncG must inherit property "SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncG must inherit property "SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncG must inherit property "SVG_FECOMPONENTTRANSFER_TYPE_TABLE" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncG must inherit property "SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncG must inherit property "SVG_FECOMPONENTTRANSFER_TYPE_LINEAR" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncG must inherit property "SVG_FECOMPONENTTRANSFER_TYPE_GAMMA" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncG must inherit property "type" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncG must inherit property "tableValues" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncG must inherit property "slope" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncG must inherit property "intercept" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncG must inherit property "amplitude" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncG must inherit property "exponent" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncG must inherit property "offset" with the proper type
-PASS SVGElement interface: feFuncG must inherit property "className" with the proper type
-PASS SVGElement interface: feFuncG must inherit property "dataset" with the proper type
-PASS SVGElement interface: feFuncG must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: feFuncG must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: feFuncG must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: feFuncG must inherit property "focus()" with the proper type
-PASS SVGElement interface: feFuncG must inherit property "blur()" with the proper type
-PASS SVGFEFuncBElement interface: existence and properties of interface object
-PASS SVGFEFuncBElement interface object length
-PASS SVGFEFuncBElement interface object name
-PASS SVGFEFuncBElement interface: existence and properties of interface prototype object
-PASS SVGFEFuncBElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGFEFuncBElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGFEFuncBElement must be primary interface of feFuncB
-PASS Stringification of feFuncB
-PASS SVGComponentTransferFunctionElement interface: feFuncB must inherit property "SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncB must inherit property "SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncB must inherit property "SVG_FECOMPONENTTRANSFER_TYPE_TABLE" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncB must inherit property "SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncB must inherit property "SVG_FECOMPONENTTRANSFER_TYPE_LINEAR" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncB must inherit property "SVG_FECOMPONENTTRANSFER_TYPE_GAMMA" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncB must inherit property "type" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncB must inherit property "tableValues" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncB must inherit property "slope" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncB must inherit property "intercept" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncB must inherit property "amplitude" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncB must inherit property "exponent" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncB must inherit property "offset" with the proper type
-PASS SVGElement interface: feFuncB must inherit property "className" with the proper type
-PASS SVGElement interface: feFuncB must inherit property "dataset" with the proper type
-PASS SVGElement interface: feFuncB must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: feFuncB must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: feFuncB must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: feFuncB must inherit property "focus()" with the proper type
-PASS SVGElement interface: feFuncB must inherit property "blur()" with the proper type
-PASS SVGFEFuncAElement interface: existence and properties of interface object
-PASS SVGFEFuncAElement interface object length
-PASS SVGFEFuncAElement interface object name
-PASS SVGFEFuncAElement interface: existence and properties of interface prototype object
-PASS SVGFEFuncAElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGFEFuncAElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGFEFuncAElement must be primary interface of feFuncA
-PASS Stringification of feFuncA
-PASS SVGComponentTransferFunctionElement interface: feFuncA must inherit property "SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncA must inherit property "SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncA must inherit property "SVG_FECOMPONENTTRANSFER_TYPE_TABLE" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncA must inherit property "SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncA must inherit property "SVG_FECOMPONENTTRANSFER_TYPE_LINEAR" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncA must inherit property "SVG_FECOMPONENTTRANSFER_TYPE_GAMMA" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncA must inherit property "type" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncA must inherit property "tableValues" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncA must inherit property "slope" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncA must inherit property "intercept" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncA must inherit property "amplitude" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncA must inherit property "exponent" with the proper type
-PASS SVGComponentTransferFunctionElement interface: feFuncA must inherit property "offset" with the proper type
-PASS SVGElement interface: feFuncA must inherit property "className" with the proper type
-PASS SVGElement interface: feFuncA must inherit property "dataset" with the proper type
-PASS SVGElement interface: feFuncA must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: feFuncA must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: feFuncA must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: feFuncA must inherit property "focus()" with the proper type
-PASS SVGElement interface: feFuncA must inherit property "blur()" with the proper type
-PASS SVGFECompositeElement interface: existence and properties of interface object
-PASS SVGFECompositeElement interface object length
-PASS SVGFECompositeElement interface object name
-PASS SVGFECompositeElement interface: existence and properties of interface prototype object
-PASS SVGFECompositeElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGFECompositeElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGFECompositeElement interface: constant SVG_FECOMPOSITE_OPERATOR_UNKNOWN on interface object
-PASS SVGFECompositeElement interface: constant SVG_FECOMPOSITE_OPERATOR_UNKNOWN on interface prototype object
-PASS SVGFECompositeElement interface: constant SVG_FECOMPOSITE_OPERATOR_OVER on interface object
-PASS SVGFECompositeElement interface: constant SVG_FECOMPOSITE_OPERATOR_OVER on interface prototype object
-PASS SVGFECompositeElement interface: constant SVG_FECOMPOSITE_OPERATOR_IN on interface object
-PASS SVGFECompositeElement interface: constant SVG_FECOMPOSITE_OPERATOR_IN on interface prototype object
-PASS SVGFECompositeElement interface: constant SVG_FECOMPOSITE_OPERATOR_OUT on interface object
-PASS SVGFECompositeElement interface: constant SVG_FECOMPOSITE_OPERATOR_OUT on interface prototype object
-PASS SVGFECompositeElement interface: constant SVG_FECOMPOSITE_OPERATOR_ATOP on interface object
-PASS SVGFECompositeElement interface: constant SVG_FECOMPOSITE_OPERATOR_ATOP on interface prototype object
-PASS SVGFECompositeElement interface: constant SVG_FECOMPOSITE_OPERATOR_XOR on interface object
-PASS SVGFECompositeElement interface: constant SVG_FECOMPOSITE_OPERATOR_XOR on interface prototype object
-PASS SVGFECompositeElement interface: constant SVG_FECOMPOSITE_OPERATOR_ARITHMETIC on interface object
-PASS SVGFECompositeElement interface: constant SVG_FECOMPOSITE_OPERATOR_ARITHMETIC on interface prototype object
-PASS SVGFECompositeElement interface: attribute in1
-PASS Unscopable handled correctly for in1 property on SVGFECompositeElement
-PASS SVGFECompositeElement interface: attribute in2
-PASS Unscopable handled correctly for in2 property on SVGFECompositeElement
-PASS SVGFECompositeElement interface: attribute operator
-PASS Unscopable handled correctly for operator property on SVGFECompositeElement
-PASS SVGFECompositeElement interface: attribute k1
-PASS Unscopable handled correctly for k1 property on SVGFECompositeElement
-PASS SVGFECompositeElement interface: attribute k2
-PASS Unscopable handled correctly for k2 property on SVGFECompositeElement
-PASS SVGFECompositeElement interface: attribute k3
-PASS Unscopable handled correctly for k3 property on SVGFECompositeElement
-PASS SVGFECompositeElement interface: attribute k4
-PASS Unscopable handled correctly for k4 property on SVGFECompositeElement
-PASS SVGFECompositeElement interface: attribute x
-PASS Unscopable handled correctly for x property on SVGFECompositeElement
-PASS SVGFECompositeElement interface: attribute y
-PASS Unscopable handled correctly for y property on SVGFECompositeElement
-PASS SVGFECompositeElement interface: attribute width
-PASS Unscopable handled correctly for width property on SVGFECompositeElement
-PASS SVGFECompositeElement interface: attribute height
-PASS Unscopable handled correctly for height property on SVGFECompositeElement
-PASS SVGFECompositeElement interface: attribute result
-PASS Unscopable handled correctly for result property on SVGFECompositeElement
-PASS SVGFECompositeElement must be primary interface of feComposite
-PASS Stringification of feComposite
-PASS SVGFECompositeElement interface: feComposite must inherit property "SVG_FECOMPOSITE_OPERATOR_UNKNOWN" with the proper type
-PASS SVGFECompositeElement interface: feComposite must inherit property "SVG_FECOMPOSITE_OPERATOR_OVER" with the proper type
-PASS SVGFECompositeElement interface: feComposite must inherit property "SVG_FECOMPOSITE_OPERATOR_IN" with the proper type
-PASS SVGFECompositeElement interface: feComposite must inherit property "SVG_FECOMPOSITE_OPERATOR_OUT" with the proper type
-PASS SVGFECompositeElement interface: feComposite must inherit property "SVG_FECOMPOSITE_OPERATOR_ATOP" with the proper type
-PASS SVGFECompositeElement interface: feComposite must inherit property "SVG_FECOMPOSITE_OPERATOR_XOR" with the proper type
-PASS SVGFECompositeElement interface: feComposite must inherit property "SVG_FECOMPOSITE_OPERATOR_ARITHMETIC" with the proper type
-PASS SVGFECompositeElement interface: feComposite must inherit property "in1" with the proper type
-PASS SVGFECompositeElement interface: feComposite must inherit property "in2" with the proper type
-PASS SVGFECompositeElement interface: feComposite must inherit property "operator" with the proper type
-PASS SVGFECompositeElement interface: feComposite must inherit property "k1" with the proper type
-PASS SVGFECompositeElement interface: feComposite must inherit property "k2" with the proper type
-PASS SVGFECompositeElement interface: feComposite must inherit property "k3" with the proper type
-PASS SVGFECompositeElement interface: feComposite must inherit property "k4" with the proper type
-PASS SVGFECompositeElement interface: feComposite must inherit property "x" with the proper type
-PASS SVGFECompositeElement interface: feComposite must inherit property "y" with the proper type
-PASS SVGFECompositeElement interface: feComposite must inherit property "width" with the proper type
-PASS SVGFECompositeElement interface: feComposite must inherit property "height" with the proper type
-PASS SVGFECompositeElement interface: feComposite must inherit property "result" with the proper type
-PASS SVGElement interface: feComposite must inherit property "className" with the proper type
-PASS SVGElement interface: feComposite must inherit property "dataset" with the proper type
-PASS SVGElement interface: feComposite must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: feComposite must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: feComposite must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: feComposite must inherit property "focus()" with the proper type
-PASS SVGElement interface: feComposite must inherit property "blur()" with the proper type
-PASS SVGFEConvolveMatrixElement interface: existence and properties of interface object
-PASS SVGFEConvolveMatrixElement interface object length
-PASS SVGFEConvolveMatrixElement interface object name
-PASS SVGFEConvolveMatrixElement interface: existence and properties of interface prototype object
-PASS SVGFEConvolveMatrixElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGFEConvolveMatrixElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGFEConvolveMatrixElement interface: constant SVG_EDGEMODE_UNKNOWN on interface object
-PASS SVGFEConvolveMatrixElement interface: constant SVG_EDGEMODE_UNKNOWN on interface prototype object
-PASS SVGFEConvolveMatrixElement interface: constant SVG_EDGEMODE_DUPLICATE on interface object
-PASS SVGFEConvolveMatrixElement interface: constant SVG_EDGEMODE_DUPLICATE on interface prototype object
-PASS SVGFEConvolveMatrixElement interface: constant SVG_EDGEMODE_WRAP on interface object
-PASS SVGFEConvolveMatrixElement interface: constant SVG_EDGEMODE_WRAP on interface prototype object
-PASS SVGFEConvolveMatrixElement interface: constant SVG_EDGEMODE_NONE on interface object
-PASS SVGFEConvolveMatrixElement interface: constant SVG_EDGEMODE_NONE on interface prototype object
-PASS SVGFEConvolveMatrixElement interface: attribute in1
-PASS Unscopable handled correctly for in1 property on SVGFEConvolveMatrixElement
-PASS SVGFEConvolveMatrixElement interface: attribute orderX
-PASS Unscopable handled correctly for orderX property on SVGFEConvolveMatrixElement
-PASS SVGFEConvolveMatrixElement interface: attribute orderY
-PASS Unscopable handled correctly for orderY property on SVGFEConvolveMatrixElement
-PASS SVGFEConvolveMatrixElement interface: attribute kernelMatrix
-PASS Unscopable handled correctly for kernelMatrix property on SVGFEConvolveMatrixElement
-PASS SVGFEConvolveMatrixElement interface: attribute divisor
-PASS Unscopable handled correctly for divisor property on SVGFEConvolveMatrixElement
-PASS SVGFEConvolveMatrixElement interface: attribute bias
-PASS Unscopable handled correctly for bias property on SVGFEConvolveMatrixElement
-PASS SVGFEConvolveMatrixElement interface: attribute targetX
-PASS Unscopable handled correctly for targetX property on SVGFEConvolveMatrixElement
-PASS SVGFEConvolveMatrixElement interface: attribute targetY
-PASS Unscopable handled correctly for targetY property on SVGFEConvolveMatrixElement
-PASS SVGFEConvolveMatrixElement interface: attribute edgeMode
-PASS Unscopable handled correctly for edgeMode property on SVGFEConvolveMatrixElement
-PASS SVGFEConvolveMatrixElement interface: attribute kernelUnitLengthX
-PASS Unscopable handled correctly for kernelUnitLengthX property on SVGFEConvolveMatrixElement
-PASS SVGFEConvolveMatrixElement interface: attribute kernelUnitLengthY
-PASS Unscopable handled correctly for kernelUnitLengthY property on SVGFEConvolveMatrixElement
-PASS SVGFEConvolveMatrixElement interface: attribute x
-PASS Unscopable handled correctly for x property on SVGFEConvolveMatrixElement
-PASS SVGFEConvolveMatrixElement interface: attribute y
-PASS Unscopable handled correctly for y property on SVGFEConvolveMatrixElement
-PASS SVGFEConvolveMatrixElement interface: attribute width
-PASS Unscopable handled correctly for width property on SVGFEConvolveMatrixElement
-PASS SVGFEConvolveMatrixElement interface: attribute height
-PASS Unscopable handled correctly for height property on SVGFEConvolveMatrixElement
-PASS SVGFEConvolveMatrixElement interface: attribute result
-PASS Unscopable handled correctly for result property on SVGFEConvolveMatrixElement
-PASS SVGFEConvolveMatrixElement must be primary interface of feConvolveMatrix
-PASS Stringification of feConvolveMatrix
-PASS SVGFEConvolveMatrixElement interface: feConvolveMatrix must inherit property "SVG_EDGEMODE_UNKNOWN" with the proper type
-PASS SVGFEConvolveMatrixElement interface: feConvolveMatrix must inherit property "SVG_EDGEMODE_DUPLICATE" with the proper type
-PASS SVGFEConvolveMatrixElement interface: feConvolveMatrix must inherit property "SVG_EDGEMODE_WRAP" with the proper type
-PASS SVGFEConvolveMatrixElement interface: feConvolveMatrix must inherit property "SVG_EDGEMODE_NONE" with the proper type
-PASS SVGFEConvolveMatrixElement interface: feConvolveMatrix must inherit property "in1" with the proper type
-PASS SVGFEConvolveMatrixElement interface: feConvolveMatrix must inherit property "orderX" with the proper type
-PASS SVGFEConvolveMatrixElement interface: feConvolveMatrix must inherit property "orderY" with the proper type
-PASS SVGFEConvolveMatrixElement interface: feConvolveMatrix must inherit property "kernelMatrix" with the proper type
-PASS SVGFEConvolveMatrixElement interface: feConvolveMatrix must inherit property "divisor" with the proper type
-PASS SVGFEConvolveMatrixElement interface: feConvolveMatrix must inherit property "bias" with the proper type
-PASS SVGFEConvolveMatrixElement interface: feConvolveMatrix must inherit property "targetX" with the proper type
-PASS SVGFEConvolveMatrixElement interface: feConvolveMatrix must inherit property "targetY" with the proper type
-PASS SVGFEConvolveMatrixElement interface: feConvolveMatrix must inherit property "edgeMode" with the proper type
-PASS SVGFEConvolveMatrixElement interface: feConvolveMatrix must inherit property "kernelUnitLengthX" with the proper type
-PASS SVGFEConvolveMatrixElement interface: feConvolveMatrix must inherit property "kernelUnitLengthY" with the proper type
-PASS SVGFEConvolveMatrixElement interface: feConvolveMatrix must inherit property "x" with the proper type
-PASS SVGFEConvolveMatrixElement interface: feConvolveMatrix must inherit property "y" with the proper type
-PASS SVGFEConvolveMatrixElement interface: feConvolveMatrix must inherit property "width" with the proper type
-PASS SVGFEConvolveMatrixElement interface: feConvolveMatrix must inherit property "height" with the proper type
-PASS SVGFEConvolveMatrixElement interface: feConvolveMatrix must inherit property "result" with the proper type
-PASS SVGElement interface: feConvolveMatrix must inherit property "className" with the proper type
-PASS SVGElement interface: feConvolveMatrix must inherit property "dataset" with the proper type
-PASS SVGElement interface: feConvolveMatrix must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: feConvolveMatrix must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: feConvolveMatrix must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: feConvolveMatrix must inherit property "focus()" with the proper type
-PASS SVGElement interface: feConvolveMatrix must inherit property "blur()" with the proper type
-PASS SVGFEDiffuseLightingElement interface: existence and properties of interface object
-PASS SVGFEDiffuseLightingElement interface object length
-PASS SVGFEDiffuseLightingElement interface object name
-PASS SVGFEDiffuseLightingElement interface: existence and properties of interface prototype object
-PASS SVGFEDiffuseLightingElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGFEDiffuseLightingElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGFEDiffuseLightingElement interface: attribute in1
-PASS Unscopable handled correctly for in1 property on SVGFEDiffuseLightingElement
-PASS SVGFEDiffuseLightingElement interface: attribute surfaceScale
-PASS Unscopable handled correctly for surfaceScale property on SVGFEDiffuseLightingElement
-PASS SVGFEDiffuseLightingElement interface: attribute diffuseConstant
-PASS Unscopable handled correctly for diffuseConstant property on SVGFEDiffuseLightingElement
-PASS SVGFEDiffuseLightingElement interface: attribute kernelUnitLengthX
-PASS Unscopable handled correctly for kernelUnitLengthX property on SVGFEDiffuseLightingElement
-PASS SVGFEDiffuseLightingElement interface: attribute kernelUnitLengthY
-PASS Unscopable handled correctly for kernelUnitLengthY property on SVGFEDiffuseLightingElement
-PASS SVGFEDiffuseLightingElement interface: attribute x
-PASS Unscopable handled correctly for x property on SVGFEDiffuseLightingElement
-PASS SVGFEDiffuseLightingElement interface: attribute y
-PASS Unscopable handled correctly for y property on SVGFEDiffuseLightingElement
-PASS SVGFEDiffuseLightingElement interface: attribute width
-PASS Unscopable handled correctly for width property on SVGFEDiffuseLightingElement
-PASS SVGFEDiffuseLightingElement interface: attribute height
-PASS Unscopable handled correctly for height property on SVGFEDiffuseLightingElement
-PASS SVGFEDiffuseLightingElement interface: attribute result
-PASS Unscopable handled correctly for result property on SVGFEDiffuseLightingElement
-PASS SVGFEDiffuseLightingElement must be primary interface of feDiffuseLighting
-PASS Stringification of feDiffuseLighting
-PASS SVGFEDiffuseLightingElement interface: feDiffuseLighting must inherit property "in1" with the proper type
-PASS SVGFEDiffuseLightingElement interface: feDiffuseLighting must inherit property "surfaceScale" with the proper type
-PASS SVGFEDiffuseLightingElement interface: feDiffuseLighting must inherit property "diffuseConstant" with the proper type
-PASS SVGFEDiffuseLightingElement interface: feDiffuseLighting must inherit property "kernelUnitLengthX" with the proper type
-PASS SVGFEDiffuseLightingElement interface: feDiffuseLighting must inherit property "kernelUnitLengthY" with the proper type
-PASS SVGFEDiffuseLightingElement interface: feDiffuseLighting must inherit property "x" with the proper type
-PASS SVGFEDiffuseLightingElement interface: feDiffuseLighting must inherit property "y" with the proper type
-PASS SVGFEDiffuseLightingElement interface: feDiffuseLighting must inherit property "width" with the proper type
-PASS SVGFEDiffuseLightingElement interface: feDiffuseLighting must inherit property "height" with the proper type
-PASS SVGFEDiffuseLightingElement interface: feDiffuseLighting must inherit property "result" with the proper type
-PASS SVGElement interface: feDiffuseLighting must inherit property "className" with the proper type
-PASS SVGElement interface: feDiffuseLighting must inherit property "dataset" with the proper type
-PASS SVGElement interface: feDiffuseLighting must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: feDiffuseLighting must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: feDiffuseLighting must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: feDiffuseLighting must inherit property "focus()" with the proper type
-PASS SVGElement interface: feDiffuseLighting must inherit property "blur()" with the proper type
-PASS SVGFEDistantLightElement interface: existence and properties of interface object
-PASS SVGFEDistantLightElement interface object length
-PASS SVGFEDistantLightElement interface object name
-PASS SVGFEDistantLightElement interface: existence and properties of interface prototype object
-PASS SVGFEDistantLightElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGFEDistantLightElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGFEDistantLightElement interface: attribute azimuth
-PASS Unscopable handled correctly for azimuth property on SVGFEDistantLightElement
-PASS SVGFEDistantLightElement interface: attribute elevation
-PASS Unscopable handled correctly for elevation property on SVGFEDistantLightElement
-PASS SVGFEPointLightElement interface: existence and properties of interface object
-PASS SVGFEPointLightElement interface object length
-PASS SVGFEPointLightElement interface object name
-PASS SVGFEPointLightElement interface: existence and properties of interface prototype object
-PASS SVGFEPointLightElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGFEPointLightElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGFEPointLightElement interface: attribute x
-PASS Unscopable handled correctly for x property on SVGFEPointLightElement
-PASS SVGFEPointLightElement interface: attribute y
-PASS Unscopable handled correctly for y property on SVGFEPointLightElement
-PASS SVGFEPointLightElement interface: attribute z
-PASS Unscopable handled correctly for z property on SVGFEPointLightElement
-PASS SVGFEPointLightElement must be primary interface of fePointLight
-PASS Stringification of fePointLight
-PASS SVGFEPointLightElement interface: fePointLight must inherit property "x" with the proper type
-PASS SVGFEPointLightElement interface: fePointLight must inherit property "y" with the proper type
-PASS SVGFEPointLightElement interface: fePointLight must inherit property "z" with the proper type
-PASS SVGElement interface: fePointLight must inherit property "className" with the proper type
-PASS SVGElement interface: fePointLight must inherit property "dataset" with the proper type
-PASS SVGElement interface: fePointLight must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: fePointLight must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: fePointLight must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: fePointLight must inherit property "focus()" with the proper type
-PASS SVGElement interface: fePointLight must inherit property "blur()" with the proper type
-PASS SVGFESpotLightElement interface: existence and properties of interface object
-PASS SVGFESpotLightElement interface object length
-PASS SVGFESpotLightElement interface object name
-PASS SVGFESpotLightElement interface: existence and properties of interface prototype object
-PASS SVGFESpotLightElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGFESpotLightElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGFESpotLightElement interface: attribute x
-PASS Unscopable handled correctly for x property on SVGFESpotLightElement
-PASS SVGFESpotLightElement interface: attribute y
-PASS Unscopable handled correctly for y property on SVGFESpotLightElement
-PASS SVGFESpotLightElement interface: attribute z
-PASS Unscopable handled correctly for z property on SVGFESpotLightElement
-PASS SVGFESpotLightElement interface: attribute pointsAtX
-PASS Unscopable handled correctly for pointsAtX property on SVGFESpotLightElement
-PASS SVGFESpotLightElement interface: attribute pointsAtY
-PASS Unscopable handled correctly for pointsAtY property on SVGFESpotLightElement
-PASS SVGFESpotLightElement interface: attribute pointsAtZ
-PASS Unscopable handled correctly for pointsAtZ property on SVGFESpotLightElement
-PASS SVGFESpotLightElement interface: attribute specularExponent
-PASS Unscopable handled correctly for specularExponent property on SVGFESpotLightElement
-PASS SVGFESpotLightElement interface: attribute limitingConeAngle
-PASS Unscopable handled correctly for limitingConeAngle property on SVGFESpotLightElement
-PASS SVGFESpotLightElement must be primary interface of feSpotLight
-PASS Stringification of feSpotLight
-PASS SVGFESpotLightElement interface: feSpotLight must inherit property "x" with the proper type
-PASS SVGFESpotLightElement interface: feSpotLight must inherit property "y" with the proper type
-PASS SVGFESpotLightElement interface: feSpotLight must inherit property "z" with the proper type
-PASS SVGFESpotLightElement interface: feSpotLight must inherit property "pointsAtX" with the proper type
-PASS SVGFESpotLightElement interface: feSpotLight must inherit property "pointsAtY" with the proper type
-PASS SVGFESpotLightElement interface: feSpotLight must inherit property "pointsAtZ" with the proper type
-PASS SVGFESpotLightElement interface: feSpotLight must inherit property "specularExponent" with the proper type
-PASS SVGFESpotLightElement interface: feSpotLight must inherit property "limitingConeAngle" with the proper type
-PASS SVGElement interface: feSpotLight must inherit property "className" with the proper type
-PASS SVGElement interface: feSpotLight must inherit property "dataset" with the proper type
-PASS SVGElement interface: feSpotLight must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: feSpotLight must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: feSpotLight must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: feSpotLight must inherit property "focus()" with the proper type
-PASS SVGElement interface: feSpotLight must inherit property "blur()" with the proper type
-PASS SVGFEDisplacementMapElement interface: existence and properties of interface object
-PASS SVGFEDisplacementMapElement interface object length
-PASS SVGFEDisplacementMapElement interface object name
-PASS SVGFEDisplacementMapElement interface: existence and properties of interface prototype object
-PASS SVGFEDisplacementMapElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGFEDisplacementMapElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGFEDisplacementMapElement interface: constant SVG_CHANNEL_UNKNOWN on interface object
-PASS SVGFEDisplacementMapElement interface: constant SVG_CHANNEL_UNKNOWN on interface prototype object
-PASS SVGFEDisplacementMapElement interface: constant SVG_CHANNEL_R on interface object
-PASS SVGFEDisplacementMapElement interface: constant SVG_CHANNEL_R on interface prototype object
-PASS SVGFEDisplacementMapElement interface: constant SVG_CHANNEL_G on interface object
-PASS SVGFEDisplacementMapElement interface: constant SVG_CHANNEL_G on interface prototype object
-PASS SVGFEDisplacementMapElement interface: constant SVG_CHANNEL_B on interface object
-PASS SVGFEDisplacementMapElement interface: constant SVG_CHANNEL_B on interface prototype object
-PASS SVGFEDisplacementMapElement interface: constant SVG_CHANNEL_A on interface object
-PASS SVGFEDisplacementMapElement interface: constant SVG_CHANNEL_A on interface prototype object
-PASS SVGFEDisplacementMapElement interface: attribute in1
-PASS Unscopable handled correctly for in1 property on SVGFEDisplacementMapElement
-PASS SVGFEDisplacementMapElement interface: attribute in2
-PASS Unscopable handled correctly for in2 property on SVGFEDisplacementMapElement
-PASS SVGFEDisplacementMapElement interface: attribute scale
-PASS Unscopable handled correctly for scale property on SVGFEDisplacementMapElement
-PASS SVGFEDisplacementMapElement interface: attribute xChannelSelector
-PASS Unscopable handled correctly for xChannelSelector property on SVGFEDisplacementMapElement
-PASS SVGFEDisplacementMapElement interface: attribute yChannelSelector
-PASS Unscopable handled correctly for yChannelSelector property on SVGFEDisplacementMapElement
-PASS SVGFEDisplacementMapElement interface: attribute x
-PASS Unscopable handled correctly for x property on SVGFEDisplacementMapElement
-PASS SVGFEDisplacementMapElement interface: attribute y
-PASS Unscopable handled correctly for y property on SVGFEDisplacementMapElement
-PASS SVGFEDisplacementMapElement interface: attribute width
-PASS Unscopable handled correctly for width property on SVGFEDisplacementMapElement
-PASS SVGFEDisplacementMapElement interface: attribute height
-PASS Unscopable handled correctly for height property on SVGFEDisplacementMapElement
-PASS SVGFEDisplacementMapElement interface: attribute result
-PASS Unscopable handled correctly for result property on SVGFEDisplacementMapElement
-PASS SVGFEDisplacementMapElement must be primary interface of feDisplacementMap
-PASS Stringification of feDisplacementMap
-PASS SVGFEDisplacementMapElement interface: feDisplacementMap must inherit property "SVG_CHANNEL_UNKNOWN" with the proper type
-PASS SVGFEDisplacementMapElement interface: feDisplacementMap must inherit property "SVG_CHANNEL_R" with the proper type
-PASS SVGFEDisplacementMapElement interface: feDisplacementMap must inherit property "SVG_CHANNEL_G" with the proper type
-PASS SVGFEDisplacementMapElement interface: feDisplacementMap must inherit property "SVG_CHANNEL_B" with the proper type
-PASS SVGFEDisplacementMapElement interface: feDisplacementMap must inherit property "SVG_CHANNEL_A" with the proper type
-PASS SVGFEDisplacementMapElement interface: feDisplacementMap must inherit property "in1" with the proper type
-PASS SVGFEDisplacementMapElement interface: feDisplacementMap must inherit property "in2" with the proper type
-PASS SVGFEDisplacementMapElement interface: feDisplacementMap must inherit property "scale" with the proper type
-PASS SVGFEDisplacementMapElement interface: feDisplacementMap must inherit property "xChannelSelector" with the proper type
-PASS SVGFEDisplacementMapElement interface: feDisplacementMap must inherit property "yChannelSelector" with the proper type
-PASS SVGFEDisplacementMapElement interface: feDisplacementMap must inherit property "x" with the proper type
-PASS SVGFEDisplacementMapElement interface: feDisplacementMap must inherit property "y" with the proper type
-PASS SVGFEDisplacementMapElement interface: feDisplacementMap must inherit property "width" with the proper type
-PASS SVGFEDisplacementMapElement interface: feDisplacementMap must inherit property "height" with the proper type
-PASS SVGFEDisplacementMapElement interface: feDisplacementMap must inherit property "result" with the proper type
-PASS SVGElement interface: feDisplacementMap must inherit property "className" with the proper type
-PASS SVGElement interface: feDisplacementMap must inherit property "dataset" with the proper type
-PASS SVGElement interface: feDisplacementMap must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: feDisplacementMap must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: feDisplacementMap must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: feDisplacementMap must inherit property "focus()" with the proper type
-PASS SVGElement interface: feDisplacementMap must inherit property "blur()" with the proper type
-PASS SVGFEDropShadowElement interface: existence and properties of interface object
-PASS SVGFEDropShadowElement interface object length
-PASS SVGFEDropShadowElement interface object name
-PASS SVGFEDropShadowElement interface: existence and properties of interface prototype object
-PASS SVGFEDropShadowElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGFEDropShadowElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGFEDropShadowElement interface: attribute in1
-PASS Unscopable handled correctly for in1 property on SVGFEDropShadowElement
-PASS SVGFEDropShadowElement interface: attribute dx
-PASS Unscopable handled correctly for dx property on SVGFEDropShadowElement
-PASS SVGFEDropShadowElement interface: attribute dy
-PASS Unscopable handled correctly for dy property on SVGFEDropShadowElement
-PASS SVGFEDropShadowElement interface: attribute stdDeviationX
-PASS Unscopable handled correctly for stdDeviationX property on SVGFEDropShadowElement
-PASS SVGFEDropShadowElement interface: attribute stdDeviationY
-PASS Unscopable handled correctly for stdDeviationY property on SVGFEDropShadowElement
-PASS SVGFEDropShadowElement interface: operation setStdDeviation(float, float)
-PASS Unscopable handled correctly for setStdDeviation(float, float) on SVGFEDropShadowElement
-PASS SVGFEDropShadowElement interface: attribute x
-PASS Unscopable handled correctly for x property on SVGFEDropShadowElement
-PASS SVGFEDropShadowElement interface: attribute y
-PASS Unscopable handled correctly for y property on SVGFEDropShadowElement
-PASS SVGFEDropShadowElement interface: attribute width
-PASS Unscopable handled correctly for width property on SVGFEDropShadowElement
-PASS SVGFEDropShadowElement interface: attribute height
-PASS Unscopable handled correctly for height property on SVGFEDropShadowElement
-PASS SVGFEDropShadowElement interface: attribute result
-PASS Unscopable handled correctly for result property on SVGFEDropShadowElement
-PASS SVGFEDropShadowElement must be primary interface of feDropShadow
-PASS Stringification of feDropShadow
-PASS SVGFEDropShadowElement interface: feDropShadow must inherit property "in1" with the proper type
-PASS SVGFEDropShadowElement interface: feDropShadow must inherit property "dx" with the proper type
-PASS SVGFEDropShadowElement interface: feDropShadow must inherit property "dy" with the proper type
-PASS SVGFEDropShadowElement interface: feDropShadow must inherit property "stdDeviationX" with the proper type
-PASS SVGFEDropShadowElement interface: feDropShadow must inherit property "stdDeviationY" with the proper type
-PASS SVGFEDropShadowElement interface: feDropShadow must inherit property "setStdDeviation(float, float)" with the proper type
-PASS SVGFEDropShadowElement interface: calling setStdDeviation(float, float) on feDropShadow with too few arguments must throw TypeError
-PASS SVGFEDropShadowElement interface: feDropShadow must inherit property "x" with the proper type
-PASS SVGFEDropShadowElement interface: feDropShadow must inherit property "y" with the proper type
-PASS SVGFEDropShadowElement interface: feDropShadow must inherit property "width" with the proper type
-PASS SVGFEDropShadowElement interface: feDropShadow must inherit property "height" with the proper type
-PASS SVGFEDropShadowElement interface: feDropShadow must inherit property "result" with the proper type
-PASS SVGElement interface: feDropShadow must inherit property "className" with the proper type
-PASS SVGElement interface: feDropShadow must inherit property "dataset" with the proper type
-PASS SVGElement interface: feDropShadow must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: feDropShadow must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: feDropShadow must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: feDropShadow must inherit property "focus()" with the proper type
-PASS SVGElement interface: feDropShadow must inherit property "blur()" with the proper type
-PASS SVGFEFloodElement interface: existence and properties of interface object
-PASS SVGFEFloodElement interface object length
-PASS SVGFEFloodElement interface object name
-PASS SVGFEFloodElement interface: existence and properties of interface prototype object
-PASS SVGFEFloodElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGFEFloodElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGFEFloodElement interface: attribute x
-PASS Unscopable handled correctly for x property on SVGFEFloodElement
-PASS SVGFEFloodElement interface: attribute y
-PASS Unscopable handled correctly for y property on SVGFEFloodElement
-PASS SVGFEFloodElement interface: attribute width
-PASS Unscopable handled correctly for width property on SVGFEFloodElement
-PASS SVGFEFloodElement interface: attribute height
-PASS Unscopable handled correctly for height property on SVGFEFloodElement
-PASS SVGFEFloodElement interface: attribute result
-PASS Unscopable handled correctly for result property on SVGFEFloodElement
-PASS SVGFEFloodElement must be primary interface of feFlood
-PASS Stringification of feFlood
-PASS SVGFEFloodElement interface: feFlood must inherit property "x" with the proper type
-PASS SVGFEFloodElement interface: feFlood must inherit property "y" with the proper type
-PASS SVGFEFloodElement interface: feFlood must inherit property "width" with the proper type
-PASS SVGFEFloodElement interface: feFlood must inherit property "height" with the proper type
-PASS SVGFEFloodElement interface: feFlood must inherit property "result" with the proper type
-PASS SVGElement interface: feFlood must inherit property "className" with the proper type
-PASS SVGElement interface: feFlood must inherit property "dataset" with the proper type
-PASS SVGElement interface: feFlood must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: feFlood must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: feFlood must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: feFlood must inherit property "focus()" with the proper type
-PASS SVGElement interface: feFlood must inherit property "blur()" with the proper type
-PASS SVGFEGaussianBlurElement interface: existence and properties of interface object
-PASS SVGFEGaussianBlurElement interface object length
-PASS SVGFEGaussianBlurElement interface object name
-PASS SVGFEGaussianBlurElement interface: existence and properties of interface prototype object
-PASS SVGFEGaussianBlurElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGFEGaussianBlurElement interface: existence and properties of interface prototype object's @@unscopables property
-FAIL SVGFEGaussianBlurElement interface: constant SVG_EDGEMODE_UNKNOWN on interface object assert_own_property: expected property "SVG_EDGEMODE_UNKNOWN" missing
-FAIL SVGFEGaussianBlurElement interface: constant SVG_EDGEMODE_UNKNOWN on interface prototype object assert_own_property: expected property "SVG_EDGEMODE_UNKNOWN" missing
-FAIL SVGFEGaussianBlurElement interface: constant SVG_EDGEMODE_DUPLICATE on interface object assert_own_property: expected property "SVG_EDGEMODE_DUPLICATE" missing
-FAIL SVGFEGaussianBlurElement interface: constant SVG_EDGEMODE_DUPLICATE on interface prototype object assert_own_property: expected property "SVG_EDGEMODE_DUPLICATE" missing
-FAIL SVGFEGaussianBlurElement interface: constant SVG_EDGEMODE_WRAP on interface object assert_own_property: expected property "SVG_EDGEMODE_WRAP" missing
-FAIL SVGFEGaussianBlurElement interface: constant SVG_EDGEMODE_WRAP on interface prototype object assert_own_property: expected property "SVG_EDGEMODE_WRAP" missing
-FAIL SVGFEGaussianBlurElement interface: constant SVG_EDGEMODE_NONE on interface object assert_own_property: expected property "SVG_EDGEMODE_NONE" missing
-FAIL SVGFEGaussianBlurElement interface: constant SVG_EDGEMODE_NONE on interface prototype object assert_own_property: expected property "SVG_EDGEMODE_NONE" missing
-PASS SVGFEGaussianBlurElement interface: attribute in1
-PASS Unscopable handled correctly for in1 property on SVGFEGaussianBlurElement
-PASS SVGFEGaussianBlurElement interface: attribute stdDeviationX
-PASS Unscopable handled correctly for stdDeviationX property on SVGFEGaussianBlurElement
-PASS SVGFEGaussianBlurElement interface: attribute stdDeviationY
-PASS Unscopable handled correctly for stdDeviationY property on SVGFEGaussianBlurElement
-FAIL SVGFEGaussianBlurElement interface: attribute edgeMode assert_true: The prototype object must have a property "edgeMode" expected true got false
-PASS Unscopable handled correctly for edgeMode property on SVGFEGaussianBlurElement
-PASS SVGFEGaussianBlurElement interface: operation setStdDeviation(float, float)
-PASS Unscopable handled correctly for setStdDeviation(float, float) on SVGFEGaussianBlurElement
-PASS SVGFEGaussianBlurElement interface: attribute x
-PASS Unscopable handled correctly for x property on SVGFEGaussianBlurElement
-PASS SVGFEGaussianBlurElement interface: attribute y
-PASS Unscopable handled correctly for y property on SVGFEGaussianBlurElement
-PASS SVGFEGaussianBlurElement interface: attribute width
-PASS Unscopable handled correctly for width property on SVGFEGaussianBlurElement
-PASS SVGFEGaussianBlurElement interface: attribute height
-PASS Unscopable handled correctly for height property on SVGFEGaussianBlurElement
-PASS SVGFEGaussianBlurElement interface: attribute result
-PASS Unscopable handled correctly for result property on SVGFEGaussianBlurElement
-PASS SVGFEGaussianBlurElement must be primary interface of feGaussianBlur
-PASS Stringification of feGaussianBlur
-FAIL SVGFEGaussianBlurElement interface: feGaussianBlur must inherit property "SVG_EDGEMODE_UNKNOWN" with the proper type assert_inherits: property "SVG_EDGEMODE_UNKNOWN" not found in prototype chain
-FAIL SVGFEGaussianBlurElement interface: feGaussianBlur must inherit property "SVG_EDGEMODE_DUPLICATE" with the proper type assert_inherits: property "SVG_EDGEMODE_DUPLICATE" not found in prototype chain
-FAIL SVGFEGaussianBlurElement interface: feGaussianBlur must inherit property "SVG_EDGEMODE_WRAP" with the proper type assert_inherits: property "SVG_EDGEMODE_WRAP" not found in prototype chain
-FAIL SVGFEGaussianBlurElement interface: feGaussianBlur must inherit property "SVG_EDGEMODE_NONE" with the proper type assert_inherits: property "SVG_EDGEMODE_NONE" not found in prototype chain
-PASS SVGFEGaussianBlurElement interface: feGaussianBlur must inherit property "in1" with the proper type
-PASS SVGFEGaussianBlurElement interface: feGaussianBlur must inherit property "stdDeviationX" with the proper type
-PASS SVGFEGaussianBlurElement interface: feGaussianBlur must inherit property "stdDeviationY" with the proper type
-FAIL SVGFEGaussianBlurElement interface: feGaussianBlur must inherit property "edgeMode" with the proper type assert_inherits: property "edgeMode" not found in prototype chain
-PASS SVGFEGaussianBlurElement interface: feGaussianBlur must inherit property "setStdDeviation(float, float)" with the proper type
-PASS SVGFEGaussianBlurElement interface: calling setStdDeviation(float, float) on feGaussianBlur with too few arguments must throw TypeError
-PASS SVGFEGaussianBlurElement interface: feGaussianBlur must inherit property "x" with the proper type
-PASS SVGFEGaussianBlurElement interface: feGaussianBlur must inherit property "y" with the proper type
-PASS SVGFEGaussianBlurElement interface: feGaussianBlur must inherit property "width" with the proper type
-PASS SVGFEGaussianBlurElement interface: feGaussianBlur must inherit property "height" with the proper type
-PASS SVGFEGaussianBlurElement interface: feGaussianBlur must inherit property "result" with the proper type
-PASS SVGElement interface: feGaussianBlur must inherit property "className" with the proper type
-PASS SVGElement interface: feGaussianBlur must inherit property "dataset" with the proper type
-PASS SVGElement interface: feGaussianBlur must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: feGaussianBlur must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: feGaussianBlur must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: feGaussianBlur must inherit property "focus()" with the proper type
-PASS SVGElement interface: feGaussianBlur must inherit property "blur()" with the proper type
-PASS SVGFEImageElement interface: existence and properties of interface object
-PASS SVGFEImageElement interface object length
-PASS SVGFEImageElement interface object name
-PASS SVGFEImageElement interface: existence and properties of interface prototype object
-PASS SVGFEImageElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGFEImageElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGFEImageElement interface: attribute preserveAspectRatio
-PASS Unscopable handled correctly for preserveAspectRatio property on SVGFEImageElement
-FAIL SVGFEImageElement interface: attribute crossOrigin assert_true: The prototype object must have a property "crossOrigin" expected true got false
-PASS Unscopable handled correctly for crossOrigin property on SVGFEImageElement
-PASS SVGFEImageElement interface: attribute x
-PASS Unscopable handled correctly for x property on SVGFEImageElement
-PASS SVGFEImageElement interface: attribute y
-PASS Unscopable handled correctly for y property on SVGFEImageElement
-PASS SVGFEImageElement interface: attribute width
-PASS Unscopable handled correctly for width property on SVGFEImageElement
-PASS SVGFEImageElement interface: attribute height
-PASS Unscopable handled correctly for height property on SVGFEImageElement
-PASS SVGFEImageElement interface: attribute result
-PASS Unscopable handled correctly for result property on SVGFEImageElement
-PASS SVGFEImageElement interface: attribute href
-PASS Unscopable handled correctly for href property on SVGFEImageElement
-PASS SVGFEImageElement must be primary interface of feImage
-PASS Stringification of feImage
-PASS SVGFEImageElement interface: feImage must inherit property "preserveAspectRatio" with the proper type
-FAIL SVGFEImageElement interface: feImage must inherit property "crossOrigin" with the proper type assert_inherits: property "crossOrigin" not found in prototype chain
-PASS SVGFEImageElement interface: feImage must inherit property "x" with the proper type
-PASS SVGFEImageElement interface: feImage must inherit property "y" with the proper type
-PASS SVGFEImageElement interface: feImage must inherit property "width" with the proper type
-PASS SVGFEImageElement interface: feImage must inherit property "height" with the proper type
-PASS SVGFEImageElement interface: feImage must inherit property "result" with the proper type
-PASS SVGFEImageElement interface: feImage must inherit property "href" with the proper type
-PASS SVGElement interface: feImage must inherit property "className" with the proper type
-PASS SVGElement interface: feImage must inherit property "dataset" with the proper type
-PASS SVGElement interface: feImage must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: feImage must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: feImage must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: feImage must inherit property "focus()" with the proper type
-PASS SVGElement interface: feImage must inherit property "blur()" with the proper type
-PASS SVGFEMergeElement interface: existence and properties of interface object
-PASS SVGFEMergeElement interface object length
-PASS SVGFEMergeElement interface object name
-PASS SVGFEMergeElement interface: existence and properties of interface prototype object
-PASS SVGFEMergeElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGFEMergeElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGFEMergeElement interface: attribute x
-PASS Unscopable handled correctly for x property on SVGFEMergeElement
-PASS SVGFEMergeElement interface: attribute y
-PASS Unscopable handled correctly for y property on SVGFEMergeElement
-PASS SVGFEMergeElement interface: attribute width
-PASS Unscopable handled correctly for width property on SVGFEMergeElement
-PASS SVGFEMergeElement interface: attribute height
-PASS Unscopable handled correctly for height property on SVGFEMergeElement
-PASS SVGFEMergeElement interface: attribute result
-PASS Unscopable handled correctly for result property on SVGFEMergeElement
-PASS SVGFEMergeElement must be primary interface of feMerge
-PASS Stringification of feMerge
-PASS SVGFEMergeElement interface: feMerge must inherit property "x" with the proper type
-PASS SVGFEMergeElement interface: feMerge must inherit property "y" with the proper type
-PASS SVGFEMergeElement interface: feMerge must inherit property "width" with the proper type
-PASS SVGFEMergeElement interface: feMerge must inherit property "height" with the proper type
-PASS SVGFEMergeElement interface: feMerge must inherit property "result" with the proper type
-PASS SVGElement interface: feMerge must inherit property "className" with the proper type
-PASS SVGElement interface: feMerge must inherit property "dataset" with the proper type
-PASS SVGElement interface: feMerge must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: feMerge must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: feMerge must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: feMerge must inherit property "focus()" with the proper type
-PASS SVGElement interface: feMerge must inherit property "blur()" with the proper type
-PASS SVGFEMergeNodeElement interface: existence and properties of interface object
-PASS SVGFEMergeNodeElement interface object length
-PASS SVGFEMergeNodeElement interface object name
-PASS SVGFEMergeNodeElement interface: existence and properties of interface prototype object
-PASS SVGFEMergeNodeElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGFEMergeNodeElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGFEMergeNodeElement interface: attribute in1
-PASS Unscopable handled correctly for in1 property on SVGFEMergeNodeElement
-PASS SVGFEMergeNodeElement must be primary interface of feMergeNode
-PASS Stringification of feMergeNode
-PASS SVGFEMergeNodeElement interface: feMergeNode must inherit property "in1" with the proper type
-PASS SVGElement interface: feMergeNode must inherit property "className" with the proper type
-PASS SVGElement interface: feMergeNode must inherit property "dataset" with the proper type
-PASS SVGElement interface: feMergeNode must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: feMergeNode must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: feMergeNode must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: feMergeNode must inherit property "focus()" with the proper type
-PASS SVGElement interface: feMergeNode must inherit property "blur()" with the proper type
-PASS SVGFEMorphologyElement interface: existence and properties of interface object
-PASS SVGFEMorphologyElement interface object length
-PASS SVGFEMorphologyElement interface object name
-PASS SVGFEMorphologyElement interface: existence and properties of interface prototype object
-PASS SVGFEMorphologyElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGFEMorphologyElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGFEMorphologyElement interface: constant SVG_MORPHOLOGY_OPERATOR_UNKNOWN on interface object
-PASS SVGFEMorphologyElement interface: constant SVG_MORPHOLOGY_OPERATOR_UNKNOWN on interface prototype object
-PASS SVGFEMorphologyElement interface: constant SVG_MORPHOLOGY_OPERATOR_ERODE on interface object
-PASS SVGFEMorphologyElement interface: constant SVG_MORPHOLOGY_OPERATOR_ERODE on interface prototype object
-PASS SVGFEMorphologyElement interface: constant SVG_MORPHOLOGY_OPERATOR_DILATE on interface object
-PASS SVGFEMorphologyElement interface: constant SVG_MORPHOLOGY_OPERATOR_DILATE on interface prototype object
-PASS SVGFEMorphologyElement interface: attribute in1
-PASS Unscopable handled correctly for in1 property on SVGFEMorphologyElement
-PASS SVGFEMorphologyElement interface: attribute operator
-PASS Unscopable handled correctly for operator property on SVGFEMorphologyElement
-PASS SVGFEMorphologyElement interface: attribute radiusX
-PASS Unscopable handled correctly for radiusX property on SVGFEMorphologyElement
-PASS SVGFEMorphologyElement interface: attribute radiusY
-PASS Unscopable handled correctly for radiusY property on SVGFEMorphologyElement
-PASS SVGFEMorphologyElement interface: attribute x
-PASS Unscopable handled correctly for x property on SVGFEMorphologyElement
-PASS SVGFEMorphologyElement interface: attribute y
-PASS Unscopable handled correctly for y property on SVGFEMorphologyElement
-PASS SVGFEMorphologyElement interface: attribute width
-PASS Unscopable handled correctly for width property on SVGFEMorphologyElement
-PASS SVGFEMorphologyElement interface: attribute height
-PASS Unscopable handled correctly for height property on SVGFEMorphologyElement
-PASS SVGFEMorphologyElement interface: attribute result
-PASS Unscopable handled correctly for result property on SVGFEMorphologyElement
-PASS SVGFEMorphologyElement must be primary interface of feMorphology
-PASS Stringification of feMorphology
-PASS SVGFEMorphologyElement interface: feMorphology must inherit property "SVG_MORPHOLOGY_OPERATOR_UNKNOWN" with the proper type
-PASS SVGFEMorphologyElement interface: feMorphology must inherit property "SVG_MORPHOLOGY_OPERATOR_ERODE" with the proper type
-PASS SVGFEMorphologyElement interface: feMorphology must inherit property "SVG_MORPHOLOGY_OPERATOR_DILATE" with the proper type
-PASS SVGFEMorphologyElement interface: feMorphology must inherit property "in1" with the proper type
-PASS SVGFEMorphologyElement interface: feMorphology must inherit property "operator" with the proper type
-PASS SVGFEMorphologyElement interface: feMorphology must inherit property "radiusX" with the proper type
-PASS SVGFEMorphologyElement interface: feMorphology must inherit property "radiusY" with the proper type
-PASS SVGFEMorphologyElement interface: feMorphology must inherit property "x" with the proper type
-PASS SVGFEMorphologyElement interface: feMorphology must inherit property "y" with the proper type
-PASS SVGFEMorphologyElement interface: feMorphology must inherit property "width" with the proper type
-PASS SVGFEMorphologyElement interface: feMorphology must inherit property "height" with the proper type
-PASS SVGFEMorphologyElement interface: feMorphology must inherit property "result" with the proper type
-PASS SVGElement interface: feMorphology must inherit property "className" with the proper type
-PASS SVGElement interface: feMorphology must inherit property "dataset" with the proper type
-PASS SVGElement interface: feMorphology must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: feMorphology must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: feMorphology must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: feMorphology must inherit property "focus()" with the proper type
-PASS SVGElement interface: feMorphology must inherit property "blur()" with the proper type
-PASS SVGFEOffsetElement interface: existence and properties of interface object
-PASS SVGFEOffsetElement interface object length
-PASS SVGFEOffsetElement interface object name
-PASS SVGFEOffsetElement interface: existence and properties of interface prototype object
-PASS SVGFEOffsetElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGFEOffsetElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGFEOffsetElement interface: attribute in1
-PASS Unscopable handled correctly for in1 property on SVGFEOffsetElement
-PASS SVGFEOffsetElement interface: attribute dx
-PASS Unscopable handled correctly for dx property on SVGFEOffsetElement
-PASS SVGFEOffsetElement interface: attribute dy
-PASS Unscopable handled correctly for dy property on SVGFEOffsetElement
-PASS SVGFEOffsetElement interface: attribute x
-PASS Unscopable handled correctly for x property on SVGFEOffsetElement
-PASS SVGFEOffsetElement interface: attribute y
-PASS Unscopable handled correctly for y property on SVGFEOffsetElement
-PASS SVGFEOffsetElement interface: attribute width
-PASS Unscopable handled correctly for width property on SVGFEOffsetElement
-PASS SVGFEOffsetElement interface: attribute height
-PASS Unscopable handled correctly for height property on SVGFEOffsetElement
-PASS SVGFEOffsetElement interface: attribute result
-PASS Unscopable handled correctly for result property on SVGFEOffsetElement
-PASS SVGFESpecularLightingElement interface: existence and properties of interface object
-PASS SVGFESpecularLightingElement interface object length
-PASS SVGFESpecularLightingElement interface object name
-PASS SVGFESpecularLightingElement interface: existence and properties of interface prototype object
-PASS SVGFESpecularLightingElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGFESpecularLightingElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGFESpecularLightingElement interface: attribute in1
-PASS Unscopable handled correctly for in1 property on SVGFESpecularLightingElement
-PASS SVGFESpecularLightingElement interface: attribute surfaceScale
-PASS Unscopable handled correctly for surfaceScale property on SVGFESpecularLightingElement
-PASS SVGFESpecularLightingElement interface: attribute specularConstant
-PASS Unscopable handled correctly for specularConstant property on SVGFESpecularLightingElement
-PASS SVGFESpecularLightingElement interface: attribute specularExponent
-PASS Unscopable handled correctly for specularExponent property on SVGFESpecularLightingElement
-PASS SVGFESpecularLightingElement interface: attribute kernelUnitLengthX
-PASS Unscopable handled correctly for kernelUnitLengthX property on SVGFESpecularLightingElement
-PASS SVGFESpecularLightingElement interface: attribute kernelUnitLengthY
-PASS Unscopable handled correctly for kernelUnitLengthY property on SVGFESpecularLightingElement
-PASS SVGFESpecularLightingElement interface: attribute x
-PASS Unscopable handled correctly for x property on SVGFESpecularLightingElement
-PASS SVGFESpecularLightingElement interface: attribute y
-PASS Unscopable handled correctly for y property on SVGFESpecularLightingElement
-PASS SVGFESpecularLightingElement interface: attribute width
-PASS Unscopable handled correctly for width property on SVGFESpecularLightingElement
-PASS SVGFESpecularLightingElement interface: attribute height
-PASS Unscopable handled correctly for height property on SVGFESpecularLightingElement
-PASS SVGFESpecularLightingElement interface: attribute result
-PASS Unscopable handled correctly for result property on SVGFESpecularLightingElement
-PASS SVGFESpecularLightingElement must be primary interface of feSpecularLighting
-PASS Stringification of feSpecularLighting
-PASS SVGFESpecularLightingElement interface: feSpecularLighting must inherit property "in1" with the proper type
-PASS SVGFESpecularLightingElement interface: feSpecularLighting must inherit property "surfaceScale" with the proper type
-PASS SVGFESpecularLightingElement interface: feSpecularLighting must inherit property "specularConstant" with the proper type
-PASS SVGFESpecularLightingElement interface: feSpecularLighting must inherit property "specularExponent" with the proper type
-PASS SVGFESpecularLightingElement interface: feSpecularLighting must inherit property "kernelUnitLengthX" with the proper type
-PASS SVGFESpecularLightingElement interface: feSpecularLighting must inherit property "kernelUnitLengthY" with the proper type
-PASS SVGFESpecularLightingElement interface: feSpecularLighting must inherit property "x" with the proper type
-PASS SVGFESpecularLightingElement interface: feSpecularLighting must inherit property "y" with the proper type
-PASS SVGFESpecularLightingElement interface: feSpecularLighting must inherit property "width" with the proper type
-PASS SVGFESpecularLightingElement interface: feSpecularLighting must inherit property "height" with the proper type
-PASS SVGFESpecularLightingElement interface: feSpecularLighting must inherit property "result" with the proper type
-PASS SVGElement interface: feSpecularLighting must inherit property "className" with the proper type
-PASS SVGElement interface: feSpecularLighting must inherit property "dataset" with the proper type
-PASS SVGElement interface: feSpecularLighting must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: feSpecularLighting must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: feSpecularLighting must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: feSpecularLighting must inherit property "focus()" with the proper type
-PASS SVGElement interface: feSpecularLighting must inherit property "blur()" with the proper type
-PASS SVGFETileElement interface: existence and properties of interface object
-PASS SVGFETileElement interface object length
-PASS SVGFETileElement interface object name
-PASS SVGFETileElement interface: existence and properties of interface prototype object
-PASS SVGFETileElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGFETileElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGFETileElement interface: attribute in1
-PASS Unscopable handled correctly for in1 property on SVGFETileElement
-PASS SVGFETileElement interface: attribute x
-PASS Unscopable handled correctly for x property on SVGFETileElement
-PASS SVGFETileElement interface: attribute y
-PASS Unscopable handled correctly for y property on SVGFETileElement
-PASS SVGFETileElement interface: attribute width
-PASS Unscopable handled correctly for width property on SVGFETileElement
-PASS SVGFETileElement interface: attribute height
-PASS Unscopable handled correctly for height property on SVGFETileElement
-PASS SVGFETileElement interface: attribute result
-PASS Unscopable handled correctly for result property on SVGFETileElement
-PASS SVGFETileElement must be primary interface of feTile
-PASS Stringification of feTile
-PASS SVGFETileElement interface: feTile must inherit property "in1" with the proper type
-PASS SVGFETileElement interface: feTile must inherit property "x" with the proper type
-PASS SVGFETileElement interface: feTile must inherit property "y" with the proper type
-PASS SVGFETileElement interface: feTile must inherit property "width" with the proper type
-PASS SVGFETileElement interface: feTile must inherit property "height" with the proper type
-PASS SVGFETileElement interface: feTile must inherit property "result" with the proper type
-PASS SVGElement interface: feTile must inherit property "className" with the proper type
-PASS SVGElement interface: feTile must inherit property "dataset" with the proper type
-PASS SVGElement interface: feTile must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: feTile must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: feTile must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: feTile must inherit property "focus()" with the proper type
-PASS SVGElement interface: feTile must inherit property "blur()" with the proper type
-PASS SVGFETurbulenceElement interface: existence and properties of interface object
-PASS SVGFETurbulenceElement interface object length
-PASS SVGFETurbulenceElement interface object name
-PASS SVGFETurbulenceElement interface: existence and properties of interface prototype object
-PASS SVGFETurbulenceElement interface: existence and properties of interface prototype object's "constructor" property
-PASS SVGFETurbulenceElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS SVGFETurbulenceElement interface: constant SVG_TURBULENCE_TYPE_UNKNOWN on interface object
-PASS SVGFETurbulenceElement interface: constant SVG_TURBULENCE_TYPE_UNKNOWN on interface prototype object
-PASS SVGFETurbulenceElement interface: constant SVG_TURBULENCE_TYPE_FRACTALNOISE on interface object
-PASS SVGFETurbulenceElement interface: constant SVG_TURBULENCE_TYPE_FRACTALNOISE on interface prototype object
-PASS SVGFETurbulenceElement interface: constant SVG_TURBULENCE_TYPE_TURBULENCE on interface object
-PASS SVGFETurbulenceElement interface: constant SVG_TURBULENCE_TYPE_TURBULENCE on interface prototype object
-PASS SVGFETurbulenceElement interface: constant SVG_STITCHTYPE_UNKNOWN on interface object
-PASS SVGFETurbulenceElement interface: constant SVG_STITCHTYPE_UNKNOWN on interface prototype object
-PASS SVGFETurbulenceElement interface: constant SVG_STITCHTYPE_STITCH on interface object
-PASS SVGFETurbulenceElement interface: constant SVG_STITCHTYPE_STITCH on interface prototype object
-PASS SVGFETurbulenceElement interface: constant SVG_STITCHTYPE_NOSTITCH on interface object
-PASS SVGFETurbulenceElement interface: constant SVG_STITCHTYPE_NOSTITCH on interface prototype object
-PASS SVGFETurbulenceElement interface: attribute baseFrequencyX
-PASS Unscopable handled correctly for baseFrequencyX property on SVGFETurbulenceElement
-PASS SVGFETurbulenceElement interface: attribute baseFrequencyY
-PASS Unscopable handled correctly for baseFrequencyY property on SVGFETurbulenceElement
-PASS SVGFETurbulenceElement interface: attribute numOctaves
-PASS Unscopable handled correctly for numOctaves property on SVGFETurbulenceElement
-PASS SVGFETurbulenceElement interface: attribute seed
-PASS Unscopable handled correctly for seed property on SVGFETurbulenceElement
-PASS SVGFETurbulenceElement interface: attribute stitchTiles
-PASS Unscopable handled correctly for stitchTiles property on SVGFETurbulenceElement
-PASS SVGFETurbulenceElement interface: attribute type
-PASS Unscopable handled correctly for type property on SVGFETurbulenceElement
-PASS SVGFETurbulenceElement interface: attribute x
-PASS Unscopable handled correctly for x property on SVGFETurbulenceElement
-PASS SVGFETurbulenceElement interface: attribute y
-PASS Unscopable handled correctly for y property on SVGFETurbulenceElement
-PASS SVGFETurbulenceElement interface: attribute width
-PASS Unscopable handled correctly for width property on SVGFETurbulenceElement
-PASS SVGFETurbulenceElement interface: attribute height
-PASS Unscopable handled correctly for height property on SVGFETurbulenceElement
-PASS SVGFETurbulenceElement interface: attribute result
-PASS Unscopable handled correctly for result property on SVGFETurbulenceElement
-PASS SVGFETurbulenceElement must be primary interface of feTurbulence
-PASS Stringification of feTurbulence
-PASS SVGFETurbulenceElement interface: feTurbulence must inherit property "SVG_TURBULENCE_TYPE_UNKNOWN" with the proper type
-PASS SVGFETurbulenceElement interface: feTurbulence must inherit property "SVG_TURBULENCE_TYPE_FRACTALNOISE" with the proper type
-PASS SVGFETurbulenceElement interface: feTurbulence must inherit property "SVG_TURBULENCE_TYPE_TURBULENCE" with the proper type
-PASS SVGFETurbulenceElement interface: feTurbulence must inherit property "SVG_STITCHTYPE_UNKNOWN" with the proper type
-PASS SVGFETurbulenceElement interface: feTurbulence must inherit property "SVG_STITCHTYPE_STITCH" with the proper type
-PASS SVGFETurbulenceElement interface: feTurbulence must inherit property "SVG_STITCHTYPE_NOSTITCH" with the proper type
-PASS SVGFETurbulenceElement interface: feTurbulence must inherit property "baseFrequencyX" with the proper type
-PASS SVGFETurbulenceElement interface: feTurbulence must inherit property "baseFrequencyY" with the proper type
-PASS SVGFETurbulenceElement interface: feTurbulence must inherit property "numOctaves" with the proper type
-PASS SVGFETurbulenceElement interface: feTurbulence must inherit property "seed" with the proper type
-PASS SVGFETurbulenceElement interface: feTurbulence must inherit property "stitchTiles" with the proper type
-PASS SVGFETurbulenceElement interface: feTurbulence must inherit property "type" with the proper type
-PASS SVGFETurbulenceElement interface: feTurbulence must inherit property "x" with the proper type
-PASS SVGFETurbulenceElement interface: feTurbulence must inherit property "y" with the proper type
-PASS SVGFETurbulenceElement interface: feTurbulence must inherit property "width" with the proper type
-PASS SVGFETurbulenceElement interface: feTurbulence must inherit property "height" with the proper type
-PASS SVGFETurbulenceElement interface: feTurbulence must inherit property "result" with the proper type
-PASS SVGElement interface: feTurbulence must inherit property "className" with the proper type
-PASS SVGElement interface: feTurbulence must inherit property "dataset" with the proper type
-PASS SVGElement interface: feTurbulence must inherit property "ownerSVGElement" with the proper type
-PASS SVGElement interface: feTurbulence must inherit property "viewportElement" with the proper type
-PASS SVGElement interface: feTurbulence must inherit property "tabIndex" with the proper type
-PASS SVGElement interface: feTurbulence must inherit property "focus()" with the proper type
-PASS SVGElement interface: feTurbulence must inherit property "blur()" with the proper type
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/url/interfaces.any-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/url/interfaces.any-expected.txt
deleted file mode 100644
index 4bd8ffd2..0000000
--- a/third_party/WebKit/LayoutTests/platform/win/external/wpt/url/interfaces.any-expected.txt
+++ /dev/null
@@ -1,105 +0,0 @@
-This is a testharness.js-based test.
-Found 101 tests; 98 PASS, 3 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS URL interface: existence and properties of interface object
-PASS URL interface object length
-PASS URL interface object name
-PASS URL interface: legacy window alias
-PASS URL interface: existence and properties of interface prototype object
-PASS URL interface: existence and properties of interface prototype object's "constructor" property
-PASS URL interface: existence and properties of interface prototype object's @@unscopables property
-PASS URL interface: attribute href
-PASS Unscopable handled correctly for href property on URL
-PASS URL interface: stringifier
-PASS URL interface: attribute origin
-PASS Unscopable handled correctly for origin property on URL
-PASS URL interface: attribute protocol
-PASS Unscopable handled correctly for protocol property on URL
-PASS URL interface: attribute username
-PASS Unscopable handled correctly for username property on URL
-PASS URL interface: attribute password
-PASS Unscopable handled correctly for password property on URL
-PASS URL interface: attribute host
-PASS Unscopable handled correctly for host property on URL
-PASS URL interface: attribute hostname
-PASS Unscopable handled correctly for hostname property on URL
-PASS URL interface: attribute port
-PASS Unscopable handled correctly for port property on URL
-PASS URL interface: attribute pathname
-PASS Unscopable handled correctly for pathname property on URL
-PASS URL interface: attribute search
-PASS Unscopable handled correctly for search property on URL
-PASS URL interface: attribute searchParams
-PASS Unscopable handled correctly for searchParams property on URL
-PASS URL interface: attribute hash
-PASS Unscopable handled correctly for hash property on URL
-FAIL URL interface: operation toJSON() assert_own_property: interface prototype object missing non-static operation expected property "toJSON" missing
-PASS Unscopable handled correctly for toJSON() on URL
-PASS URL must be primary interface of new URL("http://foo")
-PASS Stringification of new URL("http://foo")
-PASS URL interface: new URL("http://foo") must inherit property "href" with the proper type
-PASS URL interface: new URL("http://foo") must inherit property "origin" with the proper type
-PASS URL interface: new URL("http://foo") must inherit property "protocol" with the proper type
-PASS URL interface: new URL("http://foo") must inherit property "username" with the proper type
-PASS URL interface: new URL("http://foo") must inherit property "password" with the proper type
-PASS URL interface: new URL("http://foo") must inherit property "host" with the proper type
-PASS URL interface: new URL("http://foo") must inherit property "hostname" with the proper type
-PASS URL interface: new URL("http://foo") must inherit property "port" with the proper type
-PASS URL interface: new URL("http://foo") must inherit property "pathname" with the proper type
-PASS URL interface: new URL("http://foo") must inherit property "search" with the proper type
-PASS URL interface: new URL("http://foo") must inherit property "searchParams" with the proper type
-PASS URL interface: new URL("http://foo") must inherit property "hash" with the proper type
-FAIL URL interface: new URL("http://foo") must inherit property "toJSON()" with the proper type assert_inherits: property "toJSON" not found in prototype chain
-FAIL Test toJSON operation of URL memberHolderObject.toJSON is not a function
-PASS URLSearchParams interface: existence and properties of interface object
-PASS URLSearchParams interface object length
-PASS URLSearchParams interface object name
-PASS URLSearchParams interface: existence and properties of interface prototype object
-PASS URLSearchParams interface: existence and properties of interface prototype object's "constructor" property
-PASS URLSearchParams interface: existence and properties of interface prototype object's @@unscopables property
-PASS URLSearchParams interface: operation append(USVString, USVString)
-PASS Unscopable handled correctly for append(USVString, USVString) on URLSearchParams
-PASS URLSearchParams interface: operation delete(USVString)
-PASS Unscopable handled correctly for delete(USVString) on URLSearchParams
-PASS URLSearchParams interface: operation get(USVString)
-PASS Unscopable handled correctly for get(USVString) on URLSearchParams
-PASS URLSearchParams interface: operation getAll(USVString)
-PASS Unscopable handled correctly for getAll(USVString) on URLSearchParams
-PASS URLSearchParams interface: operation has(USVString)
-PASS Unscopable handled correctly for has(USVString) on URLSearchParams
-PASS URLSearchParams interface: operation set(USVString, USVString)
-PASS Unscopable handled correctly for set(USVString, USVString) on URLSearchParams
-PASS URLSearchParams interface: operation sort()
-PASS Unscopable handled correctly for sort() on URLSearchParams
-PASS Testing Symbol.iterator property of iterable interface URLSearchParams
-PASS Testing pair iterable interface URLSearchParams
-PASS URLSearchParams interface: stringifier
-PASS URLSearchParams interface: operation entries()
-PASS Unscopable handled correctly for entries() on URLSearchParams
-PASS URLSearchParams interface: operation keys()
-PASS Unscopable handled correctly for keys() on URLSearchParams
-PASS URLSearchParams interface: operation values()
-PASS Unscopable handled correctly for values() on URLSearchParams
-PASS URLSearchParams interface: operation forEach(function, any)
-PASS Unscopable handled correctly for forEach(function, any) on URLSearchParams
-PASS URLSearchParams must be primary interface of new URLSearchParams("hi=there&thank=you")
-PASS Stringification of new URLSearchParams("hi=there&thank=you")
-PASS URLSearchParams interface: new URLSearchParams("hi=there&thank=you") must inherit property "append(USVString, USVString)" with the proper type
-PASS URLSearchParams interface: calling append(USVString, USVString) on new URLSearchParams("hi=there&thank=you") with too few arguments must throw TypeError
-PASS URLSearchParams interface: new URLSearchParams("hi=there&thank=you") must inherit property "delete(USVString)" with the proper type
-PASS URLSearchParams interface: calling delete(USVString) on new URLSearchParams("hi=there&thank=you") with too few arguments must throw TypeError
-PASS URLSearchParams interface: new URLSearchParams("hi=there&thank=you") must inherit property "get(USVString)" with the proper type
-PASS URLSearchParams interface: calling get(USVString) on new URLSearchParams("hi=there&thank=you") with too few arguments must throw TypeError
-PASS URLSearchParams interface: new URLSearchParams("hi=there&thank=you") must inherit property "getAll(USVString)" with the proper type
-PASS URLSearchParams interface: calling getAll(USVString) on new URLSearchParams("hi=there&thank=you") with too few arguments must throw TypeError
-PASS URLSearchParams interface: new URLSearchParams("hi=there&thank=you") must inherit property "has(USVString)" with the proper type
-PASS URLSearchParams interface: calling has(USVString) on new URLSearchParams("hi=there&thank=you") with too few arguments must throw TypeError
-PASS URLSearchParams interface: new URLSearchParams("hi=there&thank=you") must inherit property "set(USVString, USVString)" with the proper type
-PASS URLSearchParams interface: calling set(USVString, USVString) on new URLSearchParams("hi=there&thank=you") with too few arguments must throw TypeError
-PASS URLSearchParams interface: new URLSearchParams("hi=there&thank=you") must inherit property "sort()" with the proper type
-PASS URLSearchParams interface: new URLSearchParams("hi=there&thank=you") must inherit property "entries()" with the proper type
-PASS URLSearchParams interface: new URLSearchParams("hi=there&thank=you") must inherit property "keys()" with the proper type
-PASS URLSearchParams interface: new URLSearchParams("hi=there&thank=you") must inherit property "values()" with the proper type
-PASS URLSearchParams interface: new URLSearchParams("hi=there&thank=you") must inherit property "forEach(function, any)" with the proper type
-PASS URLSearchParams interface: calling forEach(function, any) on new URLSearchParams("hi=there&thank=you") with too few arguments must throw TypeError
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/url/interfaces.any.worker-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/url/interfaces.any.worker-expected.txt
deleted file mode 100644
index 4bd8ffd2..0000000
--- a/third_party/WebKit/LayoutTests/platform/win/external/wpt/url/interfaces.any.worker-expected.txt
+++ /dev/null
@@ -1,105 +0,0 @@
-This is a testharness.js-based test.
-Found 101 tests; 98 PASS, 3 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS URL interface: existence and properties of interface object
-PASS URL interface object length
-PASS URL interface object name
-PASS URL interface: legacy window alias
-PASS URL interface: existence and properties of interface prototype object
-PASS URL interface: existence and properties of interface prototype object's "constructor" property
-PASS URL interface: existence and properties of interface prototype object's @@unscopables property
-PASS URL interface: attribute href
-PASS Unscopable handled correctly for href property on URL
-PASS URL interface: stringifier
-PASS URL interface: attribute origin
-PASS Unscopable handled correctly for origin property on URL
-PASS URL interface: attribute protocol
-PASS Unscopable handled correctly for protocol property on URL
-PASS URL interface: attribute username
-PASS Unscopable handled correctly for username property on URL
-PASS URL interface: attribute password
-PASS Unscopable handled correctly for password property on URL
-PASS URL interface: attribute host
-PASS Unscopable handled correctly for host property on URL
-PASS URL interface: attribute hostname
-PASS Unscopable handled correctly for hostname property on URL
-PASS URL interface: attribute port
-PASS Unscopable handled correctly for port property on URL
-PASS URL interface: attribute pathname
-PASS Unscopable handled correctly for pathname property on URL
-PASS URL interface: attribute search
-PASS Unscopable handled correctly for search property on URL
-PASS URL interface: attribute searchParams
-PASS Unscopable handled correctly for searchParams property on URL
-PASS URL interface: attribute hash
-PASS Unscopable handled correctly for hash property on URL
-FAIL URL interface: operation toJSON() assert_own_property: interface prototype object missing non-static operation expected property "toJSON" missing
-PASS Unscopable handled correctly for toJSON() on URL
-PASS URL must be primary interface of new URL("http://foo")
-PASS Stringification of new URL("http://foo")
-PASS URL interface: new URL("http://foo") must inherit property "href" with the proper type
-PASS URL interface: new URL("http://foo") must inherit property "origin" with the proper type
-PASS URL interface: new URL("http://foo") must inherit property "protocol" with the proper type
-PASS URL interface: new URL("http://foo") must inherit property "username" with the proper type
-PASS URL interface: new URL("http://foo") must inherit property "password" with the proper type
-PASS URL interface: new URL("http://foo") must inherit property "host" with the proper type
-PASS URL interface: new URL("http://foo") must inherit property "hostname" with the proper type
-PASS URL interface: new URL("http://foo") must inherit property "port" with the proper type
-PASS URL interface: new URL("http://foo") must inherit property "pathname" with the proper type
-PASS URL interface: new URL("http://foo") must inherit property "search" with the proper type
-PASS URL interface: new URL("http://foo") must inherit property "searchParams" with the proper type
-PASS URL interface: new URL("http://foo") must inherit property "hash" with the proper type
-FAIL URL interface: new URL("http://foo") must inherit property "toJSON()" with the proper type assert_inherits: property "toJSON" not found in prototype chain
-FAIL Test toJSON operation of URL memberHolderObject.toJSON is not a function
-PASS URLSearchParams interface: existence and properties of interface object
-PASS URLSearchParams interface object length
-PASS URLSearchParams interface object name
-PASS URLSearchParams interface: existence and properties of interface prototype object
-PASS URLSearchParams interface: existence and properties of interface prototype object's "constructor" property
-PASS URLSearchParams interface: existence and properties of interface prototype object's @@unscopables property
-PASS URLSearchParams interface: operation append(USVString, USVString)
-PASS Unscopable handled correctly for append(USVString, USVString) on URLSearchParams
-PASS URLSearchParams interface: operation delete(USVString)
-PASS Unscopable handled correctly for delete(USVString) on URLSearchParams
-PASS URLSearchParams interface: operation get(USVString)
-PASS Unscopable handled correctly for get(USVString) on URLSearchParams
-PASS URLSearchParams interface: operation getAll(USVString)
-PASS Unscopable handled correctly for getAll(USVString) on URLSearchParams
-PASS URLSearchParams interface: operation has(USVString)
-PASS Unscopable handled correctly for has(USVString) on URLSearchParams
-PASS URLSearchParams interface: operation set(USVString, USVString)
-PASS Unscopable handled correctly for set(USVString, USVString) on URLSearchParams
-PASS URLSearchParams interface: operation sort()
-PASS Unscopable handled correctly for sort() on URLSearchParams
-PASS Testing Symbol.iterator property of iterable interface URLSearchParams
-PASS Testing pair iterable interface URLSearchParams
-PASS URLSearchParams interface: stringifier
-PASS URLSearchParams interface: operation entries()
-PASS Unscopable handled correctly for entries() on URLSearchParams
-PASS URLSearchParams interface: operation keys()
-PASS Unscopable handled correctly for keys() on URLSearchParams
-PASS URLSearchParams interface: operation values()
-PASS Unscopable handled correctly for values() on URLSearchParams
-PASS URLSearchParams interface: operation forEach(function, any)
-PASS Unscopable handled correctly for forEach(function, any) on URLSearchParams
-PASS URLSearchParams must be primary interface of new URLSearchParams("hi=there&thank=you")
-PASS Stringification of new URLSearchParams("hi=there&thank=you")
-PASS URLSearchParams interface: new URLSearchParams("hi=there&thank=you") must inherit property "append(USVString, USVString)" with the proper type
-PASS URLSearchParams interface: calling append(USVString, USVString) on new URLSearchParams("hi=there&thank=you") with too few arguments must throw TypeError
-PASS URLSearchParams interface: new URLSearchParams("hi=there&thank=you") must inherit property "delete(USVString)" with the proper type
-PASS URLSearchParams interface: calling delete(USVString) on new URLSearchParams("hi=there&thank=you") with too few arguments must throw TypeError
-PASS URLSearchParams interface: new URLSearchParams("hi=there&thank=you") must inherit property "get(USVString)" with the proper type
-PASS URLSearchParams interface: calling get(USVString) on new URLSearchParams("hi=there&thank=you") with too few arguments must throw TypeError
-PASS URLSearchParams interface: new URLSearchParams("hi=there&thank=you") must inherit property "getAll(USVString)" with the proper type
-PASS URLSearchParams interface: calling getAll(USVString) on new URLSearchParams("hi=there&thank=you") with too few arguments must throw TypeError
-PASS URLSearchParams interface: new URLSearchParams("hi=there&thank=you") must inherit property "has(USVString)" with the proper type
-PASS URLSearchParams interface: calling has(USVString) on new URLSearchParams("hi=there&thank=you") with too few arguments must throw TypeError
-PASS URLSearchParams interface: new URLSearchParams("hi=there&thank=you") must inherit property "set(USVString, USVString)" with the proper type
-PASS URLSearchParams interface: calling set(USVString, USVString) on new URLSearchParams("hi=there&thank=you") with too few arguments must throw TypeError
-PASS URLSearchParams interface: new URLSearchParams("hi=there&thank=you") must inherit property "sort()" with the proper type
-PASS URLSearchParams interface: new URLSearchParams("hi=there&thank=you") must inherit property "entries()" with the proper type
-PASS URLSearchParams interface: new URLSearchParams("hi=there&thank=you") must inherit property "keys()" with the proper type
-PASS URLSearchParams interface: new URLSearchParams("hi=there&thank=you") must inherit property "values()" with the proper type
-PASS URLSearchParams interface: new URLSearchParams("hi=there&thank=you") must inherit property "forEach(function, any)" with the proper type
-PASS URLSearchParams interface: calling forEach(function, any) on new URLSearchParams("hi=there&thank=you") with too few arguments must throw TypeError
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/web-animations/interfaces/Animation/idlharness-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/web-animations/interfaces/Animation/idlharness-expected.txt
deleted file mode 100644
index d416e23b..0000000
--- a/third_party/WebKit/LayoutTests/platform/win/external/wpt/web-animations/interfaces/Animation/idlharness-expected.txt
+++ /dev/null
@@ -1,67 +0,0 @@
-This is a testharness.js-based test.
-Found 63 tests; 57 PASS, 6 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS Animation interface: existence and properties of interface object
-PASS Animation interface object length
-PASS Animation interface object name
-PASS Animation interface: existence and properties of interface prototype object
-PASS Animation interface: existence and properties of interface prototype object's "constructor" property
-PASS Animation interface: existence and properties of interface prototype object's @@unscopables property
-PASS Animation interface: attribute id
-PASS Unscopable handled correctly for id property on Animation
-PASS Animation interface: attribute effect
-PASS Unscopable handled correctly for effect property on Animation
-FAIL Animation interface: attribute timeline assert_equals: setter must be function for PutForwards, Replaceable, or non-readonly attributes expected "function" but got "undefined"
-PASS Unscopable handled correctly for timeline property on Animation
-PASS Animation interface: attribute startTime
-PASS Unscopable handled correctly for startTime property on Animation
-PASS Animation interface: attribute currentTime
-PASS Unscopable handled correctly for currentTime property on Animation
-PASS Animation interface: attribute playbackRate
-PASS Unscopable handled correctly for playbackRate property on Animation
-PASS Animation interface: attribute playState
-PASS Unscopable handled correctly for playState property on Animation
-FAIL Animation interface: attribute pending assert_true: The prototype object must have a property "pending" expected true got false
-PASS Unscopable handled correctly for pending property on Animation
-PASS Animation interface: attribute ready
-PASS Unscopable handled correctly for ready property on Animation
-PASS Animation interface: attribute finished
-PASS Unscopable handled correctly for finished property on Animation
-PASS Animation interface: attribute onfinish
-PASS Unscopable handled correctly for onfinish property on Animation
-PASS Animation interface: attribute oncancel
-PASS Unscopable handled correctly for oncancel property on Animation
-PASS Animation interface: operation cancel()
-PASS Unscopable handled correctly for cancel() on Animation
-PASS Animation interface: operation finish()
-PASS Unscopable handled correctly for finish() on Animation
-PASS Animation interface: operation play()
-PASS Unscopable handled correctly for play() on Animation
-PASS Animation interface: operation pause()
-PASS Unscopable handled correctly for pause() on Animation
-FAIL Animation interface: operation updatePlaybackRate(double) assert_own_property: interface prototype object missing non-static operation expected property "updatePlaybackRate" missing
-PASS Unscopable handled correctly for updatePlaybackRate(double) on Animation
-PASS Animation interface: operation reverse()
-PASS Unscopable handled correctly for reverse() on Animation
-PASS Animation must be primary interface of new Animation()
-PASS Stringification of new Animation()
-PASS Animation interface: new Animation() must inherit property "id" with the proper type
-PASS Animation interface: new Animation() must inherit property "effect" with the proper type
-PASS Animation interface: new Animation() must inherit property "timeline" with the proper type
-PASS Animation interface: new Animation() must inherit property "startTime" with the proper type
-PASS Animation interface: new Animation() must inherit property "currentTime" with the proper type
-PASS Animation interface: new Animation() must inherit property "playbackRate" with the proper type
-PASS Animation interface: new Animation() must inherit property "playState" with the proper type
-FAIL Animation interface: new Animation() must inherit property "pending" with the proper type assert_inherits: property "pending" not found in prototype chain
-PASS Animation interface: new Animation() must inherit property "ready" with the proper type
-PASS Animation interface: new Animation() must inherit property "finished" with the proper type
-PASS Animation interface: new Animation() must inherit property "onfinish" with the proper type
-PASS Animation interface: new Animation() must inherit property "oncancel" with the proper type
-PASS Animation interface: new Animation() must inherit property "cancel()" with the proper type
-PASS Animation interface: new Animation() must inherit property "finish()" with the proper type
-PASS Animation interface: new Animation() must inherit property "play()" with the proper type
-PASS Animation interface: new Animation() must inherit property "pause()" with the proper type
-FAIL Animation interface: new Animation() must inherit property "updatePlaybackRate(double)" with the proper type assert_inherits: property "updatePlaybackRate" not found in prototype chain
-FAIL Animation interface: calling updatePlaybackRate(double) on new Animation() with too few arguments must throw TypeError assert_inherits: property "updatePlaybackRate" not found in prototype chain
-PASS Animation interface: new Animation() must inherit property "reverse()" with the proper type
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/web-animations/interfaces/KeyframeEffect/idlharness-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/web-animations/interfaces/KeyframeEffect/idlharness-expected.txt
deleted file mode 100644
index 5c87a92..0000000
--- a/third_party/WebKit/LayoutTests/platform/win/external/wpt/web-animations/interfaces/KeyframeEffect/idlharness-expected.txt
+++ /dev/null
@@ -1,63 +0,0 @@
-This is a testharness.js-based test.
-Found 59 tests; 53 PASS, 6 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS AnimationEffectReadOnly interface: existence and properties of interface object
-PASS AnimationEffectReadOnly interface object length
-PASS AnimationEffectReadOnly interface object name
-PASS AnimationEffectReadOnly interface: existence and properties of interface prototype object
-PASS AnimationEffectReadOnly interface: existence and properties of interface prototype object's "constructor" property
-PASS AnimationEffectReadOnly interface: existence and properties of interface prototype object's @@unscopables property
-PASS AnimationEffectReadOnly interface: attribute timing
-PASS Unscopable handled correctly for timing property on AnimationEffectReadOnly
-PASS AnimationEffectReadOnly interface: operation getComputedTiming()
-PASS Unscopable handled correctly for getComputedTiming() on AnimationEffectReadOnly
-PASS KeyframeEffectReadOnly interface: existence and properties of interface object
-PASS KeyframeEffectReadOnly interface object length
-PASS KeyframeEffectReadOnly interface object name
-PASS KeyframeEffectReadOnly interface: existence and properties of interface prototype object
-PASS KeyframeEffectReadOnly interface: existence and properties of interface prototype object's "constructor" property
-PASS KeyframeEffectReadOnly interface: existence and properties of interface prototype object's @@unscopables property
-PASS KeyframeEffectReadOnly interface: attribute target
-PASS Unscopable handled correctly for target property on KeyframeEffectReadOnly
-FAIL KeyframeEffectReadOnly interface: attribute iterationComposite assert_true: The prototype object must have a property "iterationComposite" expected true got false
-PASS Unscopable handled correctly for iterationComposite property on KeyframeEffectReadOnly
-PASS KeyframeEffectReadOnly interface: attribute composite
-PASS Unscopable handled correctly for composite property on KeyframeEffectReadOnly
-PASS KeyframeEffectReadOnly interface: operation getKeyframes()
-PASS Unscopable handled correctly for getKeyframes() on KeyframeEffectReadOnly
-PASS KeyframeEffectReadOnly must be primary interface of new KeyframeEffectReadOnly(null, null)
-PASS Stringification of new KeyframeEffectReadOnly(null, null)
-PASS KeyframeEffectReadOnly interface: new KeyframeEffectReadOnly(null, null) must inherit property "target" with the proper type
-FAIL KeyframeEffectReadOnly interface: new KeyframeEffectReadOnly(null, null) must inherit property "iterationComposite" with the proper type assert_inherits: property "iterationComposite" not found in prototype chain
-PASS KeyframeEffectReadOnly interface: new KeyframeEffectReadOnly(null, null) must inherit property "composite" with the proper type
-PASS KeyframeEffectReadOnly interface: new KeyframeEffectReadOnly(null, null) must inherit property "getKeyframes()" with the proper type
-PASS AnimationEffectReadOnly interface: new KeyframeEffectReadOnly(null, null) must inherit property "timing" with the proper type
-PASS AnimationEffectReadOnly interface: new KeyframeEffectReadOnly(null, null) must inherit property "getComputedTiming()" with the proper type
-PASS KeyframeEffect interface: existence and properties of interface object
-PASS KeyframeEffect interface object length
-PASS KeyframeEffect interface object name
-PASS KeyframeEffect interface: existence and properties of interface prototype object
-PASS KeyframeEffect interface: existence and properties of interface prototype object's "constructor" property
-PASS KeyframeEffect interface: existence and properties of interface prototype object's @@unscopables property
-FAIL KeyframeEffect interface: attribute target assert_own_property: expected property "target" missing
-PASS Unscopable handled correctly for target property on KeyframeEffect
-FAIL KeyframeEffect interface: attribute iterationComposite assert_true: The prototype object must have a property "iterationComposite" expected true got false
-PASS Unscopable handled correctly for iterationComposite property on KeyframeEffect
-PASS KeyframeEffect interface: attribute composite
-PASS Unscopable handled correctly for composite property on KeyframeEffect
-PASS KeyframeEffect interface: operation setKeyframes(object)
-PASS Unscopable handled correctly for setKeyframes(object) on KeyframeEffect
-PASS KeyframeEffect must be primary interface of new KeyframeEffect(null, null)
-PASS Stringification of new KeyframeEffect(null, null)
-PASS KeyframeEffect interface: new KeyframeEffect(null, null) must inherit property "target" with the proper type
-FAIL KeyframeEffect interface: new KeyframeEffect(null, null) must inherit property "iterationComposite" with the proper type assert_inherits: property "iterationComposite" not found in prototype chain
-PASS KeyframeEffect interface: new KeyframeEffect(null, null) must inherit property "composite" with the proper type
-PASS KeyframeEffect interface: new KeyframeEffect(null, null) must inherit property "setKeyframes(object)" with the proper type
-PASS KeyframeEffect interface: calling setKeyframes(object) on new KeyframeEffect(null, null) with too few arguments must throw TypeError
-PASS KeyframeEffectReadOnly interface: new KeyframeEffect(null, null) must inherit property "target" with the proper type
-FAIL KeyframeEffectReadOnly interface: new KeyframeEffect(null, null) must inherit property "iterationComposite" with the proper type assert_inherits: property "iterationComposite" not found in prototype chain
-PASS KeyframeEffectReadOnly interface: new KeyframeEffect(null, null) must inherit property "composite" with the proper type
-PASS KeyframeEffectReadOnly interface: new KeyframeEffect(null, null) must inherit property "getKeyframes()" with the proper type
-PASS AnimationEffectReadOnly interface: new KeyframeEffect(null, null) must inherit property "timing" with the proper type
-PASS AnimationEffectReadOnly interface: new KeyframeEffect(null, null) must inherit property "getComputedTiming()" with the proper type
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/web-animations/timing-model/animations/pausing-an-animation-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/web-animations/timing-model/animations/pausing-an-animation-expected.txt
deleted file mode 100644
index 7872703..0000000
--- a/third_party/WebKit/LayoutTests/platform/win/external/wpt/web-animations/timing-model/animations/pausing-an-animation-expected.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-This is a testharness.js-based test.
-FAIL A pending ready promise should be resolved and not replaced when the animation is paused assert_false: No longer pause-pending expected false got undefined
-FAIL A pause-pending animation maintains the current time when applying a pending playback rate promise_test: Unhandled rejection with value: object "TypeError: animation.updatePlaybackRate is not a function"
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/web-animations/timing-model/animations/reversing-an-animation-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/web-animations/timing-model/animations/reversing-an-animation-expected.txt
deleted file mode 100644
index 08f10c4..0000000
--- a/third_party/WebKit/LayoutTests/platform/win/external/wpt/web-animations/timing-model/animations/reversing-an-animation-expected.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-This is a testharness.js-based test.
-FAIL Reversing an animation inverts the playback rate assert_equals: Playback rate should not have changed expected 1 but got -1
-PASS Reversing an animation plays a pausing animation
-PASS Reversing an animation maintains the same current time
-FAIL Reversing an animation does not cause it to leave the pending state assert_true: The animation is pending before we call reverse expected true got undefined
-PASS Reversing an animation does not cause it to resolve the ready promise
-PASS Reversing an animation when playbackRate > 0 and currentTime > effect end should make it play from the end
-PASS Reversing an animation when playbackRate > 0 and currentTime < 0 should make it play from the end
-PASS Reversing an animation when playbackRate < 0 and currentTime < 0 should make it play from the start
-PASS Reversing an animation when playbackRate < 0 and currentTime > effect end should make it play from the start
-PASS Reversing an animation when playbackRate > 0 and currentTime < 0 and the target effect end is positive infinity should throw an exception
-FAIL When reversing throws an exception, the playback rate remains unchanged assert_equals: playbackRate is unchanged expected 1 but got -1
-PASS Reversing animation when playbackRate = 0 and currentTime < 0 and the target effect end is positive infinity should NOT throw an exception
-PASS Reversing an animation when playbackRate < 0 and currentTime < 0 and the target effect end is positive infinity should make it play from the start
-PASS Reversing when when playbackRate == 0 should preserve the current time and playback rate
-FAIL Reversing an animation without an active timeline throws an InvalidStateError assert_throws: function "() => { animation.reverse(); }" did not throw
-FAIL Reversing should use the negative pending playback rate promise_test: Unhandled rejection with value: object "TypeError: animation.updatePlaybackRate is not a function"
-FAIL When reversing fails, it should restore any previous pending playback rate promise_test: Unhandled rejection with value: object "TypeError: animation.updatePlaybackRate is not a function"
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/webauthn/createcredential-badargs-rp.https-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/webauthn/createcredential-badargs-rp.https-expected.txt
deleted file mode 100644
index 8f9b546b..0000000
--- a/third_party/WebKit/LayoutTests/platform/win/external/wpt/webauthn/createcredential-badargs-rp.https-expected.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-This is a testharness.js-based test.
-PASS Bad rp: rp missing
-PASS Bad rp: rp is string
-PASS Bad rp: rp is empty object
-FAIL Bad rp: id is object assert_throws: Expected bad parameters to fail function "function() { throw e }" threw object "SecurityError: The relying party ID '[object Object]' is not a registrable domain suffix of, nor equal to 'https://web-platform.test:8444'." ("SecurityError") expected object "TypeError" ("TypeError")
-PASS Bad rp: id is null
-FAIL Bad rp: id is empty String assert_throws: Expected bad parameters to fail function "function() { throw e }" threw object "NotSupportedError: The user agent does not implement a password store." that is not a DOMException SecurityError: property "code" is equal to 9, expected 18
-PASS Bad rp: id is invalid domain (has space)
-PASS Bad rp: id is invalid domain (starts with dash)
-PASS Bad rp: id is invalid domain (starts with number)
-PASS rp missing name
-FAIL Bad rp: name is object assert_throws: Expected bad parameters to fail function "function() { throw e }" threw object "NotSupportedError: The user agent does not implement a password store." ("NotSupportedError") expected object "TypeError" ("TypeError")
-FAIL Bad rp: name is null assert_throws: Expected bad parameters to fail function "function() { throw e }" threw object "NotSupportedError: The user agent does not implement a password store." ("NotSupportedError") expected object "TypeError" ("TypeError")
-FAIL Bad rp: name is empty String assert_throws: Expected bad parameters to fail function "function() { throw e }" threw object "NotSupportedError: The user agent does not implement a password store." ("NotSupportedError") expected object "TypeError" ("TypeError")
-FAIL Bad rp: icon is object assert_throws: Expected bad parameters to fail function "function() { throw e }" threw object "NotSupportedError: The user agent does not implement a password store." ("NotSupportedError") expected object "TypeError" ("TypeError")
-FAIL Bad rp: icon is null assert_throws: Expected bad parameters to fail function "function() { throw e }" threw object "NotSupportedError: The user agent does not implement a password store." ("NotSupportedError") expected object "TypeError" ("TypeError")
-FAIL Bad rp: icon is empty String assert_throws: Expected bad parameters to fail function "function() { throw e }" threw object "NotSupportedError: The user agent does not implement a password store." ("NotSupportedError") expected object "TypeError" ("TypeError")
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/webauthn/createcredential-passing.https-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/webauthn/createcredential-passing.https-expected.txt
deleted file mode 100644
index a02742bd..0000000
--- a/third_party/WebKit/LayoutTests/platform/win/external/wpt/webauthn/createcredential-passing.https-expected.txt
+++ /dev/null
@@ -1,41 +0,0 @@
-This is a testharness.js-based test.
-FAIL passing credentials.create() with default arguments promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL passing credentials.create() with rpId (host and port) promise_test: Unhandled rejection with value: object "SecurityError: The relying party ID 'web-platform.test:8444' is not a registrable domain suffix of, nor equal to 'https://web-platform.test:8444'."
-FAIL passing credentials.create() with rpId (hostname) promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL passing credentials.create() without rp.icon promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL very short user id promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL max length user id promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL Uint8Array user id promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL Int8Array user id promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL Int16Array user id promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL Int32Array user id promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL Float32Array user id promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL DataView user id promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL passing credentials.create() without user.icon promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL Int16Array challenge promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL Int32Array challenge promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL Float32Array challenge promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL Float64Array challenge promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL DataView challenge promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL Absurdly large challenge promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL Bad pubKeyCredParams: pubKeyCredParams is empty Array promise_test: Unhandled rejection with value: object "NotSupportedError: Required parameters missing in `options.publicKey`."
-FAIL EC256 pubKeyCredParams promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL SelectEC256 pubKeyCredParams from a list promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL passing credentials.create() with no timeout promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL authenticatorSelection is undefined promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL authenticatorSelection is empty object promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL authenticatorSelection default values promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL authenticatorSelection attachment undefined promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL authenticatorSelection residentKey undefined promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL authenticatorSelection residentKey false promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL authenticatorSelection userVerification undefined promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL authenticatorSelection userVerification discouraged promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL attestation parameter: attestation is "none" promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL attestation parameter: attestation is "indirect" promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL attestation parameter: attestation is "direct" promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL attestation parameter: attestation is undefined promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL extensions undefined promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL extensions are empty object promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-FAIL extensions are dict of empty strings promise_test: Unhandled rejection with value: object "NotSupportedError: The user agent does not implement a password store."
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/webauthn/getcredential-passing.https-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/webauthn/getcredential-passing.https-expected.txt
deleted file mode 100644
index 7e13307..0000000
--- a/third_party/WebKit/LayoutTests/platform/win/external/wpt/webauthn/getcredential-passing.https-expected.txt
+++ /dev/null
@@ -1,15 +0,0 @@
-This is a testharness.js-based test.
-FAIL passing credentials.get() with default args promise_test: Unhandled rejection with value: object "Error: NotSupportedError: The user agent does not implement a password store."
-FAIL passing credentials.create() with no timeout promise_test: Unhandled rejection with value: object "Error: NotSupportedError: The user agent does not implement a password store."
-FAIL rpId undefined promise_test: Unhandled rejection with value: object "Error: NotSupportedError: The user agent does not implement a password store."
-FAIL passing credentials.get() with rpId (host and port) promise_test: Unhandled rejection with value: object "Error: NotSupportedError: The user agent does not implement a password store."
-FAIL passing credentials.get() with rpId (hostname) promise_test: Unhandled rejection with value: object "Error: NotSupportedError: The user agent does not implement a password store."
-FAIL no credential specified promise_test: Unhandled rejection with value: object "Error: Attempting list without defining credential to test"
-FAIL authenticatorSelection userVerification undefined promise_test: Unhandled rejection with value: object "Error: NotSupportedError: The user agent does not implement a password store."
-FAIL authenticatorSelection userVerification preferred promise_test: Unhandled rejection with value: object "Error: NotSupportedError: The user agent does not implement a password store."
-FAIL authenticatorSelection userVerification discouraged promise_test: Unhandled rejection with value: object "Error: NotSupportedError: The user agent does not implement a password store."
-FAIL extensions undefined promise_test: Unhandled rejection with value: object "Error: NotSupportedError: The user agent does not implement a password store."
-FAIL extensions are empty object promise_test: Unhandled rejection with value: object "Error: NotSupportedError: The user agent does not implement a password store."
-FAIL extensions are dict of empty strings promise_test: Unhandled rejection with value: object "Error: NotSupportedError: The user agent does not implement a password store."
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/webauthn/interfaces.https-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/webauthn/interfaces.https-expected.txt
deleted file mode 100644
index 83dbc02..0000000
--- a/third_party/WebKit/LayoutTests/platform/win/external/wpt/webauthn/interfaces.https-expected.txt
+++ /dev/null
@@ -1,46 +0,0 @@
-This is a testharness.js-based test.
-PASS Validate WebAuthn IDL
-FAIL PublicKeyCredential interface: existence and properties of interface object Cannot read property 'has_extended_attribute' of undefined
-PASS PublicKeyCredential interface object length
-PASS PublicKeyCredential interface object name
-FAIL PublicKeyCredential interface: existence and properties of interface prototype object Cannot read property 'has_extended_attribute' of undefined
-PASS PublicKeyCredential interface: existence and properties of interface prototype object's "constructor" property
-PASS PublicKeyCredential interface: existence and properties of interface prototype object's @@unscopables property
-PASS PublicKeyCredential interface: attribute rawId
-PASS Unscopable handled correctly for rawId property on PublicKeyCredential
-PASS PublicKeyCredential interface: attribute response
-PASS Unscopable handled correctly for response property on PublicKeyCredential
-FAIL PublicKeyCredential interface: operation getClientExtensionResults() assert_own_property: interface prototype object missing non-static operation expected property "getClientExtensionResults" missing
-PASS Unscopable handled correctly for getClientExtensionResults() on PublicKeyCredential
-FAIL PublicKeyCredential interface: operation isUserVerifyingPlatformAuthenticatorAvailable() assert_own_property: interface object missing static operation expected property "isUserVerifyingPlatformAuthenticatorAvailable" missing
-PASS Unscopable handled correctly for isUserVerifyingPlatformAuthenticatorAvailable() on PublicKeyCredential
-PASS AuthenticatorResponse interface: existence and properties of interface object
-PASS AuthenticatorResponse interface object length
-PASS AuthenticatorResponse interface object name
-PASS AuthenticatorResponse interface: existence and properties of interface prototype object
-PASS AuthenticatorResponse interface: existence and properties of interface prototype object's "constructor" property
-PASS AuthenticatorResponse interface: existence and properties of interface prototype object's @@unscopables property
-PASS AuthenticatorResponse interface: attribute clientDataJSON
-PASS Unscopable handled correctly for clientDataJSON property on AuthenticatorResponse
-PASS AuthenticatorAttestationResponse interface: existence and properties of interface object
-PASS AuthenticatorAttestationResponse interface object length
-PASS AuthenticatorAttestationResponse interface object name
-PASS AuthenticatorAttestationResponse interface: existence and properties of interface prototype object
-PASS AuthenticatorAttestationResponse interface: existence and properties of interface prototype object's "constructor" property
-PASS AuthenticatorAttestationResponse interface: existence and properties of interface prototype object's @@unscopables property
-PASS AuthenticatorAttestationResponse interface: attribute attestationObject
-PASS Unscopable handled correctly for attestationObject property on AuthenticatorAttestationResponse
-PASS AuthenticatorAssertionResponse interface: existence and properties of interface object
-PASS AuthenticatorAssertionResponse interface object length
-PASS AuthenticatorAssertionResponse interface object name
-PASS AuthenticatorAssertionResponse interface: existence and properties of interface prototype object
-PASS AuthenticatorAssertionResponse interface: existence and properties of interface prototype object's "constructor" property
-PASS AuthenticatorAssertionResponse interface: existence and properties of interface prototype object's @@unscopables property
-PASS AuthenticatorAssertionResponse interface: attribute authenticatorData
-PASS Unscopable handled correctly for authenticatorData property on AuthenticatorAssertionResponse
-PASS AuthenticatorAssertionResponse interface: attribute signature
-PASS Unscopable handled correctly for signature property on AuthenticatorAssertionResponse
-PASS AuthenticatorAssertionResponse interface: attribute userHandle
-PASS Unscopable handled correctly for userHandle property on AuthenticatorAssertionResponse
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/webauthn/securecontext.http-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/webauthn/securecontext.http-expected.txt
deleted file mode 100644
index 21f6fd77..0000000
--- a/third_party/WebKit/LayoutTests/platform/win/external/wpt/webauthn/securecontext.http-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-PASS no navigator.credentials.create in non-secure context
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/webrtc/interfaces.https-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/webrtc/interfaces.https-expected.txt
deleted file mode 100644
index 566708d..0000000
--- a/third_party/WebKit/LayoutTests/platform/win/external/wpt/webrtc/interfaces.https-expected.txt
+++ /dev/null
@@ -1,697 +0,0 @@
-This is a testharness.js-based test.
-PASS Main test driver
-PASS Test driver for asyncInitCertificate
-FAIL Test driver for asyncInitTransports assert_unreached: Failed to run asyncInitTransports: ReferenceError: RTCSctpTransport is not defined Reached unreachable code
-PASS Test driver for asyncInitMediaStreamTrack
-FAIL MediaStreamTrack interface: existence and properties of interface object Cannot read property 'has_extended_attribute' of undefined
-PASS MediaStreamTrack interface object length
-PASS MediaStreamTrack interface object name
-FAIL MediaStreamTrack interface: existence and properties of interface prototype object Cannot read property 'has_extended_attribute' of undefined
-PASS MediaStreamTrack interface: existence and properties of interface prototype object's "constructor" property
-PASS MediaStreamTrack interface: existence and properties of interface prototype object's @@unscopables property
-FAIL MediaStreamTrack interface: attribute isolated assert_true: The prototype object must have a property "isolated" expected true got false
-PASS Unscopable handled correctly for isolated property on MediaStreamTrack
-FAIL MediaStreamTrack interface: attribute onisolationchange assert_true: The prototype object must have a property "onisolationchange" expected true got false
-PASS Unscopable handled correctly for onisolationchange property on MediaStreamTrack
-PASS MediaStreamTrack must be primary interface of idlTestObjects.mediaStreamTrack
-FAIL Stringification of idlTestObjects.mediaStreamTrack Cannot read property 'has_stringifier' of undefined
-FAIL MediaStreamTrack interface: idlTestObjects.mediaStreamTrack must inherit property "isolated" with the proper type assert_inherits: property "isolated" not found in prototype chain
-FAIL MediaStreamTrack interface: idlTestObjects.mediaStreamTrack must inherit property "onisolationchange" with the proper type assert_inherits: property "onisolationchange" not found in prototype chain
-FAIL MediaStreamTrack must be primary interface of generateMediaStreamTrack('audio') assert_equals: Unexpected exception when evaluating object expected null but got object "Error: assert_idl_attribute: Expect pc to have addTransceiver() method property "addTransceiver" not found in prototype chain"
-FAIL Stringification of generateMediaStreamTrack('audio') assert_equals: Unexpected exception when evaluating object expected null but got object "Error: assert_idl_attribute: Expect pc to have addTransceiver() method property "addTransceiver" not found in prototype chain"
-FAIL MediaStreamTrack interface: generateMediaStreamTrack('audio') must inherit property "isolated" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "Error: assert_idl_attribute: Expect pc to have addTransceiver() method property "addTransceiver" not found in prototype chain"
-FAIL MediaStreamTrack interface: generateMediaStreamTrack('audio') must inherit property "onisolationchange" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "Error: assert_idl_attribute: Expect pc to have addTransceiver() method property "addTransceiver" not found in prototype chain"
-FAIL RTCPeerConnection interface: existence and properties of interface object Cannot read property 'has_extended_attribute' of undefined
-PASS RTCPeerConnection interface object length
-PASS RTCPeerConnection interface object name
-FAIL RTCPeerConnection interface: existence and properties of interface prototype object Cannot read property 'has_extended_attribute' of undefined
-PASS RTCPeerConnection interface: existence and properties of interface prototype object's "constructor" property
-PASS RTCPeerConnection interface: existence and properties of interface prototype object's @@unscopables property
-PASS RTCPeerConnection interface: operation createOffer(RTCOfferOptions)
-PASS Unscopable handled correctly for createOffer(RTCOfferOptions) on RTCPeerConnection
-PASS RTCPeerConnection interface: operation createAnswer(RTCAnswerOptions)
-PASS Unscopable handled correctly for createAnswer(RTCAnswerOptions) on RTCPeerConnection
-PASS RTCPeerConnection interface: operation setLocalDescription(RTCSessionDescriptionInit)
-PASS Unscopable handled correctly for setLocalDescription(RTCSessionDescriptionInit) on RTCPeerConnection
-PASS RTCPeerConnection interface: attribute localDescription
-PASS Unscopable handled correctly for localDescription property on RTCPeerConnection
-FAIL RTCPeerConnection interface: attribute currentLocalDescription assert_true: The prototype object must have a property "currentLocalDescription" expected true got false
-PASS Unscopable handled correctly for currentLocalDescription property on RTCPeerConnection
-FAIL RTCPeerConnection interface: attribute pendingLocalDescription assert_true: The prototype object must have a property "pendingLocalDescription" expected true got false
-PASS Unscopable handled correctly for pendingLocalDescription property on RTCPeerConnection
-PASS RTCPeerConnection interface: operation setRemoteDescription(RTCSessionDescriptionInit)
-PASS Unscopable handled correctly for setRemoteDescription(RTCSessionDescriptionInit) on RTCPeerConnection
-PASS RTCPeerConnection interface: attribute remoteDescription
-PASS Unscopable handled correctly for remoteDescription property on RTCPeerConnection
-FAIL RTCPeerConnection interface: attribute currentRemoteDescription assert_true: The prototype object must have a property "currentRemoteDescription" expected true got false
-PASS Unscopable handled correctly for currentRemoteDescription property on RTCPeerConnection
-FAIL RTCPeerConnection interface: attribute pendingRemoteDescription assert_true: The prototype object must have a property "pendingRemoteDescription" expected true got false
-PASS Unscopable handled correctly for pendingRemoteDescription property on RTCPeerConnection
-PASS RTCPeerConnection interface: operation addIceCandidate([object Object],[object Object])
-PASS Unscopable handled correctly for addIceCandidate([object Object],[object Object]) on RTCPeerConnection
-PASS RTCPeerConnection interface: attribute signalingState
-PASS Unscopable handled correctly for signalingState property on RTCPeerConnection
-PASS RTCPeerConnection interface: attribute iceGatheringState
-PASS Unscopable handled correctly for iceGatheringState property on RTCPeerConnection
-PASS RTCPeerConnection interface: attribute iceConnectionState
-PASS Unscopable handled correctly for iceConnectionState property on RTCPeerConnection
-FAIL RTCPeerConnection interface: attribute connectionState assert_true: The prototype object must have a property "connectionState" expected true got false
-PASS Unscopable handled correctly for connectionState property on RTCPeerConnection
-FAIL RTCPeerConnection interface: attribute canTrickleIceCandidates assert_true: The prototype object must have a property "canTrickleIceCandidates" expected true got false
-PASS Unscopable handled correctly for canTrickleIceCandidates property on RTCPeerConnection
-FAIL RTCPeerConnection interface: operation getDefaultIceServers() assert_own_property: interface object missing static operation expected property "getDefaultIceServers" missing
-PASS Unscopable handled correctly for getDefaultIceServers() on RTCPeerConnection
-FAIL RTCPeerConnection interface: operation getConfiguration() assert_own_property: interface prototype object missing non-static operation expected property "getConfiguration" missing
-PASS Unscopable handled correctly for getConfiguration() on RTCPeerConnection
-PASS RTCPeerConnection interface: operation setConfiguration(RTCConfiguration)
-PASS Unscopable handled correctly for setConfiguration(RTCConfiguration) on RTCPeerConnection
-PASS RTCPeerConnection interface: operation close()
-PASS Unscopable handled correctly for close() on RTCPeerConnection
-PASS RTCPeerConnection interface: attribute onnegotiationneeded
-PASS Unscopable handled correctly for onnegotiationneeded property on RTCPeerConnection
-PASS RTCPeerConnection interface: attribute onicecandidate
-PASS Unscopable handled correctly for onicecandidate property on RTCPeerConnection
-FAIL RTCPeerConnection interface: attribute onicecandidateerror assert_true: The prototype object must have a property "onicecandidateerror" expected true got false
-PASS Unscopable handled correctly for onicecandidateerror property on RTCPeerConnection
-PASS RTCPeerConnection interface: attribute onsignalingstatechange
-PASS Unscopable handled correctly for onsignalingstatechange property on RTCPeerConnection
-PASS RTCPeerConnection interface: attribute oniceconnectionstatechange
-PASS Unscopable handled correctly for oniceconnectionstatechange property on RTCPeerConnection
-PASS RTCPeerConnection interface: attribute onicegatheringstatechange
-PASS Unscopable handled correctly for onicegatheringstatechange property on RTCPeerConnection
-FAIL RTCPeerConnection interface: attribute onconnectionstatechange assert_true: The prototype object must have a property "onconnectionstatechange" expected true got false
-PASS Unscopable handled correctly for onconnectionstatechange property on RTCPeerConnection
-FAIL RTCPeerConnection interface: attribute onfingerprintfailure assert_true: The prototype object must have a property "onfingerprintfailure" expected true got false
-PASS Unscopable handled correctly for onfingerprintfailure property on RTCPeerConnection
-PASS RTCPeerConnection interface: operation createOffer(RTCSessionDescriptionCallback, RTCPeerConnectionErrorCallback, RTCOfferOptions)
-PASS Unscopable handled correctly for createOffer(RTCSessionDescriptionCallback, RTCPeerConnectionErrorCallback, RTCOfferOptions) on RTCPeerConnection
-PASS RTCPeerConnection interface: operation setLocalDescription(RTCSessionDescriptionInit, VoidFunction, RTCPeerConnectionErrorCallback)
-PASS Unscopable handled correctly for setLocalDescription(RTCSessionDescriptionInit, VoidFunction, RTCPeerConnectionErrorCallback) on RTCPeerConnection
-PASS RTCPeerConnection interface: operation createAnswer(RTCSessionDescriptionCallback, RTCPeerConnectionErrorCallback)
-PASS Unscopable handled correctly for createAnswer(RTCSessionDescriptionCallback, RTCPeerConnectionErrorCallback) on RTCPeerConnection
-PASS RTCPeerConnection interface: operation setRemoteDescription(RTCSessionDescriptionInit, VoidFunction, RTCPeerConnectionErrorCallback)
-PASS Unscopable handled correctly for setRemoteDescription(RTCSessionDescriptionInit, VoidFunction, RTCPeerConnectionErrorCallback) on RTCPeerConnection
-PASS RTCPeerConnection interface: operation addIceCandidate([object Object],[object Object], VoidFunction, RTCPeerConnectionErrorCallback)
-PASS Unscopable handled correctly for addIceCandidate([object Object],[object Object], VoidFunction, RTCPeerConnectionErrorCallback) on RTCPeerConnection
-PASS RTCPeerConnection interface: operation generateCertificate(AlgorithmIdentifier)
-PASS Unscopable handled correctly for generateCertificate(AlgorithmIdentifier) on RTCPeerConnection
-PASS RTCPeerConnection interface: operation getSenders()
-PASS Unscopable handled correctly for getSenders() on RTCPeerConnection
-PASS RTCPeerConnection interface: operation getReceivers()
-PASS Unscopable handled correctly for getReceivers() on RTCPeerConnection
-FAIL RTCPeerConnection interface: operation getTransceivers() assert_own_property: interface prototype object missing non-static operation expected property "getTransceivers" missing
-PASS Unscopable handled correctly for getTransceivers() on RTCPeerConnection
-PASS RTCPeerConnection interface: operation addTrack(MediaStreamTrack, MediaStream)
-PASS Unscopable handled correctly for addTrack(MediaStreamTrack, MediaStream) on RTCPeerConnection
-PASS RTCPeerConnection interface: operation removeTrack(RTCRtpSender)
-PASS Unscopable handled correctly for removeTrack(RTCRtpSender) on RTCPeerConnection
-FAIL RTCPeerConnection interface: operation addTransceiver([object Object],[object Object], RTCRtpTransceiverInit) assert_own_property: interface prototype object missing non-static operation expected property "addTransceiver" missing
-PASS Unscopable handled correctly for addTransceiver([object Object],[object Object], RTCRtpTransceiverInit) on RTCPeerConnection
-PASS RTCPeerConnection interface: attribute ontrack
-PASS Unscopable handled correctly for ontrack property on RTCPeerConnection
-FAIL RTCPeerConnection interface: attribute sctp assert_true: The prototype object must have a property "sctp" expected true got false
-PASS Unscopable handled correctly for sctp property on RTCPeerConnection
-PASS RTCPeerConnection interface: operation createDataChannel(USVString, RTCDataChannelInit)
-PASS Unscopable handled correctly for createDataChannel(USVString, RTCDataChannelInit) on RTCPeerConnection
-PASS RTCPeerConnection interface: attribute ondatachannel
-PASS Unscopable handled correctly for ondatachannel property on RTCPeerConnection
-PASS RTCPeerConnection interface: operation getStats(MediaStreamTrack)
-PASS Unscopable handled correctly for getStats(MediaStreamTrack) on RTCPeerConnection
-FAIL RTCPeerConnection interface: operation setIdentityProvider(DOMString, RTCIdentityProviderOptions) assert_own_property: interface prototype object missing non-static operation expected property "setIdentityProvider" missing
-PASS Unscopable handled correctly for setIdentityProvider(DOMString, RTCIdentityProviderOptions) on RTCPeerConnection
-FAIL RTCPeerConnection interface: operation getIdentityAssertion() assert_own_property: interface prototype object missing non-static operation expected property "getIdentityAssertion" missing
-PASS Unscopable handled correctly for getIdentityAssertion() on RTCPeerConnection
-FAIL RTCPeerConnection interface: attribute peerIdentity assert_true: The prototype object must have a property "peerIdentity" expected true got false
-PASS Unscopable handled correctly for peerIdentity property on RTCPeerConnection
-FAIL RTCPeerConnection interface: attribute idpLoginUrl assert_true: The prototype object must have a property "idpLoginUrl" expected true got false
-PASS Unscopable handled correctly for idpLoginUrl property on RTCPeerConnection
-FAIL RTCPeerConnection interface: attribute idpErrorInfo assert_true: The prototype object must have a property "idpErrorInfo" expected true got false
-PASS Unscopable handled correctly for idpErrorInfo property on RTCPeerConnection
-PASS RTCPeerConnection must be primary interface of new RTCPeerConnection()
-FAIL Stringification of new RTCPeerConnection() Cannot read property 'has_stringifier' of undefined
-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "createOffer(RTCOfferOptions)" with the proper type
-PASS RTCPeerConnection interface: calling createOffer(RTCOfferOptions) on new RTCPeerConnection() with too few arguments must throw TypeError
-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "createAnswer(RTCAnswerOptions)" with the proper type
-PASS RTCPeerConnection interface: calling createAnswer(RTCAnswerOptions) on new RTCPeerConnection() with too few arguments must throw TypeError
-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "setLocalDescription(RTCSessionDescriptionInit)" with the proper type
-PASS RTCPeerConnection interface: calling setLocalDescription(RTCSessionDescriptionInit) on new RTCPeerConnection() with too few arguments must throw TypeError
-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "localDescription" with the proper type
-FAIL RTCPeerConnection interface: new RTCPeerConnection() must inherit property "currentLocalDescription" with the proper type assert_inherits: property "currentLocalDescription" not found in prototype chain
-FAIL RTCPeerConnection interface: new RTCPeerConnection() must inherit property "pendingLocalDescription" with the proper type assert_inherits: property "pendingLocalDescription" not found in prototype chain
-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "setRemoteDescription(RTCSessionDescriptionInit)" with the proper type
-PASS RTCPeerConnection interface: calling setRemoteDescription(RTCSessionDescriptionInit) on new RTCPeerConnection() with too few arguments must throw TypeError
-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "remoteDescription" with the proper type
-FAIL RTCPeerConnection interface: new RTCPeerConnection() must inherit property "currentRemoteDescription" with the proper type assert_inherits: property "currentRemoteDescription" not found in prototype chain
-FAIL RTCPeerConnection interface: new RTCPeerConnection() must inherit property "pendingRemoteDescription" with the proper type assert_inherits: property "pendingRemoteDescription" not found in prototype chain
-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "addIceCandidate([object Object],[object Object])" with the proper type
-PASS RTCPeerConnection interface: calling addIceCandidate([object Object],[object Object]) on new RTCPeerConnection() with too few arguments must throw TypeError
-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "signalingState" with the proper type
-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "iceGatheringState" with the proper type
-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "iceConnectionState" with the proper type
-FAIL RTCPeerConnection interface: new RTCPeerConnection() must inherit property "connectionState" with the proper type assert_inherits: property "connectionState" not found in prototype chain
-FAIL RTCPeerConnection interface: new RTCPeerConnection() must inherit property "canTrickleIceCandidates" with the proper type assert_inherits: property "canTrickleIceCandidates" not found in prototype chain
-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "getDefaultIceServers()" with the proper type
-FAIL RTCPeerConnection interface: new RTCPeerConnection() must inherit property "getConfiguration()" with the proper type assert_inherits: property "getConfiguration" not found in prototype chain
-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "setConfiguration(RTCConfiguration)" with the proper type
-PASS RTCPeerConnection interface: calling setConfiguration(RTCConfiguration) on new RTCPeerConnection() with too few arguments must throw TypeError
-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "close()" with the proper type
-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "onnegotiationneeded" with the proper type
-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "onicecandidate" with the proper type
-FAIL RTCPeerConnection interface: new RTCPeerConnection() must inherit property "onicecandidateerror" with the proper type assert_inherits: property "onicecandidateerror" not found in prototype chain
-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "onsignalingstatechange" with the proper type
-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "oniceconnectionstatechange" with the proper type
-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "onicegatheringstatechange" with the proper type
-FAIL RTCPeerConnection interface: new RTCPeerConnection() must inherit property "onconnectionstatechange" with the proper type assert_inherits: property "onconnectionstatechange" not found in prototype chain
-FAIL RTCPeerConnection interface: new RTCPeerConnection() must inherit property "onfingerprintfailure" with the proper type assert_inherits: property "onfingerprintfailure" not found in prototype chain
-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "createOffer(RTCSessionDescriptionCallback, RTCPeerConnectionErrorCallback, RTCOfferOptions)" with the proper type
-PASS RTCPeerConnection interface: calling createOffer(RTCSessionDescriptionCallback, RTCPeerConnectionErrorCallback, RTCOfferOptions) on new RTCPeerConnection() with too few arguments must throw TypeError
-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "setLocalDescription(RTCSessionDescriptionInit, VoidFunction, RTCPeerConnectionErrorCallback)" with the proper type
-PASS RTCPeerConnection interface: calling setLocalDescription(RTCSessionDescriptionInit, VoidFunction, RTCPeerConnectionErrorCallback) on new RTCPeerConnection() with too few arguments must throw TypeError
-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "createAnswer(RTCSessionDescriptionCallback, RTCPeerConnectionErrorCallback)" with the proper type
-PASS RTCPeerConnection interface: calling createAnswer(RTCSessionDescriptionCallback, RTCPeerConnectionErrorCallback) on new RTCPeerConnection() with too few arguments must throw TypeError
-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "setRemoteDescription(RTCSessionDescriptionInit, VoidFunction, RTCPeerConnectionErrorCallback)" with the proper type
-PASS RTCPeerConnection interface: calling setRemoteDescription(RTCSessionDescriptionInit, VoidFunction, RTCPeerConnectionErrorCallback) on new RTCPeerConnection() with too few arguments must throw TypeError
-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "addIceCandidate([object Object],[object Object], VoidFunction, RTCPeerConnectionErrorCallback)" with the proper type
-PASS RTCPeerConnection interface: calling addIceCandidate([object Object],[object Object], VoidFunction, RTCPeerConnectionErrorCallback) on new RTCPeerConnection() with too few arguments must throw TypeError
-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "generateCertificate(AlgorithmIdentifier)" with the proper type
-PASS RTCPeerConnection interface: calling generateCertificate(AlgorithmIdentifier) on new RTCPeerConnection() with too few arguments must throw TypeError
-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "getSenders()" with the proper type
-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "getReceivers()" with the proper type
-FAIL RTCPeerConnection interface: new RTCPeerConnection() must inherit property "getTransceivers()" with the proper type assert_inherits: property "getTransceivers" not found in prototype chain
-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "addTrack(MediaStreamTrack, MediaStream)" with the proper type
-PASS RTCPeerConnection interface: calling addTrack(MediaStreamTrack, MediaStream) on new RTCPeerConnection() with too few arguments must throw TypeError
-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "removeTrack(RTCRtpSender)" with the proper type
-PASS RTCPeerConnection interface: calling removeTrack(RTCRtpSender) on new RTCPeerConnection() with too few arguments must throw TypeError
-FAIL RTCPeerConnection interface: new RTCPeerConnection() must inherit property "addTransceiver([object Object],[object Object], RTCRtpTransceiverInit)" with the proper type assert_inherits: property "addTransceiver" not found in prototype chain
-FAIL RTCPeerConnection interface: calling addTransceiver([object Object],[object Object], RTCRtpTransceiverInit) on new RTCPeerConnection() with too few arguments must throw TypeError assert_inherits: property "addTransceiver" not found in prototype chain
-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "ontrack" with the proper type
-FAIL RTCPeerConnection interface: new RTCPeerConnection() must inherit property "sctp" with the proper type assert_inherits: property "sctp" not found in prototype chain
-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "createDataChannel(USVString, RTCDataChannelInit)" with the proper type
-PASS RTCPeerConnection interface: calling createDataChannel(USVString, RTCDataChannelInit) on new RTCPeerConnection() with too few arguments must throw TypeError
-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "ondatachannel" with the proper type
-PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "getStats(MediaStreamTrack)" with the proper type
-PASS RTCPeerConnection interface: calling getStats(MediaStreamTrack) on new RTCPeerConnection() with too few arguments must throw TypeError
-FAIL RTCPeerConnection interface: new RTCPeerConnection() must inherit property "setIdentityProvider(DOMString, RTCIdentityProviderOptions)" with the proper type assert_inherits: property "setIdentityProvider" not found in prototype chain
-FAIL RTCPeerConnection interface: calling setIdentityProvider(DOMString, RTCIdentityProviderOptions) on new RTCPeerConnection() with too few arguments must throw TypeError assert_inherits: property "setIdentityProvider" not found in prototype chain
-FAIL RTCPeerConnection interface: new RTCPeerConnection() must inherit property "getIdentityAssertion()" with the proper type assert_inherits: property "getIdentityAssertion" not found in prototype chain
-FAIL RTCPeerConnection interface: new RTCPeerConnection() must inherit property "peerIdentity" with the proper type assert_inherits: property "peerIdentity" not found in prototype chain
-FAIL RTCPeerConnection interface: new RTCPeerConnection() must inherit property "idpLoginUrl" with the proper type assert_inherits: property "idpLoginUrl" not found in prototype chain
-FAIL RTCPeerConnection interface: new RTCPeerConnection() must inherit property "idpErrorInfo" with the proper type assert_inherits: property "idpErrorInfo" not found in prototype chain
-PASS RTCSessionDescription interface: existence and properties of interface object
-FAIL RTCSessionDescription interface object length assert_equals: wrong value for RTCSessionDescription.length expected 1 but got 0
-PASS RTCSessionDescription interface object name
-PASS RTCSessionDescription interface: existence and properties of interface prototype object
-PASS RTCSessionDescription interface: existence and properties of interface prototype object's "constructor" property
-PASS RTCSessionDescription interface: existence and properties of interface prototype object's @@unscopables property
-FAIL RTCSessionDescription interface: attribute type assert_equals: setter must be undefined for readonly attributes expected (undefined) undefined but got (function) function "function () { [native code] }"
-PASS Unscopable handled correctly for type property on RTCSessionDescription
-FAIL RTCSessionDescription interface: attribute sdp assert_equals: setter must be undefined for readonly attributes expected (undefined) undefined but got (function) function "function () { [native code] }"
-PASS Unscopable handled correctly for sdp property on RTCSessionDescription
-PASS RTCSessionDescription interface: operation toJSON()
-PASS Unscopable handled correctly for toJSON() on RTCSessionDescription
-PASS RTCSessionDescription must be primary interface of new RTCSessionDescription({ type: 'offer' })
-PASS Stringification of new RTCSessionDescription({ type: 'offer' })
-PASS RTCSessionDescription interface: new RTCSessionDescription({ type: 'offer' }) must inherit property "type" with the proper type
-FAIL RTCSessionDescription interface: new RTCSessionDescription({ type: 'offer' }) must inherit property "sdp" with the proper type assert_equals: expected "string" but got "object"
-PASS RTCSessionDescription interface: new RTCSessionDescription({ type: 'offer' }) must inherit property "toJSON()" with the proper type
-FAIL Test default toJSON operation of RTCSessionDescription assert_equals: expected "string" but got "object"
-PASS RTCIceCandidate interface: existence and properties of interface object
-FAIL RTCIceCandidate interface object length assert_equals: wrong value for RTCIceCandidate.length expected 0 but got 1
-PASS RTCIceCandidate interface object name
-PASS RTCIceCandidate interface: existence and properties of interface prototype object
-PASS RTCIceCandidate interface: existence and properties of interface prototype object's "constructor" property
-PASS RTCIceCandidate interface: existence and properties of interface prototype object's @@unscopables property
-FAIL RTCIceCandidate interface: attribute candidate assert_equals: setter must be undefined for readonly attributes expected (undefined) undefined but got (function) function "function () { [native code] }"
-PASS Unscopable handled correctly for candidate property on RTCIceCandidate
-FAIL RTCIceCandidate interface: attribute sdpMid assert_equals: setter must be undefined for readonly attributes expected (undefined) undefined but got (function) function "function () { [native code] }"
-PASS Unscopable handled correctly for sdpMid property on RTCIceCandidate
-FAIL RTCIceCandidate interface: attribute sdpMLineIndex assert_equals: setter must be undefined for readonly attributes expected (undefined) undefined but got (function) function "function () { [native code] }"
-PASS Unscopable handled correctly for sdpMLineIndex property on RTCIceCandidate
-FAIL RTCIceCandidate interface: attribute foundation assert_true: The prototype object must have a property "foundation" expected true got false
-PASS Unscopable handled correctly for foundation property on RTCIceCandidate
-FAIL RTCIceCandidate interface: attribute component assert_true: The prototype object must have a property "component" expected true got false
-PASS Unscopable handled correctly for component property on RTCIceCandidate
-FAIL RTCIceCandidate interface: attribute priority assert_true: The prototype object must have a property "priority" expected true got false
-PASS Unscopable handled correctly for priority property on RTCIceCandidate
-FAIL RTCIceCandidate interface: attribute ip assert_true: The prototype object must have a property "ip" expected true got false
-PASS Unscopable handled correctly for ip property on RTCIceCandidate
-FAIL RTCIceCandidate interface: attribute protocol assert_true: The prototype object must have a property "protocol" expected true got false
-PASS Unscopable handled correctly for protocol property on RTCIceCandidate
-FAIL RTCIceCandidate interface: attribute port assert_true: The prototype object must have a property "port" expected true got false
-PASS Unscopable handled correctly for port property on RTCIceCandidate
-FAIL RTCIceCandidate interface: attribute type assert_true: The prototype object must have a property "type" expected true got false
-PASS Unscopable handled correctly for type property on RTCIceCandidate
-FAIL RTCIceCandidate interface: attribute tcpType assert_true: The prototype object must have a property "tcpType" expected true got false
-PASS Unscopable handled correctly for tcpType property on RTCIceCandidate
-FAIL RTCIceCandidate interface: attribute relatedAddress assert_true: The prototype object must have a property "relatedAddress" expected true got false
-PASS Unscopable handled correctly for relatedAddress property on RTCIceCandidate
-FAIL RTCIceCandidate interface: attribute relatedPort assert_true: The prototype object must have a property "relatedPort" expected true got false
-PASS Unscopable handled correctly for relatedPort property on RTCIceCandidate
-FAIL RTCIceCandidate interface: attribute usernameFragment assert_true: The prototype object must have a property "usernameFragment" expected true got false
-PASS Unscopable handled correctly for usernameFragment property on RTCIceCandidate
-PASS RTCIceCandidate interface: operation toJSON()
-PASS Unscopable handled correctly for toJSON() on RTCIceCandidate
-FAIL RTCIceCandidate must be primary interface of new RTCIceCandidate({ sdpMid: 1 }) assert_equals: Unexpected exception when evaluating object expected null but got object "TypeMismatchError: Failed to construct 'RTCIceCandidate': The 'candidate' property is not a string, or is empty."
-FAIL Stringification of new RTCIceCandidate({ sdpMid: 1 }) assert_equals: Unexpected exception when evaluating object expected null but got object "TypeMismatchError: Failed to construct 'RTCIceCandidate': The 'candidate' property is not a string, or is empty."
-FAIL RTCIceCandidate interface: new RTCIceCandidate({ sdpMid: 1 }) must inherit property "candidate" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeMismatchError: Failed to construct 'RTCIceCandidate': The 'candidate' property is not a string, or is empty."
-FAIL RTCIceCandidate interface: new RTCIceCandidate({ sdpMid: 1 }) must inherit property "sdpMid" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeMismatchError: Failed to construct 'RTCIceCandidate': The 'candidate' property is not a string, or is empty."
-FAIL RTCIceCandidate interface: new RTCIceCandidate({ sdpMid: 1 }) must inherit property "sdpMLineIndex" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeMismatchError: Failed to construct 'RTCIceCandidate': The 'candidate' property is not a string, or is empty."
-FAIL RTCIceCandidate interface: new RTCIceCandidate({ sdpMid: 1 }) must inherit property "foundation" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeMismatchError: Failed to construct 'RTCIceCandidate': The 'candidate' property is not a string, or is empty."
-FAIL RTCIceCandidate interface: new RTCIceCandidate({ sdpMid: 1 }) must inherit property "component" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeMismatchError: Failed to construct 'RTCIceCandidate': The 'candidate' property is not a string, or is empty."
-FAIL RTCIceCandidate interface: new RTCIceCandidate({ sdpMid: 1 }) must inherit property "priority" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeMismatchError: Failed to construct 'RTCIceCandidate': The 'candidate' property is not a string, or is empty."
-FAIL RTCIceCandidate interface: new RTCIceCandidate({ sdpMid: 1 }) must inherit property "ip" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeMismatchError: Failed to construct 'RTCIceCandidate': The 'candidate' property is not a string, or is empty."
-FAIL RTCIceCandidate interface: new RTCIceCandidate({ sdpMid: 1 }) must inherit property "protocol" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeMismatchError: Failed to construct 'RTCIceCandidate': The 'candidate' property is not a string, or is empty."
-FAIL RTCIceCandidate interface: new RTCIceCandidate({ sdpMid: 1 }) must inherit property "port" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeMismatchError: Failed to construct 'RTCIceCandidate': The 'candidate' property is not a string, or is empty."
-FAIL RTCIceCandidate interface: new RTCIceCandidate({ sdpMid: 1 }) must inherit property "type" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeMismatchError: Failed to construct 'RTCIceCandidate': The 'candidate' property is not a string, or is empty."
-FAIL RTCIceCandidate interface: new RTCIceCandidate({ sdpMid: 1 }) must inherit property "tcpType" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeMismatchError: Failed to construct 'RTCIceCandidate': The 'candidate' property is not a string, or is empty."
-FAIL RTCIceCandidate interface: new RTCIceCandidate({ sdpMid: 1 }) must inherit property "relatedAddress" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeMismatchError: Failed to construct 'RTCIceCandidate': The 'candidate' property is not a string, or is empty."
-FAIL RTCIceCandidate interface: new RTCIceCandidate({ sdpMid: 1 }) must inherit property "relatedPort" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeMismatchError: Failed to construct 'RTCIceCandidate': The 'candidate' property is not a string, or is empty."
-FAIL RTCIceCandidate interface: new RTCIceCandidate({ sdpMid: 1 }) must inherit property "usernameFragment" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeMismatchError: Failed to construct 'RTCIceCandidate': The 'candidate' property is not a string, or is empty."
-FAIL RTCIceCandidate interface: new RTCIceCandidate({ sdpMid: 1 }) must inherit property "toJSON()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeMismatchError: Failed to construct 'RTCIceCandidate': The 'candidate' property is not a string, or is empty."
-FAIL Test toJSON operation of RTCIceCandidate Cannot read property 'toJSON' of undefined
-FAIL RTCPeerConnectionIceEvent interface: existence and properties of interface object Cannot read property 'has_extended_attribute' of undefined
-PASS RTCPeerConnectionIceEvent interface object length
-PASS RTCPeerConnectionIceEvent interface object name
-FAIL RTCPeerConnectionIceEvent interface: existence and properties of interface prototype object Cannot read property 'has_extended_attribute' of undefined
-PASS RTCPeerConnectionIceEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS RTCPeerConnectionIceEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS RTCPeerConnectionIceEvent interface: attribute candidate
-PASS Unscopable handled correctly for candidate property on RTCPeerConnectionIceEvent
-FAIL RTCPeerConnectionIceEvent interface: attribute url assert_true: The prototype object must have a property "url" expected true got false
-PASS Unscopable handled correctly for url property on RTCPeerConnectionIceEvent
-PASS RTCPeerConnectionIceEvent must be primary interface of new RTCPeerConnectionIceEvent('ice')
-FAIL Stringification of new RTCPeerConnectionIceEvent('ice') Cannot read property 'has_stringifier' of undefined
-PASS RTCPeerConnectionIceEvent interface: new RTCPeerConnectionIceEvent('ice') must inherit property "candidate" with the proper type
-FAIL RTCPeerConnectionIceEvent interface: new RTCPeerConnectionIceEvent('ice') must inherit property "url" with the proper type assert_inherits: property "url" not found in prototype chain
-FAIL RTCPeerConnectionIceErrorEvent interface: existence and properties of interface object assert_own_property: self does not have own property "RTCPeerConnectionIceErrorEvent" expected property "RTCPeerConnectionIceErrorEvent" missing
-FAIL RTCPeerConnectionIceErrorEvent interface object length assert_own_property: self does not have own property "RTCPeerConnectionIceErrorEvent" expected property "RTCPeerConnectionIceErrorEvent" missing
-FAIL RTCPeerConnectionIceErrorEvent interface object name assert_own_property: self does not have own property "RTCPeerConnectionIceErrorEvent" expected property "RTCPeerConnectionIceErrorEvent" missing
-FAIL RTCPeerConnectionIceErrorEvent interface: existence and properties of interface prototype object assert_own_property: self does not have own property "RTCPeerConnectionIceErrorEvent" expected property "RTCPeerConnectionIceErrorEvent" missing
-FAIL RTCPeerConnectionIceErrorEvent interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "RTCPeerConnectionIceErrorEvent" expected property "RTCPeerConnectionIceErrorEvent" missing
-FAIL RTCPeerConnectionIceErrorEvent interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "RTCPeerConnectionIceErrorEvent" expected property "RTCPeerConnectionIceErrorEvent" missing
-FAIL RTCPeerConnectionIceErrorEvent interface: attribute hostCandidate assert_own_property: self does not have own property "RTCPeerConnectionIceErrorEvent" expected property "RTCPeerConnectionIceErrorEvent" missing
-PASS Unscopable handled correctly for hostCandidate property on RTCPeerConnectionIceErrorEvent
-FAIL RTCPeerConnectionIceErrorEvent interface: attribute url assert_own_property: self does not have own property "RTCPeerConnectionIceErrorEvent" expected property "RTCPeerConnectionIceErrorEvent" missing
-PASS Unscopable handled correctly for url property on RTCPeerConnectionIceErrorEvent
-FAIL RTCPeerConnectionIceErrorEvent interface: attribute errorCode assert_own_property: self does not have own property "RTCPeerConnectionIceErrorEvent" expected property "RTCPeerConnectionIceErrorEvent" missing
-PASS Unscopable handled correctly for errorCode property on RTCPeerConnectionIceErrorEvent
-FAIL RTCPeerConnectionIceErrorEvent interface: attribute errorText assert_own_property: self does not have own property "RTCPeerConnectionIceErrorEvent" expected property "RTCPeerConnectionIceErrorEvent" missing
-PASS Unscopable handled correctly for errorText property on RTCPeerConnectionIceErrorEvent
-FAIL RTCPeerConnectionIceErrorEvent must be primary interface of new RTCPeerConnectionIceErrorEvent('ice-error', { errorCode: 701 }); assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: RTCPeerConnectionIceErrorEvent is not defined"
-FAIL Stringification of new RTCPeerConnectionIceErrorEvent('ice-error', { errorCode: 701 }); assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: RTCPeerConnectionIceErrorEvent is not defined"
-FAIL RTCPeerConnectionIceErrorEvent interface: new RTCPeerConnectionIceErrorEvent('ice-error', { errorCode: 701 }); must inherit property "hostCandidate" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: RTCPeerConnectionIceErrorEvent is not defined"
-FAIL RTCPeerConnectionIceErrorEvent interface: new RTCPeerConnectionIceErrorEvent('ice-error', { errorCode: 701 }); must inherit property "url" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: RTCPeerConnectionIceErrorEvent is not defined"
-FAIL RTCPeerConnectionIceErrorEvent interface: new RTCPeerConnectionIceErrorEvent('ice-error', { errorCode: 701 }); must inherit property "errorCode" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: RTCPeerConnectionIceErrorEvent is not defined"
-FAIL RTCPeerConnectionIceErrorEvent interface: new RTCPeerConnectionIceErrorEvent('ice-error', { errorCode: 701 }); must inherit property "errorText" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: RTCPeerConnectionIceErrorEvent is not defined"
-PASS RTCCertificate interface: existence and properties of interface object
-PASS RTCCertificate interface object length
-PASS RTCCertificate interface object name
-PASS RTCCertificate interface: existence and properties of interface prototype object
-PASS RTCCertificate interface: existence and properties of interface prototype object's "constructor" property
-PASS RTCCertificate interface: existence and properties of interface prototype object's @@unscopables property
-PASS RTCCertificate interface: attribute expires
-PASS Unscopable handled correctly for expires property on RTCCertificate
-PASS RTCCertificate interface: operation getFingerprints()
-PASS Unscopable handled correctly for getFingerprints() on RTCCertificate
-FAIL RTCCertificate interface: operation getAlgorithm() assert_own_property: interface prototype object missing non-static operation expected property "getAlgorithm" missing
-PASS Unscopable handled correctly for getAlgorithm() on RTCCertificate
-PASS RTCCertificate must be primary interface of idlTestObjects.certificate
-PASS Stringification of idlTestObjects.certificate
-PASS RTCCertificate interface: idlTestObjects.certificate must inherit property "expires" with the proper type
-PASS RTCCertificate interface: idlTestObjects.certificate must inherit property "getFingerprints()" with the proper type
-FAIL RTCCertificate interface: idlTestObjects.certificate must inherit property "getAlgorithm()" with the proper type assert_inherits: property "getAlgorithm" not found in prototype chain
-PASS RTCRtpSender interface: existence and properties of interface object
-PASS RTCRtpSender interface object length
-PASS RTCRtpSender interface object name
-PASS RTCRtpSender interface: existence and properties of interface prototype object
-PASS RTCRtpSender interface: existence and properties of interface prototype object's "constructor" property
-PASS RTCRtpSender interface: existence and properties of interface prototype object's @@unscopables property
-PASS RTCRtpSender interface: attribute track
-PASS Unscopable handled correctly for track property on RTCRtpSender
-FAIL RTCRtpSender interface: attribute transport assert_true: The prototype object must have a property "transport" expected true got false
-PASS Unscopable handled correctly for transport property on RTCRtpSender
-FAIL RTCRtpSender interface: attribute rtcpTransport assert_true: The prototype object must have a property "rtcpTransport" expected true got false
-PASS Unscopable handled correctly for rtcpTransport property on RTCRtpSender
-FAIL RTCRtpSender interface: operation getCapabilities(DOMString) assert_own_property: interface object missing static operation expected property "getCapabilities" missing
-PASS Unscopable handled correctly for getCapabilities(DOMString) on RTCRtpSender
-FAIL RTCRtpSender interface: operation setParameters(RTCRtpParameters) assert_own_property: interface prototype object missing non-static operation expected property "setParameters" missing
-PASS Unscopable handled correctly for setParameters(RTCRtpParameters) on RTCRtpSender
-FAIL RTCRtpSender interface: operation getParameters() assert_own_property: interface prototype object missing non-static operation expected property "getParameters" missing
-PASS Unscopable handled correctly for getParameters() on RTCRtpSender
-PASS RTCRtpSender interface: operation replaceTrack(MediaStreamTrack)
-PASS Unscopable handled correctly for replaceTrack(MediaStreamTrack) on RTCRtpSender
-FAIL RTCRtpSender interface: operation getStats() assert_own_property: interface prototype object missing non-static operation expected property "getStats" missing
-PASS Unscopable handled correctly for getStats() on RTCRtpSender
-PASS RTCRtpSender interface: attribute dtmf
-PASS Unscopable handled correctly for dtmf property on RTCRtpSender
-FAIL RTCRtpSender must be primary interface of new RTCPeerConnection().addTransceiver('audio').sender assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL Stringification of new RTCPeerConnection().addTransceiver('audio').sender assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCRtpSender interface: new RTCPeerConnection().addTransceiver('audio').sender must inherit property "track" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCRtpSender interface: new RTCPeerConnection().addTransceiver('audio').sender must inherit property "transport" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCRtpSender interface: new RTCPeerConnection().addTransceiver('audio').sender must inherit property "rtcpTransport" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCRtpSender interface: new RTCPeerConnection().addTransceiver('audio').sender must inherit property "getCapabilities(DOMString)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCRtpSender interface: calling getCapabilities(DOMString) on new RTCPeerConnection().addTransceiver('audio').sender with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCRtpSender interface: new RTCPeerConnection().addTransceiver('audio').sender must inherit property "setParameters(RTCRtpParameters)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCRtpSender interface: calling setParameters(RTCRtpParameters) on new RTCPeerConnection().addTransceiver('audio').sender with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCRtpSender interface: new RTCPeerConnection().addTransceiver('audio').sender must inherit property "getParameters()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCRtpSender interface: new RTCPeerConnection().addTransceiver('audio').sender must inherit property "replaceTrack(MediaStreamTrack)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCRtpSender interface: calling replaceTrack(MediaStreamTrack) on new RTCPeerConnection().addTransceiver('audio').sender with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCRtpSender interface: new RTCPeerConnection().addTransceiver('audio').sender must inherit property "getStats()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCRtpSender interface: new RTCPeerConnection().addTransceiver('audio').sender must inherit property "dtmf" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-PASS RTCRtpReceiver interface: existence and properties of interface object
-PASS RTCRtpReceiver interface object length
-PASS RTCRtpReceiver interface object name
-PASS RTCRtpReceiver interface: existence and properties of interface prototype object
-PASS RTCRtpReceiver interface: existence and properties of interface prototype object's "constructor" property
-PASS RTCRtpReceiver interface: existence and properties of interface prototype object's @@unscopables property
-PASS RTCRtpReceiver interface: attribute track
-PASS Unscopable handled correctly for track property on RTCRtpReceiver
-FAIL RTCRtpReceiver interface: attribute transport assert_true: The prototype object must have a property "transport" expected true got false
-PASS Unscopable handled correctly for transport property on RTCRtpReceiver
-FAIL RTCRtpReceiver interface: attribute rtcpTransport assert_true: The prototype object must have a property "rtcpTransport" expected true got false
-PASS Unscopable handled correctly for rtcpTransport property on RTCRtpReceiver
-FAIL RTCRtpReceiver interface: operation getCapabilities(DOMString) assert_own_property: interface object missing static operation expected property "getCapabilities" missing
-PASS Unscopable handled correctly for getCapabilities(DOMString) on RTCRtpReceiver
-FAIL RTCRtpReceiver interface: operation getParameters() assert_own_property: interface prototype object missing non-static operation expected property "getParameters" missing
-PASS Unscopable handled correctly for getParameters() on RTCRtpReceiver
-PASS RTCRtpReceiver interface: operation getContributingSources()
-PASS Unscopable handled correctly for getContributingSources() on RTCRtpReceiver
-FAIL RTCRtpReceiver interface: operation getSynchronizationSources() assert_own_property: interface prototype object missing non-static operation expected property "getSynchronizationSources" missing
-PASS Unscopable handled correctly for getSynchronizationSources() on RTCRtpReceiver
-FAIL RTCRtpReceiver interface: operation getStats() assert_own_property: interface prototype object missing non-static operation expected property "getStats" missing
-PASS Unscopable handled correctly for getStats() on RTCRtpReceiver
-FAIL RTCRtpReceiver must be primary interface of new RTCPeerConnection().addTransceiver('audio').receiver assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL Stringification of new RTCPeerConnection().addTransceiver('audio').receiver assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCRtpReceiver interface: new RTCPeerConnection().addTransceiver('audio').receiver must inherit property "track" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCRtpReceiver interface: new RTCPeerConnection().addTransceiver('audio').receiver must inherit property "transport" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCRtpReceiver interface: new RTCPeerConnection().addTransceiver('audio').receiver must inherit property "rtcpTransport" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCRtpReceiver interface: new RTCPeerConnection().addTransceiver('audio').receiver must inherit property "getCapabilities(DOMString)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCRtpReceiver interface: calling getCapabilities(DOMString) on new RTCPeerConnection().addTransceiver('audio').receiver with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCRtpReceiver interface: new RTCPeerConnection().addTransceiver('audio').receiver must inherit property "getParameters()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCRtpReceiver interface: new RTCPeerConnection().addTransceiver('audio').receiver must inherit property "getContributingSources()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCRtpReceiver interface: new RTCPeerConnection().addTransceiver('audio').receiver must inherit property "getSynchronizationSources()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCRtpReceiver interface: new RTCPeerConnection().addTransceiver('audio').receiver must inherit property "getStats()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-PASS RTCRtpContributingSource interface: existence and properties of interface object
-PASS RTCRtpContributingSource interface object length
-PASS RTCRtpContributingSource interface object name
-PASS RTCRtpContributingSource interface: existence and properties of interface prototype object
-PASS RTCRtpContributingSource interface: existence and properties of interface prototype object's "constructor" property
-PASS RTCRtpContributingSource interface: existence and properties of interface prototype object's @@unscopables property
-PASS RTCRtpContributingSource interface: attribute timestamp
-PASS Unscopable handled correctly for timestamp property on RTCRtpContributingSource
-PASS RTCRtpContributingSource interface: attribute source
-PASS Unscopable handled correctly for source property on RTCRtpContributingSource
-FAIL RTCRtpContributingSource interface: attribute audioLevel assert_true: The prototype object must have a property "audioLevel" expected true got false
-PASS Unscopable handled correctly for audioLevel property on RTCRtpContributingSource
-FAIL RTCRtpSynchronizationSource interface: existence and properties of interface object assert_own_property: self does not have own property "RTCRtpSynchronizationSource" expected property "RTCRtpSynchronizationSource" missing
-FAIL RTCRtpSynchronizationSource interface object length assert_own_property: self does not have own property "RTCRtpSynchronizationSource" expected property "RTCRtpSynchronizationSource" missing
-FAIL RTCRtpSynchronizationSource interface object name assert_own_property: self does not have own property "RTCRtpSynchronizationSource" expected property "RTCRtpSynchronizationSource" missing
-FAIL RTCRtpSynchronizationSource interface: existence and properties of interface prototype object assert_own_property: self does not have own property "RTCRtpSynchronizationSource" expected property "RTCRtpSynchronizationSource" missing
-FAIL RTCRtpSynchronizationSource interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "RTCRtpSynchronizationSource" expected property "RTCRtpSynchronizationSource" missing
-FAIL RTCRtpSynchronizationSource interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "RTCRtpSynchronizationSource" expected property "RTCRtpSynchronizationSource" missing
-FAIL RTCRtpSynchronizationSource interface: attribute timestamp assert_own_property: self does not have own property "RTCRtpSynchronizationSource" expected property "RTCRtpSynchronizationSource" missing
-PASS Unscopable handled correctly for timestamp property on RTCRtpSynchronizationSource
-FAIL RTCRtpSynchronizationSource interface: attribute source assert_own_property: self does not have own property "RTCRtpSynchronizationSource" expected property "RTCRtpSynchronizationSource" missing
-PASS Unscopable handled correctly for source property on RTCRtpSynchronizationSource
-FAIL RTCRtpSynchronizationSource interface: attribute audioLevel assert_own_property: self does not have own property "RTCRtpSynchronizationSource" expected property "RTCRtpSynchronizationSource" missing
-PASS Unscopable handled correctly for audioLevel property on RTCRtpSynchronizationSource
-FAIL RTCRtpSynchronizationSource interface: attribute voiceActivityFlag assert_own_property: self does not have own property "RTCRtpSynchronizationSource" expected property "RTCRtpSynchronizationSource" missing
-PASS Unscopable handled correctly for voiceActivityFlag property on RTCRtpSynchronizationSource
-FAIL RTCRtpTransceiver interface: existence and properties of interface object assert_own_property: self does not have own property "RTCRtpTransceiver" expected property "RTCRtpTransceiver" missing
-FAIL RTCRtpTransceiver interface object length assert_own_property: self does not have own property "RTCRtpTransceiver" expected property "RTCRtpTransceiver" missing
-FAIL RTCRtpTransceiver interface object name assert_own_property: self does not have own property "RTCRtpTransceiver" expected property "RTCRtpTransceiver" missing
-FAIL RTCRtpTransceiver interface: existence and properties of interface prototype object assert_own_property: self does not have own property "RTCRtpTransceiver" expected property "RTCRtpTransceiver" missing
-FAIL RTCRtpTransceiver interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "RTCRtpTransceiver" expected property "RTCRtpTransceiver" missing
-FAIL RTCRtpTransceiver interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "RTCRtpTransceiver" expected property "RTCRtpTransceiver" missing
-FAIL RTCRtpTransceiver interface: attribute mid assert_own_property: self does not have own property "RTCRtpTransceiver" expected property "RTCRtpTransceiver" missing
-PASS Unscopable handled correctly for mid property on RTCRtpTransceiver
-FAIL RTCRtpTransceiver interface: attribute sender assert_own_property: self does not have own property "RTCRtpTransceiver" expected property "RTCRtpTransceiver" missing
-PASS Unscopable handled correctly for sender property on RTCRtpTransceiver
-FAIL RTCRtpTransceiver interface: attribute receiver assert_own_property: self does not have own property "RTCRtpTransceiver" expected property "RTCRtpTransceiver" missing
-PASS Unscopable handled correctly for receiver property on RTCRtpTransceiver
-FAIL RTCRtpTransceiver interface: attribute stopped assert_own_property: self does not have own property "RTCRtpTransceiver" expected property "RTCRtpTransceiver" missing
-PASS Unscopable handled correctly for stopped property on RTCRtpTransceiver
-FAIL RTCRtpTransceiver interface: attribute direction assert_own_property: self does not have own property "RTCRtpTransceiver" expected property "RTCRtpTransceiver" missing
-PASS Unscopable handled correctly for direction property on RTCRtpTransceiver
-FAIL RTCRtpTransceiver interface: attribute currentDirection assert_own_property: self does not have own property "RTCRtpTransceiver" expected property "RTCRtpTransceiver" missing
-PASS Unscopable handled correctly for currentDirection property on RTCRtpTransceiver
-FAIL RTCRtpTransceiver interface: operation setDirection(RTCRtpTransceiverDirection) assert_own_property: self does not have own property "RTCRtpTransceiver" expected property "RTCRtpTransceiver" missing
-PASS Unscopable handled correctly for setDirection(RTCRtpTransceiverDirection) on RTCRtpTransceiver
-FAIL RTCRtpTransceiver interface: operation stop() assert_own_property: self does not have own property "RTCRtpTransceiver" expected property "RTCRtpTransceiver" missing
-PASS Unscopable handled correctly for stop() on RTCRtpTransceiver
-FAIL RTCRtpTransceiver interface: operation setCodecPreferences([object Object]) assert_own_property: self does not have own property "RTCRtpTransceiver" expected property "RTCRtpTransceiver" missing
-PASS Unscopable handled correctly for setCodecPreferences([object Object]) on RTCRtpTransceiver
-FAIL RTCRtpTransceiver must be primary interface of new RTCPeerConnection().addTransceiver('audio') assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL Stringification of new RTCPeerConnection().addTransceiver('audio') assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCRtpTransceiver interface: new RTCPeerConnection().addTransceiver('audio') must inherit property "mid" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCRtpTransceiver interface: new RTCPeerConnection().addTransceiver('audio') must inherit property "sender" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCRtpTransceiver interface: new RTCPeerConnection().addTransceiver('audio') must inherit property "receiver" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCRtpTransceiver interface: new RTCPeerConnection().addTransceiver('audio') must inherit property "stopped" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCRtpTransceiver interface: new RTCPeerConnection().addTransceiver('audio') must inherit property "direction" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCRtpTransceiver interface: new RTCPeerConnection().addTransceiver('audio') must inherit property "currentDirection" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCRtpTransceiver interface: new RTCPeerConnection().addTransceiver('audio') must inherit property "setDirection(RTCRtpTransceiverDirection)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCRtpTransceiver interface: calling setDirection(RTCRtpTransceiverDirection) on new RTCPeerConnection().addTransceiver('audio') with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCRtpTransceiver interface: new RTCPeerConnection().addTransceiver('audio') must inherit property "stop()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCRtpTransceiver interface: new RTCPeerConnection().addTransceiver('audio') must inherit property "setCodecPreferences([object Object])" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCRtpTransceiver interface: calling setCodecPreferences([object Object]) on new RTCPeerConnection().addTransceiver('audio') with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: (intermediate value).addTransceiver is not a function"
-FAIL RTCDtlsTransport interface: existence and properties of interface object assert_own_property: self does not have own property "RTCDtlsTransport" expected property "RTCDtlsTransport" missing
-FAIL RTCDtlsTransport interface object length assert_own_property: self does not have own property "RTCDtlsTransport" expected property "RTCDtlsTransport" missing
-FAIL RTCDtlsTransport interface object name assert_own_property: self does not have own property "RTCDtlsTransport" expected property "RTCDtlsTransport" missing
-FAIL RTCDtlsTransport interface: existence and properties of interface prototype object assert_own_property: self does not have own property "RTCDtlsTransport" expected property "RTCDtlsTransport" missing
-FAIL RTCDtlsTransport interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "RTCDtlsTransport" expected property "RTCDtlsTransport" missing
-FAIL RTCDtlsTransport interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "RTCDtlsTransport" expected property "RTCDtlsTransport" missing
-FAIL RTCDtlsTransport interface: attribute transport assert_own_property: self does not have own property "RTCDtlsTransport" expected property "RTCDtlsTransport" missing
-PASS Unscopable handled correctly for transport property on RTCDtlsTransport
-FAIL RTCDtlsTransport interface: attribute state assert_own_property: self does not have own property "RTCDtlsTransport" expected property "RTCDtlsTransport" missing
-PASS Unscopable handled correctly for state property on RTCDtlsTransport
-FAIL RTCDtlsTransport interface: operation getRemoteCertificates() assert_own_property: self does not have own property "RTCDtlsTransport" expected property "RTCDtlsTransport" missing
-PASS Unscopable handled correctly for getRemoteCertificates() on RTCDtlsTransport
-FAIL RTCDtlsTransport interface: attribute onstatechange assert_own_property: self does not have own property "RTCDtlsTransport" expected property "RTCDtlsTransport" missing
-PASS Unscopable handled correctly for onstatechange property on RTCDtlsTransport
-FAIL RTCDtlsTransport must be primary interface of idlTestObjects.dtlsTransport assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL Stringification of idlTestObjects.dtlsTransport assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL RTCDtlsTransport interface: idlTestObjects.dtlsTransport must inherit property "transport" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL RTCDtlsTransport interface: idlTestObjects.dtlsTransport must inherit property "state" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL RTCDtlsTransport interface: idlTestObjects.dtlsTransport must inherit property "getRemoteCertificates()" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL RTCDtlsTransport interface: idlTestObjects.dtlsTransport must inherit property "onstatechange" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL RTCIceTransport interface: existence and properties of interface object assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing
-FAIL RTCIceTransport interface object length assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing
-FAIL RTCIceTransport interface object name assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing
-FAIL RTCIceTransport interface: existence and properties of interface prototype object assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing
-FAIL RTCIceTransport interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing
-FAIL RTCIceTransport interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing
-FAIL RTCIceTransport interface: attribute role assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing
-PASS Unscopable handled correctly for role property on RTCIceTransport
-FAIL RTCIceTransport interface: attribute component assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing
-PASS Unscopable handled correctly for component property on RTCIceTransport
-FAIL RTCIceTransport interface: attribute state assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing
-PASS Unscopable handled correctly for state property on RTCIceTransport
-FAIL RTCIceTransport interface: attribute gatheringState assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing
-PASS Unscopable handled correctly for gatheringState property on RTCIceTransport
-FAIL RTCIceTransport interface: operation getLocalCandidates() assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing
-PASS Unscopable handled correctly for getLocalCandidates() on RTCIceTransport
-FAIL RTCIceTransport interface: operation getRemoteCandidates() assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing
-PASS Unscopable handled correctly for getRemoteCandidates() on RTCIceTransport
-FAIL RTCIceTransport interface: operation getSelectedCandidatePair() assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing
-PASS Unscopable handled correctly for getSelectedCandidatePair() on RTCIceTransport
-FAIL RTCIceTransport interface: operation getLocalParameters() assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing
-PASS Unscopable handled correctly for getLocalParameters() on RTCIceTransport
-FAIL RTCIceTransport interface: operation getRemoteParameters() assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing
-PASS Unscopable handled correctly for getRemoteParameters() on RTCIceTransport
-FAIL RTCIceTransport interface: attribute onstatechange assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing
-PASS Unscopable handled correctly for onstatechange property on RTCIceTransport
-FAIL RTCIceTransport interface: attribute ongatheringstatechange assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing
-PASS Unscopable handled correctly for ongatheringstatechange property on RTCIceTransport
-FAIL RTCIceTransport interface: attribute onselectedcandidatepairchange assert_own_property: self does not have own property "RTCIceTransport" expected property "RTCIceTransport" missing
-PASS Unscopable handled correctly for onselectedcandidatepairchange property on RTCIceTransport
-FAIL RTCIceTransport must be primary interface of idlTestObjects.iceTransport assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL Stringification of idlTestObjects.iceTransport assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "role" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "component" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "state" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "gatheringState" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "getLocalCandidates()" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "getRemoteCandidates()" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "getSelectedCandidatePair()" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "getLocalParameters()" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "getRemoteParameters()" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "onstatechange" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "ongatheringstatechange" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "onselectedcandidatepairchange" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL RTCTrackEvent interface: existence and properties of interface object Cannot read property 'has_extended_attribute' of undefined
-PASS RTCTrackEvent interface object length
-PASS RTCTrackEvent interface object name
-FAIL RTCTrackEvent interface: existence and properties of interface prototype object Cannot read property 'has_extended_attribute' of undefined
-PASS RTCTrackEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS RTCTrackEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS RTCTrackEvent interface: attribute receiver
-PASS Unscopable handled correctly for receiver property on RTCTrackEvent
-PASS RTCTrackEvent interface: attribute track
-PASS Unscopable handled correctly for track property on RTCTrackEvent
-PASS RTCTrackEvent interface: attribute streams
-PASS Unscopable handled correctly for streams property on RTCTrackEvent
-FAIL RTCTrackEvent interface: attribute transceiver assert_true: The prototype object must have a property "transceiver" expected true got false
-PASS Unscopable handled correctly for transceiver property on RTCTrackEvent
-FAIL RTCTrackEvent must be primary interface of initTrackEvent() assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: pc.addTransceiver is not a function"
-FAIL Stringification of initTrackEvent() assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: pc.addTransceiver is not a function"
-FAIL RTCTrackEvent interface: initTrackEvent() must inherit property "receiver" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: pc.addTransceiver is not a function"
-FAIL RTCTrackEvent interface: initTrackEvent() must inherit property "track" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: pc.addTransceiver is not a function"
-FAIL RTCTrackEvent interface: initTrackEvent() must inherit property "streams" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: pc.addTransceiver is not a function"
-FAIL RTCTrackEvent interface: initTrackEvent() must inherit property "transceiver" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: pc.addTransceiver is not a function"
-FAIL RTCSctpTransport interface: existence and properties of interface object assert_own_property: self does not have own property "RTCSctpTransport" expected property "RTCSctpTransport" missing
-FAIL RTCSctpTransport interface object length assert_own_property: self does not have own property "RTCSctpTransport" expected property "RTCSctpTransport" missing
-FAIL RTCSctpTransport interface object name assert_own_property: self does not have own property "RTCSctpTransport" expected property "RTCSctpTransport" missing
-FAIL RTCSctpTransport interface: existence and properties of interface prototype object assert_own_property: self does not have own property "RTCSctpTransport" expected property "RTCSctpTransport" missing
-FAIL RTCSctpTransport interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "RTCSctpTransport" expected property "RTCSctpTransport" missing
-FAIL RTCSctpTransport interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "RTCSctpTransport" expected property "RTCSctpTransport" missing
-FAIL RTCSctpTransport interface: attribute transport assert_own_property: self does not have own property "RTCSctpTransport" expected property "RTCSctpTransport" missing
-PASS Unscopable handled correctly for transport property on RTCSctpTransport
-FAIL RTCSctpTransport interface: attribute maxMessageSize assert_own_property: self does not have own property "RTCSctpTransport" expected property "RTCSctpTransport" missing
-PASS Unscopable handled correctly for maxMessageSize property on RTCSctpTransport
-FAIL RTCSctpTransport must be primary interface of idlTestObjects.sctpTransport assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL Stringification of idlTestObjects.sctpTransport assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL RTCSctpTransport interface: idlTestObjects.sctpTransport must inherit property "transport" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL RTCSctpTransport interface: idlTestObjects.sctpTransport must inherit property "maxMessageSize" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL RTCDataChannel interface: existence and properties of interface object Cannot read property 'has_extended_attribute' of undefined
-PASS RTCDataChannel interface object length
-PASS RTCDataChannel interface object name
-FAIL RTCDataChannel interface: existence and properties of interface prototype object Cannot read property 'has_extended_attribute' of undefined
-PASS RTCDataChannel interface: existence and properties of interface prototype object's "constructor" property
-PASS RTCDataChannel interface: existence and properties of interface prototype object's @@unscopables property
-PASS RTCDataChannel interface: attribute label
-PASS Unscopable handled correctly for label property on RTCDataChannel
-PASS RTCDataChannel interface: attribute ordered
-PASS Unscopable handled correctly for ordered property on RTCDataChannel
-FAIL RTCDataChannel interface: attribute maxPacketLifeTime assert_true: The prototype object must have a property "maxPacketLifeTime" expected true got false
-PASS Unscopable handled correctly for maxPacketLifeTime property on RTCDataChannel
-PASS RTCDataChannel interface: attribute maxRetransmits
-PASS Unscopable handled correctly for maxRetransmits property on RTCDataChannel
-PASS RTCDataChannel interface: attribute protocol
-PASS Unscopable handled correctly for protocol property on RTCDataChannel
-PASS RTCDataChannel interface: attribute negotiated
-PASS Unscopable handled correctly for negotiated property on RTCDataChannel
-PASS RTCDataChannel interface: attribute id
-PASS Unscopable handled correctly for id property on RTCDataChannel
-FAIL RTCDataChannel interface: attribute priority assert_true: The prototype object must have a property "priority" expected true got false
-PASS Unscopable handled correctly for priority property on RTCDataChannel
-PASS RTCDataChannel interface: attribute readyState
-PASS Unscopable handled correctly for readyState property on RTCDataChannel
-PASS RTCDataChannel interface: attribute bufferedAmount
-PASS Unscopable handled correctly for bufferedAmount property on RTCDataChannel
-PASS RTCDataChannel interface: attribute bufferedAmountLowThreshold
-PASS Unscopable handled correctly for bufferedAmountLowThreshold property on RTCDataChannel
-PASS RTCDataChannel interface: attribute onopen
-PASS Unscopable handled correctly for onopen property on RTCDataChannel
-PASS RTCDataChannel interface: attribute onbufferedamountlow
-PASS Unscopable handled correctly for onbufferedamountlow property on RTCDataChannel
-PASS RTCDataChannel interface: attribute onerror
-PASS Unscopable handled correctly for onerror property on RTCDataChannel
-PASS RTCDataChannel interface: attribute onclose
-PASS Unscopable handled correctly for onclose property on RTCDataChannel
-PASS RTCDataChannel interface: operation close()
-PASS Unscopable handled correctly for close() on RTCDataChannel
-PASS RTCDataChannel interface: attribute onmessage
-PASS Unscopable handled correctly for onmessage property on RTCDataChannel
-PASS RTCDataChannel interface: attribute binaryType
-PASS Unscopable handled correctly for binaryType property on RTCDataChannel
-PASS RTCDataChannel interface: operation send(USVString)
-PASS Unscopable handled correctly for send(USVString) on RTCDataChannel
-PASS RTCDataChannel interface: operation send(Blob)
-PASS Unscopable handled correctly for send(Blob) on RTCDataChannel
-PASS RTCDataChannel interface: operation send(ArrayBuffer)
-PASS Unscopable handled correctly for send(ArrayBuffer) on RTCDataChannel
-PASS RTCDataChannel interface: operation send(ArrayBufferView)
-PASS Unscopable handled correctly for send(ArrayBufferView) on RTCDataChannel
-PASS RTCDataChannel must be primary interface of new RTCPeerConnection().createDataChannel('')
-FAIL Stringification of new RTCPeerConnection().createDataChannel('') Cannot read property 'has_stringifier' of undefined
-PASS RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "label" with the proper type
-PASS RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "ordered" with the proper type
-FAIL RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "maxPacketLifeTime" with the proper type assert_inherits: property "maxPacketLifeTime" not found in prototype chain
-PASS RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "maxRetransmits" with the proper type
-PASS RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "protocol" with the proper type
-PASS RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "negotiated" with the proper type
-PASS RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "id" with the proper type
-FAIL RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "priority" with the proper type assert_inherits: property "priority" not found in prototype chain
-PASS RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "readyState" with the proper type
-PASS RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "bufferedAmount" with the proper type
-PASS RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "bufferedAmountLowThreshold" with the proper type
-PASS RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "onopen" with the proper type
-PASS RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "onbufferedamountlow" with the proper type
-PASS RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "onerror" with the proper type
-PASS RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "onclose" with the proper type
-PASS RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "close()" with the proper type
-PASS RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "onmessage" with the proper type
-PASS RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "binaryType" with the proper type
-PASS RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "send(USVString)" with the proper type
-PASS RTCDataChannel interface: calling send(USVString) on new RTCPeerConnection().createDataChannel('') with too few arguments must throw TypeError
-PASS RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "send(Blob)" with the proper type
-PASS RTCDataChannel interface: calling send(Blob) on new RTCPeerConnection().createDataChannel('') with too few arguments must throw TypeError
-PASS RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "send(ArrayBuffer)" with the proper type
-PASS RTCDataChannel interface: calling send(ArrayBuffer) on new RTCPeerConnection().createDataChannel('') with too few arguments must throw TypeError
-PASS RTCDataChannel interface: new RTCPeerConnection().createDataChannel('') must inherit property "send(ArrayBufferView)" with the proper type
-PASS RTCDataChannel interface: calling send(ArrayBufferView) on new RTCPeerConnection().createDataChannel('') with too few arguments must throw TypeError
-FAIL RTCDataChannelEvent interface: existence and properties of interface object Cannot read property 'has_extended_attribute' of undefined
-PASS RTCDataChannelEvent interface object length
-PASS RTCDataChannelEvent interface object name
-FAIL RTCDataChannelEvent interface: existence and properties of interface prototype object Cannot read property 'has_extended_attribute' of undefined
-PASS RTCDataChannelEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS RTCDataChannelEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS RTCDataChannelEvent interface: attribute channel
-PASS Unscopable handled correctly for channel property on RTCDataChannelEvent
-PASS RTCDataChannelEvent must be primary interface of new RTCDataChannelEvent('channel',
-        { channel: new RTCPeerConnection().createDataChannel('') })
-FAIL Stringification of new RTCDataChannelEvent('channel',
-        { channel: new RTCPeerConnection().createDataChannel('') }) Cannot read property 'has_stringifier' of undefined
-PASS RTCDataChannelEvent interface: new RTCDataChannelEvent('channel',
-        { channel: new RTCPeerConnection().createDataChannel('') }) must inherit property "channel" with the proper type
-FAIL RTCDTMFSender interface: existence and properties of interface object Cannot read property 'has_extended_attribute' of undefined
-PASS RTCDTMFSender interface object length
-PASS RTCDTMFSender interface object name
-FAIL RTCDTMFSender interface: existence and properties of interface prototype object Cannot read property 'has_extended_attribute' of undefined
-PASS RTCDTMFSender interface: existence and properties of interface prototype object's "constructor" property
-PASS RTCDTMFSender interface: existence and properties of interface prototype object's @@unscopables property
-PASS RTCDTMFSender interface: operation insertDTMF(DOMString, unsigned long, unsigned long)
-PASS Unscopable handled correctly for insertDTMF(DOMString, unsigned long, unsigned long) on RTCDTMFSender
-PASS RTCDTMFSender interface: attribute ontonechange
-PASS Unscopable handled correctly for ontonechange property on RTCDTMFSender
-PASS RTCDTMFSender interface: attribute toneBuffer
-PASS Unscopable handled correctly for toneBuffer property on RTCDTMFSender
-FAIL RTCDTMFToneChangeEvent interface: existence and properties of interface object Cannot read property 'has_extended_attribute' of undefined
-PASS RTCDTMFToneChangeEvent interface object length
-PASS RTCDTMFToneChangeEvent interface object name
-FAIL RTCDTMFToneChangeEvent interface: existence and properties of interface prototype object Cannot read property 'has_extended_attribute' of undefined
-PASS RTCDTMFToneChangeEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS RTCDTMFToneChangeEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS RTCDTMFToneChangeEvent interface: attribute tone
-PASS Unscopable handled correctly for tone property on RTCDTMFToneChangeEvent
-PASS RTCStatsReport interface: existence and properties of interface object
-PASS RTCStatsReport interface object length
-PASS RTCStatsReport interface object name
-PASS RTCStatsReport interface: existence and properties of interface prototype object
-PASS RTCStatsReport interface: existence and properties of interface prototype object's "constructor" property
-PASS RTCStatsReport interface: existence and properties of interface prototype object's @@unscopables property
-PASS RTCIdentityProviderGlobalScope interface: existence and properties of interface object
-PASS RTCIdentityProviderRegistrar interface: existence and properties of interface object
-FAIL RTCIdentityAssertion interface: existence and properties of interface object assert_own_property: self does not have own property "RTCIdentityAssertion" expected property "RTCIdentityAssertion" missing
-FAIL RTCIdentityAssertion interface object length assert_own_property: self does not have own property "RTCIdentityAssertion" expected property "RTCIdentityAssertion" missing
-FAIL RTCIdentityAssertion interface object name assert_own_property: self does not have own property "RTCIdentityAssertion" expected property "RTCIdentityAssertion" missing
-FAIL RTCIdentityAssertion interface: existence and properties of interface prototype object assert_own_property: self does not have own property "RTCIdentityAssertion" expected property "RTCIdentityAssertion" missing
-FAIL RTCIdentityAssertion interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "RTCIdentityAssertion" expected property "RTCIdentityAssertion" missing
-FAIL RTCIdentityAssertion interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "RTCIdentityAssertion" expected property "RTCIdentityAssertion" missing
-FAIL RTCIdentityAssertion interface: attribute idp assert_own_property: self does not have own property "RTCIdentityAssertion" expected property "RTCIdentityAssertion" missing
-PASS Unscopable handled correctly for idp property on RTCIdentityAssertion
-FAIL RTCIdentityAssertion interface: attribute name assert_own_property: self does not have own property "RTCIdentityAssertion" expected property "RTCIdentityAssertion" missing
-PASS Unscopable handled correctly for name property on RTCIdentityAssertion
-FAIL RTCErrorEvent interface: existence and properties of interface object assert_own_property: self does not have own property "RTCErrorEvent" expected property "RTCErrorEvent" missing
-FAIL RTCErrorEvent interface object length assert_own_property: self does not have own property "RTCErrorEvent" expected property "RTCErrorEvent" missing
-FAIL RTCErrorEvent interface object name assert_own_property: self does not have own property "RTCErrorEvent" expected property "RTCErrorEvent" missing
-FAIL RTCErrorEvent interface: existence and properties of interface prototype object assert_own_property: self does not have own property "RTCErrorEvent" expected property "RTCErrorEvent" missing
-FAIL RTCErrorEvent interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "RTCErrorEvent" expected property "RTCErrorEvent" missing
-FAIL RTCErrorEvent interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "RTCErrorEvent" expected property "RTCErrorEvent" missing
-FAIL RTCErrorEvent interface: attribute error assert_own_property: self does not have own property "RTCErrorEvent" expected property "RTCErrorEvent" missing
-PASS Unscopable handled correctly for error property on RTCErrorEvent
-FAIL RTCErrorEvent must be primary interface of new RTCErrorEvent('error') assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: RTCErrorEvent is not defined"
-FAIL Stringification of new RTCErrorEvent('error') assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: RTCErrorEvent is not defined"
-FAIL RTCErrorEvent interface: new RTCErrorEvent('error') must inherit property "error" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: RTCErrorEvent is not defined"
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/webvr/idlharness.https-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/webvr/idlharness.https-expected.txt
deleted file mode 100644
index afa899a..0000000
--- a/third_party/WebKit/LayoutTests/platform/win/external/wpt/webvr/idlharness.https-expected.txt
+++ /dev/null
@@ -1,145 +0,0 @@
-This is a testharness.js-based test.
-FAIL Window interface: attribute onvrdisplayconnect assert_own_property: The global object must have a property "onvrdisplayconnect" expected property "onvrdisplayconnect" missing
-PASS Unscopable handled correctly for onvrdisplayconnect property on Window
-FAIL Window interface: attribute onvrdisplaydisconnect assert_own_property: The global object must have a property "onvrdisplaydisconnect" expected property "onvrdisplaydisconnect" missing
-PASS Unscopable handled correctly for onvrdisplaydisconnect property on Window
-FAIL Window interface: attribute onvrdisplayactivate assert_own_property: The global object must have a property "onvrdisplayactivate" expected property "onvrdisplayactivate" missing
-PASS Unscopable handled correctly for onvrdisplayactivate property on Window
-FAIL Window interface: attribute onvrdisplaydeactivate assert_own_property: The global object must have a property "onvrdisplaydeactivate" expected property "onvrdisplaydeactivate" missing
-PASS Unscopable handled correctly for onvrdisplaydeactivate property on Window
-FAIL Window interface: attribute onvrdisplayblur assert_own_property: The global object must have a property "onvrdisplayblur" expected property "onvrdisplayblur" missing
-PASS Unscopable handled correctly for onvrdisplayblur property on Window
-FAIL Window interface: attribute onvrdisplayfocus assert_own_property: The global object must have a property "onvrdisplayfocus" expected property "onvrdisplayfocus" missing
-PASS Unscopable handled correctly for onvrdisplayfocus property on Window
-FAIL Window interface: attribute onvrdisplaypresentchange assert_own_property: The global object must have a property "onvrdisplaypresentchange" expected property "onvrdisplaypresentchange" missing
-PASS Unscopable handled correctly for onvrdisplaypresentchange property on Window
-PASS Navigator interface: operation getVRDisplays()
-PASS Unscopable handled correctly for getVRDisplays() on Navigator
-FAIL Navigator interface: attribute activeVRDisplays assert_true: The prototype object must have a property "activeVRDisplays" expected true got false
-PASS Unscopable handled correctly for activeVRDisplays property on Navigator
-FAIL Navigator interface: attribute vrEnabled assert_true: The prototype object must have a property "vrEnabled" expected true got false
-PASS Unscopable handled correctly for vrEnabled property on Navigator
-FAIL HTMLIFrameElement interface: attribute allowvr assert_true: The prototype object must have a property "allowvr" expected true got false
-PASS Unscopable handled correctly for allowvr property on HTMLIFrameElement
-PASS Gamepad interface: attribute displayId
-PASS Unscopable handled correctly for displayId property on Gamepad
-PASS VRDisplay interface: existence and properties of interface object
-PASS VRDisplay interface object length
-PASS VRDisplay interface object name
-PASS VRDisplay interface: existence and properties of interface prototype object
-PASS VRDisplay interface: existence and properties of interface prototype object's "constructor" property
-PASS VRDisplay interface: existence and properties of interface prototype object's @@unscopables property
-PASS VRDisplay interface: attribute isPresenting
-PASS Unscopable handled correctly for isPresenting property on VRDisplay
-PASS VRDisplay interface: attribute capabilities
-PASS Unscopable handled correctly for capabilities property on VRDisplay
-PASS VRDisplay interface: attribute stageParameters
-PASS Unscopable handled correctly for stageParameters property on VRDisplay
-PASS VRDisplay interface: operation getEyeParameters(VREye)
-PASS Unscopable handled correctly for getEyeParameters(VREye) on VRDisplay
-PASS VRDisplay interface: attribute displayId
-PASS Unscopable handled correctly for displayId property on VRDisplay
-PASS VRDisplay interface: attribute displayName
-PASS Unscopable handled correctly for displayName property on VRDisplay
-PASS VRDisplay interface: operation getFrameData(VRFrameData)
-PASS Unscopable handled correctly for getFrameData(VRFrameData) on VRDisplay
-PASS VRDisplay interface: attribute depthNear
-PASS Unscopable handled correctly for depthNear property on VRDisplay
-PASS VRDisplay interface: attribute depthFar
-PASS Unscopable handled correctly for depthFar property on VRDisplay
-PASS VRDisplay interface: operation requestAnimationFrame(FrameRequestCallback)
-PASS Unscopable handled correctly for requestAnimationFrame(FrameRequestCallback) on VRDisplay
-PASS VRDisplay interface: operation cancelAnimationFrame(long)
-PASS Unscopable handled correctly for cancelAnimationFrame(long) on VRDisplay
-PASS VRDisplay interface: operation requestPresent([object Object])
-PASS Unscopable handled correctly for requestPresent([object Object]) on VRDisplay
-PASS VRDisplay interface: operation exitPresent()
-PASS Unscopable handled correctly for exitPresent() on VRDisplay
-PASS VRDisplay interface: operation getLayers()
-PASS Unscopable handled correctly for getLayers() on VRDisplay
-PASS VRDisplay interface: operation submitFrame()
-PASS Unscopable handled correctly for submitFrame() on VRDisplay
-PASS VRDisplayCapabilities interface: existence and properties of interface object
-PASS VRDisplayCapabilities interface object length
-PASS VRDisplayCapabilities interface object name
-PASS VRDisplayCapabilities interface: existence and properties of interface prototype object
-PASS VRDisplayCapabilities interface: existence and properties of interface prototype object's "constructor" property
-PASS VRDisplayCapabilities interface: existence and properties of interface prototype object's @@unscopables property
-PASS VRDisplayCapabilities interface: attribute hasPosition
-PASS Unscopable handled correctly for hasPosition property on VRDisplayCapabilities
-PASS VRDisplayCapabilities interface: attribute hasExternalDisplay
-PASS Unscopable handled correctly for hasExternalDisplay property on VRDisplayCapabilities
-PASS VRDisplayCapabilities interface: attribute canPresent
-PASS Unscopable handled correctly for canPresent property on VRDisplayCapabilities
-PASS VRDisplayCapabilities interface: attribute maxLayers
-PASS Unscopable handled correctly for maxLayers property on VRDisplayCapabilities
-PASS VRPose interface: existence and properties of interface object
-PASS VRPose interface object length
-PASS VRPose interface object name
-PASS VRPose interface: existence and properties of interface prototype object
-PASS VRPose interface: existence and properties of interface prototype object's "constructor" property
-PASS VRPose interface: existence and properties of interface prototype object's @@unscopables property
-PASS VRPose interface: attribute position
-PASS Unscopable handled correctly for position property on VRPose
-PASS VRPose interface: attribute linearVelocity
-PASS Unscopable handled correctly for linearVelocity property on VRPose
-PASS VRPose interface: attribute linearAcceleration
-PASS Unscopable handled correctly for linearAcceleration property on VRPose
-PASS VRPose interface: attribute orientation
-PASS Unscopable handled correctly for orientation property on VRPose
-PASS VRPose interface: attribute angularVelocity
-PASS Unscopable handled correctly for angularVelocity property on VRPose
-PASS VRPose interface: attribute angularAcceleration
-PASS Unscopable handled correctly for angularAcceleration property on VRPose
-PASS VRFrameData interface: existence and properties of interface object
-PASS VRFrameData interface object length
-PASS VRFrameData interface object name
-PASS VRFrameData interface: existence and properties of interface prototype object
-PASS VRFrameData interface: existence and properties of interface prototype object's "constructor" property
-PASS VRFrameData interface: existence and properties of interface prototype object's @@unscopables property
-PASS VRFrameData interface: attribute leftProjectionMatrix
-PASS Unscopable handled correctly for leftProjectionMatrix property on VRFrameData
-PASS VRFrameData interface: attribute leftViewMatrix
-PASS Unscopable handled correctly for leftViewMatrix property on VRFrameData
-PASS VRFrameData interface: attribute rightProjectionMatrix
-PASS Unscopable handled correctly for rightProjectionMatrix property on VRFrameData
-PASS VRFrameData interface: attribute rightViewMatrix
-PASS Unscopable handled correctly for rightViewMatrix property on VRFrameData
-PASS VRFrameData interface: attribute pose
-PASS Unscopable handled correctly for pose property on VRFrameData
-PASS VREyeParameters interface: existence and properties of interface object
-PASS VREyeParameters interface object length
-PASS VREyeParameters interface object name
-PASS VREyeParameters interface: existence and properties of interface prototype object
-PASS VREyeParameters interface: existence and properties of interface prototype object's "constructor" property
-PASS VREyeParameters interface: existence and properties of interface prototype object's @@unscopables property
-PASS VREyeParameters interface: attribute offset
-PASS Unscopable handled correctly for offset property on VREyeParameters
-PASS VREyeParameters interface: attribute renderWidth
-PASS Unscopable handled correctly for renderWidth property on VREyeParameters
-PASS VREyeParameters interface: attribute renderHeight
-PASS Unscopable handled correctly for renderHeight property on VREyeParameters
-PASS VRStageParameters interface: existence and properties of interface object
-PASS VRStageParameters interface object length
-PASS VRStageParameters interface object name
-PASS VRStageParameters interface: existence and properties of interface prototype object
-PASS VRStageParameters interface: existence and properties of interface prototype object's "constructor" property
-PASS VRStageParameters interface: existence and properties of interface prototype object's @@unscopables property
-PASS VRStageParameters interface: attribute sittingToStandingTransform
-PASS Unscopable handled correctly for sittingToStandingTransform property on VRStageParameters
-PASS VRStageParameters interface: attribute sizeX
-PASS Unscopable handled correctly for sizeX property on VRStageParameters
-PASS VRStageParameters interface: attribute sizeZ
-PASS Unscopable handled correctly for sizeZ property on VRStageParameters
-PASS VRDisplayEvent interface: existence and properties of interface object
-FAIL VRDisplayEvent interface object length assert_equals: wrong value for VRDisplayEvent.length expected 2 but got 1
-PASS VRDisplayEvent interface object name
-PASS VRDisplayEvent interface: existence and properties of interface prototype object
-PASS VRDisplayEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS VRDisplayEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS VRDisplayEvent interface: attribute display
-PASS Unscopable handled correctly for display property on VRDisplayEvent
-PASS VRDisplayEvent interface: attribute reason
-PASS Unscopable handled correctly for reason property on VRDisplayEvent
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/webvtt/api/interfaces-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/webvtt/api/interfaces-expected.txt
deleted file mode 100644
index fc1dd8bd..0000000
--- a/third_party/WebKit/LayoutTests/platform/win/external/wpt/webvtt/api/interfaces-expected.txt
+++ /dev/null
@@ -1,77 +0,0 @@
-This is a testharness.js-based test.
-Found 73 tests; 69 PASS, 4 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS VTTCue interface: existence and properties of interface object
-PASS VTTCue interface object length
-PASS VTTCue interface object name
-PASS VTTCue interface: existence and properties of interface prototype object
-PASS VTTCue interface: existence and properties of interface prototype object's "constructor" property
-PASS VTTCue interface: existence and properties of interface prototype object's @@unscopables property
-PASS VTTCue interface: attribute region
-PASS Unscopable handled correctly for region property on VTTCue
-PASS VTTCue interface: attribute vertical
-PASS Unscopable handled correctly for vertical property on VTTCue
-PASS VTTCue interface: attribute snapToLines
-PASS Unscopable handled correctly for snapToLines property on VTTCue
-PASS VTTCue interface: attribute line
-PASS Unscopable handled correctly for line property on VTTCue
-FAIL VTTCue interface: attribute lineAlign assert_true: The prototype object must have a property "lineAlign" expected true got false
-PASS Unscopable handled correctly for lineAlign property on VTTCue
-PASS VTTCue interface: attribute position
-PASS Unscopable handled correctly for position property on VTTCue
-FAIL VTTCue interface: attribute positionAlign assert_true: The prototype object must have a property "positionAlign" expected true got false
-PASS Unscopable handled correctly for positionAlign property on VTTCue
-PASS VTTCue interface: attribute size
-PASS Unscopable handled correctly for size property on VTTCue
-PASS VTTCue interface: attribute align
-PASS Unscopable handled correctly for align property on VTTCue
-PASS VTTCue interface: attribute text
-PASS Unscopable handled correctly for text property on VTTCue
-PASS VTTCue interface: operation getCueAsHTML()
-PASS Unscopable handled correctly for getCueAsHTML() on VTTCue
-PASS VTTCue must be primary interface of new VTTCue(0, 0, "")
-PASS Stringification of new VTTCue(0, 0, "")
-PASS VTTCue interface: new VTTCue(0, 0, "") must inherit property "region" with the proper type
-PASS VTTCue interface: new VTTCue(0, 0, "") must inherit property "vertical" with the proper type
-PASS VTTCue interface: new VTTCue(0, 0, "") must inherit property "snapToLines" with the proper type
-PASS VTTCue interface: new VTTCue(0, 0, "") must inherit property "line" with the proper type
-FAIL VTTCue interface: new VTTCue(0, 0, "") must inherit property "lineAlign" with the proper type assert_inherits: property "lineAlign" not found in prototype chain
-PASS VTTCue interface: new VTTCue(0, 0, "") must inherit property "position" with the proper type
-FAIL VTTCue interface: new VTTCue(0, 0, "") must inherit property "positionAlign" with the proper type assert_inherits: property "positionAlign" not found in prototype chain
-PASS VTTCue interface: new VTTCue(0, 0, "") must inherit property "size" with the proper type
-PASS VTTCue interface: new VTTCue(0, 0, "") must inherit property "align" with the proper type
-PASS VTTCue interface: new VTTCue(0, 0, "") must inherit property "text" with the proper type
-PASS VTTCue interface: new VTTCue(0, 0, "") must inherit property "getCueAsHTML()" with the proper type
-PASS VTTRegion interface: existence and properties of interface object
-PASS VTTRegion interface object length
-PASS VTTRegion interface object name
-PASS VTTRegion interface: existence and properties of interface prototype object
-PASS VTTRegion interface: existence and properties of interface prototype object's "constructor" property
-PASS VTTRegion interface: existence and properties of interface prototype object's @@unscopables property
-PASS VTTRegion interface: attribute id
-PASS Unscopable handled correctly for id property on VTTRegion
-PASS VTTRegion interface: attribute width
-PASS Unscopable handled correctly for width property on VTTRegion
-PASS VTTRegion interface: attribute lines
-PASS Unscopable handled correctly for lines property on VTTRegion
-PASS VTTRegion interface: attribute regionAnchorX
-PASS Unscopable handled correctly for regionAnchorX property on VTTRegion
-PASS VTTRegion interface: attribute regionAnchorY
-PASS Unscopable handled correctly for regionAnchorY property on VTTRegion
-PASS VTTRegion interface: attribute viewportAnchorX
-PASS Unscopable handled correctly for viewportAnchorX property on VTTRegion
-PASS VTTRegion interface: attribute viewportAnchorY
-PASS Unscopable handled correctly for viewportAnchorY property on VTTRegion
-PASS VTTRegion interface: attribute scroll
-PASS Unscopable handled correctly for scroll property on VTTRegion
-PASS VTTRegion must be primary interface of new VTTRegion()
-PASS Stringification of new VTTRegion()
-PASS VTTRegion interface: new VTTRegion() must inherit property "id" with the proper type
-PASS VTTRegion interface: new VTTRegion() must inherit property "width" with the proper type
-PASS VTTRegion interface: new VTTRegion() must inherit property "lines" with the proper type
-PASS VTTRegion interface: new VTTRegion() must inherit property "regionAnchorX" with the proper type
-PASS VTTRegion interface: new VTTRegion() must inherit property "regionAnchorY" with the proper type
-PASS VTTRegion interface: new VTTRegion() must inherit property "viewportAnchorX" with the proper type
-PASS VTTRegion interface: new VTTRegion() must inherit property "viewportAnchorY" with the proper type
-PASS VTTRegion interface: new VTTRegion() must inherit property "scroll" with the proper type
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/webxr/interfaces.https-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/webxr/interfaces.https-expected.txt
deleted file mode 100644
index 6ae9ac7b..0000000
--- a/third_party/WebKit/LayoutTests/platform/win/external/wpt/webxr/interfaces.https-expected.txt
+++ /dev/null
@@ -1,203 +0,0 @@
-This is a testharness.js-based test.
-PASS Test IDL implementation of WebXR API
-PASS Navigator interface: attribute xr
-PASS Unscopable handled correctly for xr property on Navigator
-PASS Navigator interface: navigator must inherit property "xr" with the proper type
-PASS XR interface: existence and properties of interface object
-PASS XR interface object length
-PASS XR interface object name
-PASS XR interface: existence and properties of interface prototype object
-PASS XR interface: existence and properties of interface prototype object's "constructor" property
-PASS XR interface: existence and properties of interface prototype object's @@unscopables property
-PASS XR interface: operation requestDevice()
-PASS Unscopable handled correctly for requestDevice() on XR
-PASS XR interface: attribute ondevicechange
-PASS Unscopable handled correctly for ondevicechange property on XR
-PASS XRDevice interface: existence and properties of interface object
-PASS XRDevice interface object length
-PASS XRDevice interface object name
-PASS XRDevice interface: existence and properties of interface prototype object
-PASS XRDevice interface: existence and properties of interface prototype object's "constructor" property
-PASS XRDevice interface: existence and properties of interface prototype object's @@unscopables property
-PASS XRDevice interface: attribute external
-PASS Unscopable handled correctly for external property on XRDevice
-PASS XRDevice interface: operation supportsSession(XRSessionCreationOptions)
-PASS Unscopable handled correctly for supportsSession(XRSessionCreationOptions) on XRDevice
-PASS XRDevice interface: operation requestSession(XRSessionCreationOptions)
-PASS Unscopable handled correctly for requestSession(XRSessionCreationOptions) on XRDevice
-PASS XRSession interface: existence and properties of interface object
-PASS XRSession interface object length
-PASS XRSession interface object name
-PASS XRSession interface: existence and properties of interface prototype object
-PASS XRSession interface: existence and properties of interface prototype object's "constructor" property
-PASS XRSession interface: existence and properties of interface prototype object's @@unscopables property
-PASS XRSession interface: attribute device
-PASS Unscopable handled correctly for device property on XRSession
-PASS XRSession interface: attribute exclusive
-PASS Unscopable handled correctly for exclusive property on XRSession
-PASS XRSession interface: attribute outputContext
-PASS Unscopable handled correctly for outputContext property on XRSession
-PASS XRSession interface: attribute depthNear
-PASS Unscopable handled correctly for depthNear property on XRSession
-PASS XRSession interface: attribute depthFar
-PASS Unscopable handled correctly for depthFar property on XRSession
-PASS XRSession interface: attribute baseLayer
-PASS Unscopable handled correctly for baseLayer property on XRSession
-PASS XRSession interface: operation requestFrameOfReference(XRFrameOfReferenceType, XRFrameOfReferenceOptions)
-PASS Unscopable handled correctly for requestFrameOfReference(XRFrameOfReferenceType, XRFrameOfReferenceOptions) on XRSession
-PASS XRSession interface: operation requestAnimationFrame(XRFrameRequestCallback)
-PASS Unscopable handled correctly for requestAnimationFrame(XRFrameRequestCallback) on XRSession
-PASS XRSession interface: operation cancelAnimationFrame(long)
-PASS Unscopable handled correctly for cancelAnimationFrame(long) on XRSession
-PASS XRSession interface: operation end()
-PASS Unscopable handled correctly for end() on XRSession
-PASS XRSession interface: attribute onblur
-PASS Unscopable handled correctly for onblur property on XRSession
-PASS XRSession interface: attribute onfocus
-PASS Unscopable handled correctly for onfocus property on XRSession
-PASS XRSession interface: attribute onresetpose
-PASS Unscopable handled correctly for onresetpose property on XRSession
-PASS XRSession interface: attribute onend
-PASS Unscopable handled correctly for onend property on XRSession
-PASS XRPresentationFrame interface: existence and properties of interface object
-PASS XRPresentationFrame interface object length
-PASS XRPresentationFrame interface object name
-PASS XRPresentationFrame interface: existence and properties of interface prototype object
-PASS XRPresentationFrame interface: existence and properties of interface prototype object's "constructor" property
-PASS XRPresentationFrame interface: existence and properties of interface prototype object's @@unscopables property
-PASS XRPresentationFrame interface: attribute views
-PASS Unscopable handled correctly for views property on XRPresentationFrame
-PASS XRPresentationFrame interface: operation getDevicePose(XRCoordinateSystem)
-PASS Unscopable handled correctly for getDevicePose(XRCoordinateSystem) on XRPresentationFrame
-FAIL XRCoordinateSystem interface: existence and properties of interface object assert_equals: prototype of XRCoordinateSystem is not EventTarget expected function "function EventTarget() { [native code] }" but got function "function () { [native code] }"
-PASS XRCoordinateSystem interface object length
-PASS XRCoordinateSystem interface object name
-FAIL XRCoordinateSystem interface: existence and properties of interface prototype object assert_equals: prototype of XRCoordinateSystem.prototype is not EventTarget.prototype expected object "[object EventTarget]" but got object "[object Object]"
-PASS XRCoordinateSystem interface: existence and properties of interface prototype object's "constructor" property
-PASS XRCoordinateSystem interface: existence and properties of interface prototype object's @@unscopables property
-PASS XRCoordinateSystem interface: operation getTransformTo(XRCoordinateSystem)
-PASS Unscopable handled correctly for getTransformTo(XRCoordinateSystem) on XRCoordinateSystem
-PASS XRFrameOfReference interface: existence and properties of interface object
-PASS XRFrameOfReference interface object length
-PASS XRFrameOfReference interface object name
-PASS XRFrameOfReference interface: existence and properties of interface prototype object
-PASS XRFrameOfReference interface: existence and properties of interface prototype object's "constructor" property
-PASS XRFrameOfReference interface: existence and properties of interface prototype object's @@unscopables property
-PASS XRFrameOfReference interface: attribute bounds
-PASS Unscopable handled correctly for bounds property on XRFrameOfReference
-PASS XRFrameOfReference interface: attribute emulatedHeight
-PASS Unscopable handled correctly for emulatedHeight property on XRFrameOfReference
-FAIL XRFrameOfReference interface: attribute onboundschange assert_true: The prototype object must have a property "onboundschange" expected true got false
-PASS Unscopable handled correctly for onboundschange property on XRFrameOfReference
-PASS XRStageBounds interface: existence and properties of interface object
-PASS XRStageBounds interface object length
-PASS XRStageBounds interface object name
-PASS XRStageBounds interface: existence and properties of interface prototype object
-PASS XRStageBounds interface: existence and properties of interface prototype object's "constructor" property
-PASS XRStageBounds interface: existence and properties of interface prototype object's @@unscopables property
-PASS XRStageBounds interface: attribute geometry
-PASS Unscopable handled correctly for geometry property on XRStageBounds
-PASS XRStageBoundsPoint interface: existence and properties of interface object
-PASS XRStageBoundsPoint interface object length
-PASS XRStageBoundsPoint interface object name
-PASS XRStageBoundsPoint interface: existence and properties of interface prototype object
-PASS XRStageBoundsPoint interface: existence and properties of interface prototype object's "constructor" property
-PASS XRStageBoundsPoint interface: existence and properties of interface prototype object's @@unscopables property
-PASS XRStageBoundsPoint interface: attribute x
-PASS Unscopable handled correctly for x property on XRStageBoundsPoint
-PASS XRStageBoundsPoint interface: attribute z
-PASS Unscopable handled correctly for z property on XRStageBoundsPoint
-PASS XRView interface: existence and properties of interface object
-PASS XRView interface object length
-PASS XRView interface object name
-PASS XRView interface: existence and properties of interface prototype object
-PASS XRView interface: existence and properties of interface prototype object's "constructor" property
-PASS XRView interface: existence and properties of interface prototype object's @@unscopables property
-PASS XRView interface: attribute eye
-PASS Unscopable handled correctly for eye property on XRView
-PASS XRView interface: attribute projectionMatrix
-PASS Unscopable handled correctly for projectionMatrix property on XRView
-PASS XRView interface: operation getViewport(XRLayer)
-PASS Unscopable handled correctly for getViewport(XRLayer) on XRView
-PASS XRViewport interface: existence and properties of interface object
-PASS XRViewport interface object length
-PASS XRViewport interface object name
-PASS XRViewport interface: existence and properties of interface prototype object
-PASS XRViewport interface: existence and properties of interface prototype object's "constructor" property
-PASS XRViewport interface: existence and properties of interface prototype object's @@unscopables property
-PASS XRViewport interface: attribute x
-PASS Unscopable handled correctly for x property on XRViewport
-PASS XRViewport interface: attribute y
-PASS Unscopable handled correctly for y property on XRViewport
-PASS XRViewport interface: attribute width
-PASS Unscopable handled correctly for width property on XRViewport
-PASS XRViewport interface: attribute height
-PASS Unscopable handled correctly for height property on XRViewport
-PASS XRDevicePose interface: existence and properties of interface object
-PASS XRDevicePose interface object length
-PASS XRDevicePose interface object name
-PASS XRDevicePose interface: existence and properties of interface prototype object
-PASS XRDevicePose interface: existence and properties of interface prototype object's "constructor" property
-PASS XRDevicePose interface: existence and properties of interface prototype object's @@unscopables property
-PASS XRDevicePose interface: attribute poseModelMatrix
-PASS Unscopable handled correctly for poseModelMatrix property on XRDevicePose
-PASS XRDevicePose interface: operation getViewMatrix(XRView)
-PASS Unscopable handled correctly for getViewMatrix(XRView) on XRDevicePose
-PASS XRLayer interface: existence and properties of interface object
-PASS XRLayer interface object length
-PASS XRLayer interface object name
-PASS XRLayer interface: existence and properties of interface prototype object
-PASS XRLayer interface: existence and properties of interface prototype object's "constructor" property
-PASS XRLayer interface: existence and properties of interface prototype object's @@unscopables property
-PASS XRWebGLLayer interface: existence and properties of interface object
-PASS XRWebGLLayer interface object length
-PASS XRWebGLLayer interface object name
-PASS XRWebGLLayer interface: existence and properties of interface prototype object
-PASS XRWebGLLayer interface: existence and properties of interface prototype object's "constructor" property
-PASS XRWebGLLayer interface: existence and properties of interface prototype object's @@unscopables property
-PASS XRWebGLLayer interface: attribute context
-PASS Unscopable handled correctly for context property on XRWebGLLayer
-PASS XRWebGLLayer interface: attribute antialias
-PASS Unscopable handled correctly for antialias property on XRWebGLLayer
-PASS XRWebGLLayer interface: attribute depth
-PASS Unscopable handled correctly for depth property on XRWebGLLayer
-PASS XRWebGLLayer interface: attribute stencil
-PASS Unscopable handled correctly for stencil property on XRWebGLLayer
-PASS XRWebGLLayer interface: attribute alpha
-PASS Unscopable handled correctly for alpha property on XRWebGLLayer
-PASS XRWebGLLayer interface: attribute multiview
-PASS Unscopable handled correctly for multiview property on XRWebGLLayer
-PASS XRWebGLLayer interface: attribute framebuffer
-PASS Unscopable handled correctly for framebuffer property on XRWebGLLayer
-PASS XRWebGLLayer interface: attribute framebufferWidth
-PASS Unscopable handled correctly for framebufferWidth property on XRWebGLLayer
-PASS XRWebGLLayer interface: attribute framebufferHeight
-PASS Unscopable handled correctly for framebufferHeight property on XRWebGLLayer
-PASS XRWebGLLayer interface: operation requestViewportScaling(double)
-PASS Unscopable handled correctly for requestViewportScaling(double) on XRWebGLLayer
-PASS XRPresentationContext interface: existence and properties of interface object
-PASS XRPresentationContext interface object length
-PASS XRPresentationContext interface object name
-PASS XRPresentationContext interface: existence and properties of interface prototype object
-PASS XRPresentationContext interface: existence and properties of interface prototype object's "constructor" property
-PASS XRPresentationContext interface: existence and properties of interface prototype object's @@unscopables property
-PASS XRPresentationContext interface: attribute canvas
-PASS Unscopable handled correctly for canvas property on XRPresentationContext
-PASS XRSessionEvent interface: existence and properties of interface object
-PASS XRSessionEvent interface object length
-PASS XRSessionEvent interface object name
-PASS XRSessionEvent interface: existence and properties of interface prototype object
-PASS XRSessionEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS XRSessionEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS XRSessionEvent interface: attribute session
-PASS Unscopable handled correctly for session property on XRSessionEvent
-FAIL XRCoordinateSystemEvent interface: existence and properties of interface object assert_own_property: self does not have own property "XRCoordinateSystemEvent" expected property "XRCoordinateSystemEvent" missing
-FAIL XRCoordinateSystemEvent interface object length assert_own_property: self does not have own property "XRCoordinateSystemEvent" expected property "XRCoordinateSystemEvent" missing
-FAIL XRCoordinateSystemEvent interface object name assert_own_property: self does not have own property "XRCoordinateSystemEvent" expected property "XRCoordinateSystemEvent" missing
-FAIL XRCoordinateSystemEvent interface: existence and properties of interface prototype object assert_own_property: self does not have own property "XRCoordinateSystemEvent" expected property "XRCoordinateSystemEvent" missing
-FAIL XRCoordinateSystemEvent interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "XRCoordinateSystemEvent" expected property "XRCoordinateSystemEvent" missing
-FAIL XRCoordinateSystemEvent interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "XRCoordinateSystemEvent" expected property "XRCoordinateSystemEvent" missing
-FAIL XRCoordinateSystemEvent interface: attribute coordinateSystem assert_own_property: self does not have own property "XRCoordinateSystemEvent" expected property "XRCoordinateSystemEvent" missing
-PASS Unscopable handled correctly for coordinateSystem property on XRCoordinateSystemEvent
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/workers/interfaces.worker-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/workers/interfaces.worker-expected.txt
deleted file mode 100644
index 44a3e5fe..0000000
--- a/third_party/WebKit/LayoutTests/platform/win/external/wpt/workers/interfaces.worker-expected.txt
+++ /dev/null
@@ -1,211 +0,0 @@
-This is a testharness.js-based test.
-Found 207 tests; 195 PASS, 12 FAIL, 0 TIMEOUT, 0 NOTRUN.
-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, [object Object],[object Object])
-PASS Unscopable handled correctly for addEventListener(DOMString, EventListener, [object Object],[object Object]) on EventTarget
-PASS EventTarget interface: operation removeEventListener(DOMString, EventListener, [object Object],[object Object])
-PASS Unscopable handled correctly for removeEventListener(DOMString, EventListener, [object Object],[object Object]) on EventTarget
-PASS EventTarget interface: operation dispatchEvent(Event)
-PASS Unscopable handled correctly for dispatchEvent(Event) on EventTarget
-PASS EventListener interface: existence and properties of interface object
-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 Unscopable handled correctly for self property on WorkerGlobalScope
-PASS WorkerGlobalScope interface: attribute location
-PASS Unscopable handled correctly for location property on WorkerGlobalScope
-PASS WorkerGlobalScope interface: attribute navigator
-PASS Unscopable handled correctly for navigator property on WorkerGlobalScope
-PASS WorkerGlobalScope interface: operation importScripts(USVString)
-PASS Unscopable handled correctly for importScripts(USVString) on WorkerGlobalScope
-PASS WorkerGlobalScope interface: attribute onerror
-PASS Unscopable handled correctly for onerror property on WorkerGlobalScope
-FAIL WorkerGlobalScope interface: attribute onlanguagechange assert_true: The prototype object must have a property "onlanguagechange" expected true got false
-PASS Unscopable handled correctly for onlanguagechange property on WorkerGlobalScope
-FAIL WorkerGlobalScope interface: attribute onoffline assert_true: The prototype object must have a property "onoffline" expected true got false
-PASS Unscopable handled correctly for onoffline property on WorkerGlobalScope
-FAIL WorkerGlobalScope interface: attribute ononline assert_true: The prototype object must have a property "ononline" expected true got false
-PASS Unscopable handled correctly for ononline property on WorkerGlobalScope
-PASS WorkerGlobalScope interface: attribute onrejectionhandled
-PASS Unscopable handled correctly for onrejectionhandled property on WorkerGlobalScope
-PASS WorkerGlobalScope interface: attribute onunhandledrejection
-PASS Unscopable handled correctly for onunhandledrejection property on WorkerGlobalScope
-PASS WorkerGlobalScope interface: attribute origin
-PASS Unscopable handled correctly for origin property on WorkerGlobalScope
-PASS WorkerGlobalScope interface: operation btoa(DOMString)
-PASS Unscopable handled correctly for btoa(DOMString) on WorkerGlobalScope
-PASS WorkerGlobalScope interface: operation atob(DOMString)
-PASS Unscopable handled correctly for atob(DOMString) on WorkerGlobalScope
-PASS WorkerGlobalScope interface: operation setTimeout(TimerHandler, long, any)
-PASS Unscopable handled correctly for setTimeout(TimerHandler, long, any) on WorkerGlobalScope
-PASS WorkerGlobalScope interface: operation clearTimeout(long)
-PASS Unscopable handled correctly for clearTimeout(long) on WorkerGlobalScope
-PASS WorkerGlobalScope interface: operation setInterval(TimerHandler, long, any)
-PASS Unscopable handled correctly for setInterval(TimerHandler, long, any) on WorkerGlobalScope
-PASS WorkerGlobalScope interface: operation clearInterval(long)
-PASS Unscopable handled correctly for clearInterval(long) on WorkerGlobalScope
-PASS WorkerGlobalScope interface: operation createImageBitmap(ImageBitmapSource, ImageBitmapOptions)
-PASS Unscopable handled correctly for createImageBitmap(ImageBitmapSource, ImageBitmapOptions) on WorkerGlobalScope
-PASS WorkerGlobalScope interface: operation createImageBitmap(ImageBitmapSource, long, long, long, long, ImageBitmapOptions)
-PASS Unscopable handled correctly for createImageBitmap(ImageBitmapSource, long, long, long, long, ImageBitmapOptions) on WorkerGlobalScope
-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
-FAIL DedicatedWorkerGlobalScope interface: attribute name assert_own_property: The global object must have a property "name" expected property "name" missing
-PASS Unscopable handled correctly for name property on DedicatedWorkerGlobalScope
-PASS DedicatedWorkerGlobalScope interface: operation postMessage(any, [object Object])
-PASS Unscopable handled correctly for postMessage(any, [object Object]) on DedicatedWorkerGlobalScope
-PASS DedicatedWorkerGlobalScope interface: operation close()
-PASS Unscopable handled correctly for close() on DedicatedWorkerGlobalScope
-PASS DedicatedWorkerGlobalScope interface: attribute onmessage
-PASS Unscopable handled correctly for onmessage property on DedicatedWorkerGlobalScope
-PASS DedicatedWorkerGlobalScope interface: attribute onmessageerror
-PASS Unscopable handled correctly for onmessageerror property on DedicatedWorkerGlobalScope
-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
-FAIL DedicatedWorkerGlobalScope interface: self must inherit property "name" with the proper type assert_own_property: expected property "name" missing
-PASS DedicatedWorkerGlobalScope interface: self must inherit property "postMessage(any, [object Object])" with the proper type
-PASS DedicatedWorkerGlobalScope interface: calling postMessage(any, [object Object]) 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 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
-FAIL WorkerGlobalScope interface: self must inherit property "onlanguagechange" with the proper type assert_inherits: property "onlanguagechange" not found in prototype chain
-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 "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, long, any)" with the proper type
-PASS WorkerGlobalScope interface: calling setTimeout(TimerHandler, long, any) on self with too few arguments must throw TypeError
-PASS WorkerGlobalScope interface: self must inherit property "clearTimeout(long)" with the proper type
-PASS WorkerGlobalScope interface: calling clearTimeout(long) on self with too few arguments must throw TypeError
-PASS WorkerGlobalScope interface: self must inherit property "setInterval(TimerHandler, long, any)" with the proper type
-PASS WorkerGlobalScope interface: calling setInterval(TimerHandler, long, any) on self with too few arguments must throw TypeError
-PASS WorkerGlobalScope interface: self must inherit property "clearInterval(long)" with the proper type
-PASS WorkerGlobalScope interface: calling clearInterval(long) on self with too few arguments must throw TypeError
-PASS WorkerGlobalScope interface: self must inherit property "createImageBitmap(ImageBitmapSource, ImageBitmapOptions)" with the proper type
-PASS WorkerGlobalScope interface: calling createImageBitmap(ImageBitmapSource, ImageBitmapOptions) on self with too few arguments must throw TypeError
-PASS WorkerGlobalScope interface: self must inherit property "createImageBitmap(ImageBitmapSource, long, long, long, long, ImageBitmapOptions)" with the proper type
-PASS WorkerGlobalScope interface: calling createImageBitmap(ImageBitmapSource, long, long, long, long, ImageBitmapOptions) on self with too few arguments must throw TypeError
-PASS EventTarget interface: self must inherit property "addEventListener(DOMString, EventListener, [object Object],[object Object])" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener, [object Object],[object Object]) on self with too few arguments must throw TypeError
-PASS EventTarget interface: self must inherit property "removeEventListener(DOMString, EventListener, [object Object],[object Object])" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener, [object Object],[object Object]) on self with too few arguments must throw TypeError
-PASS EventTarget interface: self must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on self with too few arguments must throw TypeError
-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 Unscopable handled correctly for appCodeName property on WorkerNavigator
-PASS WorkerNavigator interface: attribute appName
-PASS Unscopable handled correctly for appName property on WorkerNavigator
-PASS WorkerNavigator interface: attribute appVersion
-PASS Unscopable handled correctly for appVersion property on WorkerNavigator
-PASS WorkerNavigator interface: attribute platform
-PASS Unscopable handled correctly for platform property on WorkerNavigator
-PASS WorkerNavigator interface: attribute product
-PASS Unscopable handled correctly for product property on WorkerNavigator
-PASS WorkerNavigator interface: member productSub
-PASS WorkerNavigator interface: attribute userAgent
-PASS Unscopable handled correctly for userAgent property on WorkerNavigator
-PASS WorkerNavigator interface: member vendor
-PASS WorkerNavigator interface: member vendorSub
-FAIL WorkerNavigator interface: attribute language assert_true: The prototype object must have a property "language" expected true got false
-PASS Unscopable handled correctly for language property on WorkerNavigator
-FAIL WorkerNavigator interface: attribute languages assert_true: The prototype object must have a property "languages" expected true got false
-PASS Unscopable handled correctly for languages property on WorkerNavigator
-PASS WorkerNavigator interface: attribute onLine
-PASS Unscopable handled correctly for onLine property on WorkerNavigator
-PASS WorkerNavigator interface: attribute hardwareConcurrency
-PASS Unscopable handled correctly for hardwareConcurrency property on WorkerNavigator
-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"
-FAIL WorkerNavigator interface: self.navigator must inherit property "language" with the proper type assert_inherits: property "language" not found in prototype chain
-FAIL WorkerNavigator interface: self.navigator must inherit property "languages" with the proper type assert_inherits: property "languages" not found in prototype chain
-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 Unscopable handled correctly for href property on WorkerLocation
-PASS WorkerLocation interface: stringifier
-PASS WorkerLocation interface: attribute origin
-PASS Unscopable handled correctly for origin property on WorkerLocation
-PASS WorkerLocation interface: attribute protocol
-PASS Unscopable handled correctly for protocol property on WorkerLocation
-PASS WorkerLocation interface: attribute host
-PASS Unscopable handled correctly for host property on WorkerLocation
-PASS WorkerLocation interface: attribute hostname
-PASS Unscopable handled correctly for hostname property on WorkerLocation
-PASS WorkerLocation interface: attribute port
-PASS Unscopable handled correctly for port property on WorkerLocation
-PASS WorkerLocation interface: attribute pathname
-PASS Unscopable handled correctly for pathname property on WorkerLocation
-PASS WorkerLocation interface: attribute search
-PASS Unscopable handled correctly for search property on WorkerLocation
-PASS WorkerLocation interface: attribute hash
-PASS Unscopable handled correctly for hash property on WorkerLocation
-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
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/Source/bindings/core/v8/V8EmbedderGraphBuilder.cpp b/third_party/WebKit/Source/bindings/core/v8/V8EmbedderGraphBuilder.cpp
index 47405997..ecf0a5a 100644
--- a/third_party/WebKit/Source/bindings/core/v8/V8EmbedderGraphBuilder.cpp
+++ b/third_party/WebKit/Source/bindings/core/v8/V8EmbedderGraphBuilder.cpp
@@ -40,9 +40,10 @@
       isolate_, v8::Persistent<v8::Object>::Cast(*value));
   ScriptWrappable* traceable = ToScriptWrappable(v8_value);
   if (traceable) {
-    Graph::Node* wrapper = GraphNode(v8_value);
+    // Add v8_value => traceable edge.
     Graph::Node* graph_node =
-        GraphNode(traceable, traceable->NameInHeapSnapshot(), wrapper);
+        GraphNode(traceable, traceable->NameInHeapSnapshot());
+    graph_->AddEdge(GraphNode(v8_value), graph_node);
     // Visit traceable members. This will also add traceable => v8_value edge.
     ParentScope parent(this, graph_node);
     traceable->TraceWrappers(this);
@@ -64,8 +65,8 @@
   // Add an edge from the current parent to this object.
   // Also push the object to the worklist in order to process its members.
   const void* traceable = wrapper_descriptor.traceable;
-  Graph::Node* graph_node = GraphNode(
-      traceable, wrapper_descriptor.name_callback(traceable), nullptr);
+  Graph::Node* graph_node =
+      GraphNode(traceable, wrapper_descriptor.name_callback(traceable));
   graph_->AddEdge(current_parent_, graph_node);
   if (!visited_.Contains(traceable)) {
     visited_.insert(traceable);
@@ -89,15 +90,14 @@
 
 v8::EmbedderGraph::Node* V8EmbedderGraphBuilder::GraphNode(
     Traceable traceable,
-    const char* name,
-    v8::EmbedderGraph::Node* wrapper) const {
+    const char* name) const {
   auto iter = graph_node_.find(traceable);
   if (iter != graph_node_.end())
     return iter->value;
   // Ownership of the new node is transferred to the graph_.
   // graph_node_.at(tracable) is valid for all BuildEmbedderGraph execution.
-  auto node = graph_->AddNode(
-      std::unique_ptr<Graph::Node>(new EmbedderNode(name, wrapper)));
+  auto node =
+      graph_->AddNode(std::unique_ptr<Graph::Node>(new EmbedderNode(name)));
   graph_node_.insert(traceable, node);
   return node;
 }
diff --git a/third_party/WebKit/Source/bindings/core/v8/V8EmbedderGraphBuilder.h b/third_party/WebKit/Source/bindings/core/v8/V8EmbedderGraphBuilder.h
index 1d0b7e5..9ab8f89 100644
--- a/third_party/WebKit/Source/bindings/core/v8/V8EmbedderGraphBuilder.h
+++ b/third_party/WebKit/Source/bindings/core/v8/V8EmbedderGraphBuilder.h
@@ -36,22 +36,19 @@
  private:
   class EmbedderNode : public Graph::Node {
    public:
-    EmbedderNode(const char* name, Graph::Node* wrapper)
-        : name_(name), wrapper_(wrapper) {}
+    explicit EmbedderNode(const char* name) : name_(name) {}
 
     // Graph::Node overrides.
     const char* Name() override { return name_; }
     size_t SizeInBytes() override { return 0; }
-    Graph::Node* WrapperNode() override { return wrapper_; }
 
    private:
     const char* name_;
-    Graph::Node* wrapper_;
   };
 
   class EmbedderRootNode : public EmbedderNode {
    public:
-    explicit EmbedderRootNode(const char* name) : EmbedderNode(name, nullptr) {}
+    explicit EmbedderRootNode(const char* name) : EmbedderNode(name) {}
     // Graph::Node override.
     bool IsRootNode() { return true; }
   };
@@ -80,9 +77,7 @@
   WorklistItem ToWorklistItem(Graph::Node*, const WrapperDescriptor&) const;
 
   Graph::Node* GraphNode(const v8::Local<v8::Value>&) const;
-  Graph::Node* GraphNode(Traceable,
-                         const char* name,
-                         Graph::Node* wrapper) const;
+  Graph::Node* GraphNode(Traceable, const char* name) const;
 
   void VisitPendingActivities();
   void VisitTransitiveClosure();
diff --git a/third_party/WebKit/Source/bindings/modules/v8/custom/V8CustomSQLStatementErrorCallback.cpp b/third_party/WebKit/Source/bindings/modules/v8/custom/V8CustomSQLStatementErrorCallback.cpp
index 850bdbbb..c43a936 100644
--- a/third_party/WebKit/Source/bindings/modules/v8/custom/V8CustomSQLStatementErrorCallback.cpp
+++ b/third_party/WebKit/Source/bindings/modules/v8/custom/V8CustomSQLStatementErrorCallback.cpp
@@ -39,8 +39,10 @@
 
 namespace blink {
 
-bool V8SQLStatementErrorCallback::handleEvent(SQLTransaction* transaction,
-                                              SQLError* error) {
+bool V8SQLStatementErrorCallback::handleEvent(
+    ScriptWrappable* callback_this_value,
+    SQLTransaction* transaction,
+    SQLError* error) {
   if (!IsCallbackFunctionRunnable(CallbackRelevantScriptState())) {
     return true;
   }
diff --git a/third_party/WebKit/Source/bindings/scripts/v8_callback_function.py b/third_party/WebKit/Source/bindings/scripts/v8_callback_function.py
index 5a35da0..03433c0 100644
--- a/third_party/WebKit/Source/bindings/scripts/v8_callback_function.py
+++ b/third_party/WebKit/Source/bindings/scripts/v8_callback_function.py
@@ -89,9 +89,7 @@
             'v8_name': 'v8_%s' % argument.name,
         }
 
-    argument_declarations = [
-        'ScriptWrappable* callback_this_value',
-    ]
+    argument_declarations = ['ScriptWrappable* callback_this_value']
     argument_declarations.extend(
         '%s %s' % (argument.idl_type.callback_cpp_type, argument.name)
         for argument in arguments)
diff --git a/third_party/WebKit/Source/bindings/scripts/v8_callback_interface.py b/third_party/WebKit/Source/bindings/scripts/v8_callback_interface.py
index c6ec4ed..df3c730 100644
--- a/third_party/WebKit/Source/bindings/scripts/v8_callback_interface.py
+++ b/third_party/WebKit/Source/bindings/scripts/v8_callback_interface.py
@@ -166,13 +166,14 @@
 def arguments_context(arguments, call_with_this_handle):
     def argument_context(argument):
         return {
-            'handle': '%sHandle' % argument.name,
             'cpp_value_to_v8_value': argument.idl_type.cpp_value_to_v8_value(
                 argument.name, isolate='GetIsolate()',
                 creation_context='argument_creation_context'),
+            'handle': '%sHandle' % argument.name,
+            'name': argument.name,
         }
 
-    argument_declarations = ['ScriptValue thisValue'] if call_with_this_handle else []
+    argument_declarations = ['ScriptWrappable* callback_this_value']
     argument_declarations.extend(
         '%s %s' % (argument.idl_type.callback_cpp_type, argument.name)
         for argument in arguments)
diff --git a/third_party/WebKit/Source/bindings/templates/callback_interface.cpp.tmpl b/third_party/WebKit/Source/bindings/templates/callback_interface.cpp.tmpl
index 9b34872..e591da0 100644
--- a/third_party/WebKit/Source/bindings/templates/callback_interface.cpp.tmpl
+++ b/third_party/WebKit/Source/bindings/templates/callback_interface.cpp.tmpl
@@ -21,11 +21,6 @@
   // This function implements "call a user object's operation".
   // https://heycam.github.io/webidl/#call-a-user-objects-operation
 
-  {# TODO(yukishiino): Add |ScriptWrappable* callback_this_value| as the first
-     argument of the IDL operations. The callsites must pass callback_this_value
-     explicitly. #}
-  ScriptWrappable* callback_this_value = nullptr;
-
   if (!IsCallbackFunctionRunnable(CallbackRelevantScriptState())) {
     {{return_success}};
   }
@@ -160,6 +155,20 @@
 
 {% endfor %}
 
+{% if methods|length == 1 and methods[0].idl_type == 'void' %}
+void {{v8_class}}::InvokeAndReportException({{methods[0].argument_declarations | join(', ')}}) {
+  v8::TryCatch try_catch(GetIsolate());
+  try_catch.SetVerbose(true);
+
+  {{methods[0].name}}(
+    {{
+       (['callback_this_value'] +
+        (methods[0].arguments|map(attribute='name')|list)
+       )|join(', ')
+    }});
+}
+{% endif %}
+
 }  // namespace blink
 
 {% endfilter %}{# format_blink_cpp_source_code #}
diff --git a/third_party/WebKit/Source/bindings/templates/callback_interface.h.tmpl b/third_party/WebKit/Source/bindings/templates/callback_interface.h.tmpl
index 0d53932..fcd69c1 100644
--- a/third_party/WebKit/Source/bindings/templates/callback_interface.h.tmpl
+++ b/third_party/WebKit/Source/bindings/templates/callback_interface.h.tmpl
@@ -24,9 +24,6 @@
   ~{{v8_class}}() override = default;
 
 {% for method in methods %}
-  {# TODO(yukishiino): Add |ScriptWrappable* callback_this_value| as the first
-     argument of the IDL operations. The callsites must pass callback_this_value
-     explicitly. #}
   {# TODO(yukishiino): Change the return type to v8::Maybe<T> so that the
      function returns a return value or throws an exception. #}
   // Performs "call a user object's operation".
@@ -35,6 +32,12 @@
 
 {% endfor %}
 
+{% if methods|length == 1 and methods[0].idl_type == 'void' %}
+  // Performs "call a user object's operation", and then reports an exception,
+  // if any, to the global error handler such as DevTools' console.
+  void InvokeAndReportException({{methods[0].argument_declarations | join(', ')}});
+{% endif %}
+
  private:
 {% set single_operation_enum_value =
       'kSingleOperation' if is_single_operation_callback_interface else
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestCallbackInterface.cpp b/third_party/WebKit/Source/bindings/tests/results/core/V8TestCallbackInterface.cpp
index bb11296e..d165afd 100644
--- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestCallbackInterface.cpp
+++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestCallbackInterface.cpp
@@ -20,12 +20,10 @@
 
 namespace blink {
 
-void V8TestCallbackInterface::voidMethod() {
+void V8TestCallbackInterface::voidMethod(ScriptWrappable* callback_this_value) {
   // This function implements "call a user object's operation".
   // https://heycam.github.io/webidl/#call-a-user-objects-operation
 
-  ScriptWrappable* callback_this_value = nullptr;
-
   if (!IsCallbackFunctionRunnable(CallbackRelevantScriptState())) {
     return;
   }
@@ -114,12 +112,10 @@
   return;
 }
 
-bool V8TestCallbackInterface::booleanMethod() {
+bool V8TestCallbackInterface::booleanMethod(ScriptWrappable* callback_this_value) {
   // This function implements "call a user object's operation".
   // https://heycam.github.io/webidl/#call-a-user-objects-operation
 
-  ScriptWrappable* callback_this_value = nullptr;
-
   if (!IsCallbackFunctionRunnable(CallbackRelevantScriptState())) {
     return true;
   }
@@ -217,12 +213,10 @@
   }
 }
 
-void V8TestCallbackInterface::voidMethodBooleanArg(bool boolArg) {
+void V8TestCallbackInterface::voidMethodBooleanArg(ScriptWrappable* callback_this_value, bool boolArg) {
   // This function implements "call a user object's operation".
   // https://heycam.github.io/webidl/#call-a-user-objects-operation
 
-  ScriptWrappable* callback_this_value = nullptr;
-
   if (!IsCallbackFunctionRunnable(CallbackRelevantScriptState())) {
     return;
   }
@@ -312,12 +306,10 @@
   return;
 }
 
-void V8TestCallbackInterface::voidMethodSequenceArg(const HeapVector<Member<TestInterfaceEmpty>>& sequenceArg) {
+void V8TestCallbackInterface::voidMethodSequenceArg(ScriptWrappable* callback_this_value, const HeapVector<Member<TestInterfaceEmpty>>& sequenceArg) {
   // This function implements "call a user object's operation".
   // https://heycam.github.io/webidl/#call-a-user-objects-operation
 
-  ScriptWrappable* callback_this_value = nullptr;
-
   if (!IsCallbackFunctionRunnable(CallbackRelevantScriptState())) {
     return;
   }
@@ -407,12 +399,10 @@
   return;
 }
 
-void V8TestCallbackInterface::voidMethodFloatArg(float floatArg) {
+void V8TestCallbackInterface::voidMethodFloatArg(ScriptWrappable* callback_this_value, float floatArg) {
   // This function implements "call a user object's operation".
   // https://heycam.github.io/webidl/#call-a-user-objects-operation
 
-  ScriptWrappable* callback_this_value = nullptr;
-
   if (!IsCallbackFunctionRunnable(CallbackRelevantScriptState())) {
     return;
   }
@@ -502,12 +492,10 @@
   return;
 }
 
-void V8TestCallbackInterface::voidMethodTestInterfaceEmptyArg(TestInterfaceEmpty* testInterfaceEmptyArg) {
+void V8TestCallbackInterface::voidMethodTestInterfaceEmptyArg(ScriptWrappable* callback_this_value, TestInterfaceEmpty* testInterfaceEmptyArg) {
   // This function implements "call a user object's operation".
   // https://heycam.github.io/webidl/#call-a-user-objects-operation
 
-  ScriptWrappable* callback_this_value = nullptr;
-
   if (!IsCallbackFunctionRunnable(CallbackRelevantScriptState())) {
     return;
   }
@@ -597,12 +585,10 @@
   return;
 }
 
-void V8TestCallbackInterface::voidMethodTestInterfaceEmptyStringArg(TestInterfaceEmpty* testInterfaceEmptyArg, const String& stringArg) {
+void V8TestCallbackInterface::voidMethodTestInterfaceEmptyStringArg(ScriptWrappable* callback_this_value, TestInterfaceEmpty* testInterfaceEmptyArg, const String& stringArg) {
   // This function implements "call a user object's operation".
   // https://heycam.github.io/webidl/#call-a-user-objects-operation
 
-  ScriptWrappable* callback_this_value = nullptr;
-
   if (!IsCallbackFunctionRunnable(CallbackRelevantScriptState())) {
     return;
   }
@@ -693,12 +679,10 @@
   return;
 }
 
-void V8TestCallbackInterface::callbackWithThisValueVoidMethodStringArg(ScriptValue thisValue, const String& stringArg) {
+void V8TestCallbackInterface::callbackWithThisValueVoidMethodStringArg(ScriptWrappable* callback_this_value, const String& stringArg) {
   // This function implements "call a user object's operation".
   // https://heycam.github.io/webidl/#call-a-user-objects-operation
 
-  ScriptWrappable* callback_this_value = nullptr;
-
   if (!IsCallbackFunctionRunnable(CallbackRelevantScriptState())) {
     return;
   }
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestCallbackInterface.h b/third_party/WebKit/Source/bindings/tests/results/core/V8TestCallbackInterface.h
index 416a6b8..d8914f8 100644
--- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestCallbackInterface.h
+++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestCallbackInterface.h
@@ -29,39 +29,39 @@
 
   // Performs "call a user object's operation".
   // https://heycam.github.io/webidl/#call-a-user-objects-operation
-  void voidMethod();
+  void voidMethod(ScriptWrappable* callback_this_value);
 
   // Performs "call a user object's operation".
   // https://heycam.github.io/webidl/#call-a-user-objects-operation
-  bool booleanMethod();
+  bool booleanMethod(ScriptWrappable* callback_this_value);
 
   // Performs "call a user object's operation".
   // https://heycam.github.io/webidl/#call-a-user-objects-operation
-  void voidMethodBooleanArg(bool boolArg);
+  void voidMethodBooleanArg(ScriptWrappable* callback_this_value, bool boolArg);
 
   // Performs "call a user object's operation".
   // https://heycam.github.io/webidl/#call-a-user-objects-operation
-  void voidMethodSequenceArg(const HeapVector<Member<TestInterfaceEmpty>>& sequenceArg);
+  void voidMethodSequenceArg(ScriptWrappable* callback_this_value, const HeapVector<Member<TestInterfaceEmpty>>& sequenceArg);
 
   // Performs "call a user object's operation".
   // https://heycam.github.io/webidl/#call-a-user-objects-operation
-  void voidMethodFloatArg(float floatArg);
+  void voidMethodFloatArg(ScriptWrappable* callback_this_value, float floatArg);
 
   // Performs "call a user object's operation".
   // https://heycam.github.io/webidl/#call-a-user-objects-operation
-  void voidMethodTestInterfaceEmptyArg(TestInterfaceEmpty* testInterfaceEmptyArg);
+  void voidMethodTestInterfaceEmptyArg(ScriptWrappable* callback_this_value, TestInterfaceEmpty* testInterfaceEmptyArg);
 
   // Performs "call a user object's operation".
   // https://heycam.github.io/webidl/#call-a-user-objects-operation
-  void voidMethodTestInterfaceEmptyStringArg(TestInterfaceEmpty* testInterfaceEmptyArg, const String& stringArg);
+  void voidMethodTestInterfaceEmptyStringArg(ScriptWrappable* callback_this_value, TestInterfaceEmpty* testInterfaceEmptyArg, const String& stringArg);
 
   // Performs "call a user object's operation".
   // https://heycam.github.io/webidl/#call-a-user-objects-operation
-  void callbackWithThisValueVoidMethodStringArg(ScriptValue thisValue, const String& stringArg);
+  void callbackWithThisValueVoidMethodStringArg(ScriptWrappable* callback_this_value, const String& stringArg);
 
   // Performs "call a user object's operation".
   // https://heycam.github.io/webidl/#call-a-user-objects-operation
-  void customVoidMethodTestInterfaceEmptyArg(TestInterfaceEmpty* testInterfaceEmptyArg);
+  void customVoidMethodTestInterfaceEmptyArg(ScriptWrappable* callback_this_value, TestInterfaceEmpty* testInterfaceEmptyArg);
 
  private:
   explicit V8TestCallbackInterface(v8::Local<v8::Object> callback_object)
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterface.cpp b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterface.cpp
index dbc1a979..94784a1 100644
--- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterface.cpp
+++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterface.cpp
@@ -688,7 +688,7 @@
 
   TestInterfaceImplementation* impl = V8TestInterface::ToImpl(holder);
 
-  V8SetReturnValueFast(info, WTF::GetPtr(impl->secureContextAttribute()), impl);
+  V8SetReturnValueBool(info, impl->secureContextAttribute());
 }
 
 static void secureContextAttributeAttributeSetter(v8::Local<v8::Value> v8Value, const v8::FunctionCallbackInfo<v8::Value>& info) {
@@ -703,13 +703,9 @@
   ExceptionState exceptionState(isolate, ExceptionState::kSetterContext, "TestInterface", "secureContextAttribute");
 
   // Prepare the value to be set.
-  bool* cppValue = V8bool::ToImplWithTypeCheck(info.GetIsolate(), v8Value);
-
-  // Type check per: http://heycam.github.io/webidl/#es-interface
-  if (!cppValue) {
-    exceptionState.ThrowTypeError("The provided value is not of type 'bool'.");
+  bool cppValue = NativeValueTraits<IDLBoolean>::NativeValue(info.GetIsolate(), v8Value, exceptionState);
+  if (exceptionState.HadException())
     return;
-  }
 
   impl->setSecureContextAttribute(cppValue);
 }
@@ -719,7 +715,7 @@
 
   TestInterfaceImplementation* impl = V8TestInterface::ToImpl(holder);
 
-  V8SetReturnValueFast(info, WTF::GetPtr(impl->secureContextRuntimeEnabledAttribute()), impl);
+  V8SetReturnValueBool(info, impl->secureContextRuntimeEnabledAttribute());
 }
 
 static void secureContextRuntimeEnabledAttributeAttributeSetter(v8::Local<v8::Value> v8Value, const v8::FunctionCallbackInfo<v8::Value>& info) {
@@ -734,13 +730,9 @@
   ExceptionState exceptionState(isolate, ExceptionState::kSetterContext, "TestInterface", "secureContextRuntimeEnabledAttribute");
 
   // Prepare the value to be set.
-  bool* cppValue = V8bool::ToImplWithTypeCheck(info.GetIsolate(), v8Value);
-
-  // Type check per: http://heycam.github.io/webidl/#es-interface
-  if (!cppValue) {
-    exceptionState.ThrowTypeError("The provided value is not of type 'bool'.");
+  bool cppValue = NativeValueTraits<IDLBoolean>::NativeValue(info.GetIsolate(), v8Value, exceptionState);
+  if (exceptionState.HadException())
     return;
-  }
 
   impl->setSecureContextRuntimeEnabledAttribute(cppValue);
 }
@@ -750,7 +742,7 @@
 
   TestInterfaceImplementation* impl = V8TestInterface::ToImpl(holder);
 
-  V8SetReturnValueFast(info, WTF::GetPtr(impl->secureContextWindowExposedAttribute()), impl);
+  V8SetReturnValueBool(info, impl->secureContextWindowExposedAttribute());
 }
 
 static void secureContextWindowExposedAttributeAttributeSetter(v8::Local<v8::Value> v8Value, const v8::FunctionCallbackInfo<v8::Value>& info) {
@@ -765,13 +757,9 @@
   ExceptionState exceptionState(isolate, ExceptionState::kSetterContext, "TestInterface", "secureContextWindowExposedAttribute");
 
   // Prepare the value to be set.
-  bool* cppValue = V8bool::ToImplWithTypeCheck(info.GetIsolate(), v8Value);
-
-  // Type check per: http://heycam.github.io/webidl/#es-interface
-  if (!cppValue) {
-    exceptionState.ThrowTypeError("The provided value is not of type 'bool'.");
+  bool cppValue = NativeValueTraits<IDLBoolean>::NativeValue(info.GetIsolate(), v8Value, exceptionState);
+  if (exceptionState.HadException())
     return;
-  }
 
   impl->setSecureContextWindowExposedAttribute(cppValue);
 }
@@ -781,7 +769,7 @@
 
   TestInterfaceImplementation* impl = V8TestInterface::ToImpl(holder);
 
-  V8SetReturnValueFast(info, WTF::GetPtr(impl->secureContextWorkerExposedAttribute()), impl);
+  V8SetReturnValueBool(info, impl->secureContextWorkerExposedAttribute());
 }
 
 static void secureContextWorkerExposedAttributeAttributeSetter(v8::Local<v8::Value> v8Value, const v8::FunctionCallbackInfo<v8::Value>& info) {
@@ -796,13 +784,9 @@
   ExceptionState exceptionState(isolate, ExceptionState::kSetterContext, "TestInterface", "secureContextWorkerExposedAttribute");
 
   // Prepare the value to be set.
-  bool* cppValue = V8bool::ToImplWithTypeCheck(info.GetIsolate(), v8Value);
-
-  // Type check per: http://heycam.github.io/webidl/#es-interface
-  if (!cppValue) {
-    exceptionState.ThrowTypeError("The provided value is not of type 'bool'.");
+  bool cppValue = NativeValueTraits<IDLBoolean>::NativeValue(info.GetIsolate(), v8Value, exceptionState);
+  if (exceptionState.HadException())
     return;
-  }
 
   impl->setSecureContextWorkerExposedAttribute(cppValue);
 }
@@ -812,7 +796,7 @@
 
   TestInterfaceImplementation* impl = V8TestInterface::ToImpl(holder);
 
-  V8SetReturnValueFast(info, WTF::GetPtr(impl->secureContextWindowExposedRuntimeEnabledAttribute()), impl);
+  V8SetReturnValueBool(info, impl->secureContextWindowExposedRuntimeEnabledAttribute());
 }
 
 static void secureContextWindowExposedRuntimeEnabledAttributeAttributeSetter(v8::Local<v8::Value> v8Value, const v8::FunctionCallbackInfo<v8::Value>& info) {
@@ -827,13 +811,9 @@
   ExceptionState exceptionState(isolate, ExceptionState::kSetterContext, "TestInterface", "secureContextWindowExposedRuntimeEnabledAttribute");
 
   // Prepare the value to be set.
-  bool* cppValue = V8bool::ToImplWithTypeCheck(info.GetIsolate(), v8Value);
-
-  // Type check per: http://heycam.github.io/webidl/#es-interface
-  if (!cppValue) {
-    exceptionState.ThrowTypeError("The provided value is not of type 'bool'.");
+  bool cppValue = NativeValueTraits<IDLBoolean>::NativeValue(info.GetIsolate(), v8Value, exceptionState);
+  if (exceptionState.HadException())
     return;
-  }
 
   impl->setSecureContextWindowExposedRuntimeEnabledAttribute(cppValue);
 }
@@ -843,7 +823,7 @@
 
   TestInterfaceImplementation* impl = V8TestInterface::ToImpl(holder);
 
-  V8SetReturnValueFast(info, WTF::GetPtr(impl->secureContextWorkerExposedRuntimeEnabledAttribute()), impl);
+  V8SetReturnValueBool(info, impl->secureContextWorkerExposedRuntimeEnabledAttribute());
 }
 
 static void secureContextWorkerExposedRuntimeEnabledAttributeAttributeSetter(v8::Local<v8::Value> v8Value, const v8::FunctionCallbackInfo<v8::Value>& info) {
@@ -858,13 +838,9 @@
   ExceptionState exceptionState(isolate, ExceptionState::kSetterContext, "TestInterface", "secureContextWorkerExposedRuntimeEnabledAttribute");
 
   // Prepare the value to be set.
-  bool* cppValue = V8bool::ToImplWithTypeCheck(info.GetIsolate(), v8Value);
-
-  // Type check per: http://heycam.github.io/webidl/#es-interface
-  if (!cppValue) {
-    exceptionState.ThrowTypeError("The provided value is not of type 'bool'.");
+  bool cppValue = NativeValueTraits<IDLBoolean>::NativeValue(info.GetIsolate(), v8Value, exceptionState);
+  if (exceptionState.HadException())
     return;
-  }
 
   impl->setSecureContextWorkerExposedRuntimeEnabledAttribute(cppValue);
 }
@@ -1299,7 +1275,7 @@
 
   TestInterfaceImplementation* impl = V8TestInterface::ToImpl(holder);
 
-  V8SetReturnValueFast(info, TestInterfacePartial2Implementation::partial2SecureContextAttribute(*impl), impl);
+  V8SetReturnValueBool(info, TestInterfacePartial2Implementation::partial2SecureContextAttribute(*impl));
 }
 
 static void partial2SecureContextAttributeAttributeSetter(v8::Local<v8::Value> v8Value, const v8::FunctionCallbackInfo<v8::Value>& info) {
@@ -1314,13 +1290,9 @@
   ExceptionState exceptionState(isolate, ExceptionState::kSetterContext, "TestInterface", "partial2SecureContextAttribute");
 
   // Prepare the value to be set.
-  bool* cppValue = V8bool::ToImplWithTypeCheck(info.GetIsolate(), v8Value);
-
-  // Type check per: http://heycam.github.io/webidl/#es-interface
-  if (!cppValue) {
-    exceptionState.ThrowTypeError("The provided value is not of type 'bool'.");
+  bool cppValue = NativeValueTraits<IDLBoolean>::NativeValue(info.GetIsolate(), v8Value, exceptionState);
+  if (exceptionState.HadException())
     return;
-  }
 
   TestInterfacePartial2Implementation::setPartial2SecureContextAttribute(*impl, cppValue);
 }
@@ -1330,7 +1302,7 @@
 
   TestInterfaceImplementation* impl = V8TestInterface::ToImpl(holder);
 
-  V8SetReturnValueFast(info, TestInterfacePartialSecureContext::partialSecureContextAttribute(*impl), impl);
+  V8SetReturnValueBool(info, TestInterfacePartialSecureContext::partialSecureContextAttribute(*impl));
 }
 
 static void partialSecureContextAttributeAttributeSetter(v8::Local<v8::Value> v8Value, const v8::FunctionCallbackInfo<v8::Value>& info) {
@@ -1345,13 +1317,9 @@
   ExceptionState exceptionState(isolate, ExceptionState::kSetterContext, "TestInterface", "partialSecureContextAttribute");
 
   // Prepare the value to be set.
-  bool* cppValue = V8bool::ToImplWithTypeCheck(info.GetIsolate(), v8Value);
-
-  // Type check per: http://heycam.github.io/webidl/#es-interface
-  if (!cppValue) {
-    exceptionState.ThrowTypeError("The provided value is not of type 'bool'.");
+  bool cppValue = NativeValueTraits<IDLBoolean>::NativeValue(info.GetIsolate(), v8Value, exceptionState);
+  if (exceptionState.HadException())
     return;
-  }
 
   TestInterfacePartialSecureContext::setPartialSecureContextAttribute(*impl, cppValue);
 }
@@ -1361,7 +1329,7 @@
 
   TestInterfaceImplementation* impl = V8TestInterface::ToImpl(holder);
 
-  V8SetReturnValueFast(info, TestInterfacePartialSecureContext::partialSecureContextRuntimeEnabledAttribute(*impl), impl);
+  V8SetReturnValueBool(info, TestInterfacePartialSecureContext::partialSecureContextRuntimeEnabledAttribute(*impl));
 }
 
 static void partialSecureContextRuntimeEnabledAttributeAttributeSetter(v8::Local<v8::Value> v8Value, const v8::FunctionCallbackInfo<v8::Value>& info) {
@@ -1376,13 +1344,9 @@
   ExceptionState exceptionState(isolate, ExceptionState::kSetterContext, "TestInterface", "partialSecureContextRuntimeEnabledAttribute");
 
   // Prepare the value to be set.
-  bool* cppValue = V8bool::ToImplWithTypeCheck(info.GetIsolate(), v8Value);
-
-  // Type check per: http://heycam.github.io/webidl/#es-interface
-  if (!cppValue) {
-    exceptionState.ThrowTypeError("The provided value is not of type 'bool'.");
+  bool cppValue = NativeValueTraits<IDLBoolean>::NativeValue(info.GetIsolate(), v8Value, exceptionState);
+  if (exceptionState.HadException())
     return;
-  }
 
   TestInterfacePartialSecureContext::setPartialSecureContextRuntimeEnabledAttribute(*impl, cppValue);
 }
@@ -1392,7 +1356,7 @@
 
   TestInterfaceImplementation* impl = V8TestInterface::ToImpl(holder);
 
-  V8SetReturnValueFast(info, TestInterfacePartialSecureContext::partialSecureContextWindowExposedAttribute(*impl), impl);
+  V8SetReturnValueBool(info, TestInterfacePartialSecureContext::partialSecureContextWindowExposedAttribute(*impl));
 }
 
 static void partialSecureContextWindowExposedAttributeAttributeSetter(v8::Local<v8::Value> v8Value, const v8::FunctionCallbackInfo<v8::Value>& info) {
@@ -1407,13 +1371,9 @@
   ExceptionState exceptionState(isolate, ExceptionState::kSetterContext, "TestInterface", "partialSecureContextWindowExposedAttribute");
 
   // Prepare the value to be set.
-  bool* cppValue = V8bool::ToImplWithTypeCheck(info.GetIsolate(), v8Value);
-
-  // Type check per: http://heycam.github.io/webidl/#es-interface
-  if (!cppValue) {
-    exceptionState.ThrowTypeError("The provided value is not of type 'bool'.");
+  bool cppValue = NativeValueTraits<IDLBoolean>::NativeValue(info.GetIsolate(), v8Value, exceptionState);
+  if (exceptionState.HadException())
     return;
-  }
 
   TestInterfacePartialSecureContext::setPartialSecureContextWindowExposedAttribute(*impl, cppValue);
 }
@@ -1423,7 +1383,7 @@
 
   TestInterfaceImplementation* impl = V8TestInterface::ToImpl(holder);
 
-  V8SetReturnValueFast(info, TestInterfacePartialSecureContext::partialSecureContextWorkerExposedAttribute(*impl), impl);
+  V8SetReturnValueBool(info, TestInterfacePartialSecureContext::partialSecureContextWorkerExposedAttribute(*impl));
 }
 
 static void partialSecureContextWorkerExposedAttributeAttributeSetter(v8::Local<v8::Value> v8Value, const v8::FunctionCallbackInfo<v8::Value>& info) {
@@ -1438,13 +1398,9 @@
   ExceptionState exceptionState(isolate, ExceptionState::kSetterContext, "TestInterface", "partialSecureContextWorkerExposedAttribute");
 
   // Prepare the value to be set.
-  bool* cppValue = V8bool::ToImplWithTypeCheck(info.GetIsolate(), v8Value);
-
-  // Type check per: http://heycam.github.io/webidl/#es-interface
-  if (!cppValue) {
-    exceptionState.ThrowTypeError("The provided value is not of type 'bool'.");
+  bool cppValue = NativeValueTraits<IDLBoolean>::NativeValue(info.GetIsolate(), v8Value, exceptionState);
+  if (exceptionState.HadException())
     return;
-  }
 
   TestInterfacePartialSecureContext::setPartialSecureContextWorkerExposedAttribute(*impl, cppValue);
 }
@@ -1454,7 +1410,7 @@
 
   TestInterfaceImplementation* impl = V8TestInterface::ToImpl(holder);
 
-  V8SetReturnValueFast(info, TestInterfacePartialSecureContext::partialSecureContextWindowExposedRuntimeEnabledAttribute(*impl), impl);
+  V8SetReturnValueBool(info, TestInterfacePartialSecureContext::partialSecureContextWindowExposedRuntimeEnabledAttribute(*impl));
 }
 
 static void partialSecureContextWindowExposedRuntimeEnabledAttributeAttributeSetter(v8::Local<v8::Value> v8Value, const v8::FunctionCallbackInfo<v8::Value>& info) {
@@ -1469,13 +1425,9 @@
   ExceptionState exceptionState(isolate, ExceptionState::kSetterContext, "TestInterface", "partialSecureContextWindowExposedRuntimeEnabledAttribute");
 
   // Prepare the value to be set.
-  bool* cppValue = V8bool::ToImplWithTypeCheck(info.GetIsolate(), v8Value);
-
-  // Type check per: http://heycam.github.io/webidl/#es-interface
-  if (!cppValue) {
-    exceptionState.ThrowTypeError("The provided value is not of type 'bool'.");
+  bool cppValue = NativeValueTraits<IDLBoolean>::NativeValue(info.GetIsolate(), v8Value, exceptionState);
+  if (exceptionState.HadException())
     return;
-  }
 
   TestInterfacePartialSecureContext::setPartialSecureContextWindowExposedRuntimeEnabledAttribute(*impl, cppValue);
 }
@@ -1485,7 +1437,7 @@
 
   TestInterfaceImplementation* impl = V8TestInterface::ToImpl(holder);
 
-  V8SetReturnValueFast(info, TestInterfacePartialSecureContext::partialSecureContextWorkerExposedRuntimeEnabledAttribute(*impl), impl);
+  V8SetReturnValueBool(info, TestInterfacePartialSecureContext::partialSecureContextWorkerExposedRuntimeEnabledAttribute(*impl));
 }
 
 static void partialSecureContextWorkerExposedRuntimeEnabledAttributeAttributeSetter(v8::Local<v8::Value> v8Value, const v8::FunctionCallbackInfo<v8::Value>& info) {
@@ -1500,13 +1452,9 @@
   ExceptionState exceptionState(isolate, ExceptionState::kSetterContext, "TestInterface", "partialSecureContextWorkerExposedRuntimeEnabledAttribute");
 
   // Prepare the value to be set.
-  bool* cppValue = V8bool::ToImplWithTypeCheck(info.GetIsolate(), v8Value);
-
-  // Type check per: http://heycam.github.io/webidl/#es-interface
-  if (!cppValue) {
-    exceptionState.ThrowTypeError("The provided value is not of type 'bool'.");
+  bool cppValue = NativeValueTraits<IDLBoolean>::NativeValue(info.GetIsolate(), v8Value, exceptionState);
+  if (exceptionState.HadException())
     return;
-  }
 
   TestInterfacePartialSecureContext::setPartialSecureContextWorkerExposedRuntimeEnabledAttribute(*impl, cppValue);
 }
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceSecureContext.cpp b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceSecureContext.cpp
index 813a779..783b0b4 100644
--- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceSecureContext.cpp
+++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceSecureContext.cpp
@@ -68,7 +68,7 @@
 
   TestInterfaceSecureContext* impl = V8TestInterfaceSecureContext::ToImpl(holder);
 
-  V8SetReturnValueFast(info, WTF::GetPtr(impl->secureContextAttribute()), impl);
+  V8SetReturnValueBool(info, impl->secureContextAttribute());
 }
 
 static void secureContextAttributeAttributeSetter(v8::Local<v8::Value> v8Value, const v8::FunctionCallbackInfo<v8::Value>& info) {
@@ -83,13 +83,9 @@
   ExceptionState exceptionState(isolate, ExceptionState::kSetterContext, "TestInterfaceSecureContext", "secureContextAttribute");
 
   // Prepare the value to be set.
-  bool* cppValue = V8bool::ToImplWithTypeCheck(info.GetIsolate(), v8Value);
-
-  // Type check per: http://heycam.github.io/webidl/#es-interface
-  if (!cppValue) {
-    exceptionState.ThrowTypeError("The provided value is not of type 'bool'.");
+  bool cppValue = NativeValueTraits<IDLBoolean>::NativeValue(info.GetIsolate(), v8Value, exceptionState);
+  if (exceptionState.HadException())
     return;
-  }
 
   impl->setSecureContextAttribute(cppValue);
 }
@@ -99,7 +95,7 @@
 
   TestInterfaceSecureContext* impl = V8TestInterfaceSecureContext::ToImpl(holder);
 
-  V8SetReturnValueFast(info, WTF::GetPtr(impl->secureContextRuntimeEnabledAttribute()), impl);
+  V8SetReturnValueBool(info, impl->secureContextRuntimeEnabledAttribute());
 }
 
 static void secureContextRuntimeEnabledAttributeAttributeSetter(v8::Local<v8::Value> v8Value, const v8::FunctionCallbackInfo<v8::Value>& info) {
@@ -114,13 +110,9 @@
   ExceptionState exceptionState(isolate, ExceptionState::kSetterContext, "TestInterfaceSecureContext", "secureContextRuntimeEnabledAttribute");
 
   // Prepare the value to be set.
-  bool* cppValue = V8bool::ToImplWithTypeCheck(info.GetIsolate(), v8Value);
-
-  // Type check per: http://heycam.github.io/webidl/#es-interface
-  if (!cppValue) {
-    exceptionState.ThrowTypeError("The provided value is not of type 'bool'.");
+  bool cppValue = NativeValueTraits<IDLBoolean>::NativeValue(info.GetIsolate(), v8Value, exceptionState);
+  if (exceptionState.HadException())
     return;
-  }
 
   impl->setSecureContextRuntimeEnabledAttribute(cppValue);
 }
@@ -130,7 +122,7 @@
 
   TestInterfaceSecureContext* impl = V8TestInterfaceSecureContext::ToImpl(holder);
 
-  V8SetReturnValueFast(info, WTF::GetPtr(impl->secureContextWindowExposedAttribute()), impl);
+  V8SetReturnValueBool(info, impl->secureContextWindowExposedAttribute());
 }
 
 static void secureContextWindowExposedAttributeAttributeSetter(v8::Local<v8::Value> v8Value, const v8::FunctionCallbackInfo<v8::Value>& info) {
@@ -145,13 +137,9 @@
   ExceptionState exceptionState(isolate, ExceptionState::kSetterContext, "TestInterfaceSecureContext", "secureContextWindowExposedAttribute");
 
   // Prepare the value to be set.
-  bool* cppValue = V8bool::ToImplWithTypeCheck(info.GetIsolate(), v8Value);
-
-  // Type check per: http://heycam.github.io/webidl/#es-interface
-  if (!cppValue) {
-    exceptionState.ThrowTypeError("The provided value is not of type 'bool'.");
+  bool cppValue = NativeValueTraits<IDLBoolean>::NativeValue(info.GetIsolate(), v8Value, exceptionState);
+  if (exceptionState.HadException())
     return;
-  }
 
   impl->setSecureContextWindowExposedAttribute(cppValue);
 }
@@ -161,7 +149,7 @@
 
   TestInterfaceSecureContext* impl = V8TestInterfaceSecureContext::ToImpl(holder);
 
-  V8SetReturnValueFast(info, WTF::GetPtr(impl->secureContextWorkerExposedAttribute()), impl);
+  V8SetReturnValueBool(info, impl->secureContextWorkerExposedAttribute());
 }
 
 static void secureContextWorkerExposedAttributeAttributeSetter(v8::Local<v8::Value> v8Value, const v8::FunctionCallbackInfo<v8::Value>& info) {
@@ -176,13 +164,9 @@
   ExceptionState exceptionState(isolate, ExceptionState::kSetterContext, "TestInterfaceSecureContext", "secureContextWorkerExposedAttribute");
 
   // Prepare the value to be set.
-  bool* cppValue = V8bool::ToImplWithTypeCheck(info.GetIsolate(), v8Value);
-
-  // Type check per: http://heycam.github.io/webidl/#es-interface
-  if (!cppValue) {
-    exceptionState.ThrowTypeError("The provided value is not of type 'bool'.");
+  bool cppValue = NativeValueTraits<IDLBoolean>::NativeValue(info.GetIsolate(), v8Value, exceptionState);
+  if (exceptionState.HadException())
     return;
-  }
 
   impl->setSecureContextWorkerExposedAttribute(cppValue);
 }
@@ -192,7 +176,7 @@
 
   TestInterfaceSecureContext* impl = V8TestInterfaceSecureContext::ToImpl(holder);
 
-  V8SetReturnValueFast(info, WTF::GetPtr(impl->secureContextWindowExposedRuntimeEnabledAttribute()), impl);
+  V8SetReturnValueBool(info, impl->secureContextWindowExposedRuntimeEnabledAttribute());
 }
 
 static void secureContextWindowExposedRuntimeEnabledAttributeAttributeSetter(v8::Local<v8::Value> v8Value, const v8::FunctionCallbackInfo<v8::Value>& info) {
@@ -207,13 +191,9 @@
   ExceptionState exceptionState(isolate, ExceptionState::kSetterContext, "TestInterfaceSecureContext", "secureContextWindowExposedRuntimeEnabledAttribute");
 
   // Prepare the value to be set.
-  bool* cppValue = V8bool::ToImplWithTypeCheck(info.GetIsolate(), v8Value);
-
-  // Type check per: http://heycam.github.io/webidl/#es-interface
-  if (!cppValue) {
-    exceptionState.ThrowTypeError("The provided value is not of type 'bool'.");
+  bool cppValue = NativeValueTraits<IDLBoolean>::NativeValue(info.GetIsolate(), v8Value, exceptionState);
+  if (exceptionState.HadException())
     return;
-  }
 
   impl->setSecureContextWindowExposedRuntimeEnabledAttribute(cppValue);
 }
@@ -223,7 +203,7 @@
 
   TestInterfaceSecureContext* impl = V8TestInterfaceSecureContext::ToImpl(holder);
 
-  V8SetReturnValueFast(info, WTF::GetPtr(impl->secureContextWorkerExposedRuntimeEnabledAttribute()), impl);
+  V8SetReturnValueBool(info, impl->secureContextWorkerExposedRuntimeEnabledAttribute());
 }
 
 static void secureContextWorkerExposedRuntimeEnabledAttributeAttributeSetter(v8::Local<v8::Value> v8Value, const v8::FunctionCallbackInfo<v8::Value>& info) {
@@ -238,13 +218,9 @@
   ExceptionState exceptionState(isolate, ExceptionState::kSetterContext, "TestInterfaceSecureContext", "secureContextWorkerExposedRuntimeEnabledAttribute");
 
   // Prepare the value to be set.
-  bool* cppValue = V8bool::ToImplWithTypeCheck(info.GetIsolate(), v8Value);
-
-  // Type check per: http://heycam.github.io/webidl/#es-interface
-  if (!cppValue) {
-    exceptionState.ThrowTypeError("The provided value is not of type 'bool'.");
+  bool cppValue = NativeValueTraits<IDLBoolean>::NativeValue(info.GetIsolate(), v8Value, exceptionState);
+  if (exceptionState.HadException())
     return;
-  }
 
   impl->setSecureContextWorkerExposedRuntimeEnabledAttribute(cppValue);
 }
diff --git a/third_party/WebKit/Source/core/BUILD.gn b/third_party/WebKit/Source/core/BUILD.gn
index ac658a19..4a1e365 100644
--- a/third_party/WebKit/Source/core/BUILD.gn
+++ b/third_party/WebKit/Source/core/BUILD.gn
@@ -1924,6 +1924,7 @@
     "layout/LayoutTableTest.cpp",
     "layout/LayoutTestHelper.cpp",
     "layout/LayoutTestHelper.h",
+    "layout/LayoutTextControlTest.cpp",
     "layout/LayoutTextFragmentTest.cpp",
     "layout/LayoutTextTest.cpp",
     "layout/LayoutThemeTest.cpp",
diff --git a/third_party/WebKit/Source/core/DEPS b/third_party/WebKit/Source/core/DEPS
index 24427f12..44bc5784 100644
--- a/third_party/WebKit/Source/core/DEPS
+++ b/third_party/WebKit/Source/core/DEPS
@@ -5,7 +5,6 @@
     "+bindings/core",
     "+build/mac",
     "+build/win",
-    "+common",
     "+core",
     "-bindings/modules",
     "+gpu/config/gpu_feature_info.h",
@@ -16,6 +15,7 @@
     "+mojo/public/cpp/system",
     "+platform",
     "+public/common",
+    "+public/mojom",
     "+public/platform",
     "+public/web",
     "+services/metrics/public",
diff --git a/third_party/WebKit/Source/core/animation/AnimationInputHelpers.cpp b/third_party/WebKit/Source/core/animation/AnimationInputHelpers.cpp
index 7774e5c..b99cfed8 100644
--- a/third_party/WebKit/Source/core/animation/AnimationInputHelpers.cpp
+++ b/third_party/WebKit/Source/core/animation/AnimationInputHelpers.cpp
@@ -83,9 +83,9 @@
 
 CSSPropertyID AnimationInputHelpers::KeyframeAttributeToPresentationAttribute(
     const String& property,
-    const Element& element) {
-  if (!RuntimeEnabledFeatures::WebAnimationsSVGEnabled() ||
-      !element.IsSVGElement() || !IsSVGPrefixed(property))
+    const Element* element) {
+  if (!RuntimeEnabledFeatures::WebAnimationsSVGEnabled() || !element ||
+      !element->IsSVGElement() || !IsSVGPrefixed(property))
     return CSSPropertyInvalid;
 
   String unprefixed_property = RemoveSVGPrefix(property);
@@ -215,12 +215,12 @@
 
 const QualifiedName* AnimationInputHelpers::KeyframeAttributeToSVGAttribute(
     const String& property,
-    Element& element) {
-  if (!RuntimeEnabledFeatures::WebAnimationsSVGEnabled() ||
-      !element.IsSVGElement() || !IsSVGPrefixed(property))
+    Element* element) {
+  if (!RuntimeEnabledFeatures::WebAnimationsSVGEnabled() || !element ||
+      !element->IsSVGElement() || !IsSVGPrefixed(property))
     return nullptr;
 
-  SVGElement& svg_element = ToSVGElement(element);
+  SVGElement* svg_element = ToSVGElement(element);
   if (IsSVGSMILElement(svg_element))
     return nullptr;
 
@@ -229,7 +229,7 @@
   const AttributeNameMap& supported_attributes = GetSupportedAttributes();
   auto iter = supported_attributes.find(attribute_name);
   if (iter == supported_attributes.end() ||
-      !svg_element.PropertyFromAttribute(*iter->value))
+      !svg_element->PropertyFromAttribute(*iter->value))
     return nullptr;
 
   return iter->value;
diff --git a/third_party/WebKit/Source/core/animation/AnimationInputHelpers.h b/third_party/WebKit/Source/core/animation/AnimationInputHelpers.h
index 7ef40ca..c131539 100644
--- a/third_party/WebKit/Source/core/animation/AnimationInputHelpers.h
+++ b/third_party/WebKit/Source/core/animation/AnimationInputHelpers.h
@@ -26,9 +26,9 @@
   static CSSPropertyID KeyframeAttributeToCSSProperty(const String&,
                                                       const Document&);
   static CSSPropertyID KeyframeAttributeToPresentationAttribute(const String&,
-                                                                const Element&);
+                                                                const Element*);
   static const QualifiedName* KeyframeAttributeToSVGAttribute(const String&,
-                                                              Element&);
+                                                              Element*);
   static scoped_refptr<TimingFunction> ParseTimingFunction(const String&,
                                                            Document*,
                                                            ExceptionState&);
diff --git a/third_party/WebKit/Source/core/animation/BUILD.gn b/third_party/WebKit/Source/core/animation/BUILD.gn
index d5b5fcf..46012d1d 100644
--- a/third_party/WebKit/Source/core/animation/BUILD.gn
+++ b/third_party/WebKit/Source/core/animation/BUILD.gn
@@ -227,7 +227,6 @@
     "animatable/AnimatableFilterOperations.h",
     "animatable/AnimatableTransform.cpp",
     "animatable/AnimatableTransform.h",
-    "animatable/AnimatableUnknown.h",
     "animatable/AnimatableValue.cpp",
     "animatable/AnimatableValue.h",
     "css/CSSAnimatableValueFactory.cpp",
diff --git a/third_party/WebKit/Source/core/animation/EffectInput.cpp b/third_party/WebKit/Source/core/animation/EffectInput.cpp
index 962fd09..1d14dc26 100644
--- a/third_party/WebKit/Source/core/animation/EffectInput.cpp
+++ b/third_party/WebKit/Source/core/animation/EffectInput.cpp
@@ -88,30 +88,25 @@
   return result;
 }
 
-void SetKeyframeValue(Element& element,
+void SetKeyframeValue(Element* element,
+                      Document& document,
                       StringKeyframe& keyframe,
                       const String& property,
                       const String& value,
                       ExecutionContext* execution_context) {
-  StyleSheetContents* style_sheet_contents =
-      element.GetDocument().ElementSheet().Contents();
+  StyleSheetContents* style_sheet_contents = document.ElementSheet().Contents();
   CSSPropertyID css_property =
-      AnimationInputHelpers::KeyframeAttributeToCSSProperty(
-          property, element.GetDocument());
+      AnimationInputHelpers::KeyframeAttributeToCSSProperty(property, document);
   if (css_property != CSSPropertyInvalid) {
     MutableCSSPropertyValueSet::SetResult set_result =
         css_property == CSSPropertyVariable
             ? keyframe.SetCSSPropertyValue(
-                  AtomicString(property),
-                  element.GetDocument().GetPropertyRegistry(), value,
-                  element.GetDocument().GetSecureContextMode(),
-                  style_sheet_contents)
-            : keyframe.SetCSSPropertyValue(
-                  css_property, value,
-                  element.GetDocument().GetSecureContextMode(),
-                  style_sheet_contents);
+                  AtomicString(property), document.GetPropertyRegistry(), value,
+                  document.GetSecureContextMode(), style_sheet_contents)
+            : keyframe.SetCSSPropertyValue(css_property, value,
+                                           document.GetSecureContextMode(),
+                                           style_sheet_contents);
     if (!set_result.did_parse && execution_context) {
-      Document& document = ToDocument(*execution_context);
       if (document.GetFrame()) {
         document.GetFrame()->Console().AddMessage(ConsoleMessage::Create(
             kJSMessageSource, kWarningMessageLevel,
@@ -125,8 +120,8 @@
                                                                       element);
   if (css_property != CSSPropertyInvalid) {
     keyframe.SetPresentationAttributeValue(
-        CSSProperty::Get(css_property), value,
-        element.GetDocument().GetSecureContextMode(), style_sheet_contents);
+        CSSProperty::Get(css_property), value, document.GetSecureContextMode(),
+        style_sheet_contents);
     return;
   }
   const QualifiedName* svg_attribute =
@@ -203,7 +198,8 @@
   Vector<std::pair<String, String>> property_value_pairs;
 };
 
-StringKeyframeVector ConvertArrayForm(Element& element,
+StringKeyframeVector ConvertArrayForm(Element* element,
+                                      Document& document,
                                       DictionaryIterator iterator,
                                       ScriptState* script_state,
                                       ExceptionState& exception_state) {
@@ -310,8 +306,8 @@
     // using the syntax specified for that property.
     for (const auto& pair : processed_keyframe.property_value_pairs) {
       // TODO(crbug.com/777971): Make parsing of property values spec-compliant.
-      SetKeyframeValue(element, *keyframe.get(), pair.first, pair.second,
-                       execution_context);
+      SetKeyframeValue(element, document, *keyframe.get(), pair.first,
+                       pair.second, execution_context);
     }
 
     if (processed_keyframe.base_keyframe.hasComposite()) {
@@ -329,7 +325,7 @@
     // procedure.
     scoped_refptr<TimingFunction> timing_function =
         AnimationInputHelpers::ParseTimingFunction(
-            processed_keyframe.base_keyframe.easing(), &element.GetDocument(),
+            processed_keyframe.base_keyframe.easing(), &document,
             exception_state);
     if (!timing_function)
       return {};
@@ -380,7 +376,8 @@
 // web-animations spec for an object form keyframes argument.
 //
 // See https://drafts.csswg.org/web-animations/#processing-a-keyframes-argument
-StringKeyframeVector ConvertObjectForm(Element& element,
+StringKeyframeVector ConvertObjectForm(Element* element,
+                                       Document& document,
                                        const Dictionary& dictionary,
                                        ScriptState* script_state,
                                        ExceptionState& exception_state) {
@@ -466,8 +463,8 @@
       if (result.is_new_entry)
         result.stored_value->value = StringKeyframe::Create();
 
-      SetKeyframeValue(element, *result.stored_value->value.get(), property,
-                       values[i], execution_context);
+      SetKeyframeValue(element, document, *result.stored_value->value.get(),
+                       property, values[i], execution_context);
     }
   }
 
@@ -535,8 +532,8 @@
       // If parsing the “easing” property fails, throw a TypeError and abort
       // this procedure.
       scoped_refptr<TimingFunction> timing_function =
-          AnimationInputHelpers::ParseTimingFunction(
-              easing, &element.GetDocument(), exception_state);
+          AnimationInputHelpers::ParseTimingFunction(easing, &document,
+                                                     exception_state);
       if (!timing_function)
         return {};
 
@@ -570,8 +567,8 @@
   // procedure.
   for (size_t i = results.size(); i < easings.size(); i++) {
     scoped_refptr<TimingFunction> timing_function =
-        AnimationInputHelpers::ParseTimingFunction(
-            easings[i], &element.GetDocument(), exception_state);
+        AnimationInputHelpers::ParseTimingFunction(easings[i], &document,
+                                                   exception_state);
     if (!timing_function)
       return {};
   }
@@ -601,10 +598,6 @@
     EffectModel::CompositeOperation composite,
     ScriptState* script_state,
     ExceptionState& exception_state) {
-  // TODO(crbug.com/772014): The element is allowed to be null; remove check.
-  if (!element)
-    return StringKeyframeEffectModel::Create(StringKeyframeVector(), composite);
-
   StringKeyframeVector parsed_keyframes =
       ParseKeyframesArgument(element, keyframes, script_state, exception_state);
   if (exception_state.HadException())
@@ -640,15 +633,20 @@
   if (exception_state.HadException())
     return {};
 
+  // TODO(crbug.com/816934): Get spec to specify what parsing context to use.
+  Document& document = element
+                           ? element->GetDocument()
+                           : *ToDocument(ExecutionContext::From(script_state));
+
   StringKeyframeVector parsed_keyframes;
   DictionaryIterator iterator =
       dictionary.GetIterator(ExecutionContext::From(script_state));
   if (iterator.IsNull()) {
-    parsed_keyframes =
-        ConvertObjectForm(*element, dictionary, script_state, exception_state);
+    parsed_keyframes = ConvertObjectForm(element, document, dictionary,
+                                         script_state, exception_state);
   } else {
-    parsed_keyframes =
-        ConvertArrayForm(*element, iterator, script_state, exception_state);
+    parsed_keyframes = ConvertArrayForm(element, document, iterator,
+                                        script_state, exception_state);
   }
 
   if (!ValidatePartialKeyframes(parsed_keyframes)) {
diff --git a/third_party/WebKit/Source/core/animation/EffectInput.h b/third_party/WebKit/Source/core/animation/EffectInput.h
index b364bd0..149fc37 100644
--- a/third_party/WebKit/Source/core/animation/EffectInput.h
+++ b/third_party/WebKit/Source/core/animation/EffectInput.h
@@ -22,7 +22,6 @@
   STATIC_ONLY(EffectInput);
 
  public:
-  // TODO(alancutter): Replace Element* parameter with Document&.
   static KeyframeEffectModelBase* Convert(Element*,
                                           const ScriptValue& keyframes,
                                           EffectModel::CompositeOperation,
diff --git a/third_party/WebKit/Source/core/animation/KeyframeEffectModelTest.cpp b/third_party/WebKit/Source/core/animation/KeyframeEffectModelTest.cpp
index 7b430038..3bfc60a0 100644
--- a/third_party/WebKit/Source/core/animation/KeyframeEffectModelTest.cpp
+++ b/third_party/WebKit/Source/core/animation/KeyframeEffectModelTest.cpp
@@ -35,7 +35,6 @@
 #include "core/animation/InvalidatableInterpolation.h"
 #include "core/animation/StringKeyframe.h"
 #include "core/animation/animatable/AnimatableDouble.h"
-#include "core/animation/animatable/AnimatableUnknown.h"
 #include "core/css/CSSPrimitiveValue.h"
 #include "core/dom/Element.h"
 #include "core/testing/PageTestBase.h"
@@ -91,11 +90,6 @@
 
 const double kDuration = 1.0;
 
-scoped_refptr<AnimatableValue> UnknownAnimatableValue(double n) {
-  return AnimatableUnknown::Create(
-      CSSPrimitiveValue::Create(n, CSSPrimitiveValue::UnitType::kUnknown));
-}
-
 StringKeyframeVector KeyframesAtZeroAndOne(CSSPropertyID property,
                                            const String& zero_value,
                                            const String& one_value) {
diff --git a/third_party/WebKit/Source/core/animation/animatable/AnimatableUnknown.h b/third_party/WebKit/Source/core/animation/animatable/AnimatableUnknown.h
deleted file mode 100644
index 0add5ac..0000000
--- a/third_party/WebKit/Source/core/animation/animatable/AnimatableUnknown.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Copyright (C) 2013 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- *     * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above
- * 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 Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software 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.
- */
-
-#ifndef AnimatableUnknown_h
-#define AnimatableUnknown_h
-
-#include "core/CSSValueKeywords.h"
-#include "core/animation/animatable/AnimatableValue.h"
-#include "core/css/CSSIdentifierValue.h"
-
-namespace blink {
-
-class AnimatableUnknown final : public AnimatableValue {
- public:
-  ~AnimatableUnknown() override = default;
-
-  static scoped_refptr<AnimatableUnknown> Create(const CSSValue* value) {
-    return base::AdoptRef(new AnimatableUnknown(value));
-  }
-  static scoped_refptr<AnimatableUnknown> Create(CSSValueID value) {
-    return base::AdoptRef(
-        new AnimatableUnknown(CSSIdentifierValue::Create(value)));
-  }
-
-  const CSSValue* ToCSSValue() const { return value_; }
-  CSSValueID ToCSSValueID() const {
-    return ToCSSIdentifierValue(value_.Get())->GetValueID();
-  }
-
- protected:
-  scoped_refptr<AnimatableValue> InterpolateTo(const AnimatableValue* value,
-                                               double fraction) const override {
-    return DefaultInterpolateTo(this, value, fraction);
-  }
-
- private:
-  explicit AnimatableUnknown(const CSSValue* value) : value_(value) {}
-  AnimatableType GetType() const override { return kTypeUnknown; }
-
-  const Persistent<const CSSValue> value_;
-};
-
-DEFINE_ANIMATABLE_VALUE_TYPE_CASTS(AnimatableUnknown, IsUnknown());
-
-}  // namespace blink
-
-#endif  // AnimatableUnknown_h
diff --git a/third_party/WebKit/Source/core/css/cssom/CSSStyleValue.h b/third_party/WebKit/Source/core/css/cssom/CSSStyleValue.h
index 579163f..b93f4fb 100644
--- a/third_party/WebKit/Source/core/css/cssom/CSSStyleValue.h
+++ b/third_party/WebKit/Source/core/css/cssom/CSSStyleValue.h
@@ -31,6 +31,7 @@
   // This enum ordering is significant for CSSStyleValue::IsNumericValue.
   enum StyleValueType {
     kUnknownType,
+    kShorthandType,
     kUnparsedType,
     kKeywordType,
     // Start of CSSNumericValue subclasses
diff --git a/third_party/WebKit/Source/core/css/cssom/CSSUnsupportedShorthandValue.h b/third_party/WebKit/Source/core/css/cssom/CSSUnsupportedShorthandValue.h
new file mode 100644
index 0000000..705db3e
--- /dev/null
+++ b/third_party/WebKit/Source/core/css/cssom/CSSUnsupportedShorthandValue.h
@@ -0,0 +1,66 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CSSUnsupportedShorthandValue_h
+#define CSSUnsupportedShorthandValue_h
+
+#include "base/macros.h"
+#include "core/css/cssom/CSSStyleValue.h"
+
+namespace blink {
+
+// CSSUnsupportedShorthandValue is the internal representation for an
+// unsupported shorthand property. It is tied to that specific property and is
+// only considered valid for that property.
+class CORE_EXPORT CSSUnsupportedShorthandValue final : public CSSStyleValue {
+ public:
+  static CSSUnsupportedShorthandValue* Create(CSSPropertyID property) {
+    return new CSSUnsupportedShorthandValue(property);
+  }
+
+  StyleValueType GetType() const override {
+    return StyleValueType::kShorthandType;
+  }
+  CSSPropertyID GetProperty() const { return property_; }
+  const HeapVector<Member<const CSSValue>>& LonghandValues() const {
+    return css_values_;
+  };
+  // Shorthands cannot be converted into a single CSSValue.
+  const CSSValue* ToCSSValue() const final {
+    NOTREACHED();
+    return nullptr;
+  }
+  String toString() const final {
+    // TODO(816722): Implement serialization.
+    return "";
+  }
+
+  void Append(const CSSValue* value) { css_values_.push_back(value); }
+
+  virtual void Trace(blink::Visitor* visitor) {
+    visitor->Trace(css_values_);
+    CSSStyleValue::Trace(visitor);
+  }
+
+ private:
+  CSSUnsupportedShorthandValue(CSSPropertyID property) : property_(property) {}
+
+  const CSSPropertyID property_;
+  // TODO(816722): Convert this to a CSSValueList if we can confirm that
+  // we will never have null values.
+  HeapVector<Member<const CSSValue>> css_values_;
+  DISALLOW_COPY_AND_ASSIGN(CSSUnsupportedShorthandValue);
+};
+
+DEFINE_TYPE_CASTS(CSSUnsupportedShorthandValue,
+                  CSSStyleValue,
+                  value,
+                  value->GetType() ==
+                      CSSStyleValue::StyleValueType::kShorthandType,
+                  value.GetType() ==
+                      CSSStyleValue::StyleValueType::kShorthandType);
+
+}  // namespace blink
+
+#endif  // CSSUnsupportedShorthandValue_h
diff --git a/third_party/WebKit/Source/core/css/cssom/StylePropertyMapReadOnly.cpp b/third_party/WebKit/Source/core/css/cssom/StylePropertyMapReadOnly.cpp
index 4788a51..6b036abb 100644
--- a/third_party/WebKit/Source/core/css/cssom/StylePropertyMapReadOnly.cpp
+++ b/third_party/WebKit/Source/core/css/cssom/StylePropertyMapReadOnly.cpp
@@ -6,11 +6,13 @@
 
 #include "bindings/core/v8/ExceptionState.h"
 #include "core/CSSPropertyNames.h"
+#include "core/StylePropertyShorthand.h"
 #include "core/css/CSSCustomPropertyDeclaration.h"
 #include "core/css/CSSValueList.h"
 #include "core/css/CSSVariableReferenceValue.h"
 #include "core/css/cssom/CSSStyleValue.h"
 #include "core/css/cssom/CSSUnparsedValue.h"
+#include "core/css/cssom/CSSUnsupportedShorthandValue.h"
 #include "core/css/cssom/StyleValueFactory.h"
 #include "core/css/properties/CSSProperty.h"
 
@@ -66,13 +68,17 @@
   }
 
   DCHECK(isValidCSSPropertyID(property_id));
+  const CSSProperty& property = CSSProperty::Get(property_id);
+  if (property.IsShorthand())
+    return GetShorthandProperty(property);
+
   const CSSValue* value = (property_id == CSSPropertyVariable)
                               ? GetCustomProperty(AtomicString(property_name))
                               : GetProperty(property_id);
   if (!value)
     return nullptr;
 
-  if (CSSProperty::Get(property_id).IsRepeated()) {
+  if (property.IsRepeated()) {
     CSSStyleValueVector values =
         StyleValueFactory::CssValueToStyleValueVector(property_id, *value);
     return values.IsEmpty() ? nullptr : values[0];
@@ -91,6 +97,14 @@
   }
 
   DCHECK(isValidCSSPropertyID(property_id));
+  const CSSProperty& property = CSSProperty::Get(property_id);
+  if (property.IsShorthand()) {
+    CSSStyleValueVector values;
+    if (CSSStyleValue* value = GetShorthandProperty(property))
+      values.push_back(value);
+    return values;
+  }
+
   const CSSValue* value = (property_id == CSSPropertyVariable)
                               ? GetCustomProperty(AtomicString(property_name))
                               : GetProperty(property_id);
@@ -124,4 +138,21 @@
   return new StylePropertyMapIterationSource(result);
 }
 
+CSSStyleValue* StylePropertyMapReadOnly::GetShorthandProperty(
+    const CSSProperty& property) {
+  DCHECK(property.IsShorthand());
+  auto* result = CSSUnsupportedShorthandValue::Create(property.PropertyID());
+  const StylePropertyShorthand& shorthand =
+      shorthandForProperty(property.PropertyID());
+  for (size_t i = 0; i < shorthand.length(); i++) {
+    const CSSValue* longhand_value =
+        GetProperty(shorthand.properties()[i]->PropertyID());
+    if (!longhand_value)
+      return nullptr;
+
+    result->Append(longhand_value);
+  }
+  return result;
+}
+
 }  // namespace blink
diff --git a/third_party/WebKit/Source/core/css/cssom/StylePropertyMapReadOnly.h b/third_party/WebKit/Source/core/css/cssom/StylePropertyMapReadOnly.h
index be098b5..d8c3dea 100644
--- a/third_party/WebKit/Source/core/css/cssom/StylePropertyMapReadOnly.h
+++ b/third_party/WebKit/Source/core/css/cssom/StylePropertyMapReadOnly.h
@@ -14,6 +14,8 @@
 
 namespace blink {
 
+class CSSProperty;
+
 class CORE_EXPORT StylePropertyMapReadOnly
     : public ScriptWrappable,
       public PairIterable<String, CSSStyleValueVector> {
@@ -43,6 +45,8 @@
  private:
   IterationSource* StartIteration(ScriptState*, ExceptionState&) override;
 
+  CSSStyleValue* GetShorthandProperty(const CSSProperty&);
+
  private:
   DISALLOW_COPY_AND_ASSIGN(StylePropertyMapReadOnly);
 };
diff --git a/third_party/WebKit/Source/core/dom/Document.cpp b/third_party/WebKit/Source/core/dom/Document.cpp
index b963732..1ac9b81c 100644
--- a/third_party/WebKit/Source/core/dom/Document.cpp
+++ b/third_party/WebKit/Source/core/dom/Document.cpp
@@ -38,7 +38,6 @@
 #include "bindings/core/v8/WindowProxy.h"
 #include "bindings/core/v8/html_script_element_or_svg_script_element.h"
 #include "bindings/core/v8/string_or_dictionary.h"
-#include "common/net/ip_address_space.mojom-blink.h"
 #include "core/animation/DocumentAnimations.h"
 #include "core/animation/DocumentTimeline.h"
 #include "core/animation/PendingAnimations.h"
@@ -257,6 +256,7 @@
 #include "platform/wtf/text/CharacterNames.h"
 #include "platform/wtf/text/StringBuffer.h"
 #include "platform/wtf/text/TextEncodingRegistry.h"
+#include "public/mojom/net/ip_address_space.mojom-blink.h"
 #include "public/platform/InterfaceProvider.h"
 #include "public/platform/Platform.h"
 #include "public/platform/TaskType.h"
@@ -268,7 +268,7 @@
 #include "services/metrics/public/cpp/ukm_source_id.h"
 #include "services/metrics/public/mojom/ukm_interface.mojom-shared.h"
 #include "services/service_manager/public/cpp/interface_provider.h"
-#include "third_party/WebKit/common/page/page_visibility_state.mojom-blink.h"
+#include "third_party/WebKit/public/mojom/page/page_visibility_state.mojom-blink.h"
 
 #ifndef NDEBUG
 using WeakDocumentSet =
diff --git a/third_party/WebKit/Source/core/dom/SecurityContext.h b/third_party/WebKit/Source/core/dom/SecurityContext.h
index 9421d83..3d8c316 100644
--- a/third_party/WebKit/Source/core/dom/SecurityContext.h
+++ b/third_party/WebKit/Source/core/dom/SecurityContext.h
@@ -29,13 +29,13 @@
 
 #include "base/macros.h"
 #include "base/memory/scoped_refptr.h"
-#include "common/net/ip_address_space.mojom-blink.h"
 #include "core/CoreExport.h"
 #include "core/dom/SandboxFlags.h"
 #include "platform/heap/Handle.h"
 #include "platform/wtf/HashSet.h"
 #include "platform/wtf/text/StringHash.h"
 #include "platform/wtf/text/WTFString.h"
+#include "public/mojom/net/ip_address_space.mojom-blink.h"
 #include "public/platform/WebInsecureRequestPolicy.h"
 #include "public/platform/WebURLRequest.h"
 #include "third_party/WebKit/public/common/feature_policy/feature_policy.h"
diff --git a/third_party/WebKit/Source/core/editing/BUILD.gn b/third_party/WebKit/Source/core/editing/BUILD.gn
index a5aab51..e7b81aa 100644
--- a/third_party/WebKit/Source/core/editing/BUILD.gn
+++ b/third_party/WebKit/Source/core/editing/BUILD.gn
@@ -331,6 +331,7 @@
     "LocalCaretRectTest.cpp",
     "PositionIteratorTest.cpp",
     "PositionTest.cpp",
+    "PositionWithAffinityTest.cpp",
     "RelocatablePositionTest.cpp",
     "RenderedPositionTest.cpp",
     "SelectionControllerTest.cpp",
diff --git a/third_party/WebKit/Source/core/editing/Position.h b/third_party/WebKit/Source/core/editing/Position.h
index 544711fa..ab8a6a0a 100644
--- a/third_party/WebKit/Source/core/editing/Position.h
+++ b/third_party/WebKit/Source/core/editing/Position.h
@@ -73,6 +73,8 @@
 
   PositionTemplate(const PositionTemplate&);
 
+  explicit operator bool() const { return IsNotNull(); }
+
   PositionAnchorType AnchorType() const { return anchor_type_; }
   bool IsAfterAnchor() const {
     return anchor_type_ == PositionAnchorType::kAfterAnchor;
diff --git a/third_party/WebKit/Source/core/editing/PositionTest.cpp b/third_party/WebKit/Source/core/editing/PositionTest.cpp
index 0c89ceb7..464936f 100644
--- a/third_party/WebKit/Source/core/editing/PositionTest.cpp
+++ b/third_party/WebKit/Source/core/editing/PositionTest.cpp
@@ -141,6 +141,12 @@
   EXPECT_EQ(t1, PositionInFlatTree::AfterNode(*host).NodeAsRangeLastNode());
 }
 
+TEST_F(PositionTest, OperatorBool) {
+  SetBodyContent("foo");
+  EXPECT_FALSE(static_cast<bool>(Position()));
+  EXPECT_TRUE(static_cast<bool>(Position(GetDocument().body(), 0)));
+}
+
 TEST_F(PositionTest, ToPositionInFlatTreeWithActiveInsertionPoint) {
   const char* body_content = "<p id='host'>00<b id='one'>11</b>22</p>";
   const char* shadow_content =
diff --git a/third_party/WebKit/Source/core/editing/PositionWithAffinity.h b/third_party/WebKit/Source/core/editing/PositionWithAffinity.h
index a0f52702..7d070ed 100644
--- a/third_party/WebKit/Source/core/editing/PositionWithAffinity.h
+++ b/third_party/WebKit/Source/core/editing/PositionWithAffinity.h
@@ -25,6 +25,8 @@
   PositionWithAffinityTemplate();
   ~PositionWithAffinityTemplate();
 
+  explicit operator bool() const { return IsNotNull(); }
+
   TextAffinity Affinity() const { return affinity_; }
   const PositionTemplate<Strategy>& GetPosition() const { return position_; }
 
diff --git a/third_party/WebKit/Source/core/editing/PositionWithAffinityTest.cpp b/third_party/WebKit/Source/core/editing/PositionWithAffinityTest.cpp
new file mode 100644
index 0000000..bdcaa84
--- /dev/null
+++ b/third_party/WebKit/Source/core/editing/PositionWithAffinityTest.cpp
@@ -0,0 +1,20 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "core/editing/PositionWithAffinity.h"
+
+#include "core/editing/testing/EditingTestBase.h"
+
+namespace blink {
+
+class PositionWithAffinityTest : public EditingTestBase {};
+
+TEST_F(PositionWithAffinityTest, OperatorBool) {
+  SetBodyContent("foo");
+  EXPECT_FALSE(static_cast<bool>(PositionWithAffinity()));
+  EXPECT_TRUE(static_cast<bool>(
+      PositionWithAffinity(Position(GetDocument().body(), 0))));
+}
+
+}  // namespace blink
diff --git a/third_party/WebKit/Source/core/exported/WebSharedWorkerImpl.h b/third_party/WebKit/Source/core/exported/WebSharedWorkerImpl.h
index 67ce35a..a308348 100644
--- a/third_party/WebKit/Source/core/exported/WebSharedWorkerImpl.h
+++ b/third_party/WebKit/Source/core/exported/WebSharedWorkerImpl.h
@@ -35,12 +35,12 @@
 
 #include <memory>
 #include "base/memory/scoped_refptr.h"
-#include "common/net/ip_address_space.mojom-shared.h"
 #include "core/CoreExport.h"
 #include "core/exported/WorkerShadowPage.h"
 #include "core/workers/SharedWorkerReportingProxy.h"
 #include "core/workers/WorkerClients.h"
 #include "core/workers/WorkerThread.h"
+#include "public/mojom/net/ip_address_space.mojom-shared.h"
 #include "public/platform/WebContentSecurityPolicy.h"
 #include "public/web/WebSharedWorkerClient.h"
 #include "public/web/worker_content_settings_proxy.mojom-blink.h"
diff --git a/third_party/WebKit/Source/core/exported/WebViewImpl.cpp b/third_party/WebKit/Source/core/exported/WebViewImpl.cpp
index b197ab6..0fef3fd 100644
--- a/third_party/WebKit/Source/core/exported/WebViewImpl.cpp
+++ b/third_party/WebKit/Source/core/exported/WebViewImpl.cpp
@@ -173,7 +173,7 @@
 #include "public/web/WebSelection.h"
 #include "public/web/WebViewClient.h"
 #include "public/web/WebWindowFeatures.h"
-#include "third_party/WebKit/common/page/page_visibility_state.mojom-blink.h"
+#include "third_party/WebKit/public/mojom/page/page_visibility_state.mojom-blink.h"
 
 #if defined(WTF_USE_DEFAULT_RENDER_THEME)
 #include "core/layout/LayoutThemeDefault.h"
diff --git a/third_party/WebKit/Source/core/exported/WebViewTest.cpp b/third_party/WebKit/Source/core/exported/WebViewTest.cpp
index 044b2f2..8a484cf 100644
--- a/third_party/WebKit/Source/core/exported/WebViewTest.cpp
+++ b/third_party/WebKit/Source/core/exported/WebViewTest.cpp
@@ -122,7 +122,7 @@
 #include "public/web/WebWidget.h"
 #include "public/web/WebWidgetClient.h"
 #include "testing/gtest/include/gtest/gtest.h"
-#include "third_party/WebKit/common/page/page_visibility_state.mojom-blink.h"
+#include "third_party/WebKit/public/mojom/page/page_visibility_state.mojom-blink.h"
 #include "third_party/skia/include/core/SkBitmap.h"
 #include "third_party/skia/include/core/SkCanvas.h"
 #include "v8/include/v8.h"
diff --git a/third_party/WebKit/Source/core/exported/WorkerShadowPage.cpp b/third_party/WebKit/Source/core/exported/WorkerShadowPage.cpp
index 81a2447e..ae4a3fb 100644
--- a/third_party/WebKit/Source/core/exported/WorkerShadowPage.cpp
+++ b/third_party/WebKit/Source/core/exported/WorkerShadowPage.cpp
@@ -11,7 +11,7 @@
 #include "platform/loader/fetch/SubstituteData.h"
 #include "public/platform/Platform.h"
 #include "public/web/WebSettings.h"
-#include "third_party/WebKit/common/page/page_visibility_state.mojom-blink.h"
+#include "third_party/WebKit/public/mojom/page/page_visibility_state.mojom-blink.h"
 
 namespace blink {
 
diff --git a/third_party/WebKit/Source/core/frame/FrameTestHelpers.cpp b/third_party/WebKit/Source/core/frame/FrameTestHelpers.cpp
index 415ed51..cd2556f 100644
--- a/third_party/WebKit/Source/core/frame/FrameTestHelpers.cpp
+++ b/third_party/WebKit/Source/core/frame/FrameTestHelpers.cpp
@@ -52,7 +52,7 @@
 #include "public/web/WebSettings.h"
 #include "public/web/WebTreeScopeType.h"
 #include "public/web/WebViewClient.h"
-#include "third_party/WebKit/common/page/page_visibility_state.mojom-blink.h"
+#include "third_party/WebKit/public/mojom/page/page_visibility_state.mojom-blink.h"
 
 namespace blink {
 namespace FrameTestHelpers {
diff --git a/third_party/WebKit/Source/core/frame/LocalFrame.h b/third_party/WebKit/Source/core/frame/LocalFrame.h
index 887088f8..9582bcc 100644
--- a/third_party/WebKit/Source/core/frame/LocalFrame.h
+++ b/third_party/WebKit/Source/core/frame/LocalFrame.h
@@ -46,7 +46,7 @@
 #include "platform/heap/Handle.h"
 #include "platform/scroll/ScrollTypes.h"
 #include "third_party/WebKit/Source/core/dom/AXObjectCache.h"
-#include "third_party/WebKit/common/loader/prefetch_url_loader_service.mojom-blink.h"
+#include "third_party/WebKit/public/mojom/loader/prefetch_url_loader_service.mojom-blink.h"
 
 namespace service_manager {
 class InterfaceProvider;
diff --git a/third_party/WebKit/Source/core/frame/LocalFrameView.cpp b/third_party/WebKit/Source/core/frame/LocalFrameView.cpp
index 6ad5e4b4..e460ded 100644
--- a/third_party/WebKit/Source/core/frame/LocalFrameView.cpp
+++ b/third_party/WebKit/Source/core/frame/LocalFrameView.cpp
@@ -129,7 +129,7 @@
 #include "public/platform/WebDisplayItemList.h"
 #include "public/platform/WebRect.h"
 #include "public/platform/WebScrollIntoViewParams.h"
-#include "third_party/WebKit/common/page/page_visibility_state.mojom-blink.h"
+#include "third_party/WebKit/public/mojom/page/page_visibility_state.mojom-blink.h"
 
 // Used to check for dirty layouts violating document lifecycle rules.
 // If arg evaluates to true, the program will continue. If arg evaluates to
diff --git a/third_party/WebKit/Source/core/frame/WebFrameWidgetImpl.cpp b/third_party/WebKit/Source/core/frame/WebFrameWidgetImpl.cpp
index f9aed563..047d929 100644
--- a/third_party/WebKit/Source/core/frame/WebFrameWidgetImpl.cpp
+++ b/third_party/WebKit/Source/core/frame/WebFrameWidgetImpl.cpp
@@ -81,7 +81,7 @@
 #include "public/web/WebPlugin.h"
 #include "public/web/WebRange.h"
 #include "public/web/WebWidgetClient.h"
-#include "third_party/WebKit/common/page/page_visibility_state.mojom-blink.h"
+#include "third_party/WebKit/public/mojom/page/page_visibility_state.mojom-blink.h"
 
 namespace blink {
 
diff --git a/third_party/WebKit/Source/core/frame/WebViewFrameWidget.cpp b/third_party/WebKit/Source/core/frame/WebViewFrameWidget.cpp
index 393d81d..074db69 100644
--- a/third_party/WebKit/Source/core/frame/WebViewFrameWidget.cpp
+++ b/third_party/WebKit/Source/core/frame/WebViewFrameWidget.cpp
@@ -8,7 +8,7 @@
 #include "core/frame/WebLocalFrameImpl.h"
 #include "core/layout/HitTestResult.h"
 #include "platform/exported/WebActiveGestureAnimation.h"
-#include "third_party/WebKit/common/page/page_visibility_state.mojom-blink.h"
+#include "third_party/WebKit/public/mojom/page/page_visibility_state.mojom-blink.h"
 
 namespace blink {
 
diff --git a/third_party/WebKit/Source/core/frame/csp/ContentSecurityPolicy.cpp b/third_party/WebKit/Source/core/frame/csp/ContentSecurityPolicy.cpp
index ac6dbec..17baee29 100644
--- a/third_party/WebKit/Source/core/frame/csp/ContentSecurityPolicy.cpp
+++ b/third_party/WebKit/Source/core/frame/csp/ContentSecurityPolicy.cpp
@@ -27,7 +27,6 @@
 
 #include <memory>
 #include "bindings/core/v8/ScriptController.h"
-#include "common/net/ip_address_space.mojom-blink.h"
 #include "core/dom/DOMStringList.h"
 #include "core/dom/Document.h"
 #include "core/dom/Element.h"
@@ -69,6 +68,7 @@
 #include "platform/wtf/text/ParsingUtilities.h"
 #include "platform/wtf/text/StringBuilder.h"
 #include "platform/wtf/text/StringUTF8Adaptor.h"
+#include "public/mojom/net/ip_address_space.mojom-blink.h"
 #include "public/platform/Platform.h"
 #include "public/platform/TaskType.h"
 #include "public/platform/WebURLRequest.h"
diff --git a/third_party/WebKit/Source/core/frame/csp/ContentSecurityPolicyTest.cpp b/third_party/WebKit/Source/core/frame/csp/ContentSecurityPolicyTest.cpp
index 7381af70..ffb799ee 100644
--- a/third_party/WebKit/Source/core/frame/csp/ContentSecurityPolicyTest.cpp
+++ b/third_party/WebKit/Source/core/frame/csp/ContentSecurityPolicyTest.cpp
@@ -4,7 +4,6 @@
 
 #include "core/frame/csp/ContentSecurityPolicy.h"
 
-#include "common/net/ip_address_space.mojom-blink.h"
 #include "core/dom/Document.h"
 #include "core/frame/csp/CSPDirectiveList.h"
 #include "core/html/HTMLScriptElement.h"
@@ -17,6 +16,7 @@
 #include "platform/weborigin/KURL.h"
 #include "platform/weborigin/SchemeRegistry.h"
 #include "platform/weborigin/SecurityOrigin.h"
+#include "public/mojom/net/ip_address_space.mojom-blink.h"
 #include "public/platform/WebInsecureRequestPolicy.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
diff --git a/third_party/WebKit/Source/core/html/canvas/CanvasFontCacheTest.cpp b/third_party/WebKit/Source/core/html/canvas/CanvasFontCacheTest.cpp
index 56da2cc..b28c0bf 100644
--- a/third_party/WebKit/Source/core/html/canvas/CanvasFontCacheTest.cpp
+++ b/third_party/WebKit/Source/core/html/canvas/CanvasFontCacheTest.cpp
@@ -13,7 +13,7 @@
 #include "core/testing/PageTestBase.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
-#include "third_party/WebKit/common/page/page_visibility_state.mojom-blink.h"
+#include "third_party/WebKit/public/mojom/page/page_visibility_state.mojom-blink.h"
 
 using ::testing::Mock;
 
diff --git a/third_party/WebKit/Source/core/html/canvas/CanvasRenderingContext.cpp b/third_party/WebKit/Source/core/html/canvas/CanvasRenderingContext.cpp
index 5817343..34feda7 100644
--- a/third_party/WebKit/Source/core/html/canvas/CanvasRenderingContext.cpp
+++ b/third_party/WebKit/Source/core/html/canvas/CanvasRenderingContext.cpp
@@ -148,8 +148,7 @@
     return kContextWebgl;
   if (id == "webgl2")
     return kContextWebgl2;
-  if (id == "bitmaprenderer" &&
-      RuntimeEnabledFeatures::ExperimentalCanvasFeaturesEnabled()) {
+  if (id == "bitmaprenderer") {
     return kContextImageBitmap;
   }
   if (id == "xrpresent" && RuntimeEnabledFeatures::WebXREnabled()) {
diff --git a/third_party/WebKit/Source/core/html/forms/HTMLOptionElement.cpp b/third_party/WebKit/Source/core/html/forms/HTMLOptionElement.cpp
index 50e152e..97417fab 100644
--- a/third_party/WebKit/Source/core/html/forms/HTMLOptionElement.cpp
+++ b/third_party/WebKit/Source/core/html/forms/HTMLOptionElement.cpp
@@ -91,7 +91,7 @@
   if (!GetNonAttachedStyle() && ParentComputedStyle()) {
     if (HTMLSelectElement* select = OwnerSelectElement())
       select->UpdateListOnLayoutObject();
-    SetNonAttachedStyle(OriginalStyleForLayoutObject());
+    SetNonAttachedStyle(StyleForLayoutObject());
   }
   HTMLElement::AttachLayoutTree(option_context);
 }
diff --git a/third_party/WebKit/Source/core/input/ScrollManager.cpp b/third_party/WebKit/Source/core/input/ScrollManager.cpp
index 290e87f..65357d8 100644
--- a/third_party/WebKit/Source/core/input/ScrollManager.cpp
+++ b/third_party/WebKit/Source/core/input/ScrollManager.cpp
@@ -149,10 +149,10 @@
 
 bool ScrollManager::CanScroll(const ScrollState& scroll_state,
                               const Element& current_element) {
-  const double delta_x = scroll_state.isBeginning() ? scroll_state.deltaXHint()
-                                                    : scroll_state.deltaX();
-  const double delta_y = scroll_state.isBeginning() ? scroll_state.deltaYHint()
-                                                    : scroll_state.deltaY();
+  double delta_x = scroll_state.isBeginning() ? scroll_state.deltaXHint()
+                                              : scroll_state.deltaX();
+  double delta_y = scroll_state.isBeginning() ? scroll_state.deltaYHint()
+                                              : scroll_state.deltaY();
   if (!delta_x && !delta_y)
     return true;
 
@@ -176,6 +176,11 @@
   if (!scrollable_area)
     return false;
 
+  if (!scrollable_area->UserInputScrollable(kHorizontalScrollbar))
+    delta_x = 0;
+  if (!scrollable_area->UserInputScrollable(kVerticalScrollbar))
+    delta_y = 0;
+
   ScrollOffset current_offset = scrollable_area->GetScrollOffset();
   ScrollOffset target_offset = current_offset + ScrollOffset(delta_x, delta_y);
   ScrollOffset clamped_offset =
diff --git a/third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp b/third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp
index 91af0d1..f51d5ce2 100644
--- a/third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp
+++ b/third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp
@@ -112,7 +112,7 @@
 
   // TODO(flackr): When we correctly clip the scrolling contents layer we can
   // paint locally equivalent backgrounds into it. https://crbug.com/645957
-  if (!Style()->HasAutoClip())
+  if (HasClip())
     return kBackgroundPaintInGraphicsLayer;
 
   // TODO(flackr): Remove this when box shadows are still painted correctly when
diff --git a/third_party/WebKit/Source/core/layout/LayoutBoxModelObjectTest.cpp b/third_party/WebKit/Source/core/layout/LayoutBoxModelObjectTest.cpp
index ac57800..21bcc09 100644
--- a/third_party/WebKit/Source/core/layout/LayoutBoxModelObjectTest.cpp
+++ b/third_party/WebKit/Source/core/layout/LayoutBoxModelObjectTest.cpp
@@ -1088,4 +1088,32 @@
   EXPECT_FALSE(target_layer->NeedsRepaint());
 }
 
+TEST_F(LayoutBoxModelObjectTest, UpdateStackingContextForOption) {
+  // We do not create LayoutObject for option elements inside multiple selects
+  // on platforms where DelegatesMenuListRendering() returns true like Android.
+  if (LayoutTheme::GetTheme().DelegatesMenuListRendering())
+    return;
+
+  SetBodyInnerHTML(R"HTML(
+    <style>
+      @keyframes op {
+        0% { opacity: 0 }
+        100% { opacity: 1 }
+      }
+      option {
+        animation: op 0.001s;
+      }
+    </style>
+    <select multiple size=1>
+      <option id=opt>PASS</option>
+    </select>
+  )HTML");
+
+  auto* option_element = GetDocument().getElementById("opt");
+  auto* option_layout = option_element->GetLayoutObject();
+  ASSERT_TRUE(option_layout);
+  EXPECT_TRUE(option_layout->StyleRef().IsStackingContext());
+  EXPECT_TRUE(option_layout->StyleRef().HasCurrentOpacityAnimation());
+}
+
 }  // namespace blink
diff --git a/third_party/WebKit/Source/core/layout/LayoutInline.cpp b/third_party/WebKit/Source/core/layout/LayoutInline.cpp
index c184cb8..68bca907 100644
--- a/third_party/WebKit/Source/core/layout/LayoutInline.cpp
+++ b/third_party/WebKit/Source/core/layout/LayoutInline.cpp
@@ -963,6 +963,11 @@
 
 PositionWithAffinity LayoutInline::PositionForPoint(
     const LayoutPoint& point) const {
+  if (const LayoutBlockFlow* ng_block_flow = EnclosingNGBlockFlow())
+    return ng_block_flow->PositionForPoint(point);
+
+  DCHECK(CanUseInlineBox(*this));
+
   // FIXME: Does not deal with relative positioned inlines (should it?)
 
   // If there are continuations, test them first because our containing block
diff --git a/third_party/WebKit/Source/core/layout/LayoutObject.cpp b/third_party/WebKit/Source/core/layout/LayoutObject.cpp
index dc8254d..2ea48e1 100644
--- a/third_party/WebKit/Source/core/layout/LayoutObject.cpp
+++ b/third_party/WebKit/Source/core/layout/LayoutObject.cpp
@@ -2201,7 +2201,7 @@
 
   if (old_style.HasPseudoStyle(kPseudoIdSelection) ||
       StyleRef().HasPseudoStyle(kPseudoIdSelection))
-    InvalidatePaintForSelection();
+    InvalidateSelectionOfSelectedChildren();
 }
 
 void LayoutObject::ApplyFirstLineChanges(const ComputedStyle& old_style) {
@@ -3837,7 +3837,7 @@
   return rect;
 }
 
-void LayoutObject::InvalidatePaintForSelection() {
+void LayoutObject::InvalidateSelectionOfSelectedChildren() {
   // setSelectionState() propagates the state up the containing block chain to
   // tell if a block contains selected nodes or not. If this layout object is
   // not a block, we need to get the selection state from the containing block
diff --git a/third_party/WebKit/Source/core/layout/LayoutObject.h b/third_party/WebKit/Source/core/layout/LayoutObject.h
index d48c449..9977993 100644
--- a/third_party/WebKit/Source/core/layout/LayoutObject.h
+++ b/third_party/WebKit/Source/core/layout/LayoutObject.h
@@ -852,6 +852,8 @@
 
   bool IsSelectionBorder() const;
 
+  // CSS clip only applies when position is absolute or fixed. Prefer this check
+  // over !Style()->HasAutoClip().
   bool HasClip() const {
     return IsOutOfFlowPositioned() && !Style()->HasAutoClip();
   }
@@ -1755,6 +1757,9 @@
 
   void InvalidateClipPathCache();
 
+  // Call |SetShouldInvalidateSelection| on all selected children.
+  void InvalidateSelectionOfSelectedChildren();
+
   // Painters can use const methods only, except for these explicitly declared
   // methods.
   class CORE_EXPORT MutableForPainting {
@@ -2194,7 +2199,6 @@
   // LayoutView to return the owning LayoutObject in the containing frame.
   inline LayoutObject* ParentCrossingFrames() const;
 
-  void InvalidatePaintForSelection();
   void ApplyPseudoStyleChanges(const ComputedStyle& old_style);
   void ApplyFirstLineChanges(const ComputedStyle& old_style);
 
diff --git a/third_party/WebKit/Source/core/layout/LayoutText.cpp b/third_party/WebKit/Source/core/layout/LayoutText.cpp
index 9d63dec7..08827bf 100644
--- a/third_party/WebKit/Source/core/layout/LayoutText.cpp
+++ b/third_party/WebKit/Source/core/layout/LayoutText.cpp
@@ -674,6 +674,10 @@
 
 PositionWithAffinity LayoutText::PositionForPoint(
     const LayoutPoint& point) const {
+  if (const LayoutBlockFlow* ng_block_flow = EnclosingNGBlockFlow())
+    return ng_block_flow->PositionForPoint(point);
+
+  DCHECK(CanUseInlineBox(*this));
   if (!FirstTextBox() || TextLength() == 0)
     return CreatePositionWithAffinity(0);
 
diff --git a/third_party/WebKit/Source/core/layout/LayoutTextCombine.cpp b/third_party/WebKit/Source/core/layout/LayoutTextCombine.cpp
index 7ff81320..4b5fb33 100644
--- a/third_party/WebKit/Source/core/layout/LayoutTextCombine.cpp
+++ b/third_party/WebKit/Source/core/layout/LayoutTextCombine.cpp
@@ -85,6 +85,10 @@
   DCHECK_EQ(needs_font_update_, false);
   DCHECK(is_combined_);
 
+  // No transform needed if we don't have a font.
+  if (!StyleRef().GetFont().PrimaryFont())
+    return;
+
   // On input, the |boxRect| is:
   // 1. Horizontal flow, rotated from the main vertical flow coordinate using
   //    TextPainter::rotation().
diff --git a/third_party/WebKit/Source/core/layout/LayoutTextControl.cpp b/third_party/WebKit/Source/core/layout/LayoutTextControl.cpp
index 17654db8..225dadf 100644
--- a/third_party/WebKit/Source/core/layout/LayoutTextControl.cpp
+++ b/third_party/WebKit/Source/core/layout/LayoutTextControl.cpp
@@ -62,6 +62,15 @@
     inner_editor->SetNeedsStyleRecalc(
         kSubtreeStyleChange,
         StyleChangeReasonForTracing::Create(StyleChangeReason::kControl));
+
+    // The inner editor element uses the LayoutTextControl's ::selection style
+    // (see: GetUncachedSelectionStyle in SelectionPaintingUtils.cpp) so ensure
+    // the inner editor selection is invalidated anytime style changes and a
+    // ::selection style is or was present on LayoutTextControl.
+    if (StyleRef().HasPseudoStyle(kPseudoIdSelection) ||
+        (old_style && old_style->HasPseudoStyle(kPseudoIdSelection))) {
+      inner_editor_layout_object->InvalidateSelectionOfSelectedChildren();
+    }
   }
   GetTextControlElement()->UpdatePlaceholderVisibility();
 }
diff --git a/third_party/WebKit/Source/core/layout/LayoutTextControlTest.cpp b/third_party/WebKit/Source/core/layout/LayoutTextControlTest.cpp
new file mode 100644
index 0000000..c1fc526
--- /dev/null
+++ b/third_party/WebKit/Source/core/layout/LayoutTextControlTest.cpp
@@ -0,0 +1,106 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "core/layout/LayoutTextControl.h"
+
+#include "build/build_config.h"
+#include "core/html/forms/HTMLInputElement.h"
+#include "core/layout/LayoutTestHelper.h"
+
+namespace blink {
+
+namespace {
+
+class LayoutTextControlTest : public RenderingTest {
+ protected:
+  HTMLInputElement* GetHTMLInputElementById(const char* id) {
+    return ToHTMLInputElement(GetDocument().getElementById(id));
+  }
+  // Return the LayoutText from inside an HTMLInputElement's user agent shadow
+  // tree.
+  LayoutText* GetInnerLayoutText(HTMLInputElement* input) {
+    return ToLayoutText(
+        input->InnerEditorElement()->GetLayoutObject()->SlowFirstChild());
+  }
+};
+
+TEST_F(LayoutTextControlTest,
+       ChangingPseudoSelectionStyleShouldInvalidateSelection) {
+  SetBodyInnerHTML(R"HTML(
+    <style>
+      input::selection { background-color: blue; }
+      .pseudoSelection::selection { background-color: green; }
+    </style>
+    <input id="input" type="text" value="AAAAAAAAAAAA">
+  )HTML");
+
+  auto* inputElement = GetHTMLInputElementById("input");
+  inputElement->focus();
+  inputElement->SetSelectionRange(1, 3);
+  GetDocument().View()->UpdateAllLifecyclePhases();
+
+  auto* selectedText = GetInnerLayoutText(inputElement);
+  EXPECT_FALSE(selectedText->ShouldInvalidateSelection());
+
+  inputElement->setAttribute(HTMLNames::classAttr, "pseudoSelection");
+  GetDocument().View()->UpdateLifecycleToLayoutClean();
+  EXPECT_TRUE(selectedText->ShouldInvalidateSelection());
+
+  GetDocument().View()->UpdateAllLifecyclePhases();
+  EXPECT_FALSE(selectedText->ShouldInvalidateSelection());
+}
+
+TEST_F(LayoutTextControlTest,
+       AddingPseudoSelectionStyleShouldInvalidateSelection) {
+  SetBodyInnerHTML(R"HTML(
+    <style>
+      .pseudoSelection::selection { background-color: green; }
+    </style>
+    <input id="input" type="text" value="AAAAAAAAAAAA">
+  )HTML");
+
+  auto* inputElement = GetHTMLInputElementById("input");
+  inputElement->focus();
+  inputElement->SetSelectionRange(1, 3);
+  GetDocument().View()->UpdateAllLifecyclePhases();
+
+  auto* selectedText = GetInnerLayoutText(inputElement);
+  EXPECT_FALSE(selectedText->ShouldInvalidateSelection());
+
+  inputElement->setAttribute(HTMLNames::classAttr, "pseudoSelection");
+  GetDocument().View()->UpdateLifecycleToLayoutClean();
+  EXPECT_TRUE(selectedText->ShouldInvalidateSelection());
+
+  GetDocument().View()->UpdateAllLifecyclePhases();
+  EXPECT_FALSE(selectedText->ShouldInvalidateSelection());
+}
+
+TEST_F(LayoutTextControlTest,
+       RemovingPseudoSelectionStyleShouldInvalidateSelection) {
+  SetBodyInnerHTML(R"HTML(
+    <style>
+      .pseudoSelection::selection { background-color: green; }
+    </style>
+    <input id="input" type="text" class="pseudoSelection" value="AAAAAAAAAAAA">
+  )HTML");
+
+  auto* inputElement = GetHTMLInputElementById("input");
+  inputElement->focus();
+  inputElement->SetSelectionRange(1, 3);
+  GetDocument().View()->UpdateAllLifecyclePhases();
+
+  auto* selectedText = GetInnerLayoutText(inputElement);
+  EXPECT_FALSE(selectedText->ShouldInvalidateSelection());
+
+  inputElement->removeAttribute(HTMLNames::classAttr);
+  GetDocument().View()->UpdateLifecycleToLayoutClean();
+  EXPECT_TRUE(selectedText->ShouldInvalidateSelection());
+
+  GetDocument().View()->UpdateAllLifecyclePhases();
+  EXPECT_FALSE(selectedText->ShouldInvalidateSelection());
+}
+
+}  // anonymous namespace
+
+}  // namespace blink
diff --git a/third_party/WebKit/Source/core/layout/ng/inline/ng_physical_line_box_fragment.cc b/third_party/WebKit/Source/core/layout/ng/inline/ng_physical_line_box_fragment.cc
index 416e05fb..2c889ae 100644
--- a/third_party/WebKit/Source/core/layout/ng/inline/ng_physical_line_box_fragment.cc
+++ b/third_party/WebKit/Source/core/layout/ng/inline/ng_physical_line_box_fragment.cc
@@ -91,4 +91,9 @@
   return previous_line->HasSoftWrapToNextLine();
 }
 
+PositionWithAffinity NGPhysicalLineBoxFragment::PositionForPoint(
+    const NGPhysicalOffset& point) const {
+  return PositionForPointInInlineLevelBox(point);
+}
+
 }  // namespace blink
diff --git a/third_party/WebKit/Source/core/layout/ng/inline/ng_physical_line_box_fragment.h b/third_party/WebKit/Source/core/layout/ng/inline/ng_physical_line_box_fragment.h
index 08b7d376..182b95d 100644
--- a/third_party/WebKit/Source/core/layout/ng/inline/ng_physical_line_box_fragment.h
+++ b/third_party/WebKit/Source/core/layout/ng/inline/ng_physical_line_box_fragment.h
@@ -43,6 +43,8 @@
   // TODO(xiaochengh): Try to avoid passing the previous line.
   bool HasSoftWrapFromPreviousLine(const NGPhysicalLineBoxFragment*) const;
 
+  PositionWithAffinity PositionForPoint(const NGPhysicalOffset&) const final;
+
   scoped_refptr<NGPhysicalFragment> CloneWithoutOffset() const {
     Vector<scoped_refptr<NGPhysicalFragment>> children_copy(children_);
     return base::AdoptRef(new NGPhysicalLineBoxFragment(
diff --git a/third_party/WebKit/Source/core/layout/ng/inline/ng_physical_text_fragment.cc b/third_party/WebKit/Source/core/layout/ng/inline/ng_physical_text_fragment.cc
index 1fa7009..85a5ebb 100644
--- a/third_party/WebKit/Source/core/layout/ng/inline/ng_physical_text_fragment.cc
+++ b/third_party/WebKit/Source/core/layout/ng/inline/ng_physical_text_fragment.cc
@@ -5,9 +5,11 @@
 #include "core/layout/ng/inline/ng_physical_text_fragment.h"
 
 #include "core/dom/Node.h"
+#include "core/editing/PositionWithAffinity.h"
 #include "core/layout/LayoutTextFragment.h"
 #include "core/layout/ng/geometry/ng_physical_offset_rect.h"
 #include "core/layout/ng/inline/ng_line_height_metrics.h"
+#include "core/layout/ng/inline/ng_offset_mapping.h"
 #include "core/style/ComputedStyle.h"
 
 namespace blink {
@@ -87,4 +89,28 @@
   return !node || node->IsPseudoElement();
 }
 
+unsigned NGPhysicalTextFragment::TextOffsetForPoint(
+    const NGPhysicalOffset& point) const {
+  if (IsLineBreak())
+    return StartOffset();
+  DCHECK(TextShapeResult());
+  const LayoutUnit& point_in_line_direction =
+      Style().IsHorizontalWritingMode() ? point.left : point.top;
+  const bool include_partial_glyphs = true;
+  return TextShapeResult()->OffsetForPosition(point_in_line_direction.ToFloat(),
+                                              include_partial_glyphs) +
+         StartOffset();
+}
+
+PositionWithAffinity NGPhysicalTextFragment::PositionForPoint(
+    const NGPhysicalOffset& point) const {
+  if (IsAnonymousText())
+    return PositionWithAffinity();
+  const unsigned text_offset = TextOffsetForPoint(point);
+  const Position position =
+      NGOffsetMapping::GetFor(GetLayoutObject())->GetFirstPosition(text_offset);
+  // TODO(xiaochengh): Adjust TextAffinity.
+  return PositionWithAffinity(position, TextAffinity::kDownstream);
+}
+
 }  // namespace blink
diff --git a/third_party/WebKit/Source/core/layout/ng/inline/ng_physical_text_fragment.h b/third_party/WebKit/Source/core/layout/ng/inline/ng_physical_text_fragment.h
index 094648f..65995127 100644
--- a/third_party/WebKit/Source/core/layout/ng/inline/ng_physical_text_fragment.h
+++ b/third_party/WebKit/Source/core/layout/ng/inline/ng_physical_text_fragment.h
@@ -116,6 +116,11 @@
   // pseudo-element, ...) instead of from a DOM text node.
   bool IsAnonymousText() const;
 
+  // Returns the text offset in the fragment placed closest to the given point.
+  unsigned TextOffsetForPoint(const NGPhysicalOffset&) const;
+
+  PositionWithAffinity PositionForPoint(const NGPhysicalOffset&) const override;
+
  private:
   // The text of NGInlineNode; i.e., of a parent block. The text for this
   // fragment is a substring(start_offset_, end_offset_) of this string.
diff --git a/third_party/WebKit/Source/core/layout/ng/layout_ng_mixin.cc b/third_party/WebKit/Source/core/layout/ng/layout_ng_mixin.cc
index c7f08fa..9a8b8c2c 100644
--- a/third_party/WebKit/Source/core/layout/ng/layout_ng_mixin.cc
+++ b/third_party/WebKit/Source/core/layout/ng/layout_ng_mixin.cc
@@ -7,6 +7,7 @@
 #include <memory>
 #include <utility>
 
+#include "core/editing/PositionWithAffinity.h"
 #include "core/layout/HitTestLocation.h"
 #include "core/layout/ng/inline/ng_inline_node_data.h"
 #include "core/layout/ng/ng_constraint_space.h"
@@ -209,6 +210,29 @@
                                                accumulated_offset, action);
 }
 
+template <typename Base>
+PositionWithAffinity LayoutNGMixin<Base>::PositionForPoint(
+    const LayoutPoint& point) const {
+  if (Base::IsAtomicInlineLevel()) {
+    const PositionWithAffinity atomic_inline_position =
+        Base::PositionForPointIfOutsideAtomicInlineLevel(point);
+    if (atomic_inline_position.IsNotNull())
+      return atomic_inline_position;
+  }
+
+  if (!Base::ChildrenInline())
+    return LayoutBlock::PositionForPoint(point);
+
+  if (!CurrentFragment())
+    return Base::CreatePositionWithAffinity(0);
+
+  const PositionWithAffinity ng_position =
+      CurrentFragment()->PositionForPoint(NGPhysicalOffset(point));
+  if (ng_position.IsNotNull())
+    return ng_position;
+  return Base::CreatePositionWithAffinity(0);
+}
+
 template class LayoutNGMixin<LayoutTableCell>;
 template class LayoutNGMixin<LayoutBlockFlow>;
 
diff --git a/third_party/WebKit/Source/core/layout/ng/layout_ng_mixin.h b/third_party/WebKit/Source/core/layout/ng/layout_ng_mixin.h
index e4a530e..3580951 100644
--- a/third_party/WebKit/Source/core/layout/ng/layout_ng_mixin.h
+++ b/third_party/WebKit/Source/core/layout/ng/layout_ng_mixin.h
@@ -47,6 +47,8 @@
                    const LayoutPoint& accumulated_offset,
                    HitTestAction) override;
 
+  PositionWithAffinity PositionForPoint(const LayoutPoint&) const override;
+
   // Returns the last layout result for this block flow with the given
   // constraint space and break token, or null if it is not up-to-date or
   // otherwise unavailable.
diff --git a/third_party/WebKit/Source/core/layout/ng/ng_physical_box_fragment.cc b/third_party/WebKit/Source/core/layout/ng/ng_physical_box_fragment.cc
index 26ac797e..cabdd6a 100644
--- a/third_party/WebKit/Source/core/layout/ng/ng_physical_box_fragment.cc
+++ b/third_party/WebKit/Source/core/layout/ng/ng_physical_box_fragment.cc
@@ -4,6 +4,8 @@
 
 #include "core/layout/ng/ng_physical_box_fragment.h"
 
+#include "core/editing/PositionWithAffinity.h"
+#include "core/layout/LayoutBlock.h"
 #include "core/layout/LayoutBox.h"
 #include "core/layout/LayoutObject.h"
 
@@ -127,6 +129,14 @@
   return visual_rect;
 }
 
+PositionWithAffinity NGPhysicalBoxFragment::PositionForPoint(
+    const NGPhysicalOffset& point) const {
+  if (!IsBlockFlow())
+    return PositionForPointInInlineLevelBox(point);
+
+  return PositionForPointInInlineFormattingContext(point);
+}
+
 scoped_refptr<NGPhysicalFragment> NGPhysicalBoxFragment::CloneWithoutOffset()
     const {
   Vector<scoped_refptr<NGPhysicalFragment>> children_copy(children_);
diff --git a/third_party/WebKit/Source/core/layout/ng/ng_physical_box_fragment.h b/third_party/WebKit/Source/core/layout/ng/ng_physical_box_fragment.h
index 6f718b5..4f5db5f 100644
--- a/third_party/WebKit/Source/core/layout/ng/ng_physical_box_fragment.h
+++ b/third_party/WebKit/Source/core/layout/ng/ng_physical_box_fragment.h
@@ -50,6 +50,8 @@
   void AddSelfOutlineRects(Vector<LayoutRect>*,
                            const LayoutPoint& additional_offset) const;
 
+  PositionWithAffinity PositionForPoint(const NGPhysicalOffset&) const override;
+
   scoped_refptr<NGPhysicalFragment> CloneWithoutOffset() const;
 
  private:
diff --git a/third_party/WebKit/Source/core/layout/ng/ng_physical_container_fragment.cc b/third_party/WebKit/Source/core/layout/ng/ng_physical_container_fragment.cc
index 8fa5b2b..ecba3c9f 100644
--- a/third_party/WebKit/Source/core/layout/ng/ng_physical_container_fragment.cc
+++ b/third_party/WebKit/Source/core/layout/ng/ng_physical_container_fragment.cc
@@ -4,8 +4,54 @@
 
 #include "core/layout/ng/ng_physical_container_fragment.h"
 
+#include "core/editing/PositionWithAffinity.h"
+#include "core/layout/LayoutObject.h"
+#include "core/layout/ng/geometry/ng_logical_offset.h"
+#include "core/layout/ng/geometry/ng_logical_size.h"
+#include "core/layout/ng/inline/ng_physical_line_box_fragment.h"
+#include "core/layout/ng/ng_fragment.h"
+#include "core/layout/ng/ng_physical_box_fragment.h"
+#include "core/style/ComputedStyle.h"
+
 namespace blink {
 
+namespace {
+
+NGLogicalOffset ChildLogicalOffsetInParent(
+    const NGPhysicalContainerFragment& parent,
+    const NGPhysicalFragment& child) {
+  return child.Offset().ConvertToLogical(parent.Style().GetWritingMode(),
+                                         parent.Style().Direction(),
+                                         parent.Size(), child.Size());
+}
+
+NGLogicalSize ChildLogicalSizeInParent(
+    const NGPhysicalContainerFragment& parent,
+    const NGPhysicalFragment& child) {
+  return NGFragment(parent.Style().GetWritingMode(), child).Size();
+}
+
+Optional<PositionWithAffinity> PositionForPointInChild(
+    const NGPhysicalFragment& child,
+    const NGPhysicalOffset& point) {
+  const NGPhysicalOffset& child_point = point - child.Offset();
+  // We must fallback to legacy for old layout roots. We also fallback (to
+  // LayoutNGMixin::PositionForPoint()) for NG block layout, so that we can
+  // utilize LayoutBlock::PositionForPoint() that resolves the position in block
+  // layout.
+  // TODO(xiaochengh): Don't fallback to legacy for NG block layout.
+  const PositionWithAffinity result =
+      (child.IsBlockFlow() || child.IsOldLayoutRoot())
+          ? child.GetLayoutObject()->PositionForPoint(
+                child_point.ToLayoutPoint())
+          : child.PositionForPoint(child_point);
+  if (result.IsNotNull())
+    return result;
+  return WTF::nullopt;
+}
+
+}  // namespace
+
 NGPhysicalContainerFragment::NGPhysicalContainerFragment(
     LayoutObject* layout_object,
     const ComputedStyle& style,
@@ -24,4 +70,154 @@
   DCHECK(children.IsEmpty());  // Ensure move semantics is used.
 }
 
+PositionWithAffinity
+NGPhysicalContainerFragment::PositionForPointInInlineLevelBox(
+    const NGPhysicalOffset& point) const {
+  DCHECK(IsInline() || IsLineBox()) << ToString();
+  DCHECK(!IsBlockFlow()) << ToString();
+
+  const NGLogicalOffset logical_point = point.ConvertToLogical(
+      Style().GetWritingMode(), Style().Direction(), Size(), NGPhysicalSize());
+  const LayoutUnit inline_point = logical_point.inline_offset;
+
+  // Stores the closest child before |point| in the inline direction. Used if we
+  // can't find any child |point| falls in to resolve the position.
+  const NGPhysicalFragment* closest_child_before = nullptr;
+  LayoutUnit closest_child_before_inline_offset = LayoutUnit::Min();
+
+  // Stores the closest child after |point| in the inline direction. Used if we
+  // can't find any child |point| falls in to resolve the position.
+  const NGPhysicalFragment* closest_child_after = nullptr;
+  LayoutUnit closest_child_after_inline_offset = LayoutUnit::Max();
+
+  for (const auto& child : children_) {
+    const LayoutUnit child_inline_min =
+        ChildLogicalOffsetInParent(*this, *child).inline_offset;
+    const LayoutUnit child_inline_max =
+        child_inline_min + ChildLogicalSizeInParent(*this, *child).inline_size;
+
+    // Try to resolve if |point| falls in any child in inline direction.
+    if (inline_point >= child_inline_min && inline_point <= child_inline_max) {
+      if (auto child_position = PositionForPointInChild(*child, point))
+        return child_position.value();
+      continue;
+    }
+
+    if (inline_point < child_inline_min) {
+      if (child_inline_min < closest_child_after_inline_offset) {
+        closest_child_after = child.get();
+        closest_child_after_inline_offset = child_inline_min;
+      }
+    }
+
+    if (inline_point > child_inline_max) {
+      if (child_inline_max > closest_child_before_inline_offset) {
+        closest_child_before = child.get();
+        closest_child_before_inline_offset = child_inline_max;
+      }
+    }
+  }
+
+  if (closest_child_after) {
+    if (auto child_position =
+            PositionForPointInChild(*closest_child_after, point))
+      return child_position.value();
+  }
+
+  if (closest_child_before) {
+    if (auto child_position =
+            PositionForPointInChild(*closest_child_before, point))
+      return child_position.value();
+  }
+
+  return PositionWithAffinity();
+}
+
+PositionWithAffinity
+NGPhysicalContainerFragment::PositionForPointInInlineFormattingContext(
+    const NGPhysicalOffset& point) const {
+  DCHECK(IsBlockFlow()) << ToString();
+  DCHECK(IsBox()) << ToString();
+  DCHECK(ToNGPhysicalBoxFragment(this)->ChildrenInline()) << ToString();
+
+  const NGLogicalOffset logical_point = point.ConvertToLogical(
+      Style().GetWritingMode(), Style().Direction(), Size(), NGPhysicalSize());
+  const LayoutUnit block_point = logical_point.block_offset;
+
+  // Stores the closest line box child above |point| in the block direction.
+  // Used if we can't find any child |point| falls in to resolve the position.
+  const NGPhysicalLineBoxFragment* closest_line_before = nullptr;
+  LayoutUnit closest_line_before_block_offset = LayoutUnit::Min();
+
+  // Stores the closest line box child below |point| in the block direction.
+  // Used if we can't find any child |point| falls in to resolve the position.
+  const NGPhysicalLineBoxFragment* closest_line_after = nullptr;
+  LayoutUnit closest_line_after_block_offset = LayoutUnit::Max();
+
+  for (const auto& child : children_) {
+    // Try to resolve if |point| falls in a non-line-box child completely.
+    if (!child->IsLineBox()) {
+      if (point.left >= child->Offset().left &&
+          point.left <= child->Offset().left + child->Size().width &&
+          point.top >= child->Offset().top &&
+          point.top <= child->Offset().top + child->Size().height) {
+        if (auto child_position = PositionForPointInChild(*child, point))
+          return child_position.value();
+      }
+      continue;
+    }
+
+    if (!child->IsLineBox() ||
+        ToNGPhysicalLineBoxFragment(*child).Children().IsEmpty())
+      continue;
+
+    const LayoutUnit line_min =
+        ChildLogicalOffsetInParent(*this, *child).block_offset;
+    const LayoutUnit line_max =
+        line_min + ChildLogicalSizeInParent(*this, *child).block_size;
+
+    // Try to resolve if |point| falls in a line box in block direction.
+    // Hitting on line bottom doesn't count, to match legacy behavior.
+    // TODO(xiaochengh): Consider floats.
+    if (block_point >= line_min && block_point < line_max) {
+      if (auto child_position = PositionForPointInChild(*child, point))
+        return child_position.value();
+      continue;
+    }
+
+    if (block_point < line_min) {
+      if (line_min < closest_line_after_block_offset) {
+        closest_line_after = ToNGPhysicalLineBoxFragment(child.get());
+        closest_line_after_block_offset = line_min;
+      }
+    }
+
+    if (block_point >= line_max) {
+      if (line_max > closest_line_before_block_offset) {
+        closest_line_before = ToNGPhysicalLineBoxFragment(child.get());
+        closest_line_before_block_offset = line_max;
+      }
+    }
+  }
+
+  if (closest_line_after) {
+    if (auto child_position =
+            PositionForPointInChild(*closest_line_after, point))
+      return child_position.value();
+  }
+
+  if (closest_line_before) {
+    if (auto child_position =
+            PositionForPointInChild(*closest_line_before, point))
+      return child_position.value();
+  }
+
+  // TODO(xiaochengh): Looking at only the closest lines may not be enough,
+  // when we have multiple lines full of pseudo elements. Fix it.
+
+  // TODO(xiaochengh): Consider floats.
+
+  return PositionWithAffinity();
+}
+
 }  // namespace blink
diff --git a/third_party/WebKit/Source/core/layout/ng/ng_physical_container_fragment.h b/third_party/WebKit/Source/core/layout/ng/ng_physical_container_fragment.h
index 03fef7b..971248c 100644
--- a/third_party/WebKit/Source/core/layout/ng/ng_physical_container_fragment.h
+++ b/third_party/WebKit/Source/core/layout/ng/ng_physical_container_fragment.h
@@ -34,6 +34,11 @@
       const NGPhysicalOffsetRect& contents_visual_rect,
       scoped_refptr<NGBreakToken> = nullptr);
 
+  PositionWithAffinity PositionForPointInInlineLevelBox(
+      const NGPhysicalOffset&) const;
+  PositionWithAffinity PositionForPointInInlineFormattingContext(
+      const NGPhysicalOffset&) const;
+
   Vector<scoped_refptr<NGPhysicalFragment>> children_;
   NGPhysicalOffsetRect contents_visual_rect_;
 };
diff --git a/third_party/WebKit/Source/core/layout/ng/ng_physical_fragment.h b/third_party/WebKit/Source/core/layout/ng/ng_physical_fragment.h
index 74f708ad..43cc7f5 100644
--- a/third_party/WebKit/Source/core/layout/ng/ng_physical_fragment.h
+++ b/third_party/WebKit/Source/core/layout/ng/ng_physical_fragment.h
@@ -7,6 +7,7 @@
 
 #include "base/memory/scoped_refptr.h"
 #include "core/CoreExport.h"
+#include "core/editing/Forward.h"
 #include "core/layout/ng/geometry/ng_physical_offset.h"
 #include "core/layout/ng/geometry/ng_physical_size.h"
 #include "core/layout/ng/ng_break_token.h"
@@ -159,6 +160,9 @@
 
   bool IsPlaced() const { return is_placed_; }
 
+  virtual PositionWithAffinity PositionForPoint(
+      const NGPhysicalOffset&) const = 0;
+
   scoped_refptr<NGPhysicalFragment> CloneWithoutOffset() const;
 
   String ToString() const;
diff --git a/third_party/WebKit/Source/core/loader/BaseFetchContext.h b/third_party/WebKit/Source/core/loader/BaseFetchContext.h
index ce88843..66addb8 100644
--- a/third_party/WebKit/Source/core/loader/BaseFetchContext.h
+++ b/third_party/WebKit/Source/core/loader/BaseFetchContext.h
@@ -5,7 +5,6 @@
 #ifndef BaseFetchContext_h
 #define BaseFetchContext_h
 
-#include "common/net/ip_address_space.mojom-blink.h"
 #include "core/CoreExport.h"
 #include "core/frame/WebFeatureForward.h"
 #include "core/frame/csp/ContentSecurityPolicy.h"
@@ -14,6 +13,7 @@
 #include "platform/loader/fetch/ResourceRequest.h"
 #include "platform/weborigin/ReferrerPolicy.h"
 #include "platform/wtf/Optional.h"
+#include "public/mojom/net/ip_address_space.mojom-blink.h"
 #include "public/platform/WebURLRequest.h"
 
 namespace blink {
diff --git a/third_party/WebKit/Source/core/loader/FrameFetchContext.cpp b/third_party/WebKit/Source/core/loader/FrameFetchContext.cpp
index b877e75..127aa23 100644
--- a/third_party/WebKit/Source/core/loader/FrameFetchContext.cpp
+++ b/third_party/WebKit/Source/core/loader/FrameFetchContext.cpp
@@ -1154,6 +1154,16 @@
   if (IsDetached())
     return frozen_state_->requestor_origin;
 
+  // Should not be called during the document load, and |document_| should be
+  // always set beforehand for a subresource loading.
+  DCHECK(document_);
+
+  // If sandbox is enabled and allow-same-origin is not set in the attribute,
+  // |document|'s SecurityOrigin is set to the unique opaque origin, and
+  // FrameFetchContext::GetSecurityOrigin also respects the unique origin.
+  // But, we still need to set the unveiled document origin to the requestor
+  // origin. See also sandbox's spec;
+  // https://html.spec.whatwg.org/multipage/iframe-embed-object.html#attr-iframe-sandbox.
   if (document_->IsSandboxed(kSandboxOrigin))
     return SecurityOrigin::Create(document_->Url());
 
diff --git a/third_party/WebKit/Source/core/loader/FrameFetchContextTest.cpp b/third_party/WebKit/Source/core/loader/FrameFetchContextTest.cpp
index 235918b..a5b615a 100644
--- a/third_party/WebKit/Source/core/loader/FrameFetchContextTest.cpp
+++ b/third_party/WebKit/Source/core/loader/FrameFetchContextTest.cpp
@@ -31,7 +31,6 @@
 #include "core/loader/FrameFetchContext.h"
 
 #include <memory>
-#include "common/net/ip_address_space.mojom-blink.h"
 #include "core/dom/Document.h"
 #include "core/frame/FrameOwner.h"
 #include "core/frame/FrameTypes.h"
@@ -55,6 +54,7 @@
 #include "platform/testing/HistogramTester.h"
 #include "platform/weborigin/KURL.h"
 #include "platform/weborigin/SecurityViolationReportingPolicy.h"
+#include "public/mojom/net/ip_address_space.mojom-blink.h"
 #include "public/platform/WebClientHintsType.h"
 #include "public/platform/WebDocumentSubresourceFilter.h"
 #include "public/platform/WebInsecureRequestPolicy.h"
@@ -536,6 +536,16 @@
  public:
   FrameFetchContextHintsTest() = default;
 
+  void SetUp() override {
+    FrameFetchContextTest::SetUp();
+    // Set the document URL to a secure document.
+    document->SetURL(KURL("https://www.example.com/"));
+    document->SetSecurityOrigin(
+        SecurityOrigin::Create(KURL("https://www.example.com/")));
+    Settings* settings = document->GetSettings();
+    settings->SetScriptEnabled(true);
+  }
+
  protected:
   void ExpectHeader(const char* input,
                     const char* header_name,
@@ -573,6 +583,10 @@
   ExpectHeader("https://www.example.com/1.gif", "DPR", false, "");
   ExpectHeader("https://www.example.com/1.gif", "Width", false, "");
   ExpectHeader("https://www.example.com/1.gif", "Viewport-Width", false, "");
+  // The origin of the resource does not match the origin of the main frame
+  // resource. Client hints are still attached.
+  ExpectHeader("https://www.someother-example.com/1.gif", "Device-Memory", true,
+               "4");
 }
 
 // Verify that client hints are not attched when the resources do not belong to
diff --git a/third_party/WebKit/Source/core/loader/MixedContentChecker.cpp b/third_party/WebKit/Source/core/loader/MixedContentChecker.cpp
index 084c5eb70..9a72ed7 100644
--- a/third_party/WebKit/Source/core/loader/MixedContentChecker.cpp
+++ b/third_party/WebKit/Source/core/loader/MixedContentChecker.cpp
@@ -28,7 +28,6 @@
 
 #include "core/loader/MixedContentChecker.h"
 
-#include "common/net/ip_address_space.mojom-blink.h"
 #include "core/dom/Document.h"
 #include "core/frame/ContentSettingsClient.h"
 #include "core/frame/Frame.h"
@@ -46,6 +45,7 @@
 #include "platform/weborigin/SchemeRegistry.h"
 #include "platform/weborigin/SecurityOrigin.h"
 #include "platform/wtf/text/StringBuilder.h"
+#include "public/mojom/net/ip_address_space.mojom-blink.h"
 #include "public/platform/WebInsecureRequestPolicy.h"
 #include "public/platform/WebMixedContent.h"
 #include "public/platform/WebSecurityOrigin.h"
diff --git a/third_party/WebKit/Source/core/messaging/BlinkCloneableMessage.typemap b/third_party/WebKit/Source/core/messaging/BlinkCloneableMessage.typemap
index b77df9d..5f3d97a 100644
--- a/third_party/WebKit/Source/core/messaging/BlinkCloneableMessage.typemap
+++ b/third_party/WebKit/Source/core/messaging/BlinkCloneableMessage.typemap
@@ -2,7 +2,7 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
-mojom = "//third_party/WebKit/common/message_port/message_port.mojom"
+mojom = "//third_party/WebKit/public/mojom/message_port/message_port.mojom"
 public_headers =
     [ "//third_party/WebKit/Source/core/messaging/BlinkCloneableMessage.h" ]
 traits_headers = [ "//third_party/WebKit/Source/core/messaging/BlinkCloneableMessageStructTraits.h" ]
diff --git a/third_party/WebKit/Source/core/messaging/BlinkCloneableMessageStructTraits.h b/third_party/WebKit/Source/core/messaging/BlinkCloneableMessageStructTraits.h
index 685ac3143..26b29ef 100644
--- a/third_party/WebKit/Source/core/messaging/BlinkCloneableMessageStructTraits.h
+++ b/third_party/WebKit/Source/core/messaging/BlinkCloneableMessageStructTraits.h
@@ -11,7 +11,7 @@
 #include "mojo/public/cpp/bindings/array_traits_wtf_vector.h"
 #include "mojo/public/cpp/bindings/string_traits_wtf.h"
 #include "platform/blob/SerializedBlobStructTraits.h"
-#include "third_party/WebKit/common/message_port/message_port.mojom-blink.h"
+#include "third_party/WebKit/public/mojom/message_port/message_port.mojom-blink.h"
 
 namespace mojo {
 
diff --git a/third_party/WebKit/Source/core/messaging/BlinkTransferableMessage.typemap b/third_party/WebKit/Source/core/messaging/BlinkTransferableMessage.typemap
index 1e9b97d..a8b428ff 100644
--- a/third_party/WebKit/Source/core/messaging/BlinkTransferableMessage.typemap
+++ b/third_party/WebKit/Source/core/messaging/BlinkTransferableMessage.typemap
@@ -2,7 +2,7 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
-mojom = "//third_party/WebKit/common/message_port/message_port.mojom"
+mojom = "//third_party/WebKit/public/mojom/message_port/message_port.mojom"
 public_headers =
     [ "//third_party/WebKit/Source/core/messaging/BlinkTransferableMessage.h" ]
 traits_headers = [ "//third_party/WebKit/Source/core/messaging/BlinkTransferableMessageStructTraits.h" ]
diff --git a/third_party/WebKit/Source/core/messaging/BlinkTransferableMessageStructTraits.h b/third_party/WebKit/Source/core/messaging/BlinkTransferableMessageStructTraits.h
index 71ad44b1..5317fac8 100644
--- a/third_party/WebKit/Source/core/messaging/BlinkTransferableMessageStructTraits.h
+++ b/third_party/WebKit/Source/core/messaging/BlinkTransferableMessageStructTraits.h
@@ -11,8 +11,8 @@
 #include "core/messaging/BlinkTransferableMessage.h"
 #include "mojo/public/cpp/bindings/array_traits_wtf_vector.h"
 #include "skia/public/interfaces/bitmap_skbitmap_struct_traits.h"
-#include "third_party/WebKit/common/message_port/message_port.mojom-blink.h"
 #include "third_party/WebKit/public/common/message_port/message_port_channel.h"
+#include "third_party/WebKit/public/mojom/message_port/message_port.mojom-blink.h"
 
 namespace mojo {
 
diff --git a/third_party/WebKit/Source/core/messaging/BlinkTransferableMessageStructTraitsTest.cpp b/third_party/WebKit/Source/core/messaging/BlinkTransferableMessageStructTraitsTest.cpp
index 4930a42..77b5cf9 100644
--- a/third_party/WebKit/Source/core/messaging/BlinkTransferableMessageStructTraitsTest.cpp
+++ b/third_party/WebKit/Source/core/messaging/BlinkTransferableMessageStructTraitsTest.cpp
@@ -12,8 +12,8 @@
 #include "core/typed_arrays/DOMArrayBuffer.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "third_party/WebKit/Source/bindings/core/v8/V8BindingForTesting.h"
-#include "third_party/WebKit/common/message_port/message_port.mojom-blink.h"
 #include "third_party/WebKit/public/common/message_port/message_port_channel.h"
+#include "third_party/WebKit/public/mojom/message_port/message_port.mojom-blink.h"
 
 #include "bindings/core/v8/V8ImageBitmap.h"
 #include "bindings/core/v8/serialization/V8ScriptValueDeserializer.h"
diff --git a/third_party/WebKit/Source/core/page/PageVisibilityState.h b/third_party/WebKit/Source/core/page/PageVisibilityState.h
index 491b6d0..97f45ed 100644
--- a/third_party/WebKit/Source/core/page/PageVisibilityState.h
+++ b/third_party/WebKit/Source/core/page/PageVisibilityState.h
@@ -33,7 +33,7 @@
 
 #include "core/CoreExport.h"
 #include "platform/wtf/text/WTFString.h"
-#include "third_party/WebKit/common/page/page_visibility_state.mojom-blink.h"
+#include "third_party/WebKit/public/mojom/page/page_visibility_state.mojom-blink.h"
 
 namespace blink {
 
diff --git a/third_party/WebKit/Source/core/paint/PaintLayerScrollableAreaTest.cpp b/third_party/WebKit/Source/core/paint/PaintLayerScrollableAreaTest.cpp
index d4b2a78..ec34178 100644
--- a/third_party/WebKit/Source/core/paint/PaintLayerScrollableAreaTest.cpp
+++ b/third_party/WebKit/Source/core/paint/PaintLayerScrollableAreaTest.cpp
@@ -66,56 +66,93 @@
       true);
   SetBodyInnerHTML(R"HTML(
     <style>
-    .scroller { overflow: scroll; will-change: transform; width: 300px;
-    height: 300px;} .spacer { height: 1000px; }
-    #scroller13::-webkit-scrollbar { width: 13px; height: 13px;}
+      .scroller {
+        overflow: scroll;
+        will-change: transform;
+        width: 300px;
+        height: 300px;
+      }
+      .spacer { height: 1000px; }
+      #scroller13::-webkit-scrollbar {
+        width: 13px;
+        height: 13px;
+      }
     </style>
     <div id='scroller1' class='scroller' style='background: white local;'>
-        <div id='negative-composited-child' style='background-color: red;
-    width: 1px; height: 1px; position: absolute; backface-visibility:
-    hidden; z-index: -1'></div>
-        <div class='spacer'></div>
+      <div id='negative-composited-child' style='background-color: red;
+          width: 1px; height: 1px; position: absolute;
+          backface-visibility: hidden; z-index: -1'></div>
+      <div class='spacer'></div>
     </div>
-    <div id='scroller2' class='scroller' style='background: white
-    content-box; padding: 10px;'><div class='spacer'></div></div>
-    <div id='scroller3' class='scroller' style='background: white local
-    content-box; padding: 10px;'><div class='spacer'></div></div>
-    <div id='scroller4' class='scroller' style='background:
-    url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUg), white local;'><div
-    class='spacer'></div></div>
-    <div id='scroller5' class='scroller' style='background:
-    url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUg) local, white
-    local;'><div class='spacer'></div></div>
-    <div id='scroller6' class='scroller' style='background:
-    url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUg) local, white
-    padding-box; padding: 10px;'><div class='spacer'></div></div>
-    <div id='scroller7' class='scroller' style='background:
-    url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUg) local, white
-    content-box; padding: 10px;'><div class='spacer'></div></div>
-    <div id='scroller8' class='scroller' style='background: white
-    border-box;'><div class='spacer'></div></div>
-    <div id='scroller9' class='scroller' style='background: white
-    border-box; border: 10px solid black;'><div class='spacer'></div></div>
-    <div id='scroller10' class='scroller' style='background: white
-    border-box; border: 10px solid rgba(0, 0, 0, 0.5);'><div
-    class='spacer'></div></div>
-    <div id='scroller11' class='scroller' style='background: white
-    content-box;'><div class='spacer'></div></div>
-    <div id='scroller12' class='scroller' style='background: white
-    content-box; padding: 10px;'><div class='spacer'></div></div>
-    <div id='scroller13' class='scroller' style='background: white
-    border-box;'><div class='spacer'></div></div>
-    <div id='scroller14' class='scroller' style='background: white; border:
-    1px solid black; outline: 1px solid blue; outline-offset: -1px;'><div
-    class='spacer'></div></div>
-    <div id='scroller15' class='scroller' style='background: white; border:
-    1px solid black; outline: 1px solid blue; outline-offset: -2px;'><div
-    class='spacer'></div></div>
-    <div id='scroller16' class='scroller' style='background: white; clip:
-    rect(0px,10px,10px,0px);'><div class='spacer'></div></div>
-    <div id='scroller17' class='scroller' style='background:
-    rgba(255, 255, 255, 0.5) border-box; border: 5px solid
-    rgba(0, 0, 0, 0.5);'><div class='spacer'></div></div>
+    <div id='scroller2' class='scroller' style='background: white content-box;
+        padding: 10px;'>
+      <div class='spacer'></div>
+    </div>
+    <div id='scroller3' class='scroller'
+        style='background: white local content-box; padding: 10px;'>
+      <div class='spacer'></div>
+    </div>
+    <div id='scroller4' class='scroller'
+        style='background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUg),
+        white local;'>
+      <div class='spacer'></div>
+    </div>
+    <div id='scroller5' class='scroller'
+        style='background:
+        url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUg) local, white local;'>
+      <div class='spacer'></div>
+    </div>
+    <div id='scroller6' class='scroller'
+        style='background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUg)
+        local, white padding-box; padding: 10px;'>
+      <div class='spacer'></div>
+    </div>
+    <div id='scroller7' class='scroller'
+        style='background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUg)
+        local, white content-box; padding: 10px;'>
+      <div class='spacer'></div>
+    </div>
+    <div id='scroller8' class='scroller' style='background: white border-box;'>
+      <div class='spacer'></div>
+    </div>
+    <div id='scroller9' class='scroller' style='background: white border-box;
+        border: 10px solid black;'>
+      <div class='spacer'></div>
+    </div>
+    <div id='scroller10' class='scroller' style='background: white border-box;
+        border: 10px solid rgba(0, 0, 0, 0.5);'>
+      <div class='spacer'></div>
+    </div>
+    <div id='scroller11' class='scroller'
+        style='background: white content-box;'>
+      <div class='spacer'></div>
+    </div>
+    <div id='scroller12' class='scroller' style='background: white content-box;
+        padding: 10px;'>
+      <div class='spacer'></div>
+    </div>
+    <div id='scroller13' class='scroller' style='background: white border-box;'>
+      <div class='spacer'></div>
+    </div>
+    <div id='scroller14' class='scroller' style='background: white;
+        border: 1px solid black; outline: 1px solid blue;
+        outline-offset: -1px;'>
+      <div class='spacer'></div>
+    </div>
+    <div id='scroller15' class='scroller' style='background: white;
+        border: 1px solid black; outline: 1px solid blue;
+        outline-offset: -2px;'>
+      <div class='spacer'></div>
+    </div>
+    <div id='scroller16' class='scroller' style='position: absolute;
+        background: white; clip: rect(0px,10px,10px,0px);'>
+      <div class='spacer'></div>
+    </div>
+    <div id='scroller17' class='scroller'
+        style='background: rgba(255, 255, 255, 0.5) border-box;
+        border: 5px solid rgba(0, 0, 0, 0.5);'>
+      <div class='spacer'></div>
+    </div>
   )HTML");
 
   // #scroller1 cannot paint background into scrolling contents layer because it
diff --git a/third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp b/third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp
index 1f6da5ea..2109141 100644
--- a/third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp
+++ b/third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp
@@ -663,11 +663,6 @@
   const bool is_css_isolated_group =
       object.IsBoxModelObject() && style.IsStackingContext();
 
-  // TODO(chrishtr): this should not be necessary, since masks induce
-  // stacking contexts. See crbug.com/813348
-  if (style.HasMask())
-    return true;
-
   if (!is_css_isolated_group && !object.IsSVGChild())
     return false;
 
diff --git a/third_party/WebKit/Source/core/paint/PrePaintTreeWalk.h b/third_party/WebKit/Source/core/paint/PrePaintTreeWalk.h
index c917da0..f34a27b 100644
--- a/third_party/WebKit/Source/core/paint/PrePaintTreeWalk.h
+++ b/third_party/WebKit/Source/core/paint/PrePaintTreeWalk.h
@@ -39,8 +39,11 @@
         : paint_invalidator_context(parent_context_accessor),
           ancestor_overflow_paint_layer(
               parent_context.ancestor_overflow_paint_layer) {
-      if (needs_tree_builder_context || DCHECK_IS_ON())
+      if (needs_tree_builder_context || DCHECK_IS_ON()) {
+        // Speculative CHECK to debug crbug.com/816810.
+        CHECK(parent_context.tree_builder_context);
         tree_builder_context.emplace(*parent_context.tree_builder_context);
+      }
 #if DCHECK_IS_ON()
       if (needs_tree_builder_context)
         DCHECK(parent_context.tree_builder_context->is_actually_needed);
diff --git a/third_party/WebKit/Source/core/streams/UnderlyingSourceBase.cpp b/third_party/WebKit/Source/core/streams/UnderlyingSourceBase.cpp
index 66d732d..92a3f21e 100644
--- a/third_party/WebKit/Source/core/streams/UnderlyingSourceBase.cpp
+++ b/third_party/WebKit/Source/core/streams/UnderlyingSourceBase.cpp
@@ -43,6 +43,10 @@
   return ScriptPromise::CastUndefined(script_state);
 }
 
+ScriptValue UnderlyingSourceBase::type(ScriptState* script_state) const {
+  return ScriptValue(script_state, v8::Undefined(script_state->GetIsolate()));
+}
+
 void UnderlyingSourceBase::notifyLockAcquired() {
   is_stream_locked_ = true;
 }
diff --git a/third_party/WebKit/Source/core/streams/UnderlyingSourceBase.h b/third_party/WebKit/Source/core/streams/UnderlyingSourceBase.h
index 3f656b0..000a3e0 100644
--- a/third_party/WebKit/Source/core/streams/UnderlyingSourceBase.h
+++ b/third_party/WebKit/Source/core/streams/UnderlyingSourceBase.h
@@ -39,6 +39,8 @@
   ScriptPromise cancelWrapper(ScriptState*, ScriptValue reason);
   virtual ScriptPromise Cancel(ScriptState*, ScriptValue reason);
 
+  ScriptValue type(ScriptState*) const;
+
   void notifyLockAcquired();
   void notifyLockReleased();
 
diff --git a/third_party/WebKit/Source/core/streams/UnderlyingSourceBase.idl b/third_party/WebKit/Source/core/streams/UnderlyingSourceBase.idl
index cde3af1..8e61f0aa 100644
--- a/third_party/WebKit/Source/core/streams/UnderlyingSourceBase.idl
+++ b/third_party/WebKit/Source/core/streams/UnderlyingSourceBase.idl
@@ -16,6 +16,9 @@
     [CallWith=ScriptState] Promise<void> pull();
     [CallWith=ScriptState, ImplementedAs=cancelWrapper] Promise<void> cancel([Default=Undefined] optional any reason);
 
+    // This only exists to prevent Object.prototype.type being accessed.
+    [CallWith=ScriptState] readonly attribute any type;
+
     void notifyLockAcquired();
     void notifyLockReleased();
 };
diff --git a/third_party/WebKit/Source/core/svg/SVGCircleElement.cpp b/third_party/WebKit/Source/core/svg/SVGCircleElement.cpp
index 23b461f8..01b0f76 100644
--- a/third_party/WebKit/Source/core/svg/SVGCircleElement.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGCircleElement.cpp
@@ -20,7 +20,6 @@
 
 #include "core/svg/SVGCircleElement.h"
 
-#include "core/css/StyleChangeReason.h"
 #include "core/layout/svg/LayoutSVGEllipse.h"
 #include "core/svg/SVGLength.h"
 
@@ -96,12 +95,8 @@
 void SVGCircleElement::SvgAttributeChanged(const QualifiedName& attr_name) {
   if (attr_name == SVGNames::rAttr || attr_name == SVGNames::cxAttr ||
       attr_name == SVGNames::cyAttr) {
-    SVGElement::InvalidationGuard invalidation_guard(this);
-    InvalidateSVGPresentationAttributeStyle();
-    SetNeedsStyleRecalc(kLocalStyleChange,
-                        StyleChangeReasonForTracing::FromAttribute(attr_name));
     UpdateRelativeLengthsInformation();
-    GeometryAttributeChanged();
+    GeometryPresentationAttributeChanged(attr_name);
     return;
   }
 
diff --git a/third_party/WebKit/Source/core/svg/SVGEllipseElement.cpp b/third_party/WebKit/Source/core/svg/SVGEllipseElement.cpp
index ae81163..ec8cd96c 100644
--- a/third_party/WebKit/Source/core/svg/SVGEllipseElement.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGEllipseElement.cpp
@@ -20,7 +20,6 @@
 
 #include "core/svg/SVGEllipseElement.h"
 
-#include "core/css/StyleChangeReason.h"
 #include "core/layout/svg/LayoutSVGEllipse.h"
 #include "core/svg/SVGLength.h"
 
@@ -106,12 +105,8 @@
 void SVGEllipseElement::SvgAttributeChanged(const QualifiedName& attr_name) {
   if (attr_name == SVGNames::cxAttr || attr_name == SVGNames::cyAttr ||
       attr_name == SVGNames::rxAttr || attr_name == SVGNames::ryAttr) {
-    SVGElement::InvalidationGuard invalidation_guard(this);
-    InvalidateSVGPresentationAttributeStyle();
-    SetNeedsStyleRecalc(kLocalStyleChange,
-                        StyleChangeReasonForTracing::FromAttribute(attr_name));
     UpdateRelativeLengthsInformation();
-    GeometryAttributeChanged();
+    GeometryPresentationAttributeChanged(attr_name);
     return;
   }
 
diff --git a/third_party/WebKit/Source/core/svg/SVGGeometryElement.cpp b/third_party/WebKit/Source/core/svg/SVGGeometryElement.cpp
index d408291..3a52b8b8 100644
--- a/third_party/WebKit/Source/core/svg/SVGGeometryElement.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGGeometryElement.cpp
@@ -30,6 +30,7 @@
 
 #include "core/svg/SVGGeometryElement.h"
 
+#include "core/css/StyleChangeReason.h"
 #include "core/layout/HitTestRequest.h"
 #include "core/layout/PointerEventsHitRules.h"
 #include "core/layout/svg/LayoutSVGPath.h"
@@ -175,7 +176,16 @@
   return clampTo<float>(computed_path_length / author_path_length);
 }
 
+void SVGGeometryElement::GeometryPresentationAttributeChanged(
+    const QualifiedName& attr_name) {
+  InvalidateSVGPresentationAttributeStyle();
+  SetNeedsStyleRecalc(kLocalStyleChange,
+                      StyleChangeReasonForTracing::FromAttribute(attr_name));
+  GeometryAttributeChanged();
+}
+
 void SVGGeometryElement::GeometryAttributeChanged() {
+  SVGElement::InvalidationGuard invalidation_guard(this);
   if (LayoutSVGShape* layout_object = ToLayoutSVGShape(GetLayoutObject())) {
     layout_object->SetNeedsShapeUpdate();
     MarkForLayoutAndParentResourceInvalidation(layout_object);
diff --git a/third_party/WebKit/Source/core/svg/SVGGeometryElement.h b/third_party/WebKit/Source/core/svg/SVGGeometryElement.h
index a1e81c22..ffe1f38 100644
--- a/third_party/WebKit/Source/core/svg/SVGGeometryElement.h
+++ b/third_party/WebKit/Source/core/svg/SVGGeometryElement.h
@@ -67,6 +67,7 @@
                      ConstructionType = kCreateSVGElement);
 
   void GeometryAttributeChanged();
+  void GeometryPresentationAttributeChanged(const QualifiedName&);
 
  private:
   bool IsSVGGeometryElement() const final { return true; }
diff --git a/third_party/WebKit/Source/core/svg/SVGLineElement.cpp b/third_party/WebKit/Source/core/svg/SVGLineElement.cpp
index bb070a6..9fabf8b 100644
--- a/third_party/WebKit/Source/core/svg/SVGLineElement.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGLineElement.cpp
@@ -71,7 +71,6 @@
 void SVGLineElement::SvgAttributeChanged(const QualifiedName& attr_name) {
   if (attr_name == SVGNames::x1Attr || attr_name == SVGNames::y1Attr ||
       attr_name == SVGNames::x2Attr || attr_name == SVGNames::y2Attr) {
-    SVGElement::InvalidationGuard invalidation_guard(this);
     UpdateRelativeLengthsInformation();
     GeometryAttributeChanged();
     return;
diff --git a/third_party/WebKit/Source/core/svg/SVGPathElement.cpp b/third_party/WebKit/Source/core/svg/SVGPathElement.cpp
index ac17a391b..920a1d53 100644
--- a/third_party/WebKit/Source/core/svg/SVGPathElement.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGPathElement.cpp
@@ -20,7 +20,6 @@
 
 #include "core/svg/SVGPathElement.h"
 
-#include "core/css/StyleChangeReason.h"
 #include "core/layout/LayoutObject.h"
 #include "core/svg/SVGMPathElement.h"
 #include "core/svg/SVGPathQuery.h"
@@ -77,12 +76,8 @@
 
 void SVGPathElement::SvgAttributeChanged(const QualifiedName& attr_name) {
   if (attr_name == SVGNames::dAttr) {
-    SVGElement::InvalidationGuard invalidation_guard(this);
-    InvalidateSVGPresentationAttributeStyle();
-    SetNeedsStyleRecalc(kLocalStyleChange,
-                        StyleChangeReasonForTracing::FromAttribute(attr_name));
     InvalidateMPathDependencies();
-    GeometryAttributeChanged();
+    GeometryPresentationAttributeChanged(attr_name);
     return;
   }
 
diff --git a/third_party/WebKit/Source/core/svg/SVGPolyElement.cpp b/third_party/WebKit/Source/core/svg/SVGPolyElement.cpp
index db62ef5..2df0d19 100644
--- a/third_party/WebKit/Source/core/svg/SVGPolyElement.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGPolyElement.cpp
@@ -60,7 +60,6 @@
 
 void SVGPolyElement::SvgAttributeChanged(const QualifiedName& attr_name) {
   if (attr_name == SVGNames::pointsAttr) {
-    SVGElement::InvalidationGuard invalidation_guard(this);
     GeometryAttributeChanged();
     return;
   }
diff --git a/third_party/WebKit/Source/core/svg/SVGRectElement.cpp b/third_party/WebKit/Source/core/svg/SVGRectElement.cpp
index 1e32038..82a1747e 100644
--- a/third_party/WebKit/Source/core/svg/SVGRectElement.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGRectElement.cpp
@@ -20,7 +20,6 @@
 
 #include "core/svg/SVGRectElement.h"
 
-#include "core/css/StyleChangeReason.h"
 #include "core/layout/svg/LayoutSVGRect.h"
 #include "core/svg/SVGLength.h"
 
@@ -138,12 +137,8 @@
   if (attr_name == SVGNames::xAttr || attr_name == SVGNames::yAttr ||
       attr_name == SVGNames::widthAttr || attr_name == SVGNames::heightAttr ||
       attr_name == SVGNames::rxAttr || attr_name == SVGNames::ryAttr) {
-    SVGElement::InvalidationGuard invalidation_guard(this);
-    InvalidateSVGPresentationAttributeStyle();
-    SetNeedsStyleRecalc(kLocalStyleChange,
-                        StyleChangeReasonForTracing::FromAttribute(attr_name));
     UpdateRelativeLengthsInformation();
-    GeometryAttributeChanged();
+    GeometryPresentationAttributeChanged(attr_name);
     return;
   }
 
diff --git a/third_party/WebKit/Source/core/timing/PerformanceNavigationTiming.cpp b/third_party/WebKit/Source/core/timing/PerformanceNavigationTiming.cpp
index f880a45..d204947 100644
--- a/third_party/WebKit/Source/core/timing/PerformanceNavigationTiming.cpp
+++ b/third_party/WebKit/Source/core/timing/PerformanceNavigationTiming.cpp
@@ -12,7 +12,7 @@
 #include "core/loader/DocumentLoader.h"
 #include "core/timing/Performance.h"
 #include "platform/loader/fetch/ResourceTimingInfo.h"
-#include "third_party/WebKit/common/page/page_visibility_state.mojom-blink.h"
+#include "third_party/WebKit/public/mojom/page/page_visibility_state.mojom-blink.h"
 
 namespace blink {
 
diff --git a/third_party/WebKit/Source/core/timing/PerformanceNavigationTimingTest.cpp b/third_party/WebKit/Source/core/timing/PerformanceNavigationTimingTest.cpp
index b7be983..e175100 100644
--- a/third_party/WebKit/Source/core/timing/PerformanceNavigationTimingTest.cpp
+++ b/third_party/WebKit/Source/core/timing/PerformanceNavigationTimingTest.cpp
@@ -6,7 +6,7 @@
 
 #include "core/testing/PageTestBase.h"
 #include "testing/gtest/include/gtest/gtest.h"
-#include "third_party/WebKit/common/page/page_visibility_state.mojom-blink.h"
+#include "third_party/WebKit/public/mojom/page/page_visibility_state.mojom-blink.h"
 
 namespace blink {
 
diff --git a/third_party/WebKit/Source/core/workers/GlobalScopeCreationParams.h b/third_party/WebKit/Source/core/workers/GlobalScopeCreationParams.h
index 5593dc7..9c51be7 100644
--- a/third_party/WebKit/Source/core/workers/GlobalScopeCreationParams.h
+++ b/third_party/WebKit/Source/core/workers/GlobalScopeCreationParams.h
@@ -9,7 +9,6 @@
 #include "base/macros.h"
 #include "base/unguessable_token.h"
 #include "bindings/core/v8/V8CacheOptions.h"
-#include "common/net/ip_address_space.mojom-blink.h"
 #include "core/CoreExport.h"
 #include "core/frame/csp/ContentSecurityPolicy.h"
 #include "core/workers/WorkerClients.h"
@@ -21,6 +20,7 @@
 #include "platform/wtf/Forward.h"
 #include "platform/wtf/Optional.h"
 #include "platform/wtf/PtrUtil.h"
+#include "public/mojom/net/ip_address_space.mojom-blink.h"
 #include "services/service_manager/public/mojom/interface_provider.mojom-blink.h"
 
 namespace blink {
diff --git a/third_party/WebKit/Source/core/workers/WorkerScriptLoader.cpp b/third_party/WebKit/Source/core/workers/WorkerScriptLoader.cpp
index 42a9496..a65045e 100644
--- a/third_party/WebKit/Source/core/workers/WorkerScriptLoader.cpp
+++ b/third_party/WebKit/Source/core/workers/WorkerScriptLoader.cpp
@@ -29,7 +29,6 @@
 
 #include <memory>
 #include "base/memory/scoped_refptr.h"
-#include "common/net/ip_address_space.mojom-blink.h"
 #include "core/dom/ExecutionContext.h"
 #include "core/html/parser/TextResourceDecoder.h"
 #include "core/inspector/ConsoleMessage.h"
@@ -46,6 +45,7 @@
 #include "platform/network/http_names.h"
 #include "platform/weborigin/SecurityOrigin.h"
 #include "platform/wtf/PtrUtil.h"
+#include "public/mojom/net/ip_address_space.mojom-blink.h"
 
 namespace blink {
 
diff --git a/third_party/WebKit/Source/core/workers/WorkerScriptLoader.h b/third_party/WebKit/Source/core/workers/WorkerScriptLoader.h
index 3776e06..c5f0b1d 100644
--- a/third_party/WebKit/Source/core/workers/WorkerScriptLoader.h
+++ b/third_party/WebKit/Source/core/workers/WorkerScriptLoader.h
@@ -30,7 +30,6 @@
 
 #include <memory>
 #include "base/memory/scoped_refptr.h"
-#include "common/net/ip_address_space.mojom-blink.h"
 #include "core/CoreExport.h"
 #include "core/frame/csp/ContentSecurityPolicy.h"
 #include "core/loader/ThreadableLoader.h"
@@ -41,6 +40,7 @@
 #include "platform/wtf/Functional.h"
 #include "platform/wtf/RefCounted.h"
 #include "platform/wtf/text/StringBuilder.h"
+#include "public/mojom/net/ip_address_space.mojom-blink.h"
 #include "public/platform/WebURLRequest.h"
 #include "services/network/public/mojom/fetch_api.mojom-blink.h"
 
diff --git a/third_party/WebKit/Source/core/workers/WorkerThreadTestHelper.h b/third_party/WebKit/Source/core/workers/WorkerThreadTestHelper.h
index 57d21f9..f718cf57 100644
--- a/third_party/WebKit/Source/core/workers/WorkerThreadTestHelper.h
+++ b/third_party/WebKit/Source/core/workers/WorkerThreadTestHelper.h
@@ -11,7 +11,6 @@
 #include "bindings/core/v8/SourceLocation.h"
 #include "bindings/core/v8/V8CacheOptions.h"
 #include "bindings/core/v8/V8GCController.h"
-#include "common/net/ip_address_space.mojom-blink.h"
 #include "core/frame/Settings.h"
 #include "core/frame/csp/ContentSecurityPolicy.h"
 #include "core/inspector/ConsoleMessage.h"
@@ -35,6 +34,7 @@
 #include "platform/wtf/PtrUtil.h"
 #include "platform/wtf/Time.h"
 #include "platform/wtf/Vector.h"
+#include "public/mojom/net/ip_address_space.mojom-blink.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #include "v8/include/v8.h"
 
diff --git a/third_party/WebKit/Source/modules/BUILD.gn b/third_party/WebKit/Source/modules/BUILD.gn
index 54f2972..57eb1fa 100644
--- a/third_party/WebKit/Source/modules/BUILD.gn
+++ b/third_party/WebKit/Source/modules/BUILD.gn
@@ -241,6 +241,7 @@
     "animationworklet/AnimationWorkletGlobalScopeTest.cpp",
     "animationworklet/AnimationWorkletThreadTest.cpp",
     "animationworklet/WorkletAnimationTest.cpp",
+    "background_fetch/BackgroundFetchIconLoaderTest.cpp",
     "background_fetch/BackgroundFetchManagerTest.cpp",
     "cachestorage/CacheTest.cpp",
     "canvas/canvas2d/CanvasRenderingContext2DAPITest.cpp",
diff --git a/third_party/WebKit/Source/modules/background_fetch/BUILD.gn b/third_party/WebKit/Source/modules/background_fetch/BUILD.gn
index 040e922b..f85e342 100644
--- a/third_party/WebKit/Source/modules/background_fetch/BUILD.gn
+++ b/third_party/WebKit/Source/modules/background_fetch/BUILD.gn
@@ -16,6 +16,8 @@
     "BackgroundFetchFailEvent.h",
     "BackgroundFetchFetch.cpp",
     "BackgroundFetchFetch.h",
+    "BackgroundFetchIconLoader.cpp",
+    "BackgroundFetchIconLoader.h",
     "BackgroundFetchManager.cpp",
     "BackgroundFetchManager.h",
     "BackgroundFetchRegistration.cpp",
diff --git a/third_party/WebKit/Source/modules/background_fetch/BackgroundFetchIconLoader.cpp b/third_party/WebKit/Source/modules/background_fetch/BackgroundFetchIconLoader.cpp
new file mode 100644
index 0000000..b9ff424
--- /dev/null
+++ b/third_party/WebKit/Source/modules/background_fetch/BackgroundFetchIconLoader.cpp
@@ -0,0 +1,113 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LiICENSE file.
+
+#include "modules/background_fetch/BackgroundFetchIconLoader.h"
+
+#include "core/dom/ExecutionContext.h"
+#include "core/loader/ThreadableLoader.h"
+#include "platform/graphics/ColorBehavior.h"
+#include "platform/image-decoders/ImageDecoder.h"
+#include "platform/image-decoders/ImageFrame.h"
+#include "platform/loader/fetch/ResourceLoaderOptions.h"
+#include "platform/loader/fetch/ResourceRequest.h"
+#include "platform/weborigin/KURL.h"
+#include "platform/wtf/Threading.h"
+#include "public/platform/WebURLRequest.h"
+#include "skia/ext/image_operations.h"
+
+namespace blink {
+
+namespace {
+
+const unsigned long kIconFetchTimeoutInMs = 30000;
+
+}  // namespace
+
+BackgroundFetchIconLoader::BackgroundFetchIconLoader() = default;
+BackgroundFetchIconLoader::~BackgroundFetchIconLoader() = default;
+
+void BackgroundFetchIconLoader::Start(ExecutionContext* execution_context,
+                                      const KURL& url,
+                                      IconCallback icon_callback) {
+  DCHECK(!stopped_);
+
+  icon_callback_ = std::move(icon_callback);
+
+  ThreadableLoaderOptions threadable_loader_options;
+  threadable_loader_options.timeout_milliseconds = kIconFetchTimeoutInMs;
+
+  ResourceLoaderOptions resource_loader_options;
+  if (execution_context->IsWorkerGlobalScope())
+    resource_loader_options.request_initiator_context = kWorkerContext;
+
+  ResourceRequest resource_request(url);
+  resource_request.SetRequestContext(WebURLRequest::kRequestContextImage);
+  resource_request.SetPriority(ResourceLoadPriority::kMedium);
+  resource_request.SetRequestorOrigin(execution_context->GetSecurityOrigin());
+
+  threadable_loader_ = ThreadableLoader::Create(*execution_context, this,
+                                                threadable_loader_options,
+                                                resource_loader_options);
+
+  threadable_loader_->Start(resource_request);
+}
+
+void BackgroundFetchIconLoader::Stop() {
+  if (stopped_)
+    return;
+
+  stopped_ = true;
+  if (threadable_loader_) {
+    threadable_loader_->Cancel();
+    threadable_loader_ = nullptr;
+  }
+}
+
+void BackgroundFetchIconLoader::DidReceiveData(const char* data,
+                                               unsigned length) {
+  if (!data_)
+    data_ = SharedBuffer::Create();
+  data_->Append(data, length);
+}
+
+void BackgroundFetchIconLoader::DidFinishLoading(
+    unsigned long resource_identifier,
+    double finish_time) {
+  if (stopped_)
+    return;
+  if (data_) {
+    // Decode data.
+    std::unique_ptr<ImageDecoder> decoder = ImageDecoder::Create(
+        data_, true /* data_complete*/, ImageDecoder::kAlphaPremultiplied,
+        ColorBehavior::TransformToSRGB());
+    if (decoder) {
+      // the |ImageFrame*| is owned by the decoder.
+      ImageFrame* image_frame = decoder->DecodeFrameBufferAtIndex(0);
+      if (image_frame) {
+        std::move(icon_callback_).Run(image_frame->Bitmap());
+        return;
+      }
+    }
+  }
+  RunCallbackWithEmptyBitmap();
+}
+
+void BackgroundFetchIconLoader::DidFail(const ResourceError& error) {
+  RunCallbackWithEmptyBitmap();
+}
+
+void BackgroundFetchIconLoader::DidFailRedirectCheck() {
+  RunCallbackWithEmptyBitmap();
+}
+
+void BackgroundFetchIconLoader::RunCallbackWithEmptyBitmap() {
+  // If this has been stopped it is not desirable to trigger further work,
+  // there is a shutdown of some sort in progress.
+  if (stopped_)
+    return;
+
+  std::move(icon_callback_).Run(SkBitmap());
+}
+
+}  // namespace blink
diff --git a/third_party/WebKit/Source/modules/background_fetch/BackgroundFetchIconLoader.h b/third_party/WebKit/Source/modules/background_fetch/BackgroundFetchIconLoader.h
new file mode 100644
index 0000000..dfbcb63
--- /dev/null
+++ b/third_party/WebKit/Source/modules/background_fetch/BackgroundFetchIconLoader.h
@@ -0,0 +1,61 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef BackgroundFetchIconLoader_h
+#define BackgroundFetchIconLoader_h
+
+#include <memory>
+
+#include "core/loader/ThreadableLoader.h"
+#include "core/loader/ThreadableLoaderClient.h"
+#include "modules/ModulesExport.h"
+#include "platform/SharedBuffer.h"
+#include "third_party/skia/include/core/SkBitmap.h"
+
+namespace blink {
+
+class MODULES_EXPORT BackgroundFetchIconLoader final
+    : public GarbageCollectedFinalized<BackgroundFetchIconLoader>,
+      public ThreadableLoaderClient {
+ public:
+  // The bitmap may be empty if the request failed or the image data
+  // could not be decoded.
+  using IconCallback = base::OnceCallback<void(const SkBitmap&)>;
+
+  BackgroundFetchIconLoader();
+  ~BackgroundFetchIconLoader() override;
+
+  // Scales down |icon| and returns result. If it is already small enough,
+  // |icon| is returned unchanged.
+  static SkBitmap ScaleDownIfNeeded(const SkBitmap& icon);
+
+  // Asynchronously download an icon from the given url, decodes the loaded
+  // data, and passes the bitmap to the given callback.
+  void Start(ExecutionContext*, const KURL&, IconCallback);
+
+  // Cancels the pending load, if there is one. The |icon_callback_| will not
+  // be run.
+  void Stop();
+
+  // ThreadableLoaderClient interface.
+  void DidReceiveData(const char* data, unsigned length) override;
+  void DidFinishLoading(unsigned long resource_identifier,
+                        double finish_time) override;
+  void DidFail(const ResourceError&) override;
+  void DidFailRedirectCheck() override;
+
+  void Trace(blink::Visitor* visitor) { visitor->Trace(threadable_loader_); }
+
+ private:
+  void RunCallbackWithEmptyBitmap();
+
+  bool stopped_ = false;
+  scoped_refptr<SharedBuffer> data_;
+  IconCallback icon_callback_;
+  Member<ThreadableLoader> threadable_loader_;
+};
+
+}  // namespace blink
+
+#endif  // BackgroundFetchIconLoader_h
diff --git a/third_party/WebKit/Source/modules/background_fetch/BackgroundFetchIconLoaderTest.cpp b/third_party/WebKit/Source/modules/background_fetch/BackgroundFetchIconLoaderTest.cpp
new file mode 100644
index 0000000..be6c663
--- /dev/null
+++ b/third_party/WebKit/Source/modules/background_fetch/BackgroundFetchIconLoaderTest.cpp
@@ -0,0 +1,79 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LiICENSE file.
+
+#include "core/dom/ExecutionContext.h"
+#include "core/testing/PageTestBase.h"
+#include "modules/background_fetch/BackgroundFetchIconLoader.h"
+#include "platform/heap/Persistent.h"
+#include "platform/testing/TestingPlatformSupport.h"
+#include "platform/testing/URLTestHelpers.h"
+#include "platform/testing/UnitTestHelpers.h"
+#include "platform/weborigin/KURL.h"
+#include "public/platform/WebURL.h"
+#include "public/platform/WebURLLoaderMockFactory.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace blink {
+namespace {
+
+enum class LoadState { kNotLoaded, kLoadFailed, kLoadSuccessful };
+
+constexpr char kImageLoaderBaseUrl[] = "http://test.com/";
+constexpr char kImageLoaderBaseDir[] = "notifications/";
+constexpr char kImageLoaderIcon500x500[] = "500x500.png";
+
+class BackgroundFetchIconLoaderTest : public PageTestBase {
+ public:
+  BackgroundFetchIconLoaderTest() : loader_(new BackgroundFetchIconLoader()) {}
+  ~BackgroundFetchIconLoaderTest() override {
+    loader_->Stop();
+    platform_->GetURLLoaderMockFactory()
+        ->UnregisterAllURLsAndClearMemoryCache();
+  }
+
+  void SetUp() override { PageTestBase::SetUp(IntSize()); }
+
+  // Registers a mocked URL.
+  WebURL RegisterMockedURL(const String& file_name) {
+    WebURL registered_url = URLTestHelpers::RegisterMockedURLLoadFromBase(
+        kImageLoaderBaseUrl, testing::CoreTestDataPath(kImageLoaderBaseDir),
+        file_name, "image/png");
+    return registered_url;
+  }
+
+  // Callback for BackgroundFetchIconLoader. This will set up the state of the
+  // load as either success or failed based on whether the bitmap is empty.
+  void IconLoaded(const SkBitmap& bitmap) {
+    LOG(ERROR) << "did icon get loaded?";
+    if (!bitmap.empty())
+      loaded_ = LoadState::kLoadSuccessful;
+    else
+      loaded_ = LoadState::kLoadFailed;
+  }
+
+  void LoadIcon(const KURL& url) {
+    loader_->Start(GetContext(), url,
+                   Bind(&BackgroundFetchIconLoaderTest::IconLoaded,
+                        WTF::Unretained(this)));
+  }
+
+  ExecutionContext* GetContext() const { return &GetDocument(); }
+
+ protected:
+  ScopedTestingPlatformSupport<TestingPlatformSupport> platform_;
+  LoadState loaded_ = LoadState::kNotLoaded;
+
+ private:
+  Persistent<BackgroundFetchIconLoader> loader_;
+};
+
+TEST_F(BackgroundFetchIconLoaderTest, SuccessTest) {
+  KURL url = RegisterMockedURL(kImageLoaderIcon500x500);
+  LoadIcon(url);
+  platform_->GetURLLoaderMockFactory()->ServeAsynchronousRequests();
+  EXPECT_EQ(LoadState::kLoadSuccessful, loaded_);
+}
+
+}  // namespace
+}  // namespace blink
diff --git a/third_party/WebKit/Source/modules/background_fetch/DEPS b/third_party/WebKit/Source/modules/background_fetch/DEPS
index d5b52fa0..bf8e094 100644
--- a/third_party/WebKit/Source/modules/background_fetch/DEPS
+++ b/third_party/WebKit/Source/modules/background_fetch/DEPS
@@ -1,3 +1,4 @@
 include_rules = [
     "+mojo/public/cpp/bindings",
+    "+skia/ext/image_operations.h"
 ]
diff --git a/third_party/WebKit/Source/modules/canvas/canvas2d/CanvasRenderingContext2DTest.cpp b/third_party/WebKit/Source/modules/canvas/canvas2d/CanvasRenderingContext2DTest.cpp
index 5ebd0ec2..d6ae39d 100644
--- a/third_party/WebKit/Source/modules/canvas/canvas2d/CanvasRenderingContext2DTest.cpp
+++ b/third_party/WebKit/Source/modules/canvas/canvas2d/CanvasRenderingContext2DTest.cpp
@@ -36,7 +36,7 @@
 #include "public/platform/scheduler/test/renderer_scheduler_test_support.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
-#include "third_party/WebKit/common/page/page_visibility_state.mojom-blink.h"
+#include "third_party/WebKit/public/mojom/page/page_visibility_state.mojom-blink.h"
 #include "third_party/skia/include/core/SkColorSpaceXform.h"
 #include "third_party/skia/include/core/SkImage.h"
 #include "third_party/skia/include/core/SkSurface.h"
diff --git a/third_party/WebKit/Source/modules/canvas/imagebitmap/ImageBitmapRenderingContext.cpp b/third_party/WebKit/Source/modules/canvas/imagebitmap/ImageBitmapRenderingContext.cpp
index 65da402..75217e1 100644
--- a/third_party/WebKit/Source/modules/canvas/imagebitmap/ImageBitmapRenderingContext.cpp
+++ b/third_party/WebKit/Source/modules/canvas/imagebitmap/ImageBitmapRenderingContext.cpp
@@ -37,8 +37,6 @@
 CanvasRenderingContext* ImageBitmapRenderingContext::Factory::Create(
     CanvasRenderingContextHost* host,
     const CanvasContextCreationAttributesCore& attrs) {
-  if (!RuntimeEnabledFeatures::ExperimentalCanvasFeaturesEnabled())
-    return nullptr;
   return new ImageBitmapRenderingContext(host, attrs);
 }
 
diff --git a/third_party/WebKit/Source/modules/canvas/offscreencanvas/OffscreenCanvasTest.cpp b/third_party/WebKit/Source/modules/canvas/offscreencanvas/OffscreenCanvasTest.cpp
index 4500bfe..c889ab29 100644
--- a/third_party/WebKit/Source/modules/canvas/offscreencanvas/OffscreenCanvasTest.cpp
+++ b/third_party/WebKit/Source/modules/canvas/offscreencanvas/OffscreenCanvasTest.cpp
@@ -17,7 +17,7 @@
 #include "platform/testing/TestingPlatformSupport.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
-#include "third_party/WebKit/common/page/page_visibility_state.mojom-blink.h"
+#include "third_party/WebKit/public/mojom/page/page_visibility_state.mojom-blink.h"
 
 using ::testing::Mock;
 
diff --git a/third_party/WebKit/Source/modules/filesystem/DirectoryReader.cpp b/third_party/WebKit/Source/modules/filesystem/DirectoryReader.cpp
index 7232fbd..eb2edd1 100644
--- a/third_party/WebKit/Source/modules/filesystem/DirectoryReader.cpp
+++ b/third_party/WebKit/Source/modules/filesystem/DirectoryReader.cpp
@@ -41,7 +41,7 @@
 namespace {
 
 void RunEntriesCallback(V8EntriesCallback* callback, EntryHeapVector* entries) {
-  callback->handleEvent(*entries);
+  callback->InvokeAndReportException(nullptr, *entries);
 }
 
 }  // namespace
@@ -135,7 +135,7 @@
   if (V8EntriesCallback* entries_callback = entries_callback_.Release()) {
     EntryHeapVector entries;
     entries.swap(entries_);
-    entries_callback->handleEvent(entries);
+    entries_callback->InvokeAndReportException(nullptr, entries);
   }
 }
 
@@ -143,7 +143,8 @@
   error_ = error;
   entries_callback_ = nullptr;
   if (V8ErrorCallback* error_callback = error_callback_.Release()) {
-    error_callback->handleEvent(FileError::CreateDOMException(error_));
+    error_callback->InvokeAndReportException(
+        nullptr, FileError::CreateDOMException(error_));
   }
 }
 
diff --git a/third_party/WebKit/Source/modules/filesystem/FileSystemCallbacks.cpp b/third_party/WebKit/Source/modules/filesystem/FileSystemCallbacks.cpp
index 80f3b6a..89c550a 100644
--- a/third_party/WebKit/Source/modules/filesystem/FileSystemCallbacks.cpp
+++ b/third_party/WebKit/Source/modules/filesystem/FileSystemCallbacks.cpp
@@ -126,7 +126,8 @@
 }
 
 void ScriptErrorCallback::Invoke(FileError::ErrorCode error) {
-  callback_->handleEvent(FileError::CreateDOMException(error));
+  callback_->InvokeAndReportException(nullptr,
+                                      FileError::CreateDOMException(error));
 };
 
 ScriptErrorCallback::ScriptErrorCallback(V8ErrorCallback* callback)
@@ -140,7 +141,7 @@
 }
 
 void EntryCallbacks::OnDidGetEntryV8Impl::OnSuccess(Entry* entry) {
-  callback_->handleEvent(entry);
+  callback_->InvokeAndReportException(nullptr, entry);
 }
 
 std::unique_ptr<AsyncFileSystemCallbacks> EntryCallbacks::Create(
@@ -236,7 +237,7 @@
 
 void FileSystemCallbacks::OnDidOpenFileSystemV8Impl::OnSuccess(
     DOMFileSystem* file_system) {
-  callback_->handleEvent(file_system);
+  callback_->InvokeAndReportException(nullptr, file_system);
 }
 
 std::unique_ptr<AsyncFileSystemCallbacks> FileSystemCallbacks::Create(
@@ -320,7 +321,7 @@
 }
 
 void MetadataCallbacks::OnDidReadMetadataV8Impl::OnSuccess(Metadata* metadata) {
-  callback_->handleEvent(metadata);
+  callback_->InvokeAndReportException(nullptr, metadata);
 }
 
 std::unique_ptr<AsyncFileSystemCallbacks> MetadataCallbacks::Create(
@@ -360,7 +361,8 @@
 void FileWriterCallbacks::OnDidCreateFileWriterV8Impl::OnSuccess(
     FileWriterBase* file_writer) {
   // The call sites must pass a FileWriter in |file_writer|.
-  callback_->handleEvent(static_cast<FileWriter*>(file_writer));
+  callback_->InvokeAndReportException(nullptr,
+                                      static_cast<FileWriter*>(file_writer));
 }
 
 std::unique_ptr<AsyncFileSystemCallbacks> FileWriterCallbacks::Create(
@@ -403,7 +405,7 @@
 
 void SnapshotFileCallback::OnDidCreateSnapshotFileV8Impl::OnSuccess(
     File* file) {
-  callback_->handleEvent(file);
+  callback_->InvokeAndReportException(nullptr, file);
 }
 
 std::unique_ptr<AsyncFileSystemCallbacks> SnapshotFileCallback::Create(
@@ -457,7 +459,7 @@
 
 void VoidCallbacks::OnDidSucceedV8Impl::OnSuccess(
     ExecutionContext* dummy_arg_for_sync_helper) {
-  callback_->handleEvent();
+  callback_->InvokeAndReportException(nullptr);
 }
 
 std::unique_ptr<AsyncFileSystemCallbacks> VoidCallbacks::Create(
diff --git a/third_party/WebKit/Source/modules/media_controls/resources/default_100_percent/modern/ic_fullscreen_exit_white.png b/third_party/WebKit/Source/modules/media_controls/resources/default_100_percent/modern/ic_fullscreen_exit_white.png
new file mode 100644
index 0000000..85cf27e
--- /dev/null
+++ b/third_party/WebKit/Source/modules/media_controls/resources/default_100_percent/modern/ic_fullscreen_exit_white.png
Binary files differ
diff --git a/third_party/WebKit/Source/modules/media_controls/resources/default_100_percent/modern/ic_fullscreen_white.png b/third_party/WebKit/Source/modules/media_controls/resources/default_100_percent/modern/ic_fullscreen_white.png
new file mode 100644
index 0000000..2d3bb49b
--- /dev/null
+++ b/third_party/WebKit/Source/modules/media_controls/resources/default_100_percent/modern/ic_fullscreen_white.png
Binary files differ
diff --git a/third_party/WebKit/Source/modules/media_controls/resources/default_100_percent/modern/ic_menu_white.png b/third_party/WebKit/Source/modules/media_controls/resources/default_100_percent/modern/ic_menu_white.png
new file mode 100644
index 0000000..5ec0116f
--- /dev/null
+++ b/third_party/WebKit/Source/modules/media_controls/resources/default_100_percent/modern/ic_menu_white.png
Binary files differ
diff --git a/third_party/WebKit/Source/modules/media_controls/resources/default_100_percent/modern/ic_pause_white.png b/third_party/WebKit/Source/modules/media_controls/resources/default_100_percent/modern/ic_pause_white.png
new file mode 100644
index 0000000..2272d47
--- /dev/null
+++ b/third_party/WebKit/Source/modules/media_controls/resources/default_100_percent/modern/ic_pause_white.png
Binary files differ
diff --git a/third_party/WebKit/Source/modules/media_controls/resources/default_100_percent/modern/ic_play_arrow_white.png b/third_party/WebKit/Source/modules/media_controls/resources/default_100_percent/modern/ic_play_arrow_white.png
new file mode 100644
index 0000000..c61e948
--- /dev/null
+++ b/third_party/WebKit/Source/modules/media_controls/resources/default_100_percent/modern/ic_play_arrow_white.png
Binary files differ
diff --git a/third_party/WebKit/Source/modules/media_controls/resources/default_100_percent/modern/ic_volume_off_white.png b/third_party/WebKit/Source/modules/media_controls/resources/default_100_percent/modern/ic_volume_off_white.png
new file mode 100644
index 0000000..4681ec14
--- /dev/null
+++ b/third_party/WebKit/Source/modules/media_controls/resources/default_100_percent/modern/ic_volume_off_white.png
Binary files differ
diff --git a/third_party/WebKit/Source/modules/media_controls/resources/default_100_percent/modern/ic_volume_up_white.png b/third_party/WebKit/Source/modules/media_controls/resources/default_100_percent/modern/ic_volume_up_white.png
new file mode 100644
index 0000000..7cfd4c7
--- /dev/null
+++ b/third_party/WebKit/Source/modules/media_controls/resources/default_100_percent/modern/ic_volume_up_white.png
Binary files differ
diff --git a/third_party/WebKit/Source/modules/media_controls/resources/default_200_percent/modern/ic_fullscreen_exit_white.png b/third_party/WebKit/Source/modules/media_controls/resources/default_200_percent/modern/ic_fullscreen_exit_white.png
new file mode 100644
index 0000000..364bad0
--- /dev/null
+++ b/third_party/WebKit/Source/modules/media_controls/resources/default_200_percent/modern/ic_fullscreen_exit_white.png
Binary files differ
diff --git a/third_party/WebKit/Source/modules/media_controls/resources/default_200_percent/modern/ic_fullscreen_white.png b/third_party/WebKit/Source/modules/media_controls/resources/default_200_percent/modern/ic_fullscreen_white.png
new file mode 100644
index 0000000..4423c7c
--- /dev/null
+++ b/third_party/WebKit/Source/modules/media_controls/resources/default_200_percent/modern/ic_fullscreen_white.png
Binary files differ
diff --git a/third_party/WebKit/Source/modules/media_controls/resources/default_200_percent/modern/ic_menu_white.png b/third_party/WebKit/Source/modules/media_controls/resources/default_200_percent/modern/ic_menu_white.png
new file mode 100644
index 0000000..96e5d43
--- /dev/null
+++ b/third_party/WebKit/Source/modules/media_controls/resources/default_200_percent/modern/ic_menu_white.png
Binary files differ
diff --git a/third_party/WebKit/Source/modules/media_controls/resources/default_200_percent/modern/ic_pause_white.png b/third_party/WebKit/Source/modules/media_controls/resources/default_200_percent/modern/ic_pause_white.png
new file mode 100644
index 0000000..f49aed7
--- /dev/null
+++ b/third_party/WebKit/Source/modules/media_controls/resources/default_200_percent/modern/ic_pause_white.png
Binary files differ
diff --git a/third_party/WebKit/Source/modules/media_controls/resources/default_200_percent/modern/ic_play_arrow_white.png b/third_party/WebKit/Source/modules/media_controls/resources/default_200_percent/modern/ic_play_arrow_white.png
new file mode 100644
index 0000000..a3c80e7
--- /dev/null
+++ b/third_party/WebKit/Source/modules/media_controls/resources/default_200_percent/modern/ic_play_arrow_white.png
Binary files differ
diff --git a/third_party/WebKit/Source/modules/media_controls/resources/default_200_percent/modern/ic_volume_off_white.png b/third_party/WebKit/Source/modules/media_controls/resources/default_200_percent/modern/ic_volume_off_white.png
new file mode 100644
index 0000000..732a1c0
--- /dev/null
+++ b/third_party/WebKit/Source/modules/media_controls/resources/default_200_percent/modern/ic_volume_off_white.png
Binary files differ
diff --git a/third_party/WebKit/Source/modules/media_controls/resources/default_200_percent/modern/ic_volume_up_white.png b/third_party/WebKit/Source/modules/media_controls/resources/default_200_percent/modern/ic_volume_up_white.png
new file mode 100644
index 0000000..2ed00343
--- /dev/null
+++ b/third_party/WebKit/Source/modules/media_controls/resources/default_200_percent/modern/ic_volume_up_white.png
Binary files differ
diff --git a/third_party/WebKit/Source/modules/media_controls/resources/ic_arrow_left.svg b/third_party/WebKit/Source/modules/media_controls/resources/ic_arrow_left.svg
index 756ae16..63e165a 100644
--- a/third_party/WebKit/Source/modules/media_controls/resources/ic_arrow_left.svg
+++ b/third_party/WebKit/Source/modules/media_controls/resources/ic_arrow_left.svg
@@ -1,4 +1,4 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="24px" height="24px" viewBox="0 0 24 24" fill="#000000">
+<svg xmlns="http://www.w3.org/2000/svg" width="24px" height="24px" viewBox="0 0 24 24" fill="#FFFFFF">
     <path d="M14 7l-5 5 5 5V7z"/>
     <path fill="none" d="M24 0v24H0V0h24z"/>
 </svg>
diff --git a/third_party/WebKit/Source/modules/media_controls/resources/ic_arrow_right.svg b/third_party/WebKit/Source/modules/media_controls/resources/ic_arrow_right.svg
index c73a42b..21c75b55 100644
--- a/third_party/WebKit/Source/modules/media_controls/resources/ic_arrow_right.svg
+++ b/third_party/WebKit/Source/modules/media_controls/resources/ic_arrow_right.svg
@@ -1,4 +1,4 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="24px" height="24px" viewBox="0 0 24 24" fill="#000000">
+<svg xmlns="http://www.w3.org/2000/svg" width="24px" height="24px" viewBox="0 0 24 24" fill="#FFFFFF">
     <path d="M10 17l5-5-5-5v10z"/>
     <path fill="none" d="M0 24V0h24v24H0z"/>
 </svg>
diff --git a/third_party/WebKit/Source/modules/media_controls/resources/modernMediaControls.css b/third_party/WebKit/Source/modules/media_controls/resources/modernMediaControls.css
index 6bf3522..4e4ca9e 100644
--- a/third_party/WebKit/Source/modules/media_controls/resources/modernMediaControls.css
+++ b/third_party/WebKit/Source/modules/media_controls/resources/modernMediaControls.css
@@ -59,21 +59,24 @@
   font-style: normal;
 
   background-image:
-    linear-gradient(-180deg,
-      rgba(255, 255, 255, 0) 0%,
-      rgba(255, 255, 255, .27) 32%,
-      rgba(255, 255, 255, .9) 98%);
+    linear-gradient(to top,
+      rgba(0, 0, 0, .8) 0,
+      rgba(0, 0, 0, .2) 60px,
+      rgba(0, 0, 0, 0) 80px);
 }
 
 video::-webkit-media-controls-panel.scrubbing-message {
-  /* Need light gradient at the top of the video when the scrubbing message is
+  /* Need dark gradient at the top of the video when the scrubbing message is
    * shown */
   background-image:
-    linear-gradient(-180deg,
-      rgba(255, 255, 255, 0.9) 0%,
-      rgba(255, 255, 255, 0.27) 32%,
-      rgba(255, 255, 255, 0.27) 68%,
-      rgba(255, 255, 255, 0.9) 98%);
+    linear-gradient(to top,
+      rgba(0, 0, 0, .8) 0,
+      rgba(0, 0, 0, .2) 60px,
+      rgba(0, 0, 0, 0) 80px),
+    linear-gradient(to bottom,
+      rgba(0, 0, 0, .8) 0,
+      rgba(0, 0, 0, .3) 80px,
+      rgba(0, 0, 0, 0) 120px);
 }
 
 
@@ -149,6 +152,11 @@
     url(default_100_percent/modern/ic_play_arrow.png) 1x,
     url(default_200_percent/modern/ic_play_arrow.png) 2x);
 }
+video::-webkit-media-controls:not(.audio-only) [pseudo="-webkit-media-controls-panel"] [pseudo="-webkit-media-controls-play-button"] {
+  background-image: -webkit-image-set(
+    url(default_100_percent/modern/ic_play_arrow_white.png) 1x,
+    url(default_200_percent/modern/ic_play_arrow_white.png) 2x);
+}
 
 audio::-webkit-media-controls-mute-button,
 video::-webkit-media-controls-mute-button {
@@ -156,6 +164,11 @@
     url(default_100_percent/modern/ic_volume_up.png) 1x,
     url(default_200_percent/modern/ic_volume_up.png) 2x);
 }
+video::-webkit-media-controls:not(.audio-only) [pseudo="-webkit-media-controls-panel"] [pseudo="-webkit-media-controls-mute-button"] {
+  background-image: -webkit-image-set(
+    url(default_100_percent/modern/ic_volume_up_white.png) 1x,
+    url(default_200_percent/modern/ic_volume_up_white.png) 2x);
+}
 
 audio::-webkit-media-controls-mute-button.muted,
 video::-webkit-media-controls-mute-button.muted {
@@ -163,6 +176,11 @@
     url(default_100_percent/modern/ic_volume_off.png) 1x,
     url(default_200_percent/modern/ic_volume_off.png) 2x);
 }
+video::-webkit-media-controls:not(.audio-only) [pseudo="-webkit-media-controls-panel"] [pseudo="-webkit-media-controls-mute-button"].muted {
+  background-image: -webkit-image-set(
+    url(default_100_percent/modern/ic_volume_off_white.png) 1x,
+    url(default_200_percent/modern/ic_volume_off_white.png) 2x);
+}
 
 audio::-webkit-media-controls-fullscreen-button,
 video::-webkit-media-controls-fullscreen-button {
@@ -170,6 +188,11 @@
     url(default_100_percent/modern/ic_fullscreen.png) 1x,
     url(default_200_percent/modern/ic_fullscreen.png) 2x);
 }
+video::-webkit-media-controls:not(.audio-only) [pseudo="-webkit-media-controls-panel"] [pseudo="-webkit-media-controls-fullscreen-button"] {
+  background-image: -webkit-image-set(
+    url(default_100_percent/modern/ic_fullscreen_white.png) 1x,
+    url(default_200_percent/modern/ic_fullscreen_white.png) 2x);
+}
 
 audio::-webkit-media-controls-fullscreen-button.fullscreen,
 video::-webkit-media-controls-fullscreen-button.fullscreen {
@@ -177,6 +200,11 @@
     url(default_100_percent/modern/ic_fullscreen_exit.png) 1x,
     url(default_200_percent/modern/ic_fullscreen_exit.png) 2x);
 }
+video::-webkit-media-controls:not(.audio-only) [pseudo="-webkit-media-controls-panel"] [pseudo="-webkit-media-controls-fullscreen-button"].fullscreen {
+  background-image: -webkit-image-set(
+    url(default_100_percent/modern/ic_fullscreen_exit_white.png) 1x,
+    url(default_200_percent/modern/ic_fullscreen_exit_white.png) 2x);
+}
 
 audio::-internal-media-controls-cast-button,
 video::-internal-media-controls-cast-button {
@@ -216,6 +244,11 @@
     url(default_100_percent/modern/ic_menu.png) 1x,
     url(default_200_percent/modern/ic_menu.png) 2x);
 }
+video::-webkit-media-controls:not(.audio-only) [pseudo="-webkit-media-controls-panel"] [pseudo="-internal-media-controls-overflow-button"] {
+  background-image: -webkit-image-set(
+    url(default_100_percent/modern/ic_menu_white.png) 1x,
+    url(default_200_percent/modern/ic_menu_white.png) 2x);
+}
 
 video::-webkit-media-controls-overlay-play-button {
   -webkit-appearance: -internal-media-control;
@@ -295,6 +328,10 @@
   border-radius: 2px;
   position: relative;
 }
+video::-webkit-media-controls:not(.audio-only) input[pseudo="-webkit-media-controls-timeline" i]::-internal-media-controls-segmented-track {
+  background: rgba(255, 255, 255, .3);
+  box-shadow: 0 2px 10px 0 rgba(0,0,0,0.5);
+}
 
 /* thumb-current-time CSS here instead of in the scoped CSS so we can hide on
  * audio-only. */
@@ -329,6 +366,10 @@
   margin-top: -4px;
   flex: 0 0 0;
 }
+video::-webkit-media-controls:not(.audio-only) input[pseudo="-webkit-media-controls-timeline" i]::-webkit-slider-thumb {
+  background: #FFFFFF;
+  box-shadow: unset;
+}
 
 .state-no-source input[pseudo="-webkit-media-controls-timeline" i]::-webkit-slider-thumb {
   display: none;
@@ -352,11 +393,17 @@
   background: rgba(0, 0, 0, .87);
   border-radius: 100px;
 }
+video::-webkit-media-controls:not(.audio-only) input[pseudo="-webkit-media-controls-timeline" i]::-internal-track-segment-highlight-before {
+  background: rgba(255, 255, 255, 1);
+}
 
 input[pseudo="-webkit-media-controls-timeline" i]::-internal-track-segment-highlight-after {
   background: rgba(0, 0, 0, .54);
   border-radius: 2px;
 }
+video::-webkit-media-controls:not(.audio-only) input[pseudo="-webkit-media-controls-timeline" i]::-internal-track-segment-highlight-after {
+  background: rgba(255, 255, 255, .54);
+}
 
 audio::-webkit-media-controls-volume-slider,
 video::-webkit-media-controls-volume-slider {
@@ -374,6 +421,9 @@
   top: 0;
   display: none;
 }
+video::-webkit-media-controls:not(.audio-only) input[pseudo="-webkit-media-controls-timeline" i]::-internal-track-segment-buffering {
+  background: rgba(255, 255, 255, .54);
+}
 
 .state-buffering input[pseudo="-webkit-media-controls-timeline" i]::-internal-track-segment-buffering {
   display: block;
@@ -400,6 +450,12 @@
   letter-spacing: 0;
   text-shadow: 0 0 10px #FFFFFF;
 }
+video::-webkit-media-controls:not(.audio-only) [pseudo="-webkit-media-controls-current-time-display"],
+video::-webkit-media-controls:not(.audio-only) [pseudo="-webkit-media-controls-time-remaining-display"] {
+  color: #FFFFFF;
+  text-shadow: unset;
+  opacity: unset;
+}
 
 /**
  * Overflow Menu
@@ -635,6 +691,7 @@
   top: 12px;
   text-align: center;
   width: 100%;
+  color: #FFFFFF;
 }
 
 .state-scrubbing div[pseudo="-internal-media-controls-button-panel" i],
diff --git a/third_party/WebKit/Source/modules/nfc/NFC.cpp b/third_party/WebKit/Source/modules/nfc/NFC.cpp
index 871b7fd..105d5bd 100644
--- a/third_party/WebKit/Source/modules/nfc/NFC.cpp
+++ b/third_party/WebKit/Source/modules/nfc/NFC.cpp
@@ -20,7 +20,7 @@
 #include "platform/mojo/MojoHelper.h"
 #include "public/platform/Platform.h"
 #include "services/service_manager/public/cpp/interface_provider.h"
-#include "third_party/WebKit/common/page/page_visibility_state.mojom-blink.h"
+#include "third_party/WebKit/public/mojom/page/page_visibility_state.mojom-blink.h"
 
 namespace {
 const char kJsonMimePostfix[] = "+json";
diff --git a/third_party/WebKit/Source/modules/payments/PaymentInstruments.cpp b/third_party/WebKit/Source/modules/payments/PaymentInstruments.cpp
index aedda2f..cee4aaf 100644
--- a/third_party/WebKit/Source/modules/payments/PaymentInstruments.cpp
+++ b/third_party/WebKit/Source/modules/payments/PaymentInstruments.cpp
@@ -6,16 +6,22 @@
 
 #include <utility>
 
+#include "base/location.h"
 #include "bindings/core/v8/ExceptionState.h"
 #include "bindings/core/v8/ScriptPromise.h"
 #include "bindings/core/v8/ScriptPromiseResolver.h"
 #include "bindings/core/v8/V8BindingForCore.h"
 #include "core/dom/DOMException.h"
+#include "core/dom/Document.h"
+#include "core/frame/Frame.h"
+#include "core/frame/LocalFrame.h"
 #include "core/inspector/ConsoleMessage.h"
 #include "modules/payments/BasicCardHelper.h"
 #include "modules/payments/PaymentInstrument.h"
 #include "modules/payments/PaymentManager.h"
+#include "modules/permissions/PermissionUtils.h"
 #include "platform/wtf/Vector.h"
+#include "public/platform/TaskType.h"
 #include "public/platform/WebIconSizesParser.h"
 #include "public/platform/modules/manifest/manifest.mojom-blink.h"
 
@@ -154,20 +160,78 @@
   }
 
   ScriptPromiseResolver* resolver = ScriptPromiseResolver::Create(script_state);
+  ExecutionContext* context = ExecutionContext::From(script_state);
+  Document* doc = ToDocumentOrNull(context);
+
+  // Should move this permission check to browser process.
+  // Please see http://crbug.com/795929
+  GetPermissionService(script_state)
+      ->RequestPermission(
+          CreatePermissionDescriptor(
+              mojom::blink::PermissionName::PAYMENT_HANDLER),
+          Frame::HasTransientUserActivation(doc ? doc->GetFrame() : nullptr),
+          WTF::Bind(&PaymentInstruments::OnRequestPermission,
+                    WrapPersistent(this), WrapPersistent(resolver),
+                    instrument_key, details));
+  return resolver->Promise();
+}
+
+ScriptPromise PaymentInstruments::clear(ScriptState* script_state) {
+  if (!manager_.is_bound()) {
+    return ScriptPromise::RejectWithDOMException(
+        script_state,
+        DOMException::Create(kInvalidStateError, kPaymentManagerUnavailable));
+  }
+
+  ScriptPromiseResolver* resolver = ScriptPromiseResolver::Create(script_state);
   ScriptPromise promise = resolver->Promise();
 
+  manager_->ClearPaymentInstruments(
+      WTF::Bind(&PaymentInstruments::onClearPaymentInstruments,
+                WrapPersistent(this), WrapPersistent(resolver)));
+  return promise;
+}
+
+mojom::blink::PermissionService* PaymentInstruments::GetPermissionService(
+    ScriptState* script_state) {
+  if (!permission_service_) {
+    ConnectToPermissionService(ExecutionContext::From(script_state),
+                               mojo::MakeRequest(&permission_service_));
+  }
+  return permission_service_.get();
+}
+
+void PaymentInstruments::OnRequestPermission(
+    ScriptPromiseResolver* resolver,
+    const String& instrument_key,
+    const PaymentInstrument& details,
+    mojom::blink::PermissionStatus status) {
+  DCHECK(resolver);
+  if (!resolver->GetExecutionContext() ||
+      resolver->GetExecutionContext()->IsContextDestroyed())
+    return;
+
+  ScriptState::Scope scope(resolver->GetScriptState());
+
+  if (status != mojom::blink::PermissionStatus::GRANTED) {
+    resolver->Reject(DOMException::Create(
+        kNotAllowedError, "Not allowed to install this payment handler"));
+    return;
+  }
+
   payments::mojom::blink::PaymentInstrumentPtr instrument =
       payments::mojom::blink::PaymentInstrument::New();
   instrument->name = details.hasName() ? details.name() : WTF::g_empty_string;
   if (details.hasIcons()) {
-    ExecutionContext* context = ExecutionContext::From(script_state);
+    ExecutionContext* context =
+        ExecutionContext::From(resolver->GetScriptState());
     for (const ImageObject image_object : details.icons()) {
       KURL parsed_url = context->CompleteURL(image_object.src());
       if (!parsed_url.IsValid() || !parsed_url.ProtocolIsInHTTPFamily()) {
         resolver->Reject(V8ThrowException::CreateTypeError(
-            script_state->GetIsolate(),
+            resolver->GetScriptState()->GetIsolate(),
             "'" + image_object.src() + "' is not a valid URL."));
-        return promise;
+        return;
       }
 
       mojom::blink::ManifestIconPtr icon = mojom::blink::ManifestIcon::New();
@@ -189,18 +253,26 @@
 
   if (details.hasCapabilities()) {
     v8::Local<v8::String> value;
-    if (!v8::JSON::Stringify(script_state->GetContext(),
+    if (!v8::JSON::Stringify(resolver->GetScriptState()->GetContext(),
                              details.capabilities().V8Value().As<v8::Object>())
              .ToLocal(&value)) {
-      exception_state.ThrowTypeError(
-          "Capabilities should be a JSON-serializable object");
-      return exception_state.Reject(script_state);
+      resolver->Reject(V8ThrowException::CreateTypeError(
+          resolver->GetScriptState()->GetIsolate(),
+          "Capabilities should be a JSON-serializable object"));
+      return;
     }
     instrument->stringified_capabilities = ToCoreString(value);
     if (instrument->enabled_methods.Contains("basic-card")) {
+      ExceptionState exception_state(resolver->GetScriptState()->GetIsolate(),
+                                     ExceptionState::kSetterContext,
+                                     "PaymentInstruments", "set");
       BasicCardHelper::ParseBasiccardData(
           details.capabilities(), instrument->supported_networks,
           instrument->supported_types, exception_state);
+      if (exception_state.HadException()) {
+        exception_state.Reject(resolver);
+        return;
+      }
     }
   } else {
     instrument->stringified_capabilities = WTF::g_empty_string;
@@ -210,23 +282,6 @@
       instrument_key, std::move(instrument),
       WTF::Bind(&PaymentInstruments::onSetPaymentInstrument,
                 WrapPersistent(this), WrapPersistent(resolver)));
-  return promise;
-}
-
-ScriptPromise PaymentInstruments::clear(ScriptState* script_state) {
-  if (!manager_.is_bound()) {
-    return ScriptPromise::RejectWithDOMException(
-        script_state,
-        DOMException::Create(kInvalidStateError, kPaymentManagerUnavailable));
-  }
-
-  ScriptPromiseResolver* resolver = ScriptPromiseResolver::Create(script_state);
-  ScriptPromise promise = resolver->Promise();
-
-  manager_->ClearPaymentInstruments(
-      WTF::Bind(&PaymentInstruments::onClearPaymentInstruments,
-                WrapPersistent(this), WrapPersistent(resolver)));
-  return promise;
 }
 
 void PaymentInstruments::onDeletePaymentInstrument(
@@ -242,6 +297,12 @@
     payments::mojom::blink::PaymentInstrumentPtr stored_instrument,
     payments::mojom::blink::PaymentHandlerStatus status) {
   DCHECK(resolver);
+  if (!resolver->GetExecutionContext() ||
+      resolver->GetExecutionContext()->IsContextDestroyed())
+    return;
+
+  ScriptState::Scope scope(resolver->GetScriptState());
+
   if (rejectError(resolver, status))
     return;
   PaymentInstrument instrument;
@@ -268,7 +329,6 @@
 
   instrument.setEnabledMethods(enabled_methods);
   if (!stored_instrument->stringified_capabilities.IsEmpty()) {
-    ScriptState::Scope scope(resolver->GetScriptState());
     ExceptionState exception_state(resolver->GetScriptState()->GetIsolate(),
                                    ExceptionState::kGetterContext,
                                    "PaymentInstruments", "get");
diff --git a/third_party/WebKit/Source/modules/payments/PaymentInstruments.h b/third_party/WebKit/Source/modules/payments/PaymentInstruments.h
index c48d5c9..c3beefa 100644
--- a/third_party/WebKit/Source/modules/payments/PaymentInstruments.h
+++ b/third_party/WebKit/Source/modules/payments/PaymentInstruments.h
@@ -11,6 +11,7 @@
 #include "platform/wtf/Noncopyable.h"
 #include "platform/wtf/text/WTFString.h"
 #include "public/platform/modules/payments/payment_app.mojom-blink.h"
+#include "public/platform/modules/permissions/permission.mojom-blink.h"
 
 namespace blink {
 
@@ -38,6 +39,12 @@
   ScriptPromise clear(ScriptState*);
 
  private:
+  mojom::blink::PermissionService* GetPermissionService(ScriptState*);
+  void OnRequestPermission(ScriptPromiseResolver*,
+                           const String&,
+                           const PaymentInstrument&,
+                           mojom::blink::PermissionStatus);
+
   void onDeletePaymentInstrument(ScriptPromiseResolver*,
                                  payments::mojom::blink::PaymentHandlerStatus);
   void onGetPaymentInstrument(ScriptPromiseResolver*,
@@ -54,6 +61,8 @@
                                  payments::mojom::blink::PaymentHandlerStatus);
 
   const payments::mojom::blink::PaymentManagerPtr& manager_;
+
+  mojom::blink::PermissionServicePtr permission_service_;
 };
 
 }  // namespace blink
diff --git a/third_party/WebKit/Source/modules/permissions/PermissionDescriptor.idl b/third_party/WebKit/Source/modules/permissions/PermissionDescriptor.idl
index 0b3b2ce..9d5e8edd 100644
--- a/third_party/WebKit/Source/modules/permissions/PermissionDescriptor.idl
+++ b/third_party/WebKit/Source/modules/permissions/PermissionDescriptor.idl
@@ -17,6 +17,7 @@
     "accessibility-events",
     "clipboard-read",
     "clipboard-write",
+    "payment-handler",
 };
 
 // The PermissionDescriptor dictionary is a base to describe permissions. Some
diff --git a/third_party/WebKit/Source/modules/permissions/Permissions.cpp b/third_party/WebKit/Source/modules/permissions/Permissions.cpp
index c5bb402..928d6e6b 100644
--- a/third_party/WebKit/Source/modules/permissions/Permissions.cpp
+++ b/third_party/WebKit/Source/modules/permissions/Permissions.cpp
@@ -143,6 +143,8 @@
     return CreateClipboardPermissionDescriptor(
         permission_name, clipboard_permission.allowWithoutGesture());
   }
+  if (name == "payment-handler")
+    return CreatePermissionDescriptor(PermissionName::PAYMENT_HANDLER);
 
   return nullptr;
 }
diff --git a/third_party/WebKit/Source/modules/presentation/PresentationAvailability.cpp b/third_party/WebKit/Source/modules/presentation/PresentationAvailability.cpp
index 6e674cc..ccb5792 100644
--- a/third_party/WebKit/Source/modules/presentation/PresentationAvailability.cpp
+++ b/third_party/WebKit/Source/modules/presentation/PresentationAvailability.cpp
@@ -14,7 +14,7 @@
 #include "platform/wtf/Vector.h"
 #include "public/platform/Platform.h"
 #include "public/platform/modules/presentation/WebPresentationClient.h"
-#include "third_party/WebKit/common/page/page_visibility_state.mojom-blink.h"
+#include "third_party/WebKit/public/mojom/page/page_visibility_state.mojom-blink.h"
 
 namespace blink {
 
diff --git a/third_party/WebKit/Source/modules/presentation/PresentationAvailabilityTest.cpp b/third_party/WebKit/Source/modules/presentation/PresentationAvailabilityTest.cpp
index aaff2b4..ea585a54 100644
--- a/third_party/WebKit/Source/modules/presentation/PresentationAvailabilityTest.cpp
+++ b/third_party/WebKit/Source/modules/presentation/PresentationAvailabilityTest.cpp
@@ -15,7 +15,7 @@
 #include "platform/weborigin/KURL.h"
 #include "platform/wtf/Vector.h"
 #include "testing/gtest/include/gtest/gtest.h"
-#include "third_party/WebKit/common/page/page_visibility_state.mojom-blink.h"
+#include "third_party/WebKit/public/mojom/page/page_visibility_state.mojom-blink.h"
 #include "v8/include/v8.h"
 
 namespace blink {
diff --git a/third_party/WebKit/Source/modules/quota/DeprecatedStorageQuota.h b/third_party/WebKit/Source/modules/quota/DeprecatedStorageQuota.h
index 3c04b55..b36ceed 100644
--- a/third_party/WebKit/Source/modules/quota/DeprecatedStorageQuota.h
+++ b/third_party/WebKit/Source/modules/quota/DeprecatedStorageQuota.h
@@ -34,7 +34,7 @@
 #include "core/dom/ExceptionCode.h"
 #include "platform/bindings/ScriptWrappable.h"
 #include "platform/heap/Handle.h"
-#include "third_party/WebKit/common/quota/quota_dispatcher_host.mojom-blink.h"
+#include "third_party/WebKit/public/mojom/quota/quota_dispatcher_host.mojom-blink.h"
 
 namespace blink {
 
diff --git a/third_party/WebKit/Source/modules/quota/QuotaUtils.h b/third_party/WebKit/Source/modules/quota/QuotaUtils.h
index 6365b8a..ae675dc7 100644
--- a/third_party/WebKit/Source/modules/quota/QuotaUtils.h
+++ b/third_party/WebKit/Source/modules/quota/QuotaUtils.h
@@ -5,7 +5,7 @@
 #ifndef QuotaUtils_h
 #define QuotaUtils_h
 
-#include "third_party/WebKit/common/quota/quota_dispatcher_host.mojom-blink.h"
+#include "third_party/WebKit/public/mojom/quota/quota_dispatcher_host.mojom-blink.h"
 
 namespace blink {
 
diff --git a/third_party/WebKit/Source/modules/quota/StorageManager.h b/third_party/WebKit/Source/modules/quota/StorageManager.h
index bfa38eb..dd3e52a 100644
--- a/third_party/WebKit/Source/modules/quota/StorageManager.h
+++ b/third_party/WebKit/Source/modules/quota/StorageManager.h
@@ -8,7 +8,7 @@
 #include "platform/bindings/ScriptWrappable.h"
 #include "platform/heap/Heap.h"
 #include "public/platform/modules/permissions/permission.mojom-blink.h"
-#include "third_party/WebKit/common/quota/quota_dispatcher_host.mojom-blink.h"
+#include "third_party/WebKit/public/mojom/quota/quota_dispatcher_host.mojom-blink.h"
 
 namespace blink {
 
diff --git a/third_party/WebKit/Source/modules/sensor/SensorProxy.cpp b/third_party/WebKit/Source/modules/sensor/SensorProxy.cpp
index a3da576d8..09d7c148 100644
--- a/third_party/WebKit/Source/modules/sensor/SensorProxy.cpp
+++ b/third_party/WebKit/Source/modules/sensor/SensorProxy.cpp
@@ -15,7 +15,7 @@
 #include "public/platform/TaskType.h"
 #include "public/platform/WebScreenInfo.h"
 #include "services/device/public/cpp/generic_sensor/sensor_traits.h"
-#include "third_party/WebKit/common/page/page_visibility_state.mojom-blink.h"
+#include "third_party/WebKit/public/mojom/page/page_visibility_state.mojom-blink.h"
 
 namespace blink {
 
diff --git a/third_party/WebKit/Source/modules/wake_lock/ScreenWakeLockTest.cpp b/third_party/WebKit/Source/modules/wake_lock/ScreenWakeLockTest.cpp
index 44bb25e16..583c151 100644
--- a/third_party/WebKit/Source/modules/wake_lock/ScreenWakeLockTest.cpp
+++ b/third_party/WebKit/Source/modules/wake_lock/ScreenWakeLockTest.cpp
@@ -17,7 +17,7 @@
 #include "public/platform/WebURLLoaderMockFactory.h"
 #include "services/service_manager/public/cpp/interface_provider.h"
 #include "testing/gtest/include/gtest/gtest.h"
-#include "third_party/WebKit/common/page/page_visibility_state.mojom-blink.h"
+#include "third_party/WebKit/public/mojom/page/page_visibility_state.mojom-blink.h"
 
 #include <memory>
 
diff --git a/third_party/WebKit/Source/modules/webdatabase/SQLStatement.cpp b/third_party/WebKit/Source/modules/webdatabase/SQLStatement.cpp
index 36c88409..7b525bed 100644
--- a/third_party/WebKit/Source/modules/webdatabase/SQLStatement.cpp
+++ b/third_party/WebKit/Source/modules/webdatabase/SQLStatement.cpp
@@ -49,7 +49,7 @@
 
 bool SQLStatement::OnSuccessV8Impl::OnSuccess(SQLTransaction* transaction,
                                               SQLResultSet* result_set) {
-  return callback_->handleEvent(transaction, result_set);
+  return callback_->handleEvent(nullptr, transaction, result_set);
 }
 
 void SQLStatement::OnErrorV8Impl::Trace(blink::Visitor* visitor) {
@@ -59,7 +59,7 @@
 
 bool SQLStatement::OnErrorV8Impl::OnError(SQLTransaction* transaction,
                                           SQLError* error) {
-  return callback_->handleEvent(transaction, error);
+  return callback_->handleEvent(nullptr, transaction, error);
 }
 
 SQLStatement* SQLStatement::Create(Database* database,
diff --git a/third_party/WebKit/Source/modules/webdatabase/SQLTransaction.cpp b/third_party/WebKit/Source/modules/webdatabase/SQLTransaction.cpp
index 143eace..abf35af 100644
--- a/third_party/WebKit/Source/modules/webdatabase/SQLTransaction.cpp
+++ b/third_party/WebKit/Source/modules/webdatabase/SQLTransaction.cpp
@@ -53,7 +53,7 @@
 }
 
 bool SQLTransaction::OnProcessV8Impl::OnProcess(SQLTransaction* transaction) {
-  return callback_->handleEvent(transaction);
+  return callback_->handleEvent(nullptr, transaction);
 }
 
 void SQLTransaction::OnSuccessV8Impl::Trace(blink::Visitor* visitor) {
@@ -62,7 +62,7 @@
 }
 
 void SQLTransaction::OnSuccessV8Impl::OnSuccess() {
-  callback_->handleEvent();
+  callback_->InvokeAndReportException(nullptr);
 }
 
 void SQLTransaction::OnErrorV8Impl::Trace(blink::Visitor* visitor) {
@@ -71,7 +71,7 @@
 }
 
 bool SQLTransaction::OnErrorV8Impl::OnError(SQLError* error) {
-  return callback_->handleEvent(error);
+  return callback_->handleEvent(nullptr, error);
 }
 
 SQLTransaction* SQLTransaction::Create(Database* db,
diff --git a/third_party/WebKit/Source/platform/LayoutUnit.h b/third_party/WebKit/Source/platform/LayoutUnit.h
index 50d0677..bc5bc18 100644
--- a/third_party/WebKit/Source/platform/LayoutUnit.h
+++ b/third_party/WebKit/Source/platform/LayoutUnit.h
@@ -125,7 +125,7 @@
   operator bool() const { return value_; }
 
   LayoutUnit operator++(int) {
-    value_ += kFixedPointDenominator;
+    value_ = ClampAdd(value_, kFixedPointDenominator);
     return *this;
   }
 
diff --git a/third_party/WebKit/Source/platform/LayoutUnitTest.cpp b/third_party/WebKit/Source/platform/LayoutUnitTest.cpp
index c0dc2ae..3ce6821 100644
--- a/third_party/WebKit/Source/platform/LayoutUnitTest.cpp
+++ b/third_party/WebKit/Source/platform/LayoutUnitTest.cpp
@@ -287,4 +287,12 @@
   EXPECT_EQ(LayoutUnit::Max(), -LayoutUnit::Min());
 }
 
+TEST(LayoutUnitTest, LayoutUnitPlusPlus) {
+  EXPECT_EQ(LayoutUnit(-1), LayoutUnit(-2)++);
+  EXPECT_EQ(LayoutUnit(0), LayoutUnit(-1)++);
+  EXPECT_EQ(LayoutUnit(1), LayoutUnit(0)++);
+  EXPECT_EQ(LayoutUnit(2), LayoutUnit(1)++);
+  EXPECT_EQ(LayoutUnit::Max(), LayoutUnit(LayoutUnit::Max())++);
+}
+
 }  // namespace blink
diff --git a/third_party/WebKit/Source/platform/fonts/win/FontCacheSkiaWin.cpp b/third_party/WebKit/Source/platform/fonts/win/FontCacheSkiaWin.cpp
index 2199b82..20cd5a9 100644
--- a/third_party/WebKit/Source/platform/fonts/win/FontCacheSkiaWin.cpp
+++ b/third_party/WebKit/Source/platform/fonts/win/FontCacheSkiaWin.cpp
@@ -135,18 +135,18 @@
   }
 
   UScriptCode script;
-  const wchar_t* family = GetFallbackFamily(
+  const UChar* family = GetFallbackFamily(
       character, font_description.GenericFamily(), font_description.Locale(),
       &script, fallback_priority, font_manager_.get());
-  FontPlatformData* data = nullptr;
   if (family) {
-    FontFaceCreationParams create_by_family(
-        AtomicString(family, wcslen(family)));
-    data = GetFontPlatformData(font_description, create_by_family);
+    FontFaceCreationParams create_by_family(family);
+    FontPlatformData* data =
+        GetFontPlatformData(font_description, create_by_family);
+    if (data && data->FontContainsCharacter(character))
+      return FontDataFromFontPlatformData(data, kDoNotRetain);
   }
 
-  if ((!data || !data->FontContainsCharacter(character)) &&
-      use_skia_font_fallback_) {
+  if (use_skia_font_fallback_) {
     const char* bcp47_locale = nullptr;
     int locale_count = 0;
     // If the font description has a locale, use that. Otherwise, Skia will
@@ -167,7 +167,10 @@
       SkString skia_family;
       typeface->getFamilyName(&skia_family);
       FontFaceCreationParams create_by_family(ToAtomicString(skia_family));
-      data = GetFontPlatformData(font_description, create_by_family);
+      FontPlatformData* data =
+          GetFontPlatformData(font_description, create_by_family);
+      if (data && data->FontContainsCharacter(character))
+        return FontDataFromFontPlatformData(data, kDoNotRetain);
     }
   }
 
@@ -219,24 +222,15 @@
   // because it's based on script to font mapping. This problem is
   // critical enough for non-Latin scripts (especially Han) to
   // warrant an additional (real coverage) check with fontCotainsCharacter.
-  int i;
-  for (i = 0;
-       (!data || !data->FontContainsCharacter(character)) && i < num_fonts;
-       ++i) {
+  for (int i = 0; i < num_fonts; ++i) {
     family = pan_uni_fonts[i];
-    FontFaceCreationParams create_by_family(
-        AtomicString(family, wcslen(family)));
-    data = GetFontPlatformData(font_description, create_by_family);
+    FontFaceCreationParams create_by_family(family);
+    FontPlatformData* data =
+        GetFontPlatformData(font_description, create_by_family);
+    if (data && data->FontContainsCharacter(character))
+      return FontDataFromFontPlatformData(data, kDoNotRetain);
   }
 
-  // When i-th font (0-base) in |panUniFonts| contains a character and
-  // we get out of the loop, |i| will be |i + 1|. That is, if only the
-  // last font in the array covers the character, |i| will be numFonts.
-  // So, we have to use '<=" rather than '<' to see if we found a font
-  // covering the character.
-  if (i <= num_fonts)
-    return FontDataFromFontPlatformData(data, kDoNotRetain);
-
   return nullptr;
 }
 
diff --git a/third_party/WebKit/Source/platform/loader/fetch/ResourceRequest.h b/third_party/WebKit/Source/platform/loader/fetch/ResourceRequest.h
index b9fde85f..ce33376 100644
--- a/third_party/WebKit/Source/platform/loader/fetch/ResourceRequest.h
+++ b/third_party/WebKit/Source/platform/loader/fetch/ResourceRequest.h
@@ -44,7 +44,7 @@
 #include "services/network/public/mojom/cors.mojom-blink.h"
 #include "services/network/public/mojom/fetch_api.mojom-blink.h"
 #include "services/network/public/mojom/request_context_frame_type.mojom-shared.h"
-#include "third_party/WebKit/common/net/ip_address_space.mojom-blink.h"
+#include "third_party/WebKit/public/mojom/net/ip_address_space.mojom-blink.h"
 
 namespace blink {
 
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/common/config/builders.json b/third_party/WebKit/Tools/Scripts/webkitpy/common/config/builders.json
index ea0469c..734d528 100644
--- a/third_party/WebKit/Tools/Scripts/webkitpy/common/config/builders.json
+++ b/third_party/WebKit/Tools/Scripts/webkitpy/common/config/builders.json
@@ -43,6 +43,10 @@
         "port_name": "android-kitkat",
         "specifiers": ["KitKat", "Release"]
     },
+    "Fuchsia": {
+        "port_name": "fuchsia",
+        "specifiers": ["Fuchsia", "Release"]
+    },
     "linux_trusty_blink_rel": {
         "port_name": "linux-trusty",
         "specifiers": ["Trusty", "Release"],
diff --git a/third_party/WebKit/common/BUILD.gn b/third_party/WebKit/common/BUILD.gn
index 53271b7d..03817e3e 100644
--- a/third_party/WebKit/common/BUILD.gn
+++ b/third_party/WebKit/common/BUILD.gn
@@ -112,18 +112,9 @@
 # This target includes all mojom interfaces which can be used from
 # Source/platform. In particular these mojom interfaces can't use types that
 # are typemapped to a type in Source/core.
+# TODO(kinuko): Move these targets in public/mojom/BUILD.gn.
 mojom("mojo_platform_bindings") {
   sources = [
-    # NOTE: Consider adding new mojom files under public/mojom, this target
-    # will be deprecated.
-    "loader/prefetch_url_loader_service.mojom",
-    "net/ip_address_space.mojom",
-    "page/page_visibility_state.mojom",
-    "quota/quota_dispatcher_host.mojom",
-    "quota/quota_types.mojom",
-
-    # TODO(kinuko): Create a separate BUILD.gn in public/mojom (or have the
-    # target in public/BUILD.gn).
     "../public/mojom/array_buffer/array_buffer_contents.mojom",
     "../public/mojom/blob/blob.mojom",
     "../public/mojom/blob/blob_registry.mojom",
@@ -133,6 +124,11 @@
     "../public/mojom/clipboard/clipboard.mojom",
     "../public/mojom/color_chooser/color_chooser.mojom",
     "../public/mojom/feature_policy/feature_policy.mojom",
+    "../public/mojom/loader/prefetch_url_loader_service.mojom",
+    "../public/mojom/net/ip_address_space.mojom",
+    "../public/mojom/page/page_visibility_state.mojom",
+    "../public/mojom/quota/quota_dispatcher_host.mojom",
+    "../public/mojom/quota/quota_types.mojom",
     "../public/mojom/service_worker/navigation_preload_state.mojom",
     "../public/mojom/service_worker/service_worker.mojom",
     "../public/mojom/service_worker/service_worker_client.mojom",
@@ -166,9 +162,10 @@
 # This target can include mojom interfaces which do use types that are
 # typemapped to a type in Source/core. This also means these interfaces are not
 # available from Source/platform.
+# TODO(kinuko): Move these targets in public/mojom/BUILD.gn.
 mojom("mojo_bindings") {
   sources = [
-    "message_port/message_port.mojom",
+    "../public/mojom/message_port/message_port.mojom",
   ]
 
   public_deps = [
diff --git a/third_party/WebKit/common/message_port/cloneable_message.cc b/third_party/WebKit/common/message_port/cloneable_message.cc
index cc771f60..ccb36b1 100644
--- a/third_party/WebKit/common/message_port/cloneable_message.cc
+++ b/third_party/WebKit/common/message_port/cloneable_message.cc
@@ -4,8 +4,8 @@
 
 #include "third_party/WebKit/public/common/message_port/cloneable_message.h"
 
-#include "third_party/WebKit/common/message_port/message_port.mojom.h"
 #include "third_party/WebKit/public/mojom/blob/blob.mojom.h"
+#include "third_party/WebKit/public/mojom/message_port/message_port.mojom.h"
 
 namespace blink {
 
diff --git a/third_party/WebKit/common/message_port/cloneable_message.typemap b/third_party/WebKit/common/message_port/cloneable_message.typemap
index 8b80284d..74d9bc17 100644
--- a/third_party/WebKit/common/message_port/cloneable_message.typemap
+++ b/third_party/WebKit/common/message_port/cloneable_message.typemap
@@ -2,7 +2,7 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
-mojom = "//third_party/WebKit/common/message_port/message_port.mojom"
+mojom = "//third_party/WebKit/public/mojom/message_port/message_port.mojom"
 public_headers =
     [ "//third_party/WebKit/public/common/message_port/cloneable_message.h" ]
 traits_headers = [
diff --git a/third_party/WebKit/common/message_port/cloneable_message_struct_traits.h b/third_party/WebKit/common/message_port/cloneable_message_struct_traits.h
index 71329fc8..183491d 100644
--- a/third_party/WebKit/common/message_port/cloneable_message_struct_traits.h
+++ b/third_party/WebKit/common/message_port/cloneable_message_struct_traits.h
@@ -5,8 +5,8 @@
 #ifndef THIRD_PARTY_WEBKIT_COMMON_MESSAGE_PORT_CLONEABLE_MESSAGE_STRUCT_TRAITS_H_
 #define THIRD_PARTY_WEBKIT_COMMON_MESSAGE_PORT_CLONEABLE_MESSAGE_STRUCT_TRAITS_H_
 
-#include "third_party/WebKit/common/message_port/message_port.mojom.h"
 #include "third_party/WebKit/public/common/message_port/cloneable_message.h"
+#include "third_party/WebKit/public/mojom/message_port/message_port.mojom.h"
 
 namespace mojo {
 
diff --git a/third_party/WebKit/common/message_port/transferable_message.typemap b/third_party/WebKit/common/message_port/transferable_message.typemap
index f370872..9916bc9 100644
--- a/third_party/WebKit/common/message_port/transferable_message.typemap
+++ b/third_party/WebKit/common/message_port/transferable_message.typemap
@@ -2,7 +2,7 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
-mojom = "//third_party/WebKit/common/message_port/message_port.mojom"
+mojom = "//third_party/WebKit/public/mojom/message_port/message_port.mojom"
 public_headers = [
   "//third_party/WebKit/public/common/message_port/transferable_message.h",
   "//third_party/WebKit/public/common/message_port/message_port_channel.h",
diff --git a/third_party/WebKit/common/message_port/transferable_message_struct_traits.h b/third_party/WebKit/common/message_port/transferable_message_struct_traits.h
index 5700dcb..ab52151 100644
--- a/third_party/WebKit/common/message_port/transferable_message_struct_traits.h
+++ b/third_party/WebKit/common/message_port/transferable_message_struct_traits.h
@@ -7,8 +7,8 @@
 
 #include "skia/public/interfaces/bitmap_skbitmap_struct_traits.h"
 #include "third_party/WebKit/common/message_port/cloneable_message_struct_traits.h"
-#include "third_party/WebKit/common/message_port/message_port.mojom.h"
 #include "third_party/WebKit/public/common/message_port/transferable_message.h"
+#include "third_party/WebKit/public/mojom/message_port/message_port.mojom.h"
 #include "third_party/skia/include/core/SkBitmap.h"
 
 namespace mojo {
diff --git a/third_party/WebKit/common/loader/OWNERS b/third_party/WebKit/public/mojom/loader/OWNERS
similarity index 100%
rename from third_party/WebKit/common/loader/OWNERS
rename to third_party/WebKit/public/mojom/loader/OWNERS
diff --git a/third_party/WebKit/common/loader/prefetch_url_loader_service.mojom b/third_party/WebKit/public/mojom/loader/prefetch_url_loader_service.mojom
similarity index 100%
rename from third_party/WebKit/common/loader/prefetch_url_loader_service.mojom
rename to third_party/WebKit/public/mojom/loader/prefetch_url_loader_service.mojom
diff --git a/third_party/WebKit/public/mojom/message_port/OWNERS b/third_party/WebKit/public/mojom/message_port/OWNERS
new file mode 100644
index 0000000..74991d3
--- /dev/null
+++ b/third_party/WebKit/public/mojom/message_port/OWNERS
@@ -0,0 +1,12 @@
+mek@chromium.org
+jbroman@chromium.org
+
+per-file *.mojom=set noparent
+per-file *.mojom=file://ipc/SECURITY_OWNERS
+per-file *_struct_traits*.*=set noparent
+per-file *_struct_traits*.*=file://ipc/SECURITY_OWNERS
+per-file *.typemap=set noparent
+per-file *.typemap=file://ipc/SECURITY_OWNERS
+
+# TEAM: platform-architecture-dev@chromium.org
+# COMPONENT: Blink>Messaging
diff --git a/third_party/WebKit/common/message_port/message_port.mojom b/third_party/WebKit/public/mojom/message_port/message_port.mojom
similarity index 100%
rename from third_party/WebKit/common/message_port/message_port.mojom
rename to third_party/WebKit/public/mojom/message_port/message_port.mojom
diff --git a/third_party/WebKit/common/net/OWNERS b/third_party/WebKit/public/mojom/net/OWNERS
similarity index 100%
rename from third_party/WebKit/common/net/OWNERS
rename to third_party/WebKit/public/mojom/net/OWNERS
diff --git a/third_party/WebKit/common/net/ip_address_space.mojom b/third_party/WebKit/public/mojom/net/ip_address_space.mojom
similarity index 100%
rename from third_party/WebKit/common/net/ip_address_space.mojom
rename to third_party/WebKit/public/mojom/net/ip_address_space.mojom
diff --git a/third_party/WebKit/common/page/OWNERS b/third_party/WebKit/public/mojom/page/OWNERS
similarity index 100%
rename from third_party/WebKit/common/page/OWNERS
rename to third_party/WebKit/public/mojom/page/OWNERS
diff --git a/third_party/WebKit/common/page/page_visibility_state.mojom b/third_party/WebKit/public/mojom/page/page_visibility_state.mojom
similarity index 100%
rename from third_party/WebKit/common/page/page_visibility_state.mojom
rename to third_party/WebKit/public/mojom/page/page_visibility_state.mojom
diff --git a/third_party/WebKit/common/quota/OWNERS b/third_party/WebKit/public/mojom/quota/OWNERS
similarity index 100%
rename from third_party/WebKit/common/quota/OWNERS
rename to third_party/WebKit/public/mojom/quota/OWNERS
diff --git a/third_party/WebKit/common/quota/quota_dispatcher_host.mojom b/third_party/WebKit/public/mojom/quota/quota_dispatcher_host.mojom
similarity index 96%
rename from third_party/WebKit/common/quota/quota_dispatcher_host.mojom
rename to third_party/WebKit/public/mojom/quota/quota_dispatcher_host.mojom
index fb5dffe..4f6a520 100644
--- a/third_party/WebKit/common/quota/quota_dispatcher_host.mojom
+++ b/third_party/WebKit/public/mojom/quota/quota_dispatcher_host.mojom
@@ -4,7 +4,7 @@
 
 module blink.mojom;
 
-import "third_party/WebKit/common/quota/quota_types.mojom";
+import "third_party/WebKit/public/mojom/quota/quota_types.mojom";
 import "url/mojom/origin.mojom";
 
 // API for the renderer process to request quota information from the browser
diff --git a/third_party/WebKit/common/quota/quota_types.mojom b/third_party/WebKit/public/mojom/quota/quota_types.mojom
similarity index 100%
rename from third_party/WebKit/common/quota/quota_types.mojom
rename to third_party/WebKit/public/mojom/quota/quota_types.mojom
diff --git a/third_party/WebKit/public/mojom/service_worker/service_worker_client.mojom b/third_party/WebKit/public/mojom/service_worker/service_worker_client.mojom
index 1715f30..7c502f6 100644
--- a/third_party/WebKit/public/mojom/service_worker/service_worker_client.mojom
+++ b/third_party/WebKit/public/mojom/service_worker/service_worker_client.mojom
@@ -6,7 +6,7 @@
 
 import "mojo/common/time.mojom";
 import "services/network/public/mojom/request_context_frame_type.mojom";
-import "third_party/WebKit/common/page/page_visibility_state.mojom";
+import "third_party/WebKit/public/mojom/page/page_visibility_state.mojom";
 import "url/mojom/url.mojom";
 
 // Indicates the service worker client type.
diff --git a/third_party/WebKit/public/platform/modules/broadcastchannel/broadcast_channel.mojom b/third_party/WebKit/public/platform/modules/broadcastchannel/broadcast_channel.mojom
index fd0e4c0..a5ad5d5 100644
--- a/third_party/WebKit/public/platform/modules/broadcastchannel/broadcast_channel.mojom
+++ b/third_party/WebKit/public/platform/modules/broadcastchannel/broadcast_channel.mojom
@@ -4,7 +4,7 @@
 
 module blink.mojom;
 
-import "third_party/WebKit/common/message_port/message_port.mojom";
+import "third_party/WebKit/public/mojom/message_port/message_port.mojom";
 import "url/mojom/origin.mojom";
 
 // A pair of BroadcastChannelClient interfaces is used to represent a connection
diff --git a/third_party/WebKit/public/platform/modules/notifications/notification.mojom b/third_party/WebKit/public/platform/modules/notifications/notification.mojom
index 29f74aea..3aeb946 100644
--- a/third_party/WebKit/public/platform/modules/notifications/notification.mojom
+++ b/third_party/WebKit/public/platform/modules/notifications/notification.mojom
@@ -30,7 +30,7 @@
   string action;
 
   // Title of the action button.
-  string title;
+  mojo_base.mojom.String16 title;
 
   // URL of the icon for the button. May be empty if no url was specified.
   url.mojom.Url icon;
diff --git a/third_party/WebKit/public/platform/modules/notifications/notification_service.mojom b/third_party/WebKit/public/platform/modules/notifications/notification_service.mojom
index daf37584..8bfcebd2 100644
--- a/third_party/WebKit/public/platform/modules/notifications/notification_service.mojom
+++ b/third_party/WebKit/public/platform/modules/notifications/notification_service.mojom
@@ -4,7 +4,6 @@
 
 module blink.mojom;
 
-import "mojo/public/mojom/base/string16.mojom";
 import "third_party/WebKit/public/platform/modules/notifications/notification.mojom";
 import "third_party/WebKit/public/platform/modules/permissions/permission_status.mojom";
 
diff --git a/third_party/WebKit/public/platform/modules/payments/payment_app.mojom b/third_party/WebKit/public/platform/modules/payments/payment_app.mojom
index 5f0cbd4..6581c54 100644
--- a/third_party/WebKit/public/platform/modules/payments/payment_app.mojom
+++ b/third_party/WebKit/public/platform/modules/payments/payment_app.mojom
@@ -38,7 +38,8 @@
 // and PaymentManager.idl in render side. This interface is implemented
 // by payment_manager.cc and runs in browser side.
 interface PaymentManager {
-  Init(string service_worker_script_url, string service_worker_scope);
+  // |context_url| is the url of the web page creating this interface.
+  Init(string context_url, string service_worker_scope);
   DeletePaymentInstrument(string instrument_key)
       => (PaymentHandlerStatus status);
   GetPaymentInstrument(string instrument_key)
diff --git a/third_party/WebKit/public/platform/modules/permissions/permission.mojom b/third_party/WebKit/public/platform/modules/permissions/permission.mojom
index 88b2758..dfbd56d 100644
--- a/third_party/WebKit/public/platform/modules/permissions/permission.mojom
+++ b/third_party/WebKit/public/platform/modules/permissions/permission.mojom
@@ -19,6 +19,7 @@
   ACCESSIBILITY_EVENTS,
   CLIPBOARD_READ,
   CLIPBOARD_WRITE,
+  PAYMENT_HANDLER,
 };
 
 struct MidiPermissionDescriptor {
diff --git a/third_party/WebKit/public/platform/modules/serviceworker/WebServiceWorkerClientsInfo.h b/third_party/WebKit/public/platform/modules/serviceworker/WebServiceWorkerClientsInfo.h
index 4012894..b69f7a534 100644
--- a/third_party/WebKit/public/platform/modules/serviceworker/WebServiceWorkerClientsInfo.h
+++ b/third_party/WebKit/public/platform/modules/serviceworker/WebServiceWorkerClientsInfo.h
@@ -10,7 +10,7 @@
 #include "public/platform/WebURLRequest.h"
 #include "public/platform/WebVector.h"
 #include "services/network/public/mojom/request_context_frame_type.mojom-shared.h"
-#include "third_party/WebKit/common/page/page_visibility_state.mojom-shared.h"
+#include "third_party/WebKit/public/mojom/page/page_visibility_state.mojom-shared.h"
 #include "third_party/WebKit/public/mojom/service_worker/service_worker_client.mojom-shared.h"
 
 #include <memory>
diff --git a/third_party/WebKit/public/web/WebEmbeddedWorkerStartData.h b/third_party/WebKit/public/web/WebEmbeddedWorkerStartData.h
index ba9cf4a..fd5869e 100644
--- a/third_party/WebKit/public/web/WebEmbeddedWorkerStartData.h
+++ b/third_party/WebKit/public/web/WebEmbeddedWorkerStartData.h
@@ -36,7 +36,7 @@
 #include "public/platform/WebString.h"
 #include "public/platform/WebURL.h"
 #include "public/web/WebSettings.h"
-#include "third_party/WebKit/common/net/ip_address_space.mojom-shared.h"
+#include "third_party/WebKit/public/mojom/net/ip_address_space.mojom-shared.h"
 
 namespace blink {
 
diff --git a/third_party/WebKit/public/web/WebFrameClient.h b/third_party/WebKit/public/web/WebFrameClient.h
index 07f67c4..7863d87 100644
--- a/third_party/WebKit/public/web/WebFrameClient.h
+++ b/third_party/WebKit/public/web/WebFrameClient.h
@@ -70,9 +70,9 @@
 #include "public/platform/WebURLRequest.h"
 #include "public/platform/WebWorkerFetchContext.h"
 #include "public/platform/modules/serviceworker/WebServiceWorkerProvider.h"
-#include "third_party/WebKit/common/page/page_visibility_state.mojom-shared.h"
 #include "third_party/WebKit/public/common/feature_policy/feature_policy.h"
 #include "third_party/WebKit/public/common/frame/sandbox_flags.h"
+#include "third_party/WebKit/public/mojom/page/page_visibility_state.mojom-shared.h"
 #include "v8/include/v8.h"
 
 namespace service_manager {
diff --git a/third_party/WebKit/public/web/WebFrameWidget.h b/third_party/WebKit/public/web/WebFrameWidget.h
index a19938c..d6762eba 100644
--- a/third_party/WebKit/public/web/WebFrameWidget.h
+++ b/third_party/WebKit/public/web/WebFrameWidget.h
@@ -34,7 +34,7 @@
 #include "public/platform/WebCommon.h"
 #include "public/platform/WebDragOperation.h"
 #include "public/web/WebWidget.h"
-#include "third_party/WebKit/common/page/page_visibility_state.mojom-shared.h"
+#include "third_party/WebKit/public/mojom/page/page_visibility_state.mojom-shared.h"
 
 namespace blink {
 
diff --git a/third_party/WebKit/public/web/WebSharedWorker.h b/third_party/WebKit/public/web/WebSharedWorker.h
index 99ba195..4f6b616 100644
--- a/third_party/WebKit/public/web/WebSharedWorker.h
+++ b/third_party/WebKit/public/web/WebSharedWorker.h
@@ -36,7 +36,7 @@
 #include "mojo/public/cpp/system/message_pipe.h"
 #include "public/platform/WebCommon.h"
 #include "public/platform/WebContentSecurityPolicy.h"
-#include "third_party/WebKit/common/net/ip_address_space.mojom-shared.h"
+#include "third_party/WebKit/public/mojom/net/ip_address_space.mojom-shared.h"
 
 namespace blink {
 
diff --git a/third_party/WebKit/public/web/WebSharedWorkerRepositoryClient.h b/third_party/WebKit/public/web/WebSharedWorkerRepositoryClient.h
index 5f1fdb50..cfdcaa95 100644
--- a/third_party/WebKit/public/web/WebSharedWorkerRepositoryClient.h
+++ b/third_party/WebKit/public/web/WebSharedWorkerRepositoryClient.h
@@ -33,7 +33,7 @@
 
 #include <memory>
 #include "public/web/shared_worker_creation_context_type.mojom-shared.h"
-#include "third_party/WebKit/common/net/ip_address_space.mojom-shared.h"
+#include "third_party/WebKit/public/mojom/net/ip_address_space.mojom-shared.h"
 
 namespace blink {
 
diff --git a/third_party/WebKit/public/web/WebView.h b/third_party/WebKit/public/web/WebView.h
index 7b4c729..8fc376c 100644
--- a/third_party/WebKit/public/web/WebView.h
+++ b/third_party/WebKit/public/web/WebView.h
@@ -37,7 +37,7 @@
 #include "public/platform/WebDragOperation.h"
 #include "public/platform/WebFocusType.h"
 #include "public/platform/WebString.h"
-#include "third_party/WebKit/common/page/page_visibility_state.mojom-shared.h"
+#include "third_party/WebKit/public/mojom/page/page_visibility_state.mojom-shared.h"
 
 namespace blink {
 
diff --git a/third_party/WebKit/public/web/WebViewClient.h b/third_party/WebKit/public/web/WebViewClient.h
index e2fecc8..fc710d7 100644
--- a/third_party/WebKit/public/web/WebViewClient.h
+++ b/third_party/WebKit/public/web/WebViewClient.h
@@ -38,7 +38,7 @@
 #include "WebWidgetClient.h"
 #include "base/strings/string_piece.h"
 #include "public/platform/WebString.h"
-#include "third_party/WebKit/common/page/page_visibility_state.mojom-shared.h"
+#include "third_party/WebKit/public/mojom/page/page_visibility_state.mojom-shared.h"
 
 namespace blink {
 
diff --git a/third_party/closure_compiler/externs/automation.js b/third_party/closure_compiler/externs/automation.js
index 8e401c2..d90a5992 100644
--- a/third_party/closure_compiler/externs/automation.js
+++ b/third_party/closure_compiler/externs/automation.js
@@ -222,6 +222,7 @@
   HASPOPUP: 'haspopup',
   HORIZONTAL: 'horizontal',
   HOVERED: 'hovered',
+  IGNORED: 'ignored',
   INVISIBLE: 'invisible',
   LINKED: 'linked',
   MULTILINE: 'multiline',
diff --git a/third_party/ink/prebuilt/_platform_specific/arm/ink_arm.nexe b/third_party/ink/prebuilt/nacl/_platform_specific/arm/ink_arm.nexe
similarity index 100%
rename from third_party/ink/prebuilt/_platform_specific/arm/ink_arm.nexe
rename to third_party/ink/prebuilt/nacl/_platform_specific/arm/ink_arm.nexe
Binary files differ
diff --git a/third_party/ink/prebuilt/_platform_specific/x86-32/ink_x86_32.nexe b/third_party/ink/prebuilt/nacl/_platform_specific/x86-32/ink_x86_32.nexe
similarity index 100%
rename from third_party/ink/prebuilt/_platform_specific/x86-32/ink_x86_32.nexe
rename to third_party/ink/prebuilt/nacl/_platform_specific/x86-32/ink_x86_32.nexe
Binary files differ
diff --git a/third_party/ink/prebuilt/_platform_specific/x86-64/ink_x86_64.nexe b/third_party/ink/prebuilt/nacl/_platform_specific/x86-64/ink_x86_64.nexe
similarity index 100%
rename from third_party/ink/prebuilt/_platform_specific/x86-64/ink_x86_64.nexe
rename to third_party/ink/prebuilt/nacl/_platform_specific/x86-64/ink_x86_64.nexe
Binary files differ
diff --git a/third_party/ink/prebuilt/index.html b/third_party/ink/prebuilt/nacl/index.html
similarity index 92%
rename from third_party/ink/prebuilt/index.html
rename to third_party/ink/prebuilt/nacl/index.html
index a3ccf74d..42e5dc0 100644
--- a/third_party/ink/prebuilt/index.html
+++ b/third_party/ink/prebuilt/nacl/index.html
@@ -17,6 +17,7 @@
     <link rel="icon" href="data:,"> <!-- Prevent favicon.ico requests -->
   </head>
   <body>
+    <h1>Ink demo &mdash; NaCl version</h1>
     <div id="ink-canvas"></div>
     <script src="ink_lib_binary.js"></script>
     <script src="ink_demo.js"></script>
diff --git a/third_party/ink/prebuilt/ink.nmf b/third_party/ink/prebuilt/nacl/ink.nmf
similarity index 100%
rename from third_party/ink/prebuilt/ink.nmf
rename to third_party/ink/prebuilt/nacl/ink.nmf
diff --git a/third_party/ink/prebuilt/ink_demo.js b/third_party/ink/prebuilt/nacl/ink_demo.js
similarity index 100%
rename from third_party/ink/prebuilt/ink_demo.js
rename to third_party/ink/prebuilt/nacl/ink_demo.js
diff --git a/third_party/ink/prebuilt/ink_lib_binary.js b/third_party/ink/prebuilt/nacl/ink_lib_binary.js
similarity index 100%
rename from third_party/ink/prebuilt/ink_lib_binary.js
rename to third_party/ink/prebuilt/nacl/ink_lib_binary.js
diff --git a/third_party/ink/prebuilt/wasm/index.html b/third_party/ink/prebuilt/wasm/index.html
index b88e29d..fbf793c 100644
--- a/third_party/ink/prebuilt/wasm/index.html
+++ b/third_party/ink/prebuilt/wasm/index.html
@@ -17,6 +17,7 @@
     <link rel="icon" href="data:,"> <!-- Prevent favicon.ico requests -->
   </head>
   <body>
+    <h1>Ink demo &mdash; WebAssembly version</h1>
     <div id="ink-canvas"></div>
     <script>var STATIC_JS_PREFIX='.'</script>
     <script src="ink_lib_binary.js"></script>
diff --git a/third_party/metrics_proto/README.chromium b/third_party/metrics_proto/README.chromium
index e3f58d8..9ee59ff 100644
--- a/third_party/metrics_proto/README.chromium
+++ b/third_party/metrics_proto/README.chromium
@@ -1,6 +1,6 @@
 Name: Metrics Protos
-Version: 180820879
-Date: 2018/01/04
+Version: 187110743
+Date: 2018/02/26
 License: BSD
 Security Critical: Yes
 
diff --git a/third_party/metrics_proto/chrome_user_metrics_extension.proto b/third_party/metrics_proto/chrome_user_metrics_extension.proto
index 4718d5fb..7255f27 100644
--- a/third_party/metrics_proto/chrome_user_metrics_extension.proto
+++ b/third_party/metrics_proto/chrome_user_metrics_extension.proto
@@ -23,7 +23,7 @@
 import "translate_event.proto";
 import "user_action_event.proto";
 
-// Next tag: 18
+// Next tag: 19
 message ChromeUserMetricsExtension {
   // The product (i.e. end user application) for a given UMA log.
   enum Product {
diff --git a/third_party/metrics_proto/system_profile.proto b/third_party/metrics_proto/system_profile.proto
index 686b81e..8e8b697 100644
--- a/third_party/metrics_proto/system_profile.proto
+++ b/third_party/metrics_proto/system_profile.proto
@@ -939,6 +939,13 @@
     EPSON_INKJET_PRINTER_ESCPR = 14;
     CROS_TERMINA = 15;
     STAR_CUPS_DRIVER = 16;
+    SPEECH_SYNTHESIS_SV_SE = 17;
+    OPTIMIZATION_HINTS = 18;
+    DOWNLOADABLE_STRINGS = 19;
+    VR_ASSETS = 20;
+    RTANALYTICS_LIGHT = 21;
+    RTANALYTICS_FULL = 22;
+    CELLULAR = 23;
   }
 
   // Information about what Chrome components are registered and at which
diff --git a/third_party/metrics_proto/ukm/report.proto b/third_party/metrics_proto/ukm/report.proto
index 38d42f91..e673475 100644
--- a/third_party/metrics_proto/ukm/report.proto
+++ b/third_party/metrics_proto/ukm/report.proto
@@ -14,7 +14,7 @@
 import "system_profile.proto";
 
 // This is the message type sent from Chrome to the UKM collector.
-// Next tag: 8
+// Next tag: 11
 message Report {
   // A unique identifier for a Chrome install. This ID should be used only
   // in UKM reports, and not linked to any other data sources.
@@ -30,12 +30,43 @@
   // one within a session.
   optional int32 report_id = 6;
 
+  // Indicates that recording was continously enabled for the period of time
+  // captured in this report.
+  optional bool is_continuous = 8;
+
+  enum LogRotationReason {
+    UNKNOWN = 0;
+    SCHEDULED_ROTATION = 1;
+    BACKGROUNDED = 2;
+    SHUTDOWN = 3;
+  }
+  optional LogRotationReason log_rotation_reason = 9;
+
   // Information about the user's browser and system configuration.
   optional metrics.SystemProfileProto system_profile = 2;
 
   // A list of the top-level navigations that data was collected for.
   repeated Source sources = 3;
 
+  // Counts of different types of sources in this interval, including sources
+  // which may not be in the report due to dropping or deferral.
+  message SourceCounts {
+    // Number of unique sources that URLs were observed for. This counts
+    // includes sources which were dropped or deferred, but not sources
+    // carried over from a previous interval.
+    optional int32 observed = 1;
+    // Number of navigation sources that URLs were observed for, including
+    // sources dropped due to limits.
+    optional int32 navigation_sources = 2;
+    // Number of sources discarded due to not matching a navigation URL.
+    optional int32 unmatched_sources = 3;
+    // Number of sources deferred from a previous interval.
+    optional int32 carryover_sources = 4;
+    // Number of sources deferred to the next interval due to lack of events.
+    optional int32 deferred_sources = 5;
+  }
+  optional SourceCounts source_counts = 10;
+
   // List of Entries containing the main UKM data.
   repeated Entry entries = 4;
 
diff --git a/tools/mb/mb_config.pyl b/tools/mb/mb_config.pyl
index 2551e896..ab36f56 100644
--- a/tools/mb/mb_config.pyl
+++ b/tools/mb/mb_config.pyl
@@ -1091,7 +1091,7 @@
     ],
 
     'cfi_full_diag_icall_release_static_dcheck_always_on': [
-      'cfi_full', 'cfi_diag', 'cfi_icall', 'thin_lto', 'release', 'static', 'dcheck_always_on',
+      'cfi_full', 'cfi_diag', 'cfi_icall', 'clang_tot', 'thin_lto', 'release', 'static', 'dcheck_always_on',
     ],
 
     'chromeos_asan_lsan_edge_fuzzer_v8_heap_release_bot': [
@@ -1888,7 +1888,7 @@
     # size of chrome installer which are downloaded by bysecting script many
     # times.
     'enable_archive_compression': {
-      'gn_args': 'enable_archive_compression=true',
+      'gn_args': 'skip_archive_compression=false',
     },
 
     # This mixin is used to force configs that use it to fail. It
diff --git a/tools/metrics/actions/actions.xml b/tools/metrics/actions/actions.xml
index 1e82aaaf..3b9131f 100644
--- a/tools/metrics/actions/actions.xml
+++ b/tools/metrics/actions/actions.xml
@@ -15904,6 +15904,30 @@
   <description>Please enter the description of this user action.</description>
 </action>
 
+<action name="RelaunchRecommendedShown">
+  <owner>grt@chromium.org</owner>
+  <description>
+    A bubble was shown to the user to indicate that their administrator
+    recommends that Chrome be relaunched.
+  </description>
+</action>
+
+<action name="RelaunchRecommended_Accept">
+  <owner>grt@chromium.org</owner>
+  <description>
+    The user accepted to relaunch Chrome in response to a bubble indicating that
+    their administrator recommended that Chrome be relaunched.
+  </description>
+</action>
+
+<action name="RelaunchRecommended_Close">
+  <owner>grt@chromium.org</owner>
+  <description>
+    The bubble indicating to the user that their administrator recommends a
+    browser relaunch was closed by the user.
+  </description>
+</action>
+
 <action name="Reload">
   <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
   <description>Please enter the description of this user action.</description>
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml
index ebadf4d..c437666b 100644
--- a/tools/metrics/histograms/enums.xml
+++ b/tools/metrics/histograms/enums.xml
@@ -6016,6 +6016,8 @@
 <!-- Generated from net/base/net_error_list.h.
 Called by update_net_error_codes.py.-->
 
+  <int value="-1478" label="SSL_CLIENT_AUTH_NO_COMMON_ALGORITHMS"/>
+  <int value="-807" label="DNS_HTTP_FAILED"/>
   <int value="-806" label="DNS_SORT_ERROR"/>
   <int value="-805" label="DNS_SEARCH_EMPTY"/>
   <int value="-804" label="DNS_CACHE_MISS"/>
@@ -6048,6 +6050,7 @@
   <int value="-503" label="ADD_USER_CERT_FAILED"/>
   <int value="-502" label="NO_PRIVATE_KEY_FOR_CERT"/>
   <int value="-501" label="INSECURE_RESPONSE"/>
+  <int value="-411" label="CACHE_ENTRY_NOT_SUITABLE"/>
   <int value="-410" label="CACHE_AUTH_FAILURE_AFTER_READ"/>
   <int value="-409" label="CACHE_LOCK_TIMEOUT"/>
   <int value="-408" label="CACHE_CHECKSUM_MISMATCH"/>
@@ -6059,6 +6062,8 @@
   <int value="-402" label="CACHE_WRITE_FAILURE"/>
   <int value="-401" label="CACHE_READ_FAILURE"/>
   <int value="-400" label="CACHE_MISS"/>
+  <int value="-374" label="SPDY_CLAIMED_PUSHED_STREAM_RESET_BY_SERVER"/>
+  <int value="-373" label="SPDY_PUSHED_STREAM_NOT_AVAILABLE"/>
   <int value="-372" label="SPDY_RST_STREAM_NO_ERROR_RECEIVED"/>
   <int value="-371" label="CONTENT_DECODING_INIT_FAILED"/>
   <int value="-370" label="INVALID_HTTP_RESPONSE"/>
@@ -6118,7 +6123,8 @@
   <int value="-302" label="UNKNOWN_URL_SCHEME"/>
   <int value="-301" label="DISALLOWED_URL_SCHEME"/>
   <int value="-300" label="INVALID_URL"/>
-  <int value="-215" label="CERT_END"/>
+  <int value="-216" label="CERT_END"/>
+  <int value="-215" label="CERT_SYMANTEC_LEGACY"/>
   <int value="-214" label="CERTIFICATE_TRANSPARENCY_REQUIRED"/>
   <int value="-213" label="CERT_VALIDITY_TOO_LONG"/>
   <int value="-212" label="CERT_NAME_CONSTRAINT_VIOLATION"/>
@@ -9023,6 +9029,23 @@
   <int value="80" label="Lock Screen Note App Toast"/>
 </enum>
 
+<enum name="DialogOriginRelationship">
+  <int value="1" label="non-HTTP(S) main frame"/>
+  <int value="2" label="HTTP(S) main frame, alerting frame is the main frame"/>
+  <int value="3"
+      label="HTTP(S) main frame, HTTP(S) alerting frame, alerting frame
+             same-origin as main frame"/>
+  <int value="4"
+      label="HTTP(S) main frame, HTTP(S) alerting frame, alerting frame
+             different-origin to main frame"/>
+  <int value="5"
+      label="HTTP(S) main frame, non-HTTP(S) alerting frame, alerting frame's
+             nearest HTTP(S) ancestor same-origin as main frame"/>
+  <int value="6"
+      label="HTTP(S) main frame, non-HTTP(S) alerting frame, alerting frame's
+             nearest HTTP(S) ancestor different-origin to main frame"/>
+</enum>
+
 <enum name="DidNavigateToAd">
   <int value="0" label="Navigated to Non-Ad"/>
   <int value="1" label="Navigated to Ad"/>
@@ -20808,6 +20831,9 @@
 </enum>
 
 <enum name="GPUBlacklistFeatureTestResultsWindows">
+  <obsolete>
+    Replaced by GPUBlacklistFeatureTestResultsWindows2 in M67.
+  </obsolete>
   <summary>
     Results of testing against a GPU feature being allowed/blacklisted/disabled
     in various Windows sub-versions.
@@ -20829,6 +20855,75 @@
   <int value="14" label="User-disabled Win8"/>
 </enum>
 
+<enum name="GPUBlacklistFeatureTestResultsWindows2">
+  <summary>
+    Results of testing against a GPU feature being allowed, blacklisted,
+    disabled, fallback to software, or undefined in various Windows
+    sub-versions.
+  </summary>
+  <int value="0" label="Enabled PRE_XP"/>
+  <int value="1" label="Blacklisted PRE_XP"/>
+  <int value="2" label="User Disabled PRE_XP"/>
+  <int value="3" label="Fallback to Software PRE_XP"/>
+  <int value="4" label="Status Unknown PRE_XP"/>
+  <int value="5" label="Enabled XP"/>
+  <int value="6" label="Blacklisted XP"/>
+  <int value="7" label="User Disabled XP"/>
+  <int value="8" label="Fallback to Software XP"/>
+  <int value="9" label="Status Unknown XP"/>
+  <int value="10" label="Enabled SERVER_2003"/>
+  <int value="11" label="Blacklisted SERVER_2003"/>
+  <int value="12" label="User Disabled SERVER_2003"/>
+  <int value="13" label="Fallback to Software SERVER_2003"/>
+  <int value="14" label="Status Unknown SERVER_2003"/>
+  <int value="15" label="Enabled VISTA"/>
+  <int value="16" label="Blacklisted VISTA"/>
+  <int value="17" label="User Disabled VISTA"/>
+  <int value="18" label="Fallback to Software VISTA"/>
+  <int value="19" label="Status Unknown VISTA"/>
+  <int value="20" label="Enabled WIN7"/>
+  <int value="21" label="Blacklisted WIN7"/>
+  <int value="22" label="User Disabled WIN7"/>
+  <int value="23" label="Fallback to Software WIN7"/>
+  <int value="24" label="Status Unknown WIN7"/>
+  <int value="25" label="Enabled WIN8"/>
+  <int value="26" label="Blacklisted WIN8"/>
+  <int value="27" label="User Disabled WIN8"/>
+  <int value="28" label="Fallback to Software WIN8"/>
+  <int value="29" label="Status Unknown WIN8"/>
+  <int value="30" label="Enabled WIN8_1"/>
+  <int value="31" label="Blacklisted WIN8_1"/>
+  <int value="32" label="User Disabled WIN8_1"/>
+  <int value="33" label="Fallback to Software WIN8_1"/>
+  <int value="34" label="Status Unknown WIN8_1"/>
+  <int value="35" label="Enabled WIN10"/>
+  <int value="36" label="Blacklisted WIN10"/>
+  <int value="37" label="User Disabled WIN10"/>
+  <int value="38" label="Fallback to Software WIN10"/>
+  <int value="39" label="Status Unknown WIN10"/>
+  <int value="40" label="Enabled WIN10_TH2"/>
+  <int value="41" label="Blacklisted WIN10_TH2"/>
+  <int value="42" label="User Disabled WIN10_TH2"/>
+  <int value="43" label="Fallback to Software WIN10_TH2"/>
+  <int value="44" label="Status Unknown WIN10_TH2"/>
+  <int value="45" label="Enabled WIN10_RS1"/>
+  <int value="46" label="Blacklisted WIN10_RS1"/>
+  <int value="47" label="User Disabled WIN10_RS1"/>
+  <int value="48" label="Fallback to Software WIN10_RS1"/>
+  <int value="49" label="Status Unknown WIN10_RS1"/>
+  <int value="50" label="Enabled WIN10_RS2"/>
+  <int value="51" label="Blacklisted WIN10_RS2"/>
+  <int value="52" label="User Disabled WIN10_RS2"/>
+  <int value="53" label="Fallback to Software WIN10_RS2"/>
+  <int value="54" label="Status Unknown WIN10_RS2"/>
+  <int value="55" label="Enabled WIN10_RS3"/>
+  <int value="56" label="Blacklisted WIN10_RS3"/>
+  <int value="57" label="User Disabled WIN10_RS3"/>
+  <int value="58" label="Fallback to Software WIN10_RS3"/>
+  <int value="59" label="Status Unknown WIN10_RS3"/>
+  <int value="60" label="Unknown Windows Version"/>
+</enum>
+
 <enum name="GPUBlacklistTestResultPerEntry">
   <summary>Results of testing against the GPU blacklist entries.</summary>
   <int value="0" label="TotalCount"/>
@@ -22476,6 +22571,13 @@
   <int value="1" label="Some stored passwords from IE7 found."/>
 </enum>
 
+<enum name="ImageCaptureOutcome">
+  <int value="0" label="Succeeded using video stream"/>
+  <int value="1" label="Succeeded using photo stream"/>
+  <int value="2" label="Failed using video stream"/>
+  <int value="3" label="Failed using photo stream"/>
+</enum>
+
 <enum name="IMECommitType">
   <obsolete>
     Deprecated 03/2015, and replaced by IMECommitType2.
@@ -29824,7 +29926,8 @@
   <int value="212" label="CERT_NAME_CONSTRAINT_VIOLATION"/>
   <int value="213" label="CERT_VALIDITY_TOO_LONG"/>
   <int value="214" label="CERTIFICATE_TRANSPARENCY_REQUIRED"/>
-  <int value="215" label="CERT_END"/>
+  <int value="215" label="CERT_SYMANTEC_LEGACY"/>
+  <int value="216" label="CERT_END"/>
   <int value="300" label="INVALID_URL"/>
   <int value="301" label="DISALLOWED_URL_SCHEME"/>
   <int value="302" label="UNKNOWN_URL_SCHEME"/>
@@ -29885,6 +29988,8 @@
   <int value="370" label="INVALID_HTTP_RESPONSE"/>
   <int value="371" label="CONTENT_DECODING_INIT_FAILED"/>
   <int value="372" label="SPDY_RST_STREAM_NO_ERROR_RECEIVED"/>
+  <int value="373" label="SPDY_PUSHED_STREAM_NOT_AVAILABLE"/>
+  <int value="374" label="SPDY_CLAIMED_PUSHED_STREAM_RESET_BY_SERVER"/>
   <int value="400" label="CACHE_MISS"/>
   <int value="401" label="CACHE_READ_FAILURE"/>
   <int value="402" label="CACHE_WRITE_FAILURE"/>
@@ -29896,6 +30001,7 @@
   <int value="408" label="CACHE_CHECKSUM_MISMATCH"/>
   <int value="409" label="CACHE_LOCK_TIMEOUT"/>
   <int value="410" label="CACHE_AUTH_FAILURE_AFTER_READ"/>
+  <int value="411" label="CACHE_ENTRY_NOT_SUITABLE"/>
   <int value="501" label="INSECURE_RESPONSE"/>
   <int value="502" label="NO_PRIVATE_KEY_FOR_CERT"/>
   <int value="503" label="ADD_USER_CERT_FAILED"/>
@@ -29928,6 +30034,8 @@
   <int value="804" label="DNS_CACHE_MISS"/>
   <int value="805" label="DNS_SEARCH_EMPTY"/>
   <int value="806" label="DNS_SORT_ERROR"/>
+  <int value="807" label="DNS_HTTP_FAILED"/>
+  <int value="1478" label="SSL_CLIENT_AUTH_NO_COMMON_ALGORITHMS"/>
 </enum>
 
 <enum name="NetErrorNavigationCorrectionTypes">
@@ -31942,6 +32050,13 @@
       label="Account was not seeded before FireRefreshTokenAvailable"/>
 </enum>
 
+<enum name="OfflineItemsStateAtCancel">
+  <int value="0" label="Downloading"/>
+  <int value="1" label="Paused"/>
+  <int value="2" label="Pending network connection"/>
+  <int value="3" label="Pending another download completion"/>
+</enum>
+
 <enum name="OfflinePagePrefetchNotificationAction">
   <int value="0" label="Attempt to show pending content check"/>
   <int value="1" label="Showed notification"/>
@@ -36839,6 +36954,7 @@
   <int value="13" label="Mismatched sender id"/>
   <int value="14" label="Storage corrupt"/>
   <int value="15" label="Renderer shutdown"/>
+  <int value="16" label="Successful - cached, but invalidated on server"/>
 </enum>
 
 <enum name="PushUnregistrationReason">
@@ -37384,6 +37500,12 @@
   <int value="1" label="Increment"/>
 </enum>
 
+<enum name="RelaunchNotificationShowResult">
+  <int value="0" label="Shown"/>
+  <int value="1" label="Not shown for unknown reason"/>
+  <int value="2" label="Not shown due to background mode with no windows"/>
+</enum>
+
 <enum name="RemoteHungProcessTerminateReason">
   <int value="1" label="Terminate accepted by user"/>
   <int value="2" label="No visible windows found"/>
@@ -37732,6 +37854,7 @@
   <int value="7" label="Erased: browsing data removed"/>
   <int value="8" label="Erased: Reporting shut down"/>
   <int value="9" label="Delivered"/>
+  <int value="10" label="Discarded: Background sync not allowed"/>
 </enum>
 
 <enum name="ReportProcessingResult">
@@ -41376,6 +41499,8 @@
   <int value="12" label="CERT_WEAK_KEY_DH"/>
   <int value="13" label="CERT_PINNED_KEY_MISSING"/>
   <int value="14" label="CERT_VALIDITY_TOO_LONG"/>
+  <int value="15" label="CERTIFICATE_TRANSPARENCY_REQUIRED"/>
+  <int value="16" label="CERT_SYMANTEC_LEGACY"/>
 </enum>
 
 <enum name="SSLFailureState">
@@ -41678,8 +41803,9 @@
   <int value="11" label="Content setting: allowed while UI suppressed"/>
   <int value="12" label="Forced filtering toggled on via devtools"/>
   <int value="13"
-      label="UI suppressed and resources blocked (Forced Activation)"/>
-  <int value="14" label="Blocked popup (Strong Popup Blocker)"/>
+      label="UI suppressed and resources blocked (Forced Activation)
+             (Deprecated)"/>
+  <int value="14" label="Blocked popup (Strong Popup Blocker) (Deprecated)"/>
 </enum>
 
 <enum name="SubresourceFilterActivationDecision">
@@ -44590,6 +44716,12 @@
   <int value="9" label="Video capture service timeout canceled"/>
 </enum>
 
+<enum name="VideoCaptureWinBackendUsed">
+  <int value="0" label="Using DirectShow as default"/>
+  <int value="1" label="Using MediaFoundation as default"/>
+  <int value="2" label="Using DirectShow as fallback"/>
+</enum>
+
 <enum name="VideoCodec">
   <int value="0" label="kUnknownVideoCodec"/>
   <int value="1" label="kCodecH264"/>
diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml
index 833fee3..fff6d32 100644
--- a/tools/metrics/histograms/histograms.xml
+++ b/tools/metrics/histograms/histograms.xml
@@ -1380,6 +1380,14 @@
   </summary>
 </histogram>
 
+<histogram base="true" name="Android.OfflineItems.StateAtCancel"
+    enum="OfflineItemsStateAtCancel">
+  <owner>chili@chromium.org</owner>
+  <summary>
+    State of a download or offline page request at user-initiated cancel.
+  </summary>
+</histogram>
+
 <histogram name="Android.PackageStats.CacheSize" units="MB">
   <owner>mariakhomenko@chromium.org</owner>
   <summary>
@@ -27988,6 +27996,18 @@
 
 <histogram name="GPU.BlacklistFeatureTestResultsWindows"
     enum="GPUBlacklistFeatureTestResultsWindows">
+  <obsolete>
+    Replaced by GPU.BlacklistFeatureTestResultsWindows2 in M67.
+  </obsolete>
+  <owner>vmiura@chromium.org</owner>
+  <summary>
+    Counts number of browser invocations for which a GPU feature is
+    allowed/blacklisted/disabled in various Windows sub-versions.
+  </summary>
+</histogram>
+
+<histogram name="GPU.BlacklistFeatureTestResultsWindows2"
+    enum="GPUBlacklistFeatureTestResultsWindows2">
   <owner>vmiura@chromium.org</owner>
   <summary>
     Counts number of browser invocations for which a GPU feature is
@@ -32271,6 +32291,15 @@
   </summary>
 </histogram>
 
+<histogram base="true" name="JSDialogs.OriginRelationship"
+    enum="DialogOriginRelationship">
+  <owner>avi@chromium.org</owner>
+  <summary>
+    For dialogs, the relationship of the origins of the main frame vs the
+    alerting frame.
+  </summary>
+</histogram>
+
 <histogram base="true" name="JSDialogs.Scheme" enum="NavigationScheme">
   <owner>avi@chromium.org</owner>
   <summary>The scheme of the URL showing a JavaScript dialog.</summary>
@@ -36752,6 +36781,56 @@
   </summary>
 </histogram>
 
+<histogram name="Media.VideoCapture.Windows.BackendUsed"
+    enum="VideoCaptureWinBackendUsed">
+  <owner>chfremer@chromium.org</owner>
+  <summary>
+    Indicates which video capture backend is used on Windows. A count is
+    recorded each time a new VideoCaptureDeviceFactoryWin instance is created.
+  </summary>
+</histogram>
+
+<histogram base="true" name="Media.VideoCapture.Windows.ImageCaptureOutcome"
+    enum="ImageCaptureOutcome">
+  <owner>chfremer@chromium.org</owner>
+  <summary>
+    Counts number of times taking a still image on Windows fails/succeeds.
+  </summary>
+</histogram>
+
+<histogram
+    name="Media.VideoCapture.Windows.NumberOfRetriesNeededForMFGetAvailableDeviceMediaType"
+    units="retries">
+  <owner>chfremer@chromium.org</owner>
+  <summary>
+    Counts how many retries are needed for calls to MediaFoundation function
+    GetAvailableDeviceMediaType before getting a result different from
+    MF_E_INVALIDREQUEST or giving up.
+  </summary>
+</histogram>
+
+<histogram
+    name="Media.VideoCapture.Windows.NumberOfRetriesNeededForMFGetDeviceStreamCategory"
+    units="retries">
+  <owner>chfremer@chromium.org</owner>
+  <summary>
+    Counts how many retries are needed for calls to MediaFoundation function
+    GetDeviceStreamCategory before getting a result different from
+    MF_E_INVALIDREQUEST or giving up.
+  </summary>
+</histogram>
+
+<histogram
+    name="Media.VideoCapture.Windows.NumberOfRetriesNeededForMFGetDeviceStreamCount"
+    units="retries">
+  <owner>chfremer@chromium.org</owner>
+  <summary>
+    Counts how many retries are needed for calls to MediaFoundation function
+    GetDeviceStreamCount before getting a result different from
+    MF_E_INVALIDREQUEST or giving up.
+  </summary>
+</histogram>
+
 <histogram name="Media.VideoCaptureApi.Mac" enum="CaptureApiMac">
   <owner>mcasas@chromium.org</owner>
   <summary>
@@ -40972,6 +41051,16 @@
   </summary>
 </histogram>
 
+<histogram name="Navigation.Renderer.ReadyToCommitUntilCommit" units="ms">
+  <owner>arthursonzogni@chromium.org</owner>
+  <owner>clamy@chromium.org</owner>
+  <owner>nasko@chromium.org</owner>
+  <summary>
+    The time needed in the renderer process between receiving the message to
+    commit the navigation until the navigation has committed.
+  </summary>
+</histogram>
+
 <histogram name="Navigation.Scheduled.MaybeCausedAbort"
     enum="ScheduledNavigationType">
   <owner>csharrison@chromium.org</owner>
@@ -70871,6 +70960,14 @@
   <summary>Log each stage of a recovery component event.</summary>
 </histogram>
 
+<histogram base="true" name="RelaunchNotification.ShowResult"
+    enum="RelaunchNotificationShowResult">
+  <owner>grt@chromium.org</owner>
+  <summary>
+    The result of an attempt to show a relaunch notification dialog.
+  </summary>
+</histogram>
+
 <histogram name="Render.Workers.MaxWorkerCountInRendererProcess">
   <obsolete>
     Deprecated Dec 2016. This metric did not report the number of shared workers
@@ -87716,6 +87813,15 @@
   </summary>
 </histogram>
 
+<histogram name="SubresourceFilter.PageLoad.ForcedActivation.DisallowedLoad"
+    enum="Boolean">
+  <owner>csharrison@chromium.org</owner>
+  <summary>
+    Logged when the first resource is disallowed from a page with forced
+    activation. For example, if the devtools ad blocking option is set.
+  </summary>
+</histogram>
+
 <histogram name="SubresourceFilter.PageLoad.NumSubresourceLoads.Disallowed"
     units="resource loads">
   <owner>pkalinnikov@chromium.org</owner>
@@ -99934,6 +100040,22 @@
   </summary>
 </histogram>
 
+<histogram name="WebRTC.Audio.EchoCanceller.MaxSkewShiftCount"
+    units="events/minute">
+  <owner>peah@chromium.org</owner>
+  <summary>
+    This histogram logs the number of times per minute that the WebRTC echo
+    canceller detects a shift in the skew between the total number of render and
+    capture calls. The metric is reported once per minute and the report is done
+    also for the case of 0 detected skew shifts have been detected. The amount
+    of skew shifts per minute is capped to 20. The metric is reported separately
+    for each render process. The metric is only reported for render processes
+    where the WebRTC echo canceller is active in and there is both audio being
+    played out and captured simultaneously. The reporting is only done when the
+    browser is awake.
+  </summary>
+</histogram>
+
 <histogram name="WebRTC.Audio.EchoCanceller.ModelBasedAecFeasible"
     enum="Boolean">
   <owner>peah@chromium.org</owner>
@@ -105889,6 +106011,7 @@
   <suffix name="Webgl2" label="Webgl2"/>
   <affected-histogram name="GPU.BlacklistFeatureTestResults"/>
   <affected-histogram name="GPU.BlacklistFeatureTestResultsWindows"/>
+  <affected-histogram name="GPU.BlacklistFeatureTestResultsWindows2"/>
 </histogram_suffixes>
 
 <histogram_suffixes name="GpuMemoryAllocator2" separator=".">
@@ -106469,6 +106592,7 @@
   <suffix name="BeforeUnload" label="dialog caused by window.onbeforeunload"/>
   <affected-histogram name="JSDialogs.DismissalCause"/>
   <affected-histogram name="JSDialogs.IsForemost"/>
+  <affected-histogram name="JSDialogs.OriginRelationship"/>
   <affected-histogram name="JSDialogs.Scheme"/>
   <affected-histogram name="JSDialogs.SiteEngagementOfDialogs"/>
 </histogram_suffixes>
@@ -107418,6 +107542,7 @@
   <suffix name="Reload" label="Reload"/>
   <affected-histogram name="Navigation.IsSameProcess"/>
   <affected-histogram name="Navigation.ReadyToCommitUntilCommit"/>
+  <affected-histogram name="Navigation.Renderer.ReadyToCommitUntilCommit"/>
   <affected-histogram name="Navigation.TimeToReadyToCommit"/>
 </histogram_suffixes>
 
@@ -109424,6 +109549,12 @@
   <affected-histogram name="SBOffDomainInclusion2.Abort"/>
 </histogram_suffixes>
 
+<histogram_suffixes name="OfflineItemsSource" separator=".">
+  <suffix name="Downloads" label="Downloads"/>
+  <suffix name="OffinePages" label="Offline pages"/>
+  <affected-histogram name="Android.OfflineItems.StateAtCancel"/>
+</histogram_suffixes>
+
 <histogram_suffixes name="OfflinePagesArchiveDirectoryType" separator=".">
   <suffix name="Temporary" label="Temporary archive directory"/>
   <suffix name="Persistent" label="Persistent archive directory"/>
@@ -111502,6 +111633,12 @@
   <affected-histogram name="SafeBrowsing.ReferrerURLChainSize"/>
 </histogram_suffixes>
 
+<histogram_suffixes name="RelaunchNotificationStyle" separator=".">
+  <suffix name="Recommended" label="The relaunch recommended bubble."/>
+  <suffix name="Required" label="The relaunch required dialog."/>
+  <affected-histogram name="RelaunchNotification.ShowResult"/>
+</histogram_suffixes>
+
 <histogram_suffixes name="RemoteProcessWarmStartFast" separator="">
   <suffix name="" label="Normal start."/>
   <suffix name="Fast"
@@ -114064,6 +114201,17 @@
   <affected-histogram name="Welcome.Win10.PinnedPromptResult"/>
 </histogram_suffixes>
 
+<histogram_suffixes name="WindowsImageCaptureOutcomeCategories" separator=".">
+  <suffix name="DirectShowAnyRes" label="Using DirectShow at any resolution."/>
+  <suffix name="DirectShowHighRes"
+      label="Using DirectShow at high resolution (width &gt; 1920)."/>
+  <suffix name="MediaFoundationAnyRes"
+      label="Using MediaFoundation at any resolution."/>
+  <suffix name="MediaFoundationHighRes"
+      label="Using MediaFoundation at high resolution (width &gt; 1920)."/>
+  <affected-histogram name="Media.VideoCapture.Windows.ImageCaptureOutcome"/>
+</histogram_suffixes>
+
 <histogram_suffixes name="WrenchMenuActionTimings" separator=".">
   <suffix name="NewTab"/>
   <suffix name="NewWindow"/>
diff --git a/tools/metrics/ukm/ukm.xml b/tools/metrics/ukm/ukm.xml
index 3038dc9..dbd7301 100644
--- a/tools/metrics/ukm/ukm.xml
+++ b/tools/metrics/ukm/ukm.xml
@@ -1009,6 +1009,7 @@
     and the new number of significant media playbacks that occured this visit.
   </summary>
   <metric name="Engagement.IsHigh"/>
+  <metric name="Engagement.IsPreloaded"/>
   <metric name="Engagement.Score"/>
   <metric name="Playbacks.Delta"/>
   <metric name="Playbacks.SecondsSinceLast"/>
@@ -2662,6 +2663,11 @@
       Duration of activity in seconds up to last activity.
     </summary>
   </metric>
+  <metric name="RecentVideoPlayingTime">
+    <summary>
+      Recent video playing time in seconds.
+    </summary>
+  </metric>
   <metric name="ScreenDimDelay">
     <summary>
       Delay after which the screen will be dimmed in seconds.
@@ -2689,6 +2695,11 @@
       Time from last mouse or touch event in seconds.
     </summary>
   </metric>
+  <metric name="TimeSinceLastVideoEnded">
+    <summary>
+      Time from the end of the last video playing in seconds.
+    </summary>
+  </metric>
 </event>
 
 <event name="UserActivityId">
@@ -2886,6 +2897,14 @@
     Records properties of page use in XR, including VR browsing and WebXR
     presentation.
   </summary>
+  <metric name="Duration">
+    <summary>
+      The approximate amount of time the user spends on a page in XR in seconds.
+      Times are reported accurately when low, for example, under a minute, and
+      get rounded to minutes and then hours as they get larger. This is done by
+      SessionTracker::GetRoundedDurationInSeconds.
+    </summary>
+  </metric>
   <metric name="EnteredFullscreen">
     <summary>
       A boolean that is set to 1 if the user requested fullscreen while in XR on
@@ -2894,9 +2913,23 @@
   </metric>
   <metric name="TimeOnPage">
     <summary>
-      The aproximate amount of time the user spends on a page in XR in seconds.
+      Deprecated.
+    </summary>
+  </metric>
+</event>
+
+<event name="XR.WebXR.PresentationSession">
+  <owner>offenwanger@chromium.org</owner>
+  <summary>
+    Records data for a presentation session, where WebXR is running an exclusive
+    presentation to some device.
+  </summary>
+  <metric name="Duration">
+    <summary>
+      The approximate amount of time the user spends in presentation in seconds.
       Times are reported accurately when low, for example, under a minute, and
-      get rounded to minutes and then hours as they get larger.
+      get rounded to minutes and then hours as they get larger.  This is done by
+      SessionTracker::GetRoundedDurationInSeconds.
     </summary>
   </metric>
 </event>
diff --git a/tools/perf/contrib/cluster_telemetry/leak_detection_ct.py b/tools/perf/contrib/cluster_telemetry/leak_detection_ct.py
index 9927aa96f..4e941e3e 100644
--- a/tools/perf/contrib/cluster_telemetry/leak_detection_ct.py
+++ b/tools/perf/contrib/cluster_telemetry/leak_detection_ct.py
@@ -27,7 +27,8 @@
         try:
           py_utils.WaitFor(action_runner.tab.HasReachedQuiescence, timeout=30)
         except py_utils.TimeoutException:
-          action_runner.tab.WaitForDocumentReadyStateToBeComplete()
+          # Conduct leak detection whether or not loading has finished
+          pass
         action_runner.Navigate('about:blank')
         action_runner.PrepareForLeakDetection()
         action_runner.MeasureMemory(True)
diff --git a/tools/perf/contrib/leak_detection/page_sets.py b/tools/perf/contrib/leak_detection/page_sets.py
index 1c5b0a0..da3c036 100644
--- a/tools/perf/contrib/leak_detection/page_sets.py
+++ b/tools/perf/contrib/leak_detection/page_sets.py
@@ -71,7 +71,6 @@
       'https://www.yahoo.com',
       'http://www.quora.com',
       'https://www.macys.com',
-      'https://www.reddit.com',
       'http://infomoney.com.br',
       'http://www.listindiario.com',
     ]
diff --git a/tools/perf/expectations.config b/tools/perf/expectations.config
index f9468606..fa253581 100644
--- a/tools/perf/expectations.config
+++ b/tools/perf/expectations.config
@@ -198,10 +198,6 @@
 # Benchmark: smoothness.tough_webgl_ad_cases
 crbug.com/574485 [ Android_Svelte ] smoothness.tough_webgl_ad_cases/* [ Skip ]
 
-# Benchmark: speedometer2-future
-crbug.com/792495 [ Linux ] speedometer2-future/Speedometer2 [ Skip ]
-crbug.com/784025 [ Win ] speedometer2-future/Speedometer2 [ Skip ]
-
 # Benchmark: system_health.common_desktop
 crbug.com/728576 [ Mac ] system_health.common_desktop/browse:news:cnn [ Skip ]
 crbug.com/64939 [ All ] system_health.common_desktop/play:media:pandora [ Skip ]
diff --git a/tools/perf/measurements/multipage_skpicture_printer_unittest.py b/tools/perf/measurements/multipage_skpicture_printer_unittest.py
index 736a9c9..14ae2132 100644
--- a/tools/perf/measurements/multipage_skpicture_printer_unittest.py
+++ b/tools/perf/measurements/multipage_skpicture_printer_unittest.py
@@ -21,14 +21,10 @@
   def tearDown(self):
     shutil.rmtree(self._mskp_outdir)
 
-  @decorators.Disabled('android')
+  # Picture printing is not supported on all platforms.
+  @decorators.Disabled('android', 'chromeos')
   def testSkpicturePrinter(self):
     ps = self.CreateStorySetFromFileInUnittestDataDir('blank.html')
     measurement = multipage_skpicture_printer.MultipageSkpicturePrinter(
         self._mskp_outdir)
-    results = self.RunMeasurement(measurement, ps, options=self._options)
-
-    # Picture printing is not supported on all platforms.
-    if results.failures:
-      assert 'not supported' in results.failures[0].exc_info[1].message
-      return
+    self.RunMeasurement(measurement, ps, options=self._options)
diff --git a/tools/fuchsia/run-swarmed.py b/tools/run-swarmed.py
similarity index 86%
rename from tools/fuchsia/run-swarmed.py
rename to tools/run-swarmed.py
index d963abe3..a55df65c 100755
--- a/tools/fuchsia/run-swarmed.py
+++ b/tools/run-swarmed.py
@@ -47,18 +47,25 @@
       'tools/swarming_client/swarming.py', 'trigger',
       '-S', 'https://chromium-swarm.appspot.com',
       '-I', 'https://isolateserver.appspot.com',
-      '-d', 'os', 'Linux',
       '-d', 'pool', 'Chrome',
+      '-s', isolated_hash,
+      '--dump-json', json_file,
+  ]
+  if args.target_os == 'fuchsia':
+    trigger_args += [
+      '-d', 'os', 'Linux',
       '-d', 'kvm', '1',
       '-d', 'gpu', 'none',
       '-d', 'cpu', args.arch,
-      '-s', isolated_hash,
-      '--dump-json', json_file,
+    ]
+  elif args.target_os == 'win':
+    trigger_args += [ '-d', 'os', 'Windows' ]
+  trigger_args += [
       '--',
       '--test-launcher-summary-output=${ISOLATED_OUTDIR}/output.json']
   if gtest_filter:
     trigger_args.append('--gtest_filter=' + gtest_filter)
-  else:
+  elif args.target_os == 'fuchsia':
     filter_file = \
         'testing/buildbot/filters/fuchsia.' + args.test_name + '.filter'
     if os.path.isfile(filter_file):
@@ -91,7 +98,9 @@
 
 def main():
   parser = argparse.ArgumentParser()
-  parser.add_argument('--out-dir', default='out/fuch', help='Build directory.')
+  parser.add_argument('-C', '--out-dir', default='out/fuch',
+                      help='Build directory.')
+  parser.add_argument('--target-os', default='detect', help='gn target_os')
   parser.add_argument('--test-name', '-t', required=True,
                       help='Name of test to run.')
   parser.add_argument('--arch', '-a', default='detect',
@@ -106,8 +115,22 @@
 
   args = parser.parse_args()
 
+  if args.target_os == 'detect':
+    with open(os.path.join(args.out_dir, 'args.gn')) as f:
+      gn_args = {}
+      for l in f:
+        l = l.split('#')[0].strip()
+        if not l: continue
+        k, v = map(str.strip, l.split('=', 1))
+        gn_args[k] = v
+    if 'target_os' in gn_args:
+      args.target_os = gn_args['target_os'].strip('"')
+    else:
+      args.target_os = { 'darwin': 'mac', 'linux2': 'linux', 'win32': 'win' }[
+                           sys.platform]
+
   # Determine the CPU architecture of the test binary, if not specified.
-  if args.arch == 'detect':
+  if args.arch == 'detect' and args.target_os == 'fuchsia':
     executable_info = subprocess.check_output(
         ['file', os.path.join(args.out_dir, args.test_name)])
     if 'ARM aarch64' in executable_info:
diff --git a/tools/v8_context_snapshot/BUILD.gn b/tools/v8_context_snapshot/BUILD.gn
index d6691a5..37622d67 100644
--- a/tools/v8_context_snapshot/BUILD.gn
+++ b/tools/v8_context_snapshot/BUILD.gn
@@ -17,26 +17,16 @@
   import("//build/config/android/rules.gni")
 }
 
-if (is_android) {
-  android_assets("v8_context_snapshot_assets") {
-    deps = [
-      ":v8_context_snapshot",
-    ]
-    sources = [
-      "$root_out_dir/v8_context_snapshot.bin",
-    ]
-    disable_compression = true
-  }
-}
-
 group("v8_context_snapshot") {
   if (use_v8_context_snapshot) {
     public_deps = [
       ":generate_v8_context_snapshot",
     ]
-    data = [
-      "$root_out_dir/v8_context_snapshot.bin",
-    ]
+    if (!is_android) {
+      data = [
+        "$root_out_dir/v8_context_snapshot.bin",
+      ]
+    }
   }
 }
 
@@ -47,6 +37,25 @@
 }
 
 if (use_v8_context_snapshot) {
+  if (is_android && enable_java_templates) {
+    android_assets("v8_context_snapshot_assets") {
+      deps = [
+        ":v8_context_snapshot",
+      ]
+      sources = [
+        "$root_out_dir/natives_blob.bin",
+      ]
+      renaming_sources = [ "$root_out_dir/v8_context_snapshot.bin" ]
+      if (current_cpu == "arm" || current_cpu == "x86" ||
+          current_cpu == "mipsel") {
+        renaming_destinations = [ "v8_context_snapshot_32.bin" ]
+      } else {
+        renaming_destinations = [ "v8_context_snapshot_64.bin" ]
+      }
+      disable_compression = true
+    }
+  }
+
   action("generate_v8_context_snapshot") {
     script = "//build/gn_run_binary.py"
     output_file = "$root_out_dir/v8_context_snapshot.bin"
diff --git a/ui/accessibility/ax_enum_util.cc b/ui/accessibility/ax_enum_util.cc
index d9bedb8..f47b11a 100644
--- a/ui/accessibility/ax_enum_util.cc
+++ b/ui/accessibility/ax_enum_util.cc
@@ -768,6 +768,8 @@
       return "horizontal";
     case ax::mojom::State::kHovered:
       return "hovered";
+    case ax::mojom::State::kIgnored:
+      return "ignored";
     case ax::mojom::State::kInvisible:
       return "invisible";
     case ax::mojom::State::kLinked:
@@ -814,6 +816,8 @@
     return ax::mojom::State::kHorizontal;
   if (0 == strcmp(state, "hovered"))
     return ax::mojom::State::kHovered;
+  if (0 == strcmp(state, "ignored"))
+    return ax::mojom::State::kIgnored;
   if (0 == strcmp(state, "invisible"))
     return ax::mojom::State::kInvisible;
   if (0 == strcmp(state, "linked"))
diff --git a/ui/accessibility/ax_enums.mojom b/ui/accessibility/ax_enums.mojom
index 4a2bfb2..7d0d2a3 100644
--- a/ui/accessibility/ax_enums.mojom
+++ b/ui/accessibility/ax_enums.mojom
@@ -230,6 +230,8 @@
    // Grows horizontally, e.g. most toolbars and separators.
   kHorizontal,
   kHovered,
+  // Skip over this node in the accessibility tree, but keep its subtree.
+  kIgnored,
   kInvisible,
   kLinked,
   kMultiline,
diff --git a/ui/accessibility/ax_event_generator.cc b/ui/accessibility/ax_event_generator.cc
index ce70c418..ec292c7 100644
--- a/ui/accessibility/ax_event_generator.cc
+++ b/ui/accessibility/ax_event_generator.cc
@@ -126,28 +126,39 @@
   DCHECK_EQ(tree_, tree);
 
   AddEvent(node, Event::STATE_CHANGED);
-  if (state == ax::mojom::State::kExpanded) {
-    AddEvent(node, new_value ? Event::EXPANDED : Event::COLLAPSED);
+  switch (state) {
+    case ax::mojom::State::kExpanded:
+      AddEvent(node, new_value ? Event::EXPANDED : Event::COLLAPSED);
 
-    // TODO(accessibility): tree in the midst of updates. Disallow access to
-    // |node|.
-    if (node->data().role == ax::mojom::Role::kRow ||
-        node->data().role == ax::mojom::Role::kTreeItem) {
+      // TODO(accessibility): tree in the midst of updates. Disallow access to
+      // |node|.
+      if (node->data().role == ax::mojom::Role::kRow ||
+          node->data().role == ax::mojom::Role::kTreeItem) {
+        ui::AXNode* container = node;
+        while (container && !ui::IsRowContainer(container->data().role))
+          container = container->parent();
+        if (container)
+          AddEvent(container, Event::ROW_COUNT_CHANGED);
+      }
+      break;
+    case ax::mojom::State::kSelected: {
+      AddEvent(node, Event::SELECTED_CHANGED);
       ui::AXNode* container = node;
-      while (container && !ui::IsRowContainer(container->data().role))
+      while (container &&
+             !ui::IsContainerWithSelectableChildrenRole(container->data().role))
         container = container->parent();
       if (container)
-        AddEvent(container, Event::ROW_COUNT_CHANGED);
+        AddEvent(container, Event::SELECTED_CHILDREN_CHANGED);
+      break;
     }
-  }
-  if (state == ax::mojom::State::kSelected) {
-    AddEvent(node, Event::SELECTED_CHANGED);
-    ui::AXNode* container = node;
-    while (container &&
-           !ui::IsContainerWithSelectableChildrenRole(container->data().role))
-      container = container->parent();
-    if (container)
-      AddEvent(container, Event::SELECTED_CHILDREN_CHANGED);
+    case ax::mojom::State::kIgnored: {
+      ui::AXNode* unignored_parent = node->GetUnignoredParent();
+      if (unignored_parent)
+        AddEvent(unignored_parent, Event::CHILDREN_CHANGED);
+      break;
+    }
+    default:
+      break;
   }
 }
 
diff --git a/ui/accessibility/ax_event_generator_unittest.cc b/ui/accessibility/ax_event_generator_unittest.cc
index 62b785b2..2d3f192 100644
--- a/ui/accessibility/ax_event_generator_unittest.cc
+++ b/ui/accessibility/ax_event_generator_unittest.cc
@@ -709,4 +709,69 @@
       DumpEvents(&event_generator));
 }
 
+TEST(AXEventGeneratorTest, NodeBecomesIgnored) {
+  AXTreeUpdate initial_state;
+  initial_state.root_id = 1;
+  initial_state.nodes.resize(5);
+  initial_state.nodes[0].id = 1;
+  initial_state.nodes[0].role = ax::mojom::Role::kRootWebArea;
+  initial_state.nodes[0].child_ids.push_back(2);
+  initial_state.nodes[1].id = 2;
+  initial_state.nodes[1].role = ax::mojom::Role::kArticle;
+  initial_state.nodes[1].child_ids.push_back(3);
+  initial_state.nodes[2].id = 3;
+  initial_state.nodes[2].role = ax::mojom::Role::kGroup;
+  initial_state.nodes[2].AddState(ax::mojom::State::kIgnored);
+  initial_state.nodes[2].child_ids.push_back(4);
+  initial_state.nodes[3].id = 4;
+  initial_state.nodes[3].role = ax::mojom::Role::kGroup;
+  initial_state.nodes[3].child_ids.push_back(5);
+  initial_state.nodes[4].id = 5;
+  initial_state.nodes[4].role = ax::mojom::Role::kStaticText;
+
+  AXTree tree(initial_state);
+
+  AXEventGenerator event_generator(&tree);
+  AXTreeUpdate update = initial_state;
+  update.nodes[3].AddState(ax::mojom::State::kIgnored);
+  EXPECT_TRUE(tree.Unserialize(update));
+  EXPECT_EQ(
+      "CHILDREN_CHANGED on 2, "
+      "STATE_CHANGED on 4",
+      DumpEvents(&event_generator));
+}
+
+TEST(AXEventGeneratorTest, NodeBecomesUnignored) {
+  AXTreeUpdate initial_state;
+  initial_state.root_id = 1;
+  initial_state.nodes.resize(5);
+  initial_state.nodes[0].id = 1;
+  initial_state.nodes[0].role = ax::mojom::Role::kRootWebArea;
+  initial_state.nodes[0].child_ids.push_back(2);
+  initial_state.nodes[1].id = 2;
+  initial_state.nodes[1].role = ax::mojom::Role::kArticle;
+  initial_state.nodes[1].child_ids.push_back(3);
+  initial_state.nodes[2].id = 3;
+  initial_state.nodes[2].role = ax::mojom::Role::kGroup;
+  initial_state.nodes[2].AddState(ax::mojom::State::kIgnored);
+  initial_state.nodes[2].child_ids.push_back(4);
+  initial_state.nodes[3].id = 4;
+  initial_state.nodes[3].role = ax::mojom::Role::kGroup;
+  initial_state.nodes[3].AddState(ax::mojom::State::kIgnored);
+  initial_state.nodes[3].child_ids.push_back(5);
+  initial_state.nodes[4].id = 5;
+  initial_state.nodes[4].role = ax::mojom::Role::kStaticText;
+
+  AXTree tree(initial_state);
+
+  AXEventGenerator event_generator(&tree);
+  AXTreeUpdate update = initial_state;
+  update.nodes[3].state = 0;
+  EXPECT_TRUE(tree.Unserialize(update));
+  EXPECT_EQ(
+      "CHILDREN_CHANGED on 2, "
+      "STATE_CHANGED on 4",
+      DumpEvents(&event_generator));
+}
+
 }  // namespace ui
diff --git a/ui/accessibility/ax_node.cc b/ui/accessibility/ax_node.cc
index 0b68701..130d47ee 100644
--- a/ui/accessibility/ax_node.cc
+++ b/ui/accessibility/ax_node.cc
@@ -21,6 +21,58 @@
 AXNode::~AXNode() {
 }
 
+int AXNode::GetUnignoredChildCount() const {
+  int count = 0;
+  for (int i = 0; i < child_count(); i++) {
+    AXNode* child = children_[i];
+    if (child->data().HasState(ax::mojom::State::kIgnored))
+      count += child->GetUnignoredChildCount();
+    else
+      count++;
+  }
+  return count;
+}
+
+AXNode* AXNode::GetUnignoredChildAtIndex(int index) const {
+  int count = 0;
+  for (int i = 0; i < child_count(); i++) {
+    AXNode* child = children_[i];
+    if (child->data().HasState(ax::mojom::State::kIgnored)) {
+      int nested_child_count = child->GetUnignoredChildCount();
+      if (index < count + nested_child_count)
+        return child->GetUnignoredChildAtIndex(index - count);
+      else
+        count += nested_child_count;
+    } else {
+      if (count == index)
+        return child;
+      else
+        count++;
+    }
+  }
+
+  return nullptr;
+}
+
+AXNode* AXNode::GetUnignoredParent() const {
+  AXNode* result = parent();
+  while (result && result->data().HasState(ax::mojom::State::kIgnored))
+    result = result->parent();
+  return result;
+}
+
+int AXNode::GetUnignoredIndexInParent() const {
+  AXNode* parent = GetUnignoredParent();
+  if (parent) {
+    for (int i = 0; i < parent->GetUnignoredChildCount(); ++i) {
+      if (parent->GetUnignoredChildAtIndex(i) == this)
+        return i;
+    }
+  }
+
+  return 0;
+}
+
 bool AXNode::IsTextNode() const {
   return data().role == ax::mojom::Role::kStaticText ||
          data().role == ax::mojom::Role::kLineBreak ||
diff --git a/ui/accessibility/ax_node.h b/ui/accessibility/ax_node.h
index 001f1991..c832a6a 100644
--- a/ui/accessibility/ax_node.h
+++ b/ui/accessibility/ax_node.h
@@ -33,6 +33,12 @@
   // Get the child at the given index.
   AXNode* ChildAtIndex(int index) const { return children_[index]; }
 
+  // Walking the tree skipping ignored nodes.
+  int GetUnignoredChildCount() const;
+  AXNode* GetUnignoredChildAtIndex(int index) const;
+  AXNode* GetUnignoredParent() const;
+  int GetUnignoredIndexInParent() const;
+
   // Returns true if the node has any of the text related roles.
   bool IsTextNode() const;
 
diff --git a/ui/accessibility/ax_tree_unittest.cc b/ui/accessibility/ax_tree_unittest.cc
index 06d0a25..81d8fb5 100644
--- a/ui/accessibility/ax_tree_unittest.cc
+++ b/ui/accessibility/ax_tree_unittest.cc
@@ -1318,4 +1318,34 @@
   EXPECT_TRUE(base::ContainsKey(reverse_labelled_by, 1));
 }
 
+TEST(AXTreeTest, SkipIgnoredNodes) {
+  AXTreeUpdate tree_update;
+  tree_update.root_id = 1;
+  tree_update.nodes.resize(5);
+  tree_update.nodes[0].id = 1;
+  tree_update.nodes[0].child_ids = {2, 3};
+  tree_update.nodes[1].id = 2;
+  tree_update.nodes[1].AddState(ax::mojom::State::kIgnored);
+  tree_update.nodes[1].child_ids = {4, 5};
+  tree_update.nodes[2].id = 3;
+  tree_update.nodes[3].id = 4;
+  tree_update.nodes[4].id = 5;
+
+  AXTree tree(tree_update);
+  AXNode* root = tree.root();
+  ASSERT_EQ(2, root->child_count());
+  ASSERT_EQ(2, root->ChildAtIndex(0)->id());
+  ASSERT_EQ(3, root->ChildAtIndex(1)->id());
+
+  EXPECT_EQ(3, root->GetUnignoredChildCount());
+  EXPECT_EQ(4, root->GetUnignoredChildAtIndex(0)->id());
+  EXPECT_EQ(5, root->GetUnignoredChildAtIndex(1)->id());
+  EXPECT_EQ(3, root->GetUnignoredChildAtIndex(2)->id());
+  EXPECT_EQ(0, root->GetUnignoredChildAtIndex(0)->GetUnignoredIndexInParent());
+  EXPECT_EQ(1, root->GetUnignoredChildAtIndex(1)->GetUnignoredIndexInParent());
+  EXPECT_EQ(2, root->GetUnignoredChildAtIndex(2)->GetUnignoredIndexInParent());
+
+  EXPECT_EQ(1, root->GetUnignoredChildAtIndex(0)->GetUnignoredParent()->id());
+}
+
 }  // namespace ui
diff --git a/ui/aura/local/window_port_local.cc b/ui/aura/local/window_port_local.cc
index 91bd629..787fbc5 100644
--- a/ui/aura/local/window_port_local.cc
+++ b/ui/aura/local/window_port_local.cc
@@ -118,14 +118,13 @@
 
 std::unique_ptr<cc::LayerTreeFrameSink>
 WindowPortLocal::CreateLayerTreeFrameSink() {
-  DCHECK(!frame_sink_id_.is_valid());
   auto* context_factory_private =
       aura::Env::GetInstance()->context_factory_private();
-  frame_sink_id_ = context_factory_private->AllocateFrameSinkId();
+  auto frame_sink_id = context_factory_private->AllocateFrameSinkId();
   auto frame_sink = std::make_unique<LayerTreeFrameSinkLocal>(
-      frame_sink_id_, context_factory_private->GetHostFrameSinkManager(),
+      frame_sink_id, context_factory_private->GetHostFrameSinkManager(),
       window_->GetName());
-  window_->SetEmbedFrameSinkId(frame_sink_id_);
+  window_->SetEmbedFrameSinkId(frame_sink_id);
   frame_sink->SetSurfaceChangedCallback(base::Bind(
       &WindowPortLocal::OnSurfaceChanged, weak_factory_.GetWeakPtr()));
   frame_sink_ = frame_sink->GetWeakPtr();
@@ -147,14 +146,10 @@
   return local_surface_id_;
 }
 
-viz::FrameSinkId WindowPortLocal::GetFrameSinkId() const {
-  return frame_sink_id_;
-}
-
 void WindowPortLocal::OnEventTargetingPolicyChanged() {}
 
 void WindowPortLocal::OnSurfaceChanged(const viz::SurfaceInfo& surface_info) {
-  DCHECK_EQ(surface_info.id().frame_sink_id(), frame_sink_id_);
+  DCHECK_EQ(surface_info.id().frame_sink_id(), window_->GetFrameSinkId());
   DCHECK_EQ(surface_info.id().local_surface_id(), local_surface_id_);
   window_->layer()->SetShowPrimarySurface(
       surface_info.id(), window_->bounds().size(), SK_ColorWHITE,
diff --git a/ui/aura/local/window_port_local.h b/ui/aura/local/window_port_local.h
index a4cabf3..58abd724 100644
--- a/ui/aura/local/window_port_local.h
+++ b/ui/aura/local/window_port_local.h
@@ -48,7 +48,6 @@
   std::unique_ptr<cc::LayerTreeFrameSink> CreateLayerTreeFrameSink() override;
   void AllocateLocalSurfaceId() override;
   const viz::LocalSurfaceId& GetLocalSurfaceId() override;
-  viz::FrameSinkId GetFrameSinkId() const override;
   void OnEventTargetingPolicyChanged() override;
   bool ShouldRestackTransientChildren() override;
 
@@ -56,7 +55,6 @@
   void OnSurfaceChanged(const viz::SurfaceInfo& surface_info);
 
   Window* const window_;
-  viz::FrameSinkId frame_sink_id_;
   gfx::Size last_size_;
   float last_device_scale_factor_ = 1.0f;
   viz::LocalSurfaceId local_surface_id_;
diff --git a/ui/aura/mus/text_input_client_impl.cc b/ui/aura/mus/text_input_client_impl.cc
index 9f926a77..514a69a 100644
--- a/ui/aura/mus/text_input_client_impl.cc
+++ b/ui/aura/mus/text_input_client_impl.cc
@@ -39,8 +39,8 @@
   text_input_client_->ClearCompositionText();
 }
 
-void TextInputClientImpl::InsertText(const std::string& text) {
-  text_input_client_->InsertText(base::UTF8ToUTF16(text));
+void TextInputClientImpl::InsertText(const base::string16& text) {
+  text_input_client_->InsertText(text);
 }
 
 void TextInputClientImpl::InsertChar(std::unique_ptr<ui::Event> event) {
diff --git a/ui/aura/mus/text_input_client_impl.h b/ui/aura/mus/text_input_client_impl.h
index 46bf153..5f5b98d 100644
--- a/ui/aura/mus/text_input_client_impl.h
+++ b/ui/aura/mus/text_input_client_impl.h
@@ -31,7 +31,7 @@
   void SetCompositionText(const ui::CompositionText& composition) override;
   void ConfirmCompositionText() override;
   void ClearCompositionText() override;
-  void InsertText(const std::string& text) override;
+  void InsertText(const base::string16& text) override;
   void InsertChar(std::unique_ptr<ui::Event> event) override;
   void DispatchKeyEventPostIME(
       std::unique_ptr<ui::Event> event,
diff --git a/ui/aura/mus/window_port_mus.cc b/ui/aura/mus/window_port_mus.cc
index a331d49..45dd67e 100644
--- a/ui/aura/mus/window_port_mus.cc
+++ b/ui/aura/mus/window_port_mus.cc
@@ -132,10 +132,12 @@
   return layer_tree_frame_sink;
 }
 
-viz::FrameSinkId WindowPortMus::GetFrameSinkId() const {
-  if (window_->IsEmbeddingClient())
-    return window_->embed_frame_sink_id();
-  return viz::FrameSinkId(0, server_id());
+viz::FrameSinkId WindowPortMus::GenerateFrameSinkIdFromServerId() const {
+  // With mus, the client does not know its own client id. So it uses a constant
+  // value of 0. This gets replaced in the server side with the correct value
+  // where appropriate.
+  constexpr int kClientSelfId = 0;
+  return viz::FrameSinkId(kClientSelfId, server_id());
 }
 
 WindowPortMus::ServerChangeIdType WindowPortMus::ScheduleChange(
@@ -332,14 +334,14 @@
     const viz::SurfaceInfo& surface_info) {
   if (!window_->IsEmbeddingClient()) {
     // |primary_surface_id_| shold not be valid, since we didn't know the
-    // |window_->embed_frame_sink_id()|.
+    // |window_->frame_sink_id()|.
     DCHECK(!primary_surface_id_.is_valid());
     window_->SetEmbedFrameSinkId(surface_info.id().frame_sink_id());
     UpdatePrimarySurfaceId();
   }
 
   // The frame sink id should never be changed.
-  DCHECK_EQ(surface_info.id().frame_sink_id(), window_->embed_frame_sink_id());
+  DCHECK_EQ(surface_info.id().frame_sink_id(), window_->GetFrameSinkId());
 
   fallback_surface_info_ = surface_info;
   UpdateClientSurfaceEmbedder();
@@ -568,10 +570,11 @@
                                                ->GetGpuMemoryBufferManager());
     local_layer_tree_frame_sink_ = client_layer_tree_frame_sink->GetWeakPtr();
     frame_sink = std::move(client_layer_tree_frame_sink);
+    window_->SetEmbedFrameSinkId(GenerateFrameSinkIdFromServerId());
   } else {
     auto* context_factory_private =
         aura::Env::GetInstance()->context_factory_private();
-    auto frame_sink_id = GetFrameSinkId();
+    auto frame_sink_id = window_->GetFrameSinkId();
     DCHECK(frame_sink_id.is_valid());
     auto layer_tree_frame_sink_local =
         std::make_unique<LayerTreeFrameSinkLocal>(
@@ -612,7 +615,7 @@
     return;
 
   primary_surface_id_ =
-      viz::SurfaceId(window_->embed_frame_sink_id(), local_surface_id_);
+      viz::SurfaceId(window_->GetFrameSinkId(), local_surface_id_);
   UpdateClientSurfaceEmbedder();
 }
 
@@ -640,7 +643,7 @@
   // TODO(fsamuel): Rename OnFirstSurfaceActivation() and set primary earlier
   // based on feedback from LayerTreeFrameSinkLocal.
   DCHECK(!base::FeatureList::IsEnabled(features::kMash));
-  DCHECK_EQ(surface_info.id().frame_sink_id(), GetFrameSinkId());
+  DCHECK_EQ(surface_info.id().frame_sink_id(), window_->GetFrameSinkId());
   DCHECK_EQ(surface_info.id().local_surface_id(), local_surface_id_);
   window_->layer()->SetShowPrimarySurface(
       surface_info.id(), window_->bounds().size(), SK_ColorWHITE,
diff --git a/ui/aura/mus/window_port_mus.h b/ui/aura/mus/window_port_mus.h
index c476ba5..8228ff8 100644
--- a/ui/aura/mus/window_port_mus.h
+++ b/ui/aura/mus/window_port_mus.h
@@ -99,10 +99,7 @@
       scoped_refptr<viz::ContextProvider> context_provider,
       gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager);
 
-  // WindowPort:
-  // Returns either the FrameSinkId set by window server or its server_id with
-  // the client id part 0.
-  viz::FrameSinkId GetFrameSinkId() const override;
+  viz::FrameSinkId GenerateFrameSinkIdFromServerId() const;
 
  private:
   friend class WindowPortMusTest;
@@ -311,7 +308,6 @@
   // for a local aura::Window, we need keep a weak ptr of it, so we can update
   // the local surface id when necessary.
   base::WeakPtr<cc::LayerTreeFrameSink> local_layer_tree_frame_sink_;
-  bool is_frame_sink_id_added_to_compositor_ = false;
 
   base::WeakPtrFactory<WindowPortMus> weak_ptr_factory_;
 
diff --git a/ui/aura/mus/window_tree_client.cc b/ui/aura/mus/window_tree_client.cc
index 4a12378..a75ee12 100644
--- a/ui/aura/mus/window_tree_client.cc
+++ b/ui/aura/mus/window_tree_client.cc
@@ -400,6 +400,11 @@
 void WindowTreeClient::RegisterWindowMus(WindowMus* window) {
   DCHECK(windows_.find(window->server_id()) == windows_.end());
   windows_[window->server_id()] = window;
+  if (window->GetWindow()) {
+    auto* port = WindowPortMus::Get(window->GetWindow());
+    window->GetWindow()->set_frame_sink_id(
+        port->GenerateFrameSinkIdFromServerId());
+  }
 }
 
 WindowMus* WindowTreeClient::GetWindowByServerId(ui::Id id) {
diff --git a/ui/aura/mus/window_tree_host_mus.cc b/ui/aura/mus/window_tree_host_mus.cc
index d3eddf7f..3acab45 100644
--- a/ui/aura/mus/window_tree_host_mus.cc
+++ b/ui/aura/mus/window_tree_host_mus.cc
@@ -62,7 +62,7 @@
   // In other cases, let a valid FrameSinkId be selected by
   // context_factory_private().
   CreateCompositor(base::FeatureList::IsEnabled(features::kMash)
-                       ? window_mus->GetFrameSinkId()
+                       ? window_mus->GenerateFrameSinkIdFromServerId()
                        : viz::FrameSinkId());
   if (!init_params.uses_real_accelerated_widget) {
     gfx::AcceleratedWidget accelerated_widget;
diff --git a/ui/aura/window.cc b/ui/aura/window.cc
index 33c2ce7..0f224d8 100644
--- a/ui/aura/window.cc
+++ b/ui/aura/window.cc
@@ -40,6 +40,7 @@
 #include "ui/aura/window_port.h"
 #include "ui/aura/window_tracker.h"
 #include "ui/aura/window_tree_host.h"
+#include "ui/base/ui_base_features.h"
 #include "ui/compositor/compositor.h"
 #include "ui/compositor/layer.h"
 #include "ui/compositor/layer_animator.h"
@@ -793,13 +794,11 @@
   NotifyWindowVisibilityChanged(this, visible);
 }
 
-void Window::SetOccluded(bool occluded) {
-  OcclusionState occlusion_state =
-      occluded ? OcclusionState::OCCLUDED : OcclusionState::NOT_OCCLUDED;
+void Window::SetOcclusionState(OcclusionState occlusion_state) {
   if (occlusion_state != occlusion_state_) {
     occlusion_state_ = occlusion_state;
     if (delegate_)
-      delegate_->OnWindowOcclusionChanged(occluded);
+      delegate_->OnWindowOcclusionChanged(occlusion_state);
   }
 }
 
@@ -1086,11 +1085,15 @@
 }
 
 std::unique_ptr<cc::LayerTreeFrameSink> Window::CreateLayerTreeFrameSink() {
-  return port_->CreateLayerTreeFrameSink();
+  auto sink = port_->CreateLayerTreeFrameSink();
+  DCHECK(frame_sink_id_.is_valid());
+  DCHECK(embeds_external_client_);
+  DCHECK(GetLocalSurfaceId().is_valid());
+  return sink;
 }
 
 viz::SurfaceId Window::GetSurfaceId() const {
-  return viz::SurfaceId(port_->GetFrameSinkId(), port_->GetLocalSurfaceId());
+  return viz::SurfaceId(GetFrameSinkId(), port_->GetLocalSurfaceId());
 }
 
 void Window::AllocateLocalSurfaceId() {
@@ -1101,24 +1104,25 @@
   return port_->GetLocalSurfaceId();
 }
 
-viz::FrameSinkId Window::GetFrameSinkId() const {
+const viz::FrameSinkId& Window::GetFrameSinkId() const {
   if (IsRootWindow()) {
     DCHECK(host_);
     auto* compositor = host_->compositor();
     DCHECK(compositor);
     return compositor->frame_sink_id();
   }
-  return port_->GetFrameSinkId();
+  return frame_sink_id_;
 }
 
 void Window::SetEmbedFrameSinkId(const viz::FrameSinkId& frame_sink_id) {
   DCHECK(frame_sink_id.is_valid());
-  embed_frame_sink_id_ = frame_sink_id;
+  frame_sink_id_ = frame_sink_id;
+  embeds_external_client_ = true;
   RegisterFrameSinkId();
 }
 
 bool Window::IsEmbeddingClient() const {
-  return embed_frame_sink_id_.is_valid();
+  return embeds_external_client_;
 }
 
 void Window::OnPaintLayer(const ui::PaintContext& context) {
@@ -1259,12 +1263,12 @@
 }
 
 void Window::RegisterFrameSinkId() {
-  DCHECK(embed_frame_sink_id_.is_valid());
+  DCHECK(frame_sink_id_.is_valid());
   DCHECK(IsEmbeddingClient());
   if (registered_frame_sink_id_ || disable_frame_sink_id_registration_)
     return;
   if (auto* compositor = layer()->GetCompositor()) {
-    compositor->AddFrameSink(embed_frame_sink_id_);
+    compositor->AddFrameSink(frame_sink_id_);
     registered_frame_sink_id_ = true;
   }
 }
@@ -1274,7 +1278,7 @@
     return;
   registered_frame_sink_id_ = false;
   if (auto* compositor = layer()->GetCompositor())
-    compositor->RemoveFrameSink(embed_frame_sink_id_);
+    compositor->RemoveFrameSink(frame_sink_id_);
 }
 
 }  // namespace aura
diff --git a/ui/aura/window.h b/ui/aura/window.h
index 3cf40c5..b6e2dcf 100644
--- a/ui/aura/window.h
+++ b/ui/aura/window.h
@@ -94,12 +94,13 @@
     // The window or one of its descendants IsVisible() [1] and:
     // - Its bounds aren't completely covered by fully opaque windows [2], or,
     // - Its transform, bounds or opacity is animated.
-    NOT_OCCLUDED,
-    // The window and all its descendants are either !IsVisible() [1] or:
-    // - Have bounds are completely covered by fully opaque windows [2], and,
+    VISIBLE,
+    // The window or one of its descendants IsVisible() [1], but they all:
+    // - Have bounds completely covered by fully opaque windows [2], and,
     // - Have no transform, bounds or opacity animation.
     OCCLUDED,
-    //
+    // The window is not IsVisible() [1].
+    HIDDEN,
     // [1] A window can only be IsVisible() if all its parent are IsVisible().
     // [2] A window is "fully opaque" if:
     // - It's visible (IsVisible()).
@@ -108,7 +109,6 @@
     // - Its combined opacity is 1 (GetCombinedOpacity()).
     // - The type of its layer is not ui::LAYER_NOT_DRAWN.
     //
-    // TODO(fdoray): Split OCCLUDED into OCCLUDED and HIDDEN.
     // TODO(fdoray): A window that clips its children shouldn't be VISIBLE just
     // because it has an animated child.
   };
@@ -392,14 +392,18 @@
   // Returns the FrameSinkId. In LOCAL mode, this returns a valid FrameSinkId
   // only if a LayerTreeFrameSink has been created. In MUS mode, this always
   // return a valid FrameSinkId.
-  viz::FrameSinkId GetFrameSinkId() const;
+  const viz::FrameSinkId& GetFrameSinkId() const;
 
-  const viz::FrameSinkId& embed_frame_sink_id() const {
-    return embed_frame_sink_id_;
-  }
+  // Use SetEmbedFrameSinkId() when this window is embedding another client.
+  // See comment for |frame_sink_id_| below for more details.
   void SetEmbedFrameSinkId(const viz::FrameSinkId& embed_frame_sink_id);
+  void set_frame_sink_id(const viz::FrameSinkId& frame_sink_id) {
+    DCHECK(!embeds_external_client_);
+    DCHECK(!frame_sink_id_.is_valid());
+    frame_sink_id_ = frame_sink_id;
+  }
 
-  // Returns whether this window is an embed window.
+  // Returns whether this window is embedding another client.
   bool IsEmbeddingClient() const;
 
  protected:
@@ -438,7 +442,7 @@
   void SetVisible(bool visible);
 
   // Updates the occlusion state of the window.
-  void SetOccluded(bool occluded);
+  void SetOcclusionState(OcclusionState occlusion_state);
 
   // Schedules a paint for the Window's entire bounds.
   void SchedulePaint();
@@ -575,8 +579,13 @@
 
   int id_;
 
-  // Only set when it is embedding another client inside.
-  viz::FrameSinkId embed_frame_sink_id_;
+  // The FrameSinkId associated with this window. If this window is embedding
+  // another client, then this should be set to the FrameSinkId of that client,
+  // and |embeds_external_client_| is turned on. However, a window can still
+  // have a valid FrameSinkId without embedding another client, to facilitate
+  // hit-testing.
+  viz::FrameSinkId frame_sink_id_;
+  bool embeds_external_client_ = false;
 
   // Whether layer is initialized as non-opaque. Defaults to false.
   bool transparent_;
diff --git a/ui/aura/window_delegate.h b/ui/aura/window_delegate.h
index a1ec4d9..2b24e2e 100644
--- a/ui/aura/window_delegate.h
+++ b/ui/aura/window_delegate.h
@@ -8,6 +8,7 @@
 #include "base/compiler_specific.h"
 #include "base/memory/ref_counted.h"
 #include "ui/aura/aura_export.h"
+#include "ui/aura/window.h"
 #include "ui/events/event_constants.h"
 #include "ui/events/event_handler.h"
 #include "ui/gfx/native_widget_types.h"
@@ -90,9 +91,10 @@
   virtual void OnWindowTargetVisibilityChanged(bool visible) = 0;
 
   // Called when the occlusion state of the Window changes while tracked (see
-  // WindowOcclusionTracker::Track). |is_occluded| indicates whether the Window
-  // is occluded. Impls must not change any aura::Window.
-  virtual void OnWindowOcclusionChanged(bool is_occluded) {}
+  // WindowOcclusionTracker::Track). |occlusion_state| is the new occlusion
+  // state of the Window.
+  virtual void OnWindowOcclusionChanged(
+      Window::OcclusionState occlusion_state) {}
 
   // Called from Window::HitTest to check if the window has a custom hit test
   // mask. It works similar to the views counterparts. That is, if the function
diff --git a/ui/aura/window_occlusion_tracker.cc b/ui/aura/window_occlusion_tracker.cc
index be730f11..dff18bd8 100644
--- a/ui/aura/window_occlusion_tracker.cc
+++ b/ui/aura/window_occlusion_tracker.cc
@@ -147,7 +147,7 @@
   // If occlusion states have been recomputed
   // |kMaxComputeOcclusionIterationsBeforeStable| times and are still not
   // stable, iterate one last time to set the occlusion state of all tracked
-  // windows to NOT_OCCLUDED.
+  // windows based on IsVisible().
   while (num_times_occlusion_recomputed_ <= kMaxRecomputeOcclusion) {
     const bool exceeded_max_num_times_occlusion_recomputed =
         num_times_occlusion_recomputed_ == kMaxRecomputeOcclusion;
@@ -184,12 +184,14 @@
       auto it = tracked_windows_.find(window);
       if (it != tracked_windows_.end() &&
           it->second != Window::OcclusionState::UNKNOWN) {
-        // Fallback to NOT_OCCLUDED for all IsVisible() windows if the maximum
-        // number of times that occlusion can be recomputed was exceeded.
-        if (exceeded_max_num_times_occlusion_recomputed && window->IsVisible())
-          it->second = Window::OcclusionState::NOT_OCCLUDED;
+        // Fallback to VISIBLE/HIDDEN if the maximum number of times that
+        // occlusion can be recomputed was exceeded.
+        if (exceeded_max_num_times_occlusion_recomputed) {
+          it->second = window->IsVisible() ? Window::OcclusionState::VISIBLE
+                                           : Window::OcclusionState::HIDDEN;
+        }
 
-        window->SetOccluded(it->second == Window::OcclusionState::OCCLUDED);
+        window->SetOcclusionState(it->second);
       }
     }
   }
@@ -290,12 +292,17 @@
     SetWindowAndDescendantsAreOccluded(child_window, is_occluded);
 }
 
-void WindowOcclusionTracker::SetOccluded(Window* window, bool occluded) {
+void WindowOcclusionTracker::SetOccluded(Window* window, bool is_occluded) {
   auto tracked_window = tracked_windows_.find(window);
-  if (tracked_window != tracked_windows_.end()) {
-    tracked_window->second = occluded ? Window::OcclusionState::OCCLUDED
-                                      : Window::OcclusionState::NOT_OCCLUDED;
-  }
+  if (tracked_window == tracked_windows_.end())
+    return;
+
+  if (!window->IsVisible())
+    tracked_window->second = Window::OcclusionState::HIDDEN;
+  else if (is_occluded)
+    tracked_window->second = Window::OcclusionState::OCCLUDED;
+  else
+    tracked_window->second = Window::OcclusionState::VISIBLE;
 }
 
 bool WindowOcclusionTracker::WindowIsTracked(Window* window) const {
diff --git a/ui/aura/window_occlusion_tracker.h b/ui/aura/window_occlusion_tracker.h
index 7dfedfa..c76f4f4 100644
--- a/ui/aura/window_occlusion_tracker.h
+++ b/ui/aura/window_occlusion_tracker.h
@@ -91,13 +91,14 @@
   // |animated_windows_|, adds |window| to |animated_windows_| and returns true.
   bool MaybeObserveAnimatedWindow(Window* window);
 
-  // Calls SetOccluded(|is_occluded|) on |window| and its descendants if they
-  // are in |tracked_windows_|.
+  // Calls SetOccluded() with |is_occluded| as argument for |window| and its
+  // descendants.
   void SetWindowAndDescendantsAreOccluded(Window* window, bool is_occluded);
 
-  // Updates the occlusion state of |window| in |tracked_windows_|. No-op if
-  // |window| is not in |tracked_windows_|.
-  void SetOccluded(Window* window, bool occluded);
+  // Updates the occlusion state of |window| in |tracked_windows_|, based on
+  // |is_occluded| and window->IsVisible(). No-op if |window| is not in
+  // |tracked_windows_|.
+  void SetOccluded(Window* window, bool is_occluded);
 
   // Returns true if |window| is in |tracked_windows_|.
   bool WindowIsTracked(Window* window) const;
diff --git a/ui/aura/window_occlusion_tracker_unittest.cc b/ui/aura/window_occlusion_tracker_unittest.cc
index fa62b28..6394bd7 100644
--- a/ui/aura/window_occlusion_tracker_unittest.cc
+++ b/ui/aura/window_occlusion_tracker_unittest.cc
@@ -27,17 +27,6 @@
 
 constexpr base::TimeDelta kTransitionDuration = base::TimeDelta::FromSeconds(3);
 
-enum class WindowOcclusionChangedExpectation {
-  // Expect OnWindowOcclusionChanged() to be called with true as argument.
-  OCCLUDED,
-
-  // Expect OnWindowOcclusionChanged() to be called with false as argument.
-  NOT_OCCLUDED,
-
-  // Don't expect OnWindowOcclusionChanged() to be called.
-  NO_CALL,
-};
-
 class MockWindowDelegate : public test::ColorTestWindowDelegate {
  public:
   MockWindowDelegate() : test::ColorTestWindowDelegate(SK_ColorWHITE) {}
@@ -45,33 +34,24 @@
 
   void set_window(Window* window) { window_ = window; }
 
-  void set_expectation(WindowOcclusionChangedExpectation expectation) {
+  void set_expectation(Window::OcclusionState expectation) {
     expectation_ = expectation;
   }
 
   bool is_expecting_call() const {
-    return expectation_ != WindowOcclusionChangedExpectation::NO_CALL;
+    return expectation_ != Window::OcclusionState::UNKNOWN;
   }
 
-  void OnWindowOcclusionChanged(bool occluded) override {
+  void OnWindowOcclusionChanged(
+      Window::OcclusionState occlusion_state) override {
     ASSERT_TRUE(window_);
-    if (expectation_ == WindowOcclusionChangedExpectation::OCCLUDED) {
-      EXPECT_TRUE(occluded);
-      EXPECT_EQ(Window::OcclusionState::OCCLUDED, window_->occlusion_state());
-    } else if (expectation_ ==
-               WindowOcclusionChangedExpectation::NOT_OCCLUDED) {
-      EXPECT_FALSE(occluded);
-      EXPECT_EQ(Window::OcclusionState::NOT_OCCLUDED,
-                window_->occlusion_state());
-    } else {
-      ADD_FAILURE() << "Unexpected call to OnWindowOcclusionChanged.";
-    }
-    expectation_ = WindowOcclusionChangedExpectation::NO_CALL;
+    EXPECT_NE(occlusion_state, Window::OcclusionState::UNKNOWN);
+    EXPECT_EQ(occlusion_state, expectation_);
+    expectation_ = Window::OcclusionState::UNKNOWN;
   }
 
  private:
-  WindowOcclusionChangedExpectation expectation_ =
-      WindowOcclusionChangedExpectation::NO_CALL;
+  Window::OcclusionState expectation_ = Window::OcclusionState::UNKNOWN;
   Window* window_ = nullptr;
 
   DISALLOW_COPY_AND_ASSIGN(MockWindowDelegate);
@@ -113,34 +93,34 @@
 
 }  // namespace
 
-// Verify that the non-overlapping windows are notified are not occluded.
+// Verify that non-overlapping windows have a VISIBLE occlusion state.
 // _____  _____
 // |    | |    |
 // |____| |____|
 TEST_F(WindowOcclusionTrackerTest, NonOverlappingWindows) {
   MockWindowDelegate* delegate_a = new MockWindowDelegate();
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::VISIBLE);
   CreateTrackedWindow(delegate_a, gfx::Rect(0, 0, 10, 10));
   EXPECT_FALSE(delegate_a->is_expecting_call());
 
   MockWindowDelegate* delegate_b = new MockWindowDelegate();
-  delegate_b->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_b->set_expectation(Window::OcclusionState::VISIBLE);
   CreateTrackedWindow(delegate_b, gfx::Rect(15, 0, 10, 10));
   EXPECT_FALSE(delegate_b->is_expecting_call());
 }
 
-// Verify that partially overlapping windows are not occluded.
+// Verify that partially overlapping windows have a VISIBLE occlusion state.
 // ______
 // |__|  |
 // |_____|
 TEST_F(WindowOcclusionTrackerTest, PartiallyOverlappingWindow) {
   MockWindowDelegate* delegate_a = new MockWindowDelegate();
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::VISIBLE);
   CreateTrackedWindow(delegate_a, gfx::Rect(0, 0, 10, 10));
   EXPECT_FALSE(delegate_a->is_expecting_call());
 
   MockWindowDelegate* delegate_b = new MockWindowDelegate();
-  delegate_b->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_b->set_expectation(Window::OcclusionState::VISIBLE);
   CreateTrackedWindow(delegate_b, gfx::Rect(0, 0, 5, 5));
   EXPECT_FALSE(delegate_b->is_expecting_call());
 }
@@ -154,31 +134,31 @@
 TEST_F(WindowOcclusionTrackerTest, HiddenWindowCoversWindow) {
   // Create window a. Expect it to be non-occluded.
   MockWindowDelegate* delegate_a = new MockWindowDelegate();
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::VISIBLE);
   CreateTrackedWindow(delegate_a, gfx::Rect(0, 0, 10, 10));
   EXPECT_FALSE(delegate_a->is_expecting_call());
 
   // Create window b. Expect it to be non-occluded and expect window a to be
   // occluded.
   MockWindowDelegate* delegate_b = new MockWindowDelegate();
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::OCCLUDED);
-  delegate_b->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::OCCLUDED);
+  delegate_b->set_expectation(Window::OcclusionState::VISIBLE);
   Window* window_b = CreateTrackedWindow(delegate_b, gfx::Rect(0, 0, 15, 15));
   EXPECT_FALSE(delegate_a->is_expecting_call());
   EXPECT_FALSE(delegate_b->is_expecting_call());
 
   // Hide window b. Expect window a to be non-occluded and window b to be
   // occluded.
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
-  delegate_b->set_expectation(WindowOcclusionChangedExpectation::OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::VISIBLE);
+  delegate_b->set_expectation(Window::OcclusionState::HIDDEN);
   window_b->Hide();
   EXPECT_FALSE(delegate_a->is_expecting_call());
   EXPECT_FALSE(delegate_b->is_expecting_call());
 
   // Show window b. Expect window a to be occluded and window b to be non-
   // occluded.
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::OCCLUDED);
-  delegate_b->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::OCCLUDED);
+  delegate_b->set_expectation(Window::OcclusionState::VISIBLE);
   window_b->Show();
   EXPECT_FALSE(delegate_a->is_expecting_call());
   EXPECT_FALSE(delegate_b->is_expecting_call());
@@ -193,15 +173,15 @@
 TEST_F(WindowOcclusionTrackerTest, SemiTransparentWindowCoversWindow) {
   // Create window a. Expect it to be non-occluded.
   MockWindowDelegate* delegate_a = new MockWindowDelegate();
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::VISIBLE);
   CreateTrackedWindow(delegate_a, gfx::Rect(0, 0, 10, 10));
   EXPECT_FALSE(delegate_a->is_expecting_call());
 
   // Create window b. Expect it to be non-occluded and expect window a to be
   // occluded.
   MockWindowDelegate* delegate_b = new MockWindowDelegate();
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::OCCLUDED);
-  delegate_b->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::OCCLUDED);
+  delegate_b->set_expectation(Window::OcclusionState::VISIBLE);
   Window* window_b = CreateTrackedWindow(delegate_b, gfx::Rect(0, 0, 15, 15));
   EXPECT_FALSE(delegate_a->is_expecting_call());
   EXPECT_FALSE(delegate_b->is_expecting_call());
@@ -209,13 +189,13 @@
   // Change the opacity of window b to 0.5f. Expect both windows to be non-
   // occluded.
   EXPECT_FALSE(delegate_a->is_expecting_call());
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::VISIBLE);
   window_b->layer()->SetOpacity(0.5f);
   EXPECT_FALSE(delegate_a->is_expecting_call());
 
   // Change the opacity of window b back to 1.0f. Expect window a to be
   // occluded.
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::OCCLUDED);
   window_b->layer()->SetOpacity(1.0f);
   EXPECT_FALSE(delegate_a->is_expecting_call());
 }
@@ -225,24 +205,24 @@
 TEST_F(WindowOcclusionTrackerTest, SemiTransparentUntrackedWindowCoversWindow) {
   // Create window a. Expect it to be non-occluded.
   MockWindowDelegate* delegate_a = new MockWindowDelegate();
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::VISIBLE);
   CreateTrackedWindow(delegate_a, gfx::Rect(0, 0, 10, 10));
   EXPECT_FALSE(delegate_a->is_expecting_call());
 
   // Create untracked window b. Expect window a to be occluded.
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::OCCLUDED);
   Window* window_b = CreateUntrackedWindow(gfx::Rect(0, 0, 15, 15));
   EXPECT_FALSE(delegate_a->is_expecting_call());
 
   // Change the opacity of window b to 0.5f. Expect both windows to be non-
   // occluded.
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::VISIBLE);
   window_b->layer()->SetOpacity(0.5f);
   EXPECT_FALSE(delegate_a->is_expecting_call());
 
   // Change the opacity of window b back to 1.0f. Expect window a to be
   // occluded.
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::OCCLUDED);
   window_b->layer()->SetOpacity(1.0f);
   EXPECT_FALSE(delegate_a->is_expecting_call());
 }
@@ -255,14 +235,14 @@
 TEST_F(WindowOcclusionTrackerTest, TwoWindowsOccludeOneWindow) {
   // Create window a. Expect it to be non-occluded.
   MockWindowDelegate* delegate_a = new MockWindowDelegate();
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::VISIBLE);
   CreateTrackedWindow(delegate_a, gfx::Rect(0, 0, 10, 10));
   EXPECT_FALSE(delegate_a->is_expecting_call());
 
   // Create window b with bounds that partially cover window a. Expect both
   // windows to be non-occluded.
   MockWindowDelegate* delegate_b = new MockWindowDelegate();
-  delegate_b->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_b->set_expectation(Window::OcclusionState::VISIBLE);
   CreateTrackedWindow(delegate_b, gfx::Rect(0, 0, 5, 10));
   EXPECT_FALSE(delegate_b->is_expecting_call());
 
@@ -270,8 +250,8 @@
   // already covered by window b. Expect window a to be occluded and window a/b
   // to be non-occluded.
   MockWindowDelegate* delegate_c = new MockWindowDelegate();
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::OCCLUDED);
-  delegate_c->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::OCCLUDED);
+  delegate_c->set_expectation(Window::OcclusionState::VISIBLE);
   CreateTrackedWindow(delegate_c, gfx::Rect(5, 0, 5, 10));
   EXPECT_FALSE(delegate_a->is_expecting_call());
   EXPECT_FALSE(delegate_c->is_expecting_call());
@@ -282,23 +262,23 @@
 TEST_F(WindowOcclusionTrackerTest, SiblingOccludesWindowAndChild) {
   // Create window a. Expect it to be non-occluded.
   MockWindowDelegate* delegate_a = new MockWindowDelegate();
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::VISIBLE);
   Window* window_a = CreateTrackedWindow(delegate_a, gfx::Rect(0, 0, 20, 20));
   EXPECT_FALSE(delegate_a->is_expecting_call());
 
   // Create window b, with bounds that occlude half of its parent window a.
   // Expect it to be non-occluded.
   MockWindowDelegate* delegate_b = new MockWindowDelegate();
-  delegate_b->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_b->set_expectation(Window::OcclusionState::VISIBLE);
   CreateTrackedWindow(delegate_b, gfx::Rect(0, 0, 10, 20), window_a);
   EXPECT_FALSE(delegate_b->is_expecting_call());
 
   // Create window c, with bounds that occlude window a and window b. Expect it
   // to be non-occluded, and window a and b to be occluded.
   MockWindowDelegate* delegate_c = new MockWindowDelegate();
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::OCCLUDED);
-  delegate_b->set_expectation(WindowOcclusionChangedExpectation::OCCLUDED);
-  delegate_c->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::OCCLUDED);
+  delegate_b->set_expectation(Window::OcclusionState::OCCLUDED);
+  delegate_c->set_expectation(Window::OcclusionState::VISIBLE);
   CreateTrackedWindow(delegate_c, gfx::Rect(0, 0, 20, 20));
   EXPECT_FALSE(delegate_a->is_expecting_call());
   EXPECT_FALSE(delegate_b->is_expecting_call());
@@ -310,21 +290,21 @@
 TEST_F(WindowOcclusionTrackerTest, ChildAndSiblingOccludeOneWindow) {
   // Create window a. Expect it to be non-occluded.
   MockWindowDelegate* delegate_a = new MockWindowDelegate();
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::VISIBLE);
   Window* window_a = CreateTrackedWindow(delegate_a, gfx::Rect(0, 0, 20, 20));
   EXPECT_FALSE(delegate_a->is_expecting_call());
 
   // Create window b, with bounds that occlude half of its parent window a.
   // Expect it to be non-occluded.
   MockWindowDelegate* delegate_b = new MockWindowDelegate();
-  delegate_b->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_b->set_expectation(Window::OcclusionState::VISIBLE);
   CreateTrackedWindow(delegate_b, gfx::Rect(0, 0, 10, 20), window_a);
   EXPECT_FALSE(delegate_b->is_expecting_call());
 
   // Create window c, with bounds that occlude the other half of window a.
   // Expect it to be non-occluded and expect window a to remain non-occluded.
   MockWindowDelegate* delegate_c = new MockWindowDelegate();
-  delegate_c->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_c->set_expectation(Window::OcclusionState::VISIBLE);
   CreateTrackedWindow(delegate_c, gfx::Rect(10, 0, 10, 20));
   EXPECT_FALSE(delegate_a->is_expecting_call());
   EXPECT_FALSE(delegate_c->is_expecting_call());
@@ -334,21 +314,21 @@
 TEST_F(WindowOcclusionTrackerTest, ChildrenOccludeOneWindow) {
   // Create window a. Expect it to be non-occluded.
   MockWindowDelegate* delegate_a = new MockWindowDelegate();
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::VISIBLE);
   Window* window_a = CreateTrackedWindow(delegate_a, gfx::Rect(0, 0, 20, 20));
   EXPECT_FALSE(delegate_a->is_expecting_call());
 
   // Create window b, with bounds that cover half of its parent window a. Expect
   // it to be non-occluded.
   MockWindowDelegate* delegate_b = new MockWindowDelegate();
-  delegate_b->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_b->set_expectation(Window::OcclusionState::VISIBLE);
   CreateTrackedWindow(delegate_b, gfx::Rect(0, 0, 10, 20), window_a);
   EXPECT_FALSE(delegate_b->is_expecting_call());
 
   // Create window c, with bounds that cover the other half of its parent window
   // a. Expect it to be non-occluded. Expect window a to remain non-occluded.
   MockWindowDelegate* delegate_c = new MockWindowDelegate();
-  delegate_c->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_c->set_expectation(Window::OcclusionState::VISIBLE);
   CreateTrackedWindow(delegate_c, gfx::Rect(10, 0, 10, 20), window_a);
   EXPECT_FALSE(delegate_c->is_expecting_call());
 }
@@ -358,21 +338,21 @@
 TEST_F(WindowOcclusionTrackerTest, ChildDoesNotOccludeParent) {
   // Create window a. Expect it to be non-occluded.
   MockWindowDelegate* delegate_a = new MockWindowDelegate();
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::VISIBLE);
   Window* window_a = CreateTrackedWindow(delegate_a, gfx::Rect(0, 0, 10, 10));
   EXPECT_FALSE(delegate_a->is_expecting_call());
 
   // Create window b with window a as parent. The bounds of window b fully cover
   // window a. Expect both windows to be non-occluded.
   MockWindowDelegate* delegate_b = new MockWindowDelegate();
-  delegate_b->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_b->set_expectation(Window::OcclusionState::VISIBLE);
   Window* window_b =
       CreateTrackedWindow(delegate_b, gfx::Rect(0, 0, 10, 10), window_a);
   EXPECT_FALSE(delegate_b->is_expecting_call());
 
   // Create window c whose bounds don't overlap existing windows.
   MockWindowDelegate* delegate_c = new MockWindowDelegate();
-  delegate_c->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_c->set_expectation(Window::OcclusionState::VISIBLE);
   Window* window_c = CreateTrackedWindow(delegate_c, gfx::Rect(15, 0, 10, 10));
   EXPECT_FALSE(delegate_c->is_expecting_call());
 
@@ -387,28 +367,28 @@
   // Create three windows that have the same bounds. Expect window on top of the
   // stack to be non-occluded and other windows to be occluded.
   MockWindowDelegate* delegate_a = new MockWindowDelegate();
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::VISIBLE);
   Window* window_a = CreateTrackedWindow(delegate_a, gfx::Rect(0, 0, 10, 10));
   EXPECT_FALSE(delegate_a->is_expecting_call());
 
   MockWindowDelegate* delegate_b = new MockWindowDelegate();
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::OCCLUDED);
-  delegate_b->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::OCCLUDED);
+  delegate_b->set_expectation(Window::OcclusionState::VISIBLE);
   CreateTrackedWindow(delegate_b, gfx::Rect(0, 0, 10, 10));
   EXPECT_FALSE(delegate_a->is_expecting_call());
   EXPECT_FALSE(delegate_b->is_expecting_call());
 
   MockWindowDelegate* delegate_c = new MockWindowDelegate();
-  delegate_b->set_expectation(WindowOcclusionChangedExpectation::OCCLUDED);
-  delegate_c->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_b->set_expectation(Window::OcclusionState::OCCLUDED);
+  delegate_c->set_expectation(Window::OcclusionState::VISIBLE);
   CreateTrackedWindow(delegate_c, gfx::Rect(0, 0, 10, 10));
   EXPECT_FALSE(delegate_b->is_expecting_call());
   EXPECT_FALSE(delegate_c->is_expecting_call());
 
   // Move window a on top of the stack. Expect it to be non-occluded and expect
   // window c to be occluded.
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
-  delegate_c->set_expectation(WindowOcclusionChangedExpectation::OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::VISIBLE);
+  delegate_c->set_expectation(Window::OcclusionState::OCCLUDED);
   root_window()->StackChildAtTop(window_a);
   EXPECT_FALSE(delegate_a->is_expecting_call());
   EXPECT_FALSE(delegate_c->is_expecting_call());
@@ -421,7 +401,7 @@
 TEST_F(WindowOcclusionTrackerTest, TransparentParentStackingChanged) {
   // Create window a which is transparent. Expect it to be non-occluded.
   MockWindowDelegate* delegate_a = new MockWindowDelegate();
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::VISIBLE);
   Window* window_a = CreateTrackedWindow(delegate_a, gfx::Rect(0, 0, 10, 10),
                                          root_window(), true);
   EXPECT_FALSE(delegate_a->is_expecting_call());
@@ -429,14 +409,14 @@
   // Create window b which has the same bounds as its parent window a. Expect it
   // to be non-occluded.
   MockWindowDelegate* delegate_b = new MockWindowDelegate();
-  delegate_b->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_b->set_expectation(Window::OcclusionState::VISIBLE);
   CreateTrackedWindow(delegate_b, gfx::Rect(0, 0, 10, 10), window_a);
   EXPECT_FALSE(delegate_b->is_expecting_call());
 
   // Create window c which is transparent and has the same bounds as window a
   // and window b. Expect it to be non-occluded.
   MockWindowDelegate* delegate_c = new MockWindowDelegate();
-  delegate_c->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_c->set_expectation(Window::OcclusionState::VISIBLE);
   Window* window_c = CreateTrackedWindow(delegate_c, gfx::Rect(0, 0, 10, 10),
                                          root_window(), true);
   EXPECT_FALSE(delegate_c->is_expecting_call());
@@ -444,9 +424,9 @@
   // Create window d which has the same bounds as its parent window c. Expect
   // window d to be non-occluded and window a and b to be occluded.
   MockWindowDelegate* delegate_d = new MockWindowDelegate();
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::OCCLUDED);
-  delegate_b->set_expectation(WindowOcclusionChangedExpectation::OCCLUDED);
-  delegate_d->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::OCCLUDED);
+  delegate_b->set_expectation(Window::OcclusionState::OCCLUDED);
+  delegate_d->set_expectation(Window::OcclusionState::VISIBLE);
   CreateTrackedWindow(delegate_d, gfx::Rect(0, 0, 10, 10), window_c);
   EXPECT_FALSE(delegate_a->is_expecting_call());
   EXPECT_FALSE(delegate_b->is_expecting_call());
@@ -454,10 +434,10 @@
 
   // Move window a on top of the stack. Expect window a and b to be non-occluded
   // and window c and d to be occluded.
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
-  delegate_b->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
-  delegate_c->set_expectation(WindowOcclusionChangedExpectation::OCCLUDED);
-  delegate_d->set_expectation(WindowOcclusionChangedExpectation::OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::VISIBLE);
+  delegate_b->set_expectation(Window::OcclusionState::VISIBLE);
+  delegate_c->set_expectation(Window::OcclusionState::OCCLUDED);
+  delegate_d->set_expectation(Window::OcclusionState::OCCLUDED);
   root_window()->StackChildAtTop(window_a);
   EXPECT_FALSE(delegate_a->is_expecting_call());
   EXPECT_FALSE(delegate_b->is_expecting_call());
@@ -472,12 +452,12 @@
 
   // Create window b. Expect it to be non-occluded.
   MockWindowDelegate* delegate_b = new MockWindowDelegate();
-  delegate_b->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_b->set_expectation(Window::OcclusionState::VISIBLE);
   CreateTrackedWindow(delegate_b, gfx::Rect(0, 0, 5, 5));
   EXPECT_FALSE(delegate_b->is_expecting_call());
 
   // Stack window a on top of window b. Expect window b to be occluded.
-  delegate_b->set_expectation(WindowOcclusionChangedExpectation::OCCLUDED);
+  delegate_b->set_expectation(Window::OcclusionState::OCCLUDED);
   root_window()->StackChildAtTop(window_a);
   EXPECT_FALSE(delegate_b->is_expecting_call());
 }
@@ -486,17 +466,17 @@
 TEST_F(WindowOcclusionTrackerTest, BoundsChanged) {
   // Create two non-overlapping windows. Expect them to be non-occluded.
   MockWindowDelegate* delegate_a = new MockWindowDelegate();
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::VISIBLE);
   Window* window_a = CreateTrackedWindow(delegate_a, gfx::Rect(0, 0, 10, 10));
   EXPECT_FALSE(delegate_a->is_expecting_call());
 
   MockWindowDelegate* delegate_b = new MockWindowDelegate();
-  delegate_b->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_b->set_expectation(Window::OcclusionState::VISIBLE);
   Window* window_b = CreateTrackedWindow(delegate_b, gfx::Rect(0, 10, 10, 10));
   EXPECT_FALSE(delegate_b->is_expecting_call());
 
   // Move window b on top of window a. Expect window a to be occluded.
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::OCCLUDED);
   window_b->SetBounds(window_a->bounds());
   EXPECT_FALSE(delegate_a->is_expecting_call());
 }
@@ -517,26 +497,26 @@
 
   // Create 3 windows. Window a is unoccluded. Window c occludes window b.
   MockWindowDelegate* delegate_a = new MockWindowDelegate();
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::VISIBLE);
   Window* window_a = CreateTrackedWindow(delegate_a, gfx::Rect(0, 0, 10, 10));
   EXPECT_FALSE(delegate_a->is_expecting_call());
 
   MockWindowDelegate* delegate_b = new MockWindowDelegate();
-  delegate_b->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_b->set_expectation(Window::OcclusionState::VISIBLE);
   Window* window_b = CreateTrackedWindow(delegate_b, gfx::Rect(0, 10, 10, 10));
   EXPECT_FALSE(delegate_b->is_expecting_call());
   window_b->layer()->SetAnimator(test_controller.animator());
 
   MockWindowDelegate* delegate_c = new MockWindowDelegate();
-  delegate_b->set_expectation(WindowOcclusionChangedExpectation::OCCLUDED);
-  delegate_c->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_b->set_expectation(Window::OcclusionState::OCCLUDED);
+  delegate_c->set_expectation(Window::OcclusionState::VISIBLE);
   CreateTrackedWindow(delegate_c, gfx::Rect(0, 10, 10, 10));
   EXPECT_FALSE(delegate_b->is_expecting_call());
   EXPECT_FALSE(delegate_c->is_expecting_call());
 
   // Start animating the bounds of window b so that it moves on top of window a.
   // Window b should be non-occluded when the animation starts.
-  delegate_b->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_b->set_expectation(Window::OcclusionState::VISIBLE);
   window_b->SetBounds(window_a->bounds());
   test_controller.Step(kTransitionDuration / 3);
   EXPECT_FALSE(delegate_b->is_expecting_call());
@@ -545,7 +525,7 @@
   test_controller.Step(kTransitionDuration / 3);
 
   // Window b should occlude window a at the end of the animation.
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::OCCLUDED);
   test_controller.Step(kTransitionDuration / 3);
   EXPECT_FALSE(delegate_a->is_expecting_call());
 
@@ -564,18 +544,18 @@
 
   // Create 3 windows. Window a is unoccluded. Window c occludes window b.
   MockWindowDelegate* delegate_a = new MockWindowDelegate();
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::VISIBLE);
   Window* window_a = CreateTrackedWindow(delegate_a, gfx::Rect(0, 0, 10, 10));
   EXPECT_FALSE(delegate_a->is_expecting_call());
 
   MockWindowDelegate* delegate_b = new MockWindowDelegate();
-  delegate_b->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_b->set_expectation(Window::OcclusionState::VISIBLE);
   CreateTrackedWindow(delegate_b, gfx::Rect(0, 10, 10, 10));
   EXPECT_FALSE(delegate_b->is_expecting_call());
 
   MockWindowDelegate* delegate_c = new MockWindowDelegate();
-  delegate_b->set_expectation(WindowOcclusionChangedExpectation::OCCLUDED);
-  delegate_c->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_b->set_expectation(Window::OcclusionState::OCCLUDED);
+  delegate_c->set_expectation(Window::OcclusionState::VISIBLE);
   Window* window_c = CreateTrackedWindow(delegate_c, gfx::Rect(0, 10, 10, 10));
   EXPECT_FALSE(delegate_b->is_expecting_call());
   EXPECT_FALSE(delegate_c->is_expecting_call());
@@ -583,7 +563,7 @@
 
   // Start animating the bounds of window c so that it moves on top of window a.
   // Window b should be non-occluded when the animation starts.
-  delegate_b->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_b->set_expectation(Window::OcclusionState::VISIBLE);
   window_c->SetBounds(window_a->bounds());
   test_controller.Step(kTransitionDuration / 3);
   EXPECT_FALSE(delegate_b->is_expecting_call());
@@ -592,7 +572,7 @@
   test_controller.Step(kTransitionDuration / 3);
 
   // Window c should occlude window a at the end of the animation.
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::OCCLUDED);
   test_controller.Step(kTransitionDuration / 3);
   EXPECT_FALSE(delegate_a->is_expecting_call());
 
@@ -604,14 +584,14 @@
 TEST_F(WindowOcclusionTrackerTest, TransparentParentBoundsChanged) {
   // Create window a. Expect it to be non-occluded.
   MockWindowDelegate* delegate_a = new MockWindowDelegate();
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::VISIBLE);
   CreateTrackedWindow(delegate_a, gfx::Rect(0, 0, 5, 5));
   EXPECT_FALSE(delegate_a->is_expecting_call());
 
   // Create window b which doesn't overlap window a and is transparent. Expect
   // it to be non-occluded.
   MockWindowDelegate* delegate_b = new MockWindowDelegate();
-  delegate_b->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_b->set_expectation(Window::OcclusionState::VISIBLE);
   Window* window_b = CreateTrackedWindow(delegate_b, gfx::Rect(0, 10, 10, 10),
                                          root_window(), true);
   EXPECT_FALSE(delegate_b->is_expecting_call());
@@ -619,13 +599,13 @@
   // Create window c which has window b as parent and doesn't occlude any
   // window.
   MockWindowDelegate* delegate_c = new MockWindowDelegate();
-  delegate_c->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_c->set_expectation(Window::OcclusionState::VISIBLE);
   CreateTrackedWindow(delegate_c, gfx::Rect(0, 0, 5, 5), window_b);
   EXPECT_FALSE(delegate_c->is_expecting_call());
 
   // Move window b so that window c occludes window a. Expect window a to be
   // occluded and other windows to be non-occluded.
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::OCCLUDED);
   window_b->SetBounds(gfx::Rect(0, 0, 10, 10));
   EXPECT_FALSE(delegate_a->is_expecting_call());
 }
@@ -635,7 +615,7 @@
 TEST_F(WindowOcclusionTrackerTest, UntrackedWindowBoundsChanged) {
   // Create window a. Expect it to be non-occluded.
   MockWindowDelegate* delegate_a = new MockWindowDelegate();
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::VISIBLE);
   Window* window_a = CreateTrackedWindow(delegate_a, gfx::Rect(0, 0, 5, 5));
   EXPECT_FALSE(delegate_a->is_expecting_call());
 
@@ -643,7 +623,7 @@
   Window* window_b = CreateUntrackedWindow(gfx::Rect(0, 10, 5, 5));
 
   // Move window b on top of window a. Expect window a to be occluded.
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::OCCLUDED);
   window_b->SetBounds(window_a->bounds());
   EXPECT_FALSE(delegate_a->is_expecting_call());
 }
@@ -653,18 +633,18 @@
 TEST_F(WindowOcclusionTrackerTest, TransformChanged) {
   // Create two non-overlapping windows. Expect them to be non-occluded.
   MockWindowDelegate* delegate_a = new MockWindowDelegate();
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::VISIBLE);
   CreateTrackedWindow(delegate_a, gfx::Rect(0, 0, 10, 10));
   EXPECT_FALSE(delegate_a->is_expecting_call());
 
   MockWindowDelegate* delegate_b = new MockWindowDelegate();
-  delegate_b->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_b->set_expectation(Window::OcclusionState::VISIBLE);
   Window* window_b = CreateTrackedWindow(delegate_b, gfx::Rect(0, 10, 5, 5));
   EXPECT_FALSE(delegate_b->is_expecting_call());
 
   // Scale and translate window b so that it covers window a. Expect window a to
   // be occluded.
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::OCCLUDED);
   gfx::Transform transform;
   transform.Translate(0.0f, -10.0f);
   transform.Scale(2.0f, 2.0f);
@@ -688,26 +668,26 @@
 
   // Create 3 windows. Window a is unoccluded. Window c occludes window b.
   MockWindowDelegate* delegate_a = new MockWindowDelegate();
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::VISIBLE);
   CreateTrackedWindow(delegate_a, gfx::Rect(0, 0, 10, 10));
   EXPECT_FALSE(delegate_a->is_expecting_call());
 
   MockWindowDelegate* delegate_b = new MockWindowDelegate();
-  delegate_b->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_b->set_expectation(Window::OcclusionState::VISIBLE);
   Window* window_b = CreateTrackedWindow(delegate_b, gfx::Rect(0, 10, 5, 5));
   EXPECT_FALSE(delegate_b->is_expecting_call());
   window_b->layer()->SetAnimator(test_controller.animator());
 
   MockWindowDelegate* delegate_c = new MockWindowDelegate();
-  delegate_b->set_expectation(WindowOcclusionChangedExpectation::OCCLUDED);
-  delegate_c->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_b->set_expectation(Window::OcclusionState::OCCLUDED);
+  delegate_c->set_expectation(Window::OcclusionState::VISIBLE);
   CreateTrackedWindow(delegate_c, gfx::Rect(0, 10, 5, 5));
   EXPECT_FALSE(delegate_b->is_expecting_call());
   EXPECT_FALSE(delegate_c->is_expecting_call());
 
   // Start animating the transform of window b so that it moves on top of window
   // a. Window b should be non-occluded when the animation starts.
-  delegate_b->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_b->set_expectation(Window::OcclusionState::VISIBLE);
   auto transform = std::make_unique<ui::InterpolatedScale>(
       gfx::Point3F(1, 1, 1), gfx::Point3F(2.0f, 2.0f, 1));
   transform->SetChild(std::make_unique<ui::InterpolatedTranslation>(
@@ -722,7 +702,7 @@
   test_controller.Step(kTransitionDuration / 3);
 
   // Window b should occlude window a at the end of the animation.
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::OCCLUDED);
   test_controller.Step(kTransitionDuration / 3);
   EXPECT_FALSE(delegate_a->is_expecting_call());
 
@@ -741,18 +721,18 @@
 
   // Create 3 windows. Window a is unoccluded. Window c occludes window b.
   MockWindowDelegate* delegate_a = new MockWindowDelegate();
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::VISIBLE);
   CreateTrackedWindow(delegate_a, gfx::Rect(0, 0, 20, 20));
   EXPECT_FALSE(delegate_a->is_expecting_call());
 
   MockWindowDelegate* delegate_b = new MockWindowDelegate();
-  delegate_b->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_b->set_expectation(Window::OcclusionState::VISIBLE);
   CreateTrackedWindow(delegate_b, gfx::Rect(0, 20, 10, 10));
   EXPECT_FALSE(delegate_b->is_expecting_call());
 
   MockWindowDelegate* delegate_c = new MockWindowDelegate();
-  delegate_b->set_expectation(WindowOcclusionChangedExpectation::OCCLUDED);
-  delegate_c->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_b->set_expectation(Window::OcclusionState::OCCLUDED);
+  delegate_c->set_expectation(Window::OcclusionState::VISIBLE);
   Window* window_c = CreateTrackedWindow(delegate_c, gfx::Rect(0, 20, 10, 10));
   EXPECT_FALSE(delegate_b->is_expecting_call());
   EXPECT_FALSE(delegate_c->is_expecting_call());
@@ -760,7 +740,7 @@
 
   // Start animating the bounds of window c so that it moves on top of window a.
   // Window b should be non-occluded when the animation starts.
-  delegate_b->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_b->set_expectation(Window::OcclusionState::VISIBLE);
   auto transform = std::make_unique<ui::InterpolatedScale>(
       gfx::Point3F(1, 1, 1), gfx::Point3F(2.0f, 2.0f, 1));
   transform->SetChild(std::make_unique<ui::InterpolatedTranslation>(
@@ -775,7 +755,7 @@
   test_controller.Step(kTransitionDuration / 3);
 
   // Window c should occlude window a at the end of the animation.
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::OCCLUDED);
   test_controller.Step(kTransitionDuration / 3);
   EXPECT_FALSE(delegate_a->is_expecting_call());
 
@@ -787,14 +767,14 @@
 TEST_F(WindowOcclusionTrackerTest, TransparentParentTransformChanged) {
   // Create window a. Expect it to be non-occluded.
   MockWindowDelegate* delegate_a = new MockWindowDelegate();
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::VISIBLE);
   CreateTrackedWindow(delegate_a, gfx::Rect(0, 0, 10, 10));
   EXPECT_FALSE(delegate_a->is_expecting_call());
 
   // Create window b which doesn't overlap window a and is transparent. Expect
   // it to be non-occluded.
   MockWindowDelegate* delegate_b = new MockWindowDelegate();
-  delegate_b->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_b->set_expectation(Window::OcclusionState::VISIBLE);
   Window* window_b = CreateTrackedWindow(delegate_b, gfx::Rect(0, 10, 10, 10),
                                          root_window(), true);
   EXPECT_FALSE(delegate_b->is_expecting_call());
@@ -802,13 +782,13 @@
   // Create window c which has window b as parent and doesn't occlude any
   // window.
   MockWindowDelegate* delegate_c = new MockWindowDelegate();
-  delegate_c->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_c->set_expectation(Window::OcclusionState::VISIBLE);
   CreateTrackedWindow(delegate_c, gfx::Rect(0, 0, 5, 5), window_b);
   EXPECT_FALSE(delegate_c->is_expecting_call());
 
   // Scale and translate window b so that window c occludes window a. Expect
   // window a to be occluded and other windows to be non-occluded.
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::OCCLUDED);
   gfx::Transform transform;
   transform.Translate(0.0f, -10.0f);
   transform.Scale(2.0f, 2.0f);
@@ -821,7 +801,7 @@
 TEST_F(WindowOcclusionTrackerTest, UntrackedWindowTransformChanged) {
   // Create window a. Expect it to be non-occluded.
   MockWindowDelegate* delegate_a = new MockWindowDelegate();
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::VISIBLE);
   CreateTrackedWindow(delegate_a, gfx::Rect(0, 0, 10, 10));
   EXPECT_FALSE(delegate_a->is_expecting_call());
 
@@ -830,7 +810,7 @@
 
   // Scale and translate window b so that it occludes window a. Expect window a
   // to be occluded.
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::OCCLUDED);
   gfx::Transform transform;
   transform.Translate(0.0f, -10.0f);
   transform.Scale(2.0f, 2.0f);
@@ -843,17 +823,17 @@
 TEST_F(WindowOcclusionTrackerTest, DeleteUntrackedWindow) {
   // Create window a. Expect it to be non-occluded.
   MockWindowDelegate* delegate_a = new MockWindowDelegate();
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::VISIBLE);
   CreateTrackedWindow(delegate_a, gfx::Rect(0, 0, 5, 5));
   EXPECT_FALSE(delegate_a->is_expecting_call());
 
   // Create window b which occludes window a.
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::OCCLUDED);
   Window* window_b = CreateUntrackedWindow(gfx::Rect(0, 0, 5, 5));
   EXPECT_FALSE(delegate_a->is_expecting_call());
 
   // Delete window b. Expect a to be non-occluded.
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::VISIBLE);
   delete window_b;
   EXPECT_FALSE(delegate_a->is_expecting_call());
 }
@@ -863,17 +843,17 @@
 TEST_F(WindowOcclusionTrackerTest, RemoveUntrackedWindow) {
   // Create window a. Expect it to be non-occluded.
   MockWindowDelegate* delegate_a = new MockWindowDelegate();
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::VISIBLE);
   CreateTrackedWindow(delegate_a, gfx::Rect(0, 0, 5, 5));
   EXPECT_FALSE(delegate_a->is_expecting_call());
 
   // Create window b which occludes window a.
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::OCCLUDED);
   Window* window_b = CreateUntrackedWindow(gfx::Rect(0, 0, 5, 5));
   EXPECT_FALSE(delegate_a->is_expecting_call());
 
   // Delete window b. Expect a to be non-occluded.
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::VISIBLE);
   root_window()->RemoveChild(window_b);
   EXPECT_FALSE(delegate_a->is_expecting_call());
   delete window_b;
@@ -887,7 +867,7 @@
 
   // Create window b. Expect it to be non-occluded.
   MockWindowDelegate* delegate_c = new MockWindowDelegate();
-  delegate_c->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_c->set_expectation(Window::OcclusionState::VISIBLE);
   Window* window_c = CreateTrackedWindow(delegate_c, gfx::Rect(0, 0, 5, 5));
   EXPECT_FALSE(delegate_c->is_expecting_call());
 
@@ -899,19 +879,19 @@
 
   // Create untracked window d which covers window a. Expect window a to be
   // occluded.
-  delegate_c->set_expectation(WindowOcclusionChangedExpectation::OCCLUDED);
+  delegate_c->set_expectation(Window::OcclusionState::OCCLUDED);
   Window* window_d = CreateUntrackedWindow(gfx::Rect(0, 0, 5, 5));
   EXPECT_FALSE(delegate_c->is_expecting_call());
 
   // Move window d so that it doesn't cover window c.
-  delegate_c->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_c->set_expectation(Window::OcclusionState::VISIBLE);
   window_d->SetBounds(gfx::Rect(0, 10, 5, 5));
   EXPECT_FALSE(delegate_c->is_expecting_call());
 
   // Stack window a on top of window c. Expect window c to be non-occluded. This
   // won't work if WindowOcclusionTracked didn't register as an observer of
   // window a when window c was made a child of root_window().
-  delegate_c->set_expectation(WindowOcclusionChangedExpectation::OCCLUDED);
+  delegate_c->set_expectation(Window::OcclusionState::OCCLUDED);
   root_window()->StackChildAtTop(window_a);
   EXPECT_FALSE(delegate_c->is_expecting_call());
 }
@@ -944,14 +924,14 @@
 TEST_F(WindowOcclusionTrackerTest, ResizeChildFromObserver) {
   // Create window a. Expect it to be non-occluded.
   MockWindowDelegate* delegate_a = new MockWindowDelegate();
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::VISIBLE);
   CreateTrackedWindow(delegate_a, gfx::Rect(0, 0, 10, 10));
   EXPECT_FALSE(delegate_a->is_expecting_call());
 
   // Create window b. Expect it to be non-occluded and to occlude window a.
   MockWindowDelegate* delegate_b = new MockWindowDelegate();
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::OCCLUDED);
-  delegate_b->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::OCCLUDED);
+  delegate_b->set_expectation(Window::OcclusionState::VISIBLE);
   Window* window_b = CreateTrackedWindow(delegate_b, gfx::Rect(0, 0, 10, 10));
   EXPECT_FALSE(delegate_a->is_expecting_call());
   EXPECT_FALSE(delegate_b->is_expecting_call());
@@ -959,7 +939,7 @@
   // Create window c, which is a child of window b. Expect it to be non-
   // occluded.
   MockWindowDelegate* delegate_c = new MockWindowDelegate();
-  delegate_c->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_c->set_expectation(Window::OcclusionState::VISIBLE);
   Window* window_c =
       CreateTrackedWindow(delegate_c, gfx::Rect(0, 0, 5, 5), window_b);
   EXPECT_FALSE(delegate_b->is_expecting_call());
@@ -981,14 +961,14 @@
 TEST_F(WindowOcclusionTrackerTest, ScopedPauseOcclusionTracking) {
   // Create window a. Expect it to be non-occluded.
   MockWindowDelegate* delegate_a = new MockWindowDelegate();
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::VISIBLE);
   Window* window_a = CreateTrackedWindow(delegate_a, gfx::Rect(0, 0, 5, 5));
   EXPECT_FALSE(delegate_a->is_expecting_call());
 
   // Create window b which doesn't overlap window a. Expect it to be non-
   // occluded.
   MockWindowDelegate* delegate_b = new MockWindowDelegate();
-  delegate_b->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_b->set_expectation(Window::OcclusionState::VISIBLE);
   Window* window_b = CreateTrackedWindow(delegate_b, gfx::Rect(0, 10, 5, 5));
   EXPECT_FALSE(delegate_b->is_expecting_call());
 
@@ -1001,7 +981,7 @@
     window_a->SetBounds(gfx::Rect(0, 10, 5, 5));
     window_b->SetBounds(window_a->bounds());
 
-    delegate_a->set_expectation(WindowOcclusionChangedExpectation::OCCLUDED);
+    delegate_a->set_expectation(Window::OcclusionState::OCCLUDED);
   }
   EXPECT_FALSE(delegate_a->is_expecting_call());
 }
@@ -1010,14 +990,14 @@
 TEST_F(WindowOcclusionTrackerTest, NestedScopedPauseOcclusionTracking) {
   // Create window a. Expect it to be non-occluded.
   MockWindowDelegate* delegate_a = new MockWindowDelegate();
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::VISIBLE);
   Window* window_a = CreateTrackedWindow(delegate_a, gfx::Rect(0, 0, 5, 5));
   EXPECT_FALSE(delegate_a->is_expecting_call());
 
   // Create window b which doesn't overlap window a. Expect it to be non-
   // occluded.
   MockWindowDelegate* delegate_b = new MockWindowDelegate();
-  delegate_b->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_b->set_expectation(Window::OcclusionState::VISIBLE);
   Window* window_b = CreateTrackedWindow(delegate_b, gfx::Rect(0, 10, 5, 5));
   EXPECT_FALSE(delegate_b->is_expecting_call());
 
@@ -1043,7 +1023,7 @@
       window_b->SetBounds(window_a->bounds());
     }
 
-    delegate_a->set_expectation(WindowOcclusionChangedExpectation::OCCLUDED);
+    delegate_a->set_expectation(Window::OcclusionState::OCCLUDED);
   }
   EXPECT_FALSE(delegate_a->is_expecting_call());
 }
@@ -1065,15 +1045,15 @@
   CreateUntrackedWindow(gfx::Rect(15, 16, 4, 5), window_b);
 
   MockWindowDelegate* delegate_d = new MockWindowDelegate();
-  delegate_d->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_d->set_expectation(Window::OcclusionState::VISIBLE);
   Window* window_d = CreateTrackedWindow(delegate_d, gfx::Rect(34, 36, 8, 10));
   EXPECT_FALSE(delegate_d->is_expecting_call());
 
-  delegate_d->set_expectation(WindowOcclusionChangedExpectation::OCCLUDED);
+  delegate_d->set_expectation(Window::OcclusionState::OCCLUDED);
   root_window()->StackChildAtBottom(window_d);
   EXPECT_FALSE(delegate_d->is_expecting_call());
 
-  delegate_d->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_d->set_expectation(Window::OcclusionState::VISIBLE);
   window_d->SetBounds(gfx::Rect(35, 36, 8, 10));
   EXPECT_FALSE(delegate_d->is_expecting_call());
 
@@ -1087,13 +1067,13 @@
 TEST_F(WindowOcclusionTrackerTest, Clipping) {
   // Create window a. Expect it to be non-occluded.
   MockWindowDelegate* delegate_a = new MockWindowDelegate();
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::VISIBLE);
   CreateTrackedWindow(delegate_a, gfx::Rect(0, 0, 10, 10));
   EXPECT_FALSE(delegate_a->is_expecting_call());
 
   // Create window b. Expect it to be non-occluded.
   MockWindowDelegate* delegate_b = new MockWindowDelegate();
-  delegate_b->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_b->set_expectation(Window::OcclusionState::VISIBLE);
   Window* window_b = CreateTrackedWindow(delegate_b, gfx::Rect(0, 0, 5, 5));
   EXPECT_FALSE(delegate_b->is_expecting_call());
   window_b->layer()->SetMasksToBounds(true);
@@ -1101,7 +1081,7 @@
   // Create window c which has window b as parent. Don't expect it to occlude
   // window a since its bounds are clipped by window b.
   MockWindowDelegate* delegate_c = new MockWindowDelegate();
-  delegate_c->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_c->set_expectation(Window::OcclusionState::VISIBLE);
   CreateTrackedWindow(delegate_c, gfx::Rect(0, 0, 10, 10), window_b);
   EXPECT_FALSE(delegate_c->is_expecting_call());
 }
@@ -1121,7 +1101,7 @@
   layer_animation_settings.SetTransitionDuration(kTransitionDuration);
 
   MockWindowDelegate* delegate = new MockWindowDelegate();
-  delegate->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate->set_expectation(Window::OcclusionState::VISIBLE);
   Window* window = CreateTrackedWindow(delegate, gfx::Rect(0, 0, 10, 10));
   EXPECT_FALSE(delegate->is_expecting_call());
   window->layer()->SetAnimator(test_controller.animator());
@@ -1149,28 +1129,28 @@
 
   // Create 2 windows. Window b occludes window a.
   MockWindowDelegate* delegate_a = new MockWindowDelegate();
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::VISIBLE);
   Window* window_a = CreateTrackedWindow(delegate_a, gfx::Rect(2, 2, 1, 1));
   EXPECT_FALSE(delegate_a->is_expecting_call());
   window_a->layer()->SetAnimator(test_controller.animator());
 
   MockWindowDelegate* delegate_b = new MockWindowDelegate();
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::OCCLUDED);
-  delegate_b->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::OCCLUDED);
+  delegate_b->set_expectation(Window::OcclusionState::VISIBLE);
   CreateTrackedWindow(delegate_b, gfx::Rect(0, 0, 10, 10));
   EXPECT_FALSE(delegate_a->is_expecting_call());
   EXPECT_FALSE(delegate_b->is_expecting_call());
 
   // Start animating the bounds of window a. Window a should be non-occluded
   // when the animation starts.
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::VISIBLE);
   window_a->SetBounds(gfx::Rect(6, 6, 1, 1));
   test_controller.Step(kTransitionDuration / 2);
   EXPECT_FALSE(delegate_a->is_expecting_call());
 
   // Recreate the layer of window b. Expect this to behave the same as if the
   // animation was abandoned.
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::OCCLUDED);
   std::unique_ptr<ui::Layer> old_layer = window_a->RecreateLayer();
   EXPECT_FALSE(delegate_a->is_expecting_call());
 
@@ -1200,7 +1180,7 @@
 TEST_F(WindowOcclusionTrackerTest, ChangeTrackedWindowBeforeObserveAddToRoot) {
   // Create a window. Expect it to be non-occluded.
   MockWindowDelegate* delegate = new MockWindowDelegate();
-  delegate->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate->set_expectation(Window::OcclusionState::VISIBLE);
   Window* window = CreateTrackedWindow(delegate, gfx::Rect(0, 0, 10, 10));
   EXPECT_FALSE(delegate->is_expecting_call());
 
@@ -1262,7 +1242,7 @@
 
   // Create a window. Expect it to be non-occluded.
   MockWindowDelegate* delegate = new MockWindowDelegate();
-  delegate->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate->set_expectation(Window::OcclusionState::VISIBLE);
   Window* window = CreateTrackedWindow(delegate, gfx::Rect(0, 0, 10, 10));
   EXPECT_FALSE(delegate->is_expecting_call());
   window->layer()->SetAnimator(test_controller.animator());
@@ -1294,7 +1274,7 @@
 
   // Create a tracked window. Expect it to be non-occluded.
   MockWindowDelegate* delegate = new MockWindowDelegate();
-  delegate->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate->set_expectation(Window::OcclusionState::VISIBLE);
   CreateTrackedWindow(delegate, gfx::Rect(0, 0, 10, 10));
   EXPECT_FALSE(delegate->is_expecting_call());
 
@@ -1330,12 +1310,12 @@
       : other_window_(other_window), other_delegate_(other_delegate) {}
 
   // MockWindowDelegate:
-  void OnWindowOcclusionChanged(bool is_occluded) override {
-    MockWindowDelegate::OnWindowOcclusionChanged(is_occluded);
-    if (is_occluded) {
+  void OnWindowOcclusionChanged(
+      Window::OcclusionState occlusion_state) override {
+    MockWindowDelegate::OnWindowOcclusionChanged(occlusion_state);
+    if (occlusion_state == Window::OcclusionState::HIDDEN) {
       other_window_->Hide();
-      other_delegate_->set_expectation(
-          WindowOcclusionChangedExpectation::OCCLUDED);
+      other_delegate_->set_expectation(Window::OcclusionState::HIDDEN);
     }
   }
 
@@ -1353,19 +1333,19 @@
 TEST_F(WindowOcclusionTrackerTest, HideFromOnWindowOcclusionChanged) {
   // Create a tracked window. Expect it to be visible.
   MockWindowDelegate* delegate_a = new MockWindowDelegate();
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::VISIBLE);
   Window* window_a = CreateTrackedWindow(delegate_a, gfx::Rect(0, 0, 10, 10));
   EXPECT_FALSE(delegate_a->is_expecting_call());
 
   // Create a tracked window. Expect it to be visible.
   MockWindowDelegate* delegate_b =
       new WindowDelegateHidingWindowIfOccluded(window_a, delegate_a);
-  delegate_b->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_b->set_expectation(Window::OcclusionState::VISIBLE);
   Window* window_b = CreateTrackedWindow(delegate_b, gfx::Rect(5, 5, 10, 10));
   EXPECT_FALSE(delegate_b->is_expecting_call());
 
   // Hide the tracked window. It should be able to hide |window_a|.
-  delegate_b->set_expectation(WindowOcclusionChangedExpectation::OCCLUDED);
+  delegate_b->set_expectation(Window::OcclusionState::HIDDEN);
   window_b->Hide();
   EXPECT_FALSE(delegate_a->is_expecting_call());
   EXPECT_FALSE(delegate_b->is_expecting_call());
@@ -1382,9 +1362,10 @@
   void set_other_window(Window* other_window) { other_window_ = other_window; }
 
   // MockWindowDelegate:
-  void OnWindowOcclusionChanged(bool is_occluded) override {
-    MockWindowDelegate::OnWindowOcclusionChanged(is_occluded);
-    if (is_occluded) {
+  void OnWindowOcclusionChanged(
+      Window::OcclusionState occlusion_state) override {
+    MockWindowDelegate::OnWindowOcclusionChanged(occlusion_state);
+    if (occlusion_state == Window::OcclusionState::OCCLUDED) {
       delete other_window_;
       other_window_ = nullptr;
     }
@@ -1404,19 +1385,19 @@
 TEST_F(WindowOcclusionTrackerTest, DeleteFromOnWindowOcclusionChanged) {
   // Create a tracked window. Expect it to be visible.
   WindowDelegateDeletingWindow* delegate_a = new WindowDelegateDeletingWindow();
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::VISIBLE);
   Window* window_a = CreateTrackedWindow(delegate_a, gfx::Rect(0, 0, 10, 10));
   EXPECT_FALSE(delegate_a->is_expecting_call());
 
   // Create a tracked window. Expect it to be visible.
   MockWindowDelegate* delegate_b = new MockWindowDelegate();
-  delegate_b->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_b->set_expectation(Window::OcclusionState::VISIBLE);
   Window* window_b = CreateTrackedWindow(delegate_b, gfx::Rect(10, 0, 10, 10));
   EXPECT_FALSE(delegate_b->is_expecting_call());
 
   // Create a tracked window. Expect it to be visible.
   MockWindowDelegate* delegate_c = new MockWindowDelegate();
-  delegate_c->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_c->set_expectation(Window::OcclusionState::VISIBLE);
   Window* window_c = CreateTrackedWindow(delegate_c, gfx::Rect(20, 0, 10, 10));
   EXPECT_FALSE(delegate_c->is_expecting_call());
 
@@ -1424,7 +1405,7 @@
   delegate_a->set_other_window(window_c);
 
   // Move |window_b| on top of |window_a|.
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::OCCLUDED);
   window_b->SetBounds(window_a->bounds());
   EXPECT_FALSE(delegate_a->is_expecting_call());
 }
@@ -1438,18 +1419,21 @@
   void set_window_to_update(Window* window) { window_to_update_ = window; }
 
   // MockWindowDelegate:
-  void OnWindowOcclusionChanged(bool is_occluded) override {
-    MockWindowDelegate::OnWindowOcclusionChanged(is_occluded);
+  void OnWindowOcclusionChanged(
+      Window::OcclusionState occlusion_state) override {
+    MockWindowDelegate::OnWindowOcclusionChanged(occlusion_state);
     if (!window_to_update_)
       return;
 
     if (window_to_update_->IsVisible()) {
       window_to_update_->Hide();
+      EXPECT_FALSE(did_set_expectation_from_occlusion_changed_);
+      set_expectation(Window::OcclusionState::HIDDEN);
+      did_set_expectation_from_occlusion_changed_ = true;
     } else {
       window_to_update_->Show();
-      EXPECT_FALSE(did_set_expectation_from_occlusion_changed_);
-      set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
-      did_set_expectation_from_occlusion_changed_ = true;
+      if (!did_set_expectation_from_occlusion_changed_)
+        set_expectation(Window::OcclusionState::VISIBLE);
     }
   }
 
@@ -1467,29 +1451,29 @@
 TEST_F(WindowOcclusionTrackerTest, OcclusionStatesDontBecomeStable) {
   // Create 2 superposed tracked windows.
   MockWindowDelegate* delegate_a = new MockWindowDelegate();
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::VISIBLE);
   CreateTrackedWindow(delegate_a, gfx::Rect(0, 0, 10, 10));
   EXPECT_FALSE(delegate_a->is_expecting_call());
 
   MockWindowDelegate* delegate_b = new MockWindowDelegate();
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::OCCLUDED);
-  delegate_b->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::OCCLUDED);
+  delegate_b->set_expectation(Window::OcclusionState::VISIBLE);
   CreateTrackedWindow(delegate_b, gfx::Rect(0, 0, 10, 10));
   EXPECT_FALSE(delegate_a->is_expecting_call());
   EXPECT_FALSE(delegate_b->is_expecting_call());
 
   // Create a hidden tracked window.
   MockWindowDelegate* delegate_c = new MockWindowDelegate();
-  delegate_c->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_c->set_expectation(Window::OcclusionState::VISIBLE);
   Window* window_c = CreateTrackedWindow(delegate_c, gfx::Rect(10, 0, 10, 10));
   EXPECT_FALSE(delegate_c->is_expecting_call());
-  delegate_c->set_expectation(WindowOcclusionChangedExpectation::OCCLUDED);
+  delegate_c->set_expectation(Window::OcclusionState::HIDDEN);
   window_c->Hide();
   EXPECT_FALSE(delegate_c->is_expecting_call());
 
   // Create a tracked window. Expect it to be non-occluded.
   auto* delegate_d = new WindowDelegateChangingWindowVisibility();
-  delegate_d->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
+  delegate_d->set_expectation(Window::OcclusionState::VISIBLE);
   Window* window_d = CreateTrackedWindow(delegate_d, gfx::Rect(20, 0, 10, 10));
   EXPECT_FALSE(delegate_d->is_expecting_call());
 
@@ -1501,11 +1485,40 @@
   // Once the maximum number of times that occlusion can be recomputed is
   // reached, the occlusion state of all IsVisible() windows should be set to
   // NOT_OCCLUDED.
-  delegate_a->set_expectation(WindowOcclusionChangedExpectation::NOT_OCCLUDED);
-  delegate_d->set_expectation(WindowOcclusionChangedExpectation::OCCLUDED);
+  delegate_a->set_expectation(Window::OcclusionState::VISIBLE);
+  delegate_d->set_expectation(Window::OcclusionState::HIDDEN);
   window_d->Hide();
   EXPECT_FALSE(delegate_a->is_expecting_call());
   EXPECT_FALSE(delegate_d->is_expecting_call());
 }
 
+// Verify that the occlusion states are correctly update when a branch of the
+// tree is hidden.
+TEST_F(WindowOcclusionTrackerTest, HideTreeBranch) {
+  // Create a branch of 3 tracked windows. Expect them to be visible.
+  MockWindowDelegate* delegate_a = new MockWindowDelegate();
+  delegate_a->set_expectation(Window::OcclusionState::VISIBLE);
+  Window* window_a = CreateTrackedWindow(delegate_a, gfx::Rect(0, 0, 10, 10));
+  EXPECT_FALSE(delegate_a->is_expecting_call());
+
+  MockWindowDelegate* delegate_b = new MockWindowDelegate();
+  delegate_b->set_expectation(Window::OcclusionState::VISIBLE);
+  Window* window_b =
+      CreateTrackedWindow(delegate_b, gfx::Rect(0, 10, 10, 10), window_a);
+  EXPECT_FALSE(delegate_b->is_expecting_call());
+
+  MockWindowDelegate* delegate_c = new MockWindowDelegate();
+  delegate_c->set_expectation(Window::OcclusionState::VISIBLE);
+  CreateTrackedWindow(delegate_c, gfx::Rect(0, 20, 10, 10), window_b);
+  EXPECT_FALSE(delegate_c->is_expecting_call());
+
+  // Hide |window_b| (and hence |window_c|). Expect |window_b| and |window_c| to
+  // be hidden.
+  delegate_b->set_expectation(Window::OcclusionState::HIDDEN);
+  delegate_c->set_expectation(Window::OcclusionState::HIDDEN);
+  window_b->Hide();
+  EXPECT_FALSE(delegate_b->is_expecting_call());
+  EXPECT_FALSE(delegate_c->is_expecting_call());
+}
+
 }  // namespace aura
diff --git a/ui/aura/window_port.h b/ui/aura/window_port.h
index d47a92a..a57c5134 100644
--- a/ui/aura/window_port.h
+++ b/ui/aura/window_port.h
@@ -95,9 +95,6 @@
   // factor.
   virtual const viz::LocalSurfaceId& GetLocalSurfaceId() = 0;
 
-  // This can return invalid FrameSinkId.
-  virtual viz::FrameSinkId GetFrameSinkId() const = 0;
-
   virtual void OnEventTargetingPolicyChanged() = 0;
 
   // See description of function with same name in transient_window_client.
diff --git a/ui/aura/window_port_for_shutdown.cc b/ui/aura/window_port_for_shutdown.cc
index 1688947..a11a2ee 100644
--- a/ui/aura/window_port_for_shutdown.cc
+++ b/ui/aura/window_port_for_shutdown.cc
@@ -63,10 +63,6 @@
   return local_surface_id_;
 }
 
-viz::FrameSinkId WindowPortForShutdown::GetFrameSinkId() const {
-  return frame_sink_id_;
-}
-
 void WindowPortForShutdown::OnEventTargetingPolicyChanged() {}
 
 bool WindowPortForShutdown::ShouldRestackTransientChildren() {
diff --git a/ui/aura/window_port_for_shutdown.h b/ui/aura/window_port_for_shutdown.h
index f803262..e3d97a5 100644
--- a/ui/aura/window_port_for_shutdown.h
+++ b/ui/aura/window_port_for_shutdown.h
@@ -41,13 +41,11 @@
   std::unique_ptr<cc::LayerTreeFrameSink> CreateLayerTreeFrameSink() override;
   void AllocateLocalSurfaceId() override;
   const viz::LocalSurfaceId& GetLocalSurfaceId() override;
-  viz::FrameSinkId GetFrameSinkId() const override;
   void OnEventTargetingPolicyChanged() override;
   bool ShouldRestackTransientChildren() override;
 
  private:
   viz::LocalSurfaceId local_surface_id_;
-  viz::FrameSinkId frame_sink_id_;
   DISALLOW_COPY_AND_ASSIGN(WindowPortForShutdown);
 };
 
diff --git a/ui/message_center/message_center_impl.cc b/ui/message_center/message_center_impl.cc
index 8c392ae7..53485f96 100644
--- a/ui/message_center/message_center_impl.cc
+++ b/ui/message_center/message_center_impl.cc
@@ -72,25 +72,25 @@
 
 void MessageCenterImpl::OnBlockingStateChanged(NotificationBlocker* blocker) {
   DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
-  std::list<const Notification*> blocked;
+  std::list<std::string> blocked;
   NotificationList::PopupNotifications popups =
       notification_list_->GetPopupNotifications(blockers_, &blocked);
 
   // Close already displayed pop-ups that are blocked now.
-  for (const auto* notification : blocked) {
+  for (const std::string& notification_id : blocked) {
     // Do not call MessageCenterImpl::MarkSinglePopupAsShown() directly here
     // just for performance reason. MessageCenterImpl::MarkSinglePopupAsShown()
     // calls NotificationList::MarkSinglePopupAsShown(), but the whole cache
     // will be recreated below.
-    if (notification->IsRead())
-      notification_list_->MarkSinglePopupAsShown(notification->id(), true);
+    if (FindVisibleNotificationById(notification_id)->IsRead())
+      notification_list_->MarkSinglePopupAsShown(notification_id, true);
   }
   visible_notifications_ =
       notification_list_->GetVisibleNotifications(blockers_);
 
-  for (const auto* notification : blocked) {
+  for (const std::string& notification_id : blocked) {
     for (auto& observer : observer_list_)
-      observer.OnNotificationUpdated(notification->id());
+      observer.OnNotificationUpdated(notification_id);
   }
   for (auto& observer : observer_list_)
     observer.OnBlockingStateChanged(blocker);
@@ -150,7 +150,7 @@
 NotificationList::PopupNotifications
     MessageCenterImpl::GetPopupNotifications() {
   DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
-  return notification_list_->GetPopupNotifications(blockers_, NULL);
+  return notification_list_->GetPopupNotifications(blockers_, nullptr);
 }
 
 //------------------------------------------------------------------------------
diff --git a/ui/message_center/notification_list.cc b/ui/message_center/notification_list.cc
index ccffc01..03882443 100644
--- a/ui/message_center/notification_list.cc
+++ b/ui/message_center/notification_list.cc
@@ -177,9 +177,9 @@
   return false;
 }
 
-NotificationList::PopupNotifications NotificationList::GetPopupNotifications(
-    const NotificationBlockers& blockers,
-    std::list<const Notification*>* blocked) {
+NotificationList::PopupNotifications
+NotificationList::GetPopupNotifications(const NotificationBlockers& blockers,
+                                        std::list<std::string>* blocked) {
   PopupNotifications result;
   size_t default_priority_popup_count = 0;
 
@@ -196,7 +196,7 @@
 
     if (!ShouldShowNotificationAsPopup(*notification, blockers)) {
       if (blocked)
-        blocked->push_back(notification);
+        blocked->push_back(notification->id());
       continue;
     }
 
diff --git a/ui/message_center/notification_list.h b/ui/message_center/notification_list.h
index 8d2bb37..c5a7935 100644
--- a/ui/message_center/notification_list.h
+++ b/ui/message_center/notification_list.h
@@ -113,9 +113,8 @@
   // It also stores the list of notifications which are blocked by |blockers|
   // to |blocked|. |blocked| can be NULL if the caller doesn't care which
   // notifications are blocked.
-  PopupNotifications GetPopupNotifications(
-      const NotificationBlockers& blockers,
-      std::list<const Notification*>* blocked);
+  PopupNotifications GetPopupNotifications(const NotificationBlockers& blockers,
+                                           std::list<std::string>* blocked);
 
   // Marks a specific popup item as shown. Set |mark_notification_as_read| to
   // true in case marking the notification as read too.
diff --git a/ui/message_center/public/mojo/notification.mojom b/ui/message_center/public/mojo/notification.mojom
index 3fb4583..1b1b4ba 100644
--- a/ui/message_center/public/mojo/notification.mojom
+++ b/ui/message_center/public/mojo/notification.mojom
@@ -41,7 +41,7 @@
 
 // The fields and their meanings match message_center::ButtonInfo.
 struct ButtonInfo {
-  string title;
+  mojo_base.mojom.String16 title;
   gfx.mojom.ImageSkia? icon;
   mojo_base.mojom.String16? placeholder;
 };
diff --git a/ui/message_center/views/notification_view_md.cc b/ui/message_center/views/notification_view_md.cc
index 3e59b37b..c891578 100644
--- a/ui/message_center/views/notification_view_md.cc
+++ b/ui/message_center/views/notification_view_md.cc
@@ -1375,7 +1375,7 @@
 void NotificationViewMD::RemoveBackgroundAnimation() {
   header_row_->SetSubpixelRenderingEnabled(true);
 
-  SetInkDropMode(InkDropMode::OFF);
+  AnimateInkDrop(views::InkDropState::HIDDEN, nullptr);
 }
 
 void NotificationViewMD::AddInkDropLayer(ui::Layer* ink_drop_layer) {
diff --git a/ui/message_center/views/notification_view_md_unittest.cc b/ui/message_center/views/notification_view_md_unittest.cc
index 74e6e60a..f8574e297 100644
--- a/ui/message_center/views/notification_view_md_unittest.cc
+++ b/ui/message_center/views/notification_view_md_unittest.cc
@@ -178,6 +178,7 @@
 }
 
 void NotificationViewMDTest::TearDown() {
+  notification_view_->SetInkDropMode(MessageView::InkDropMode::OFF);
   notification_view_->RemoveObserver(this);
   widget()->Close();
   notification_view_.reset();
diff --git a/ui/views/accessibility/ax_view_obj_wrapper.cc b/ui/views/accessibility/ax_view_obj_wrapper.cc
index 2c0cb81..2645da52 100644
--- a/ui/views/accessibility/ax_view_obj_wrapper.cc
+++ b/ui/views/accessibility/ax_view_obj_wrapper.cc
@@ -35,6 +35,9 @@
 
 void AXViewObjWrapper::GetChildren(
     std::vector<AXAuraObjWrapper*>* out_children) {
+  if (view_->GetViewAccessibility().IsLeaf())
+    return;
+
   // TODO(dtseng): Need to handle |Widget| child of |View|.
   for (int i = 0; i < view_->child_count(); ++i) {
     if (!view_->child_at(i)->visible())
diff --git a/ui/views/controls/tabbed_pane/tabbed_pane.cc b/ui/views/controls/tabbed_pane/tabbed_pane.cc
index 6b076ca..36a1307 100644
--- a/ui/views/controls/tabbed_pane/tabbed_pane.cc
+++ b/ui/views/controls/tabbed_pane/tabbed_pane.cc
@@ -34,7 +34,10 @@
 namespace {
 
 // TODO(markusheintz|msw): Use NativeTheme colors.
-const SkColor kTabTitleColor_Inactive = SkColorSetRGB(0x64, 0x64, 0x64);
+constexpr SkColor kTabTitleColor_InactiveBorder =
+    SkColorSetARGBMacro(0xFF, 0x64, 0x64, 0x64);
+constexpr SkColor kTabTitleColor_InactiveHighlight =
+    SkColorSetARGBMacro(0xFF, 0x80, 0x86, 0x8B);
 constexpr SkColor kTabTitleColor_ActiveBorder = SK_ColorBLACK;
 constexpr SkColor kTabTitleColor_ActiveHighlight =
     SkColorSetARGBMacro(0xFF, 0x42, 0x85, 0xF4);
@@ -45,11 +48,15 @@
     SkColorSetARGBMacro(0xFF, 0xE8, 0xF0, 0xFE);
 constexpr int kTabHighlightBorderRadius = 32;
 constexpr int kTabHighlightPreferredHeight = 32;
-constexpr int kTabHighlightPreferredWidth = 192;
+constexpr int kTabHighlightPreferredWidth = 208;
 
-const gfx::Font::Weight kHoverWeight = gfx::Font::Weight::NORMAL;
+const gfx::Font::Weight kHoverWeightBorder = gfx::Font::Weight::NORMAL;
+const gfx::Font::Weight kHoverWeightHighlight = gfx::Font::Weight::MEDIUM;
 const gfx::Font::Weight kActiveWeight = gfx::Font::Weight::BOLD;
-const gfx::Font::Weight kInactiveWeight = gfx::Font::Weight::NORMAL;
+const gfx::Font::Weight kInactiveWeightBorder = gfx::Font::Weight::NORMAL;
+const gfx::Font::Weight kInactiveWeightHighlight = gfx::Font::Weight::MEDIUM;
+
+constexpr int kLabelFontSizeDeltaHighlight = 1;
 
 const int kHarmonyTabStripTabHeight = 32;
 constexpr int kBorderThickness = 2;
@@ -182,24 +189,31 @@
 
 void Tab::OnStateChanged() {
   ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance();
+  const bool is_highlight_mode =
+      tabbed_pane_->GetStyle() == TabbedPane::TabStripStyle::kHighlight;
+  const int font_size_delta = is_highlight_mode ? kLabelFontSizeDeltaHighlight
+                                                : ui::kLabelFontSizeDelta;
   switch (tab_state_) {
     case TAB_INACTIVE:
-      title_->SetEnabledColor(kTabTitleColor_Inactive);
-      title_->SetFontList(rb.GetFontListWithDelta(
-          ui::kLabelFontSizeDelta, gfx::Font::NORMAL, kInactiveWeight));
+      title_->SetEnabledColor(is_highlight_mode
+                                  ? kTabTitleColor_InactiveHighlight
+                                  : kTabTitleColor_InactiveBorder);
+      title_->SetFontList(
+          rb.GetFontListWithDelta(font_size_delta, gfx::Font::NORMAL,
+                                  is_highlight_mode ? kInactiveWeightHighlight
+                                                    : kInactiveWeightBorder));
       break;
     case TAB_ACTIVE:
-      title_->SetEnabledColor(tabbed_pane_->GetStyle() ==
-                                      TabbedPane::TabStripStyle::kHighlight
-                                  ? kTabTitleColor_ActiveHighlight
-                                  : kTabTitleColor_ActiveBorder);
+      title_->SetEnabledColor(is_highlight_mode ? kTabTitleColor_ActiveHighlight
+                                                : kTabTitleColor_ActiveBorder);
       title_->SetFontList(rb.GetFontListWithDelta(
-          ui::kLabelFontSizeDelta, gfx::Font::NORMAL, kActiveWeight));
+          font_size_delta, gfx::Font::NORMAL, kActiveWeight));
       break;
     case TAB_HOVERED:
       title_->SetEnabledColor(kTabTitleColor_Hovered);
       title_->SetFontList(rb.GetFontListWithDelta(
-          ui::kLabelFontSizeDelta, gfx::Font::NORMAL, kHoverWeight));
+          font_size_delta, gfx::Font::NORMAL,
+          is_highlight_mode ? kHoverWeightHighlight : kHoverWeightBorder));
       break;
   }
 }
@@ -388,8 +402,7 @@
     const int kTabStripEdgePadding = 8;
     const int kTabSpacing = 16;
     layout = std::make_unique<BoxLayout>(
-        BoxLayout::kVertical,
-        gfx::Insets(kTabStripEdgePadding, 0, 0, kTabStripEdgePadding),
+        BoxLayout::kVertical, gfx::Insets(kTabStripEdgePadding, 0, 0, 0),
         kTabSpacing);
     layout->set_cross_axis_alignment(BoxLayout::CROSS_AXIS_ALIGNMENT_START);
   }
@@ -407,6 +420,10 @@
 }
 
 void TabStrip::OnPaintBorder(gfx::Canvas* canvas) {
+  // Do not draw border line in kHighlight mode.
+  if (style_ == TabbedPane::TabStripStyle::kHighlight)
+    return;
+
   cc::PaintFlags fill_flags;
   fill_flags.setColor(kTabBorderColor);
   fill_flags.setStrokeWidth(kTabBorderThickness);
@@ -425,7 +442,7 @@
   }
 
   int selected_tab_index = GetSelectedTabIndex();
-  if (style_ == TabbedPane::TabStripStyle::kBorder && selected_tab_index >= 0) {
+  if (selected_tab_index >= 0) {
     Tab* selected_tab = GetTabAtIndex(selected_tab_index);
     SkPath path;
     SkScalar tab_height =
@@ -536,6 +553,10 @@
 }
 
 void MdTabStrip::OnPaintBorder(gfx::Canvas* canvas) {
+  // Do not draw border line in kHighlight mode.
+  if (style() == TabbedPane::TabStripStyle::kHighlight)
+    return;
+
   const int kUnselectedBorderThickness = 1;
   const int kSelectedBorderThickness = 2;
   const bool is_horizontal =
@@ -558,10 +579,6 @@
   }
   canvas->FillRect(rect, GetNativeTheme()->GetSystemColor(
                              ui::NativeTheme::kColorId_TabBottomBorder));
-  if (orientation() == TabbedPane::Orientation::kVertical &&
-      style() == TabbedPane::TabStripStyle::kHighlight) {
-    return;
-  }
 
   int min_main_axis = 0;
   int max_main_axis = 0;
diff --git a/ui/webui/resources/cr_components/chromeos/network/network_config.js b/ui/webui/resources/cr_components/chromeos/network/network_config.js
index 6e9a978..f71a1e8 100644
--- a/ui/webui/resources/cr_components/chromeos/network/network_config.js
+++ b/ui/webui/resources/cr_components/chromeos/network/network_config.js
@@ -1095,7 +1095,8 @@
   /** @private */
   getPropertiesToSet_: function() {
     var propertiesToSet = Object.assign({}, this.configProperties_);
-    propertiesToSet.GUID = this.guid;
+    if (this.guid)
+      propertiesToSet.GUID = this.guid;
     var eap = this.getEap_(propertiesToSet);
     if (eap)
       this.setEapProperties_(eap);
diff --git a/url/features.gni b/url/features.gni
index 3b55cc75..3e0b75b 100644
--- a/url/features.gni
+++ b/url/features.gni
@@ -5,7 +5,12 @@
 # Features used by targets inside and outside of |url|.
 # For details see declare_args() in build/config/BUILDCONFIG.gn.
 declare_args() {
-  # Enables the use of ICU alternatives in lieu of ICU. The flag is used
-  # for Cronet to reduce the size of the Cronet binary.
+  # Enables the use of ICU alternatives in lieu of ICU for the target toolchain.
+  # The flag is used for Cronet to reduce the size of the Cronet binary.
   use_platform_icu_alternatives = false
 }
+
+# Never use platform icu for host toolchain.
+# E.g. Don't apply this for host binaries when target_os = "android".
+use_platform_icu_alternatives =
+    use_platform_icu_alternatives && current_toolchain == default_toolchain