mirror of
https://github.com/servo/servo.git
synced 2025-08-06 14:10:11 +01:00
Sync WPT with upstream (07-08-2023) (#30078)
* Update web-platform-tests to revision b'6d5a1f7fb272973c2a951831b4f9fb25f05f96b0' * Revert some expectations updated by WPT import Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> --------- Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> Co-authored-by: Mukilan Thiyagarajan <mukilan@igalia.com>
This commit is contained in:
parent
1346c34083
commit
2fe0413b72
810 changed files with 17776 additions and 6309 deletions
|
@ -7,7 +7,7 @@
|
|||
expected: FAIL
|
||||
|
||||
[Opening a blob URL in a new window immediately before revoking it works.]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[Opening a blob URL in a noopener about:blank window immediately before revoking it works.]
|
||||
expected: TIMEOUT
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
[font-size-adjust-012.html]
|
||||
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
|||
[font-size-adjust-013.html]
|
||||
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
|||
[font-size-adjust-014.html]
|
||||
expected: FAIL
|
|
@ -43,3 +43,6 @@
|
|||
|
||||
[Property font-size-adjust value 'ic-height from-font']
|
||||
expected: FAIL
|
||||
|
||||
[CSS Fonts Module Level 5: getComputedStyle().fontSizeAdjust]
|
||||
expected: FAIL
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
[overlay-transition-dialog.html]
|
||||
expected: TIMEOUT
|
|
@ -5,3 +5,5 @@
|
|||
[Property word-break value 'break-word']
|
||||
expected: FAIL
|
||||
|
||||
[Property word-break value 'auto-phrase']
|
||||
expected: FAIL
|
||||
|
|
|
@ -2,3 +2,5 @@
|
|||
[e.style['word-break'\] = "break-word" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['word-break'\] = "auto-phrase" should set the property value]
|
||||
expected: FAIL
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
[word-break-auto-phrase-intrinsic-001.html]
|
||||
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
|||
[word-break-auto-phrase-overflow-001.html]
|
||||
expected: FAIL
|
|
@ -376,3 +376,333 @@
|
|||
|
||||
[calc(rem(3px + 0%, 2px + 0%)) should be used-value-equivalent to 1px]
|
||||
expected: FAIL
|
||||
|
||||
[calc(round(to-zero, 105, 10)) should be used-value-equivalent to 100]
|
||||
expected: FAIL
|
||||
|
||||
[calc(round(to-zero, -105, 10)) should be used-value-equivalent to -100]
|
||||
expected: FAIL
|
||||
|
||||
[calc(round(-100, 10)) should be used-value-equivalent to -100]
|
||||
expected: FAIL
|
||||
|
||||
[calc(round(up, -103, 10)) should be used-value-equivalent to -100]
|
||||
expected: FAIL
|
||||
|
||||
[round(up, 0, 5) should be used-value-equivalent to 0]
|
||||
expected: FAIL
|
||||
|
||||
[round(down, 0, 5) should be used-value-equivalent to 0]
|
||||
expected: FAIL
|
||||
|
||||
[round(nearest, 0, 5) should be used-value-equivalent to 0]
|
||||
expected: FAIL
|
||||
|
||||
[round(to-zero, 0, 5) should be used-value-equivalent to 0]
|
||||
expected: FAIL
|
||||
|
||||
[round(up, 5, 5) should be used-value-equivalent to 5]
|
||||
expected: FAIL
|
||||
|
||||
[round(down, 5, 5) should be used-value-equivalent to 5]
|
||||
expected: FAIL
|
||||
|
||||
[round(nearest, 5, 5) should be used-value-equivalent to 5]
|
||||
expected: FAIL
|
||||
|
||||
[round(to-zero, 5, 5) should be used-value-equivalent to 5]
|
||||
expected: FAIL
|
||||
|
||||
[round(up, -5, 5) should be used-value-equivalent to -5]
|
||||
expected: FAIL
|
||||
|
||||
[round(down, -5, 5) should be used-value-equivalent to -5]
|
||||
expected: FAIL
|
||||
|
||||
[round(nearest, -5, 5) should be used-value-equivalent to -5]
|
||||
expected: FAIL
|
||||
|
||||
[round(to-zero, -5, 5) should be used-value-equivalent to -5]
|
||||
expected: FAIL
|
||||
|
||||
[round(up, 10, 5) should be used-value-equivalent to 10]
|
||||
expected: FAIL
|
||||
|
||||
[round(down, 10, 5) should be used-value-equivalent to 10]
|
||||
expected: FAIL
|
||||
|
||||
[round(nearest, 10, 5) should be used-value-equivalent to 10]
|
||||
expected: FAIL
|
||||
|
||||
[round(to-zero, 10, 5) should be used-value-equivalent to 10]
|
||||
expected: FAIL
|
||||
|
||||
[round(up, -10, 5) should be used-value-equivalent to -10]
|
||||
expected: FAIL
|
||||
|
||||
[round(down, -10, 5) should be used-value-equivalent to -10]
|
||||
expected: FAIL
|
||||
|
||||
[round(nearest, -10, 5) should be used-value-equivalent to -10]
|
||||
expected: FAIL
|
||||
|
||||
[round(to-zero, -10, 5) should be used-value-equivalent to -10]
|
||||
expected: FAIL
|
||||
|
||||
[round(up, 20, 5) should be used-value-equivalent to 20]
|
||||
expected: FAIL
|
||||
|
||||
[round(down, 20, 5) should be used-value-equivalent to 20]
|
||||
expected: FAIL
|
||||
|
||||
[round(nearest, 20, 5) should be used-value-equivalent to 20]
|
||||
expected: FAIL
|
||||
|
||||
[round(to-zero, 20, 5) should be used-value-equivalent to 20]
|
||||
expected: FAIL
|
||||
|
||||
[round(up, -20, 5) should be used-value-equivalent to -20]
|
||||
expected: FAIL
|
||||
|
||||
[round(down, -20, 5) should be used-value-equivalent to -20]
|
||||
expected: FAIL
|
||||
|
||||
[round(nearest, -20, 5) should be used-value-equivalent to -20]
|
||||
expected: FAIL
|
||||
|
||||
[round(to-zero, -20, 5) should be used-value-equivalent to -20]
|
||||
expected: FAIL
|
||||
|
||||
[round(0, 0) should be used-value-equivalent to calc(NaN)]
|
||||
expected: FAIL
|
||||
|
||||
[round(-0, 0) should be used-value-equivalent to calc(NaN)]
|
||||
expected: FAIL
|
||||
|
||||
[round(Infinity, 0) should be used-value-equivalent to calc(NaN)]
|
||||
expected: FAIL
|
||||
|
||||
[round(-Infinity, 0) should be used-value-equivalent to calc(NaN)]
|
||||
expected: FAIL
|
||||
|
||||
[round(-4, 0) should be used-value-equivalent to calc(NaN)]
|
||||
expected: FAIL
|
||||
|
||||
[round(4, 0) should be used-value-equivalent to calc(NaN)]
|
||||
expected: FAIL
|
||||
|
||||
[round(Infinity, Infinity) should be used-value-equivalent to calc(NaN)]
|
||||
expected: FAIL
|
||||
|
||||
[round(-Infinity, -Infinity) should be used-value-equivalent to calc(NaN)]
|
||||
expected: FAIL
|
||||
|
||||
[round(Infinity, -Infinity) should be used-value-equivalent to calc(NaN)]
|
||||
expected: FAIL
|
||||
|
||||
[round(-Infinity, Infinity) should be used-value-equivalent to calc(NaN)]
|
||||
expected: FAIL
|
||||
|
||||
[mod(0, 0) should be used-value-equivalent to calc(NaN)]
|
||||
expected: FAIL
|
||||
|
||||
[mod(-0, 0) should be used-value-equivalent to calc(NaN)]
|
||||
expected: FAIL
|
||||
|
||||
[mod(Infinity, 0) should be used-value-equivalent to calc(NaN)]
|
||||
expected: FAIL
|
||||
|
||||
[mod(-Infinity, 0) should be used-value-equivalent to calc(NaN)]
|
||||
expected: FAIL
|
||||
|
||||
[mod(-4, 0) should be used-value-equivalent to calc(NaN)]
|
||||
expected: FAIL
|
||||
|
||||
[mod(4, 0) should be used-value-equivalent to calc(NaN)]
|
||||
expected: FAIL
|
||||
|
||||
[mod(Infinity, Infinity) should be used-value-equivalent to calc(NaN)]
|
||||
expected: FAIL
|
||||
|
||||
[mod(-Infinity, -Infinity) should be used-value-equivalent to calc(NaN)]
|
||||
expected: FAIL
|
||||
|
||||
[mod(Infinity, -Infinity) should be used-value-equivalent to calc(NaN)]
|
||||
expected: FAIL
|
||||
|
||||
[mod(-Infinity, Infinity) should be used-value-equivalent to calc(NaN)]
|
||||
expected: FAIL
|
||||
|
||||
[rem(0, 0) should be used-value-equivalent to calc(NaN)]
|
||||
expected: FAIL
|
||||
|
||||
[rem(-0, 0) should be used-value-equivalent to calc(NaN)]
|
||||
expected: FAIL
|
||||
|
||||
[rem(Infinity, 0) should be used-value-equivalent to calc(NaN)]
|
||||
expected: FAIL
|
||||
|
||||
[rem(-Infinity, 0) should be used-value-equivalent to calc(NaN)]
|
||||
expected: FAIL
|
||||
|
||||
[rem(-4, 0) should be used-value-equivalent to calc(NaN)]
|
||||
expected: FAIL
|
||||
|
||||
[rem(4, 0) should be used-value-equivalent to calc(NaN)]
|
||||
expected: FAIL
|
||||
|
||||
[rem(Infinity, Infinity) should be used-value-equivalent to calc(NaN)]
|
||||
expected: FAIL
|
||||
|
||||
[rem(-Infinity, -Infinity) should be used-value-equivalent to calc(NaN)]
|
||||
expected: FAIL
|
||||
|
||||
[rem(Infinity, -Infinity) should be used-value-equivalent to calc(NaN)]
|
||||
expected: FAIL
|
||||
|
||||
[rem(-Infinity, Infinity) should be used-value-equivalent to calc(NaN)]
|
||||
expected: FAIL
|
||||
|
||||
[round(up, Infinity, 4) should be used-value-equivalent to calc(Infinity)]
|
||||
expected: FAIL
|
||||
|
||||
[round(up, -Infinity, 4) should be used-value-equivalent to calc(-Infinity)]
|
||||
expected: FAIL
|
||||
|
||||
[round(up, Infinity, -4) should be used-value-equivalent to calc(Infinity)]
|
||||
expected: FAIL
|
||||
|
||||
[round(up, -Infinity, -4) should be used-value-equivalent to calc(-Infinity)]
|
||||
expected: FAIL
|
||||
|
||||
[round(down, Infinity, 4) should be used-value-equivalent to calc(Infinity)]
|
||||
expected: FAIL
|
||||
|
||||
[round(down, -Infinity, 4) should be used-value-equivalent to calc(-Infinity)]
|
||||
expected: FAIL
|
||||
|
||||
[round(down, Infinity, -4) should be used-value-equivalent to calc(Infinity)]
|
||||
expected: FAIL
|
||||
|
||||
[round(down, -Infinity, -4) should be used-value-equivalent to calc(-Infinity)]
|
||||
expected: FAIL
|
||||
|
||||
[round(nearest, Infinity, 4) should be used-value-equivalent to calc(Infinity)]
|
||||
expected: FAIL
|
||||
|
||||
[round(nearest, -Infinity, 4) should be used-value-equivalent to calc(-Infinity)]
|
||||
expected: FAIL
|
||||
|
||||
[round(nearest, Infinity, -4) should be used-value-equivalent to calc(Infinity)]
|
||||
expected: FAIL
|
||||
|
||||
[round(nearest, -Infinity, -4) should be used-value-equivalent to calc(-Infinity)]
|
||||
expected: FAIL
|
||||
|
||||
[round(to-zero, Infinity, 4) should be used-value-equivalent to calc(Infinity)]
|
||||
expected: FAIL
|
||||
|
||||
[round(to-zero, -Infinity, 4) should be used-value-equivalent to calc(-Infinity)]
|
||||
expected: FAIL
|
||||
|
||||
[round(to-zero, Infinity, -4) should be used-value-equivalent to calc(Infinity)]
|
||||
expected: FAIL
|
||||
|
||||
[round(to-zero, -Infinity, -4) should be used-value-equivalent to calc(-Infinity)]
|
||||
expected: FAIL
|
||||
|
||||
[round(nearest, 0, Infinity) should be used-value-equivalent to 0]
|
||||
expected: FAIL
|
||||
|
||||
[round(nearest, 4, Infinity) should be used-value-equivalent to 0]
|
||||
expected: FAIL
|
||||
|
||||
[round(nearest, -0, Infinity) should be used-value-equivalent to calc(-0)]
|
||||
expected: FAIL
|
||||
|
||||
[round(nearest, -4, Infinity) should be used-value-equivalent to calc(-0)]
|
||||
expected: FAIL
|
||||
|
||||
[round(nearest, 0, -Infinity) should be used-value-equivalent to 0]
|
||||
expected: FAIL
|
||||
|
||||
[round(nearest, 4, -Infinity) should be used-value-equivalent to 0]
|
||||
expected: FAIL
|
||||
|
||||
[round(nearest, -0, -Infinity) should be used-value-equivalent to calc(-0)]
|
||||
expected: FAIL
|
||||
|
||||
[round(nearest, -4, -Infinity) should be used-value-equivalent to calc(-0)]
|
||||
expected: FAIL
|
||||
|
||||
[round(to-zero, 0, Infinity) should be used-value-equivalent to 0]
|
||||
expected: FAIL
|
||||
|
||||
[round(to-zero, 4, Infinity) should be used-value-equivalent to 0]
|
||||
expected: FAIL
|
||||
|
||||
[round(to-zero, -0, Infinity) should be used-value-equivalent to calc(-0)]
|
||||
expected: FAIL
|
||||
|
||||
[round(to-zero, -4, Infinity) should be used-value-equivalent to calc(-0)]
|
||||
expected: FAIL
|
||||
|
||||
[round(to-zero, 0, -Infinity) should be used-value-equivalent to 0]
|
||||
expected: FAIL
|
||||
|
||||
[round(to-zero, 4, -Infinity) should be used-value-equivalent to 0]
|
||||
expected: FAIL
|
||||
|
||||
[round(to-zero, -0, -Infinity) should be used-value-equivalent to calc(-0)]
|
||||
expected: FAIL
|
||||
|
||||
[round(to-zero, -4, -Infinity) should be used-value-equivalent to calc(-0)]
|
||||
expected: FAIL
|
||||
|
||||
[round(up, 1, Infinity) should be used-value-equivalent to calc(Infinity)]
|
||||
expected: FAIL
|
||||
|
||||
[round(up, 0, Infinity) should be used-value-equivalent to 0]
|
||||
expected: FAIL
|
||||
|
||||
[round(up, -1, Infinity) should be used-value-equivalent to calc(-0)]
|
||||
expected: FAIL
|
||||
|
||||
[round(up, 1, -Infinity) should be used-value-equivalent to calc(Infinity)]
|
||||
expected: FAIL
|
||||
|
||||
[round(up, 0, -Infinity) should be used-value-equivalent to 0]
|
||||
expected: FAIL
|
||||
|
||||
[round(up, -1, -Infinity) should be used-value-equivalent to calc(-0)]
|
||||
expected: FAIL
|
||||
|
||||
[round(down, 1, Infinity) should be used-value-equivalent to calc(-0)]
|
||||
expected: FAIL
|
||||
|
||||
[round(down, 0, Infinity) should be used-value-equivalent to 0]
|
||||
expected: FAIL
|
||||
|
||||
[round(down, -1, Infinity) should be used-value-equivalent to calc(-Infinity)]
|
||||
expected: FAIL
|
||||
|
||||
[round(down, 1, -Infinity) should be used-value-equivalent to calc(-0)]
|
||||
expected: FAIL
|
||||
|
||||
[round(down, 0, -Infinity) should be used-value-equivalent to 0]
|
||||
expected: FAIL
|
||||
|
||||
[round(down, -1, -Infinity) should be used-value-equivalent to calc(-Infinity)]
|
||||
expected: FAIL
|
||||
|
||||
[mod(-0, Infinity) should be used-value-equivalent to calc(NaN)]
|
||||
expected: FAIL
|
||||
|
||||
[mod(0, -Infinity) should be used-value-equivalent to calc(NaN)]
|
||||
expected: FAIL
|
||||
|
||||
[mod(-4, Infinity) should be used-value-equivalent to calc(NaN)]
|
||||
expected: FAIL
|
||||
|
||||
[mod(4, -Infinity) should be used-value-equivalent to calc(NaN)]
|
||||
expected: FAIL
|
||||
|
|
|
@ -1,6 +0,0 @@
|
|||
[scroll-behavior-smooth-navigation.html]
|
||||
[Instant scrolling while doing history navigation.]
|
||||
expected: FAIL
|
||||
|
||||
[Smooth scrolling while doing history navigation.]
|
||||
expected: FAIL
|
|
@ -547,3 +547,24 @@
|
|||
|
||||
[CSSImportRule interface: sheet.cssRules[0\] must inherit property "supportsText" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleRule interface: existence and properties of interface object]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleRule interface: existence and properties of interface prototype object]
|
||||
expected: FAIL
|
||||
|
||||
[CSSGroupingRule interface: sheet.cssRules[4\] must inherit property "cssRules" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSGroupingRule interface: sheet.cssRules[4\] must inherit property "insertRule(CSSOMString, optional unsigned long)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSGroupingRule interface: calling insertRule(CSSOMString, optional unsigned long) on sheet.cssRules[4\] with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[CSSGroupingRule interface: sheet.cssRules[4\] must inherit property "deleteRule(unsigned long)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSGroupingRule interface: calling deleteRule(unsigned long) on sheet.cssRules[4\] with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
|
|
@ -20,3 +20,9 @@
|
|||
|
||||
[Toggling "disabled" attribute on a <fieldset> does not trigger a callback on disabled custom element descendant]
|
||||
expected: FAIL
|
||||
|
||||
[Callback triggered during a clone/append operation, with disabled state provided by ancestor]
|
||||
expected: FAIL
|
||||
|
||||
[Callback triggered during a clone operation, with disabled state provided by ancestor]
|
||||
expected: FAIL
|
||||
|
|
|
@ -146,6 +146,3 @@
|
|||
|
||||
[list-style-image sec-fetch-site - HTTPS downgrade-upgrade]
|
||||
expected: FAIL
|
||||
|
||||
[background-image sec-fetch-site - HTTPS downgrade (header not sent)]
|
||||
expected: TIMEOUT
|
||||
|
|
|
@ -5,9 +5,6 @@
|
|||
[private to local: failure.]
|
||||
expected: FAIL
|
||||
|
||||
[private to private: success.]
|
||||
expected: FAIL
|
||||
|
||||
[public to local: failure.]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -83,6 +83,9 @@
|
|||
[Blob content with short content and a range start matching the content length]
|
||||
expected: FAIL
|
||||
|
||||
[A blob range request with no type.]
|
||||
expected: FAIL
|
||||
|
||||
|
||||
[blob.any.html]
|
||||
[A simple blob range request.]
|
||||
|
@ -168,3 +171,6 @@
|
|||
|
||||
[Blob content with short content and a range start matching the content length]
|
||||
expected: FAIL
|
||||
|
||||
[A blob range request with no type.]
|
||||
expected: FAIL
|
||||
|
|
|
@ -1,13 +1,12 @@
|
|||
[failure-check-sequence.https.html]
|
||||
expected: TIMEOUT
|
||||
[CSP check precedes COEP check - CSP header first]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[COEP check precedes X-Frame-Options check]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[CSP check precedes COEP check - COEP header first]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[CSP check precedes X-Frame-Options check]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
[iframe-src-aboutblank-navigate-immediately.html]
|
||||
expected: TIMEOUT
|
||||
[Navigating to a different document with window.open]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -7,4 +6,4 @@
|
|||
expected: FAIL
|
||||
|
||||
[Navigating to a different document with form submission]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
[javascript-url-referrer.window.html]
|
||||
expected: TIMEOUT
|
||||
[unsafe-url referrer policy used to create the starting page]
|
||||
expected: FAIL
|
||||
|
||||
[origin referrer policy used to create the starting page]
|
||||
expected: FAIL
|
||||
|
||||
[no-referrer referrer policy used to create the starting page]
|
||||
expected: TIMEOUT
|
||||
|
|
|
@ -13,9 +13,3 @@
|
|||
|
||||
[0080 00FF 0100 set in href="" targeting a frame and clicked]
|
||||
expected: FAIL
|
||||
|
||||
[D83D DE0D set in href="" targeting a frame and clicked]
|
||||
expected: FAIL
|
||||
|
||||
[DE0D 0041 set in href="" targeting a frame and clicked]
|
||||
expected: FAIL
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
[navigation-unload-cross-origin.sub.window.html]
|
||||
[Cross-origin navigation started from unload handler must be ignored]
|
||||
expected: FAIL
|
|
@ -1,3 +0,0 @@
|
|||
[navigation-unload-same-origin.window.html]
|
||||
[Same-origin navigation started from unload handler must be ignored]
|
||||
expected: FAIL
|
|
@ -1,3 +1,4 @@
|
|||
[nav-cancelation-2.sub.html]
|
||||
expected: TIMEOUT
|
||||
[grandparent cancels a pending navigation in a cross-origin grandchild]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
[cross-origin-objects.html]
|
||||
expected: TIMEOUT
|
||||
[Basic sanity-checking (cross-origin)]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
[creating_browsing_context_test_01.html]
|
||||
[first argument: absolute url]
|
||||
expected: FAIL
|
|
@ -0,0 +1,3 @@
|
|||
[2d.layer.beginLayer-options.html]
|
||||
[Checks beginLayer works for different option parameter values]
|
||||
expected: FAIL
|
|
@ -0,0 +1,3 @@
|
|||
[2d.layer.exceptions-are-no-op.html]
|
||||
[Checks that the context state is left unchanged if beginLayer throws.]
|
||||
expected: FAIL
|
|
@ -0,0 +1,3 @@
|
|||
[2d.text.font.weight.html]
|
||||
[Canvas test: 2d.text.font.weight]
|
||||
expected: FAIL
|
|
@ -0,0 +1,3 @@
|
|||
[2d.layer.beginLayer-options.html]
|
||||
[Checks beginLayer works for different option parameter values]
|
||||
expected: FAIL
|
|
@ -0,0 +1,3 @@
|
|||
[2d.layer.beginLayer-options.worker.html]
|
||||
[Checks beginLayer works for different option parameter values]
|
||||
expected: FAIL
|
|
@ -0,0 +1,3 @@
|
|||
[2d.layer.exceptions-are-no-op.html]
|
||||
[Checks that the context state is left unchanged if beginLayer throws.]
|
||||
expected: FAIL
|
|
@ -0,0 +1,3 @@
|
|||
[2d.layer.exceptions-are-no-op.worker.html]
|
||||
[Checks that the context state is left unchanged if beginLayer throws.]
|
||||
expected: FAIL
|
|
@ -0,0 +1,3 @@
|
|||
[2d.text.font.weight.html]
|
||||
[OffscreenCanvas test: 2d.text.font.weight]
|
||||
expected: FAIL
|
|
@ -0,0 +1,3 @@
|
|||
[2d.text.font.weight.worker.html]
|
||||
[2d]
|
||||
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
|||
[details-display-type-001.tentative.html]
|
||||
expected: FAIL
|
|
@ -1,4 +1,5 @@
|
|||
[iframe_sandbox_popups_nonescaping-2.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||
expected: FAIL
|
||||
expected: NOTRUN
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
[iframe_sandbox_popups_nonescaping-3.html]
|
||||
expected: TIMEOUT
|
||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
|
|
@ -181,3 +181,6 @@
|
|||
|
||||
[text/plain: 0x00 in name (normal form)]
|
||||
expected: FAIL
|
||||
|
||||
[text/plain: Basic test (formdata event)]
|
||||
expected: FAIL
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
[selectmenu-font-size.tentative.html]
|
||||
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
|||
[selectmenu-rtl.tentative.html]
|
||||
expected: FAIL
|
|
@ -13,3 +13,27 @@
|
|||
|
||||
[mutation event and toggle event order matches tree order]
|
||||
expected: FAIL
|
||||
|
||||
[exclusivity enforcement with attachment scenario connected]
|
||||
expected: FAIL
|
||||
|
||||
[exclusivity enforcement with attachment scenario disconnected]
|
||||
expected: FAIL
|
||||
|
||||
[exclusivity enforcement with attachment scenario shadow]
|
||||
expected: FAIL
|
||||
|
||||
[exclusivity enforcement with attachment scenario shadow-in-disconnected]
|
||||
expected: FAIL
|
||||
|
||||
[exclusivity enforcement with attachment scenario template-in-disconnected]
|
||||
expected: FAIL
|
||||
|
||||
[exclusivity enforcement with attachment scenario connected-in-xhr-response]
|
||||
expected: FAIL
|
||||
|
||||
[exclusivity enforcement with attachment scenario connected-in-implementation-create-document]
|
||||
expected: FAIL
|
||||
|
||||
[exclusivity enforcement with attachment scenario connected-in-template]
|
||||
expected: FAIL
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
[charset-2.html]
|
||||
expected: ERROR
|
|
@ -0,0 +1,2 @@
|
|||
[charset-bom.html]
|
||||
expected: ERROR
|
|
@ -0,0 +1,2 @@
|
|||
[charset.html]
|
||||
expected: ERROR
|
|
@ -0,0 +1,16 @@
|
|||
[content-type-checking.html]
|
||||
expected: ERROR
|
||||
[text/css]
|
||||
expected: NOTRUN
|
||||
|
||||
[application/css]
|
||||
expected: NOTRUN
|
||||
|
||||
[text/html+css]
|
||||
expected: NOTRUN
|
||||
|
||||
[text/css;boundary=something]
|
||||
expected: NOTRUN
|
||||
|
||||
[text/css;foo=bar]
|
||||
expected: NOTRUN
|
|
@ -0,0 +1,9 @@
|
|||
[cors-crossorigin-requests.html]
|
||||
[Imported CSS module, cross-origin with CORS]
|
||||
expected: FAIL
|
||||
|
||||
[Imported CSS module, cross-origin, missing CORS ACAO header]
|
||||
expected: FAIL
|
||||
|
||||
[Imported CSS module with parse error, cross-origin, with CORS]
|
||||
expected: FAIL
|
|
@ -0,0 +1,3 @@
|
|||
[credentials.sub.html]
|
||||
[CSS Modules should be loaded with or without the credentials based on the same-origin-ness and the crossOrigin attribute]
|
||||
expected: FAIL
|
|
@ -0,0 +1,7 @@
|
|||
[css-module-worker-test.html]
|
||||
expected: TIMEOUT
|
||||
[A dynamic import CSS Module within a web worker should not load and should not attempt to fetch the module.]
|
||||
expected: TIMEOUT
|
||||
|
||||
[An attempt to load a CSS module as a worker should fail.]
|
||||
expected: NOTRUN
|
|
@ -0,0 +1,2 @@
|
|||
[import-css-module-basic.html]
|
||||
expected: ERROR
|
|
@ -0,0 +1,2 @@
|
|||
[import-css-module-dynamic.html]
|
||||
expected: ERROR
|
|
@ -0,0 +1,2 @@
|
|||
[integrity.html]
|
||||
expected: ERROR
|
|
@ -0,0 +1,25 @@
|
|||
[load-error-events.html]
|
||||
expected: ERROR
|
||||
[inline, 200, parser-inserted]
|
||||
expected: NOTRUN
|
||||
|
||||
[inline, 404, parser-inserted]
|
||||
expected: NOTRUN
|
||||
|
||||
[src, 200, parser-inserted]
|
||||
expected: FAIL
|
||||
|
||||
[src, 404, parser-inserted]
|
||||
expected: FAIL
|
||||
|
||||
[src, 200, not parser-inserted]
|
||||
expected: FAIL
|
||||
|
||||
[src, 404, not parser-inserted]
|
||||
expected: FAIL
|
||||
|
||||
[inline, 200, not parser-inserted]
|
||||
expected: NOTRUN
|
||||
|
||||
[inline, 404, not parser-inserted]
|
||||
expected: NOTRUN
|
|
@ -0,0 +1,2 @@
|
|||
[referrer-policies.sub.html]
|
||||
expected: ERROR
|
|
@ -0,0 +1,2 @@
|
|||
[relative-urls.html]
|
||||
expected: ERROR
|
|
@ -1,2 +1,3 @@
|
|||
[integrity.html]
|
||||
expected: ERROR
|
||||
[The integrity attribute must be verified on the top-level of a module loading a CSS module and allow it to execute when it matches]
|
||||
expected: FAIL
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
[unsupported-assertion.html]
|
||||
expected: ERROR
|
||||
[Test that no error occurs when an unsupported import assertion is provided.]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
[dynamic-import-with-attributes-argument.any.sharedworker.html]
|
||||
expected: ERROR
|
||||
|
||||
[dynamic-import-with-attributes-argument.any.html]
|
||||
expected: ERROR
|
||||
|
||||
[dynamic-import-with-attributes-argument.any.worker.html]
|
||||
expected: ERROR
|
|
@ -0,0 +1,4 @@
|
|||
[empty-attributes-clause.html]
|
||||
expected: ERROR
|
||||
[Test that no error occurs when an empty import attributes clause is provided.]
|
||||
expected: FAIL
|
|
@ -0,0 +1,3 @@
|
|||
[invalid-type-attribute-error.html]
|
||||
[Test that invalid module type attribute leads to TypeError on window.]
|
||||
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
|||
[charset-2.html]
|
||||
expected: ERROR
|
|
@ -0,0 +1,8 @@
|
|||
[charset-bom.any.worker.html]
|
||||
expected: ERROR
|
||||
|
||||
[charset-bom.any.sharedworker.html]
|
||||
expected: ERROR
|
||||
|
||||
[charset-bom.any.html]
|
||||
expected: ERROR
|
|
@ -0,0 +1,2 @@
|
|||
[charset.html]
|
||||
expected: ERROR
|
|
@ -0,0 +1,9 @@
|
|||
[cors-crossorigin-requests.html]
|
||||
[Imported JSON module, cross-origin with CORS]
|
||||
expected: FAIL
|
||||
|
||||
[Imported JSON module, cross-origin, missing CORS ACAO header]
|
||||
expected: FAIL
|
||||
|
||||
[Imported JSON module with parse error, cross-origin, with CORS]
|
||||
expected: FAIL
|
|
@ -0,0 +1,3 @@
|
|||
[credentials.sub.html]
|
||||
[JSON Modules should be loaded with or without the credentials based on the same-origin-ness and the crossOrigin attribute]
|
||||
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
|||
[integrity.html]
|
||||
expected: ERROR
|
|
@ -0,0 +1,8 @@
|
|||
[invalid-content-type.any.html]
|
||||
expected: ERROR
|
||||
|
||||
[invalid-content-type.any.worker.html]
|
||||
expected: ERROR
|
||||
|
||||
[invalid-content-type.any.sharedworker.html]
|
||||
expected: ERROR
|
|
@ -0,0 +1,9 @@
|
|||
[json-module-service-worker-test.https.html]
|
||||
[Javascript importing JSON Module should load within the context of a service worker]
|
||||
expected: FAIL
|
||||
|
||||
[Trying to register a service worker with a top-level JSON Module should fail]
|
||||
expected: FAIL
|
||||
|
||||
[JSON Module dynamic import should not load within the context of a service worker]
|
||||
expected: FAIL
|
|
@ -0,0 +1,25 @@
|
|||
[load-error-events.html]
|
||||
expected: ERROR
|
||||
[inline, 200, parser-inserted]
|
||||
expected: NOTRUN
|
||||
|
||||
[inline, 404, parser-inserted]
|
||||
expected: NOTRUN
|
||||
|
||||
[src, 200, parser-inserted]
|
||||
expected: FAIL
|
||||
|
||||
[src, 404, parser-inserted]
|
||||
expected: FAIL
|
||||
|
||||
[src, 200, not parser-inserted]
|
||||
expected: FAIL
|
||||
|
||||
[src, 404, not parser-inserted]
|
||||
expected: FAIL
|
||||
|
||||
[inline, 200, not parser-inserted]
|
||||
expected: NOTRUN
|
||||
|
||||
[inline, 404, not parser-inserted]
|
||||
expected: NOTRUN
|
|
@ -0,0 +1,4 @@
|
|||
[module.html]
|
||||
expected: ERROR
|
||||
[JSON modules]
|
||||
expected: NOTRUN
|
|
@ -0,0 +1,8 @@
|
|||
[non-object.any.worker.html]
|
||||
expected: ERROR
|
||||
|
||||
[non-object.any.sharedworker.html]
|
||||
expected: ERROR
|
||||
|
||||
[non-object.any.html]
|
||||
expected: ERROR
|
|
@ -0,0 +1,4 @@
|
|||
[parse-error.html]
|
||||
expected: TIMEOUT
|
||||
[JSON modules: parse error]
|
||||
expected: TIMEOUT
|
|
@ -0,0 +1,2 @@
|
|||
[referrer-policies.sub.html]
|
||||
expected: ERROR
|
|
@ -0,0 +1,8 @@
|
|||
[repeated-imports.any.sharedworker.html]
|
||||
expected: ERROR
|
||||
|
||||
[repeated-imports.any.worker.html]
|
||||
expected: ERROR
|
||||
|
||||
[repeated-imports.any.html]
|
||||
expected: ERROR
|
|
@ -0,0 +1,19 @@
|
|||
[valid-content-type.html]
|
||||
expected: ERROR
|
||||
[text/json]
|
||||
expected: NOTRUN
|
||||
|
||||
[application/json]
|
||||
expected: NOTRUN
|
||||
|
||||
[text/html+json]
|
||||
expected: NOTRUN
|
||||
|
||||
[image/svg+json]
|
||||
expected: NOTRUN
|
||||
|
||||
[text/json;boundary=something]
|
||||
expected: NOTRUN
|
||||
|
||||
[text/json;foo=bar]
|
||||
expected: NOTRUN
|
|
@ -1,19 +1,18 @@
|
|||
[promise-job-entry.html]
|
||||
expected: TIMEOUT
|
||||
[Fulfillment handler on fulfilled promise]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[Rejection handler on pending-then-rejected promise]
|
||||
expected: FAIL
|
||||
|
||||
[Sanity check: this all works as expected with no promises involved]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[Thenable resolution]
|
||||
expected: FAIL
|
||||
|
||||
[Rejection handler on rejected promise]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[Fulfillment handler on pending-then-fulfilled promise]
|
||||
expected: FAIL
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[cross-partition.https.tentative.html]
|
||||
expected: CRASH
|
||||
expected: TIMEOUT
|
||||
[BroadcastChannel messages aren't received from a cross-partition iframe]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[017.html]
|
||||
expected: TIMEOUT
|
||||
[origin of the script that invoked the method, about:blank]
|
||||
expected: TIMEOUT
|
|
@ -1,4 +0,0 @@
|
|||
[localstorage-about-blank-3P-iframe-opens-3P-window.partitioned.tentative.html]
|
||||
expected: TIMEOUT
|
||||
[StorageKey: test 3P about:blank window opened from a 3P iframe]
|
||||
expected: TIMEOUT
|
164
tests/wpt/meta-legacy-layout/xhr/blob-range.any.js.ini
Normal file
164
tests/wpt/meta-legacy-layout/xhr/blob-range.any.js.ini
Normal file
|
@ -0,0 +1,164 @@
|
|||
[blob-range.any.worker.html]
|
||||
[A simple blob range request.]
|
||||
expected: FAIL
|
||||
|
||||
[A blob range request with no type.]
|
||||
expected: FAIL
|
||||
|
||||
[A blob range request with no end.]
|
||||
expected: FAIL
|
||||
|
||||
[A blob range request with no start.]
|
||||
expected: FAIL
|
||||
|
||||
[A simple blob range request with whitespace.]
|
||||
expected: FAIL
|
||||
|
||||
[Blob content with short content and a large range end]
|
||||
expected: FAIL
|
||||
|
||||
[Blob content with short content and a range end matching content length]
|
||||
expected: FAIL
|
||||
|
||||
[Blob range with whitespace before and after hyphen]
|
||||
expected: FAIL
|
||||
|
||||
[Blob range with whitespace after hyphen]
|
||||
expected: FAIL
|
||||
|
||||
[Blob range with whitespace around equals sign]
|
||||
expected: FAIL
|
||||
|
||||
[Blob range with no value]
|
||||
expected: FAIL
|
||||
|
||||
[Blob range with incorrect range header]
|
||||
expected: FAIL
|
||||
|
||||
[Blob range with incorrect range header #2]
|
||||
expected: FAIL
|
||||
|
||||
[Blob range with incorrect range header #3]
|
||||
expected: FAIL
|
||||
|
||||
[Blob range request with multiple range values]
|
||||
expected: FAIL
|
||||
|
||||
[Blob range request with multiple range values and whitespace]
|
||||
expected: FAIL
|
||||
|
||||
[Blob range request with trailing comma]
|
||||
expected: FAIL
|
||||
|
||||
[Blob range with no start or end]
|
||||
expected: FAIL
|
||||
|
||||
[Blob range request with short range end]
|
||||
expected: FAIL
|
||||
|
||||
[Blob range start should be an ASCII digit]
|
||||
expected: FAIL
|
||||
|
||||
[Blob range should have a dash]
|
||||
expected: FAIL
|
||||
|
||||
[Blob range end should be an ASCII digit]
|
||||
expected: FAIL
|
||||
|
||||
[Blob range should include '-']
|
||||
expected: FAIL
|
||||
|
||||
[Blob range should include '=']
|
||||
expected: FAIL
|
||||
|
||||
[Blob range should include 'bytes=']
|
||||
expected: FAIL
|
||||
|
||||
[Blob content with short content and a large range start]
|
||||
expected: FAIL
|
||||
|
||||
[Blob content with short content and a range start matching the content length]
|
||||
expected: FAIL
|
||||
|
||||
|
||||
[blob-range.any.html]
|
||||
[A simple blob range request.]
|
||||
expected: FAIL
|
||||
|
||||
[A blob range request with no type.]
|
||||
expected: FAIL
|
||||
|
||||
[A blob range request with no end.]
|
||||
expected: FAIL
|
||||
|
||||
[A blob range request with no start.]
|
||||
expected: FAIL
|
||||
|
||||
[A simple blob range request with whitespace.]
|
||||
expected: FAIL
|
||||
|
||||
[Blob content with short content and a large range end]
|
||||
expected: FAIL
|
||||
|
||||
[Blob content with short content and a range end matching content length]
|
||||
expected: FAIL
|
||||
|
||||
[Blob range with whitespace before and after hyphen]
|
||||
expected: FAIL
|
||||
|
||||
[Blob range with whitespace after hyphen]
|
||||
expected: FAIL
|
||||
|
||||
[Blob range with whitespace around equals sign]
|
||||
expected: FAIL
|
||||
|
||||
[Blob range with no value]
|
||||
expected: FAIL
|
||||
|
||||
[Blob range with incorrect range header]
|
||||
expected: FAIL
|
||||
|
||||
[Blob range with incorrect range header #2]
|
||||
expected: FAIL
|
||||
|
||||
[Blob range with incorrect range header #3]
|
||||
expected: FAIL
|
||||
|
||||
[Blob range request with multiple range values]
|
||||
expected: FAIL
|
||||
|
||||
[Blob range request with multiple range values and whitespace]
|
||||
expected: FAIL
|
||||
|
||||
[Blob range request with trailing comma]
|
||||
expected: FAIL
|
||||
|
||||
[Blob range with no start or end]
|
||||
expected: FAIL
|
||||
|
||||
[Blob range request with short range end]
|
||||
expected: FAIL
|
||||
|
||||
[Blob range start should be an ASCII digit]
|
||||
expected: FAIL
|
||||
|
||||
[Blob range should have a dash]
|
||||
expected: FAIL
|
||||
|
||||
[Blob range end should be an ASCII digit]
|
||||
expected: FAIL
|
||||
|
||||
[Blob range should include '-']
|
||||
expected: FAIL
|
||||
|
||||
[Blob range should include '=']
|
||||
expected: FAIL
|
||||
|
||||
[Blob range should include 'bytes=']
|
||||
expected: FAIL
|
||||
|
||||
[Blob content with short content and a large range start]
|
||||
expected: FAIL
|
||||
|
||||
[Blob content with short content and a range start matching the content length]
|
||||
expected: FAIL
|
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,2 @@
|
|||
[overlay-transition-dialog.html]
|
||||
expected: TIMEOUT
|
|
@ -502,3 +502,24 @@
|
|||
|
||||
[CSSImportRule interface: sheet.cssRules[0\] must inherit property "supportsText" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleRule interface: existence and properties of interface object]
|
||||
expected: FAIL
|
||||
|
||||
[CSSStyleRule interface: existence and properties of interface prototype object]
|
||||
expected: FAIL
|
||||
|
||||
[CSSGroupingRule interface: sheet.cssRules[4\] must inherit property "cssRules" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSGroupingRule interface: sheet.cssRules[4\] must inherit property "insertRule(CSSOMString, optional unsigned long)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSGroupingRule interface: calling insertRule(CSSOMString, optional unsigned long) on sheet.cssRules[4\] with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[CSSGroupingRule interface: sheet.cssRules[4\] must inherit property "deleteRule(unsigned long)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CSSGroupingRule interface: calling deleteRule(unsigned long) on sheet.cssRules[4\] with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
|
|
@ -4,11 +4,11 @@
|
|||
<script src="/resources/testdriver.js"></script>
|
||||
<script src="/resources/testdriver-vendor.js"></script>
|
||||
<script src="/resources/testdriver-actions.js"></script>
|
||||
<script src="resources/helpers.js"></script>
|
||||
|
||||
<div id='d' style='height: 100px; width: 100px'></div>
|
||||
<body>
|
||||
<script>
|
||||
// *not* \uu001B; see https://w3c.github.io/webdriver/#keyboard-actions
|
||||
const ESC = '\uE00C';
|
||||
// TODO(domenic): maybe update createRecordingCloseWatcher() to allow passing args and use it?
|
||||
|
||||
test(() => {
|
||||
let watcher = new CloseWatcher({ signal: AbortSignal.abort() });
|
||||
|
@ -60,7 +60,7 @@ promise_test(async () => {
|
|||
watcher.oncancel = () => oncancel_called = true;
|
||||
watcher.onclose = () => onclose_called = true;
|
||||
|
||||
await test_driver.send_keys(document.getElementById('d'), ESC);
|
||||
await sendCloseRequest();
|
||||
|
||||
assert_false(oncancel_called);
|
||||
assert_false(onclose_called);
|
||||
|
@ -75,7 +75,7 @@ promise_test(async t => {
|
|||
watcher.onclose = () => onclose_called = true;
|
||||
|
||||
controller.abort();
|
||||
await test_driver.send_keys(document.getElementById('d'), ESC);
|
||||
await sendCloseRequest();
|
||||
|
||||
assert_false(oncancel_called);
|
||||
assert_false(onclose_called);
|
||||
|
@ -89,7 +89,7 @@ promise_test(async t => {
|
|||
watcher.oncancel = () => oncancel_call_count_++;
|
||||
watcher.onclose = () => onclose_call_count_++;
|
||||
|
||||
await test_driver.send_keys(document.getElementById('d'), ESC);
|
||||
await sendCloseRequest();
|
||||
controller.abort();
|
||||
|
||||
assert_equals(oncancel_call_count_, 0);
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<script src="/resources/testdriver-actions.js"></script>
|
||||
<script src="resources/helpers.js"></script>
|
||||
|
||||
<div id='d' style='height: 100px; width: 100px'></div>
|
||||
<body>
|
||||
<script>
|
||||
test(t => {
|
||||
let events = [];
|
||||
|
@ -65,18 +65,18 @@ promise_test(async t => {
|
|||
let watcher = createRecordingCloseWatcher(t, events);
|
||||
|
||||
watcher.destroy();
|
||||
await sendCloseSignal();
|
||||
await sendCloseRequest();
|
||||
|
||||
assert_array_equals(events, []);
|
||||
}, "destroy() then close signal fires no events");
|
||||
}, "destroy() then close request fires no events");
|
||||
|
||||
promise_test(async t => {
|
||||
let events = [];
|
||||
let watcher = createRecordingCloseWatcher(t, events);
|
||||
|
||||
await sendCloseSignal();
|
||||
await sendCloseRequest();
|
||||
watcher.destroy();
|
||||
|
||||
assert_array_equals(events, ["close"]);
|
||||
}, "Close signal then destroy() fires only one close event");
|
||||
}, "Close request then destroy() fires only one close event");
|
||||
</script>
|
||||
|
|
|
@ -8,12 +8,12 @@
|
|||
|
||||
<!--
|
||||
Tests in this file are around the interaction of the Esc key specifically, not
|
||||
the general concept of close signals. Ideally, all other tests would work
|
||||
as-is if you changed the implementation of sendCloseSignal(). These tests
|
||||
assume that Esc is the close signal for the platform being tested.
|
||||
the general concept of close requests. Ideally, all other tests would work
|
||||
as-is if you changed the implementation of sendCloseRequest(). These tests
|
||||
assume that Esc is the close request for the platform being tested.
|
||||
-->
|
||||
|
||||
<div id='d' style='height: 100px; width: 100px'></div>
|
||||
<body>
|
||||
<script>
|
||||
promise_test(async t => {
|
||||
let events = [];
|
||||
|
@ -33,7 +33,7 @@ promise_test(async t => {
|
|||
await sendEscKey();
|
||||
|
||||
assert_array_equals(events, []);
|
||||
}, "A keydown listener can prevent the Esc keypress from being interpreted as a close signal");
|
||||
}, "A keydown listener can prevent the Esc keypress from being interpreted as a close request");
|
||||
|
||||
promise_test(async t => {
|
||||
let events = [];
|
||||
|
@ -44,7 +44,7 @@ promise_test(async t => {
|
|||
await sendEscKey();
|
||||
|
||||
assert_array_equals(events, []);
|
||||
}, "A keyup listener can prevent the Esc keypress from being interpreted as a close signal");
|
||||
}, "A keyup listener can prevent the Esc keypress from being interpreted as a close request");
|
||||
|
||||
promise_test(async t => {
|
||||
let events = [];
|
||||
|
@ -55,7 +55,7 @@ promise_test(async t => {
|
|||
await sendEscKey();
|
||||
|
||||
assert_array_equals(events, []);
|
||||
}, "A keypress listener can prevent the Esc keypress from being interpreted as a close signal");
|
||||
}, "A keypress listener can prevent the Esc keypress from being interpreted as a close request");
|
||||
|
||||
test(t => {
|
||||
let events = [];
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<script src="/resources/testdriver-actions.js"></script>
|
||||
<script src="resources/helpers.js"></script>
|
||||
|
||||
<div id='d' style='height: 100px; width: 100px'></div>
|
||||
<body>
|
||||
<script>
|
||||
promise_test(async t => {
|
||||
let closeEvent, cancelEvent;
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<script src="/resources/testdriver-actions.js"></script>
|
||||
<script src="resources/helpers.js"></script>
|
||||
|
||||
<div id='d' style='height: 100px; width: 100px'></div>
|
||||
<body>
|
||||
<script>
|
||||
promise_test(async t => {
|
||||
let events = [];
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
<script src="/resources/testdriver.js"></script>
|
||||
<script src="/resources/testdriver-vendor.js"></script>
|
||||
<script src="/resources/testdriver-actions.js"></script>
|
||||
<script src="resources/helpers.js"></script>
|
||||
|
||||
<button id=b0>b0</button>
|
||||
|
||||
|
@ -20,8 +21,6 @@
|
|||
</div>
|
||||
|
||||
<script>
|
||||
const escapeKey = '\uE00C';
|
||||
|
||||
promise_test(async () => {
|
||||
p1.showPopover();
|
||||
await test_driver.click(b1);
|
||||
|
@ -31,12 +30,12 @@ promise_test(async () => {
|
|||
assert_true(p2.matches(':popover-open'), 'p2 should be open.');
|
||||
assert_true(p3.matches(':popover-open'), 'p3 should be open.');
|
||||
|
||||
await test_driver.send_keys(p3, escapeKey);
|
||||
await sendCloseRequest();
|
||||
assert_true(p1.matches(':popover-open'), 'first escape: p1 should be open.');
|
||||
assert_false(p2.matches(':popover-open'), 'first escape: p2 should be closed.');
|
||||
assert_false(p3.matches(':popover-open'), 'first escape: p3 should be closed.');
|
||||
|
||||
await test_driver.send_keys(p1, escapeKey);
|
||||
await sendCloseRequest();
|
||||
assert_false(p1.matches(':popover-open'), 'second escape: p1 should be closed.');
|
||||
assert_false(p2.matches(':popover-open'), 'second escape: p2 should be closed.');
|
||||
assert_false(p3.matches(':popover-open'), 'second escape: p3 should be closed.');
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
<script src="/resources/testdriver.js"></script>
|
||||
<script src="/resources/testdriver-vendor.js"></script>
|
||||
<script src="/resources/testdriver-actions.js"></script>
|
||||
<script src="resources/helpers.js"></script>
|
||||
|
||||
<button id=b0>b0</button>
|
||||
|
||||
|
@ -20,8 +21,6 @@
|
|||
</div>
|
||||
|
||||
<script>
|
||||
const escapeKey = '\uE00C';
|
||||
|
||||
promise_test(async () => {
|
||||
p1.showPopover();
|
||||
p2.showPopover();
|
||||
|
@ -30,11 +29,11 @@ promise_test(async () => {
|
|||
assert_true(p2.matches(':popover-open'), 'p2 should be open.');
|
||||
assert_true(p3.matches(':popover-open'), 'p3 should be open.');
|
||||
|
||||
await test_driver.send_keys(p3, escapeKey);
|
||||
await sendCloseRequest();
|
||||
assert_false(p1.matches(':popover-open'), 'p1 should be closed.');
|
||||
assert_false(p2.matches(':popover-open'), 'p2 should be closed.');
|
||||
assert_false(p3.matches(':popover-open'), 'p3 should be closed.');
|
||||
}, 'Opening multiple popovers without user activation causes them all to be closed with one close signal.');
|
||||
}, 'Opening multiple popovers without user activation causes them all to be closed with one close request.');
|
||||
|
||||
promise_test(async () => {
|
||||
await test_driver.click(b0);
|
||||
|
@ -47,19 +46,19 @@ promise_test(async () => {
|
|||
assert_true(p2.matches(':popover-open'), 'p2 should be open.');
|
||||
assert_true(p3.matches(':popover-open'), 'p3 should be open.');
|
||||
|
||||
await test_driver.send_keys(p3, escapeKey);
|
||||
await sendCloseRequest();
|
||||
assert_true(p1.matches(':popover-open'), 'first escape: p1 should be open.');
|
||||
assert_true(p2.matches(':popover-open'), 'first escape: p2 should be open.');
|
||||
assert_false(p3.matches(':popover-open'), 'first escape: p3 should be closed.');
|
||||
|
||||
await test_driver.send_keys(p2, escapeKey);
|
||||
await sendCloseRequest();
|
||||
assert_true(p1.matches(':popover-open'), 'second escape: p1 should be open.');
|
||||
assert_false(p2.matches(':popover-open'), 'second escape: p2 should be closed.');
|
||||
assert_false(p3.matches(':popover-open'), 'second escape: p3 should be closed.');
|
||||
|
||||
await test_driver.send_keys(p1, escapeKey);
|
||||
await sendCloseRequest();
|
||||
assert_false(p1.matches(':popover-open'), 'third escape: p1 should be closed.');
|
||||
assert_false(p2.matches(':popover-open'), 'third escape: p2 should be closed.');
|
||||
assert_false(p3.matches(':popover-open'), 'third escape: p3 should be closed.');
|
||||
}, 'Opening multiple popovers with user activation should close one at a time with close signals.');
|
||||
}, 'Opening multiple popovers with user activation should close one at a time with close requests.');
|
||||
</script>
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
// TODO(domenic): consider using these in all test files.
|
||||
|
||||
window.createRecordingCloseWatcher = (t, events, name) => {
|
||||
const prefix = name === undefined ? "" : name + " ";;
|
||||
|
||||
|
@ -16,15 +14,16 @@ window.createBlessedRecordingCloseWatcher = (t, events, name) => {
|
|||
};
|
||||
|
||||
window.sendEscKey = () => {
|
||||
// *not* \uu001B; see https://w3c.github.io/webdriver/#keyboard-actions
|
||||
const ESC = '\uE00C';
|
||||
|
||||
return test_driver.send_keys(document.getElementById("d"), ESC);
|
||||
// Esc is \uE00C, *not* \uu001B; see https://w3c.github.io/webdriver/#keyboard-actions.
|
||||
//
|
||||
// It's important to target document.body, and not any element that might stop receiving events
|
||||
// if a popover or dialog is making that element inert.
|
||||
return test_driver.send_keys(document.body, '\uE00C');
|
||||
};
|
||||
|
||||
// For now, we always use the Esc keypress as our close signal. In
|
||||
// For now, we always use the Esc keypress as our close request. In
|
||||
// theory, in the future, we could add a WebDriver command or similar
|
||||
// for the close signal, which would allow different tests on platforms
|
||||
// with different close signals. In that case, we'd update this
|
||||
// for the close request, which would allow different tests on platforms
|
||||
// with different close requests. In that case, we'd update this
|
||||
// function, but not update the sendEscKey function above.
|
||||
window.sendCloseSignal = window.sendEscKey;
|
||||
window.sendCloseRequest = window.sendEscKey;
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<script src="/resources/testdriver-actions.js"></script>
|
||||
<script src="resources/helpers.js"></script>
|
||||
|
||||
<div id="d" style="height: 100px; width: 100px;"></div>
|
||||
<body>
|
||||
<script>
|
||||
|
||||
// This test needs to be separate from user-activation.html since, unlike those,
|
||||
|
@ -23,10 +23,10 @@ promise_test(async t => {
|
|||
createRecordingCloseWatcher(t, events, "activationWatcher2");
|
||||
});
|
||||
|
||||
await sendCloseSignal();
|
||||
await sendCloseRequest();
|
||||
assert_array_equals(events, ["activationWatcher2 close", "activationWatcher1 close"]);
|
||||
|
||||
await sendCloseSignal();
|
||||
await sendCloseRequest();
|
||||
assert_array_equals(events, ["activationWatcher2 close", "activationWatcher1 close", "freeWatcher close"]);
|
||||
}, "Multiple CloseWatchers created from a single user activation close together, but original free CloseWatcher closes separately");
|
||||
</script>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<script src="/resources/testdriver-actions.js"></script>
|
||||
<script src="resources/helpers.js"></script>
|
||||
|
||||
<div id="d" style="height: 100px; width: 100px;"></div>
|
||||
<body>
|
||||
<script>
|
||||
promise_test(async t => {
|
||||
const events = [];
|
||||
|
@ -41,20 +41,20 @@ promise_test(async t => {
|
|||
const events = [];
|
||||
const freeWatcher = createRecordingCloseWatcher(t, events, "freeWatcher");
|
||||
|
||||
await test_driver.bless("grant user activation", () => sendCloseSignal());
|
||||
await test_driver.bless("grant user activation", () => sendCloseRequest());
|
||||
|
||||
assert_array_equals(events, ["freeWatcher cancel", "freeWatcher close"]);
|
||||
}, "CloseWatchers created without user activation, but closed via a close signal after user activation, fires cancel");
|
||||
}, "CloseWatchers created without user activation, but closed via a close request after user activation, fires cancel");
|
||||
|
||||
promise_test(async t => {
|
||||
const events = [];
|
||||
const freeWatcher = createRecordingCloseWatcher(t, events, "freeWatcher");
|
||||
freeWatcher.addEventListener("cancel", e => e.preventDefault());
|
||||
|
||||
await test_driver.bless("grant user activation", () => sendCloseSignal());
|
||||
await test_driver.bless("grant user activation", () => sendCloseRequest());
|
||||
|
||||
assert_array_equals(events, ["freeWatcher cancel"]);
|
||||
}, "CloseWatchers created without user activation, but closed via a close signal after user activation, fires cancel, which can be preventDefault()ed");
|
||||
}, "CloseWatchers created without user activation, but closed via a close request after user activation, fires cancel, which can be preventDefault()ed");
|
||||
|
||||
promise_test(async t => {
|
||||
const events = [];
|
||||
|
@ -62,7 +62,7 @@ promise_test(async t => {
|
|||
createRecordingCloseWatcher(t, events, "watcher1");
|
||||
createRecordingCloseWatcher(t, events, "watcher2");
|
||||
|
||||
await sendCloseSignal();
|
||||
await sendCloseRequest();
|
||||
assert_array_equals(events, ["watcher2 close", "watcher1 close", "freeWatcher close"]);
|
||||
}, "Multiple CloseWatchers created without user activation close together (with no cancel)");
|
||||
|
||||
|
@ -71,10 +71,10 @@ promise_test(async t => {
|
|||
createRecordingCloseWatcher(t, events, "freeWatcher");
|
||||
await createBlessedRecordingCloseWatcher(t, events, "activationWatcher");
|
||||
|
||||
await sendCloseSignal();
|
||||
await sendCloseRequest();
|
||||
assert_array_equals(events, ["activationWatcher close"]);
|
||||
|
||||
await sendCloseSignal();
|
||||
await sendCloseRequest();
|
||||
assert_array_equals(events, ["activationWatcher close", "freeWatcher close"]);
|
||||
}, "Creating a CloseWatcher from user activation keeps it separate from the free CloseWatcher, but they don't fire cancel");
|
||||
|
||||
|
@ -95,12 +95,12 @@ promise_test(async t => {
|
|||
const freeWatcher = createRecordingCloseWatcher(t, events, "freeWatcher");
|
||||
const activationWatcher = await createBlessedRecordingCloseWatcher(t, events, "activationWatcher");
|
||||
|
||||
await test_driver.bless("grant user activation", () => sendCloseSignal());
|
||||
await test_driver.bless("grant user activation", () => sendCloseRequest());
|
||||
assert_array_equals(events, ["activationWatcher cancel", "activationWatcher close"]);
|
||||
|
||||
await test_driver.bless("grant user activation", () => sendCloseSignal());
|
||||
await test_driver.bless("grant user activation", () => sendCloseRequest());
|
||||
assert_array_equals(events, ["activationWatcher cancel", "activationWatcher close", "freeWatcher cancel", "freeWatcher close"]);
|
||||
}, "Creating a CloseWatcher from user activation, and closing CloseWatchers with a close signal after user activation, fires cancel");
|
||||
}, "Creating a CloseWatcher from user activation, and closing CloseWatchers with a close request after user activation, fires cancel");
|
||||
|
||||
promise_test(async t => {
|
||||
const events = [];
|
||||
|
@ -108,10 +108,10 @@ promise_test(async t => {
|
|||
await createBlessedRecordingCloseWatcher(t, events, "activationWatcher1");
|
||||
await createBlessedRecordingCloseWatcher(t, events, "activationWatcher2");
|
||||
|
||||
await sendCloseSignal();
|
||||
await sendCloseRequest();
|
||||
assert_array_equals(events, ["activationWatcher2 close"]);
|
||||
|
||||
await sendCloseSignal();
|
||||
await sendCloseRequest();
|
||||
assert_array_equals(events, ["activationWatcher2 close", "activationWatcher1 close"]);
|
||||
}, "Multiple CloseWatchers created with user activation close in reverse order");
|
||||
|
||||
|
@ -123,16 +123,16 @@ promise_test(async t => {
|
|||
await createBlessedRecordingCloseWatcher(t, events, "activationWatcher3");
|
||||
createRecordingCloseWatcher(t, events, "watcher4");
|
||||
|
||||
await sendCloseSignal();
|
||||
await sendCloseRequest();
|
||||
assert_array_equals(events, ["watcher4 close", "activationWatcher3 close"]);
|
||||
|
||||
await sendCloseSignal();
|
||||
await sendCloseRequest();
|
||||
assert_array_equals(events, ["watcher4 close", "activationWatcher3 close", "activationWatcher2 close"]);
|
||||
|
||||
await sendCloseSignal();
|
||||
await sendCloseRequest();
|
||||
assert_array_equals(events, ["watcher4 close", "activationWatcher3 close", "activationWatcher2 close", "activationWatcher1 close"]);
|
||||
|
||||
await sendCloseSignal();
|
||||
await sendCloseRequest();
|
||||
assert_array_equals(events, ["watcher4 close", "activationWatcher3 close", "activationWatcher2 close", "activationWatcher1 close", "freeWatcher close"]);
|
||||
}, "3 user activations let you have 3 + 1 = 4 ungrouped close watchers/0 cancel events");
|
||||
|
||||
|
@ -162,9 +162,9 @@ promise_test(async t => {
|
|||
|
||||
const freeWatcher2 = createRecordingCloseWatcher(t, events, "freeWatcher2");
|
||||
|
||||
await sendCloseSignal();
|
||||
await sendCloseRequest();
|
||||
assert_array_equals(events, ["freeWatcher2 close"]);
|
||||
}, "destroy()ing the free CloseWatcher allows a new free one to be created without user activation, and it receives the close signal");
|
||||
}, "destroy()ing the free CloseWatcher allows a new free one to be created without user activation, and it receives the close request");
|
||||
|
||||
promise_test(async t => {
|
||||
const events = [];
|
||||
|
@ -175,32 +175,32 @@ promise_test(async t => {
|
|||
|
||||
const freeWatcher2 = createRecordingCloseWatcher(t, events, "freeWatcher2");
|
||||
|
||||
await sendCloseSignal();
|
||||
await sendCloseRequest();
|
||||
assert_array_equals(events, ["freeWatcher1 close", "freeWatcher2 close"]);
|
||||
}, "requestClose()ing the free CloseWatcher allows a new free one to be created without user activation, and it receives the close signal");
|
||||
}, "requestClose()ing the free CloseWatcher allows a new free one to be created without user activation, and it receives the close request");
|
||||
|
||||
promise_test(async t => {
|
||||
const events = [];
|
||||
const freeWatcher1 = createRecordingCloseWatcher(t, events, "freeWatcher1");
|
||||
|
||||
await sendCloseSignal();
|
||||
await sendCloseRequest();
|
||||
assert_array_equals(events, ["freeWatcher1 close"]);
|
||||
|
||||
const freeWatcher2 = createRecordingCloseWatcher(t, events, "freeWatcher2");
|
||||
|
||||
await sendCloseSignal();
|
||||
await sendCloseRequest();
|
||||
assert_array_equals(events, ["freeWatcher1 close", "freeWatcher2 close"]);
|
||||
}, "closing the free CloseWatcher via a close signal allows a new free one to be created without user activation, and it receives a second close signal");
|
||||
}, "closing the free CloseWatcher via a close request allows a new free one to be created without user activation, and it receives a second close request");
|
||||
|
||||
promise_test(async t => {
|
||||
const events = [];
|
||||
const activationWatcher = await createBlessedRecordingCloseWatcher(t, events, "activationWatcher");
|
||||
const freeWatcher = createRecordingCloseWatcher(t, events, "freeWatcher");
|
||||
|
||||
await sendCloseSignal();
|
||||
await sendCloseRequest();
|
||||
assert_array_equals(events, ["freeWatcher close"]);
|
||||
|
||||
await sendCloseSignal();
|
||||
await sendCloseRequest();
|
||||
assert_array_equals(events, ["freeWatcher close", "activationWatcher close"]);
|
||||
}, "The second watcher can be the free watcher, if the first is created with user activation");
|
||||
|
||||
|
@ -210,13 +210,13 @@ promise_test(async t => {
|
|||
const activationWatcher2 = await createBlessedRecordingCloseWatcher(t, events, "activationWatcher2");
|
||||
const freeWatcher = createRecordingCloseWatcher(t, events, "freeWatcher");
|
||||
|
||||
await sendCloseSignal();
|
||||
await sendCloseRequest();
|
||||
assert_array_equals(events, ["freeWatcher close"]);
|
||||
|
||||
await sendCloseSignal();
|
||||
await sendCloseRequest();
|
||||
assert_array_equals(events, ["freeWatcher close", "activationWatcher2 close"]);
|
||||
|
||||
await sendCloseSignal();
|
||||
await sendCloseRequest();
|
||||
assert_array_equals(events, ["freeWatcher close", "activationWatcher2 close", "activationWatcher1 close"]);
|
||||
}, "The third watcher can be the free watcher, if the first two are created with user activation");
|
||||
</script>
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
This directory contains (tentative) tests for the
|
||||
[Compute Pressure](https://wicg.github.io/compute-pressure/) specification.
|
||||
[Compute Pressure](https://w3c.github.io/compute-pressure/) specification.
|
||||
|
|
|
@ -39,7 +39,7 @@ pressure_test((t, mockPressureService) => {
|
|||
mockPressureService.setPressureUpdate('cpu', 'critical');
|
||||
mockPressureService.startPlatformCollector(/*sampleRate=*/ 5.0);
|
||||
|
||||
return promise_rejects_dom(t, 'NotSupportedError', promise);
|
||||
return promise_rejects_dom(t, 'AbortError', promise);
|
||||
}, 'Removing observer before observe() resolves works');
|
||||
|
||||
pressure_test(async (t, mockPressureService) => {
|
||||
|
|
|
@ -14,7 +14,7 @@ pressure_test(async (t, mockPressureService) => {
|
|||
const promise = observer1.observe('cpu');
|
||||
observer1.disconnect();
|
||||
observer1.disconnect();
|
||||
await promise_rejects_dom(t, 'NotSupportedError', promise);
|
||||
await promise_rejects_dom(t, 'AbortError', promise);
|
||||
|
||||
const observer2_changes = [];
|
||||
await new Promise((resolve, reject) => {
|
||||
|
|
|
@ -13,7 +13,7 @@ pressure_test(async (t, mockPressureService) => {
|
|||
// Ensure that observer1's schema gets registered before observer2 starts.
|
||||
const promise = observer1.observe('cpu');
|
||||
observer1.disconnect();
|
||||
await promise_rejects_dom(t, 'NotSupportedError', promise);
|
||||
await promise_rejects_dom(t, 'AbortError', promise);
|
||||
|
||||
const observer2_changes = [];
|
||||
await new Promise((resolve, reject) => {
|
||||
|
@ -53,7 +53,7 @@ pressure_test(async (t, mockPressureService) => {
|
|||
const promise = observer1.observe('cpu');
|
||||
observer2.observe('cpu');
|
||||
observer1.disconnect();
|
||||
await promise_rejects_dom(t, 'NotSupportedError', promise);
|
||||
await promise_rejects_dom(t, 'AbortError', promise);
|
||||
mockPressureService.setPressureUpdate('cpu', 'critical');
|
||||
mockPressureService.startPlatformCollector(/*sampleRate=*/ 5.0);
|
||||
});
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// META: script=/resources/idlharness.js
|
||||
// META: global=window,dedicatedworker,sharedworker
|
||||
|
||||
// https://wicg.github.io/compute-pressure/
|
||||
// https://w3c.github.io/compute-pressure/
|
||||
|
||||
'use strict';
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<!DOCTYPE html>
|
||||
<title>Test that compute-pressure is advertised in the feature list</title>
|
||||
<link rel="help" href="https://w3c.github.io/webappsec-permissions-policy/#dom-permissions-policy-features">
|
||||
<link rel="help" href="https://wicg.github.io/compute-pressure/#policy-control">
|
||||
<link rel="help" href="https://w3c.github.io/compute-pressure/#policy-control">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script>
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue