diff --git a/tests/wpt/metadata/FileAPI/url/url-in-tags-revoke.window.js.ini b/tests/wpt/metadata/FileAPI/url/url-in-tags-revoke.window.js.ini index dd4ffcf4345..76b398963ae 100644 --- a/tests/wpt/metadata/FileAPI/url/url-in-tags-revoke.window.js.ini +++ b/tests/wpt/metadata/FileAPI/url/url-in-tags-revoke.window.js.ini @@ -1,4 +1,5 @@ [url-in-tags-revoke.window.html] + expected: TIMEOUT [Fetching a blob URL immediately before revoking it works in an iframe.] expected: FAIL @@ -14,3 +15,6 @@ [Opening a blob URL in a new window by clicking an tag works immediately before revoking the URL.] expected: FAIL + [Fetching a blob URL immediately before revoking it works in + + + +
+
+ diff --git a/tests/wpt/web-platform-tests/custom-elements/range-and-constructors.html b/tests/wpt/web-platform-tests/custom-elements/range-and-constructors.html new file mode 100644 index 00000000000..d17c3b71480 --- /dev/null +++ b/tests/wpt/web-platform-tests/custom-elements/range-and-constructors.html @@ -0,0 +1,61 @@ + + + +Custom elements: Range APIs should invoke constructor in tree order + + + + + + + + + +
+ + + + + + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/dom/nodes/attributes.html b/tests/wpt/web-platform-tests/dom/nodes/attributes.html index 21188933ea4..dac191b54cb 100644 --- a/tests/wpt/web-platform-tests/dom/nodes/attributes.html +++ b/tests/wpt/web-platform-tests/dom/nodes/attributes.html @@ -604,7 +604,7 @@ test(function() { test(function() { var el = document.createElement("div"); var other = document.createElement("div"); - attr = document.createAttribute("foo"); + var attr = document.createAttribute("foo"); assert_equals(el.setAttributeNode(attr), null); assert_equals(attr.ownerElement, el); assert_throws("INUSE_ATTRIBUTE_ERR", @@ -614,7 +614,7 @@ test(function() { test(function() { var el = document.createElement("div"); - attr = document.createAttribute("foo"); + var attr = document.createAttribute("foo"); assert_equals(el.setAttributeNode(attr), null); el.setAttribute("bar", "qux"); assert_equals(el.setAttributeNode(attr), attr); diff --git a/tests/wpt/web-platform-tests/html/dom/historical.html b/tests/wpt/web-platform-tests/html/dom/historical.html index a36b4b2e92b..b79d35f0b8a 100644 --- a/tests/wpt/web-platform-tests/html/dom/historical.html +++ b/tests/wpt/web-platform-tests/html/dom/historical.html @@ -30,4 +30,13 @@ test(() => { test(() => { assert_equals(self.getComputedStyle(document.getElementsByTagName("applet")[0], "").cssFloat, "none"); }, "applet is not styled") + +// removed in https://github.com/whatwg/html/commit/e383ae23776362cafb2fb4bbba70c8c9080d4b0f +test(() => { + assert_false("HTMLTableDataCellElement" in window); +}, "HTMLTableDataCellElement interface is removed") + +test(() => { + assert_false("HTMLTableHeaderCellElement" in window); +}, "HTMLTableHeaderCellElement interface is removed") diff --git a/tests/wpt/web-platform-tests/html/semantics/forms/the-select-element/select-selectedOptions.html b/tests/wpt/web-platform-tests/html/semantics/forms/the-select-element/select-selectedOptions.html index f8e577a8a06..6a5c75f2b14 100644 --- a/tests/wpt/web-platform-tests/html/semantics/forms/the-select-element/select-selectedOptions.html +++ b/tests/wpt/web-platform-tests/html/semantics/forms/the-select-element/select-selectedOptions.html @@ -114,12 +114,15 @@ test(() => { test(() => { const select = document.getElementById("select-same-object-change"); const before = select.selectedOptions; + assert_equals(before.length, 3); select.selectedOptions[1].selected = false; const after = select.selectedOptions; assert_equals(before, after); + assert_equals(before.length, 2); + assert_equals(after.length, 2); }, ".selectedOptions should return the same object after selection changes - [SameObject]"); diff --git a/tests/wpt/web-platform-tests/html/syntax/parsing/meta-inhead-insertion-mode.html b/tests/wpt/web-platform-tests/html/syntax/parsing/meta-inhead-insertion-mode.html new file mode 100644 index 00000000000..4317e4eb14a --- /dev/null +++ b/tests/wpt/web-platform-tests/html/syntax/parsing/meta-inhead-insertion-mode.html @@ -0,0 +1,15 @@ + + + +Encoding specified in the "charset" attribute should have precedence over "content" attribute. + + + + + + + diff --git a/tests/wpt/web-platform-tests/interfaces/SVG.idl b/tests/wpt/web-platform-tests/interfaces/SVG.idl index 2ab3741d82f..01d87b862b4 100644 --- a/tests/wpt/web-platform-tests/interfaces/SVG.idl +++ b/tests/wpt/web-platform-tests/interfaces/SVG.idl @@ -673,11 +673,16 @@ SVGScriptElement includes SVGURIReference; [Exposed=Window] interface SVGAElement : SVGGraphicsElement { [SameObject] readonly attribute SVGAnimatedString target; - [SameObject] readonly attribute SVGAnimatedString download; - [SameObject] readonly attribute SVGAnimatedString rel; - [SameObject] readonly attribute SVGAnimatedString relList; - [SameObject] readonly attribute SVGAnimatedString hreflang; - [SameObject] readonly attribute SVGAnimatedString type; + attribute DOMString download; + attribute USVString ping; + attribute DOMString rel; + [SameObject, PutsForward=value] readonly attribute DOMTokenList relList; + attribute DOMString hreflang; + attribute DOMString type; + + attribute DOMString text; + + attribute DOMString referrerPolicy; }; SVGAElement includes SVGURIReference; diff --git a/tests/wpt/web-platform-tests/interfaces/background-fetch.idl b/tests/wpt/web-platform-tests/interfaces/background-fetch.idl index fc3ed8dad35..6957604e7df 100644 --- a/tests/wpt/web-platform-tests/interfaces/background-fetch.idl +++ b/tests/wpt/web-platform-tests/interfaces/background-fetch.idl @@ -1,10 +1,10 @@ // GENERATED CONTENT - DO NOT EDIT -// Content of this file was automatically extracted from the -// "Background Fetch" spec. -// See: https://wicg.github.io/background-fetch/ +// Content was automatically extracted by Reffy into reffy-reports +// (https://github.com/tidoust/reffy-reports) +// Source: Background Fetch (https://wicg.github.io/background-fetch/) partial interface ServiceWorkerGlobalScope { - attribute EventHandler onbackgroundfetched; + attribute EventHandler onbackgroundfetchsuccess; attribute EventHandler onbackgroundfetchfail; attribute EventHandler onbackgroundfetchabort; attribute EventHandler onbackgroundfetchclick; @@ -22,9 +22,12 @@ interface BackgroundFetchManager { // TODO: in future this should become an async iterator for BackgroundFetchRegistration objects }; -dictionary BackgroundFetchOptions { +dictionary BackgroundFetchUIOptions { sequence icons = []; DOMString title = ""; +}; + +dictionary BackgroundFetchOptions : BackgroundFetchUIOptions { unsigned long long downloadTotal = 0; }; @@ -43,73 +46,50 @@ interface BackgroundFetchRegistration : EventTarget { readonly attribute unsigned long long uploaded; readonly attribute unsigned long long downloadTotal; readonly attribute unsigned long long downloaded; - readonly attribute BackgroundFetchActiveFetches activeFetches; + readonly attribute BackgroundFetchState state; + readonly attribute BackgroundFetchFailureReason failureReason; attribute EventHandler onprogress; Promise abort(); + Promise match(RequestInfo request, optional CacheQueryOptions options); + Promise> matchAll(optional RequestInfo request, optional CacheQueryOptions options); +}; + +enum BackgroundFetchState { "pending", "success", "failure" }; + +enum BackgroundFetchFailureReason { + "", + // The operation was aborted by the user, or abort() was called. + "aborted", + // A response had a not-ok-status. + "bad-status", + // A fetch failed for other reasons, e.g. CORS, MIX, an invalid partial response, + // or a general network failure for a fetch that cannot be retried. + "fetch-error", + // Storage quota was reached during the operation. + "quota-exceeded", + // The provided downloadTotal was exceeded. + "total-download-exceeded" }; [Exposed=(Window,Worker)] -interface BackgroundFetchActiveFetches { - Promise match(RequestInfo request, optional CacheQueryOptions options); - Promise> matchAll(RequestInfo request, optional CacheQueryOptions options); - Promise> values(); -}; - -[Exposed=(Window,Worker)] -interface BackgroundFetchActiveFetch : BackgroundFetchFetch { - readonly attribute Promise responseReady; - // In future this will include a fetch observer -}; - -[Exposed=(Window,Worker)] -interface BackgroundFetchFetch { +interface BackgroundFetchRecord { readonly attribute Request request; + readonly attribute Promise responseReady; + // TODO: In future this will include a fetch observer }; [Constructor(DOMString type, BackgroundFetchEventInit init), Exposed=ServiceWorker] interface BackgroundFetchEvent : ExtendableEvent { - readonly attribute DOMString id; + readonly attribute BackgroundFetchRegistration registration; }; dictionary BackgroundFetchEventInit : ExtendableEventInit { - required DOMString id; + required BackgroundFetchRegistration registration; }; -[Constructor(DOMString type, BackgroundFetchSettledEventInit init), Exposed=ServiceWorker] -interface BackgroundFetchSettledEvent : BackgroundFetchEvent { - readonly attribute BackgroundFetchSettledFetches fetches; +[Constructor(DOMString type, BackgroundFetchEventInit init), Exposed=ServiceWorker] +interface BackgroundFetchUpdateUIEvent : BackgroundFetchEvent { + Promise updateUI(optional BackgroundFetchUIOptions options); }; - -dictionary BackgroundFetchSettledEventInit : BackgroundFetchEventInit { - required BackgroundFetchSettledFetches fetches; -}; - -[Exposed=ServiceWorker] -interface BackgroundFetchSettledFetches { - Promise match(RequestInfo request, optional CacheQueryOptions options); - Promise> matchAll(RequestInfo request, optional CacheQueryOptions options); - Promise> values(); -}; - -[Exposed=ServiceWorker] -interface BackgroundFetchSettledFetch : BackgroundFetchFetch { - readonly attribute Response? response; -}; - -[Constructor(DOMString type, BackgroundFetchSettledEventInit init), Exposed=ServiceWorker] -interface BackgroundFetchUpdateEvent : BackgroundFetchSettledEvent { - Promise updateUI(DOMString title); -}; - -[Constructor(DOMString type, BackgroundFetchClickEventInit init), Exposed=ServiceWorker] -interface BackgroundFetchClickEvent : BackgroundFetchEvent { - readonly attribute BackgroundFetchState state; -}; - -dictionary BackgroundFetchClickEventInit : BackgroundFetchEventInit { - required BackgroundFetchState state; -}; - -enum BackgroundFetchState { "pending", "succeeded", "failed" }; diff --git a/tests/wpt/web-platform-tests/interfaces/css-paint-api.idl b/tests/wpt/web-platform-tests/interfaces/css-paint-api.idl index 442bbfac158..c636e2e7d37 100644 --- a/tests/wpt/web-platform-tests/interfaces/css-paint-api.idl +++ b/tests/wpt/web-platform-tests/interfaces/css-paint-api.idl @@ -1,9 +1,9 @@ // GENERATED CONTENT - DO NOT EDIT -// Content of this file was automatically extracted from the -// "CSS Painting API Level 1" spec. -// See: https://drafts.css-houdini.org/css-paint-api-1/ +// Content was automatically extracted by Reffy into reffy-reports +// (https://github.com/tidoust/reffy-reports) +// Source: CSS Painting API Level 1 (https://drafts.css-houdini.org/css-paint-api-1/) -partial interface CSS { +partial namespace CSS { [SameObject] readonly attribute Worklet paintWorklet; }; diff --git a/tests/wpt/web-platform-tests/interfaces/webrtc.idl b/tests/wpt/web-platform-tests/interfaces/webrtc.idl index 2849a7d2b27..c06e91e6de7 100644 --- a/tests/wpt/web-platform-tests/interfaces/webrtc.idl +++ b/tests/wpt/web-platform-tests/interfaces/webrtc.idl @@ -1,7 +1,7 @@ // GENERATED CONTENT - DO NOT EDIT -// Content of this file was automatically extracted from the -// "WebRTC 1.0: Real-time Communication Between Browsers" spec. -// See: https://w3c.github.io/webrtc-pc/ +// Content was automatically extracted by Reffy into reffy-reports +// (https://github.com/tidoust/reffy-reports) +// Source: WebRTC 1.0: Real-time Communication Between Browsers (https://w3c.github.io/webrtc-pc/) dictionary RTCConfiguration { sequence iceServers; @@ -105,7 +105,7 @@ interface RTCPeerConnection : EventTarget { readonly attribute RTCSessionDescription? remoteDescription; readonly attribute RTCSessionDescription? currentRemoteDescription; readonly attribute RTCSessionDescription? pendingRemoteDescription; - Promise addIceCandidate((RTCIceCandidateInit or RTCIceCandidate) candidate); + Promise addIceCandidate(RTCIceCandidateInit candidate); readonly attribute RTCSignalingState signalingState; readonly attribute RTCIceGatheringState iceGatheringState; readonly attribute RTCIceConnectionState iceConnectionState; @@ -129,7 +129,7 @@ partial interface RTCPeerConnection { Promise setLocalDescription(RTCSessionDescriptionInit description, VoidFunction successCallback, RTCPeerConnectionErrorCallback failureCallback); Promise createAnswer(RTCSessionDescriptionCallback successCallback, RTCPeerConnectionErrorCallback failureCallback); Promise setRemoteDescription(RTCSessionDescriptionInit description, VoidFunction successCallback, RTCPeerConnectionErrorCallback failureCallback); - Promise addIceCandidate((RTCIceCandidateInit or RTCIceCandidate) candidate, VoidFunction successCallback, RTCPeerConnectionErrorCallback failureCallback); + Promise addIceCandidate(RTCIceCandidateInit candidate, VoidFunction successCallback, RTCPeerConnectionErrorCallback failureCallback); }; callback RTCPeerConnectionErrorCallback = void (DOMException error); diff --git a/tests/wpt/web-platform-tests/navigation-timing/nav2_idlharness.html b/tests/wpt/web-platform-tests/navigation-timing/nav2_idlharness.html deleted file mode 100644 index 6d1a1249b91..00000000000 --- a/tests/wpt/web-platform-tests/navigation-timing/nav2_idlharness.html +++ /dev/null @@ -1,73 +0,0 @@ - - - - -Navigation Timing 2 IDL tests - - - - - - - - - - - -
-enum NavigationType {
-    "navigate",
-    "reload",
-    "back_forward",
-    "prerender"
-};
-
-interface PerformanceNavigationTiming : PerformanceResourceTiming {
-    readonly attribute DOMHighResTimeStamp unloadEventStart;
-    readonly attribute DOMHighResTimeStamp unloadEventEnd;
-    readonly attribute DOMHighResTimeStamp domInteractive;
-    readonly attribute DOMHighResTimeStamp domContentLoadedEventStart;
-    readonly attribute DOMHighResTimeStamp domContentLoadedEventEnd;
-    readonly attribute DOMHighResTimeStamp domComplete;
-    readonly attribute DOMHighResTimeStamp loadEventStart;
-    readonly attribute DOMHighResTimeStamp loadEventEnd;
-    readonly attribute NavigationType      type;
-    readonly attribute unsigned short      redirectCount;
-    [Default] object toJSON();
-};
-
- - - - diff --git a/tests/wpt/web-platform-tests/svg/idlharness.window.js b/tests/wpt/web-platform-tests/svg/idlharness.window.js index e08adf89787..46e8aaee6af 100644 --- a/tests/wpt/web-platform-tests/svg/idlharness.window.js +++ b/tests/wpt/web-platform-tests/svg/idlharness.window.js @@ -11,12 +11,12 @@ const elements = [ 'svg', 'g', 'defs', - 'Desc', + 'desc', 'title', 'symbol', 'use', 'image', - 'Switch', + 'switch', 'style', 'path', 'rect', @@ -49,8 +49,7 @@ const elements = [ 'animate', 'set', 'animateMotion', - 'mPath', - 'animateColor', + 'mpath', 'animateColor', 'animateTransform', 'font', @@ -127,12 +126,12 @@ idl_test( SVGSVGElement: ['objects.svg'], SVGGElement: ['objects.g'], SVGDefsElement: ['objects.defs'], - SVGDescElement: ['objects.Desc'], + SVGDescElement: ['objects.desc'], SVGTitleElement: ['objects.title'], SVGSymbolElement: ['objects.symbol'], SVGUseElement: ['objects.use'], SVGImageElement: ['objects.image'], - SVGSwitchElement: ['objects.Switch'], + SVGSwitchElement: ['objects.switch'], SVGStyleElement: ['objects.style'], SVGPoint: ['objects.svg.createSVGPoint()'], SVGPointList: ['objects.polygon.points'], @@ -193,7 +192,7 @@ idl_test( SVGAnimateElement: ['objects.animate'], SVGSetElement: ['objects.set'], SVGAnimateMotionElement: ['objects.animateMotion'], - SVGMPathElement: ['objects.mPath'], + SVGMPathElement: ['objects.mpath'], SVGAnimateColorElement: ['objects.animateColor'], SVGAnimateTransformElement: ['objects.animateTransform'], SVGFontElement: ['objects.font'], diff --git a/tests/wpt/web-platform-tests/svg/painting/reftests/paint-order-001-ref.svg b/tests/wpt/web-platform-tests/svg/painting/reftests/paint-order-001-ref.svg index 6e1e016f6f5..7822a80b942 100644 --- a/tests/wpt/web-platform-tests/svg/painting/reftests/paint-order-001-ref.svg +++ b/tests/wpt/web-platform-tests/svg/painting/reftests/paint-order-001-ref.svg @@ -51,11 +51,11 @@ - + - + @@ -63,10 +63,10 @@ - + - + diff --git a/tests/wpt/web-platform-tests/tools/wptserve/setup.py b/tests/wpt/web-platform-tests/tools/wptserve/setup.py index 194c3372c94..c9c364b8bac 100644 --- a/tests/wpt/web-platform-tests/tools/wptserve/setup.py +++ b/tests/wpt/web-platform-tests/tools/wptserve/setup.py @@ -1,7 +1,7 @@ from setuptools import setup PACKAGE_VERSION = '2.0' -deps = ["six>=1.8"] +deps = ["six>=1.8", "h2==3.0.1"] setup(name='wptserve', version=PACKAGE_VERSION, diff --git a/tests/wpt/web-platform-tests/uievents/idlharness.window.js b/tests/wpt/web-platform-tests/uievents/idlharness.window.js new file mode 100644 index 00000000000..928c8c90f0f --- /dev/null +++ b/tests/wpt/web-platform-tests/uievents/idlharness.window.js @@ -0,0 +1,20 @@ +// META: script=/resources/WebIDLParser.js +// META: script=/resources/idlharness.js + +'use strict'; + +idl_test( + ['uievents'], + ['dom'], + idl_array => { + idl_array.add_objects({ + FocusEvent: ['new FocusEvent("event")'], + MouseEvent: ['new MouseEvent("event")'], + WheelEvent: ['new WheelEvent("event")'], + KeyboardEvent: ['new KeyboardEvent("event")'], + CompositionEvent: ['new CompositionEvent("event")'], + UIEvent: ['new UIEvent("event")'], + InputEvent: ['new InputEvent("event")'], + }); + } +); diff --git a/tests/wpt/web-platform-tests/uievents/interfaces.html b/tests/wpt/web-platform-tests/uievents/interfaces.html deleted file mode 100644 index 0d20f1d7101..00000000000 --- a/tests/wpt/web-platform-tests/uievents/interfaces.html +++ /dev/null @@ -1,48 +0,0 @@ - - -UI Events IDL tests - - - - - - -

UI Events IDL tests

-
- - diff --git a/tests/wpt/web-platform-tests/vibration/idl.html b/tests/wpt/web-platform-tests/vibration/idl.html deleted file mode 100644 index 167090cd67b..00000000000 --- a/tests/wpt/web-platform-tests/vibration/idl.html +++ /dev/null @@ -1,23 +0,0 @@ - - -IDL harness tests for Vibration API - -

Description

-

- This test validates the IDL defined by the Vibration API. -

-

- This test uses idlharness.js -

-
- - - - - diff --git a/tests/wpt/web-platform-tests/vibration/idlharness.window.js b/tests/wpt/web-platform-tests/vibration/idlharness.window.js new file mode 100644 index 00000000000..fbe14daa611 --- /dev/null +++ b/tests/wpt/web-platform-tests/vibration/idlharness.window.js @@ -0,0 +1,12 @@ +// META: script=/resources/WebIDLParser.js +// META: script=/resources/idlharness.js + +'use strict'; + +idl_test( + ['vibration'], + ['html'], + idl_array => { + idl_array.add_objects({Navigator: ['navigator']}); + } +); diff --git a/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-delaynode-interface/delaynode-channel-count-1.html b/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-delaynode-interface/delaynode-channel-count-1.html new file mode 100644 index 00000000000..dd964ef9e36 --- /dev/null +++ b/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-delaynode-interface/delaynode-channel-count-1.html @@ -0,0 +1,104 @@ + +Test that DelayNode output channelCount matches that of the delayed input + + + diff --git a/tests/wpt/web-platform-tests/webvtt/api/idlharness.window.js b/tests/wpt/web-platform-tests/webvtt/api/idlharness.window.js new file mode 100644 index 00000000000..53c1ded6749 --- /dev/null +++ b/tests/wpt/web-platform-tests/webvtt/api/idlharness.window.js @@ -0,0 +1,15 @@ +// META: script=/resources/WebIDLParser.js +// META: script=/resources/idlharness.js + +'use strict'; + +idl_test( + ['webvtt'], + ['html', 'dom'], + idl_array => { + idl_array.add_objects({ + VTTCue: ['new VTTCue(0, 0, "")'], + VTTRegion: ['new VTTRegion()'], + }); + } +); diff --git a/tests/wpt/web-platform-tests/webvtt/api/interfaces.html b/tests/wpt/web-platform-tests/webvtt/api/interfaces.html deleted file mode 100644 index 5222256d617..00000000000 --- a/tests/wpt/web-platform-tests/webvtt/api/interfaces.html +++ /dev/null @@ -1,138 +0,0 @@ - - -WebVTT IDL tests - - - - - -

WebVTT IDL tests

-
- - - - diff --git a/tests/wpt/web-platform-tests/xhr/overridemimetype-edge-cases.window.js b/tests/wpt/web-platform-tests/xhr/overridemimetype-edge-cases.window.js index 6dfe755b767..192a696759c 100644 --- a/tests/wpt/web-platform-tests/xhr/overridemimetype-edge-cases.window.js +++ b/tests/wpt/web-platform-tests/xhr/overridemimetype-edge-cases.window.js @@ -5,7 +5,7 @@ async_test(t => { let secondTime = false; client.onload = t.step_func(() => { if(!secondTime) { - assert_equals(client.responseText, "\uFFFD"); + assert_equals(client.responseText, "\uFFFD\uFFFD"); secondTime = true; client.open("GET", testURL); client.send(); @@ -32,7 +32,7 @@ async_test(t => { async_test(t => { const client = new XMLHttpRequest(); client.onload = t.step_func_done(() => { - assert_equals(client.responseText, "\uFFFD") + assert_equals(client.responseText, "\uFFFD\uFFFD") }); client.open("GET", testURL); client.overrideMimeType("text/plain;charset=342");