diff options
32 files changed, 993 insertions, 223 deletions
diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json index 4b9673764c0..38a655726e3 100644 --- a/tests/wpt/metadata/MANIFEST.json +++ b/tests/wpt/metadata/MANIFEST.json @@ -1231,6 +1231,12 @@ {} ] ], + "clipboard-apis/async-write-image-read-image-manual.https.html": [ + [ + "/clipboard-apis/async-write-image-read-image-manual.https.html", + {} + ] + ], "clipboard-apis/async-write-text-read-dttext-manual.https.html": [ [ "/clipboard-apis/async-write-text-read-dttext-manual.https.html", @@ -193627,6 +193633,18 @@ {} ] ], + "portals/portals-rendering.html": [ + [ + "/portals/portals-rendering.html", + [ + [ + "/portals/references/portals-rendering.html", + "==" + ] + ], + {} + ] + ], "quirks/historical/list-item-bullet-size.html": [ [ "/quirks/historical/list-item-bullet-size.html", @@ -204632,6 +204650,11 @@ {} ] ], + "clipboard-apis/resources/greenbox.png": [ + [ + {} + ] + ], "common/META.yml": [ [ {} @@ -279627,6 +279650,11 @@ {} ] ], + "css/mediaqueries/resources/matchmedia-utils.js": [ + [ + {} + ] + ], "css/mediaqueries/support/media_queries_iframe.html": [ [ {} @@ -303787,6 +303815,11 @@ {} ] ], + "portals/references/portals-rendering.html": [ + [ + {} + ] + ], "portals/resources/portal-activate-event-portal.html": [ [ {} @@ -303797,6 +303830,11 @@ {} ] ], + "portals/resources/portals-rendering-portal.html": [ + [ + {} + ] + ], "portals/resources/postmessage-referrer.sub.html": [ [ {} @@ -341866,6 +341904,12 @@ {} ] ], + "css/css-flexbox/flex-basis-009.html": [ + [ + "/css/css-flexbox/flex-basis-009.html", + {} + ] + ], "css/css-flexbox/flex-minimum-height-flex-items-009.html": [ [ "/css/css-flexbox/flex-minimum-height-flex-items-009.html", @@ -353170,6 +353214,12 @@ {} ] ], + "css/mediaqueries/prefers-reduced-motion.html": [ + [ + "/css/mediaqueries/prefers-reduced-motion.html", + {} + ] + ], "css/mediaqueries/test_media_queries.html": [ [ "/css/mediaqueries/test_media_queries.html", @@ -383362,6 +383412,12 @@ {} ] ], + "mediacapture-record/MediaRecorder-pause-resume.html": [ + [ + "/mediacapture-record/MediaRecorder-pause-resume.html", + {} + ] + ], "mediacapture-record/MediaRecorder-stop.html": [ [ "/mediacapture-record/MediaRecorder-stop.html", @@ -456736,7 +456792,7 @@ "testharness" ], "clipboard-apis/async-navigator-clipboard-basics.https.html": [ - "11ed88c3fa2172c2ca0e635cb7f263f99388ca3a", + "ea0ca2902c5ab4643a1d72f554ce21ef1780a4ad", "testharness" ], "clipboard-apis/async-write-dttext-read-dttext-manual.https.html": [ @@ -456747,6 +456803,10 @@ "1b178696f17ca0bc1bac0b7e1c285ae8d52d5360", "manual" ], + "clipboard-apis/async-write-image-read-image-manual.https.html": [ + "ac7fb0863e75a1a33451033db054d2bf812d8450", + "manual" + ], "clipboard-apis/async-write-text-read-dttext-manual.https.html": [ "9f524b93d719b7b94cfcede77948d507bc0d4b57", "manual" @@ -456771,6 +456831,10 @@ "4131a41bff6fd6bf5fb22fa805aea219ec7f72aa", "manual" ], + "clipboard-apis/resources/greenbox.png": [ + "6e555e3b197ce2f448f59d61e1488a0175490145", + "support" + ], "common/META.yml": [ "594c8b170f5043a944fdd4de17d4bd65eba242fb", "support" @@ -548783,6 +548847,10 @@ "e454f199ef4387e550908d1d7739720530dd3afa", "reftest" ], + "css/css-flexbox/flex-basis-009.html": [ + "3e2026958fdd899349126ebe4778fb62a692d631", + "testharness" + ], "css/css-flexbox/flex-box-wrap.html": [ "2a1ab9c00cda7b78026eb04e31894bda43392a5d", "reftest" @@ -597016,7 +597084,11 @@ "reftest" ], "css/mediaqueries/prefers-color-scheme.html": [ - "705a7ca47f87692e0b888cf4cdcd4523304395c9", + "c6ca45ab17201466e01006cab78331a0765cc6c8", + "testharness" + ], + "css/mediaqueries/prefers-reduced-motion.html": [ + "2d9f88474598bcaa0c988639473821171f08b094", "testharness" ], "css/mediaqueries/reference/ref-green-body.xht": [ @@ -597039,6 +597111,10 @@ "b0f3765358d98906ce8e7cbbdf9743d357e7f2f9", "reftest" ], + "css/mediaqueries/resources/matchmedia-utils.js": [ + "544f68c0400e4966c9124a9f481c6e12bf985f36", + "support" + ], "css/mediaqueries/support/media_queries_iframe.html": [ "890eb6c46113afbaf1dc88188c52a791623590a8", "support" @@ -629872,7 +629948,7 @@ "support" ], "html/semantics/embedded-content/the-img-element/Image-constructor.html": [ - "aa838ec8774e2bcaac360bf8ed929e0facc7fa3e", + "38b6765bb4984255aaf1bd039b9a9262e85728bc", "testharness" ], "html/semantics/embedded-content/the-img-element/adoption.html": [ @@ -636932,7 +637008,7 @@ "support" ], "interfaces/dom.idl": [ - "503c391102a23db22ae0042c299b23702c004458", + "1788faae5207bb7a21b23771bf2b0e978ea49a69", "support" ], "interfaces/encoding.idl": [ @@ -637220,7 +637296,7 @@ "support" ], "interfaces/user-timing.idl": [ - "723b063156a07aa7524f3dab1496b46e51b1e9f8", + "da8a0acd6738745fc2a724213e404c2f364329de", "support" ], "interfaces/vibration.idl": [ @@ -639011,8 +639087,12 @@ "58b9c08ecab0ff8872748f5215743379876ea5ef", "testharness" ], + "mediacapture-record/MediaRecorder-pause-resume.html": [ + "39a8883664550af1a48ae965d4789a0d6df97d28", + "testharness" + ], "mediacapture-record/MediaRecorder-stop.html": [ - "8e05fc5491d8da7aaddefea20fae36d705c75bce", + "5dd9aa637305f1ac65208b0e5f956831b8c22cb4", "testharness" ], "mediacapture-record/idlharness.window.js": [ @@ -650167,6 +650247,14 @@ "0386272f441a0c2e19452821968a624d3ab16700", "testharness" ], + "portals/portals-rendering.html": [ + "8683a38326d96f5e180d3a2042aba652b8c0fa03", + "reftest" + ], + "portals/references/portals-rendering.html": [ + "4a8414ab5656593811772c3728e4ee83eb034457", + "support" + ], "portals/resources/portal-activate-event-portal.html": [ "d0eebcd12e65193024f6444af922b7503e76d8ec", "support" @@ -650175,6 +650263,10 @@ "1994dc3fad11e8b3ad9e8dc71f4aa96f06baa389", "support" ], + "portals/resources/portals-rendering-portal.html": [ + "1b6f23f512da5bb7d1c7b5b85e48277470d2e146", + "support" + ], "portals/resources/postmessage-referrer.sub.html": [ "6897ab0801d8d0408913a5a44c03a022c983121e", "support" @@ -660380,7 +660472,7 @@ "support" ], "resources/idlharness.js": [ - "926a615e59c9cd6f602c6e700494d1600ac6d0a5", + "8b7a1e2d98ea3167793f6996d56211ebb2cf0f41", "support" ], "resources/idlharness.js.headers": [ diff --git a/tests/wpt/metadata/css/css-flexbox/flex-basis-009.html.ini b/tests/wpt/metadata/css/css-flexbox/flex-basis-009.html.ini new file mode 100644 index 00000000000..2145b043969 --- /dev/null +++ b/tests/wpt/metadata/css/css-flexbox/flex-basis-009.html.ini @@ -0,0 +1,4 @@ +[flex-basis-009.html] + [#flexbox 1] + expected: FAIL + diff --git a/tests/wpt/metadata/css/mediaqueries/prefers-color-scheme.html.ini b/tests/wpt/metadata/css/mediaqueries/prefers-color-scheme.html.ini index bb52daa7836..8c545cb7ac2 100644 --- a/tests/wpt/metadata/css/mediaqueries/prefers-color-scheme.html.ini +++ b/tests/wpt/metadata/css/mediaqueries/prefers-color-scheme.html.ini @@ -2,3 +2,30 @@ [prefers-color-scheme] expected: FAIL + [Should be parseable in JS: '(prefers-color-scheme: dark)'] + expected: FAIL + + [Should be parseable in a CSS stylesheet: '(prefers-color-scheme: light)'] + expected: FAIL + + [Check that no-preference evaluates to false in the boolean context] + expected: FAIL + + [Should be parseable in a CSS stylesheet: '(prefers-color-scheme)'] + expected: FAIL + + [Should be parseable in JS: '(prefers-color-scheme: no-preference)'] + expected: FAIL + + [Should be parseable in a CSS stylesheet: '(prefers-color-scheme: dark)'] + expected: FAIL + + [Should be parseable in JS: '(prefers-color-scheme)'] + expected: FAIL + + [Should be parseable in a CSS stylesheet: '(prefers-color-scheme: no-preference)'] + expected: FAIL + + [Should be parseable in JS: '(prefers-color-scheme: light)'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/mediaqueries/prefers-reduced-motion.html.ini b/tests/wpt/metadata/css/mediaqueries/prefers-reduced-motion.html.ini new file mode 100644 index 00000000000..3761c50b9bc --- /dev/null +++ b/tests/wpt/metadata/css/mediaqueries/prefers-reduced-motion.html.ini @@ -0,0 +1,22 @@ +[prefers-reduced-motion.html] + [Should be parseable in JS: '(prefers-reduced-motion: reduce)'] + expected: FAIL + + [Check that no-preference evaluates to false in the boolean context] + expected: FAIL + + [Should be parseable in a CSS stylesheet: '(prefers-reduced-motion)'] + expected: FAIL + + [Should be parseable in a CSS stylesheet: '(prefers-reduced-motion: no-preference)'] + expected: FAIL + + [Should be parseable in JS: '(prefers-reduced-motion)'] + expected: FAIL + + [Should be parseable in a CSS stylesheet: '(prefers-reduced-motion: reduce)'] + expected: FAIL + + [Should be parseable in JS: '(prefers-reduced-motion: no-preference)'] + expected: FAIL + diff --git a/tests/wpt/metadata/dom/interfaces.html.ini b/tests/wpt/metadata/dom/interfaces.html.ini index 7d5a55318d5..b94d68781c3 100644 --- a/tests/wpt/metadata/dom/interfaces.html.ini +++ b/tests/wpt/metadata/dom/interfaces.html.ini @@ -868,323 +868,487 @@ [Event interface: attribute srcElement] expected: FAIL + [Event interface: operation composedPath()] expected: FAIL + [Event interface: attribute returnValue] expected: FAIL + [Event interface: attribute composed] expected: FAIL + [Event interface: operation initEvent(DOMString, boolean, boolean)] expected: FAIL + [Event interface: document.createEvent("Event") must inherit property "srcElement" with the proper type] expected: FAIL + [Event interface: document.createEvent("Event") must inherit property "composedPath()" with the proper type] expected: FAIL + [Event interface: document.createEvent("Event") must inherit property "returnValue" with the proper type] expected: FAIL + [Event interface: document.createEvent("Event") must inherit property "composed" with the proper type] expected: FAIL + [Event interface: new Event("foo") must inherit property "srcElement" with the proper type] expected: FAIL + [Event interface: new Event("foo") must inherit property "composedPath()" with the proper type] expected: FAIL + [Event interface: new Event("foo") must inherit property "returnValue" with the proper type] expected: FAIL + [Event interface: new Event("foo") must inherit property "composed" with the proper type] expected: FAIL + [CustomEvent interface: operation initCustomEvent(DOMString, boolean, boolean, any)] expected: FAIL + [Event interface: new CustomEvent("foo") must inherit property "srcElement" with the proper type] expected: FAIL + [Event interface: new CustomEvent("foo") must inherit property "composedPath()" with the proper type] expected: FAIL + [Event interface: new CustomEvent("foo") must inherit property "returnValue" with the proper type] expected: FAIL + [Event interface: new CustomEvent("foo") must inherit property "composed" with the proper type] expected: FAIL + [AbortController interface: existence and properties of interface object] expected: FAIL + [AbortController interface object length] expected: FAIL + [AbortController interface object name] expected: FAIL + [AbortController interface: existence and properties of interface prototype object] expected: FAIL + [AbortController interface: existence and properties of interface prototype object's "constructor" property] expected: FAIL + [AbortController interface: existence and properties of interface prototype object's @@unscopables property] expected: FAIL + [AbortController interface: attribute signal] expected: FAIL + [AbortController interface: operation abort()] expected: FAIL + [AbortController must be primary interface of new AbortController()] expected: FAIL + [Stringification of new AbortController()] expected: FAIL + [AbortController interface: new AbortController() must inherit property "signal" with the proper type] expected: FAIL + [AbortController interface: new AbortController() must inherit property "abort()" with the proper type] expected: FAIL + [AbortSignal interface: existence and properties of interface object] expected: FAIL + [AbortSignal interface object length] expected: FAIL + [AbortSignal interface object name] expected: FAIL + [AbortSignal interface: existence and properties of interface prototype object] expected: FAIL + [AbortSignal interface: existence and properties of interface prototype object's "constructor" property] expected: FAIL + [AbortSignal interface: existence and properties of interface prototype object's @@unscopables property] expected: FAIL + [AbortSignal interface: attribute aborted] expected: FAIL + [AbortSignal interface: attribute onabort] expected: FAIL + [AbortSignal must be primary interface of new AbortController().signal] expected: FAIL + [Stringification of new AbortController().signal] expected: FAIL + [AbortSignal interface: new AbortController().signal must inherit property "aborted" with the proper type] expected: FAIL + [AbortSignal interface: new AbortController().signal must inherit property "onabort" with the proper type] expected: FAIL - [EventTarget interface: new AbortController().signal must inherit property "addEventListener(DOMString, EventListener, \[object Object\],\[object Object\])" with the proper type] + + [EventTarget interface: new AbortController().signal must inherit property "addEventListener(DOMString, EventListener, [object Object\],[object Object\])" with the proper type] expected: FAIL - [EventTarget interface: calling addEventListener(DOMString, EventListener, \[object Object\],\[object Object\]) on new AbortController().signal with too few arguments must throw TypeError] + + [EventTarget interface: calling addEventListener(DOMString, EventListener, [object Object\],[object Object\]) on new AbortController().signal with too few arguments must throw TypeError] expected: FAIL - [EventTarget interface: new AbortController().signal must inherit property "removeEventListener(DOMString, EventListener, \[object Object\],\[object Object\])" with the proper type] + + [EventTarget interface: new AbortController().signal must inherit property "removeEventListener(DOMString, EventListener, [object Object\],[object Object\])" with the proper type] expected: FAIL - [EventTarget interface: calling removeEventListener(DOMString, EventListener, \[object Object\],\[object Object\]) on new AbortController().signal with too few arguments must throw TypeError] + + [EventTarget interface: calling removeEventListener(DOMString, EventListener, [object Object\],[object Object\]) on new AbortController().signal with too few arguments must throw TypeError] expected: FAIL + [EventTarget interface: new AbortController().signal must inherit property "dispatchEvent(Event)" with the proper type] expected: FAIL + [EventTarget interface: calling dispatchEvent(Event) on new AbortController().signal with too few arguments must throw TypeError] expected: FAIL + [Document interface: existence and properties of interface prototype object's @@unscopables property] expected: FAIL + [Document interface: attribute origin] expected: FAIL + [Document interface: operation createCDATASection(DOMString)] expected: FAIL - [Unscopable handled correctly for prepend(\[object Object\],\[object Object\]) on Document] + + [Unscopable handled correctly for prepend([object Object\],[object Object\]) on Document] expected: FAIL - [Unscopable handled correctly for append(\[object Object\],\[object Object\]) on Document] + + [Unscopable handled correctly for append([object Object\],[object Object\]) on Document] expected: FAIL + [Document interface: new Document() must inherit property "origin" with the proper type] expected: FAIL + [Document interface: new Document() must inherit property "createCDATASection(DOMString)" with the proper type] expected: FAIL + [Document interface: calling createCDATASection(DOMString) on new Document() with too few arguments must throw TypeError] expected: FAIL + [Document interface: xmlDoc must inherit property "origin" with the proper type] expected: FAIL + [Document interface: xmlDoc must inherit property "createCDATASection(DOMString)" with the proper type] expected: FAIL + [Document interface: calling createCDATASection(DOMString) on xmlDoc with too few arguments must throw TypeError] expected: FAIL + [DocumentType interface: existence and properties of interface prototype object's @@unscopables property] expected: FAIL - [Unscopable handled correctly for before(\[object Object\],\[object Object\]) on DocumentType] + + [Unscopable handled correctly for before([object Object\],[object Object\]) on DocumentType] expected: FAIL - [Unscopable handled correctly for after(\[object Object\],\[object Object\]) on DocumentType] + + [Unscopable handled correctly for after([object Object\],[object Object\]) on DocumentType] expected: FAIL - [Unscopable handled correctly for replaceWith(\[object Object\],\[object Object\]) on DocumentType] + + [Unscopable handled correctly for replaceWith([object Object\],[object Object\]) on DocumentType] expected: FAIL + [Unscopable handled correctly for remove() on DocumentType] expected: FAIL + [DocumentFragment interface: existence and properties of interface prototype object's @@unscopables property] expected: FAIL - [Unscopable handled correctly for prepend(\[object Object\],\[object Object\]) on DocumentFragment] + + [Unscopable handled correctly for prepend([object Object\],[object Object\]) on DocumentFragment] expected: FAIL - [Unscopable handled correctly for append(\[object Object\],\[object Object\]) on DocumentFragment] + + [Unscopable handled correctly for append([object Object\],[object Object\]) on DocumentFragment] expected: FAIL + [ShadowRoot interface: existence and properties of interface object] expected: FAIL + [ShadowRoot interface object length] expected: FAIL + [ShadowRoot interface object name] expected: FAIL + [ShadowRoot interface: existence and properties of interface prototype object] expected: FAIL + [ShadowRoot interface: existence and properties of interface prototype object's "constructor" property] expected: FAIL + [ShadowRoot interface: existence and properties of interface prototype object's @@unscopables property] expected: FAIL + [ShadowRoot interface: attribute mode] expected: FAIL + [ShadowRoot interface: attribute host] expected: FAIL + [Element interface: existence and properties of interface prototype object's @@unscopables property] expected: FAIL + [Element interface: attribute slot] expected: FAIL + [Unscopable handled correctly for slot property on Element] expected: FAIL + [Element interface: operation attachShadow(ShadowRootInit)] expected: FAIL + [Element interface: attribute shadowRoot] expected: FAIL - [Unscopable handled correctly for prepend(\[object Object\],\[object Object\]) on Element] + + [Unscopable handled correctly for prepend([object Object\],[object Object\]) on Element] expected: FAIL - [Unscopable handled correctly for append(\[object Object\],\[object Object\]) on Element] + + [Unscopable handled correctly for append([object Object\],[object Object\]) on Element] expected: FAIL - [Unscopable handled correctly for before(\[object Object\],\[object Object\]) on Element] + + [Unscopable handled correctly for before([object Object\],[object Object\]) on Element] expected: FAIL - [Unscopable handled correctly for after(\[object Object\],\[object Object\]) on Element] + + [Unscopable handled correctly for after([object Object\],[object Object\]) on Element] expected: FAIL - [Unscopable handled correctly for replaceWith(\[object Object\],\[object Object\]) on Element] + + [Unscopable handled correctly for replaceWith([object Object\],[object Object\]) on Element] expected: FAIL + [Unscopable handled correctly for remove() on Element] expected: FAIL + [Element interface: attribute assignedSlot] expected: FAIL + [Element interface: element must inherit property "slot" with the proper type] expected: FAIL + [Element interface: element must inherit property "attachShadow(ShadowRootInit)" with the proper type] expected: FAIL + [Element interface: calling attachShadow(ShadowRootInit) on element with too few arguments must throw TypeError] expected: FAIL + [Element interface: element must inherit property "shadowRoot" with the proper type] expected: FAIL + [Element interface: element must inherit property "assignedSlot" with the proper type] expected: FAIL + [Attr interface: existence and properties of interface object] expected: FAIL + [Attr interface: existence and properties of interface prototype object] expected: FAIL - [EventTarget interface: document.querySelector("\[id\]").attributes\[0\] must inherit property "addEventListener(DOMString, EventListener, \[object Object\],\[object Object\])" with the proper type] + + [EventTarget interface: document.querySelector("[id\]").attributes[0\] must inherit property "addEventListener(DOMString, EventListener, [object Object\],[object Object\])" with the proper type] expected: FAIL - [EventTarget interface: calling addEventListener(DOMString, EventListener, \[object Object\],\[object Object\]) on document.querySelector("\[id\]").attributes\[0\] with too few arguments must throw TypeError] + + [EventTarget interface: calling addEventListener(DOMString, EventListener, [object Object\],[object Object\]) on document.querySelector("[id\]").attributes[0\] with too few arguments must throw TypeError] expected: FAIL - [EventTarget interface: document.querySelector("\[id\]").attributes\[0\] must inherit property "removeEventListener(DOMString, EventListener, \[object Object\],\[object Object\])" with the proper type] + + [EventTarget interface: document.querySelector("[id\]").attributes[0\] must inherit property "removeEventListener(DOMString, EventListener, [object Object\],[object Object\])" with the proper type] expected: FAIL - [EventTarget interface: calling removeEventListener(DOMString, EventListener, \[object Object\],\[object Object\]) on document.querySelector("\[id\]").attributes\[0\] with too few arguments must throw TypeError] + + [EventTarget interface: calling removeEventListener(DOMString, EventListener, [object Object\],[object Object\]) on document.querySelector("[id\]").attributes[0\] with too few arguments must throw TypeError] expected: FAIL - [EventTarget interface: document.querySelector("\[id\]").attributes\[0\] must inherit property "dispatchEvent(Event)" with the proper type] + + [EventTarget interface: document.querySelector("[id\]").attributes[0\] must inherit property "dispatchEvent(Event)" with the proper type] expected: FAIL - [EventTarget interface: calling dispatchEvent(Event) on document.querySelector("\[id\]").attributes\[0\] with too few arguments must throw TypeError] + + [EventTarget interface: calling dispatchEvent(Event) on document.querySelector("[id\]").attributes[0\] with too few arguments must throw TypeError] expected: FAIL + [CharacterData interface: existence and properties of interface prototype object's @@unscopables property] expected: FAIL - [Unscopable handled correctly for before(\[object Object\],\[object Object\]) on CharacterData] + + [Unscopable handled correctly for before([object Object\],[object Object\]) on CharacterData] expected: FAIL - [Unscopable handled correctly for after(\[object Object\],\[object Object\]) on CharacterData] + + [Unscopable handled correctly for after([object Object\],[object Object\]) on CharacterData] expected: FAIL - [Unscopable handled correctly for replaceWith(\[object Object\],\[object Object\]) on CharacterData] + + [Unscopable handled correctly for replaceWith([object Object\],[object Object\]) on CharacterData] expected: FAIL + [Unscopable handled correctly for remove() on CharacterData] expected: FAIL + [Text interface: attribute assignedSlot] expected: FAIL + [Text interface: document.createTextNode("abc") must inherit property "assignedSlot" with the proper type] expected: FAIL + [CDATASection interface: existence and properties of interface object] expected: FAIL + [CDATASection interface object length] expected: FAIL + [CDATASection interface object name] expected: FAIL + [CDATASection interface: existence and properties of interface prototype object] expected: FAIL + [CDATASection interface: existence and properties of interface prototype object's "constructor" property] expected: FAIL + [CDATASection interface: existence and properties of interface prototype object's @@unscopables property] expected: FAIL + [AbstractRange interface: existence and properties of interface object] expected: FAIL + [AbstractRange interface object length] expected: FAIL + [AbstractRange interface object name] expected: FAIL + [AbstractRange interface: existence and properties of interface prototype object] expected: FAIL + [AbstractRange interface: existence and properties of interface prototype object's "constructor" property] expected: FAIL + [AbstractRange interface: existence and properties of interface prototype object's @@unscopables property] expected: FAIL + [AbstractRange interface: attribute startContainer] expected: FAIL + [AbstractRange interface: attribute startOffset] expected: FAIL + [AbstractRange interface: attribute endContainer] expected: FAIL + [AbstractRange interface: attribute endOffset] expected: FAIL + [AbstractRange interface: attribute collapsed] expected: FAIL + [StaticRange interface: existence and properties of interface object] expected: FAIL + [StaticRange interface object length] expected: FAIL + [StaticRange interface object name] expected: FAIL + [StaticRange interface: existence and properties of interface prototype object] expected: FAIL + [StaticRange interface: existence and properties of interface prototype object's "constructor" property] expected: FAIL + [StaticRange interface: existence and properties of interface prototype object's @@unscopables property] expected: FAIL + [Range interface: existence and properties of interface object] expected: FAIL + [Range interface: existence and properties of interface prototype object] expected: FAIL + [NodeFilter interface: existence and properties of interface object] expected: FAIL + [DOMTokenList interface: operation supports(DOMString)] expected: FAIL + [DOMTokenList interface: document.body.classList must inherit property "supports(DOMString)" with the proper type] expected: FAIL + [DOMTokenList interface: calling supports(DOMString) on document.body.classList with too few arguments must throw TypeError] expected: FAIL + [Window interface: attribute event] expected: FAIL + [Event interface: attribute cancelBubble] expected: FAIL + [Event interface: document.createEvent("Event") must inherit property "cancelBubble" with the proper type] expected: FAIL + [Event interface: new Event("foo") must inherit property "cancelBubble" with the proper type] expected: FAIL + [Event interface: new CustomEvent("foo") must inherit property "cancelBubble" with the proper type] expected: FAIL - [Document interface: operation prepend(\[object Object\],\[object Object\])] + + [Document interface: operation prepend([object Object\],[object Object\])] expected: FAIL - [Document interface: operation append(\[object Object\],\[object Object\])] + + [Document interface: operation append([object Object\],[object Object\])] expected: FAIL - [DocumentType interface: operation before(\[object Object\],\[object Object\])] + + [DocumentType interface: operation before([object Object\],[object Object\])] expected: FAIL - [DocumentType interface: operation after(\[object Object\],\[object Object\])] + + [DocumentType interface: operation after([object Object\],[object Object\])] expected: FAIL - [DocumentType interface: operation replaceWith(\[object Object\],\[object Object\])] + + [DocumentType interface: operation replaceWith([object Object\],[object Object\])] expected: FAIL + [DocumentType interface: operation remove()] expected: FAIL - [DocumentFragment interface: operation prepend(\[object Object\],\[object Object\])] + + [DocumentFragment interface: operation prepend([object Object\],[object Object\])] expected: FAIL - [DocumentFragment interface: operation append(\[object Object\],\[object Object\])] + + [DocumentFragment interface: operation append([object Object\],[object Object\])] expected: FAIL - [Element interface: operation prepend(\[object Object\],\[object Object\])] + + [Element interface: operation prepend([object Object\],[object Object\])] expected: FAIL - [Element interface: operation append(\[object Object\],\[object Object\])] + + [Element interface: operation append([object Object\],[object Object\])] expected: FAIL - [Element interface: operation before(\[object Object\],\[object Object\])] + + [Element interface: operation before([object Object\],[object Object\])] expected: FAIL - [Element interface: operation after(\[object Object\],\[object Object\])] + + [Element interface: operation after([object Object\],[object Object\])] expected: FAIL - [Element interface: operation replaceWith(\[object Object\],\[object Object\])] + + [Element interface: operation replaceWith([object Object\],[object Object\])] expected: FAIL + [Element interface: operation remove()] expected: FAIL - [CharacterData interface: operation before(\[object Object\],\[object Object\])] + + [CharacterData interface: operation before([object Object\],[object Object\])] expected: FAIL - [CharacterData interface: operation after(\[object Object\],\[object Object\])] + + [CharacterData interface: operation after([object Object\],[object Object\])] expected: FAIL - [CharacterData interface: operation replaceWith(\[object Object\],\[object Object\])] + + [CharacterData interface: operation replaceWith([object Object\],[object Object\])] expected: FAIL + [CharacterData interface: operation remove()] expected: FAIL + [DOMTokenList interface: iterable<DOMString>] + expected: FAIL + + [NodeList interface: iterable<Node>] + expected: FAIL + [interfaces.html?include=Node] [DOM IDL tests] @@ -1192,133 +1356,199 @@ [Node interface: attribute isConnected] expected: FAIL + [Node interface: new Document() must inherit property "isConnected" with the proper type] expected: FAIL + [Node interface: xmlDoc must inherit property "isConnected" with the proper type] expected: FAIL + [Node interface: document.doctype must inherit property "isConnected" with the proper type] expected: FAIL + [Node interface: document.createDocumentFragment() must inherit property "isConnected" with the proper type] expected: FAIL + [Node interface: element must inherit property "isConnected" with the proper type] expected: FAIL - [Node interface: document.querySelector("\[id\]").attributes\[0\] must inherit property "ELEMENT_NODE" with the proper type] + + [Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "ELEMENT_NODE" with the proper type] expected: FAIL - [Node interface: document.querySelector("\[id\]").attributes\[0\] must inherit property "ATTRIBUTE_NODE" with the proper type] + + [Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "ATTRIBUTE_NODE" with the proper type] expected: FAIL - [Node interface: document.querySelector("\[id\]").attributes\[0\] must inherit property "TEXT_NODE" with the proper type] + + [Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "TEXT_NODE" with the proper type] expected: FAIL - [Node interface: document.querySelector("\[id\]").attributes\[0\] must inherit property "CDATA_SECTION_NODE" with the proper type] + + [Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "CDATA_SECTION_NODE" with the proper type] expected: FAIL - [Node interface: document.querySelector("\[id\]").attributes\[0\] must inherit property "ENTITY_REFERENCE_NODE" with the proper type] + + [Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "ENTITY_REFERENCE_NODE" with the proper type] expected: FAIL - [Node interface: document.querySelector("\[id\]").attributes\[0\] must inherit property "ENTITY_NODE" with the proper type] + + [Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "ENTITY_NODE" with the proper type] expected: FAIL - [Node interface: document.querySelector("\[id\]").attributes\[0\] must inherit property "PROCESSING_INSTRUCTION_NODE" with the proper type] + + [Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "PROCESSING_INSTRUCTION_NODE" with the proper type] expected: FAIL - [Node interface: document.querySelector("\[id\]").attributes\[0\] must inherit property "COMMENT_NODE" with the proper type] + + [Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "COMMENT_NODE" with the proper type] expected: FAIL - [Node interface: document.querySelector("\[id\]").attributes\[0\] must inherit property "DOCUMENT_NODE" with the proper type] + + [Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "DOCUMENT_NODE" with the proper type] expected: FAIL - [Node interface: document.querySelector("\[id\]").attributes\[0\] must inherit property "DOCUMENT_TYPE_NODE" with the proper type] + + [Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "DOCUMENT_TYPE_NODE" with the proper type] expected: FAIL - [Node interface: document.querySelector("\[id\]").attributes\[0\] must inherit property "DOCUMENT_FRAGMENT_NODE" with the proper type] + + [Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "DOCUMENT_FRAGMENT_NODE" with the proper type] expected: FAIL - [Node interface: document.querySelector("\[id\]").attributes\[0\] must inherit property "NOTATION_NODE" with the proper type] + + [Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "NOTATION_NODE" with the proper type] expected: FAIL - [Node interface: document.querySelector("\[id\]").attributes\[0\] must inherit property "nodeType" with the proper type] + + [Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "nodeType" with the proper type] expected: FAIL - [Node interface: document.querySelector("\[id\]").attributes\[0\] must inherit property "baseURI" with the proper type] + + [Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "baseURI" with the proper type] expected: FAIL - [Node interface: document.querySelector("\[id\]").attributes\[0\] must inherit property "isConnected" with the proper type] + + [Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "isConnected" with the proper type] expected: FAIL - [Node interface: document.querySelector("\[id\]").attributes\[0\] must inherit property "ownerDocument" with the proper type] + + [Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "ownerDocument" with the proper type] expected: FAIL - [Node interface: document.querySelector("\[id\]").attributes\[0\] must inherit property "getRootNode(GetRootNodeOptions)" with the proper type] + + [Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "getRootNode(GetRootNodeOptions)" with the proper type] expected: FAIL - [Node interface: calling getRootNode(GetRootNodeOptions) on document.querySelector("\[id\]").attributes\[0\] with too few arguments must throw TypeError] + + [Node interface: calling getRootNode(GetRootNodeOptions) on document.querySelector("[id\]").attributes[0\] with too few arguments must throw TypeError] expected: FAIL - [Node interface: document.querySelector("\[id\]").attributes\[0\] must inherit property "parentNode" with the proper type] + + [Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "parentNode" with the proper type] expected: FAIL - [Node interface: document.querySelector("\[id\]").attributes\[0\] must inherit property "parentElement" with the proper type] + + [Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "parentElement" with the proper type] expected: FAIL - [Node interface: document.querySelector("\[id\]").attributes\[0\] must inherit property "hasChildNodes()" with the proper type] + + [Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "hasChildNodes()" with the proper type] expected: FAIL - [Node interface: document.querySelector("\[id\]").attributes\[0\] must inherit property "childNodes" with the proper type] + + [Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "childNodes" with the proper type] expected: FAIL - [Node interface: document.querySelector("\[id\]").attributes\[0\] must inherit property "firstChild" with the proper type] + + [Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "firstChild" with the proper type] expected: FAIL - [Node interface: document.querySelector("\[id\]").attributes\[0\] must inherit property "lastChild" with the proper type] + + [Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "lastChild" with the proper type] expected: FAIL - [Node interface: document.querySelector("\[id\]").attributes\[0\] must inherit property "previousSibling" with the proper type] + + [Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "previousSibling" with the proper type] expected: FAIL - [Node interface: document.querySelector("\[id\]").attributes\[0\] must inherit property "nextSibling" with the proper type] + + [Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "nextSibling" with the proper type] expected: FAIL - [Node interface: document.querySelector("\[id\]").attributes\[0\] must inherit property "normalize()" with the proper type] + + [Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "normalize()" with the proper type] expected: FAIL - [Node interface: document.querySelector("\[id\]").attributes\[0\] must inherit property "cloneNode(boolean)" with the proper type] + + [Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "cloneNode(boolean)" with the proper type] expected: FAIL - [Node interface: calling cloneNode(boolean) on document.querySelector("\[id\]").attributes\[0\] with too few arguments must throw TypeError] + + [Node interface: calling cloneNode(boolean) on document.querySelector("[id\]").attributes[0\] with too few arguments must throw TypeError] expected: FAIL - [Node interface: document.querySelector("\[id\]").attributes\[0\] must inherit property "isEqualNode(Node)" with the proper type] + + [Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "isEqualNode(Node)" with the proper type] expected: FAIL - [Node interface: calling isEqualNode(Node) on document.querySelector("\[id\]").attributes\[0\] with too few arguments must throw TypeError] + + [Node interface: calling isEqualNode(Node) on document.querySelector("[id\]").attributes[0\] with too few arguments must throw TypeError] expected: FAIL - [Node interface: document.querySelector("\[id\]").attributes\[0\] must inherit property "isSameNode(Node)" with the proper type] + + [Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "isSameNode(Node)" with the proper type] expected: FAIL - [Node interface: calling isSameNode(Node) on document.querySelector("\[id\]").attributes\[0\] with too few arguments must throw TypeError] + + [Node interface: calling isSameNode(Node) on document.querySelector("[id\]").attributes[0\] with too few arguments must throw TypeError] expected: FAIL - [Node interface: document.querySelector("\[id\]").attributes\[0\] must inherit property "DOCUMENT_POSITION_DISCONNECTED" with the proper type] + + [Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "DOCUMENT_POSITION_DISCONNECTED" with the proper type] expected: FAIL - [Node interface: document.querySelector("\[id\]").attributes\[0\] must inherit property "DOCUMENT_POSITION_PRECEDING" with the proper type] + + [Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "DOCUMENT_POSITION_PRECEDING" with the proper type] expected: FAIL - [Node interface: document.querySelector("\[id\]").attributes\[0\] must inherit property "DOCUMENT_POSITION_FOLLOWING" with the proper type] + + [Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "DOCUMENT_POSITION_FOLLOWING" with the proper type] expected: FAIL - [Node interface: document.querySelector("\[id\]").attributes\[0\] must inherit property "DOCUMENT_POSITION_CONTAINS" with the proper type] + + [Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "DOCUMENT_POSITION_CONTAINS" with the proper type] expected: FAIL - [Node interface: document.querySelector("\[id\]").attributes\[0\] must inherit property "DOCUMENT_POSITION_CONTAINED_BY" with the proper type] + + [Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "DOCUMENT_POSITION_CONTAINED_BY" with the proper type] expected: FAIL - [Node interface: document.querySelector("\[id\]").attributes\[0\] must inherit property "DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC" with the proper type] + + [Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC" with the proper type] expected: FAIL - [Node interface: document.querySelector("\[id\]").attributes\[0\] must inherit property "compareDocumentPosition(Node)" with the proper type] + + [Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "compareDocumentPosition(Node)" with the proper type] expected: FAIL - [Node interface: calling compareDocumentPosition(Node) on document.querySelector("\[id\]").attributes\[0\] with too few arguments must throw TypeError] + + [Node interface: calling compareDocumentPosition(Node) on document.querySelector("[id\]").attributes[0\] with too few arguments must throw TypeError] expected: FAIL - [Node interface: document.querySelector("\[id\]").attributes\[0\] must inherit property "contains(Node)" with the proper type] + + [Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "contains(Node)" with the proper type] expected: FAIL - [Node interface: calling contains(Node) on document.querySelector("\[id\]").attributes\[0\] with too few arguments must throw TypeError] + + [Node interface: calling contains(Node) on document.querySelector("[id\]").attributes[0\] with too few arguments must throw TypeError] expected: FAIL - [Node interface: document.querySelector("\[id\]").attributes\[0\] must inherit property "lookupPrefix(DOMString)" with the proper type] + + [Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "lookupPrefix(DOMString)" with the proper type] expected: FAIL - [Node interface: calling lookupPrefix(DOMString) on document.querySelector("\[id\]").attributes\[0\] with too few arguments must throw TypeError] + + [Node interface: calling lookupPrefix(DOMString) on document.querySelector("[id\]").attributes[0\] with too few arguments must throw TypeError] expected: FAIL - [Node interface: document.querySelector("\[id\]").attributes\[0\] must inherit property "lookupNamespaceURI(DOMString)" with the proper type] + + [Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "lookupNamespaceURI(DOMString)" with the proper type] expected: FAIL - [Node interface: calling lookupNamespaceURI(DOMString) on document.querySelector("\[id\]").attributes\[0\] with too few arguments must throw TypeError] + + [Node interface: calling lookupNamespaceURI(DOMString) on document.querySelector("[id\]").attributes[0\] with too few arguments must throw TypeError] expected: FAIL - [Node interface: document.querySelector("\[id\]").attributes\[0\] must inherit property "isDefaultNamespace(DOMString)" with the proper type] + + [Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "isDefaultNamespace(DOMString)" with the proper type] expected: FAIL - [Node interface: calling isDefaultNamespace(DOMString) on document.querySelector("\[id\]").attributes\[0\] with too few arguments must throw TypeError] + + [Node interface: calling isDefaultNamespace(DOMString) on document.querySelector("[id\]").attributes[0\] with too few arguments must throw TypeError] expected: FAIL - [Node interface: document.querySelector("\[id\]").attributes\[0\] must inherit property "insertBefore(Node, Node)" with the proper type] + + [Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "insertBefore(Node, Node)" with the proper type] expected: FAIL - [Node interface: calling insertBefore(Node, Node) on document.querySelector("\[id\]").attributes\[0\] with too few arguments must throw TypeError] + + [Node interface: calling insertBefore(Node, Node) on document.querySelector("[id\]").attributes[0\] with too few arguments must throw TypeError] expected: FAIL - [Node interface: document.querySelector("\[id\]").attributes\[0\] must inherit property "appendChild(Node)" with the proper type] + + [Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "appendChild(Node)" with the proper type] expected: FAIL - [Node interface: calling appendChild(Node) on document.querySelector("\[id\]").attributes\[0\] with too few arguments must throw TypeError] + + [Node interface: calling appendChild(Node) on document.querySelector("[id\]").attributes[0\] with too few arguments must throw TypeError] expected: FAIL - [Node interface: document.querySelector("\[id\]").attributes\[0\] must inherit property "replaceChild(Node, Node)" with the proper type] + + [Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "replaceChild(Node, Node)" with the proper type] expected: FAIL - [Node interface: calling replaceChild(Node, Node) on document.querySelector("\[id\]").attributes\[0\] with too few arguments must throw TypeError] + + [Node interface: calling replaceChild(Node, Node) on document.querySelector("[id\]").attributes[0\] with too few arguments must throw TypeError] expected: FAIL - [Node interface: document.querySelector("\[id\]").attributes\[0\] must inherit property "removeChild(Node)" with the proper type] + + [Node interface: document.querySelector("[id\]").attributes[0\] must inherit property "removeChild(Node)" with the proper type] expected: FAIL - [Node interface: calling removeChild(Node) on document.querySelector("\[id\]").attributes\[0\] with too few arguments must throw TypeError] + + [Node interface: calling removeChild(Node) on document.querySelector("[id\]").attributes[0\] with too few arguments must throw TypeError] expected: FAIL + [Node interface: document.createTextNode("abc") must inherit property "isConnected" with the proper type] expected: FAIL + [Node interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "isConnected" with the proper type] expected: FAIL + [Node interface: document.createComment("abc") must inherit property "isConnected" with the proper type] expected: FAIL + diff --git a/tests/wpt/metadata/encoding/single-byte-decoder.html.ini b/tests/wpt/metadata/encoding/single-byte-decoder.html.ini index 8e4b3a6eb4a..27f22f91b7d 100644 --- a/tests/wpt/metadata/encoding/single-byte-decoder.html.ini +++ b/tests/wpt/metadata/encoding/single-byte-decoder.html.ini @@ -2,7 +2,7 @@ type: testharness [single-byte-decoder.html?document] - expected: TIMEOUT + expected: CRASH [ISO-8859-4: iso_8859-4:1988 (document.characterSet and document.inputEncoding)] expected: FAIL @@ -32,7 +32,7 @@ [single-byte-decoder.html?XMLHttpRequest] - expected: TIMEOUT + expected: CRASH [ISO-8859-2: iso_8859-2:1987 (XMLHttpRequest)] expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/idl.any.js.ini b/tests/wpt/metadata/fetch/api/idl.any.js.ini index 73f5bb7ec46..c3672054666 100644 --- a/tests/wpt/metadata/fetch/api/idl.any.js.ini +++ b/tests/wpt/metadata/fetch/api/idl.any.js.ini @@ -4,61 +4,91 @@ [idl] expected: FAIL + [Testing Symbol.iterator property of iterable interface Headers] expected: FAIL + [Request interface: attribute keepalive] expected: FAIL + [Request interface: attribute isReloadNavigation] expected: FAIL + [Request interface: attribute isHistoryNavigation] expected: FAIL + [Request interface: attribute signal] expected: FAIL + [Request interface: attribute body] expected: FAIL + [Request interface: operation arrayBuffer()] expected: FAIL + [Request interface: operation blob()] expected: FAIL + [Request interface: operation formData()] expected: FAIL + [Request interface: operation json()] expected: FAIL + [Request interface: operation text()] expected: FAIL + [Request interface: new Request('about:blank') must inherit property "keepalive" with the proper type] expected: FAIL + [Request interface: new Request('about:blank') must inherit property "isReloadNavigation" with the proper type] expected: FAIL + [Request interface: new Request('about:blank') must inherit property "isHistoryNavigation" with the proper type] expected: FAIL + [Request interface: new Request('about:blank') must inherit property "signal" with the proper type] expected: FAIL + [Request interface: new Request('about:blank') must inherit property "body" with the proper type] expected: FAIL + [Response interface: attribute trailer] expected: FAIL + [Response interface: attribute body] expected: FAIL + [Response interface: operation arrayBuffer()] expected: FAIL + [Response interface: operation blob()] expected: FAIL + [Response interface: operation formData()] expected: FAIL + [Response interface: operation json()] expected: FAIL + [Response interface: operation text()] expected: FAIL + [Response interface: new Response() must inherit property "trailer" with the proper type] expected: FAIL + [Response interface: new Response() must inherit property "body" with the proper type] expected: FAIL + [WorkerGlobalScope interface: calling fetch(RequestInfo, RequestInit) on self with too few arguments must throw TypeError] expected: FAIL + [WorkerGlobalScope interface: operation fetch(RequestInfo, RequestInit)] expected: FAIL + [Headers interface: iterable<ByteString, ByteString>] + expected: FAIL + [idl.any.html] [Untitled] @@ -66,61 +96,91 @@ [idl] expected: FAIL + [Testing Symbol.iterator property of iterable interface Headers] expected: FAIL + [Request interface: attribute keepalive] expected: FAIL + [Request interface: attribute isReloadNavigation] expected: FAIL + [Request interface: attribute isHistoryNavigation] expected: FAIL + [Request interface: attribute signal] expected: FAIL + [Request interface: attribute body] expected: FAIL + [Request interface: operation arrayBuffer()] expected: FAIL + [Request interface: operation blob()] expected: FAIL + [Request interface: operation formData()] expected: FAIL + [Request interface: operation json()] expected: FAIL + [Request interface: operation text()] expected: FAIL + [Request interface: new Request('about:blank') must inherit property "keepalive" with the proper type] expected: FAIL + [Request interface: new Request('about:blank') must inherit property "isReloadNavigation" with the proper type] expected: FAIL + [Request interface: new Request('about:blank') must inherit property "isHistoryNavigation" with the proper type] expected: FAIL + [Request interface: new Request('about:blank') must inherit property "signal" with the proper type] expected: FAIL + [Request interface: new Request('about:blank') must inherit property "body" with the proper type] expected: FAIL + [Response interface: attribute trailer] expected: FAIL + [Response interface: attribute body] expected: FAIL + [Response interface: operation arrayBuffer()] expected: FAIL + [Response interface: operation blob()] expected: FAIL + [Response interface: operation formData()] expected: FAIL + [Response interface: operation json()] expected: FAIL + [Response interface: operation text()] expected: FAIL + [Response interface: new Response() must inherit property "trailer" with the proper type] expected: FAIL + [Response interface: new Response() must inherit property "body" with the proper type] expected: FAIL + [Window interface: calling fetch(RequestInfo, RequestInit) on window with too few arguments must throw TypeError] expected: FAIL + [Window interface: operation fetch(RequestInfo, RequestInit)] expected: FAIL + [Headers interface: iterable<ByteString, ByteString>] + expected: FAIL + [idl.any.sharedworker.html] [Untitled] diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini deleted file mode 100644 index 87b07c3e670..00000000000 --- a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[traverse_the_history_1.html] - [Multiple history traversals from the same task] - expected: FAIL - diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_4.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini index 385376c7321..dc2e45516de 100644 --- a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_4.html.ini +++ b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini @@ -1,4 +1,4 @@ -[traverse_the_history_4.html] +[traverse_the_history_5.html] [Multiple history traversals, last would be aborted] expected: FAIL diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/environment-changes/viewport-change.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/environment-changes/viewport-change.html.ini index 772148dc71f..3352221fdd7 100644 --- a/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/environment-changes/viewport-change.html.ini +++ b/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/environment-changes/viewport-change.html.ini @@ -1,15 +1,26 @@ [viewport-change.html] type: testharness - expected: TIMEOUT [picture: source (max-width:500px) broken image, img valid image, resize to wide] - expected: TIMEOUT + expected: FAIL [picture: source (max-width:500px) valid image, img valid image, resize to wide] expected: FAIL [picture: source (max-width:500px) valid image, img broken image, resize to narrow] - expected: TIMEOUT + expected: FAIL [picture: source (max-width:500px) valid image, img valid image, resize to narrow] expected: FAIL + [img (srcset 1 cand) valid image, resize to wide] + expected: FAIL + + [picture: same URL in source (max-width:500px) and img, resize to wide] + expected: FAIL + + [img (srcset 1 cand) valid image, resize to narrow] + expected: FAIL + + [picture: same URL in source (max-width:500px) and img, resize to narrow] + expected: FAIL + diff --git a/tests/wpt/metadata/performance-timeline/idlharness.any.js.ini b/tests/wpt/metadata/performance-timeline/idlharness.any.js.ini index 42b4bda7284..590af74cd85 100644 --- a/tests/wpt/metadata/performance-timeline/idlharness.any.js.ini +++ b/tests/wpt/metadata/performance-timeline/idlharness.any.js.ini @@ -31,6 +31,9 @@ [PerformanceMark interface: mark must inherit property "detail" with the proper type] expected: FAIL + [PerformanceMark interface object length] + expected: FAIL + [idlharness.any.html] [Untitled] @@ -60,6 +63,9 @@ [PerformanceMark interface: mark must inherit property "detail" with the proper type] expected: FAIL + [PerformanceMark interface object length] + expected: FAIL + [idlharness.https.any.serviceworker.html] type: testharness diff --git a/tests/wpt/metadata/performance-timeline/webtiming-resolution.any.js.ini b/tests/wpt/metadata/performance-timeline/webtiming-resolution.any.js.ini index 99a24216c88..7725b118e9d 100644 --- a/tests/wpt/metadata/performance-timeline/webtiming-resolution.any.js.ini +++ b/tests/wpt/metadata/performance-timeline/webtiming-resolution.any.js.ini @@ -12,3 +12,6 @@ [Verifies the resolution of entry.startTime is at least 5 microseconds.] expected: TIMEOUT + [Verifies the resolution of performance.now() is at least 5 microseconds.] + expected: FAIL + diff --git a/tests/wpt/metadata/url/idlharness.any.js.ini b/tests/wpt/metadata/url/idlharness.any.js.ini index bcc77ddf03d..70a60c1c261 100644 --- a/tests/wpt/metadata/url/idlharness.any.js.ini +++ b/tests/wpt/metadata/url/idlharness.any.js.ini @@ -8,6 +8,9 @@ [URL interface: legacy window alias] expected: FAIL + [URLSearchParams interface: iterable<USVString, USVString>] + expected: FAIL + [idlharness.any.worker.html] [idlharness] @@ -15,3 +18,7 @@ [Testing Symbol.iterator property of iterable interface URLSearchParams] expected: FAIL + + [URLSearchParams interface: iterable<USVString, USVString>] + expected: FAIL + diff --git a/tests/wpt/metadata/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html.ini b/tests/wpt/metadata/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html.ini index a56bad443a2..66bd350083b 100644 --- a/tests/wpt/metadata/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html.ini +++ b/tests/wpt/metadata/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html.ini @@ -1,5 +1,4 @@ [realtimeanalyser-fft-scaling.html] - expected: TIMEOUT [X 2048-point FFT peak position is not equal to 64. Got 0.] expected: FAIL diff --git a/tests/wpt/metadata/workers/semantics/multiple-workers/005.html.ini b/tests/wpt/metadata/workers/semantics/multiple-workers/005.html.ini index 268949ced5c..f584fce5df1 100644 --- a/tests/wpt/metadata/workers/semantics/multiple-workers/005.html.ini +++ b/tests/wpt/metadata/workers/semantics/multiple-workers/005.html.ini @@ -1,4 +1,5 @@ [005.html] + expected: ERROR [dedicated worker in shared worker in dedicated worker] expected: FAIL diff --git a/tests/wpt/metadata/xhr/idlharness.any.js.ini b/tests/wpt/metadata/xhr/idlharness.any.js.ini index b311a445b84..9ca6034a25c 100644 --- a/tests/wpt/metadata/xhr/idlharness.any.js.ini +++ b/tests/wpt/metadata/xhr/idlharness.any.js.ini @@ -5,6 +5,9 @@ [Testing Symbol.iterator property of iterable interface FormData] expected: FAIL + [FormData interface: iterable<USVString, FormDataEntryValue>] + expected: FAIL + [idlharness.any.sharedworker.html] [idlharness] @@ -24,3 +27,6 @@ [Testing Symbol.iterator property of iterable interface FormData] expected: FAIL + [FormData interface: iterable<USVString, FormDataEntryValue>] + expected: FAIL + diff --git a/tests/wpt/web-platform-tests/clipboard-apis/async-navigator-clipboard-basics.https.html b/tests/wpt/web-platform-tests/clipboard-apis/async-navigator-clipboard-basics.https.html index 11ed88c3fa2..ea0ca2902c5 100644 --- a/tests/wpt/web-platform-tests/clipboard-apis/async-navigator-clipboard-basics.https.html +++ b/tests/wpt/web-platform-tests/clipboard-apis/async-navigator-clipboard-basics.https.html @@ -1,6 +1,6 @@ <!DOCTYPE html> <meta charset="utf-8"> -<title>Async Clipboard basic tests</title> +<title>Async Clipboard input type validation tests</title> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script> @@ -46,6 +46,21 @@ promise_test(async t => { navigator.clipboard.writeText()); }, "navigator.clipboard.writeText() fails (expect DOMString)"); +/* clipboard.writeImageExperimental() */ + +promise_test(async () => { + const fetched = await fetch( + 'http://localhost:8001/clipboard-apis/resources/greenbox.png'); + const image = await fetched.blob(); + + await navigator.clipboard.writeImageExperimental(image); +}, "navigator.clipboard.writeImageExperimental(Blob) succeeds"); + +promise_test(async t => { + await promise_rejects(t, new TypeError(), + navigator.clipboard.writeImageExperimental()); +}, "navigator.clipboard.writeImageExperimental() fails (expect Blob)"); + /* clipboard.read() */ @@ -62,4 +77,11 @@ promise_test(async () => { assert_equals(typeof result, "string"); }, "navigator.clipboard.readText() succeeds"); +/* clipboard.readImageExperimental() */ + +promise_test(async () => { + const result = await navigator.clipboard.readImageExperimental(); + assert_equals(typeof result, "object"); +}, "navigator.clipboard.readImageExperimental() succeeds"); + </script> diff --git a/tests/wpt/web-platform-tests/clipboard-apis/async-write-image-read-image-manual.https.html b/tests/wpt/web-platform-tests/clipboard-apis/async-write-image-read-image-manual.https.html new file mode 100644 index 00000000000..ac7fb0863e7 --- /dev/null +++ b/tests/wpt/web-platform-tests/clipboard-apis/async-write-image-read-image-manual.https.html @@ -0,0 +1,57 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title> + Async Clipboard writeImageExperimental -> readImageExperimental tests +</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> + +<div>Original Image:</div> +<image id='image-to-copy' src="resources/greenbox.png"></image> +<div>Image after copy/paste:</div> +<image id='image-on-clipboard'></image> + +<canvas id="canvas" width="30" height="30"></canvas> + +<script> +// Must compare a bitmap as opposed to simply blob data, because an encoded +// image may have different contents depending on encoder. +const getBitmapString = async blob => { + const imageBitmap = await createImageBitmap(blob); + const canvas = document.getElementById('canvas'); + const ctx = canvas.getContext('2d'); + + ctx.drawImage(imageBitmap, 0,0); + + let imageData = ctx.getImageData(0, 0, canvas.width, canvas.height); + ctx.clearRect(0, 0, canvas.width, canvas.height); + return imageData.data.toString(); +}; + +const loadBlob = async fileName => { + const fetched = await fetch(fileName); + return await fetched.blob(); +} + +promise_test(async t => { + const input = await loadBlob( + 'http://localhost:8001/clipboard-apis/resources/greenbox.png'); + + await navigator.clipboard.writeImageExperimental(input); + const output = await navigator.clipboard.readImageExperimental(); + + document.getElementById('image-on-clipboard').src = + window.URL.createObjectURL(output); + + const comparableInput = await getBitmapString(input); + const comparableOutput = await getBitmapString(output); + + assert_equals(comparableOutput, comparableInput); +}, "Verify write and read clipboard (DOMString)"); +</script> +<br/><br/> +Note: This is a manual test because it writes/reads to the shared system +clipboard and thus cannot be run async with other tests that might interact +with the clipboard. +<br/><br/> +The bottom image should display the same image as the top image. diff --git a/tests/wpt/web-platform-tests/clipboard-apis/resources/greenbox.png b/tests/wpt/web-platform-tests/clipboard-apis/resources/greenbox.png Binary files differnew file mode 100644 index 00000000000..6e555e3b197 --- /dev/null +++ b/tests/wpt/web-platform-tests/clipboard-apis/resources/greenbox.png diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/flex-basis-009.html b/tests/wpt/web-platform-tests/css/css-flexbox/flex-basis-009.html new file mode 100644 index 00000000000..3e2026958fd --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-flexbox/flex-basis-009.html @@ -0,0 +1,42 @@ +<!DOCTYPE html> +<script src='/resources/testharness.js'></script> +<script src='/resources/testharnessreport.js'></script> +<script src='/resources/check-layout-th.js'></script> +<link rel="author" title="David Grogan" href="dgrogan@chromium.org"> +<link rel="help" href="https://www.w3.org/TR/css-flexbox-1/#valdef-flex-basis-auto"> +<meta name="flags" content="" /> +<meta name="assert" content="flex-basis:auto on orthogonal item in horizontal column flexbox is calculated correctly" /> + +<style> +x-word-h { + display: inline-block; + height: 10px; + width: 20px; + background: blue; +} + +x-word-v { + display: inline-block; + height: 20px; + width: 10px; + background: blue; +} + +* { + /* This is for easier manual calculations, not necessary to demonstrate behavior. */ + line-height: 0; +} +</style> + +<div id=flexbox style="width:150px; background:green; height:400px; display:flex; flex-direction:column"> + <div style="writing-mode: vertical-rl;background:orange; flex:1 1 auto" data-expected-height=225> + <x-word-v></x-word-v><x-word-v></x-word-v><x-word-v></x-word-v> + </div> + <div style="background:lightblue; flex: 1 1 auto"> + <x-word-h></x-word-h><x-word-h></x-word-h><x-word-h></x-word-h> + </div> +</div> + +<script> +checkLayout('#flexbox'); +</script> diff --git a/tests/wpt/web-platform-tests/css/mediaqueries/prefers-color-scheme.html b/tests/wpt/web-platform-tests/css/mediaqueries/prefers-color-scheme.html index 705a7ca47f8..c6ca45ab172 100644 --- a/tests/wpt/web-platform-tests/css/mediaqueries/prefers-color-scheme.html +++ b/tests/wpt/web-platform-tests/css/mediaqueries/prefers-color-scheme.html @@ -2,48 +2,36 @@ <link rel="help" href="https://drafts.csswg.org/mediaqueries-5/#prefers-color-scheme" /> <script type="text/javascript" src="/resources/testharness.js"></script> <script type="text/javascript" src="/resources/testharnessreport.js"></script> -<style id="testStyle"> </style> -<script> - var sheet = testStyle.sheet; - - function query_is_parseable(query) { - try { - sheet.insertRule("@media " + query + "{}", 0); - return sheet.cssRules.length == 1 && - sheet.cssRules[0].media.mediaText != "not all"; - } finally { - while (sheet.cssRules.length) - sheet.deleteRule(0); - } - } - function query_should_be_parseable(query) { - test(() => { - assert_true(query_is_parseable(query)); - }, "Should be parseable: '" + query + "'"); - } +<script type="text/javascript" src="resources/matchmedia-utils.js"></script> +<script> +query_should_be_css_parseable("(prefers-color-scheme)"); +query_should_be_css_parseable("(prefers-color-scheme: no-preference)"); +query_should_be_css_parseable("(prefers-color-scheme: light)"); +query_should_be_css_parseable("(prefers-color-scheme: dark)"); - function query_should_not_be_parseable(query) { - test(() => { - assert_false(query_is_parseable(query)); - }, "Should not be parseable: '" + query + "'"); - } +query_should_not_be_css_parseable("(prefers-color-scheme: 0)"); +query_should_not_be_css_parseable("(prefers-color-scheme: none)"); +query_should_not_be_css_parseable("(prefers-color-scheme: 10px)"); +query_should_not_be_css_parseable("(prefers-color-scheme: dark 0)"); +query_should_not_be_css_parseable("(prefers-color-scheme: dark light)"); +query_should_not_be_css_parseable("(prefers-color-scheme: light/dark)"); - query_should_be_parseable("(prefers-color-scheme)"); - query_should_be_parseable("(prefers-color-scheme: no-preference)"); - query_should_be_parseable("(prefers-color-scheme: light)"); - query_should_be_parseable("(prefers-color-scheme: dark)"); +query_should_be_js_parseable("(prefers-color-scheme)"); +query_should_be_js_parseable("(prefers-color-scheme: no-preference)"); +query_should_be_js_parseable("(prefers-color-scheme: light)"); +query_should_be_js_parseable("(prefers-color-scheme: dark)"); - query_should_not_be_parseable("(prefers-color-scheme: 0)"); - query_should_not_be_parseable("(prefers-color-scheme: none)"); - query_should_not_be_parseable("(prefers-color-scheme: 10px)"); - query_should_not_be_parseable("(prefers-color-scheme: dark 0)"); - query_should_not_be_parseable("(prefers-color-scheme: dark light)"); - query_should_not_be_parseable("(prefers-color-scheme: light/dark)"); +query_should_not_be_js_parseable("(prefers-color-scheme: 0)"); +query_should_not_be_js_parseable("(prefers-color-scheme: none)"); +query_should_not_be_js_parseable("(prefers-color-scheme: 10px)"); +query_should_not_be_js_parseable("(prefers-color-scheme: dark 0)"); +query_should_not_be_js_parseable("(prefers-color-scheme: dark light)"); +query_should_not_be_js_parseable("(prefers-color-scheme: light/dark)"); - test(() => { - let booleanContext = window.matchMedia("(prefers-color-scheme)"); - let noPreference = window.matchMedia("(prefers-color-scheme: no-preference)"); - assert_equals(booleanContext.matches, !noPreference.matches); - }, "Check that no-preference evaluates to false in the boolean context"); +test(() => { + let booleanContext = window.matchMedia("(prefers-color-scheme)"); + let noPreference = window.matchMedia("(prefers-color-scheme: no-preference)"); + assert_equals(booleanContext.matches, !noPreference.matches); +}, "Check that no-preference evaluates to false in the boolean context"); </script> diff --git a/tests/wpt/web-platform-tests/css/mediaqueries/prefers-reduced-motion.html b/tests/wpt/web-platform-tests/css/mediaqueries/prefers-reduced-motion.html new file mode 100644 index 00000000000..2d9f8847459 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/mediaqueries/prefers-reduced-motion.html @@ -0,0 +1,38 @@ +<!DOCTYPE html> +<link rel="help" href="https://drafts.csswg.org/mediaqueries-5/#prefers-reduced-motion" /> +<script type="text/javascript" src="/resources/testharness.js"></script> +<script type="text/javascript" src="/resources/testharnessreport.js"></script> + +<script type="text/javascript" src="resources/matchmedia-utils.js"></script> +<script> +query_should_be_css_parseable("(prefers-reduced-motion)"); +query_should_be_css_parseable("(prefers-reduced-motion: no-preference)"); +query_should_be_css_parseable("(prefers-reduced-motion: reduce)"); + +query_should_not_be_css_parseable("(prefers-reduced-motion: 0)"); +query_should_not_be_css_parseable("(prefers-reduced-motion: none)"); +query_should_not_be_css_parseable("(prefers-reduced-motion: 10px)"); +query_should_not_be_css_parseable("(prefers-reduced-motion: no-preference reduce)"); +query_should_not_be_css_parseable("(prefers-reduced-motion: reduced)"); +query_should_not_be_css_parseable("(prefers-reduced-motion: no-preference/reduce)"); + +query_should_be_js_parseable("(prefers-reduced-motion)"); +query_should_be_js_parseable("(prefers-reduced-motion: no-preference)"); +query_should_be_js_parseable("(prefers-reduced-motion: reduce)"); + +query_should_not_be_js_parseable("(prefers-reduced-motion: 0)"); +query_should_not_be_js_parseable("(prefers-reduced-motion: none)"); +query_should_not_be_js_parseable("(prefers-reduced-motion: 10px)"); +query_should_not_be_js_parseable("(prefers-reduced-motion: no-preference reduce)"); +query_should_not_be_js_parseable("(prefers-reduced-motion: reduced)"); +query_should_not_be_js_parseable("(prefers-reduced-motion: no-preference/reduce)"); + +test(() => { + // What this is saying is that 'no-preference' is not the default, so + // irregardless of the current OS settings, (prefers-reduced-motion).matches + // should not be equivalent to (prefers-reduced-motion: no-preference).matches. + let booleanContext = window.matchMedia("(prefers-reduced-motion)"); + let noPreference = window.matchMedia("(prefers-reduced-motion: no-preference)"); + assert_equals(booleanContext.matches, !noPreference.matches); +}, "Check that no-preference evaluates to false in the boolean context"); +</script> diff --git a/tests/wpt/web-platform-tests/css/mediaqueries/resources/matchmedia-utils.js b/tests/wpt/web-platform-tests/css/mediaqueries/resources/matchmedia-utils.js new file mode 100644 index 00000000000..544f68c0400 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/mediaqueries/resources/matchmedia-utils.js @@ -0,0 +1,49 @@ +'use strict'; + +function query_is_css_parseable(query) { + const style = document.createElement('style'); + style.type = 'text/css'; + document.head.appendChild(style); + + const sheet = style.sheet; + try { + sheet.insertRule("@media " + query + "{}", 0); + return sheet.cssRules.length == 1 && + sheet.cssRules[0].media.mediaText != "not all"; + } finally { + while (sheet.cssRules.length) + sheet.deleteRule(0); + style.remove(); + } +} + +function query_should_be_css_parseable(query) { + test(() => { + assert_true(query_is_css_parseable(query)); + }, "Should be parseable in a CSS stylesheet: '" + query + "'"); +} + +function query_should_not_be_css_parseable(query) { + test(() => { + assert_false(query_is_css_parseable(query)); + }, "Should not be parseable in a CSS stylesheet: '" + query + "'"); +} + +function query_is_js_parseable(query) { + // We cannot rely on whether a given feature is on or off, so only check the + // 'media' member of the result. + const match = window.matchMedia(query); + return match.media == query; +} + +function query_should_be_js_parseable(query) { + test(() => { + assert_true(query_is_js_parseable(query)); + }, "Should be parseable in JS: '" + query + "'"); +} + +function query_should_not_be_js_parseable(query) { + test(() => { + assert_false(query_is_js_parseable(query)); + }, "Should not be parseable in JS: '" + query + "'"); +} diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-img-element/Image-constructor.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-img-element/Image-constructor.html index aa838ec8774..38b6765bb49 100644 --- a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-img-element/Image-constructor.html +++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-img-element/Image-constructor.html @@ -32,6 +32,11 @@ assert_equals(Image.prototype, HTMLImageElement.prototype, "Image.prototype is same as HTMLImageElement.prototype"); assert_equals(new Image().__proto__, HTMLImageElement.prototype, "Image __proto__ is HTMLImageElement prototype "); assert_equals(Image.prototype.__proto__, HTMLElement.prototype, "Image.prototype __proto__ is HTMLElement prototype"); + + const desc = Object.getOwnPropertyDescriptor(Image, "prototype"); + assert_false(desc.configurable, "Image.prototype is not configurable"); + assert_false(desc.enumerable, "Image.prototype is not enumerable"); + assert_false(desc.writable, "Image.prototype is not writable"); }, "NamedConstructor creates the correct object structure."); </script> diff --git a/tests/wpt/web-platform-tests/interfaces/dom.idl b/tests/wpt/web-platform-tests/interfaces/dom.idl index 503c391102a..1788faae520 100644 --- a/tests/wpt/web-platform-tests/interfaces/dom.idl +++ b/tests/wpt/web-platform-tests/interfaces/dom.idl @@ -1,7 +1,7 @@ // GENERATED CONTENT - DO NOT EDIT -// Content of this file was automatically extracted from the -// "DOM Standard" spec. -// See: https://dom.spec.whatwg.org/ +// Content was automatically extracted by Reffy into reffy-reports +// (https://github.com/tidoust/reffy-reports) +// Source: DOM Standard (https://dom.spec.whatwg.org/) [Constructor(DOMString type, optional EventInit eventInitDict), Exposed=(Window,Worker,AudioWorklet)] @@ -145,7 +145,7 @@ Text includes Slotable; interface NodeList { getter Node? item(unsigned long index); readonly attribute unsigned long length; -// iterable<Node>; + iterable<Node>; }; [Exposed=Window, LegacyUnenumerableNamedProperties] @@ -548,5 +548,5 @@ interface DOMTokenList { [CEReactions] boolean replace(DOMString token, DOMString newToken); boolean supports(DOMString token); [CEReactions] stringifier attribute DOMString value; - // iterable<DOMString>; + iterable<DOMString>; }; diff --git a/tests/wpt/web-platform-tests/interfaces/user-timing.idl b/tests/wpt/web-platform-tests/interfaces/user-timing.idl index 723b063156a..da8a0acd673 100644 --- a/tests/wpt/web-platform-tests/interfaces/user-timing.idl +++ b/tests/wpt/web-platform-tests/interfaces/user-timing.idl @@ -22,7 +22,8 @@ partial interface Performance { void clearMeasures(optional DOMString measureName); }; -[Exposed=(Window,Worker)] +[Exposed=(Window,Worker), + Constructor(DOMString markName, optional PerformanceMarkOptions markOptions)] interface PerformanceMark : PerformanceEntry { readonly attribute any detail; }; diff --git a/tests/wpt/web-platform-tests/mediacapture-record/MediaRecorder-pause-resume.html b/tests/wpt/web-platform-tests/mediacapture-record/MediaRecorder-pause-resume.html new file mode 100644 index 00000000000..39a88836645 --- /dev/null +++ b/tests/wpt/web-platform-tests/mediacapture-record/MediaRecorder-pause-resume.html @@ -0,0 +1,66 @@ +<!doctype html> +<html> +<head> + <title>MediaRecorder Pause and Resume</title> + <link rel="help" href="https://w3c.github.io/mediacapture-record/MediaRecorder.html#mediarecorder"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> +</head> +<body> +<canvas id="canvas" width="200" height="200"> +</canvas> +<script> + function createVideoStream() { + let canvas = document.getElementById("canvas"); + canvas.getContext('2d'); + return canvas.captureStream(); + } + + function recordEvents(target, events) { + let arr = []; + for (let ev of events) { + target.addEventListener(ev, _ => arr.push(ev)); + } + return arr; + } + + promise_test(async () => { + let video = createVideoStream(); + let recorder = new MediaRecorder(video); + let events = recordEvents(recorder, + ["start", "stop", "dataavailable", "pause", "resume", "error"]); + + recorder.start(); + assert_equals(recorder.state, "recording", "MediaRecorder has been started successfully"); + + recorder.pause(); + assert_equals(recorder.state, "paused", "MediaRecorder should be paused immediately following pause()"); + + // A second call to pause should be idempotent + recorder.pause(); + assert_equals(recorder.state, "paused", "MediaRecorder should be paused immediately following pause()"); + + let event = await new Promise(r => recorder.onpause = r); + assert_equals(event.type, "pause", "the event type should be pause"); + assert_true(event.isTrusted, "isTrusted should be true when the event is created by C++"); + + recorder.resume(); + assert_equals(recorder.state, "recording", "MediaRecorder state should be recording immediately following resume() call"); + + // A second call to resume should be idempotent + recorder.resume(); + assert_equals(recorder.state, "recording", "MediaRecorder state should be recording immediately following resume() call"); + + event = await new Promise(r => recorder.onresume = r); + assert_equals(event.type, "resume", "the event type should be resume"); + assert_true(event.isTrusted, "isTrusted should be true when the event is created by C++"); + + recorder.stop(); + await new Promise(r => recorder.onstop = r); + + assert_array_equals(events, ["start", "pause", "resume", "dataavailable", "stop"], + "Should have gotten expected events"); + }, "MediaRecorder handles pause() and resume() calls appropriately in state and events"); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/mediacapture-record/MediaRecorder-stop.html b/tests/wpt/web-platform-tests/mediacapture-record/MediaRecorder-stop.html index 8e05fc5491d..5dd9aa63730 100644 --- a/tests/wpt/web-platform-tests/mediacapture-record/MediaRecorder-stop.html +++ b/tests/wpt/web-platform-tests/mediacapture-record/MediaRecorder-stop.html @@ -16,35 +16,68 @@ return canvas.captureStream(); } - async_test(t => { + function recordEvents(target, events) { + let arr = []; + for (let ev of events) { + target.addEventListener(ev, _ => arr.push(ev)); + } + return arr; + } + + promise_test(async t => { let video = createVideoStream(); let recorder = new MediaRecorder(video); - recorder.onstop = t.step_func(errorEvent => { - assert_equals(errorEvent.type, 'stop', 'the error type should be stop'); - assert_true(errorEvent.isTrusted, 'isTrusted should be true when the event is created by C++'); - assert_equals(recorder.state, "inactive", "MediaRecorder has been stopped when all tracks are ended"); - t.done(); - }); + let events = recordEvents(recorder, + ["start", "stop", "dataavailable", "pause", "resume", "error"]); assert_equals(video.getVideoTracks().length, 1, "video mediastream starts with one track"); recorder.start(); assert_equals(recorder.state, "recording", "MediaRecorder has been started successfully"); + video.getVideoTracks()[0].stop(); + assert_equals(recorder.state, "recording", "MediaRecorder state should be recording immediately following last track ending"); + let event = await new Promise(r => recorder.onstop = r); + + assert_equals(event.type, "stop", "the event type should be stop"); + assert_true(event.isTrusted, "isTrusted should be true when the event is created by C++"); + assert_equals(recorder.state, "inactive", "MediaRecorder is inactive after stop event"); + + assert_array_equals(events, ["start", "dataavailable", "stop"], + "Should have gotten expected events"); + + recorder.stop(); + await Promise.race([ + new Promise((_, reject) => recorder.onstop = + _ => reject(new Error("stop() is idempotent"))), + new Promise(r => t.step_timeout(r, 0)) + ]); }, "MediaRecorder will stop recording and fire a stop event when all tracks are ended"); - async_test(t => { + promise_test(async t => { let video = createVideoStream(); let recorder = new MediaRecorder(video); - recorder.onstop = t.step_func(errorEvent => { - assert_equals(errorEvent.type, 'stop', 'the error type should be stop'); - assert_true(errorEvent.isTrusted, 'isTrusted should be true when the event is created by C++'); - assert_equals(recorder.state, "inactive", "MediaRecorder has been stopped when stop() is called"); - t.done(); - }); + let events = recordEvents(recorder, + ["start", "stop", "dataavailable", "pause", "resume", "error"]); recorder.start(); assert_equals(recorder.state, "recording", "MediaRecorder has been started successfully"); + + recorder.stop(); + assert_equals(recorder.state, "inactive", "MediaRecorder state should be inactive immediately following stop() call"); + + let event = await new Promise (r => recorder.onstop = r); + assert_equals(event.type, "stop", "the event type should be stop"); + assert_true(event.isTrusted, "isTrusted should be true when the event is created by C++"); + assert_equals(recorder.state, "inactive", "MediaRecorder is inactive after stop event"); + + assert_array_equals(events, ["start", "dataavailable", "stop"], + "Should have gotten expected events"); + recorder.stop(); - assert_equals(recorder.state, "recording", "State should remain the same until stop event is fired"); + await Promise.race([ + new Promise((_, reject) => recorder.onstop = + _ => reject(new Error("stop() is idempotent"))), + new Promise(r => t.step_timeout(r, 0)) + ]); }, "MediaRecorder will stop recording and fire a stop event when stop() is called"); </script> </body> -</html>
\ No newline at end of file +</html> diff --git a/tests/wpt/web-platform-tests/portals/portals-rendering.html b/tests/wpt/web-platform-tests/portals/portals-rendering.html new file mode 100644 index 00000000000..8683a38326d --- /dev/null +++ b/tests/wpt/web-platform-tests/portals/portals-rendering.html @@ -0,0 +1,16 @@ +<!DOCTYPE html> +<html class="reftest-wait"> +<title>Portals rendering test</title> +<link rel="match" href="references/portals-rendering.html"> +<body> + <portal src="resources/portals-rendering-portal.html" style="background-color: red; width: 100px; height: 100px"></portal> + <script> + var bc = new BroadcastChannel('portal'); + bc.onmessage = function(e) { + window.requestAnimationFrame(function(ts) { + document.documentElement.classList.remove('reftest-wait'); + }); + bc.close(); + } + </script> +</body> diff --git a/tests/wpt/web-platform-tests/portals/references/portals-rendering.html b/tests/wpt/web-platform-tests/portals/references/portals-rendering.html new file mode 100644 index 00000000000..4a8414ab565 --- /dev/null +++ b/tests/wpt/web-platform-tests/portals/references/portals-rendering.html @@ -0,0 +1,5 @@ +<!DOCTYPE html> +<title>Portals rendering test</title> +<body> + <div style="background-color: green; width: 100px; height: 100px"> +</body> diff --git a/tests/wpt/web-platform-tests/portals/resources/portals-rendering-portal.html b/tests/wpt/web-platform-tests/portals/resources/portals-rendering-portal.html new file mode 100644 index 00000000000..1b6f23f512d --- /dev/null +++ b/tests/wpt/web-platform-tests/portals/resources/portals-rendering-portal.html @@ -0,0 +1,10 @@ +<!DOCTYPE html> +<body style="background-color: green"> + <script> + window.requestAnimationFrame(function(ts) { + var bc = new BroadcastChannel('portal'); + bc.postMessage('loaded'); + bc.close(); + }); + </script> +</body> diff --git a/tests/wpt/web-platform-tests/resources/idlharness.js b/tests/wpt/web-platform-tests/resources/idlharness.js index 926a615e59c..8b7a1e2d98e 100644 --- a/tests/wpt/web-platform-tests/resources/idlharness.js +++ b/tests/wpt/web-platform-tests/resources/idlharness.js @@ -2309,21 +2309,6 @@ IdlInterface.prototype.do_member_operation_asserts = function(memberHolderObject } } -IdlInterface.prototype.add_iterable_members = function(member) -{ - this.members.push(new IdlInterfaceMember( - { type: "operation", name: "entries", idlType: "iterator", arguments: []})); - this.members.push(new IdlInterfaceMember( - { type: "operation", name: "keys", idlType: "iterator", arguments: []})); - this.members.push(new IdlInterfaceMember( - { type: "operation", name: "values", idlType: "iterator", arguments: []})); - this.members.push(new IdlInterfaceMember( - { type: "operation", name: "forEach", idlType: "void", - arguments: - [{ name: "callback", idlType: {idlType: "function"}}, - { name: "thisValue", idlType: {idlType: "any"}, optional: true}]})); -}; - IdlInterface.prototype.test_to_json_operation = function(memberHolderObject, member) { var instanceName = memberHolderObject && memberHolderObject.constructor.name || member.name + " object"; @@ -2351,27 +2336,29 @@ IdlInterface.prototype.test_to_json_operation = function(memberHolderObject, mem IdlInterface.prototype.test_member_iterable = function(member) { - var isPairIterator = member.idlType.length === 2; subsetTestByKey(this.name, test, function() { - var descriptor = Object.getOwnPropertyDescriptor(this.get_interface_object().prototype, Symbol.iterator); - assert_true(descriptor.writable, "property should be writable"); - assert_true(descriptor.configurable, "property should be configurable"); - assert_false(descriptor.enumerable, "property should not be enumerable"); - assert_equals(this.get_interface_object().prototype[Symbol.iterator].name, isPairIterator ? "entries" : "values", "@@iterator function does not have the right name"); - }.bind(this), "Testing Symbol.iterator property of iterable interface " + this.name); - - if (isPairIterator) { - subsetTestByKey(this.name, test, function() { - assert_equals(this.get_interface_object().prototype[Symbol.iterator], this.get_interface_object().prototype["entries"], "entries method is not the same as @@iterator"); - }.bind(this), "Testing pair iterable interface " + this.name); - } else { - subsetTestByKey(this.name, test, function() { - ["entries", "keys", "values", "forEach", Symbol.Iterator].forEach(function(property) { - assert_equals(this.get_interface_object().prototype[property], Array.prototype[property], property + " function is not the same as Array one"); + var isPairIterator = member.idlType.length === 2; + var proto = this.get_interface_object().prototype; + var descriptor = Object.getOwnPropertyDescriptor(proto, Symbol.iterator); + + assert_true(descriptor.writable, "@@iterator property should be writable"); + assert_true(descriptor.configurable, "@@iterator property should be configurable"); + assert_false(descriptor.enumerable, "@@iterator property should not be enumerable"); + assert_equals(typeof descriptor.value, "function", "@@iterator property should be a function"); + assert_equals(descriptor.value.length, 0, "@@iterator function object length should be 0"); + assert_equals(descriptor.value.name, isPairIterator ? "entries" : "values", "@@iterator function object should have the right name"); + + if (isPairIterator) { + assert_equals(proto["entries"], proto[Symbol.iterator], "entries method should be the same as @@iterator method"); + } else { + assert_equals(proto[Symbol.iterator], Array.prototype[Symbol.iterator], "@@iterator method should be the same as Array prototype's"); + ["entries", "keys", "values", "forEach", Symbol.iterator].forEach(function(property) { + var propertyName = property === Symbol.iterator ? "@@iterator" : property; + assert_equals(proto[property], Array.prototype[property], propertyName + " method should be the same as Array prototype's"); }.bind(this)); - }.bind(this), "Testing value iterable interface " + this.name); - } + } + }.bind(this), this.name + " interface: iterable<" + member.idlType.map(function(t) { return t.idlType; }).join(", ") + ">"); }; IdlInterface.prototype.test_member_stringifier = function(member) @@ -2440,19 +2427,6 @@ IdlInterface.prototype.test_members = function() for (var i = 0; i < this.members.length; i++) { var member = this.members[i]; - switch (member.type) { - case "iterable": - this.add_iterable_members(member); - break; - // TODO: add setlike and maplike handling. - default: - break; - } - } - - for (var i = 0; i < this.members.length; i++) - { - var member = this.members[i]; if (member.untested) { continue; } |