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:
Servo WPT Sync 2023-08-08 00:24:47 -04:00 committed by GitHub
parent 1346c34083
commit 2fe0413b72
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
810 changed files with 17776 additions and 6309 deletions

View file

@ -7,7 +7,7 @@
expected: FAIL expected: FAIL
[Opening a blob URL in a new window immediately before revoking it works.] [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.] [Opening a blob URL in a noopener about:blank window immediately before revoking it works.]
expected: TIMEOUT expected: TIMEOUT

View file

@ -0,0 +1,2 @@
[font-size-adjust-012.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[font-size-adjust-013.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[font-size-adjust-014.html]
expected: FAIL

View file

@ -43,3 +43,6 @@
[Property font-size-adjust value 'ic-height from-font'] [Property font-size-adjust value 'ic-height from-font']
expected: FAIL expected: FAIL
[CSS Fonts Module Level 5: getComputedStyle().fontSizeAdjust]
expected: FAIL

View file

@ -0,0 +1,2 @@
[overlay-transition-dialog.html]
expected: TIMEOUT

View file

@ -5,3 +5,5 @@
[Property word-break value 'break-word'] [Property word-break value 'break-word']
expected: FAIL expected: FAIL
[Property word-break value 'auto-phrase']
expected: FAIL

View file

@ -2,3 +2,5 @@
[e.style['word-break'\] = "break-word" should set the property value] [e.style['word-break'\] = "break-word" should set the property value]
expected: FAIL expected: FAIL
[e.style['word-break'\] = "auto-phrase" should set the property value]
expected: FAIL

View file

@ -0,0 +1,2 @@
[word-break-auto-phrase-intrinsic-001.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[word-break-auto-phrase-overflow-001.html]
expected: FAIL

View file

@ -376,3 +376,333 @@
[calc(rem(3px + 0%, 2px + 0%)) should be used-value-equivalent to 1px] [calc(rem(3px + 0%, 2px + 0%)) should be used-value-equivalent to 1px]
expected: FAIL 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

View file

@ -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

View file

@ -547,3 +547,24 @@
[CSSImportRule interface: sheet.cssRules[0\] must inherit property "supportsText" with the proper type] [CSSImportRule interface: sheet.cssRules[0\] must inherit property "supportsText" with the proper type]
expected: FAIL 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

View file

@ -20,3 +20,9 @@
[Toggling "disabled" attribute on a <fieldset> does not trigger a callback on disabled custom element descendant] [Toggling "disabled" attribute on a <fieldset> does not trigger a callback on disabled custom element descendant]
expected: FAIL 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

View file

@ -146,6 +146,3 @@
[list-style-image sec-fetch-site - HTTPS downgrade-upgrade] [list-style-image sec-fetch-site - HTTPS downgrade-upgrade]
expected: FAIL expected: FAIL
[background-image sec-fetch-site - HTTPS downgrade (header not sent)]
expected: TIMEOUT

View file

@ -5,9 +5,6 @@
[private to local: failure.] [private to local: failure.]
expected: FAIL expected: FAIL
[private to private: success.]
expected: FAIL
[public to local: failure.] [public to local: failure.]
expected: FAIL expected: FAIL

View file

@ -83,6 +83,9 @@
[Blob content with short content and a range start matching the content length] [Blob content with short content and a range start matching the content length]
expected: FAIL expected: FAIL
[A blob range request with no type.]
expected: FAIL
[blob.any.html] [blob.any.html]
[A simple blob range request.] [A simple blob range request.]
@ -168,3 +171,6 @@
[Blob content with short content and a range start matching the content length] [Blob content with short content and a range start matching the content length]
expected: FAIL expected: FAIL
[A blob range request with no type.]
expected: FAIL

View file

@ -1,13 +1,12 @@
[failure-check-sequence.https.html] [failure-check-sequence.https.html]
expected: TIMEOUT
[CSP check precedes COEP check - CSP header first] [CSP check precedes COEP check - CSP header first]
expected: NOTRUN expected: FAIL
[COEP check precedes X-Frame-Options check] [COEP check precedes X-Frame-Options check]
expected: NOTRUN expected: FAIL
[CSP check precedes COEP check - COEP header first] [CSP check precedes COEP check - COEP header first]
expected: NOTRUN expected: FAIL
[CSP check precedes X-Frame-Options check] [CSP check precedes X-Frame-Options check]
expected: TIMEOUT expected: FAIL

View file

@ -1,5 +1,4 @@
[iframe-src-aboutblank-navigate-immediately.html] [iframe-src-aboutblank-navigate-immediately.html]
expected: TIMEOUT
[Navigating to a different document with window.open] [Navigating to a different document with window.open]
expected: FAIL expected: FAIL
@ -7,4 +6,4 @@
expected: FAIL expected: FAIL
[Navigating to a different document with form submission] [Navigating to a different document with form submission]
expected: TIMEOUT expected: FAIL

View file

@ -1,10 +1,6 @@
[javascript-url-referrer.window.html] [javascript-url-referrer.window.html]
expected: TIMEOUT
[unsafe-url referrer policy used to create the starting page] [unsafe-url referrer policy used to create the starting page]
expected: FAIL expected: FAIL
[origin referrer policy used to create the starting page] [origin referrer policy used to create the starting page]
expected: FAIL expected: FAIL
[no-referrer referrer policy used to create the starting page]
expected: TIMEOUT

View file

@ -13,9 +13,3 @@
[0080 00FF 0100 set in href="" targeting a frame and clicked] [0080 00FF 0100 set in href="" targeting a frame and clicked]
expected: FAIL 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

View file

@ -1,3 +0,0 @@
[navigation-unload-cross-origin.sub.window.html]
[Cross-origin navigation started from unload handler must be ignored]
expected: FAIL

View file

@ -1,3 +0,0 @@
[navigation-unload-same-origin.window.html]
[Same-origin navigation started from unload handler must be ignored]
expected: FAIL

View file

@ -1,3 +1,4 @@
[nav-cancelation-2.sub.html] [nav-cancelation-2.sub.html]
expected: TIMEOUT
[grandparent cancels a pending navigation in a cross-origin grandchild] [grandparent cancels a pending navigation in a cross-origin grandchild]
expected: FAIL expected: TIMEOUT

View file

@ -1,5 +1,4 @@
[cross-origin-objects.html] [cross-origin-objects.html]
expected: TIMEOUT
[Basic sanity-checking (cross-origin)] [Basic sanity-checking (cross-origin)]
expected: FAIL expected: FAIL

View file

@ -0,0 +1,3 @@
[creating_browsing_context_test_01.html]
[first argument: absolute url]
expected: FAIL

View file

@ -0,0 +1,3 @@
[2d.layer.beginLayer-options.html]
[Checks beginLayer works for different option parameter values]
expected: FAIL

View file

@ -0,0 +1,3 @@
[2d.layer.exceptions-are-no-op.html]
[Checks that the context state is left unchanged if beginLayer throws.]
expected: FAIL

View file

@ -0,0 +1,3 @@
[2d.text.font.weight.html]
[Canvas test: 2d.text.font.weight]
expected: FAIL

View file

@ -0,0 +1,3 @@
[2d.layer.beginLayer-options.html]
[Checks beginLayer works for different option parameter values]
expected: FAIL

View file

@ -0,0 +1,3 @@
[2d.layer.beginLayer-options.worker.html]
[Checks beginLayer works for different option parameter values]
expected: FAIL

View file

@ -0,0 +1,3 @@
[2d.layer.exceptions-are-no-op.html]
[Checks that the context state is left unchanged if beginLayer throws.]
expected: FAIL

View file

@ -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

View file

@ -0,0 +1,3 @@
[2d.text.font.weight.html]
[OffscreenCanvas test: 2d.text.font.weight]
expected: FAIL

View file

@ -0,0 +1,3 @@
[2d.text.font.weight.worker.html]
[2d]
expected: FAIL

View file

@ -0,0 +1,2 @@
[details-display-type-001.tentative.html]
expected: FAIL

View file

@ -1,4 +1,5 @@
[iframe_sandbox_popups_nonescaping-2.html] [iframe_sandbox_popups_nonescaping-2.html]
type: testharness type: testharness
expected: TIMEOUT
[Check that popups from a sandboxed iframe do not escape the sandbox] [Check that popups from a sandboxed iframe do not escape the sandbox]
expected: FAIL expected: NOTRUN

View file

@ -1,4 +1,3 @@
[iframe_sandbox_popups_nonescaping-3.html] [iframe_sandbox_popups_nonescaping-3.html]
expected: TIMEOUT
[Check that popups from a sandboxed iframe do not escape the sandbox] [Check that popups from a sandboxed iframe do not escape the sandbox]
expected: NOTRUN expected: FAIL

View file

@ -181,3 +181,6 @@
[text/plain: 0x00 in name (normal form)] [text/plain: 0x00 in name (normal form)]
expected: FAIL expected: FAIL
[text/plain: Basic test (formdata event)]
expected: FAIL

View file

@ -0,0 +1,2 @@
[selectmenu-font-size.tentative.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[selectmenu-rtl.tentative.html]
expected: FAIL

View file

@ -13,3 +13,27 @@
[mutation event and toggle event order matches tree order] [mutation event and toggle event order matches tree order]
expected: FAIL 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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -0,0 +1,2 @@
[import-css-module-basic.html]
expected: ERROR

View file

@ -0,0 +1,2 @@
[import-css-module-dynamic.html]
expected: ERROR

View file

@ -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

View file

@ -0,0 +1,2 @@
[referrer-policies.sub.html]
expected: ERROR

View file

@ -1,2 +1,3 @@
[integrity.html] [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

View file

@ -1,5 +1,3 @@
[unsupported-assertion.html] [unsupported-assertion.html]
expected: ERROR
[Test that no error occurs when an unsupported import assertion is provided.] [Test that no error occurs when an unsupported import assertion is provided.]
expected: FAIL expected: FAIL

View file

@ -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

View file

@ -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

View file

@ -0,0 +1,3 @@
[invalid-type-attribute-error.html]
[Test that invalid module type attribute leads to TypeError on window.]
expected: FAIL

View file

@ -0,0 +1,8 @@
[charset-bom.any.worker.html]
expected: ERROR
[charset-bom.any.sharedworker.html]
expected: ERROR
[charset-bom.any.html]
expected: ERROR

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -0,0 +1,4 @@
[module.html]
expected: ERROR
[JSON modules]
expected: NOTRUN

View file

@ -0,0 +1,8 @@
[non-object.any.worker.html]
expected: ERROR
[non-object.any.sharedworker.html]
expected: ERROR
[non-object.any.html]
expected: ERROR

View file

@ -0,0 +1,4 @@
[parse-error.html]
expected: TIMEOUT
[JSON modules: parse error]
expected: TIMEOUT

View file

@ -0,0 +1,2 @@
[referrer-policies.sub.html]
expected: ERROR

View file

@ -0,0 +1,8 @@
[repeated-imports.any.sharedworker.html]
expected: ERROR
[repeated-imports.any.worker.html]
expected: ERROR
[repeated-imports.any.html]
expected: ERROR

View file

@ -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

View file

@ -1,19 +1,18 @@
[promise-job-entry.html] [promise-job-entry.html]
expected: TIMEOUT
[Fulfillment handler on fulfilled promise] [Fulfillment handler on fulfilled promise]
expected: TIMEOUT expected: FAIL
[Rejection handler on pending-then-rejected promise] [Rejection handler on pending-then-rejected promise]
expected: FAIL expected: FAIL
[Sanity check: this all works as expected with no promises involved] [Sanity check: this all works as expected with no promises involved]
expected: TIMEOUT expected: FAIL
[Thenable resolution] [Thenable resolution]
expected: FAIL expected: FAIL
[Rejection handler on rejected promise] [Rejection handler on rejected promise]
expected: TIMEOUT expected: FAIL
[Fulfillment handler on pending-then-fulfilled promise] [Fulfillment handler on pending-then-fulfilled promise]
expected: FAIL expected: FAIL

View file

@ -1,5 +1,5 @@
[cross-partition.https.tentative.html] [cross-partition.https.tentative.html]
expected: CRASH expected: TIMEOUT
[BroadcastChannel messages aren't received from a cross-partition iframe] [BroadcastChannel messages aren't received from a cross-partition iframe]
expected: FAIL expected: FAIL

View file

@ -0,0 +1,4 @@
[017.html]
expected: TIMEOUT
[origin of the script that invoked the method, about:blank]
expected: TIMEOUT

View file

@ -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

View 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

View file

@ -0,0 +1,2 @@
[overlay-transition-dialog.html]
expected: TIMEOUT

View file

@ -502,3 +502,24 @@
[CSSImportRule interface: sheet.cssRules[0\] must inherit property "supportsText" with the proper type] [CSSImportRule interface: sheet.cssRules[0\] must inherit property "supportsText" with the proper type]
expected: FAIL 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

View file

@ -4,11 +4,11 @@
<script src="/resources/testdriver.js"></script> <script src="/resources/testdriver.js"></script>
<script src="/resources/testdriver-vendor.js"></script> <script src="/resources/testdriver-vendor.js"></script>
<script src="/resources/testdriver-actions.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> <script>
// *not* \uu001B; see https://w3c.github.io/webdriver/#keyboard-actions // TODO(domenic): maybe update createRecordingCloseWatcher() to allow passing args and use it?
const ESC = '\uE00C';
test(() => { test(() => {
let watcher = new CloseWatcher({ signal: AbortSignal.abort() }); let watcher = new CloseWatcher({ signal: AbortSignal.abort() });
@ -60,7 +60,7 @@ promise_test(async () => {
watcher.oncancel = () => oncancel_called = true; watcher.oncancel = () => oncancel_called = true;
watcher.onclose = () => onclose_called = true; watcher.onclose = () => onclose_called = true;
await test_driver.send_keys(document.getElementById('d'), ESC); await sendCloseRequest();
assert_false(oncancel_called); assert_false(oncancel_called);
assert_false(onclose_called); assert_false(onclose_called);
@ -75,7 +75,7 @@ promise_test(async t => {
watcher.onclose = () => onclose_called = true; watcher.onclose = () => onclose_called = true;
controller.abort(); controller.abort();
await test_driver.send_keys(document.getElementById('d'), ESC); await sendCloseRequest();
assert_false(oncancel_called); assert_false(oncancel_called);
assert_false(onclose_called); assert_false(onclose_called);
@ -89,7 +89,7 @@ promise_test(async t => {
watcher.oncancel = () => oncancel_call_count_++; watcher.oncancel = () => oncancel_call_count_++;
watcher.onclose = () => onclose_call_count_++; watcher.onclose = () => onclose_call_count_++;
await test_driver.send_keys(document.getElementById('d'), ESC); await sendCloseRequest();
controller.abort(); controller.abort();
assert_equals(oncancel_call_count_, 0); assert_equals(oncancel_call_count_, 0);

View file

@ -6,7 +6,7 @@
<script src="/resources/testdriver-actions.js"></script> <script src="/resources/testdriver-actions.js"></script>
<script src="resources/helpers.js"></script> <script src="resources/helpers.js"></script>
<div id='d' style='height: 100px; width: 100px'></div> <body>
<script> <script>
test(t => { test(t => {
let events = []; let events = [];
@ -65,18 +65,18 @@ promise_test(async t => {
let watcher = createRecordingCloseWatcher(t, events); let watcher = createRecordingCloseWatcher(t, events);
watcher.destroy(); watcher.destroy();
await sendCloseSignal(); await sendCloseRequest();
assert_array_equals(events, []); assert_array_equals(events, []);
}, "destroy() then close signal fires no events"); }, "destroy() then close request fires no events");
promise_test(async t => { promise_test(async t => {
let events = []; let events = [];
let watcher = createRecordingCloseWatcher(t, events); let watcher = createRecordingCloseWatcher(t, events);
await sendCloseSignal(); await sendCloseRequest();
watcher.destroy(); watcher.destroy();
assert_array_equals(events, ["close"]); assert_array_equals(events, ["close"]);
}, "Close signal then destroy() fires only one close event"); }, "Close request then destroy() fires only one close event");
</script> </script>

View file

@ -8,12 +8,12 @@
<!-- <!--
Tests in this file are around the interaction of the Esc key specifically, not 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 the general concept of close requests. Ideally, all other tests would work
as-is if you changed the implementation of sendCloseSignal(). These tests as-is if you changed the implementation of sendCloseRequest(). These tests
assume that Esc is the close signal for the platform being tested. assume that Esc is the close request for the platform being tested.
--> -->
<div id='d' style='height: 100px; width: 100px'></div> <body>
<script> <script>
promise_test(async t => { promise_test(async t => {
let events = []; let events = [];
@ -33,7 +33,7 @@ promise_test(async t => {
await sendEscKey(); await sendEscKey();
assert_array_equals(events, []); 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 => { promise_test(async t => {
let events = []; let events = [];
@ -44,7 +44,7 @@ promise_test(async t => {
await sendEscKey(); await sendEscKey();
assert_array_equals(events, []); 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 => { promise_test(async t => {
let events = []; let events = [];
@ -55,7 +55,7 @@ promise_test(async t => {
await sendEscKey(); await sendEscKey();
assert_array_equals(events, []); 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 => { test(t => {
let events = []; let events = [];

View file

@ -6,7 +6,7 @@
<script src="/resources/testdriver-actions.js"></script> <script src="/resources/testdriver-actions.js"></script>
<script src="resources/helpers.js"></script> <script src="resources/helpers.js"></script>
<div id='d' style='height: 100px; width: 100px'></div> <body>
<script> <script>
promise_test(async t => { promise_test(async t => {
let closeEvent, cancelEvent; let closeEvent, cancelEvent;

View file

@ -6,7 +6,7 @@
<script src="/resources/testdriver-actions.js"></script> <script src="/resources/testdriver-actions.js"></script>
<script src="resources/helpers.js"></script> <script src="resources/helpers.js"></script>
<div id='d' style='height: 100px; width: 100px'></div> <body>
<script> <script>
promise_test(async t => { promise_test(async t => {
let events = []; let events = [];

View file

@ -6,6 +6,7 @@
<script src="/resources/testdriver.js"></script> <script src="/resources/testdriver.js"></script>
<script src="/resources/testdriver-vendor.js"></script> <script src="/resources/testdriver-vendor.js"></script>
<script src="/resources/testdriver-actions.js"></script> <script src="/resources/testdriver-actions.js"></script>
<script src="resources/helpers.js"></script>
<button id=b0>b0</button> <button id=b0>b0</button>
@ -20,8 +21,6 @@
</div> </div>
<script> <script>
const escapeKey = '\uE00C';
promise_test(async () => { promise_test(async () => {
p1.showPopover(); p1.showPopover();
await test_driver.click(b1); await test_driver.click(b1);
@ -31,12 +30,12 @@ promise_test(async () => {
assert_true(p2.matches(':popover-open'), 'p2 should be open.'); assert_true(p2.matches(':popover-open'), 'p2 should be open.');
assert_true(p3.matches(':popover-open'), 'p3 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(p1.matches(':popover-open'), 'first escape: p1 should be open.');
assert_false(p2.matches(':popover-open'), 'first escape: p2 should be closed.'); assert_false(p2.matches(':popover-open'), 'first escape: p2 should be closed.');
assert_false(p3.matches(':popover-open'), 'first escape: p3 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(p1.matches(':popover-open'), 'second escape: p1 should be closed.');
assert_false(p2.matches(':popover-open'), 'second escape: p2 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.'); assert_false(p3.matches(':popover-open'), 'second escape: p3 should be closed.');

View file

@ -6,6 +6,7 @@
<script src="/resources/testdriver.js"></script> <script src="/resources/testdriver.js"></script>
<script src="/resources/testdriver-vendor.js"></script> <script src="/resources/testdriver-vendor.js"></script>
<script src="/resources/testdriver-actions.js"></script> <script src="/resources/testdriver-actions.js"></script>
<script src="resources/helpers.js"></script>
<button id=b0>b0</button> <button id=b0>b0</button>
@ -20,8 +21,6 @@
</div> </div>
<script> <script>
const escapeKey = '\uE00C';
promise_test(async () => { promise_test(async () => {
p1.showPopover(); p1.showPopover();
p2.showPopover(); p2.showPopover();
@ -30,11 +29,11 @@ promise_test(async () => {
assert_true(p2.matches(':popover-open'), 'p2 should be open.'); assert_true(p2.matches(':popover-open'), 'p2 should be open.');
assert_true(p3.matches(':popover-open'), 'p3 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(p1.matches(':popover-open'), 'p1 should be closed.');
assert_false(p2.matches(':popover-open'), 'p2 should be closed.'); assert_false(p2.matches(':popover-open'), 'p2 should be closed.');
assert_false(p3.matches(':popover-open'), 'p3 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 () => { promise_test(async () => {
await test_driver.click(b0); await test_driver.click(b0);
@ -47,19 +46,19 @@ promise_test(async () => {
assert_true(p2.matches(':popover-open'), 'p2 should be open.'); assert_true(p2.matches(':popover-open'), 'p2 should be open.');
assert_true(p3.matches(':popover-open'), 'p3 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(p1.matches(':popover-open'), 'first escape: p1 should be open.');
assert_true(p2.matches(':popover-open'), 'first escape: p2 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.'); 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_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(p2.matches(':popover-open'), 'second escape: p2 should be closed.');
assert_false(p3.matches(':popover-open'), 'second escape: p3 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(p1.matches(':popover-open'), 'third escape: p1 should be closed.');
assert_false(p2.matches(':popover-open'), 'third escape: p2 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.'); 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> </script>

View file

@ -1,5 +1,3 @@
// TODO(domenic): consider using these in all test files.
window.createRecordingCloseWatcher = (t, events, name) => { window.createRecordingCloseWatcher = (t, events, name) => {
const prefix = name === undefined ? "" : name + " ";; const prefix = name === undefined ? "" : name + " ";;
@ -16,15 +14,16 @@ window.createBlessedRecordingCloseWatcher = (t, events, name) => {
}; };
window.sendEscKey = () => { window.sendEscKey = () => {
// *not* \uu001B; see https://w3c.github.io/webdriver/#keyboard-actions // Esc is \uE00C, *not* \uu001B; see https://w3c.github.io/webdriver/#keyboard-actions.
const ESC = '\uE00C'; //
// It's important to target document.body, and not any element that might stop receiving events
return test_driver.send_keys(document.getElementById("d"), ESC); // 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 // theory, in the future, we could add a WebDriver command or similar
// for the close signal, which would allow different tests on platforms // for the close request, which would allow different tests on platforms
// with different close signals. In that case, we'd update this // with different close requests. In that case, we'd update this
// function, but not update the sendEscKey function above. // function, but not update the sendEscKey function above.
window.sendCloseSignal = window.sendEscKey; window.sendCloseRequest = window.sendEscKey;

View file

@ -6,7 +6,7 @@
<script src="/resources/testdriver-actions.js"></script> <script src="/resources/testdriver-actions.js"></script>
<script src="resources/helpers.js"></script> <script src="resources/helpers.js"></script>
<div id="d" style="height: 100px; width: 100px;"></div> <body>
<script> <script>
// This test needs to be separate from user-activation.html since, unlike those, // 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"); createRecordingCloseWatcher(t, events, "activationWatcher2");
}); });
await sendCloseSignal(); await sendCloseRequest();
assert_array_equals(events, ["activationWatcher2 close", "activationWatcher1 close"]); assert_array_equals(events, ["activationWatcher2 close", "activationWatcher1 close"]);
await sendCloseSignal(); await sendCloseRequest();
assert_array_equals(events, ["activationWatcher2 close", "activationWatcher1 close", "freeWatcher close"]); 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"); }, "Multiple CloseWatchers created from a single user activation close together, but original free CloseWatcher closes separately");
</script> </script>

View file

@ -6,7 +6,7 @@
<script src="/resources/testdriver-actions.js"></script> <script src="/resources/testdriver-actions.js"></script>
<script src="resources/helpers.js"></script> <script src="resources/helpers.js"></script>
<div id="d" style="height: 100px; width: 100px;"></div> <body>
<script> <script>
promise_test(async t => { promise_test(async t => {
const events = []; const events = [];
@ -41,20 +41,20 @@ promise_test(async t => {
const events = []; const events = [];
const freeWatcher = createRecordingCloseWatcher(t, events, "freeWatcher"); 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"]); 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 => { promise_test(async t => {
const events = []; const events = [];
const freeWatcher = createRecordingCloseWatcher(t, events, "freeWatcher"); const freeWatcher = createRecordingCloseWatcher(t, events, "freeWatcher");
freeWatcher.addEventListener("cancel", e => e.preventDefault()); 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"]); 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 => { promise_test(async t => {
const events = []; const events = [];
@ -62,7 +62,7 @@ promise_test(async t => {
createRecordingCloseWatcher(t, events, "watcher1"); createRecordingCloseWatcher(t, events, "watcher1");
createRecordingCloseWatcher(t, events, "watcher2"); createRecordingCloseWatcher(t, events, "watcher2");
await sendCloseSignal(); await sendCloseRequest();
assert_array_equals(events, ["watcher2 close", "watcher1 close", "freeWatcher close"]); assert_array_equals(events, ["watcher2 close", "watcher1 close", "freeWatcher close"]);
}, "Multiple CloseWatchers created without user activation close together (with no cancel)"); }, "Multiple CloseWatchers created without user activation close together (with no cancel)");
@ -71,10 +71,10 @@ promise_test(async t => {
createRecordingCloseWatcher(t, events, "freeWatcher"); createRecordingCloseWatcher(t, events, "freeWatcher");
await createBlessedRecordingCloseWatcher(t, events, "activationWatcher"); await createBlessedRecordingCloseWatcher(t, events, "activationWatcher");
await sendCloseSignal(); await sendCloseRequest();
assert_array_equals(events, ["activationWatcher close"]); assert_array_equals(events, ["activationWatcher close"]);
await sendCloseSignal(); await sendCloseRequest();
assert_array_equals(events, ["activationWatcher close", "freeWatcher close"]); 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"); }, "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 freeWatcher = createRecordingCloseWatcher(t, events, "freeWatcher");
const activationWatcher = await createBlessedRecordingCloseWatcher(t, events, "activationWatcher"); 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"]); 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"]); 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 => { promise_test(async t => {
const events = []; const events = [];
@ -108,10 +108,10 @@ promise_test(async t => {
await createBlessedRecordingCloseWatcher(t, events, "activationWatcher1"); await createBlessedRecordingCloseWatcher(t, events, "activationWatcher1");
await createBlessedRecordingCloseWatcher(t, events, "activationWatcher2"); await createBlessedRecordingCloseWatcher(t, events, "activationWatcher2");
await sendCloseSignal(); await sendCloseRequest();
assert_array_equals(events, ["activationWatcher2 close"]); assert_array_equals(events, ["activationWatcher2 close"]);
await sendCloseSignal(); await sendCloseRequest();
assert_array_equals(events, ["activationWatcher2 close", "activationWatcher1 close"]); assert_array_equals(events, ["activationWatcher2 close", "activationWatcher1 close"]);
}, "Multiple CloseWatchers created with user activation close in reverse order"); }, "Multiple CloseWatchers created with user activation close in reverse order");
@ -123,16 +123,16 @@ promise_test(async t => {
await createBlessedRecordingCloseWatcher(t, events, "activationWatcher3"); await createBlessedRecordingCloseWatcher(t, events, "activationWatcher3");
createRecordingCloseWatcher(t, events, "watcher4"); createRecordingCloseWatcher(t, events, "watcher4");
await sendCloseSignal(); await sendCloseRequest();
assert_array_equals(events, ["watcher4 close", "activationWatcher3 close"]); assert_array_equals(events, ["watcher4 close", "activationWatcher3 close"]);
await sendCloseSignal(); await sendCloseRequest();
assert_array_equals(events, ["watcher4 close", "activationWatcher3 close", "activationWatcher2 close"]); 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"]); 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"]); 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"); }, "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"); const freeWatcher2 = createRecordingCloseWatcher(t, events, "freeWatcher2");
await sendCloseSignal(); await sendCloseRequest();
assert_array_equals(events, ["freeWatcher2 close"]); 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 => { promise_test(async t => {
const events = []; const events = [];
@ -175,32 +175,32 @@ promise_test(async t => {
const freeWatcher2 = createRecordingCloseWatcher(t, events, "freeWatcher2"); const freeWatcher2 = createRecordingCloseWatcher(t, events, "freeWatcher2");
await sendCloseSignal(); await sendCloseRequest();
assert_array_equals(events, ["freeWatcher1 close", "freeWatcher2 close"]); 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 => { promise_test(async t => {
const events = []; const events = [];
const freeWatcher1 = createRecordingCloseWatcher(t, events, "freeWatcher1"); const freeWatcher1 = createRecordingCloseWatcher(t, events, "freeWatcher1");
await sendCloseSignal(); await sendCloseRequest();
assert_array_equals(events, ["freeWatcher1 close"]); assert_array_equals(events, ["freeWatcher1 close"]);
const freeWatcher2 = createRecordingCloseWatcher(t, events, "freeWatcher2"); const freeWatcher2 = createRecordingCloseWatcher(t, events, "freeWatcher2");
await sendCloseSignal(); await sendCloseRequest();
assert_array_equals(events, ["freeWatcher1 close", "freeWatcher2 close"]); 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 => { promise_test(async t => {
const events = []; const events = [];
const activationWatcher = await createBlessedRecordingCloseWatcher(t, events, "activationWatcher"); const activationWatcher = await createBlessedRecordingCloseWatcher(t, events, "activationWatcher");
const freeWatcher = createRecordingCloseWatcher(t, events, "freeWatcher"); const freeWatcher = createRecordingCloseWatcher(t, events, "freeWatcher");
await sendCloseSignal(); await sendCloseRequest();
assert_array_equals(events, ["freeWatcher close"]); assert_array_equals(events, ["freeWatcher close"]);
await sendCloseSignal(); await sendCloseRequest();
assert_array_equals(events, ["freeWatcher close", "activationWatcher close"]); assert_array_equals(events, ["freeWatcher close", "activationWatcher close"]);
}, "The second watcher can be the free watcher, if the first is created with user activation"); }, "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 activationWatcher2 = await createBlessedRecordingCloseWatcher(t, events, "activationWatcher2");
const freeWatcher = createRecordingCloseWatcher(t, events, "freeWatcher"); const freeWatcher = createRecordingCloseWatcher(t, events, "freeWatcher");
await sendCloseSignal(); await sendCloseRequest();
assert_array_equals(events, ["freeWatcher close"]); assert_array_equals(events, ["freeWatcher close"]);
await sendCloseSignal(); await sendCloseRequest();
assert_array_equals(events, ["freeWatcher close", "activationWatcher2 close"]); assert_array_equals(events, ["freeWatcher close", "activationWatcher2 close"]);
await sendCloseSignal(); await sendCloseRequest();
assert_array_equals(events, ["freeWatcher close", "activationWatcher2 close", "activationWatcher1 close"]); 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"); }, "The third watcher can be the free watcher, if the first two are created with user activation");
</script> </script>

View file

@ -1,2 +1,2 @@
This directory contains (tentative) tests for the 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.

View file

@ -39,7 +39,7 @@ pressure_test((t, mockPressureService) => {
mockPressureService.setPressureUpdate('cpu', 'critical'); mockPressureService.setPressureUpdate('cpu', 'critical');
mockPressureService.startPlatformCollector(/*sampleRate=*/ 5.0); 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'); }, 'Removing observer before observe() resolves works');
pressure_test(async (t, mockPressureService) => { pressure_test(async (t, mockPressureService) => {

View file

@ -14,7 +14,7 @@ pressure_test(async (t, mockPressureService) => {
const promise = observer1.observe('cpu'); const promise = observer1.observe('cpu');
observer1.disconnect(); observer1.disconnect();
observer1.disconnect(); observer1.disconnect();
await promise_rejects_dom(t, 'NotSupportedError', promise); await promise_rejects_dom(t, 'AbortError', promise);
const observer2_changes = []; const observer2_changes = [];
await new Promise((resolve, reject) => { await new Promise((resolve, reject) => {

View file

@ -13,7 +13,7 @@ pressure_test(async (t, mockPressureService) => {
// Ensure that observer1's schema gets registered before observer2 starts. // Ensure that observer1's schema gets registered before observer2 starts.
const promise = observer1.observe('cpu'); 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 = []; const observer2_changes = [];
await new Promise((resolve, reject) => { await new Promise((resolve, reject) => {
@ -53,7 +53,7 @@ pressure_test(async (t, mockPressureService) => {
const promise = observer1.observe('cpu'); const promise = observer1.observe('cpu');
observer2.observe('cpu'); observer2.observe('cpu');
observer1.disconnect(); observer1.disconnect();
await promise_rejects_dom(t, 'NotSupportedError', promise); await promise_rejects_dom(t, 'AbortError', promise);
mockPressureService.setPressureUpdate('cpu', 'critical'); mockPressureService.setPressureUpdate('cpu', 'critical');
mockPressureService.startPlatformCollector(/*sampleRate=*/ 5.0); mockPressureService.startPlatformCollector(/*sampleRate=*/ 5.0);
}); });

View file

@ -2,7 +2,7 @@
// META: script=/resources/idlharness.js // META: script=/resources/idlharness.js
// META: global=window,dedicatedworker,sharedworker // META: global=window,dedicatedworker,sharedworker
// https://wicg.github.io/compute-pressure/ // https://w3c.github.io/compute-pressure/
'use strict'; 'use strict';

View file

@ -1,7 +1,7 @@
<!DOCTYPE html> <!DOCTYPE html>
<title>Test that compute-pressure is advertised in the feature list</title> <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://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/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script> <script src="/resources/testharnessreport.js"></script>
<script> <script>

Some files were not shown because too many files have changed in this diff Show more