aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbors-servo <lbergstrom+bors@mozilla.com>2020-01-22 09:57:43 -0500
committerGitHub <noreply@github.com>2020-01-22 09:57:43 -0500
commit24674687acaaca3a796f8cc61bc98c6e7d0097fb (patch)
tree2cd4d1cc3e6f06341e0927fc511a7ffab47d6491
parentee3fb92e53d08c34a41b748aa4e49ae336eaf611 (diff)
parentc4a68ec65c38f5905b83b3d02be2389c6a0074ec (diff)
downloadservo-24674687acaaca3a796f8cc61bc98c6e7d0097fb.tar.gz
servo-24674687acaaca3a796f8cc61bc98c6e7d0097fb.zip
Auto merge of #25573 - servo-wpt-sync:wpt_update_22-01-2020, r=jdm
Sync WPT with upstream (22-01-2020) Automated downstream sync of changes from upstream as of 22-01-2020. [no-wpt-sync] r? @servo-wpt-sync
-rw-r--r--tests/wpt/metadata/FileAPI/url/url-with-fetch.any.js.ini3
-rw-r--r--tests/wpt/metadata/MANIFEST.json932
-rw-r--r--tests/wpt/metadata/css/cssom-view/CaretPosition-001.html.ini4
-rw-r--r--tests/wpt/metadata/fetch/content-type/response.window.js.ini10
-rw-r--r--tests/wpt/metadata/fetch/content-type/script.window.js.ini3
-rw-r--r--tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini2
-rw-r--r--tests/wpt/metadata/fetch/security/embedded-credentials.tentative.sub.html.ini4
-rw-r--r--tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini4
-rw-r--r--tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_4.html.ini4
-rw-r--r--tests/wpt/metadata/html/browsers/history/the-location-interface/location-protocol-setter-non-broken.html.ini1
-rw-r--r--tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/skip-document-with-fragment.html.ini4
-rw-r--r--tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini2
-rw-r--r--tests/wpt/metadata/html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-2.html.ini2
-rw-r--r--tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/ignore-opens-during-unload.window.js.ini2
-rw-r--r--tests/wpt/metadata/referrer-policy/generic/inheritance/iframe-inheritance-document-write.html.ini4
-rw-r--r--tests/wpt/metadata/referrer-policy/generic/inheritance/iframe-inheritance-javascript-child.html.ini7
-rw-r--r--tests/wpt/metadata/referrer-policy/generic/inheritance/iframe-inheritance-javascript.html.ini4
-rw-r--r--tests/wpt/metadata/referrer-policy/generic/inheritance/iframe-inheritance-srcdoc.html.ini3
-rw-r--r--tests/wpt/metadata/resource-timing/crossorigin-sandwich-TAO.sub.html.ini1
-rw-r--r--tests/wpt/metadata/webxr/xrSession_input_events_end.https.html.ini2
-rw-r--r--tests/wpt/web-platform-tests/.azure-pipelines.yml37
-rw-r--r--tests/wpt/web-platform-tests/2dcontext/drawing-text-to-the-canvas/2d.text.measure.actualBoundingBox.html9
-rw-r--r--tests/wpt/web-platform-tests/2dcontext/tools/tests2dtext.yaml9
-rw-r--r--tests/wpt/web-platform-tests/README.md19
-rw-r--r--tests/wpt/web-platform-tests/css/compositing/root-element-background-transparency-ref.html7
-rw-r--r--tests/wpt/web-platform-tests/css/compositing/root-element-background-transparency.html8
-rw-r--r--tests/wpt/web-platform-tests/css/compositing/root-element-blend-mode-ref.html6
-rw-r--r--tests/wpt/web-platform-tests/css/compositing/root-element-blend-mode.html9
-rw-r--r--tests/wpt/web-platform-tests/css/compositing/root-element-filter-ref.html8
-rw-r--r--tests/wpt/web-platform-tests/css/compositing/root-element-filter.html9
-rw-r--r--tests/wpt/web-platform-tests/css/compositing/root-element-opacity-ref.html7
-rw-r--r--tests/wpt/web-platform-tests/css/compositing/root-element-opacity.html8
-rw-r--r--tests/wpt/web-platform-tests/css/css-flexbox/zero-content-size-with-scrollbar-crash.html6
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/reference/text-underline-position-001-ref.html83
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/text-underline-position-001a.html90
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/text-underline-position-001b.html90
-rw-r--r--tests/wpt/web-platform-tests/css/css-transforms/transform-translate-background-001-ref.html12
-rw-r--r--tests/wpt/web-platform-tests/css/css-transforms/transform-translate-background-001.html17
-rw-r--r--tests/wpt/web-platform-tests/css/css-transforms/transform-translate-background-002.html23
-rw-r--r--tests/wpt/web-platform-tests/docs/index.md19
-rw-r--r--tests/wpt/web-platform-tests/docs/writing-tests/testharness-api.md8
-rw-r--r--tests/wpt/web-platform-tests/element-timing/multiple-redirects-TAO.html (renamed from tests/wpt/web-platform-tests/element-timing/multiple-redirects-TAO.sub.html)0
-rw-r--r--tests/wpt/web-platform-tests/fetch/api/policies/referrer-origin-when-cross-origin.html1
-rw-r--r--tests/wpt/web-platform-tests/fetch/api/policies/referrer-origin-when-cross-origin.js3
-rw-r--r--tests/wpt/web-platform-tests/html/cross-origin-opener-policy/blob-popup.https.html12
-rw-r--r--tests/wpt/web-platform-tests/html/cross-origin-opener-policy/coep-navigate-popup.https.html15
-rw-r--r--tests/wpt/web-platform-tests/html/cross-origin-opener-policy/coep-redirect.https.html6
-rw-r--r--tests/wpt/web-platform-tests/html/cross-origin-opener-policy/coep.https.html4
-rw-r--r--tests/wpt/web-platform-tests/html/cross-origin-opener-policy/coop-navigated-history-popup.https.html2
-rw-r--r--tests/wpt/web-platform-tests/html/cross-origin-opener-policy/coop-navigated-popup.https.html8
-rw-r--r--tests/wpt/web-platform-tests/html/cross-origin-opener-policy/historical/coep-navigate-popup-unsafe-inherit.https.html2
-rw-r--r--tests/wpt/web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-cross-origin.https.html2
-rw-r--r--tests/wpt/web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-same-origin.https.html2
-rw-r--r--tests/wpt/web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-same-site.https.html2
-rw-r--r--tests/wpt/web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-cross-origin.https.html2
-rw-r--r--tests/wpt/web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-same-origin.https.html2
-rw-r--r--tests/wpt/web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-same-site.https.html2
-rw-r--r--tests/wpt/web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-with-cross-origin.https.html2
-rw-r--r--tests/wpt/web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-with-same-origin.https.html2
-rw-r--r--tests/wpt/web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-with-same-site.https.html2
-rw-r--r--tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-same-origin-allow-popups.https.html (renamed from tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups.https.html)19
-rw-r--r--tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-same-origin-allow-popups.https.html.headers (renamed from tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups.https.html.headers)0
-rw-r--r--tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-same-origin.https.html26
-rw-r--r--tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-same-origin.https.html.headers1
-rw-r--r--tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-unsafe-none.https.html26
-rw-r--r--tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-unsafe-none.https.html.headers1
-rw-r--r--tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-to-same-origin.https.html25
-rw-r--r--tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-to-same-origin.https.html.headers (renamed from tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin.https.html.headers)0
-rw-r--r--tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-to-unsafe-none.https.html (renamed from tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin.https.html)10
-rw-r--r--tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-to-unsafe-none.https.html.headers (renamed from tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-meta-http-equiv.https.html.headers)0
-rw-r--r--tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-unsafe-none-to-same-origin.https.html (renamed from tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-unsafe-none.https.html)10
-rw-r--r--tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-unsafe-none-to-same-origin.https.html.headers (renamed from tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-unsafe-none.https.html.headers)0
-rw-r--r--tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-unsafe-none-to-unsafe-none.https.html25
-rw-r--r--tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-unsafe-none-to-unsafe-none.https.html.headers1
-rw-r--r--tests/wpt/web-platform-tests/html/cross-origin-opener-policy/no-https.html2
-rw-r--r--tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-redirect-cache.https.html7
-rw-r--r--tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-cross-origin.https.html2
-rw-r--r--tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-same-origin.https.html2
-rw-r--r--tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-same-site.https.html2
-rw-r--r--tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-with-cross-origin.https.html2
-rw-r--r--tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-with-same-origin.https.html2
-rw-r--r--tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-with-same-site.https.html2
-rw-r--r--tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-unsafe-none-with-cross-origin.https.html2
-rw-r--r--tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-unsafe-none-with-same-origin.https.html2
-rw-r--r--tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-unsafe-none-with-same-site.https.html2
-rw-r--r--tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-unspecified-with-cross-origin.https.html2
-rw-r--r--tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-unspecified-with-same-origin.https.html2
-rw-r--r--tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-unspecified-with-same-site.https.html2
-rw-r--r--tests/wpt/web-platform-tests/html/cross-origin-opener-policy/resources/common.js19
-rw-r--r--tests/wpt/web-platform-tests/html/cross-origin-opener-policy/resources/coop-coep.py7
-rw-r--r--tests/wpt/web-platform-tests/html/cross-origin-opener-policy/resources/postback.html11
-rw-r--r--tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-crash.html9
-rw-r--r--tests/wpt/web-platform-tests/html/rendering/replaced-elements/embedded-content/object-fallback-text-decoration-ref.html3
-rw-r--r--tests/wpt/web-platform-tests/html/rendering/replaced-elements/embedded-content/object-fallback-text-decoration.html9
-rw-r--r--tests/wpt/web-platform-tests/html/rendering/the-details-element/summary-text-decoration-ref.html5
-rw-r--r--tests/wpt/web-platform-tests/html/rendering/the-details-element/summary-text-decoration.html11
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.fillStyle.sub.html5
-rw-r--r--tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/reftest/legacy/fuzzy-ref-2.html.ini4
-rw-r--r--tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/reftest/legacy/reftest_fuzzy_chain_ini.html.ini4
-rw-r--r--tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/reftest/reftest_fuzzy_1.html.ini3
-rw-r--r--tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/reftest/reftest_fuzzy_ini_full.html.ini7
-rw-r--r--tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/reftest/reftest_fuzzy_ini_ref_only.html.ini10
-rw-r--r--tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/reftest/reftest_fuzzy_ini_short.html.ini4
-rw-r--r--tests/wpt/web-platform-tests/largest-contentful-paint/multiple-redirects-TAO.html62
-rw-r--r--tests/wpt/web-platform-tests/mathml/presentation-markup/mrow/inferred-mrow-baseline.html6
-rw-r--r--tests/wpt/web-platform-tests/mathml/presentation-markup/mrow/inferred-mrow-stretchy.html5
-rw-r--r--tests/wpt/web-platform-tests/mathml/presentation-markup/mrow/spacing.html51
-rw-r--r--tests/wpt/web-platform-tests/mathml/support/feature-detection.js34
-rw-r--r--tests/wpt/web-platform-tests/measure-memory/measure-memory.tentative.any.js71
-rw-r--r--tests/wpt/web-platform-tests/native-file-system/native_FileSystemBaseHandle-postMessage-manual.https.tentative.html1
-rw-r--r--tests/wpt/web-platform-tests/native-file-system/sandboxed_FileSystemBaseHandle-postMessage.tentative.https.window.js3
-rw-r--r--tests/wpt/web-platform-tests/portals/portals-focus.sub.html1
-rw-r--r--tests/wpt/web-platform-tests/referrer-policy/generic/inheritance/iframe-inheritance-data.html24
-rw-r--r--tests/wpt/web-platform-tests/referrer-policy/generic/inheritance/iframe-inheritance-document-write.html20
-rw-r--r--tests/wpt/web-platform-tests/referrer-policy/generic/inheritance/iframe-inheritance-javascript-child.html70
-rw-r--r--tests/wpt/web-platform-tests/referrer-policy/generic/inheritance/iframe-inheritance-javascript.html19
-rw-r--r--tests/wpt/web-platform-tests/referrer-policy/generic/inheritance/iframe-inheritance-srcdoc-child.html30
-rw-r--r--tests/wpt/web-platform-tests/referrer-policy/generic/inheritance/iframe-inheritance-srcdoc.html22
-rw-r--r--tests/wpt/web-platform-tests/referrer-policy/generic/inheritance/resources/make-html-script.js10
-rw-r--r--tests/wpt/web-platform-tests/resource-timing/resource_timing_buffer_full_eventually.html41
-rw-r--r--tests/wpt/web-platform-tests/scroll-to-text-fragment/scroll-to-text-fragment-target.html10
-rw-r--r--tests/wpt/web-platform-tests/service-workers/service-worker/clients-matchall-client-types.https.html144
-rw-r--r--tests/wpt/web-platform-tests/service-workers/service-worker/getregistrations.https.html7
-rw-r--r--tests/wpt/web-platform-tests/speech-api/META.yml2
-rw-r--r--tests/wpt/web-platform-tests/svg/extensibility/foreignObject/foreign-object-scale-scroll-ref.html8
-rw-r--r--tests/wpt/web-platform-tests/svg/extensibility/foreignObject/foreign-object-scale-scroll.html9
-rw-r--r--tests/wpt/web-platform-tests/tools/ci/azure/install_edge.yml20
-rw-r--r--tests/wpt/web-platform-tests/tools/wpt/browser.py2
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorselenium.py7
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py7
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptcommandline.py6
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/GlobalEventHandlers-onclick.tentative.html2
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-metadata.tentative.html2
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/WorkerGlobalScope-importScripts.https.html2
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/block-Node-multiple-arguments.tentative.html2
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-DOMParser-parseFromString.tentative.html2
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-DOMWindowTimers-setTimeout-setInterval.tentative.html2
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Document-write.tentative.html2
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-insertAdjacentHTML.tentative.html2
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-outerHTML.tentative.html2
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-setAttribute.tentative.html2
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-setAttributeNS.tentative.html2
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-HTMLElement-generic.tentative.html2
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Range-createContextualFragment.tentative.html2
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/block-text-node-insertion-into-script-element.tentative.html2
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/default-policy-report-only.tentative.html.headers2
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/default-policy.tentative.html.headers2
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/empty-default-policy-report-only.tentative.html.headers2
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/empty-default-policy.tentative.html.headers2
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/eval-csp-tt-default-policy.tentative.html2
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/eval-csp-tt-no-default-policy.tentative.html2
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/eval-with-permissive-csp.tentative.html2
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/no-require-trusted-types-for-report-only.tentative.html44
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/no-require-trusted-types-for-report-only.tentative.html.headers1
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/no-require-trusted-types-for.tentative.html45
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/require-trusted-types-for-report-only.tentative.html71
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/require-trusted-types-for-report-only.tentative.html.headers1
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/require-trusted-types-for.tentative.html78
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/support/WorkerGlobalScope-importScripts.https.js.headers2
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/support/navigation-report-only-support.html.headers2
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/support/navigation-support.html.headers2
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/trusted-types-createHTMLDocument.tentative.html2
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting-no-unsafe-eval.tentative.https.html2
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting-no-unsafe-eval.tentative.https.html.headers2
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting-report-only.tentative.https.html2
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting-report-only.tentative.https.html.headers1
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting.tentative.https.html2
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting.tentative.https.html.headers1
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/trusted-types-navigation.tentative.html3
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/trusted-types-report-only.tentative.https.html4
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/trusted-types-report-only.tentative.https.html.headers2
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/trusted-types-reporting.tentative.https.html16
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/trusted-types-reporting.tentative.https.html.headers1
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/tt-block-eval.tentative.html2
-rw-r--r--tests/wpt/web-platform-tests/url/urlsearchparams-constructor.any.js6
-rw-r--r--tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-createDataChannel.html45
-rw-r--r--tests/wpt/web-platform-tests/workers/modules/resources/dynamic-import-and-then-static-import-worker.js24
-rw-r--r--tests/wpt/web-platform-tests/workers/modules/resources/dynamic-import-worker.js24
-rw-r--r--tests/wpt/web-platform-tests/workers/modules/resources/eval-dynamic-import-worker.js41
-rw-r--r--tests/wpt/web-platform-tests/workers/modules/resources/import-scripts-worker.js22
-rw-r--r--tests/wpt/web-platform-tests/workers/modules/resources/nested-dynamic-import-worker.js24
-rw-r--r--tests/wpt/web-platform-tests/workers/modules/resources/nested-static-import-worker.js24
-rw-r--r--tests/wpt/web-platform-tests/workers/modules/resources/post-message-on-load-worker.js11
-rw-r--r--tests/wpt/web-platform-tests/workers/modules/resources/static-import-and-then-dynamic-import-worker.js24
-rw-r--r--tests/wpt/web-platform-tests/workers/modules/resources/static-import-worker.js24
-rw-r--r--tests/wpt/web-platform-tests/workers/modules/shared-worker-import-blob-url.any.js23
-rw-r--r--tests/wpt/web-platform-tests/workers/modules/shared-worker-import-failure.html33
-rw-r--r--tests/wpt/web-platform-tests/workers/modules/shared-worker-import.any.js19
-rw-r--r--tests/wpt/web-platform-tests/workers/modules/shared-worker-options-type.html47
189 files changed, 2589 insertions, 663 deletions
diff --git a/tests/wpt/metadata/FileAPI/url/url-with-fetch.any.js.ini b/tests/wpt/metadata/FileAPI/url/url-with-fetch.any.js.ini
index 4c1aa18e695..abf0d50aff3 100644
--- a/tests/wpt/metadata/FileAPI/url/url-with-fetch.any.js.ini
+++ b/tests/wpt/metadata/FileAPI/url/url-with-fetch.any.js.ini
@@ -2,9 +2,6 @@
[Revoke blob URL after creating Request, will fetch]
expected: FAIL
- [Revoke blob URL after calling fetch, fetch should succeed]
- expected: FAIL
-
[url-with-fetch.any.html]
[Revoke blob URL after creating Request, will fetch]
diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json
index d3622831fda..4ff61c1c047 100644
--- a/tests/wpt/metadata/MANIFEST.json
+++ b/tests/wpt/metadata/MANIFEST.json
@@ -37,6 +37,12 @@
{}
]
],
+ "css/css-flexbox/zero-content-size-with-scrollbar-crash.html": [
+ [
+ "css/css-flexbox/zero-content-size-with-scrollbar-crash.html",
+ {}
+ ]
+ ],
"css/css-grid/subgrid/contain-strict-nested-subgrid-crash.html": [
[
"css/css-grid/subgrid/contain-strict-nested-subgrid-crash.html",
@@ -169,6 +175,12 @@
{}
]
],
+ "html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-crash.html": [
+ [
+ "html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-crash.html",
+ {}
+ ]
+ ],
"html/semantics/embedded-content/the-object-element/block-object-with-ruby-crash.html": [
[
"html/semantics/embedded-content/the-object-element/block-object-with-ruby-crash.html",
@@ -106181,6 +106193,54 @@
{}
]
],
+ "css/compositing/root-element-background-transparency.html": [
+ [
+ "css/compositing/root-element-background-transparency.html",
+ [
+ [
+ "/css/compositing/root-element-background-transparency-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/compositing/root-element-blend-mode.html": [
+ [
+ "css/compositing/root-element-blend-mode.html",
+ [
+ [
+ "/css/compositing/root-element-blend-mode-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/compositing/root-element-filter.html": [
+ [
+ "css/compositing/root-element-filter.html",
+ [
+ [
+ "/css/compositing/root-element-filter-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/compositing/root-element-opacity.html": [
+ [
+ "css/compositing/root-element-opacity.html",
+ [
+ [
+ "/css/compositing/root-element-opacity-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"css/compositing/svg/mix-blend-mode-in-svg-image.html": [
[
"css/compositing/svg/mix-blend-mode-in-svg-image.html",
@@ -148799,6 +148859,30 @@
{}
]
],
+ "css/css-text-decor/text-underline-position-001a.html": [
+ [
+ "css/css-text-decor/text-underline-position-001a.html",
+ [
+ [
+ "/css/css-text-decor/reference/text-underline-position-001-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/css-text-decor/text-underline-position-001b.html": [
+ [
+ "css/css-text-decor/text-underline-position-001b.html",
+ [
+ [
+ "/css/css-text-decor/reference/text-underline-position-001-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"css/css-text/boundary-shaping/boundary-shaping-001.html": [
[
"css/css-text/boundary-shaping/boundary-shaping-001.html",
@@ -166643,6 +166727,30 @@
{}
]
],
+ "css/css-transforms/transform-translate-background-001.html": [
+ [
+ "css/css-transforms/transform-translate-background-001.html",
+ [
+ [
+ "/css/css-transforms/transform-translate-background-001-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/css-transforms/transform-translate-background-002.html": [
+ [
+ "css/css-transforms/transform-translate-background-002.html",
+ [
+ [
+ "/css/css-transforms/transform-translate-background-001-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"css/css-transforms/transform-translatex-001.html": [
[
"css/css-transforms/transform-translatex-001.html",
@@ -206997,6 +207105,18 @@
{}
]
],
+ "html/rendering/replaced-elements/embedded-content/object-fallback-text-decoration.html": [
+ [
+ "html/rendering/replaced-elements/embedded-content/object-fallback-text-decoration.html",
+ [
+ [
+ "/html/rendering/replaced-elements/embedded-content/object-fallback-text-decoration-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"html/rendering/replaced-elements/embedded-content/video-controls-vertical-writing-mode.html": [
[
"html/rendering/replaced-elements/embedded-content/video-controls-vertical-writing-mode.html",
@@ -207153,6 +207273,18 @@
{}
]
],
+ "html/rendering/the-details-element/summary-text-decoration.html": [
+ [
+ "html/rendering/the-details-element/summary-text-decoration.html",
+ [
+ [
+ "/html/rendering/the-details-element/summary-text-decoration-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"html/rendering/widgets/button-layout/anonymous-button-content-box.html": [
[
"html/rendering/widgets/button-layout/anonymous-button-content-box.html",
@@ -210941,6 +211073,18 @@
{}
]
],
+ "svg/extensibility/foreignObject/foreign-object-scale-scroll.html": [
+ [
+ "svg/extensibility/foreignObject/foreign-object-scale-scroll.html",
+ [
+ [
+ "/svg/extensibility/foreignObject/foreign-object-scale-scroll-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"svg/extensibility/foreignObject/foreign-object-size.html": [
[
"svg/extensibility/foreignObject/foreign-object-size.html",
@@ -247632,6 +247776,18 @@
"css/compositing/mix-blend-mode/support/yellow_square.svg": [
[]
],
+ "css/compositing/root-element-background-transparency-ref.html": [
+ []
+ ],
+ "css/compositing/root-element-blend-mode-ref.html": [
+ []
+ ],
+ "css/compositing/root-element-filter-ref.html": [
+ []
+ ],
+ "css/compositing/root-element-opacity-ref.html": [
+ []
+ ],
"css/compositing/svg/reference/mix-blend-mode-svg-rectangle-ref.html": [
[]
],
@@ -259605,6 +259761,9 @@
"css/css-text-decor/reference/text-underline-offset-vertical-002-ref.html": [
[]
],
+ "css/css-text-decor/reference/text-underline-position-001-ref.html": [
+ []
+ ],
"css/css-text/META.yml": [
[]
],
@@ -262344,6 +262503,9 @@
"css/css-transforms/transform-transformed-tr-percent-height-child-ref.html": [
[]
],
+ "css/css-transforms/transform-translate-background-001-ref.html": [
+ []
+ ],
"css/css-transforms/transform-translate-ref.html": [
[]
],
@@ -273819,19 +273981,28 @@
"html/cross-origin-opener-policy/historical/popup-same-site-with-same-site.https.html.headers": [
[]
],
- "html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups.https.html.headers": [
+ "html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-same-origin-allow-popups.https.html.headers": [
[]
],
- "html/cross-origin-opener-policy/iframe-popup-same-origin.https.html.headers": [
+ "html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-same-origin.https.html.headers": [
[]
],
- "html/cross-origin-opener-policy/iframe-popup-unsafe-none.https.html.headers": [
+ "html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-unsafe-none.https.html.headers": [
[]
],
- "html/cross-origin-opener-policy/no-https.html.headers": [
+ "html/cross-origin-opener-policy/iframe-popup-same-origin-to-same-origin.https.html.headers": [
[]
],
- "html/cross-origin-opener-policy/popup-meta-http-equiv.https.html.headers": [
+ "html/cross-origin-opener-policy/iframe-popup-same-origin-to-unsafe-none.https.html.headers": [
+ []
+ ],
+ "html/cross-origin-opener-policy/iframe-popup-unsafe-none-to-same-origin.https.html.headers": [
+ []
+ ],
+ "html/cross-origin-opener-policy/iframe-popup-unsafe-none-to-unsafe-none.https.html.headers": [
+ []
+ ],
+ "html/cross-origin-opener-policy/no-https.html.headers": [
[]
],
"html/cross-origin-opener-policy/popup-redirect-cache.https.html.headers": [
@@ -277272,6 +277443,9 @@
"html/rendering/replaced-elements/embedded-content-rendering-rules/canvas_without_context_ref.html": [
[]
],
+ "html/rendering/replaced-elements/embedded-content/object-fallback-text-decoration-ref.html": [
+ []
+ ],
"html/rendering/replaced-elements/embedded-content/video-controls-vertical-writing-mode-ref.html": [
[]
],
@@ -277317,6 +277491,9 @@
"html/rendering/the-details-element/summary-display-list-item-ref.html": [
[]
],
+ "html/rendering/the-details-element/summary-text-decoration-ref.html": [
+ []
+ ],
"html/rendering/widgets/button-layout/anonymous-button-content-box-ref.html": [
[]
],
@@ -279903,6 +280080,9 @@
"infrastructure/metadata/infrastructure/reftest/legacy/reftest_fuzzy_chain_ini.html.ini": [
[]
],
+ "infrastructure/metadata/infrastructure/reftest/reftest_fuzzy_1.html.ini": [
+ []
+ ],
"infrastructure/metadata/infrastructure/reftest/reftest_fuzzy_ini_full.html.ini": [
[]
],
@@ -284850,6 +285030,9 @@
"referrer-policy/gen/top.http-rp/unsafe-url/xhr/same-https.swap-origin.http.html.headers": [
[]
],
+ "referrer-policy/generic/inheritance/resources/make-html-script.js": [
+ []
+ ],
"referrer-policy/generic/multiple-headers-and-values.html.headers": [
[]
],
@@ -287844,6 +288027,9 @@
"svg/extensibility/foreignObject/foreign-object-paints-before-rect-ref.html": [
[]
],
+ "svg/extensibility/foreignObject/foreign-object-scale-scroll-ref.html": [
+ []
+ ],
"svg/extensibility/foreignObject/foreign-object-size-ref.html": [
[]
],
@@ -292908,6 +293094,12 @@
"trusted-types/empty-default-policy.tentative.html.headers": [
[]
],
+ "trusted-types/no-require-trusted-types-for-report-only.tentative.html.headers": [
+ []
+ ],
+ "trusted-types/require-trusted-types-for-report-only.tentative.html.headers": [
+ []
+ ],
"trusted-types/support/WorkerGlobalScope-importScripts.https.js": [
[]
],
@@ -345434,9 +345626,9 @@
{}
]
],
- "element-timing/multiple-redirects-TAO.sub.html": [
+ "element-timing/multiple-redirects-TAO.html": [
[
- "element-timing/multiple-redirects-TAO.sub.html",
+ "element-timing/multiple-redirects-TAO.html",
{}
]
],
@@ -362600,20 +362792,38 @@
],
"html/cross-origin-opener-policy/coep-navigate-popup.https.html": [
[
- "html/cross-origin-opener-policy/coep-navigate-popup.https.html",
- {}
+ "html/cross-origin-opener-policy/coep-navigate-popup.https.html?0-1",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "html/cross-origin-opener-policy/coep-navigate-popup.https.html?2-3",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "html/cross-origin-opener-policy/coep-navigate-popup.https.html?4-last",
+ {
+ "timeout": "long"
+ }
]
],
"html/cross-origin-opener-policy/coep-redirect.https.html": [
[
"html/cross-origin-opener-policy/coep-redirect.https.html",
- {}
+ {
+ "timeout": "long"
+ }
]
],
"html/cross-origin-opener-policy/coep.https.html": [
[
"html/cross-origin-opener-policy/coep.https.html",
- {}
+ {
+ "timeout": "long"
+ }
]
],
"html/cross-origin-opener-policy/coop-navigated-history-popup.https.html": [
@@ -362639,79 +362849,137 @@
"html/cross-origin-opener-policy/historical/coep-navigate-popup-unsafe-inherit.https.html": [
[
"html/cross-origin-opener-policy/historical/coep-navigate-popup-unsafe-inherit.https.html",
- {}
+ {
+ "timeout": "long"
+ }
]
],
"html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-cross-origin.https.html": [
[
"html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-cross-origin.https.html",
- {}
+ {
+ "timeout": "long"
+ }
]
],
"html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-same-origin.https.html": [
[
"html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-same-origin.https.html",
- {}
+ {
+ "timeout": "long"
+ }
]
],
"html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-same-site.https.html": [
[
"html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-same-site.https.html",
- {}
+ {
+ "timeout": "long"
+ }
]
],
"html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-cross-origin.https.html": [
[
"html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-cross-origin.https.html",
- {}
+ {
+ "timeout": "long"
+ }
]
],
"html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-same-origin.https.html": [
[
"html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-same-origin.https.html",
- {}
+ {
+ "timeout": "long"
+ }
]
],
"html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-same-site.https.html": [
[
"html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-same-site.https.html",
- {}
+ {
+ "timeout": "long"
+ }
]
],
"html/cross-origin-opener-policy/historical/popup-same-site-with-cross-origin.https.html": [
[
"html/cross-origin-opener-policy/historical/popup-same-site-with-cross-origin.https.html",
- {}
+ {
+ "timeout": "long"
+ }
]
],
"html/cross-origin-opener-policy/historical/popup-same-site-with-same-origin.https.html": [
[
"html/cross-origin-opener-policy/historical/popup-same-site-with-same-origin.https.html",
- {}
+ {
+ "timeout": "long"
+ }
]
],
"html/cross-origin-opener-policy/historical/popup-same-site-with-same-site.https.html": [
[
"html/cross-origin-opener-policy/historical/popup-same-site-with-same-site.https.html",
- {}
+ {
+ "timeout": "long"
+ }
]
],
- "html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups.https.html": [
+ "html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-same-origin-allow-popups.https.html": [
[
- "html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups.https.html",
- {}
+ "html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-same-origin-allow-popups.https.html",
+ {
+ "timeout": "long"
+ }
]
],
- "html/cross-origin-opener-policy/iframe-popup-same-origin.https.html": [
+ "html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-same-origin.https.html": [
[
- "html/cross-origin-opener-policy/iframe-popup-same-origin.https.html",
- {}
+ "html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-same-origin.https.html",
+ {
+ "timeout": "long"
+ }
]
],
- "html/cross-origin-opener-policy/iframe-popup-unsafe-none.https.html": [
+ "html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-unsafe-none.https.html": [
[
- "html/cross-origin-opener-policy/iframe-popup-unsafe-none.https.html",
- {}
+ "html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-unsafe-none.https.html",
+ {
+ "timeout": "long"
+ }
+ ]
+ ],
+ "html/cross-origin-opener-policy/iframe-popup-same-origin-to-same-origin.https.html": [
+ [
+ "html/cross-origin-opener-policy/iframe-popup-same-origin-to-same-origin.https.html",
+ {
+ "timeout": "long"
+ }
+ ]
+ ],
+ "html/cross-origin-opener-policy/iframe-popup-same-origin-to-unsafe-none.https.html": [
+ [
+ "html/cross-origin-opener-policy/iframe-popup-same-origin-to-unsafe-none.https.html",
+ {
+ "timeout": "long"
+ }
+ ]
+ ],
+ "html/cross-origin-opener-policy/iframe-popup-unsafe-none-to-same-origin.https.html": [
+ [
+ "html/cross-origin-opener-policy/iframe-popup-unsafe-none-to-same-origin.https.html",
+ {
+ "timeout": "long"
+ }
+ ]
+ ],
+ "html/cross-origin-opener-policy/iframe-popup-unsafe-none-to-unsafe-none.https.html": [
+ [
+ "html/cross-origin-opener-policy/iframe-popup-unsafe-none-to-unsafe-none.https.html",
+ {
+ "timeout": "long"
+ }
]
],
"html/cross-origin-opener-policy/no-https.html": [
@@ -362739,19 +363007,25 @@
"html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-cross-origin.https.html": [
[
"html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-cross-origin.https.html",
- {}
+ {
+ "timeout": "long"
+ }
]
],
"html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-same-origin.https.html": [
[
"html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-same-origin.https.html",
- {}
+ {
+ "timeout": "long"
+ }
]
],
"html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-same-site.https.html": [
[
"html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-same-site.https.html",
- {}
+ {
+ "timeout": "long"
+ }
]
],
"html/cross-origin-opener-policy/popup-same-origin-non-initial-about-blank.https.html": [
@@ -362763,55 +363037,73 @@
"html/cross-origin-opener-policy/popup-same-origin-with-cross-origin.https.html": [
[
"html/cross-origin-opener-policy/popup-same-origin-with-cross-origin.https.html",
- {}
+ {
+ "timeout": "long"
+ }
]
],
"html/cross-origin-opener-policy/popup-same-origin-with-same-origin.https.html": [
[
"html/cross-origin-opener-policy/popup-same-origin-with-same-origin.https.html",
- {}
+ {
+ "timeout": "long"
+ }
]
],
"html/cross-origin-opener-policy/popup-same-origin-with-same-site.https.html": [
[
"html/cross-origin-opener-policy/popup-same-origin-with-same-site.https.html",
- {}
+ {
+ "timeout": "long"
+ }
]
],
"html/cross-origin-opener-policy/popup-unsafe-none-with-cross-origin.https.html": [
[
"html/cross-origin-opener-policy/popup-unsafe-none-with-cross-origin.https.html",
- {}
+ {
+ "timeout": "long"
+ }
]
],
"html/cross-origin-opener-policy/popup-unsafe-none-with-same-origin.https.html": [
[
"html/cross-origin-opener-policy/popup-unsafe-none-with-same-origin.https.html",
- {}
+ {
+ "timeout": "long"
+ }
]
],
"html/cross-origin-opener-policy/popup-unsafe-none-with-same-site.https.html": [
[
"html/cross-origin-opener-policy/popup-unsafe-none-with-same-site.https.html",
- {}
+ {
+ "timeout": "long"
+ }
]
],
"html/cross-origin-opener-policy/popup-unspecified-with-cross-origin.https.html": [
[
"html/cross-origin-opener-policy/popup-unspecified-with-cross-origin.https.html",
- {}
+ {
+ "timeout": "long"
+ }
]
],
"html/cross-origin-opener-policy/popup-unspecified-with-same-origin.https.html": [
[
"html/cross-origin-opener-policy/popup-unspecified-with-same-origin.https.html",
- {}
+ {
+ "timeout": "long"
+ }
]
],
"html/cross-origin-opener-policy/popup-unspecified-with-same-site.https.html": [
[
"html/cross-origin-opener-policy/popup-unspecified-with-same-site.https.html",
- {}
+ {
+ "timeout": "long"
+ }
]
],
"html/dom/documents/dom-tree-accessors/Document.body.html": [
@@ -377184,6 +377476,12 @@
{}
]
],
+ "largest-contentful-paint/multiple-redirects-TAO.html": [
+ [
+ "largest-contentful-paint/multiple-redirects-TAO.html",
+ {}
+ ]
+ ],
"largest-contentful-paint/observe-after-untrusted-scroll.html": [
[
"largest-contentful-paint/observe-after-untrusted-scroll.html",
@@ -377807,6 +378105,12 @@
{}
]
],
+ "mathml/presentation-markup/mrow/spacing.html": [
+ [
+ "mathml/presentation-markup/mrow/spacing.html",
+ {}
+ ]
+ ],
"mathml/presentation-markup/operators/embellished-operator-001.html": [
[
"mathml/presentation-markup/operators/embellished-operator-001.html",
@@ -382270,8 +382574,13 @@
[
"script",
"script-tests/FileSystemBaseHandle-postMessage.js"
+ ],
+ [
+ "timeout",
+ "long"
]
- ]
+ ],
+ "timeout": "long"
}
]
],
@@ -395034,7 +395343,8 @@
[
"portals/portals-focus.sub.html",
{
- "testdriver": true
+ "testdriver": true,
+ "timeout": "long"
}
]
],
@@ -409850,6 +410160,24 @@
{}
]
],
+ "referrer-policy/generic/inheritance/iframe-inheritance-document-write.html": [
+ [
+ "referrer-policy/generic/inheritance/iframe-inheritance-document-write.html",
+ {}
+ ]
+ ],
+ "referrer-policy/generic/inheritance/iframe-inheritance-javascript-child.html": [
+ [
+ "referrer-policy/generic/inheritance/iframe-inheritance-javascript-child.html",
+ {}
+ ]
+ ],
+ "referrer-policy/generic/inheritance/iframe-inheritance-javascript.html": [
+ [
+ "referrer-policy/generic/inheritance/iframe-inheritance-javascript.html",
+ {}
+ ]
+ ],
"referrer-policy/generic/inheritance/iframe-inheritance-srcdoc-child.html": [
[
"referrer-policy/generic/inheritance/iframe-inheritance-srcdoc-child.html",
@@ -410652,7 +410980,9 @@
"resource-timing/resource_timing_buffer_full_eventually.html": [
[
"resource-timing/resource_timing_buffer_full_eventually.html",
- {}
+ {
+ "timeout": "long"
+ }
]
],
"resource-timing/resource_timing_buffer_full_when_shrink_buffer_size.html": [
@@ -422691,6 +423021,30 @@
}
]
],
+ "trusted-types/no-require-trusted-types-for-report-only.tentative.html": [
+ [
+ "trusted-types/no-require-trusted-types-for-report-only.tentative.html",
+ {}
+ ]
+ ],
+ "trusted-types/no-require-trusted-types-for.tentative.html": [
+ [
+ "trusted-types/no-require-trusted-types-for.tentative.html",
+ {}
+ ]
+ ],
+ "trusted-types/require-trusted-types-for-report-only.tentative.html": [
+ [
+ "trusted-types/require-trusted-types-for-report-only.tentative.html",
+ {}
+ ]
+ ],
+ "trusted-types/require-trusted-types-for.tentative.html": [
+ [
+ "trusted-types/require-trusted-types-for.tentative.html",
+ {}
+ ]
+ ],
"trusted-types/trusted-types-createHTMLDocument.tentative.html": [
[
"trusted-types/trusted-types-createHTMLDocument.tentative.html",
@@ -441840,6 +442194,52 @@
{}
]
],
+ "workers/modules/shared-worker-import-blob-url.any.js": [
+ [
+ "workers/modules/shared-worker-import-blob-url.any.html",
+ {
+ "script_metadata": [
+ [
+ "global",
+ "!worker"
+ ],
+ [
+ "script",
+ "/workers/modules/resources/import-test-cases.js"
+ ]
+ ]
+ }
+ ]
+ ],
+ "workers/modules/shared-worker-import-failure.html": [
+ [
+ "workers/modules/shared-worker-import-failure.html",
+ {}
+ ]
+ ],
+ "workers/modules/shared-worker-import.any.js": [
+ [
+ "workers/modules/shared-worker-import.any.html",
+ {
+ "script_metadata": [
+ [
+ "global",
+ "!worker"
+ ],
+ [
+ "script",
+ "/workers/modules/resources/import-test-cases.js"
+ ]
+ ]
+ }
+ ]
+ ],
+ "workers/modules/shared-worker-options-type.html": [
+ [
+ "workers/modules/shared-worker-options-type.html",
+ {}
+ ]
+ ],
"workers/name-property.html": [
[
"workers/name-property.html",
@@ -465914,7 +466314,7 @@
},
"paths": {
".azure-pipelines.yml": [
- "03e5a51cc8f77b1a1045027c9a947da02a13c581",
+ "7e1732fd45b186682e93932068f8840ba00d9caf",
"support"
],
".codecov.yml": [
@@ -467190,7 +467590,7 @@
"testharness"
],
"2dcontext/drawing-text-to-the-canvas/2d.text.measure.actualBoundingBox.html": [
- "76fc17a882ff492b29716fcc0ea4230676abc361",
+ "834c1952c5ad86004873c652de0a79993ed2a57e",
"testharness"
],
"2dcontext/drawing-text-to-the-canvas/2d.text.measure.advances.html": [
@@ -470074,7 +470474,7 @@
"support"
],
"2dcontext/tools/tests2dtext.yaml": [
- "6d5f8f660fa3fbc8e2b8b8710070241ccde392d0",
+ "e1423284bd8622b31da6e4ec2a3caaa5ce71dce2",
"support"
],
"2dcontext/transformations/2d.transformation.getTransform.html": [
@@ -472326,7 +472726,7 @@
"support"
],
"README.md": [
- "3b580da869015b968668bec6a26f3137f4a020a0",
+ "482da428db4ab90a006754ccc40209e9f2f13b7d",
"support"
],
"WebCryptoAPI/META.yml": [
@@ -560969,6 +561369,38 @@
"c6393343dff89a6e5a5a5087675145cb1ec1de83",
"testharness"
],
+ "css/compositing/root-element-background-transparency-ref.html": [
+ "4671d44c1c3f3e2ff16149cbaabebb0433aef3e5",
+ "support"
+ ],
+ "css/compositing/root-element-background-transparency.html": [
+ "910eb08e8d3004da7418f8f00f38d022841262f2",
+ "reftest"
+ ],
+ "css/compositing/root-element-blend-mode-ref.html": [
+ "14c99f708564ff97c5affe66c4a634eded0a7ff8",
+ "support"
+ ],
+ "css/compositing/root-element-blend-mode.html": [
+ "2c97d8b5e8ca9139bb83aca0ca90494d6fbbb255",
+ "reftest"
+ ],
+ "css/compositing/root-element-filter-ref.html": [
+ "27cfb11b8f480cdd3cc94c5467bf6b3dc9b831db",
+ "support"
+ ],
+ "css/compositing/root-element-filter.html": [
+ "62bde9dfd991d01314569ae694b495adc489a21e",
+ "reftest"
+ ],
+ "css/compositing/root-element-opacity-ref.html": [
+ "be2348ab967f2ff4c161f8bbb9999a0bd8523e82",
+ "support"
+ ],
+ "css/compositing/root-element-opacity.html": [
+ "4885d805ad3f3b59d60ccbf3047e8694d7be0f18",
+ "reftest"
+ ],
"css/compositing/svg/mix-blend-mode-in-svg-image.html": [
"658e0275d70b357b210ae70243a2f58b9752910c",
"reftest"
@@ -574657,6 +575089,10 @@
"bec931a4e331192704701d261807e9b0ce7d3c6b",
"reftest"
],
+ "css/css-flexbox/zero-content-size-with-scrollbar-crash.html": [
+ "c38659a9d8cff6d0003793896dc83cc78e7a22c4",
+ "crashtest"
+ ],
"css/css-font-loading/META.yml": [
"3ac9b655b0606783334ff91f9fba852df8efdbc1",
"support"
@@ -601297,6 +601733,10 @@
"438fb1432d25d184082f4d8c3033f8c6c2bce6f8",
"support"
],
+ "css/css-text-decor/reference/text-underline-position-001-ref.html": [
+ "aae441ac4e02ddb6e44bfa9004ff33c376cb6548",
+ "support"
+ ],
"css/css-text-decor/text-decoration-001-manual.html": [
"9b620132697dfbf68f0d10575afaf7d902e649da",
"manual"
@@ -601869,6 +602309,14 @@
"71b5a677926544a796727cd21f2d60bfa0fdbb8f",
"reftest"
],
+ "css/css-text-decor/text-underline-position-001a.html": [
+ "f79fc9d39fe1a5e5ff21a4c7d16d2becc00a3e96",
+ "reftest"
+ ],
+ "css/css-text-decor/text-underline-position-001b.html": [
+ "f8c6ff9aadace4b90490089901801bc3c4f7cc14",
+ "reftest"
+ ],
"css/css-text-decor/text-underline-position-019-manual.html": [
"0308fbc8c9ed4b54865a5b382741c148c6853981",
"manual"
@@ -612973,6 +613421,18 @@
"22c7008a672378beee17ae9f6f7528f78af58099",
"reftest"
],
+ "css/css-transforms/transform-translate-background-001-ref.html": [
+ "f0b53d492a008c3d79200f725be7c4f527616b0c",
+ "support"
+ ],
+ "css/css-transforms/transform-translate-background-001.html": [
+ "72011e37bce073ce79bc65ad75dcaf4f55cce55a",
+ "reftest"
+ ],
+ "css/css-transforms/transform-translate-background-002.html": [
+ "b1be52774007c1f7886c18fd18f2acea279ef554",
+ "reftest"
+ ],
"css/css-transforms/transform-translate-ref.html": [
"1a781a06145aa3f6c192976b36dbb47672666ae7",
"support"
@@ -642262,7 +642722,7 @@
"support"
],
"docs/index.md": [
- "d1a527e1a754bdb846c11846e90b23c6e7771a92",
+ "419c99aca9d78c259235dbaa9e8ab662930ffb81",
"support"
],
"docs/intro-video-transcript.md": [
@@ -642446,7 +642906,7 @@
"support"
],
"docs/writing-tests/testharness-api.md": [
- "a17f5795bc33d64570dac59524111675b44a2880",
+ "c882e4daa2d93ed8390fa8d3ba8b662115311389",
"support"
],
"docs/writing-tests/testharness-tutorial.md": [
@@ -645113,7 +645573,7 @@
"b29e66c04a70dffbc17f05f516d3d190159ec1c5",
"testharness"
],
- "element-timing/multiple-redirects-TAO.sub.html": [
+ "element-timing/multiple-redirects-TAO.html": [
"6800f7cf6873ef10540e83fc0fa7b249c8050e0e",
"testharness"
],
@@ -649334,7 +649794,7 @@
"testharness"
],
"fetch/api/policies/referrer-origin-when-cross-origin.html": [
- "18de7364634d18a79861309172ec75ee83676208",
+ "5cd79e4b53615995cb79ad8ad06d9b405151be71",
"testharness"
],
"fetch/api/policies/referrer-origin-when-cross-origin.html.headers": [
@@ -649342,7 +649802,7 @@
"support"
],
"fetch/api/policies/referrer-origin-when-cross-origin.js": [
- "7cd4113f506f26c91275eb65361fc4887e9d1398",
+ "0adadbc55081f0dbb9250be1cec89c7134603bb3",
"support"
],
"fetch/api/policies/referrer-origin-when-cross-origin.js.headers": [
@@ -655190,7 +655650,7 @@
"support"
],
"html/cross-origin-opener-policy/blob-popup.https.html": [
- "4aef1b848917c1f2901eb696a39d5d7f1369a063",
+ "a4e53e7806267049b9190019e2061fd77ac3073a",
"testharness"
],
"html/cross-origin-opener-policy/blob-popup.https.html.headers": [
@@ -655206,7 +655666,7 @@
"support"
],
"html/cross-origin-opener-policy/coep-navigate-popup.https.html": [
- "faa2793e5faaa81d4d819110ec1045dac9d9cde0",
+ "714a4b6c4270900282328af1aacadc8592a0b44e",
"testharness"
],
"html/cross-origin-opener-policy/coep-navigate-popup.https.html.headers": [
@@ -655214,7 +655674,7 @@
"support"
],
"html/cross-origin-opener-policy/coep-redirect.https.html": [
- "2727013783fa3d3c6a26f6746c1a0c28c59fdf19",
+ "83f8f8a33d4b2c9c7f23c02011bcc568836e62ea",
"testharness"
],
"html/cross-origin-opener-policy/coep-redirect.https.html.headers": [
@@ -655222,7 +655682,7 @@
"support"
],
"html/cross-origin-opener-policy/coep.https.html": [
- "de1dd56d9d55e5e3f1de62b16058139204c2e098",
+ "f6d975564f4fd0a5d272ea6977b7aa93c64e4794",
"testharness"
],
"html/cross-origin-opener-policy/coep.https.html.headers": [
@@ -655230,11 +655690,11 @@
"support"
],
"html/cross-origin-opener-policy/coop-navigated-history-popup.https.html": [
- "bd1cabafd4164e51804b0760dbf45885f3df3520",
+ "a061be992c1aa05ba8b0c1290f3562ab9a88904e",
"testharness"
],
"html/cross-origin-opener-policy/coop-navigated-popup.https.html": [
- "3c6019ace0b308562cca08d6d6bfd6484882e1db",
+ "e1741932919a426429083544ce44e2f4438cab3d",
"testharness"
],
"html/cross-origin-opener-policy/coop-navigated-popup.https.html.headers": [
@@ -655250,11 +655710,11 @@
"support"
],
"html/cross-origin-opener-policy/historical/coep-navigate-popup-unsafe-inherit.https.html": [
- "73ef1ea29a2e91f0e4f9a9867081fe8aa5a9c81b",
+ "c389058d9edcb52a1de92cf7aa036686a23afe9a",
"testharness"
],
"html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-cross-origin.https.html": [
- "a8b6d543cd018b06b962b4ad1ef41b8c043ae496",
+ "1f522f70e68c69b57a4aa94847895db97e779ebf",
"testharness"
],
"html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-cross-origin.https.html.headers": [
@@ -655262,7 +655722,7 @@
"support"
],
"html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-same-origin.https.html": [
- "aaaae2dc31799bc46d58424133edb47a8b31794c",
+ "d7686f23d37cdb0cdee43573217353182bc2a671",
"testharness"
],
"html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-same-origin.https.html.headers": [
@@ -655270,7 +655730,7 @@
"support"
],
"html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-same-site.https.html": [
- "fd58b06f783966f2ad24c2c2443c422fce2e94d0",
+ "9a1dc11b417a065dfb1bcf814c07f04b1ffe8ef6",
"testharness"
],
"html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-same-site.https.html.headers": [
@@ -655278,7 +655738,7 @@
"support"
],
"html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-cross-origin.https.html": [
- "7330ff75bcff697490ee248f938bdbb9c79f6b88",
+ "b54ff2f49557ecedcbfceb68e1217bd1ef2c5aa8",
"testharness"
],
"html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-cross-origin.https.html.headers": [
@@ -655286,7 +655746,7 @@
"support"
],
"html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-same-origin.https.html": [
- "01cc6719fd3a202514444765ff6a4e4d2153f2f1",
+ "b2279094b170f908672c85ba3525ab6a3adc032c",
"testharness"
],
"html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-same-origin.https.html.headers": [
@@ -655294,7 +655754,7 @@
"support"
],
"html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-same-site.https.html": [
- "b1a664dd9a5b8e8dd4cf561a31f85e8f2e88ae2d",
+ "371aa41d0117c3e0ccd3317579b9bb8a78d31751",
"testharness"
],
"html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-same-site.https.html.headers": [
@@ -655302,7 +655762,7 @@
"support"
],
"html/cross-origin-opener-policy/historical/popup-same-site-with-cross-origin.https.html": [
- "d0fc7c79841eab57d810566e4eedc3e4f338d954",
+ "af14446257ba12f1e0dbc6b30ea6d29ff7dd905b",
"testharness"
],
"html/cross-origin-opener-policy/historical/popup-same-site-with-cross-origin.https.html.headers": [
@@ -655310,7 +655770,7 @@
"support"
],
"html/cross-origin-opener-policy/historical/popup-same-site-with-same-origin.https.html": [
- "67d2523e28d9af525449a192f659d5be1768532c",
+ "ec463a17706509b1ae431c52e46ecdaee2c7452e",
"testharness"
],
"html/cross-origin-opener-policy/historical/popup-same-site-with-same-origin.https.html.headers": [
@@ -655318,39 +655778,71 @@
"support"
],
"html/cross-origin-opener-policy/historical/popup-same-site-with-same-site.https.html": [
- "78b7ca8fcad0f5a68dbf3fefd3d1945564783fad",
+ "80ed35424c99e324aef7c1e58e4c585246ce14ba",
"testharness"
],
"html/cross-origin-opener-policy/historical/popup-same-site-with-same-site.https.html.headers": [
"34bd099a302f893f92586241ea38aac812bf28d0",
"support"
],
- "html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups.https.html": [
- "0c33b40b181b6f6258614e8f30794926d61ddf6b",
+ "html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-same-origin-allow-popups.https.html": [
+ "b03949e7a9f9a768b5f8911cf34717bd54f5509e",
+ "testharness"
+ ],
+ "html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-same-origin-allow-popups.https.html.headers": [
+ "d83ed86fb9b5d159b9f380424887402edc96cb75",
+ "support"
+ ],
+ "html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-same-origin.https.html": [
+ "66b0a4afa7fd487c5047bcb7a8cd43224b2fc430",
"testharness"
],
- "html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups.https.html.headers": [
+ "html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-same-origin.https.html.headers": [
"d83ed86fb9b5d159b9f380424887402edc96cb75",
"support"
],
- "html/cross-origin-opener-policy/iframe-popup-same-origin.https.html": [
- "2b7decd39cf8861b59788003d64bf84ce48ff984",
+ "html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-unsafe-none.https.html": [
+ "d2f2783606e6cdb021eb0a29bec5d11137af7675",
"testharness"
],
- "html/cross-origin-opener-policy/iframe-popup-same-origin.https.html.headers": [
+ "html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-unsafe-none.https.html.headers": [
+ "d83ed86fb9b5d159b9f380424887402edc96cb75",
+ "support"
+ ],
+ "html/cross-origin-opener-policy/iframe-popup-same-origin-to-same-origin.https.html": [
+ "635f7ab3b872c49c436a5cfcb387e63100322ea3",
+ "testharness"
+ ],
+ "html/cross-origin-opener-policy/iframe-popup-same-origin-to-same-origin.https.html.headers": [
"46ad58d83bf6e98913ca4c564b7acb8f19fa0093",
"support"
],
- "html/cross-origin-opener-policy/iframe-popup-unsafe-none.https.html": [
- "78a18118504bb9ad9a52b25bfc12059721708dd9",
+ "html/cross-origin-opener-policy/iframe-popup-same-origin-to-unsafe-none.https.html": [
+ "d6521bd9dc4cdf32aae3e252a77af3c7b1bf5b83",
"testharness"
],
- "html/cross-origin-opener-policy/iframe-popup-unsafe-none.https.html.headers": [
+ "html/cross-origin-opener-policy/iframe-popup-same-origin-to-unsafe-none.https.html.headers": [
+ "46ad58d83bf6e98913ca4c564b7acb8f19fa0093",
+ "support"
+ ],
+ "html/cross-origin-opener-policy/iframe-popup-unsafe-none-to-same-origin.https.html": [
+ "ad7c0e263ab40957ad6b9584254c00ace6941943",
+ "testharness"
+ ],
+ "html/cross-origin-opener-policy/iframe-popup-unsafe-none-to-same-origin.https.html.headers": [
+ "073ce7adfbd81cb7c0b2f91f96c8349b6677f26c",
+ "support"
+ ],
+ "html/cross-origin-opener-policy/iframe-popup-unsafe-none-to-unsafe-none.https.html": [
+ "8113189cc86c42b367224246c545b253ee780fa5",
+ "testharness"
+ ],
+ "html/cross-origin-opener-policy/iframe-popup-unsafe-none-to-unsafe-none.https.html.headers": [
"073ce7adfbd81cb7c0b2f91f96c8349b6677f26c",
"support"
],
"html/cross-origin-opener-policy/no-https.html": [
- "f4e926b2eb2838c443f2e8f4d3bc024e719039a7",
+ "db15d5c676efb6f5761dec52ad56580fdfc1acbf",
"testharness"
],
"html/cross-origin-opener-policy/no-https.html.headers": [
@@ -655361,12 +655853,8 @@
"e36b5190aafc0b42b043802422dd411a831a20a5",
"testharness"
],
- "html/cross-origin-opener-policy/popup-meta-http-equiv.https.html.headers": [
- "46ad58d83bf6e98913ca4c564b7acb8f19fa0093",
- "support"
- ],
"html/cross-origin-opener-policy/popup-redirect-cache.https.html": [
- "0524878a03a8d3764c63b77b5c8c4f1453c5a288",
+ "d68c80664bc549ca0e9786653bc0b3759ca31953",
"testharness"
],
"html/cross-origin-opener-policy/popup-redirect-cache.https.html.headers": [
@@ -655374,7 +655862,7 @@
"support"
],
"html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-cross-origin.https.html": [
- "cea3788ba83d41a97b3b59bd2744db079f272a45",
+ "74ded50d6677abeb0e7308ebd17f402e2e6438ca",
"testharness"
],
"html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-cross-origin.https.html.headers": [
@@ -655382,7 +655870,7 @@
"support"
],
"html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-same-origin.https.html": [
- "a50231f82287b03d15c186472767c215035886f6",
+ "b67db7e70666c7d30b7299cd2947bf1baa4a5915",
"testharness"
],
"html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-same-origin.https.html.headers": [
@@ -655390,7 +655878,7 @@
"support"
],
"html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-same-site.https.html": [
- "53b4263a70fd41bd044440abeddce3b9585e5850",
+ "af7836f77ee888d4856419a3ad4f37765a81c864",
"testharness"
],
"html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-same-site.https.html.headers": [
@@ -655406,7 +655894,7 @@
"support"
],
"html/cross-origin-opener-policy/popup-same-origin-with-cross-origin.https.html": [
- "9f7d27b3c8dc381f893c6ccf84c463db7f503f9b",
+ "f72f8a59be20955475ab484c281b771c04a8ec13",
"testharness"
],
"html/cross-origin-opener-policy/popup-same-origin-with-cross-origin.https.html.headers": [
@@ -655414,7 +655902,7 @@
"support"
],
"html/cross-origin-opener-policy/popup-same-origin-with-same-origin.https.html": [
- "c84219a80f5c83ca6e4dc244406db9f05461fa83",
+ "5798851f686584ba6cae36d84bb04019d2967880",
"testharness"
],
"html/cross-origin-opener-policy/popup-same-origin-with-same-origin.https.html.headers": [
@@ -655422,7 +655910,7 @@
"support"
],
"html/cross-origin-opener-policy/popup-same-origin-with-same-site.https.html": [
- "b875cc2e0e4abbc215be36111a22414f72126138",
+ "1af0f7ca3ac35aa318f35df089a2497d747617a3",
"testharness"
],
"html/cross-origin-opener-policy/popup-same-origin-with-same-site.https.html.headers": [
@@ -655430,11 +655918,11 @@
"support"
],
"html/cross-origin-opener-policy/popup-unsafe-none-with-cross-origin.https.html": [
- "5cbf5b4c20c9b89c5cf946ebeea1733fbfb57c2c",
+ "6b6397c48691c3ae099e4563bf6e5c391fe2087b",
"testharness"
],
"html/cross-origin-opener-policy/popup-unsafe-none-with-same-origin.https.html": [
- "f8a4ebe71288d6071f3d644607132a32b0c63f79",
+ "66d720f7e92abb387e4cc39fd6a90767615b7a38",
"testharness"
],
"html/cross-origin-opener-policy/popup-unsafe-none-with-same-origin.https.html.headers": [
@@ -655442,19 +655930,19 @@
"support"
],
"html/cross-origin-opener-policy/popup-unsafe-none-with-same-site.https.html": [
- "e38acf4fcb1e1d0b039894013ab56e011c5efa8f",
+ "58ea328f0cffdd185efa5a0891db8397ac828d32",
"testharness"
],
"html/cross-origin-opener-policy/popup-unspecified-with-cross-origin.https.html": [
- "d89398cd653de327a10ff53b58b29a62e422ffb8",
+ "6b5bf18bf43495c3a9b7fe04c82ec5c3ea2efbd8",
"testharness"
],
"html/cross-origin-opener-policy/popup-unspecified-with-same-origin.https.html": [
- "cb6fc02ac171f606cb00a315d327062d13f32e91",
+ "6000ec600f8b41368f8bf2cf7822cd90ae0e825f",
"testharness"
],
"html/cross-origin-opener-policy/popup-unspecified-with-same-site.https.html": [
- "6e0edfa04233865f802a12a3ad3c4f26d50866f7",
+ "2f9d6f15e23dbf46910b56cde7e7c59dd0040607",
"testharness"
],
"html/cross-origin-opener-policy/resources/call-functionCalledByOpenee.html": [
@@ -655462,11 +655950,11 @@
"support"
],
"html/cross-origin-opener-policy/resources/common.js": [
- "59ba33d65b04e26c1db810783b7fdcc96dee8954",
+ "760db60365fbe79a70d37c770a48a162c5058002",
"support"
],
"html/cross-origin-opener-policy/resources/coop-coep.py": [
- "e6f655ab728107e4bac31cd7748711f719b01bd3",
+ "0271d7834af98a1d25fd2869c11c6f56b08bfcd3",
"support"
],
"html/cross-origin-opener-policy/resources/iframe-popup.sub.html": [
@@ -655474,7 +655962,7 @@
"support"
],
"html/cross-origin-opener-policy/resources/postback.html": [
- "cf3c93bbe1d3589e9a649db34995e02e2ac9c1e4",
+ "5955e2d7593a51fa112fe82bb97b79add54f3ba0",
"support"
],
"html/cross-origin-opener-policy/resources/postback.html.headers": [
@@ -661817,6 +662305,10 @@
"4abd9ce533d7740e906a83a0e8cbc67c8613bf52",
"testharness"
],
+ "html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-crash.html": [
+ "111dcbe5338a1df74c69a05cccd618f37a761c91",
+ "crashtest"
+ ],
"html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-default-style.html": [
"f07c84f406cefc7054e8a13c2796d3d82673bdf7",
"testharness"
@@ -662321,6 +662813,14 @@
"ae0c9c8c8e05d4ffbe46c2250d6f2568903f84c9",
"support"
],
+ "html/rendering/replaced-elements/embedded-content/object-fallback-text-decoration-ref.html": [
+ "9481e80ac81b14cc7c4a044b16cc3e8cf5d547e6",
+ "support"
+ ],
+ "html/rendering/replaced-elements/embedded-content/object-fallback-text-decoration.html": [
+ "89657ef8a2dd6be764768388a8d57d994cc0fdb3",
+ "reftest"
+ ],
"html/rendering/replaced-elements/embedded-content/video-controls-vertical-writing-mode-ref.html": [
"9a2d1d064139b4f58dc06c1d588c50b89a97aaec",
"support"
@@ -662481,6 +662981,14 @@
"c2e96e987ea943e29626e0cfd013ef6d6cae3bbc",
"reftest"
],
+ "html/rendering/the-details-element/summary-text-decoration-ref.html": [
+ "8b6105fd2ec3eaa17ff9f18e50acfe989c4878af",
+ "support"
+ ],
+ "html/rendering/the-details-element/summary-text-decoration.html": [
+ "80bbd44c46c3b5e07c64eeb959c9642e156eab3f",
+ "reftest"
+ ],
"html/rendering/unmapped-attributes.html": [
"3f457eb492f0b72b2a9c5891e8784d0b69958b38",
"testharness"
@@ -664770,7 +665278,7 @@
"testharness"
],
"html/semantics/embedded-content/the-canvas-element/security.pattern.fillStyle.sub.html": [
- "6695138c57b6556d29fc6070efa5f1542f9fa3c1",
+ "70c5f194ff63bedea313fe924f8c2f80849d9bb5",
"testharness"
],
"html/semantics/embedded-content/the-canvas-element/security.pattern.image.fillStyle.cross.html": [
@@ -673486,7 +673994,7 @@
"support"
],
"infrastructure/metadata/infrastructure/reftest/legacy/fuzzy-ref-2.html.ini": [
- "0bbb2bf0aa5faf14d0c92f044cd55e5baceffdca",
+ "cdfd9736c54bdf645a776caaa93d497fe937a04e",
"support"
],
"infrastructure/metadata/infrastructure/reftest/legacy/reftest_and_fail_0-ref.html.ini": [
@@ -673498,19 +674006,23 @@
"support"
],
"infrastructure/metadata/infrastructure/reftest/legacy/reftest_fuzzy_chain_ini.html.ini": [
- "69dc018f38990001626df54f1d067efd3421fdd0",
+ "d3776e243e460f438bcaddd1169ccbcc937b6e33",
+ "support"
+ ],
+ "infrastructure/metadata/infrastructure/reftest/reftest_fuzzy_1.html.ini": [
+ "44f185357bc55366f4ac1825e16c91e356ffe2f6",
"support"
],
"infrastructure/metadata/infrastructure/reftest/reftest_fuzzy_ini_full.html.ini": [
- "0ebde2f4a62f4df54dd5639904df0478b457e56b",
+ "d682550d53eaeab5ff70cbabb09e1ff7a7bdb8d2",
"support"
],
"infrastructure/metadata/infrastructure/reftest/reftest_fuzzy_ini_ref_only.html.ini": [
- "70c0446b5dc9a41dd692b131453ef8931fe5165a",
+ "4437fceff899b84e9f316cf6d0e6fb300dc503d7",
"support"
],
"infrastructure/metadata/infrastructure/reftest/reftest_fuzzy_ini_short.html.ini": [
- "1859d256800414818d55117ab8e05d19cdb819e0",
+ "27e3290e6fbc90ba0b08816924924fe4bc0b8922",
"support"
],
"infrastructure/metadata/infrastructure/reftest/reftest_match_and_mismatch-0.html.ini": [
@@ -675161,6 +675673,10 @@
"0e40127b57683fa76392827003b15c2bb9c8d558",
"testharness"
],
+ "largest-contentful-paint/multiple-redirects-TAO.html": [
+ "ec8ddc3ec61c6ca854dc55d4b3384e6403e54569",
+ "testharness"
+ ],
"largest-contentful-paint/observe-after-untrusted-scroll.html": [
"1b2cd1d25b5bb9da740e5127526fed41dcebfae7",
"testharness"
@@ -675898,11 +676414,11 @@
"reftest"
],
"mathml/presentation-markup/mrow/inferred-mrow-baseline.html": [
- "1541b2d6ce17c90a52c15f3ce5461a5c7d42920f",
+ "c92cbba922f0c126d93a431daf789dd291a4dbb5",
"testharness"
],
"mathml/presentation-markup/mrow/inferred-mrow-stretchy.html": [
- "b6a51762dfda0b05cbcc272b9fb5cedad0c66a94",
+ "4b89dd6fa5f0daddfb91aa5ad0d29ad3be1da551",
"testharness"
],
"mathml/presentation-markup/mrow/legacy-mfenced-element-001-ref.html": [
@@ -675929,6 +676445,10 @@
"0de9a90eed9de0b7a6b4ff9484db1c9d87376c24",
"testharness"
],
+ "mathml/presentation-markup/mrow/spacing.html": [
+ "4bdfc9a001a3fa87716f3e6b0e5e3da3f0ee1c74",
+ "testharness"
+ ],
"mathml/presentation-markup/operators/embellished-operator-001.html": [
"31bdff2fd7c2c4e463adfba2c3768d678c5c7424",
"testharness"
@@ -676806,7 +677326,7 @@
"support"
],
"mathml/support/feature-detection.js": [
- "1952d3b06c123955832d0f9d5e35031285703c73",
+ "7ad4d953d0822c306882524952738b894521325d",
"support"
],
"mathml/support/layout-comparison.js": [
@@ -676910,7 +677430,7 @@
"support"
],
"measure-memory/measure-memory.tentative.any.js": [
- "c4f47a0b0844623abcaddb6f5b873552cc9908aa",
+ "cf42e2c9f4667432cf642ed0696f1afc989cafd9",
"testharness"
],
"media-capabilities/META.yml": [
@@ -680670,7 +681190,7 @@
"manual"
],
"native-file-system/native_FileSystemBaseHandle-postMessage-manual.https.tentative.html": [
- "266238c4acc269b4a29b0f849f1807172ce3dd72",
+ "e04be7df5fc7bdb00c1737c35174ee368370c43d",
"manual"
],
"native-file-system/native_FileSystemDirectoryHandle-getDirectory-manual.https.tentative.html": [
@@ -680774,7 +681294,7 @@
"testharness"
],
"native-file-system/sandboxed_FileSystemBaseHandle-postMessage.tentative.https.window.js": [
- "e010f6599e890f0eeaffd01a4bae962a8aa8b950",
+ "f7d5776e19e50865f298877a08e0b0a463073d6c",
"testharness"
],
"native-file-system/sandboxed_FileSystemDirectoryHandle-getDirectory.tentative.https.any.js": [
@@ -689574,7 +690094,7 @@
"testharness"
],
"portals/portals-focus.sub.html": [
- "1779590779af1f7306925add9dfdd84a6abfa323",
+ "97b7579eb63694310aa4d34b656c7414e68bd7c2",
"testharness"
],
"portals/portals-host-exposure.sub.html": [
@@ -702570,17 +703090,33 @@
"testharness"
],
"referrer-policy/generic/inheritance/iframe-inheritance-data.html": [
- "368e77e1217d449f558f6e45174227fd64e3b27d",
+ "1d39781e30583201cf057c5269146ea95ca2d510",
+ "testharness"
+ ],
+ "referrer-policy/generic/inheritance/iframe-inheritance-document-write.html": [
+ "cba71bb1d9f541deef790d3adeee159180196dca",
+ "testharness"
+ ],
+ "referrer-policy/generic/inheritance/iframe-inheritance-javascript-child.html": [
+ "e20da4f2cccfe4d8981d83ddb6d48ec3d6f4c2d6",
+ "testharness"
+ ],
+ "referrer-policy/generic/inheritance/iframe-inheritance-javascript.html": [
+ "77b6d759f5f4694298da8dc3f72825fbfcffe799",
"testharness"
],
"referrer-policy/generic/inheritance/iframe-inheritance-srcdoc-child.html": [
- "ecd5a41cc0beb02a36a7dcaca2803e6c84697158",
+ "cd4b4ae724814625b210b5fc96ecf5ecef321822",
"testharness"
],
"referrer-policy/generic/inheritance/iframe-inheritance-srcdoc.html": [
- "6639ebd98731b28cef86e3743e4def21cfa14fa9",
+ "c4dffd3ed70607f0caaddb99d0b0291e719e1e96",
"testharness"
],
+ "referrer-policy/generic/inheritance/resources/make-html-script.js": [
+ "e285c559c04db3884022a94f6df8ca4f1b5e8cf1",
+ "support"
+ ],
"referrer-policy/generic/link-rel-prefetch.html": [
"72e831c92129aed2d80a4178fb56f9d7c20dacad",
"testharness"
@@ -703090,7 +703626,7 @@
"testharness"
],
"resource-timing/resource_timing_buffer_full_eventually.html": [
- "ce745237c0657c7045b00d9c7b8e71770ed490fc",
+ "140973156fbd85b7228c7dc6e2b36866bbcd2975",
"testharness"
],
"resource-timing/resource_timing_buffer_full_when_shrink_buffer_size.html": [
@@ -704162,7 +704698,7 @@
"testharness"
],
"scroll-to-text-fragment/scroll-to-text-fragment-target.html": [
- "bc9ee9e6bc550d4e149354e8a989ef7ba29520ca",
+ "09d22ff6d1d6792b66865d62ccd8e07ec96a70b7",
"support"
],
"scroll-to-text-fragment/scroll-to-text-fragment.html": [
@@ -705650,7 +706186,7 @@
"testharness"
],
"service-workers/service-worker/clients-matchall-client-types.https.html": [
- "a2a56816a650fa54d6075055a64e0f009e5829ac",
+ "54f182b6202cd67cc63e159e7e2d4294fdf975ff",
"testharness"
],
"service-workers/service-worker/clients-matchall-exact-controller.https.html": [
@@ -705930,7 +706466,7 @@
"testharness"
],
"service-workers/service-worker/getregistrations.https.html": [
- "3e48d5fe3618b36713d724b71e4026ea24553bd4",
+ "3a9b9a23317b2bb1370689b553a49c28de4cf8f8",
"testharness"
],
"service-workers/service-worker/global-serviceworker.https.any.js": [
@@ -708938,7 +709474,7 @@
"support"
],
"speech-api/META.yml": [
- "9ce8830e78fc4be5b25e5382248810932abfd829",
+ "88f1837f96f6e140990eb2de9981f7901596a32f",
"support"
],
"speech-api/SpeechRecognition-abort-manual.https.html": [
@@ -710381,6 +710917,14 @@
"5757d07a0999cde2b5ca8ddeb6307d632772de5f",
"reftest"
],
+ "svg/extensibility/foreignObject/foreign-object-scale-scroll-ref.html": [
+ "a2217fed5d059cc819034ad7101bd4ff19856ca3",
+ "support"
+ ],
+ "svg/extensibility/foreignObject/foreign-object-scale-scroll.html": [
+ "72ce40dc5c04a647bb81dcf88020ec762c3408e1",
+ "reftest"
+ ],
"svg/extensibility/foreignObject/foreign-object-size-ref.html": [
"e0b17a2c4a287ee6fe339b23cc9df94de54c0bfb",
"support"
@@ -714582,7 +715126,7 @@
"support"
],
"tools/ci/azure/install_edge.yml": [
- "e4c425ab7a0f03218d922e7310ea9d8fde0f51aa",
+ "297b6e60b29f3a9bbd00b3ee00b705635138f2cb",
"support"
],
"tools/ci/azure/install_firefox.yml": [
@@ -719494,7 +720038,7 @@
"support"
],
"tools/wpt/browser.py": [
- "f0c2eeb94b8c52c5c6d10491fd952437163d0c0a",
+ "13ce823d0cecff9f84e131be80f101bd468e3cf5",
"support"
],
"tools/wpt/commands.json": [
@@ -719938,7 +720482,7 @@
"support"
],
"tools/wptrunner/wptrunner/executors/executorselenium.py": [
- "ceca81211e1140577cc3a5f163ffe17c73dd56a3",
+ "39d723a788662dd55c2707eb8d670dba6237cd3c",
"support"
],
"tools/wptrunner/wptrunner/executors/executorservo.py": [
@@ -719950,7 +720494,7 @@
"support"
],
"tools/wptrunner/wptrunner/executors/executorwebdriver.py": [
- "0b329210fc546f9ee50a8a4d0ae02133e3446106",
+ "d09eb1e145170243dc9e74aa68f53d05154283fa",
"support"
],
"tools/wptrunner/wptrunner/executors/executorwebkit.py": [
@@ -720174,7 +720718,7 @@
"support"
],
"tools/wptrunner/wptrunner/wptcommandline.py": [
- "91f1161b01b99f31ef1d3dde05333627bf4365b2",
+ "5b7278b99ff4bfe03981f87671a240141bd0a037",
"support"
],
"tools/wptrunner/wptrunner/wptlogging.py": [
@@ -720670,7 +721214,7 @@
"testharness"
],
"trusted-types/GlobalEventHandlers-onclick.tentative.html": [
- "8c9c2f1a70bdb368bf535f40b8eae136c2eee23a",
+ "6cbf680fa26d2e3aeea6152ecb22d3b8e2e1c098",
"testharness"
],
"trusted-types/HTMLElement-generic.tentative.html": [
@@ -720754,7 +721298,7 @@
"testharness"
],
"trusted-types/TrustedTypePolicyFactory-metadata.tentative.html": [
- "da7d1b4f87700e15420c7c849eaa683cd42c0e5d",
+ "67c734b5a4285576bbe51f6e4f67e674ca1c1c03",
"testharness"
],
"trusted-types/Window-TrustedTypes.tentative.html": [
@@ -720762,51 +721306,51 @@
"testharness"
],
"trusted-types/WorkerGlobalScope-importScripts.https.html": [
- "9dbfd7b93c97abda7beff52e2e9afebefe518f29",
+ "0aa965e16e08e9ba90b63ef0ab9e731f6ebffbdf",
"testharness"
],
"trusted-types/block-Node-multiple-arguments.tentative.html": [
- "5552e1313728c9688b7dfa32a9ee2bea38faa151",
+ "879d34f96126945fb3ae78d9c5f86ccb04b1f39c",
"testharness"
],
"trusted-types/block-string-assignment-to-DOMParser-parseFromString.tentative.html": [
- "82e31200e6ba5150672e28a898d70d71486ada8a",
+ "12cef6af661a5f56f59cdd7e6a5f81ae6e200b0c",
"testharness"
],
"trusted-types/block-string-assignment-to-DOMWindowTimers-setTimeout-setInterval.tentative.html": [
- "468ed7b6975194ffde6b4106b0d78f5b99ca24ee",
+ "6d723ba23b6b196d97c3e5816e7d867803b95eb0",
"testharness"
],
"trusted-types/block-string-assignment-to-Document-write.tentative.html": [
- "4defb56c88ed763bf65c3f45e16a7d56234b7970",
+ "1049b46563d4b95d089db0d18b37b90970f1018b",
"testharness"
],
"trusted-types/block-string-assignment-to-Element-insertAdjacentHTML.tentative.html": [
- "37a73f08c20a297a74bd7025906444a1083cb0c1",
+ "1e8c091d87e70b5d3d037dd1a49fd4774aa56628",
"testharness"
],
"trusted-types/block-string-assignment-to-Element-outerHTML.tentative.html": [
- "8f314a26bf5d522276864abdc989a403afdfd170",
+ "17815e6a9e9bfe4199d089f03504aa89d09203ff",
"testharness"
],
"trusted-types/block-string-assignment-to-Element-setAttribute.tentative.html": [
- "2639e16ea084063d90c7d176a576f2e77a4293d7",
+ "47c4c3557f8363af8fd3937401345ac56c9941eb",
"testharness"
],
"trusted-types/block-string-assignment-to-Element-setAttributeNS.tentative.html": [
- "5754521b2bd78ebf31c496961108386aff23650f",
+ "cc8b05e8c8370a50da89d8232e7276ae4b75b356",
"testharness"
],
"trusted-types/block-string-assignment-to-HTMLElement-generic.tentative.html": [
- "84ff83bc083ac473704d791f929df5ae6ba7f1f6",
+ "b5745199f41c49d7aab63822c3138548907544f0",
"testharness"
],
"trusted-types/block-string-assignment-to-Range-createContextualFragment.tentative.html": [
- "61553eb71dfcf4a49e580450602aabcc3e515282",
+ "a57376206de6f1383ed716494fe328a842d37ba1",
"testharness"
],
"trusted-types/block-text-node-insertion-into-script-element.tentative.html": [
- "04b19f7e42111a11073a4049350f7d8ddde7d1b2",
+ "1f5e8fda7aeacc4494643b570c9526fc3a855caa",
"testharness"
],
"trusted-types/csp-block-eval.tentative.html": [
@@ -720818,7 +721362,7 @@
"testharness"
],
"trusted-types/default-policy-report-only.tentative.html.headers": [
- "fa87952ae486b3a902eca0257eadace8e25e881f",
+ "67b9ef7a3c5ef2f53775de6965ca12343026a829",
"support"
],
"trusted-types/default-policy.tentative.html": [
@@ -720826,7 +721370,7 @@
"testharness"
],
"trusted-types/default-policy.tentative.html.headers": [
- "1bc33add09b4b34ce2cba21f488f8ed53345a27a",
+ "6a40e40a586a5b0ad3f01bf8e45402e74d424cd2",
"support"
],
"trusted-types/empty-default-policy-report-only.tentative.html": [
@@ -720834,7 +721378,7 @@
"testharness"
],
"trusted-types/empty-default-policy-report-only.tentative.html.headers": [
- "fa87952ae486b3a902eca0257eadace8e25e881f",
+ "67b9ef7a3c5ef2f53775de6965ca12343026a829",
"support"
],
"trusted-types/empty-default-policy.tentative.html": [
@@ -720842,7 +721386,7 @@
"testharness"
],
"trusted-types/empty-default-policy.tentative.html.headers": [
- "1bc33add09b4b34ce2cba21f488f8ed53345a27a",
+ "6a40e40a586a5b0ad3f01bf8e45402e74d424cd2",
"support"
],
"trusted-types/eval-csp-no-tt.tentative.html": [
@@ -720850,11 +721394,11 @@
"testharness"
],
"trusted-types/eval-csp-tt-default-policy.tentative.html": [
- "8f1926d9cf26ff2f9b1be1c65e6c6784e75c24b2",
+ "eaa74eaf4cd03e0aa3da97e26f700317945a87da",
"testharness"
],
"trusted-types/eval-csp-tt-no-default-policy.tentative.html": [
- "dc976d64abd62332366f3bee60b8915245fc437d",
+ "0da09a8a5cd1c2d353b17850ff89b607afa1873f",
"testharness"
],
"trusted-types/eval-no-csp-no-tt-default-policy.tentative.html": [
@@ -720866,19 +721410,43 @@
"testharness"
],
"trusted-types/eval-with-permissive-csp.tentative.html": [
- "074fe79dc93fee6563bcb9ce2db3fa708bf4ad4f",
+ "32f12d8e129d69c225cc26e3b886f4ff91469542",
"testharness"
],
"trusted-types/idlharness.tentative.window.js": [
"5a854a12b78026a3318dad70ffa0d6a690e39f55",
"testharness"
],
+ "trusted-types/no-require-trusted-types-for-report-only.tentative.html": [
+ "56f6295221355dd0c0900f9932222c461c11eda8",
+ "testharness"
+ ],
+ "trusted-types/no-require-trusted-types-for-report-only.tentative.html.headers": [
+ "fa87952ae486b3a902eca0257eadace8e25e881f",
+ "support"
+ ],
+ "trusted-types/no-require-trusted-types-for.tentative.html": [
+ "4e11b03617beb3716f51653843fd458c69274758",
+ "testharness"
+ ],
+ "trusted-types/require-trusted-types-for-report-only.tentative.html": [
+ "25b4440ef4117010bb7da7c8f3ad87f01d3bf55f",
+ "testharness"
+ ],
+ "trusted-types/require-trusted-types-for-report-only.tentative.html.headers": [
+ "c6412f8d472fcfd6022b0ae485f52b3d3dedd820",
+ "support"
+ ],
+ "trusted-types/require-trusted-types-for.tentative.html": [
+ "95cfc4d106e5adfe6539641a3b046796b257b972",
+ "testharness"
+ ],
"trusted-types/support/WorkerGlobalScope-importScripts.https.js": [
"fa63c8bad0fcd9f93d89c8c3bea2d8a0b59d2094",
"support"
],
"trusted-types/support/WorkerGlobalScope-importScripts.https.js.headers": [
- "1bc33add09b4b34ce2cba21f488f8ed53345a27a",
+ "6a40e40a586a5b0ad3f01bf8e45402e74d424cd2",
"support"
],
"trusted-types/support/helper.sub.js": [
@@ -720890,7 +721458,7 @@
"support"
],
"trusted-types/support/navigation-report-only-support.html.headers": [
- "fa87952ae486b3a902eca0257eadace8e25e881f",
+ "67b9ef7a3c5ef2f53775de6965ca12343026a829",
"support"
],
"trusted-types/support/navigation-support.html": [
@@ -720898,7 +721466,7 @@
"support"
],
"trusted-types/support/navigation-support.html.headers": [
- "1bc33add09b4b34ce2cba21f488f8ed53345a27a",
+ "6a40e40a586a5b0ad3f01bf8e45402e74d424cd2",
"support"
],
"trusted-types/support/worker.js": [
@@ -720906,7 +721474,7 @@
"support"
],
"trusted-types/trusted-types-createHTMLDocument.tentative.html": [
- "6ab5f42d5ffd82ccc3bf5c9ea8916c2b2f810987",
+ "711e494a1607d575e1ee7f48693b5a442617ac42",
"testharness"
],
"trusted-types/trusted-types-duplicate-names-list-report-only.tentative.html": [
@@ -720926,39 +721494,39 @@
"testharness"
],
"trusted-types/trusted-types-eval-reporting-no-unsafe-eval.tentative.https.html": [
- "7902df1c30385ef3896829c7c6f7af646b5403ed",
+ "786731041140b5bbe228869eeeb0ccb4bc6f1544",
"testharness"
],
"trusted-types/trusted-types-eval-reporting-no-unsafe-eval.tentative.https.html.headers": [
- "4bc0bd3c1ab29d551a5e9988bde5a9dc8f6fa1a7",
+ "30fe3b1df1d8f10ea4eb495f53bf93066a9e5ecd",
"support"
],
"trusted-types/trusted-types-eval-reporting-report-only.tentative.https.html": [
- "bd8933a48355f46f1973764874e017b263df197c",
+ "18c035215e0b9f1ba7b6fab226e9c9853049fa36",
"testharness"
],
"trusted-types/trusted-types-eval-reporting-report-only.tentative.https.html.headers": [
- "ba26c77fbf498385424205b8bff0c404f0f5357b",
+ "1d7033658c1eccb672e85b281ba800832c972712",
"support"
],
"trusted-types/trusted-types-eval-reporting.tentative.https.html": [
- "c751ae1330cd01cfb1c4b21d0a676576656837b2",
+ "a521f94389ae0412a36b87f60d5428415b184a88",
"testharness"
],
"trusted-types/trusted-types-eval-reporting.tentative.https.html.headers": [
- "2e935f73a48c42346b6352fa6cd16d12294eebd8",
+ "91a2be91ef749e470f8998d7058871484dcb274d",
"support"
],
"trusted-types/trusted-types-navigation.tentative.html": [
- "7f17c64e57090392c100eb0791372fcf9107de13",
+ "657cbb74e0ecd5b30fbd73fb73a54eb6db62dfd7",
"testharness"
],
"trusted-types/trusted-types-report-only.tentative.https.html": [
- "bf0a1eb9c1911e2fb25ed89dbd14e7dfd86cf358",
+ "fcb77841163d9a09774497d2b8588f85c2a42b06",
"testharness"
],
"trusted-types/trusted-types-report-only.tentative.https.html.headers": [
- "b38cfae2cb209eec5b8c9e8b0c774262694c1aec",
+ "857a8b31e86bc395e95913ee521d4fc73109c74c",
"support"
],
"trusted-types/trusted-types-reporting-check-report.https.html": [
@@ -720970,15 +721538,15 @@
"support"
],
"trusted-types/trusted-types-reporting.tentative.https.html": [
- "10a951fa12cb8d69249a96cb85ce34f6136e52c5",
+ "ef282dc609c88c1e3add16ed4b3363e75030727a",
"testharness"
],
"trusted-types/trusted-types-reporting.tentative.https.html.headers": [
- "947a151c874ce9d372baa786c1b2964cbd9bc279",
+ "fa8aceab74b0f6e937da3999d471f6afaac4c24e",
"support"
],
"trusted-types/tt-block-eval.tentative.html": [
- "e721b0e0d3699301e7580dcaecf4fc189e077636",
+ "8fe8aa50d6c9f8e3ac5f1a01a0d41f84a5c03549",
"testharness"
],
"uievents/META.yml": [
@@ -724342,7 +724910,7 @@
"testharness"
],
"url/urlsearchparams-constructor.any.js": [
- "398021dde2f35f427399c639871bfbb8106a3279",
+ "f7989f70ea0071bc7180e0a23f10aef55335734e",
"testharness"
],
"url/urlsearchparams-delete.any.js": [
@@ -730006,7 +730574,7 @@
"testharness"
],
"webrtc/RTCPeerConnection-createDataChannel.html": [
- "58e757bce076e9b5ad16c5943ff3065b91305fae",
+ "943e5728775494b8c5be4c521ce9671cd4e1bc4e",
"testharness"
],
"webrtc/RTCPeerConnection-createOffer.html": [
@@ -736586,7 +737154,7 @@
"support"
],
"workers/modules/resources/dynamic-import-and-then-static-import-worker.js": [
- "9a386e63be51dcdae988de99bdd76709bf49d1b6",
+ "527702f551174f8f2578fce16c7854351126e3a5",
"support"
],
"workers/modules/resources/dynamic-import-given-url-worker.js": [
@@ -736614,7 +737182,7 @@
"support"
],
"workers/modules/resources/dynamic-import-worker.js": [
- "07f4df9db3ebd94dbc5ffd56fa7df36635a93857",
+ "2e756fe055e9e9ec815031483b02dc286918ca2c",
"support"
],
"workers/modules/resources/empty-worker.js": [
@@ -736622,7 +737190,7 @@
"support"
],
"workers/modules/resources/eval-dynamic-import-worker.js": [
- "af57b19f98ddcae391c4a55eb7ad1f51a4a0acf5",
+ "60080d4292a8033e9824a289eef85574cc6a3a81",
"support"
],
"workers/modules/resources/export-on-dynamic-import-script.js": [
@@ -736654,7 +737222,7 @@
"support"
],
"workers/modules/resources/import-scripts-worker.js": [
- "676cccb2ad7f6fc6c6a77474ca0683738db03983",
+ "d85f573ffe3afa285b931ca0b81c76e9388252e4",
"support"
],
"workers/modules/resources/import-test-cases.js": [
@@ -736662,11 +737230,11 @@
"support"
],
"workers/modules/resources/nested-dynamic-import-worker.js": [
- "cb37f6e20f67c13f77582de19a1d4bd852537aa7",
+ "00da43c5f0787474462da62ec1dc6647aa2469b3",
"support"
],
"workers/modules/resources/nested-static-import-worker.js": [
- "7599faaa099f594a05d71f628d548f6732b2b193",
+ "c3a9ff0b799d5a53aa2faf41289b20153d884c5d",
"support"
],
"workers/modules/resources/new-worker-window.html": [
@@ -736674,7 +737242,7 @@
"support"
],
"workers/modules/resources/post-message-on-load-worker.js": [
- "93818ccad90c60547d724f8fdcdaf626b7301cb6",
+ "e1c547ab6a4d577280442dbfcbec5a5ec9296666",
"support"
],
"workers/modules/resources/referrer-checker.py": [
@@ -736682,7 +737250,7 @@
"support"
],
"workers/modules/resources/static-import-and-then-dynamic-import-worker.js": [
- "cd98d8c17df652d367b0720492c432851f10f66a",
+ "2d857a2e90a11af9f52e5d59d15ee30d225deeaf",
"support"
],
"workers/modules/resources/static-import-non-existent-script-worker.js": [
@@ -736710,9 +737278,25 @@
"support"
],
"workers/modules/resources/static-import-worker.js": [
- "48751dbe03bb0f7de23e26911ac7af5733c7d5f1",
+ "19a347999d386fd4df8dc831c6d164b27630ef7a",
"support"
],
+ "workers/modules/shared-worker-import-blob-url.any.js": [
+ "d9e9e34c394bc171cd497c8527b4806dfc32c595",
+ "testharness"
+ ],
+ "workers/modules/shared-worker-import-failure.html": [
+ "0e0b9b306314fd96b48e0007918935bc56df2d53",
+ "testharness"
+ ],
+ "workers/modules/shared-worker-import.any.js": [
+ "450d4ad422b8da33d515da9b41557f488aff8bff",
+ "testharness"
+ ],
+ "workers/modules/shared-worker-options-type.html": [
+ "25b793c631de2899d6ddc73900716328ea8837f9",
+ "testharness"
+ ],
"workers/name-property.html": [
"ccc2a9de3a9c59acc19eefb247b1c92b78a52941",
"testharness"
diff --git a/tests/wpt/metadata/css/cssom-view/CaretPosition-001.html.ini b/tests/wpt/metadata/css/cssom-view/CaretPosition-001.html.ini
new file mode 100644
index 00000000000..4c79907309b
--- /dev/null
+++ b/tests/wpt/metadata/css/cssom-view/CaretPosition-001.html.ini
@@ -0,0 +1,4 @@
+[CaretPosition-001.html]
+ [Element at (400, 100)]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/fetch/content-type/response.window.js.ini b/tests/wpt/metadata/fetch/content-type/response.window.js.ini
index b91e9432330..ad82111842c 100644
--- a/tests/wpt/metadata/fetch/content-type/response.window.js.ini
+++ b/tests/wpt/metadata/fetch/content-type/response.window.js.ini
@@ -318,18 +318,18 @@
[<iframe>: separate response Content-Type: text/html */*;charset=gbk]
expected: FAIL
- [<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html]
+ [<iframe>: combined response Content-Type: text/html;" text/plain]
expected: FAIL
- [<iframe>: separate response Content-Type: text/html;" \\" text/plain]
+ [<iframe>: combined response Content-Type: */* text/html]
expected: FAIL
- [<iframe>: combined response Content-Type: text/html;" text/plain]
+ [<iframe>: combined response Content-Type: text/html */*;charset=gbk]
expected: FAIL
- [<iframe>: separate response Content-Type: text/plain */*]
+ [<iframe>: combined response Content-Type: text/html;" \\" text/plain]
expected: FAIL
- [<iframe>: separate response Content-Type: text/html;x=" text/plain]
+ [<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
expected: FAIL
diff --git a/tests/wpt/metadata/fetch/content-type/script.window.js.ini b/tests/wpt/metadata/fetch/content-type/script.window.js.ini
index 5c001592859..d2df9b78483 100644
--- a/tests/wpt/metadata/fetch/content-type/script.window.js.ini
+++ b/tests/wpt/metadata/fetch/content-type/script.window.js.ini
@@ -56,6 +56,3 @@
[separate text/javascript x/x]
expected: FAIL
- [separate text/javascript;charset=windows-1252 error text/javascript]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini b/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini
index d4ba399b762..536384f36e1 100644
--- a/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini
+++ b/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini
@@ -11,6 +11,6 @@
[X-Content-Type-Options%3A%20nosniff%0C]
expected: FAIL
- [X-Content-Type-Options%3A%20'NosniFF']
+ [X-Content-Type-Options%3A%20%2Cnosniff]
expected: FAIL
diff --git a/tests/wpt/metadata/fetch/security/embedded-credentials.tentative.sub.html.ini b/tests/wpt/metadata/fetch/security/embedded-credentials.tentative.sub.html.ini
index 2644d64e6a0..6bd06899fdd 100644
--- a/tests/wpt/metadata/fetch/security/embedded-credentials.tentative.sub.html.ini
+++ b/tests/wpt/metadata/fetch/security/embedded-credentials.tentative.sub.html.ini
@@ -1,6 +1,6 @@
[embedded-credentials.tentative.sub.html]
type: testharness
- expected: CRASH
+ expected: TIMEOUT
[Embedded credentials are treated as network errors.]
expected: FAIL
@@ -8,7 +8,7 @@
expected: FAIL
[Embedded credentials are treated as network errors in new windows.]
- expected: TIMEOUT
+ expected: FAIL
[Embedded credentials matching the top-level are treated as network errors for cross-origin URLs.]
expected: TIMEOUT
diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini
new file mode 100644
index 00000000000..75d75b4cda2
--- /dev/null
+++ b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini
@@ -0,0 +1,4 @@
+[traverse_the_history_2.html]
+ [Multiple history traversals, last would be aborted]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_4.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_4.html.ini
new file mode 100644
index 00000000000..385376c7321
--- /dev/null
+++ b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_4.html.ini
@@ -0,0 +1,4 @@
+[traverse_the_history_4.html]
+ [Multiple history traversals, last would be aborted]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/html/browsers/history/the-location-interface/location-protocol-setter-non-broken.html.ini b/tests/wpt/metadata/html/browsers/history/the-location-interface/location-protocol-setter-non-broken.html.ini
index ced66541669..02999abae84 100644
--- a/tests/wpt/metadata/html/browsers/history/the-location-interface/location-protocol-setter-non-broken.html.ini
+++ b/tests/wpt/metadata/html/browsers/history/the-location-interface/location-protocol-setter-non-broken.html.ini
@@ -1,5 +1,6 @@
[location-protocol-setter-non-broken.html]
type: testharness
+ expected: CRASH
[Set data URL frame location.protocol to gopher]
expected: FAIL
diff --git a/tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/skip-document-with-fragment.html.ini b/tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/skip-document-with-fragment.html.ini
index c12c0f8ae48..6852d7663de 100644
--- a/tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/skip-document-with-fragment.html.ini
+++ b/tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/skip-document-with-fragment.html.ini
@@ -1,4 +1,8 @@
[skip-document-with-fragment.html]
+ expected: TIMEOUT
[Autofocus elements in iframed documents with URL fragments should be skipped.]
expected: FAIL
+ [Autofocus elements in top-level browsing context's documents with URI fragments should be skipped.]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini
index b3bd9f4c289..5f60c78e73c 100644
--- a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini
+++ b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini
@@ -1,6 +1,6 @@
[iframe_sandbox_popups_escaping-3.html]
type: testharness
- expected: CRASH
+ expected: TIMEOUT
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
expected: TIMEOUT
diff --git a/tests/wpt/metadata/html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-2.html.ini b/tests/wpt/metadata/html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-2.html.ini
new file mode 100644
index 00000000000..178680e5d14
--- /dev/null
+++ b/tests/wpt/metadata/html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-2.html.ini
@@ -0,0 +1,2 @@
+[script-onerror-insertion-point-2.html]
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/ignore-opens-during-unload.window.js.ini b/tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/ignore-opens-during-unload.window.js.ini
index 910c88d3e81..69bd952d756 100644
--- a/tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/ignore-opens-during-unload.window.js.ini
+++ b/tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/ignore-opens-during-unload.window.js.ini
@@ -1,5 +1,5 @@
[ignore-opens-during-unload.window.html]
- expected: CRASH
+ expected: TIMEOUT
[ignore-opens-during-unload]
expected: FAIL
diff --git a/tests/wpt/metadata/referrer-policy/generic/inheritance/iframe-inheritance-document-write.html.ini b/tests/wpt/metadata/referrer-policy/generic/inheritance/iframe-inheritance-document-write.html.ini
new file mode 100644
index 00000000000..92fcdd0c838
--- /dev/null
+++ b/tests/wpt/metadata/referrer-policy/generic/inheritance/iframe-inheritance-document-write.html.ini
@@ -0,0 +1,4 @@
+[iframe-inheritance-document-write.html]
+ [Referrer Policy: iframes with document.write()]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/referrer-policy/generic/inheritance/iframe-inheritance-javascript-child.html.ini b/tests/wpt/metadata/referrer-policy/generic/inheritance/iframe-inheritance-javascript-child.html.ini
new file mode 100644
index 00000000000..8826ca3e156
--- /dev/null
+++ b/tests/wpt/metadata/referrer-policy/generic/inheritance/iframe-inheritance-javascript-child.html.ini
@@ -0,0 +1,7 @@
+[iframe-inheritance-javascript-child.html]
+ [Referrer Policy: iframes with javascript url reuse referrer policy]
+ expected: FAIL
+
+ [Referrer Policy: iframes with javascript url reuse referrer policy 2]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/referrer-policy/generic/inheritance/iframe-inheritance-javascript.html.ini b/tests/wpt/metadata/referrer-policy/generic/inheritance/iframe-inheritance-javascript.html.ini
new file mode 100644
index 00000000000..7487d673a42
--- /dev/null
+++ b/tests/wpt/metadata/referrer-policy/generic/inheritance/iframe-inheritance-javascript.html.ini
@@ -0,0 +1,4 @@
+[iframe-inheritance-javascript.html]
+ [Referrer Policy: iframes with javascript url reuse referrer policy]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/referrer-policy/generic/inheritance/iframe-inheritance-srcdoc.html.ini b/tests/wpt/metadata/referrer-policy/generic/inheritance/iframe-inheritance-srcdoc.html.ini
index 00076bbd03a..e7f2f20a202 100644
--- a/tests/wpt/metadata/referrer-policy/generic/inheritance/iframe-inheritance-srcdoc.html.ini
+++ b/tests/wpt/metadata/referrer-policy/generic/inheritance/iframe-inheritance-srcdoc.html.ini
@@ -1,5 +1,4 @@
[iframe-inheritance-srcdoc.html]
- expected: TIMEOUT
[iframes srcdoc correctly inherit the ancestor's referrer policy]
- expected: NOTRUN
+ expected: FAIL
diff --git a/tests/wpt/metadata/resource-timing/crossorigin-sandwich-TAO.sub.html.ini b/tests/wpt/metadata/resource-timing/crossorigin-sandwich-TAO.sub.html.ini
index b4090ef9fe2..1c7ec9ce1db 100644
--- a/tests/wpt/metadata/resource-timing/crossorigin-sandwich-TAO.sub.html.ini
+++ b/tests/wpt/metadata/resource-timing/crossorigin-sandwich-TAO.sub.html.ini
@@ -1,5 +1,4 @@
[crossorigin-sandwich-TAO.sub.html]
- expected: ERROR
[There should be one entry.]
expected: FAIL
diff --git a/tests/wpt/metadata/webxr/xrSession_input_events_end.https.html.ini b/tests/wpt/metadata/webxr/xrSession_input_events_end.https.html.ini
index 1c2f8518d1a..1d6cd17924d 100644
--- a/tests/wpt/metadata/webxr/xrSession_input_events_end.https.html.ini
+++ b/tests/wpt/metadata/webxr/xrSession_input_events_end.https.html.ini
@@ -1,5 +1,5 @@
[xrSession_input_events_end.https.html]
expected: TIMEOUT
[Calling end during an input callback stops processing at the right time]
- expected: FAIL
+ expected: TIMEOUT
diff --git a/tests/wpt/web-platform-tests/.azure-pipelines.yml b/tests/wpt/web-platform-tests/.azure-pipelines.yml
index 03e5a51cc8f..7e1732fd45b 100644
--- a/tests/wpt/web-platform-tests/.azure-pipelines.yml
+++ b/tests/wpt/web-platform-tests/.azure-pipelines.yml
@@ -19,6 +19,7 @@ trigger:
# These are all the branches referenced in the jobs that follow.
- epochs/daily
- epochs/three_hourly
+- triggers/edge_stable
- triggers/edge_dev
- triggers/edge_canary
- triggers/safari_stable
@@ -239,6 +240,42 @@ jobs:
condition: always()
- template: tools/ci/azure/cleanup_win10.yml
+- job: results_edge_stable
+ displayName: 'all tests: Edge Stable'
+ condition: |
+ or(eq(variables['Build.SourceBranch'], 'refs/heads/epochs/daily'),
+ eq(variables['Build.SourceBranch'], 'refs/heads/triggers/edge_stable'),
+ and(eq(variables['Build.Reason'], 'Manual'), variables['run_all_edge_stable']))
+ strategy:
+ parallel: 10 # chosen to make runtime ~2h
+ timeoutInMinutes: 180
+ pool:
+ name: 'Hosted Windows Client'
+ steps:
+ - template: tools/ci/azure/system_info.yml
+ - template: tools/ci/azure/checkout.yml
+ - template: tools/ci/azure/install_python.yml
+ - template: tools/ci/azure/pip_install.yml
+ parameters:
+ packages: virtualenv
+ - template: tools/ci/azure/install_certs.yml
+ - template: tools/ci/azure/install_edge.yml
+ parameters:
+ channel: stable
+ - template: tools/ci/azure/update_hosts.yml
+ - template: tools/ci/azure/update_manifest.yml
+ - script: python ./wpt run --yes --no-manifest-update --no-restart-on-unexpected --no-fail-on-unexpected --install-fonts --this-chunk $(System.JobPositionInPhase) --total-chunks $(System.TotalJobsInPhase) --chunk-type hash --log-wptreport $(Build.ArtifactStagingDirectory)/wpt_report_$(System.JobPositionInPhase).json --log-wptscreenshot $(Build.ArtifactStagingDirectory)/wpt_screenshot_$(System.JobPositionInPhase).txt --log-mach - --log-mach-level info --channel stable edgechromium
+ displayName: 'Run tests (Edge Stable)'
+ - task: PublishBuildArtifacts@1
+ displayName: 'Publish results'
+ inputs:
+ artifactName: 'edge-stable-results'
+ - template: tools/ci/azure/cleanup_win10.yml
+- template: tools/ci/azure/fyi_hook.yml
+ parameters:
+ dependsOn: results_edge_stable
+ artifactName: edge-stable-results
+
- job: results_edge_dev
displayName: 'all tests: Edge Dev'
condition: |
diff --git a/tests/wpt/web-platform-tests/2dcontext/drawing-text-to-the-canvas/2d.text.measure.actualBoundingBox.html b/tests/wpt/web-platform-tests/2dcontext/drawing-text-to-the-canvas/2d.text.measure.actualBoundingBox.html
index 76fc17a882f..834c1952c5a 100644
--- a/tests/wpt/web-platform-tests/2dcontext/drawing-text-to-the-canvas/2d.text.measure.actualBoundingBox.html
+++ b/tests/wpt/web-platform-tests/2dcontext/drawing-text-to-the-canvas/2d.text.measure.actualBoundingBox.html
@@ -35,14 +35,15 @@ document.fonts.ready.then(() => {
ctx.direction = 'ltr';
ctx.align = 'left'
ctx.baseline = 'alphabetic'
- // Some platforms may return '-0'.
- _assertSame(Math.abs(ctx.measureText('A').actualBoundingBoxLeft), 0, "Math.abs(ctx.measureText('A').actualBoundingBoxLeft)", "0");
// Different platforms may render text slightly different.
+ // Values that are nominally expected to be zero might actually vary by a pixel or so
+ // if the UA accounts for antialiasing at glyph edges, so we allow a slight deviation.
+ _assert(Math.abs(ctx.measureText('A').actualBoundingBoxLeft) <= 1, "Math.abs(ctx.measureText('A').actualBoundingBoxLeft) <= 1");
_assert(ctx.measureText('A').actualBoundingBoxRight >= 50, "ctx.measureText('A').actualBoundingBoxRight >= 50");
_assert(ctx.measureText('A').actualBoundingBoxAscent >= 35, "ctx.measureText('A').actualBoundingBoxAscent >= 35");
- _assertSame(Math.abs(ctx.measureText('A').actualBoundingBoxDescent), 0, "Math.abs(ctx.measureText('A').actualBoundingBoxDescent)", "0");
+ _assert(Math.abs(ctx.measureText('A').actualBoundingBoxDescent) <= 1, "Math.abs(ctx.measureText('A').actualBoundingBoxDescent) <= 1");
- _assertSame(Math.abs(ctx.measureText('ABCD').actualBoundingBoxLeft), 0, "Math.abs(ctx.measureText('ABCD').actualBoundingBoxLeft)", "0");
+ _assert(Math.abs(ctx.measureText('ABCD').actualBoundingBoxLeft) <= 1, "Math.abs(ctx.measureText('ABCD').actualBoundingBoxLeft) <= 1");
_assert(ctx.measureText('ABCD').actualBoundingBoxRight >= 200, "ctx.measureText('ABCD').actualBoundingBoxRight >= 200");
_assert(ctx.measureText('ABCD').actualBoundingBoxAscent >= 85, "ctx.measureText('ABCD').actualBoundingBoxAscent >= 85");
_assert(ctx.measureText('ABCD').actualBoundingBoxDescent >= 37, "ctx.measureText('ABCD').actualBoundingBoxDescent >= 37");
diff --git a/tests/wpt/web-platform-tests/2dcontext/tools/tests2dtext.yaml b/tests/wpt/web-platform-tests/2dcontext/tools/tests2dtext.yaml
index 6d5f8f660fa..e1423284bd8 100644
--- a/tests/wpt/web-platform-tests/2dcontext/tools/tests2dtext.yaml
+++ b/tests/wpt/web-platform-tests/2dcontext/tools/tests2dtext.yaml
@@ -1088,14 +1088,15 @@
ctx.direction = 'ltr';
ctx.align = 'left'
ctx.baseline = 'alphabetic'
- // Some platforms may return '-0'.
- @assert Math.abs(ctx.measureText('A').actualBoundingBoxLeft) === 0;
// Different platforms may render text slightly different.
+ // Values that are nominally expected to be zero might actually vary by a pixel or so
+ // if the UA accounts for antialiasing at glyph edges, so we allow a slight deviation.
+ @assert Math.abs(ctx.measureText('A').actualBoundingBoxLeft) <= 1;
@assert ctx.measureText('A').actualBoundingBoxRight >= 50;
@assert ctx.measureText('A').actualBoundingBoxAscent >= 35;
- @assert Math.abs(ctx.measureText('A').actualBoundingBoxDescent) === 0;
+ @assert Math.abs(ctx.measureText('A').actualBoundingBoxDescent) <= 1;
- @assert Math.abs(ctx.measureText('ABCD').actualBoundingBoxLeft) === 0;
+ @assert Math.abs(ctx.measureText('ABCD').actualBoundingBoxLeft) <= 1;
@assert ctx.measureText('ABCD').actualBoundingBoxRight >= 200;
@assert ctx.measureText('ABCD').actualBoundingBoxAscent >= 85;
@assert ctx.measureText('ABCD').actualBoundingBoxDescent >= 37;
diff --git a/tests/wpt/web-platform-tests/README.md b/tests/wpt/web-platform-tests/README.md
index 3b580da8690..482da428db4 100644
--- a/tests/wpt/web-platform-tests/README.md
+++ b/tests/wpt/web-platform-tests/README.md
@@ -3,16 +3,15 @@ The web-platform-tests Project
[![Taskcluster CI Status](https://community-tc.services.mozilla.com/api/github/v1/repository/web-platform-tests/wpt/master/badge.svg)](https://community-tc.services.mozilla.com/api/github/v1/repository/web-platform-tests/wpt/master/latest)
-The web-platform-tests Project is a W3C-coordinated attempt to build a
-cross-browser test suite for the Web-platform stack. Writing tests in a way
-that allows them to be run in all browsers gives browser projects
-confidence that they are shipping software that is compatible with other
-implementations, and that later implementations will be compatible with
-their implementations. This in turn gives Web authors/developers
-confidence that they can actually rely on the Web platform to deliver on
-the promise of working across browsers and devices without needing extra
-layers of abstraction to paper over the gaps left by specification
-editors and implementors.
+The web-platform-tests Project is a cross-browser test suite for the
+Web-platform stack. Writing tests in a way that allows them to be run in all
+browsers gives browser projects confidence that they are shipping software that
+is compatible with other implementations, and that later implementations will
+be compatible with their implementations. This in turn gives Web
+authors/developers confidence that they can actually rely on the Web platform
+to deliver on the promise of working across browsers and devices without
+needing extra layers of abstraction to paper over the gaps left by
+specification editors and implementors.
The most important sources of information and activity are:
diff --git a/tests/wpt/web-platform-tests/css/compositing/root-element-background-transparency-ref.html b/tests/wpt/web-platform-tests/css/compositing/root-element-background-transparency-ref.html
new file mode 100644
index 00000000000..4671d44c1c3
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/compositing/root-element-background-transparency-ref.html
@@ -0,0 +1,7 @@
+<!doctype HTML>
+<title>Backround color transparency on the root element blends with a white backdrop</title>
+<link rel="author" title="Chris Harrelson" href="mailto:chrishtr@chromium.org">
+<link rel="help" href="https://drafts.fxtf.org/compositing/#pagebackdrop">
+<html style="background: rgb(150, 150, 150)">
+ <div id=spacer style="width: 100px; height: 3000px"></div>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/compositing/root-element-background-transparency.html b/tests/wpt/web-platform-tests/css/compositing/root-element-background-transparency.html
new file mode 100644
index 00000000000..910eb08e8d3
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/compositing/root-element-background-transparency.html
@@ -0,0 +1,8 @@
+<!doctype HTML>
+<title>Backround color transparency on the root element blends with a white backdrop</title>
+<link rel="author" title="Chris Harrelson" href="mailto:chrishtr@chromium.org">
+<link rel="help" href="https://drafts.fxtf.org/compositing/#pagebackdrop">
+<link rel="match" href="root-element-background-transparency-ref.html">
+<html style="background: rgba(45, 45, 45, 0.5)">
+ <div id=spacer style="width: 100px; height: 3000px"></div>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/compositing/root-element-blend-mode-ref.html b/tests/wpt/web-platform-tests/css/compositing/root-element-blend-mode-ref.html
new file mode 100644
index 00000000000..14c99f70856
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/compositing/root-element-blend-mode-ref.html
@@ -0,0 +1,6 @@
+<!doctype HTML>
+<title>Blend-mode on the root stacking context blends with the root element's background.</title>
+<html style="background: #000">
+ <div style="width: 50px; height: 50px; background: #000"></div>
+ <div id=spacer style="width: 100px; height: 3000px"></div>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/compositing/root-element-blend-mode.html b/tests/wpt/web-platform-tests/css/compositing/root-element-blend-mode.html
new file mode 100644
index 00000000000..2c97d8b5e8c
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/compositing/root-element-blend-mode.html
@@ -0,0 +1,9 @@
+<!doctype HTML>
+<title>Blend-mode on the root stacking context blends with the root element's background.</title>
+<link rel="author" title="Chris Harrelson" href="mailto:chrishtr@chromium.org">
+<link rel="help" href="https://drafts.fxtf.org/compositing/#pagebackdrop">
+<link rel="match" href="root-element-blend-mode-ref.html">
+<html style="background: #000;">
+ <div style="width: 50px; height: 50px; background: #E33; mix-blend-mode: multiply"></div>
+ <div id=spacer style="width: 100px; height: 3000px"></div>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/compositing/root-element-filter-ref.html b/tests/wpt/web-platform-tests/css/compositing/root-element-filter-ref.html
new file mode 100644
index 00000000000..27cfb11b8f4
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/compositing/root-element-filter-ref.html
@@ -0,0 +1,8 @@
+<!doctype HTML>
+<title>A filter on the root element applies to its background</title>
+<link rel="author" title="Chris Harrelson" href="mailto:chrishtr@chromium.org">
+<link rel="help" href="https://drafts.fxtf.org/compositing/#pagebackdrop">
+<html style="background: #FFF">
+ <div style="width: 50px; height: 50px; background: #1CC"></div>
+ <div id=spacer style="width: 100px; height: 3000px"></div>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/compositing/root-element-filter.html b/tests/wpt/web-platform-tests/css/compositing/root-element-filter.html
new file mode 100644
index 00000000000..62bde9dfd99
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/compositing/root-element-filter.html
@@ -0,0 +1,9 @@
+<!doctype HTML>
+<title>A filter on the root element applies to its background</title>
+<link rel="author" title="Chris Harrelson" href="mailto:chrishtr@chromium.org">
+<link rel="help" href="https://drafts.fxtf.org/compositing/#pagebackdrop">
+<link rel="match" href="root-element-filter-ref.html">
+<html style="filter: invert(1); background: #000">
+ <div style="width: 50px; height: 50px; background: #E33"></div>
+ <div id=spacer style="width: 100px; height: 3000px"></div>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/compositing/root-element-opacity-ref.html b/tests/wpt/web-platform-tests/css/compositing/root-element-opacity-ref.html
new file mode 100644
index 00000000000..be2348ab967
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/compositing/root-element-opacity-ref.html
@@ -0,0 +1,7 @@
+<!doctype HTML>
+<title>Opacity on the root element blends with a white backdrop</title>
+<link rel="author" title="Chris Harrelson" href="mailto:chrishtr@chromium.org">
+<link rel="help" href="https://drafts.fxtf.org/compositing/#pagebackdrop">
+<html style="background: #DDD">
+ <div id=spacer style="width: 100px; height: 3000px"></div>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/compositing/root-element-opacity.html b/tests/wpt/web-platform-tests/css/compositing/root-element-opacity.html
new file mode 100644
index 00000000000..4885d805ad3
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/compositing/root-element-opacity.html
@@ -0,0 +1,8 @@
+<!doctype HTML>
+<title>Opacity on the root element blends with a white background</title>
+<link rel="author" title="Chris Harrelson" href="mailto:chrishtr@chromium.org">
+<link rel="help" href="https://drafts.fxtf.org/compositing/#pagebackdrop">
+<link rel="match" href="root-element-opacity-ref.html">
+<html style="background: #BBB; opacity: 0.5">
+ <div id=spacer style="width: 100px; height: 3000px"></div>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/zero-content-size-with-scrollbar-crash.html b/tests/wpt/web-platform-tests/css/css-flexbox/zero-content-size-with-scrollbar-crash.html
new file mode 100644
index 00000000000..c38659a9d8c
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-flexbox/zero-content-size-with-scrollbar-crash.html
@@ -0,0 +1,6 @@
+<!DOCTYPE html>
+<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/">
+<meta name="assert" content="This test passes if the renderer does not crash."/>
+<div style="display: flex;">
+ <div style="max-width: 0px; overflow: scroll;"></div>
+</div>
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-underline-position-001-ref.html b/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-underline-position-001-ref.html
new file mode 100644
index 00000000000..aae441ac4e0
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-underline-position-001-ref.html
@@ -0,0 +1,83 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <title>text-underline-position reference file</title>
+ <style>
+ .outer {
+ margin: 1em;
+ clear: left;
+ }
+ .outer > div {
+ margin: .25em;
+ padding: .25em;
+ float: left;
+ border: 1px dotted gray;
+ }
+ u {
+ text-decoration: 2px green underline;
+ text-underline-offset: .25em;
+ }
+ .test1 > div {
+ writing-mode: initial;
+ }
+ .test2 > div {
+ writing-mode: sideways-rl;
+ }
+ .test3 > div {
+ writing-mode: sideways-lr;
+ }
+ .test4 > div {
+ writing-mode: vertical-rl;
+ text-orientation: sideways;
+ }
+ .test5 > div {
+ writing-mode: vertical-lr;
+ text-orientation: sideways;
+ }
+ </style>
+</head>
+<body>
+ <p class="instructions">Test passes if the left and right boxes match in each case:</p>
+ <div class="outer test1">
+ <div>
+ <p><u>underlined</u></p>
+ </div>
+ <div>
+ <p><u>underlined</u></p>
+ </div>
+ </div>
+ <div class="outer test2">
+ <div>
+ <p><u>underlined</u></p>
+ </div>
+ <div>
+ <p><u>underlined</u></p>
+ </div>
+ </div>
+ <div class="outer test3">
+ <div>
+ <p><u>underlined</u></p>
+ </div>
+ <div>
+ <p><u>underlined</u></p>
+ </div>
+ </div>
+ <div class="outer test4">
+ <div>
+ <p><u>underlined</u></p>
+ </div>
+ <div>
+ <p><u>underlined</u></p>
+ </div>
+ </div>
+ <div class="outer test5">
+ <div>
+ <p><u>underlined</u></p>
+ </div>
+ <div>
+ <p><u>underlined</u></p>
+ </div>
+ </div>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-underline-position-001a.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-underline-position-001a.html
new file mode 100644
index 00000000000..f79fc9d39fe
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-underline-position-001a.html
@@ -0,0 +1,90 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <title>text-underline-position test case</title>
+ <meta name="assert" content="text-underline-position:left has no effect in horizontal typographic mode">
+ <link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
+ <link rel="help" href="https://drafts.csswg.org/css-text-decor-4/#underline-left">
+ <link rel="match" href="reference/text-underline-position-001-ref.html">
+ <style>
+ .outer {
+ margin: 1em;
+ clear: left;
+ }
+ .outer > div {
+ margin: .25em;
+ padding: .25em;
+ float: left;
+ border: 1px dotted gray;
+ }
+ u {
+ text-decoration: 2px green underline;
+ text-underline-offset: .25em;
+ }
+ .test1 > div {
+ writing-mode: initial;
+ }
+ .test2 > div {
+ writing-mode: sideways-rl;
+ }
+ .test3 > div {
+ writing-mode: sideways-lr;
+ }
+ .test4 > div {
+ writing-mode: vertical-rl;
+ text-orientation: sideways;
+ }
+ .test5 > div {
+ writing-mode: vertical-lr;
+ text-orientation: sideways;
+ }
+ .test {
+ text-underline-position: left;
+ }
+ </style>
+</head>
+<body>
+ <p class="instructions">Test passes if the left and right boxes match in each case:</p>
+ <div class="outer test1">
+ <div>
+ <p><u class="test">underlined</u></p>
+ </div>
+ <div>
+ <p><u>underlined</u></p>
+ </div>
+ </div>
+ <div class="outer test2">
+ <div>
+ <p><u class="test">underlined</u></p>
+ </div>
+ <div>
+ <p><u>underlined</u></p>
+ </div>
+ </div>
+ <div class="outer test3">
+ <div>
+ <p><u class="test">underlined</u></p>
+ </div>
+ <div>
+ <p><u>underlined</u></p>
+ </div>
+ </div>
+ <div class="outer test4">
+ <div>
+ <p><u class="test">underlined</u></p>
+ </div>
+ <div>
+ <p><u>underlined</u></p>
+ </div>
+ </div>
+ <div class="outer test5">
+ <div>
+ <p><u class="test">underlined</u></p>
+ </div>
+ <div>
+ <p><u>underlined</u></p>
+ </div>
+ </div>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-underline-position-001b.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-underline-position-001b.html
new file mode 100644
index 00000000000..f8c6ff9aada
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-underline-position-001b.html
@@ -0,0 +1,90 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <title>text-underline-position test case</title>
+ <meta name="assert" content="text-underline-position:right has no effect in horizontal typographic mode">
+ <link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
+ <link rel="help" href="https://drafts.csswg.org/css-text-decor-4/#underline-right">
+ <link rel="match" href="reference/text-underline-position-001-ref.html">
+ <style>
+ .outer {
+ margin: 1em;
+ clear: left;
+ }
+ .outer > div {
+ margin: .25em;
+ padding: .25em;
+ float: left;
+ border: 1px dotted gray;
+ }
+ u {
+ text-decoration: 2px green underline;
+ text-underline-offset: .25em;
+ }
+ .test1 > div {
+ writing-mode: initial;
+ }
+ .test2 > div {
+ writing-mode: sideways-rl;
+ }
+ .test3 > div {
+ writing-mode: sideways-lr;
+ }
+ .test4 > div {
+ writing-mode: vertical-rl;
+ text-orientation: sideways;
+ }
+ .test5 > div {
+ writing-mode: vertical-lr;
+ text-orientation: sideways;
+ }
+ .test {
+ text-underline-position: right;
+ }
+ </style>
+</head>
+<body>
+ <p class="instructions">Test passes if the left and right boxes match in each case:</p>
+ <div class="outer test1">
+ <div>
+ <p><u class="test">underlined</u></p>
+ </div>
+ <div>
+ <p><u>underlined</u></p>
+ </div>
+ </div>
+ <div class="outer test2">
+ <div>
+ <p><u class="test">underlined</u></p>
+ </div>
+ <div>
+ <p><u>underlined</u></p>
+ </div>
+ </div>
+ <div class="outer test3">
+ <div>
+ <p><u class="test">underlined</u></p>
+ </div>
+ <div>
+ <p><u>underlined</u></p>
+ </div>
+ </div>
+ <div class="outer test4">
+ <div>
+ <p><u class="test">underlined</u></p>
+ </div>
+ <div>
+ <p><u>underlined</u></p>
+ </div>
+ </div>
+ <div class="outer test5">
+ <div>
+ <p><u class="test">underlined</u></p>
+ </div>
+ <div>
+ <p><u>underlined</u></p>
+ </div>
+ </div>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-transforms/transform-translate-background-001-ref.html b/tests/wpt/web-platform-tests/css/css-transforms/transform-translate-background-001-ref.html
new file mode 100644
index 00000000000..f0b53d492a0
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-transforms/transform-translate-background-001-ref.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+<meta charset="utf-8">
+<title>CSS Transforms: Reference Translate gradient background on root element</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<style>
+ html {
+ background: green;
+ }
+</style>
+<div style="height: 400vh;"></div>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-transforms/transform-translate-background-001.html b/tests/wpt/web-platform-tests/css/css-transforms/transform-translate-background-001.html
new file mode 100644
index 00000000000..72011e37bce
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-transforms/transform-translate-background-001.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+<meta charset="utf-8">
+<title>CSS Transforms: Translate gradient background on root element</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="https://drafts.csswg.org/css-transforms/#transform-rendering">
+<link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=988446">
+<link rel="match" href="transform-translate-background-001-ref.html">
+<meta name="assert" content="Checks that the linear gradient is modified when you vertically translate the root element. The test passes if you see only green.">
+<style>
+ html {
+ background: linear-gradient(to bottom, red 0%, red 50%, green 50%, green 100%);
+ transform: translate(0, -250vh);
+ }
+</style>
+<div style="height: 400vh;"></div>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-transforms/transform-translate-background-002.html b/tests/wpt/web-platform-tests/css/css-transforms/transform-translate-background-002.html
new file mode 100644
index 00000000000..b1be5277400
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-transforms/transform-translate-background-002.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+<meta charset="utf-8">
+<title>CSS Transforms: Dynamically translate gradient background on root element</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="https://drafts.csswg.org/css-transforms/#transform-rendering">
+<link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=988446">
+<link rel="match" href="transform-translate-background-001-ref.html">
+<meta name="assert" content="Checks that the linear gradient is modified when you dynamically translate the root element. The test passes if you see only green.">
+<script src="/common/reftest-wait.js"></script>
+<style>
+ html {
+ background: linear-gradient(to bottom, red 0%, red 50%, green 50%, green 100%);
+ }
+</style>
+<div style="height: 400vh;"></div>
+<script>
+ requestAnimationFrame(() => requestAnimationFrame(() => {
+ document.documentElement.style.transform = "translate(0, -250vh)";
+ takeScreenshot();
+ }));
+</script>
+</html>
diff --git a/tests/wpt/web-platform-tests/docs/index.md b/tests/wpt/web-platform-tests/docs/index.md
index d1a527e1a75..419c99aca9d 100644
--- a/tests/wpt/web-platform-tests/docs/index.md
+++ b/tests/wpt/web-platform-tests/docs/index.md
@@ -1,15 +1,14 @@
# web-platform-tests documentation
-The web-platform-tests project is a W3C-coordinated attempt to build a
-cross-browser test suite for [the Web-platform
-stack](https://platform.html5.org). Writing tests in a way that allows them to
-be run in all browsers gives browser projects confidence that they are shipping
-software which is compatible with other implementations, and that later
-implementations will be compatible with their implementations. This in turn
-gives Web authors/developers confidence that they can actually rely on the Web
-platform to deliver on the promise of working across browsers and devices
-without needing extra layers of abstraction to paper over the gaps left by
-specification editors and implementors.
+The web-platform-tests project is a cross-browser test suite for [the
+Web-platform stack](https://platform.html5.org). Writing tests in a way that
+allows them to be run in all browsers gives browser projects confidence that
+they are shipping software which is compatible with other implementations, and
+that later implementations will be compatible with their implementations. This
+in turn gives Web authors/developers confidence that they can actually rely on
+the Web platform to deliver on the promise of working across browsers and
+devices without needing extra layers of abstraction to paper over the gaps left
+by specification editors and implementors.
The most important sources of information and activity are:
diff --git a/tests/wpt/web-platform-tests/docs/writing-tests/testharness-api.md b/tests/wpt/web-platform-tests/docs/writing-tests/testharness-api.md
index a17f5795bc3..c882e4daa2d 100644
--- a/tests/wpt/web-platform-tests/docs/writing-tests/testharness-api.md
+++ b/tests/wpt/web-platform-tests/docs/writing-tests/testharness-api.md
@@ -180,8 +180,12 @@ In the example above, `foo()` returns a Promise that resolves with the string
"foo". The `test_function` passed into `promise_test` invokes `foo` and attaches
a resolve reaction that verifies the returned value.
-Note that in the promise chain constructed in `test_function` assertions don't
-need to be wrapped in `step` or `step_func` calls.
+Note that in the promise chain constructed in `test_function`
+assertions don't need to be wrapped in `step` or `step_func`
+calls. However when mixing event handlers and `promise_test`, the
+event handler callback functions *do* need to be wrapped since an
+exception in these functions does not cause the promise chain to
+reject.
Unlike Asynchronous Tests, Promise Tests don't start running until after the
previous Promise Test finishes. [Under rare
diff --git a/tests/wpt/web-platform-tests/element-timing/multiple-redirects-TAO.sub.html b/tests/wpt/web-platform-tests/element-timing/multiple-redirects-TAO.html
index 6800f7cf687..6800f7cf687 100644
--- a/tests/wpt/web-platform-tests/element-timing/multiple-redirects-TAO.sub.html
+++ b/tests/wpt/web-platform-tests/element-timing/multiple-redirects-TAO.html
diff --git a/tests/wpt/web-platform-tests/fetch/api/policies/referrer-origin-when-cross-origin.html b/tests/wpt/web-platform-tests/fetch/api/policies/referrer-origin-when-cross-origin.html
index 18de7364634..5cd79e4b536 100644
--- a/tests/wpt/web-platform-tests/fetch/api/policies/referrer-origin-when-cross-origin.html
+++ b/tests/wpt/web-platform-tests/fetch/api/policies/referrer-origin-when-cross-origin.html
@@ -7,6 +7,7 @@
<meta name="help" href="https://fetch.spec.whatwg.org/#http-network-or-cache-fetch">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+ <script src="/common/get-host-info.sub.js"></script>
</head>
<body>
<script src="../resources/utils.js"></script>
diff --git a/tests/wpt/web-platform-tests/fetch/api/policies/referrer-origin-when-cross-origin.js b/tests/wpt/web-platform-tests/fetch/api/policies/referrer-origin-when-cross-origin.js
index 7cd4113f506..0adadbc5508 100644
--- a/tests/wpt/web-platform-tests/fetch/api/policies/referrer-origin-when-cross-origin.js
+++ b/tests/wpt/web-platform-tests/fetch/api/policies/referrer-origin-when-cross-origin.js
@@ -1,6 +1,7 @@
if (this.document === undefined) {
importScripts("/resources/testharness.js");
importScripts("../resources/utils.js");
+ importScripts("/common/get-host-info.sub.js");
// A nested importScripts() with a referrer-policy should have no effect
// on overall worker policy.
@@ -8,7 +9,7 @@ if (this.document === undefined) {
}
var referrerOrigin = location.origin + '/';
-var fetchedUrl = "https://{{domains[www]}}:{{ports[https][0]}}" + dirname(location.pathname) + RESOURCES_DIR + "inspect-headers.py?cors&headers=referer";
+var fetchedUrl = get_host_info().HTTP_REMOTE_ORIGIN + dirname(location.pathname) + RESOURCES_DIR + "inspect-headers.py?cors&headers=referer";
promise_test(function(test) {
return fetch(fetchedUrl).then(function(resp) {
diff --git a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/blob-popup.https.html b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/blob-popup.https.html
index 4aef1b84891..a4e53e78062 100644
--- a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/blob-popup.https.html
+++ b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/blob-popup.https.html
@@ -20,15 +20,17 @@ async_test(t => {
const blobContents = `<script>
const w = window.open("${get_host_info().HTTPS_REMOTE_ORIGIN}/html/cross-origin-opener-policy/resources/coop-coep.py?coop=x&coep=x&channel=${bc.name}", "${bc.name}");
window.opener.furtherPopup = w;
-
-// w will be closed by its postback iframe. When out of process,
-// window.close() does not work.
-window.opener.test.add_cleanup(() => w.close());
<\/script>`;
const blob = new Blob([blobContents], { type: "text/html" });
const blobURL = URL.createObjectURL(blob);
const popup = window.open(blobURL);
- t.add_cleanup(() => popup.close());
+ t.add_cleanup(() => {
+ // Close the popups once the test is complete.
+ // The browsing context of the second popup is closed hence use the
+ // broadcast channel to trigger the closure.
+ bc.postMessage("close");
+ popup.close();
+ });
popup.onload = t.step_func(() => {
assert_equals(popup.opener, window);
assert_equals(popup.location.href, blobURL);
diff --git a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/coep-navigate-popup.https.html b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/coep-navigate-popup.https.html
index faa2793e5fa..714a4b6c427 100644
--- a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/coep-navigate-popup.https.html
+++ b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/coep-navigate-popup.https.html
@@ -1,8 +1,12 @@
<!doctype html>
<title>Cross-Origin-Opener-Policy and Cross-Origin-Embedder-Policy: a navigating popup</title>
-<meta content=timeout value=long>
+<meta name=timeout content=long>
+<meta name=variant content=?0-1>
+<meta name=variant content=?2-3>
+<meta name=variant content=?4-last>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
+<script src="/common/subset-tests.js"></script>
<script src="/common/get-host-info.sub.js"></script>
<script src="resources/common.js"></script>
<script>
@@ -35,7 +39,7 @@
"title": "coop unsafe-none/coep",
"coop": "unsafe-none",
"coep": "require-corp",
- "opener": true
+ "opener": false
},
{
"title": "coop unsafe-none/no coep",
@@ -43,7 +47,12 @@
"coep": "",
"opener": false
}
-].forEach(variant => {
+].forEach((variant, i) => {
+ // Only run specified variants
+ if (!shouldRunSubTest(i)) {
+ return;
+ }
+
["same-origin", "same-site"].forEach(site => {
const title = `Popup navigating to ${site} with ${variant.title}`;
const channel = title.replace(/ /g,"-");
diff --git a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/coep-redirect.https.html b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/coep-redirect.https.html
index 2727013783f..83f8f8a33d4 100644
--- a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/coep-redirect.https.html
+++ b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/coep-redirect.https.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>Cross-Origin-Opener-Policy and Cross-Origin-Embedder-Policy: redirects</title>
-<meta content=timeout value=long>
+<meta name=timeout content=long>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src="/common/get-host-info.sub.js"></script>
@@ -47,7 +47,7 @@ const coopCOEPPath = new URL("resources/coop-coep.py", window.location).pathname
"redirectCOEP": "require-corp",
"coop": "same-origin",
"coep": "require-corp",
- "opener": true
+ "opener": false
},
{
"title": "coop unsafe-none/coep to coop unsafe-inherit/coep",
@@ -55,7 +55,7 @@ const coopCOEPPath = new URL("resources/coop-coep.py", window.location).pathname
"redirectCOEP": "require-corp",
"coop": "unsafe-none",
"coep": "require-corp",
- "opener": true
+ "opener": false
}
].forEach(variant => {
const title = `Redirect from ${variant.title}`;
diff --git a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/coep.https.html b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/coep.https.html
index de1dd56d9d5..f6d975564f4 100644
--- a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/coep.https.html
+++ b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/coep.https.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>Cross-Origin-Opener-Policy and Cross-Origin-Embedder-Policy</title>
-<meta content=timeout value=long>
+<meta name=timeout content=long>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src="/common/get-host-info.sub.js"></script>
@@ -17,7 +17,7 @@
"title": "popup with coop unsafe-none/coep",
"coop": "unsafe-none",
"coep": "require-corp",
- "opener": true
+ "opener": false
},
{
"title": "popup with coop unsafe-none without coep",
diff --git a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/coop-navigated-history-popup.https.html b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/coop-navigated-history-popup.https.html
index bd1cabafd41..a061be992c1 100644
--- a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/coop-navigated-history-popup.https.html
+++ b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/coop-navigated-history-popup.https.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>Cross-Origin-Opener-Policy: a navigating popup that then goes back in history</title>
-<meta name="timeout" content="long">
+<meta name=timeout content=long>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src="/common/get-host-info.sub.js"></script>
diff --git a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/coop-navigated-popup.https.html b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/coop-navigated-popup.https.html
index 3c6019ace0b..e1741932919 100644
--- a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/coop-navigated-popup.https.html
+++ b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/coop-navigated-popup.https.html
@@ -12,7 +12,12 @@ async_test(t => {
const noCOOP = "/common/blank.html";
const popupName = token();
const popup = window.open(noCOOP, popupName);
- t.add_cleanup(() => popup.close());
+ // Close the popup once the test is complete.
+ // The browsing context is closed after the navigation hence use the broadcast channel
+ // to trigger the closure.
+ t.add_cleanup(() => {
+ bc.postMessage("close");
+ });
popup.onload = t.step_func(() => {
assert_equals(popup.name, popupName);
assert_equals(new URL(popup.document.URL).pathname, noCOOP);
@@ -23,6 +28,7 @@ async_test(t => {
// string comparison to "" to keep the random token out of error messages.
assert_equals(payload.name.length, 0);
assert_false(payload.opener);
+ assert_true(popup.closed);
});
const coop = `resources/coop-coep.py?coop=same-origin&coep=&channel=${channel.name}`;
popup.location = coop;
diff --git a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/historical/coep-navigate-popup-unsafe-inherit.https.html b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/historical/coep-navigate-popup-unsafe-inherit.https.html
index 73ef1ea29a2..c389058d9ed 100644
--- a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/historical/coep-navigate-popup-unsafe-inherit.https.html
+++ b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/historical/coep-navigate-popup-unsafe-inherit.https.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>Historical: Cross-Origin-Opener-Policy and Cross-Origin-Embedder-Policy: a navigating popup</title>
-<meta content=timeout value=long>
+<meta name=timeout content=long>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src="/common/get-host-info.sub.js"></script>
diff --git a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-cross-origin.https.html b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-cross-origin.https.html
index a8b6d543cd0..1f522f70e68 100644
--- a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-cross-origin.https.html
+++ b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-cross-origin.https.html
@@ -1,6 +1,6 @@
<!doctype html>
<meta charset=utf-8>
-<meta content=timeout value=long>
+<meta name=timeout content=long>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src="/common/get-host-info.sub.js"></script>
diff --git a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-same-origin.https.html b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-same-origin.https.html
index aaaae2dc317..d7686f23d37 100644
--- a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-same-origin.https.html
+++ b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-same-origin.https.html
@@ -1,6 +1,6 @@
<!doctype html>
<meta charset=utf-8>
-<meta content=timeout value=long>
+<meta name=timeout content=long>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src="/common/get-host-info.sub.js"></script>
diff --git a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-same-site.https.html b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-same-site.https.html
index fd58b06f783..9a1dc11b417 100644
--- a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-same-site.https.html
+++ b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-same-site.https.html
@@ -1,6 +1,6 @@
<!doctype html>
<meta charset=utf-8>
-<meta content=timeout value=long>
+<meta name=timeout content=long>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src="/common/get-host-info.sub.js"></script>
diff --git a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-cross-origin.https.html b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-cross-origin.https.html
index 7330ff75bcf..b54ff2f4955 100644
--- a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-cross-origin.https.html
+++ b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-cross-origin.https.html
@@ -1,6 +1,6 @@
<!doctype html>
<meta charset=utf-8>
-<meta content=timeout value=long>
+<meta name=timeout content=long>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src="/common/get-host-info.sub.js"></script>
diff --git a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-same-origin.https.html b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-same-origin.https.html
index 01cc6719fd3..b2279094b17 100644
--- a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-same-origin.https.html
+++ b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-same-origin.https.html
@@ -1,6 +1,6 @@
<!doctype html>
<meta charset=utf-8>
-<meta content=timeout value=long>
+<meta name=timeout content=long>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src="/common/get-host-info.sub.js"></script>
diff --git a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-same-site.https.html b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-same-site.https.html
index b1a664dd9a5..371aa41d011 100644
--- a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-same-site.https.html
+++ b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-same-site.https.html
@@ -1,6 +1,6 @@
<!doctype html>
<meta charset=utf-8>
-<meta content=timeout value=long>
+<meta name=timeout content=long>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src="/common/get-host-info.sub.js"></script>
diff --git a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-with-cross-origin.https.html b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-with-cross-origin.https.html
index d0fc7c79841..af14446257b 100644
--- a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-with-cross-origin.https.html
+++ b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-with-cross-origin.https.html
@@ -1,6 +1,6 @@
<!doctype html>
<meta charset=utf-8>
-<meta content=timeout value=long>
+<meta name=timeout content=long>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src="/common/get-host-info.sub.js"></script>
diff --git a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-with-same-origin.https.html b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-with-same-origin.https.html
index 67d2523e28d..ec463a17706 100644
--- a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-with-same-origin.https.html
+++ b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-with-same-origin.https.html
@@ -1,6 +1,6 @@
<!doctype html>
<meta charset=utf-8>
-<meta content=timeout value=long>
+<meta name=timeout content=long>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src="/common/get-host-info.sub.js"></script>
diff --git a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-with-same-site.https.html b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-with-same-site.https.html
index 78b7ca8fcad..80ed35424c9 100644
--- a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-with-same-site.https.html
+++ b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-with-same-site.https.html
@@ -1,6 +1,6 @@
<!doctype html>
<meta charset=utf-8>
-<meta content=timeout value=long>
+<meta name=timeout content=long>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src="/common/get-host-info.sub.js"></script>
diff --git a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups.https.html b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-same-origin-allow-popups.https.html
index 0c33b40b181..b03949e7a9f 100644
--- a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups.https.html
+++ b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-same-origin-allow-popups.https.html
@@ -1,5 +1,6 @@
<!doctype html>
<meta charset=utf-8>
+<meta name=timeout content=long>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src="/common/get-host-info.sub.js"></script>
@@ -8,15 +9,6 @@
<div id=log></div>
<script>
[
-[SAME_ORIGIN, SAME_ORIGIN, "same-origin", false, false],
-[SAME_SITE, SAME_ORIGIN, "same-origin", false, false],
-[CROSS_ORIGIN, SAME_ORIGIN, "same-origin", false, false],
-[SAME_ORIGIN, SAME_SITE, "same-origin", false, false],
-[SAME_SITE, SAME_SITE, "same-origin", false, false],
-[CROSS_ORIGIN, SAME_SITE, "same-origin", false, false],
-[SAME_ORIGIN, CROSS_ORIGIN, "same-origin", false, false],
-[SAME_SITE, CROSS_ORIGIN, "same-origin", false, false],
-[CROSS_ORIGIN, CROSS_ORIGIN, "same-origin", false, false],
[SAME_ORIGIN, SAME_ORIGIN, "same-origin-allow-popups", true, true],
[SAME_SITE, SAME_ORIGIN, "same-origin-allow-popups", false, false],
[CROSS_ORIGIN, SAME_ORIGIN, "same-origin-allow-popups", false, false],
@@ -26,15 +18,6 @@
[SAME_ORIGIN, CROSS_ORIGIN, "same-origin-allow-popups", false, false],
[SAME_SITE, CROSS_ORIGIN, "same-origin-allow-popups", false, false],
[CROSS_ORIGIN, CROSS_ORIGIN, "same-origin-allow-popups", false, false],
-[SAME_ORIGIN, SAME_ORIGIN, "", true, true],
-[SAME_SITE, SAME_ORIGIN, "", true, true],
-[CROSS_ORIGIN, SAME_ORIGIN, "", true, true],
-[SAME_ORIGIN, SAME_SITE, "", true, true],
-[SAME_SITE, SAME_SITE, "", true, true],
-[CROSS_ORIGIN, SAME_SITE, "", true, true],
-[SAME_ORIGIN, CROSS_ORIGIN, "", true, true],
-[SAME_SITE, CROSS_ORIGIN, "", true, true],
-[CROSS_ORIGIN, CROSS_ORIGIN, "", true, true],
].forEach( value => {
run_coop_test_iframe("same-origin-allow-popups", value[0], value[1], value[2], value[3], value[4]);
});
diff --git a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups.https.html.headers b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-same-origin-allow-popups.https.html.headers
index d83ed86fb9b..d83ed86fb9b 100644
--- a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups.https.html.headers
+++ b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-same-origin-allow-popups.https.html.headers
diff --git a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-same-origin.https.html b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-same-origin.https.html
new file mode 100644
index 00000000000..66b0a4afa7f
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-same-origin.https.html
@@ -0,0 +1,26 @@
+<!doctype html>
+<meta charset=utf-8>
+<meta name=timeout content=long>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<script src="/common/get-host-info.sub.js"></script>
+<script src="resources/common.js"></script>
+
+<div id=log></div>
+<script>
+[
+[SAME_ORIGIN, SAME_ORIGIN, "same-origin", false, false],
+[SAME_SITE, SAME_ORIGIN, "same-origin", false, false],
+[CROSS_ORIGIN, SAME_ORIGIN, "same-origin", false, false],
+[SAME_ORIGIN, SAME_SITE, "same-origin", false, false],
+[SAME_SITE, SAME_SITE, "same-origin", false, false],
+[CROSS_ORIGIN, SAME_SITE, "same-origin", false, false],
+[SAME_ORIGIN, CROSS_ORIGIN, "same-origin", false, false],
+[SAME_SITE, CROSS_ORIGIN, "same-origin", false, false],
+[CROSS_ORIGIN, CROSS_ORIGIN, "same-origin", false, false],
+].forEach( value => {
+ run_coop_test_iframe("same-origin-allow-popups", value[0], value[1], value[2], value[3], value[4]);
+});
+
+
+</script> \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-same-origin.https.html.headers b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-same-origin.https.html.headers
new file mode 100644
index 00000000000..d83ed86fb9b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-same-origin.https.html.headers
@@ -0,0 +1 @@
+Cross-Origin-Opener-Policy: same-origin-allow-popups
diff --git a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-unsafe-none.https.html b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-unsafe-none.https.html
new file mode 100644
index 00000000000..d2f2783606e
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-unsafe-none.https.html
@@ -0,0 +1,26 @@
+<!doctype html>
+<meta charset=utf-8>
+<meta name=timeout content=long>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<script src="/common/get-host-info.sub.js"></script>
+<script src="resources/common.js"></script>
+
+<div id=log></div>
+<script>
+[
+[SAME_ORIGIN, SAME_ORIGIN, "", true, true],
+[SAME_SITE, SAME_ORIGIN, "", true, true],
+[CROSS_ORIGIN, SAME_ORIGIN, "", true, true],
+[SAME_ORIGIN, SAME_SITE, "", true, true],
+[SAME_SITE, SAME_SITE, "", true, true],
+[CROSS_ORIGIN, SAME_SITE, "", true, true],
+[SAME_ORIGIN, CROSS_ORIGIN, "", true, true],
+[SAME_SITE, CROSS_ORIGIN, "", true, true],
+[CROSS_ORIGIN, CROSS_ORIGIN, "", true, true],
+].forEach( value => {
+ run_coop_test_iframe("same-origin-allow-popups", value[0], value[1], value[2], value[3], value[4]);
+});
+
+
+</script> \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-unsafe-none.https.html.headers b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-unsafe-none.https.html.headers
new file mode 100644
index 00000000000..d83ed86fb9b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-unsafe-none.https.html.headers
@@ -0,0 +1 @@
+Cross-Origin-Opener-Policy: same-origin-allow-popups
diff --git a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-to-same-origin.https.html b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-to-same-origin.https.html
new file mode 100644
index 00000000000..635f7ab3b87
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-to-same-origin.https.html
@@ -0,0 +1,25 @@
+<!doctype html>
+<meta charset=utf-8>
+<meta name=timeout content=long>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<script src="/common/get-host-info.sub.js"></script>
+<script src="resources/common.js"></script>
+
+<div id=log></div>
+<script>
+[
+[SAME_ORIGIN, SAME_ORIGIN, "same-origin", true, true],
+[SAME_SITE, SAME_ORIGIN, "same-origin", false, false],
+[CROSS_ORIGIN, SAME_ORIGIN, "same-origin", false, false],
+[SAME_ORIGIN, SAME_SITE, "same-origin", false, false],
+[SAME_SITE, SAME_SITE, "same-origin", false, false],
+[CROSS_ORIGIN, SAME_SITE, "same-origin", false, false],
+[SAME_ORIGIN, CROSS_ORIGIN, "same-origin", false, false],
+[SAME_SITE, CROSS_ORIGIN, "same-origin", false, false],
+[CROSS_ORIGIN, CROSS_ORIGIN, "same-origin", false, false],
+].forEach( value => {
+ run_coop_test_iframe("same-origin", value[0], value[1], value[2], value[3], value[4]);
+});
+
+</script> \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin.https.html.headers b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-to-same-origin.https.html.headers
index 46ad58d83bf..46ad58d83bf 100644
--- a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin.https.html.headers
+++ b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-to-same-origin.https.html.headers
diff --git a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin.https.html b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-to-unsafe-none.https.html
index 2b7decd39cf..d6521bd9dc4 100644
--- a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin.https.html
+++ b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-to-unsafe-none.https.html
@@ -1,5 +1,6 @@
<!doctype html>
<meta charset=utf-8>
+<meta name=timeout content=long>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src="/common/get-host-info.sub.js"></script>
@@ -8,15 +9,6 @@
<div id=log></div>
<script>
[
-[SAME_ORIGIN, SAME_ORIGIN, "same-origin", true, true],
-[SAME_SITE, SAME_ORIGIN, "same-origin", false, true],
-[CROSS_ORIGIN, SAME_ORIGIN, "same-origin", false, true],
-[SAME_ORIGIN, SAME_SITE, "same-origin", false, false],
-[SAME_SITE, SAME_SITE, "same-origin", false, true],
-[CROSS_ORIGIN, SAME_SITE, "same-origin", false, true],
-[SAME_ORIGIN, CROSS_ORIGIN, "same-origin", false, false],
-[SAME_SITE, CROSS_ORIGIN, "same-origin", false, true],
-[CROSS_ORIGIN, CROSS_ORIGIN, "same-origin", false, true],
[SAME_ORIGIN, SAME_ORIGIN, "", false, false],
[SAME_SITE, SAME_ORIGIN, "", false, true],
[CROSS_ORIGIN, SAME_ORIGIN, "", false, true],
diff --git a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-meta-http-equiv.https.html.headers b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-to-unsafe-none.https.html.headers
index 46ad58d83bf..46ad58d83bf 100644
--- a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-meta-http-equiv.https.html.headers
+++ b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-to-unsafe-none.https.html.headers
diff --git a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-unsafe-none.https.html b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-unsafe-none-to-same-origin.https.html
index 78a18118504..ad7c0e263ab 100644
--- a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-unsafe-none.https.html
+++ b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-unsafe-none-to-same-origin.https.html
@@ -1,5 +1,6 @@
<!doctype html>
<meta charset=utf-8>
+<meta name=timeout content=long>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src="/common/get-host-info.sub.js"></script>
@@ -17,15 +18,6 @@
[SAME_ORIGIN, CROSS_ORIGIN, "same-origin", false, false],
[SAME_SITE, CROSS_ORIGIN, "same-origin", false, false],
[CROSS_ORIGIN, CROSS_ORIGIN, "same-origin", false, false],
-[SAME_ORIGIN, SAME_ORIGIN, "", true, true],
-[SAME_SITE, SAME_ORIGIN, "", true, true],
-[CROSS_ORIGIN, SAME_ORIGIN, "", true, true],
-[SAME_ORIGIN, SAME_SITE, "", true, true],
-[SAME_SITE, SAME_SITE, "", true, true],
-[CROSS_ORIGIN, SAME_SITE, "", true, true],
-[SAME_ORIGIN, CROSS_ORIGIN, "", true, true],
-[SAME_SITE, CROSS_ORIGIN, "", true, true],
-[CROSS_ORIGIN, CROSS_ORIGIN, "", true, true],
].forEach( value => {
run_coop_test_iframe("unsafe-none", value[0], value[1], value[2], value[3], value[4]);
});
diff --git a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-unsafe-none.https.html.headers b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-unsafe-none-to-same-origin.https.html.headers
index 073ce7adfbd..073ce7adfbd 100644
--- a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-unsafe-none.https.html.headers
+++ b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-unsafe-none-to-same-origin.https.html.headers
diff --git a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-unsafe-none-to-unsafe-none.https.html b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-unsafe-none-to-unsafe-none.https.html
new file mode 100644
index 00000000000..8113189cc86
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-unsafe-none-to-unsafe-none.https.html
@@ -0,0 +1,25 @@
+<!doctype html>
+<meta charset=utf-8>
+<meta name=timeout content=long>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<script src="/common/get-host-info.sub.js"></script>
+<script src="resources/common.js"></script>
+
+<div id=log></div>
+<script>
+[
+[SAME_ORIGIN, SAME_ORIGIN, "", true, true],
+[SAME_SITE, SAME_ORIGIN, "", true, true],
+[CROSS_ORIGIN, SAME_ORIGIN, "", true, true],
+[SAME_ORIGIN, SAME_SITE, "", true, true],
+[SAME_SITE, SAME_SITE, "", true, true],
+[CROSS_ORIGIN, SAME_SITE, "", true, true],
+[SAME_ORIGIN, CROSS_ORIGIN, "", true, true],
+[SAME_SITE, CROSS_ORIGIN, "", true, true],
+[CROSS_ORIGIN, CROSS_ORIGIN, "", true, true],
+].forEach( value => {
+ run_coop_test_iframe("unsafe-none", value[0], value[1], value[2], value[3], value[4]);
+});
+
+</script> \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-unsafe-none-to-unsafe-none.https.html.headers b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-unsafe-none-to-unsafe-none.https.html.headers
new file mode 100644
index 00000000000..073ce7adfbd
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-unsafe-none-to-unsafe-none.https.html.headers
@@ -0,0 +1 @@
+Cross-Origin-Opener-Policy: unsafe-none
diff --git a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/no-https.html b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/no-https.html
index f4e926b2eb2..db15d5c676e 100644
--- a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/no-https.html
+++ b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/no-https.html
@@ -1,5 +1,5 @@
<!doctype html>
-<meta name="timeout" content="long">
+<meta name=timeout content=long>
<title>Cross-Origin-Opener-Policy requires secure contexts</title>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
diff --git a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-redirect-cache.https.html b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-redirect-cache.https.html
index 0524878a03a..d68c80664bc 100644
--- a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-redirect-cache.https.html
+++ b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-redirect-cache.https.html
@@ -1,6 +1,6 @@
<!doctype html>
<meta charset=utf-8>
-<meta name="timeout" content="long">
+<meta name=timeout content=long>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src="/common/get-host-info.sub.js"></script>
@@ -15,6 +15,7 @@ function url_test_cache(t, url, channelName, hasOpener) {
const payload = event.data;
assert_equals(payload.name, hasOpener ? channelName : "");
assert_equals(payload.opener, hasOpener);
+ assert_equals(w.closed, !hasOpener);
bc.close()
// test the same url for cache
@@ -23,9 +24,7 @@ function url_test_cache(t, url, channelName, hasOpener) {
const w = window.open(url, channelName);
- // w will be closed by its postback iframe. When out of process,
- // window.close() does not work.
- t.add_cleanup(() => w.close());
+ // The popup is closed by url_test.
}
// Redirect from hostA to hostB with same coop and coep.
diff --git a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-cross-origin.https.html b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-cross-origin.https.html
index cea3788ba83..74ded50d667 100644
--- a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-cross-origin.https.html
+++ b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-cross-origin.https.html
@@ -1,6 +1,6 @@
<!doctype html>
<meta charset=utf-8>
-<meta content=timeout value=long>
+<meta name=timeout content=long>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src="/common/get-host-info.sub.js"></script>
diff --git a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-same-origin.https.html b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-same-origin.https.html
index a50231f8228..b67db7e7066 100644
--- a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-same-origin.https.html
+++ b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-same-origin.https.html
@@ -1,6 +1,6 @@
<!doctype html>
<meta charset=utf-8>
-<meta content=timeout value=long>
+<meta name=timeout content=long>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src="/common/get-host-info.sub.js"></script>
diff --git a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-same-site.https.html b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-same-site.https.html
index 53b4263a70f..af7836f77ee 100644
--- a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-same-site.https.html
+++ b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-same-site.https.html
@@ -1,6 +1,6 @@
<!doctype html>
<meta charset=utf-8>
-<meta content=timeout value=long>
+<meta name=timeout content=long>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src="/common/get-host-info.sub.js"></script>
diff --git a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-with-cross-origin.https.html b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-with-cross-origin.https.html
index 9f7d27b3c8d..f72f8a59be2 100644
--- a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-with-cross-origin.https.html
+++ b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-with-cross-origin.https.html
@@ -1,6 +1,6 @@
<!doctype html>
<meta charset=utf-8>
-<meta content=timeout value=long>
+<meta name=timeout content=long>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src="/common/get-host-info.sub.js"></script>
diff --git a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-with-same-origin.https.html b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-with-same-origin.https.html
index c84219a80f5..5798851f686 100644
--- a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-with-same-origin.https.html
+++ b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-with-same-origin.https.html
@@ -1,6 +1,6 @@
<!doctype html>
<meta charset=utf-8>
-<meta content=timeout value=long>
+<meta name=timeout content=long>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src="/common/get-host-info.sub.js"></script>
diff --git a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-with-same-site.https.html b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-with-same-site.https.html
index b875cc2e0e4..1af0f7ca3ac 100644
--- a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-with-same-site.https.html
+++ b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-with-same-site.https.html
@@ -1,6 +1,6 @@
<!doctype html>
<meta charset=utf-8>
-<meta content=timeout value=long>
+<meta name=timeout content=long>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src="/common/get-host-info.sub.js"></script>
diff --git a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-unsafe-none-with-cross-origin.https.html b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-unsafe-none-with-cross-origin.https.html
index 5cbf5b4c20c..6b6397c4869 100644
--- a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-unsafe-none-with-cross-origin.https.html
+++ b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-unsafe-none-with-cross-origin.https.html
@@ -1,6 +1,6 @@
<!doctype html>
<meta charset=utf-8>
-<meta content=timeout value=long>
+<meta name=timeout content=long>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src="/common/get-host-info.sub.js"></script>
diff --git a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-unsafe-none-with-same-origin.https.html b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-unsafe-none-with-same-origin.https.html
index f8a4ebe7128..66d720f7e92 100644
--- a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-unsafe-none-with-same-origin.https.html
+++ b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-unsafe-none-with-same-origin.https.html
@@ -1,6 +1,6 @@
<!doctype html>
<meta charset=utf-8>
-<meta content=timeout value=long>
+<meta name=timeout content=long>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src="/common/get-host-info.sub.js"></script>
diff --git a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-unsafe-none-with-same-site.https.html b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-unsafe-none-with-same-site.https.html
index e38acf4fcb1..58ea328f0cf 100644
--- a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-unsafe-none-with-same-site.https.html
+++ b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-unsafe-none-with-same-site.https.html
@@ -1,6 +1,6 @@
<!doctype html>
<meta charset=utf-8>
-<meta content=timeout value=long>
+<meta name=timeout content=long>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src="/common/get-host-info.sub.js"></script>
diff --git a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-unspecified-with-cross-origin.https.html b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-unspecified-with-cross-origin.https.html
index d89398cd653..6b5bf18bf43 100644
--- a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-unspecified-with-cross-origin.https.html
+++ b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-unspecified-with-cross-origin.https.html
@@ -1,6 +1,6 @@
<!doctype html>
<meta charset=utf-8>
-<meta content=timeout value=long>
+<meta name=timeout content=long>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src="/common/get-host-info.sub.js"></script>
diff --git a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-unspecified-with-same-origin.https.html b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-unspecified-with-same-origin.https.html
index cb6fc02ac17..6000ec600f8 100644
--- a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-unspecified-with-same-origin.https.html
+++ b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-unspecified-with-same-origin.https.html
@@ -1,6 +1,6 @@
<!doctype html>
<meta charset=utf-8>
-<meta content=timeout value=long>
+<meta name=timeout content=long>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src="/common/get-host-info.sub.js"></script>
diff --git a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-unspecified-with-same-site.https.html b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-unspecified-with-same-site.https.html
index 6e0edfa0423..2f9d6f15e23 100644
--- a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-unspecified-with-same-site.https.html
+++ b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/popup-unspecified-with-same-site.https.html
@@ -1,6 +1,6 @@
<!doctype html>
<meta charset=utf-8>
-<meta content=timeout value=long>
+<meta name=timeout content=long>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src="/common/get-host-info.sub.js"></script>
diff --git a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/resources/common.js b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/resources/common.js
index 59ba33d65b0..760db60365f 100644
--- a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/resources/common.js
+++ b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/resources/common.js
@@ -12,13 +12,17 @@ function url_test(t, url, channelName, hasOpener, openerDOMAccess) {
if (openerDOMAccess !== undefined) {
assert_equals(payload.openerDOMAccess, openerDOMAccess, 'openerDOMAccess');
}
+ assert_equals(w.closed, !hasOpener, 'Openee browsing context closed');
});
const w = window.open(url, channelName);
- // w will be closed by its postback iframe. When out of process,
- // window.close() does not work.
- t.add_cleanup(() => w.close());
+ // Close the popup once the test is complete.
+ // The browsing context might be closed hence use the broadcast channel
+ // to trigger the closure.
+ t.add_cleanup(() => {
+ bc.postMessage("close");
+ });
}
function coop_coep_test(t, host, coop, coep, channelName, hasOpener, openerDOMAccess) {
@@ -43,7 +47,14 @@ function run_coop_test_iframe (documentTitle, iframe_origin, popup_origin, popup
const name = iframe_origin.name + "_iframe_opening_" + popup_origin.name + "_popup_with_coop_" + popup_coop;
async_test(t => {
const frame = document.createElement("iframe");
- t.add_cleanup(() => { frame.remove(); });
+
+ // Close the popup and remove the frame once the test is
+ // complete. The browsing context might be closed hence use the
+ // broadcast channel to trigger the closure.
+ t.add_cleanup(() => {
+ frame.remove();
+ bc.postMessage("close");
+ });
const origin = CROSS_ORIGIN.origin;
const path = new URL("resources/iframe-popup.sub.html", window.location).pathname;
diff --git a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/resources/coop-coep.py b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/resources/coop-coep.py
index e6f655ab728..0271d7834af 100644
--- a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/resources/coop-coep.py
+++ b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/resources/coop-coep.py
@@ -50,6 +50,13 @@ def main(request, response):
openerDOMAccessAllowed = !!self.opener.document.URL;
} catch(ex) {
}
+ // Handle the response from the frame, closing the popup once the
+ // test completes.
+ addEventListener("message", event => {
+ if (event.data == "close") {
+ close();
+ }
+ });
const iframe = document.querySelector("iframe");
iframe.onload = () => {
const payload = { name: self.name, opener: !!self.opener, openerDOMAccess: openerDOMAccessAllowed };
diff --git a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/resources/postback.html b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/resources/postback.html
index cf3c93bbe1d..5955e2d7593 100644
--- a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/resources/postback.html
+++ b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/resources/postback.html
@@ -3,8 +3,17 @@
<script>
const channelName = new URL(location).searchParams.get("channel");
const bc = new BroadcastChannel(channelName);
+
+// Handle the close message from the test-cleanup, forwarding it to the
+// top level document, as this iframe and the opening document might not
+// be able to close the popup.
+bc.onmessage = event => {
+ if (event.data == "close") {
+ top.postMessage("close", "*");
+ }
+};
+
window.addEventListener("message", event => {
bc.postMessage(event.data);
- window.parent.close();
});
</script>
diff --git a/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-crash.html b/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-crash.html
new file mode 100644
index 00000000000..111dcbe5338
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-crash.html
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<link rel="help" href="https://crbug.com/1039241">
+<div style="width: min-content;">
+ <div style="writing-mode:vertical-lr;">
+ <fieldset>
+ <div style="width:10%;"></div>
+ </fieldset>
+ </div>
+</div>
diff --git a/tests/wpt/web-platform-tests/html/rendering/replaced-elements/embedded-content/object-fallback-text-decoration-ref.html b/tests/wpt/web-platform-tests/html/rendering/replaced-elements/embedded-content/object-fallback-text-decoration-ref.html
new file mode 100644
index 00000000000..9481e80ac81
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/rendering/replaced-elements/embedded-content/object-fallback-text-decoration-ref.html
@@ -0,0 +1,3 @@
+<!doctype html>
+<title>Test reference</title>
+<span style="text-decoration:underline">This text should be underlined.</span>
diff --git a/tests/wpt/web-platform-tests/html/rendering/replaced-elements/embedded-content/object-fallback-text-decoration.html b/tests/wpt/web-platform-tests/html/rendering/replaced-elements/embedded-content/object-fallback-text-decoration.html
new file mode 100644
index 00000000000..89657ef8a2d
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/rendering/replaced-elements/embedded-content/object-fallback-text-decoration.html
@@ -0,0 +1,9 @@
+<!doctype html>
+<title>Rendering of object element fallback with text-decoration</title>
+<link rel="match" href="object-fallback-text-decoration-ref.html">
+<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#embedded-content-rendering-rules">
+<meta name="assert" content="Checks that text-decoration applies to rendered object fallback.">
+<style>
+ object { text-decoration: underline; }
+</style>
+<object>This text should be underlined.</object>
diff --git a/tests/wpt/web-platform-tests/html/rendering/the-details-element/summary-text-decoration-ref.html b/tests/wpt/web-platform-tests/html/rendering/the-details-element/summary-text-decoration-ref.html
new file mode 100644
index 00000000000..8b6105fd2ec
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/rendering/the-details-element/summary-text-decoration-ref.html
@@ -0,0 +1,5 @@
+<!doctype html>
+<title>Test reference</title>
+<details>
+ <summary><span style="text-decoration:underline">This text should be underlined.</span></summary>
+</details>
diff --git a/tests/wpt/web-platform-tests/html/rendering/the-details-element/summary-text-decoration.html b/tests/wpt/web-platform-tests/html/rendering/the-details-element/summary-text-decoration.html
new file mode 100644
index 00000000000..80bbd44c46c
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/rendering/the-details-element/summary-text-decoration.html
@@ -0,0 +1,11 @@
+<!doctype html>
+<title>Rendering of summary element with text-decoration</title>
+<link rel="match" href="summary-text-decoration-ref.html">
+<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#the-details-and-summary-elements">
+<meta name="assert" content="Checks that text-decoration applies to rendered summary element.">
+<style>
+ summary { text-decoration: underline; }
+</style>
+<details>
+ <summary>This text should be underlined.</summary>
+</details>
diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.fillStyle.sub.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.fillStyle.sub.html
index 6695138c57b..70c5f194ff6 100644
--- a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.fillStyle.sub.html
+++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.fillStyle.sub.html
@@ -3,6 +3,7 @@
<title>Canvas test: security.pattern.canvas.fillStyle.cross</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/get-host-info.sub.js"></script>
<script src="/common/media.js"></script>
<script src="/2dcontext/resources/canvas-tests.js"></script>
@@ -11,8 +12,8 @@
<script>
-forEachCanvasSource("http://{{domains[www1]}}:{{ports[http][0]}}",
- "http://{{domains[]}}:{{ports[http][0]}}",
+forEachCanvasSource(get_host_info().HTTP_REMOTE_ORIGIN,
+ get_host_info().HTTP_ORIGIN,
(name, factory) => {
promise_test(_ => {
return factory().then(source => {
diff --git a/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/reftest/legacy/fuzzy-ref-2.html.ini b/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/reftest/legacy/fuzzy-ref-2.html.ini
index 0bbb2bf0aa5..cdfd9736c54 100644
--- a/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/reftest/legacy/fuzzy-ref-2.html.ini
+++ b/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/reftest/legacy/fuzzy-ref-2.html.ini
@@ -1,2 +1,4 @@
[fuzzy-ref-2.html]
- fuzzy: maxDifference=255;100-100
+ fuzzy:
+ if os == "mac" and product == "chrome": maxDifference=254-255;100-100
+ maxDifference=255;100-100
diff --git a/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/reftest/legacy/reftest_fuzzy_chain_ini.html.ini b/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/reftest/legacy/reftest_fuzzy_chain_ini.html.ini
index 69dc018f389..d3776e243e4 100644
--- a/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/reftest/legacy/reftest_fuzzy_chain_ini.html.ini
+++ b/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/reftest/legacy/reftest_fuzzy_chain_ini.html.ini
@@ -1,2 +1,4 @@
[reftest_fuzzy_chain_ini.html]
- fuzzy: maxDifference=255;100-100
+ fuzzy:
+ if os == "mac" and product == "chrome": maxDifference=254-255;100-100
+ maxDifference=255;100-100
diff --git a/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/reftest/reftest_fuzzy_1.html.ini b/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/reftest/reftest_fuzzy_1.html.ini
new file mode 100644
index 00000000000..44f185357bc
--- /dev/null
+++ b/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/reftest/reftest_fuzzy_1.html.ini
@@ -0,0 +1,3 @@
+[reftest_fuzzy_1.html]
+ fuzzy:
+ if os == "mac" and product == "chrome": fuzzy-ref-1.html:254-255;100
diff --git a/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/reftest/reftest_fuzzy_ini_full.html.ini b/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/reftest/reftest_fuzzy_ini_full.html.ini
index 0ebde2f4a62..d682550d53e 100644
--- a/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/reftest/reftest_fuzzy_ini_full.html.ini
+++ b/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/reftest/reftest_fuzzy_ini_full.html.ini
@@ -1,3 +1,6 @@
[reftest_fuzzy_ini_full.html]
- fuzzy: [maxDifference=1;100-100,
- reftest_fuzzy_ini_full.html==fuzzy-ref-1.html:255;100]
+ fuzzy:
+ if os == "mac" and product == "chrome": [maxDifference=1;100-100,
+ reftest_fuzzy_ini_full.html==fuzzy-ref-1.html:254-255;100]
+ if 1 == 1: [maxDifference=1;100-100, # 'if 1 == 1:' is a workaround for a parser bug
+ reftest_fuzzy_ini_full.html==fuzzy-ref-1.html:255;100]
diff --git a/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/reftest/reftest_fuzzy_ini_ref_only.html.ini b/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/reftest/reftest_fuzzy_ini_ref_only.html.ini
index 70c0446b5dc..4437fceff89 100644
--- a/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/reftest/reftest_fuzzy_ini_ref_only.html.ini
+++ b/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/reftest/reftest_fuzzy_ini_ref_only.html.ini
@@ -1,4 +1,8 @@
[reftest_fuzzy_ini_ref_only.html]
- fuzzy: [maxDifference=1;100-100,
- fuzzy-ref-1.html:maxDifference=255;100-100,
- reftest_fuzzy==fuzzy-ref-2.html:maxDifference=1;100-100]
+ fuzzy:
+ if os == "mac" and product == "chrome": [maxDifference=1;100-100,
+ fuzzy-ref-1.html:maxDifference=254-255;100-100,
+ reftest_fuzzy==fuzzy-ref-2.html:maxDifference=1;100-100]
+ if 1 == 1: [maxDifference=1;100-100, # 1 == 1 is a workaround for a parser bug.
+ fuzzy-ref-1.html:maxDifference=255;100-100,
+ reftest_fuzzy==fuzzy-ref-2.html:maxDifference=1;100-100]
diff --git a/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/reftest/reftest_fuzzy_ini_short.html.ini b/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/reftest/reftest_fuzzy_ini_short.html.ini
index 1859d256800..27e3290e6fb 100644
--- a/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/reftest/reftest_fuzzy_ini_short.html.ini
+++ b/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/reftest/reftest_fuzzy_ini_short.html.ini
@@ -1,2 +1,4 @@
[reftest_fuzzy_ini_short.html]
- fuzzy: maxDifference=255;100-100
+ fuzzy:
+ if os == "mac" and product == "chrome": maxDifference=254-255;100-100
+ maxDifference=255;100-100
diff --git a/tests/wpt/web-platform-tests/largest-contentful-paint/multiple-redirects-TAO.html b/tests/wpt/web-platform-tests/largest-contentful-paint/multiple-redirects-TAO.html
new file mode 100644
index 00000000000..ec8ddc3ec61
--- /dev/null
+++ b/tests/wpt/web-platform-tests/largest-contentful-paint/multiple-redirects-TAO.html
@@ -0,0 +1,62 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+<meta charset="utf-8" />
+<title>This test validates some Timing-Allow-Origin header usage in multiple redirects.</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="resources/largest-contentful-paint-helpers.js"></script>
+<script src="/common/get-host-info.sub.js"></script>
+</head>
+<img id='image'></img>
+<body>
+<script>
+async_test(t => {
+ assert_precondition(window.LargestContentfulPaint, "LargestContentfulPaint is not implemented");
+ let destUrl = get_host_info().HTTP_REMOTE_ORIGIN
+ + '/element-timing/resources/multiple-redirects.py?';
+ destUrl += 'redirect_count=2';
+ // The final resource has '*' in TAO header, so will not affect the result.
+ destUrl += '&final_resource=/element-timing/resources/circle-tao.svg';
+ destUrl += '&origin1=' + get_host_info().UNAUTHENTICATED_ORIGIN;
+ destUrl += '&origin2=' + get_host_info().HTTP_REMOTE_ORIGIN;
+ const taoCombinations = [
+ {tao1: location.origin, tao2: location.origin, passes: false},
+ {tao1: location.origin, tao2: get_host_info().HTTP_REMOTE_ORIGIN, passes: false},
+ {tao1: location.origin, tao2: 'null', passes: true},
+ {tao1: location.origin, tao2: '*', passes: true},
+ {tao1: location.origin, tao2: location.origin, passes: false},
+ {tao1: 'null', tao2: '*', passes: false},
+ {tao1: '*', tao2: 'null', passes: true},
+ ];
+ function getURL(item) {
+ return destUrl + '&tao1=' + item.tao1 + '&tao2=' + item.tao2;
+ }
+ function setImage(index) {
+ const image = document.getElementById('image');
+ const item = taoCombinations[index];
+ image.src = getURL(item);
+ }
+ let observedCount = 0;
+ let beforeLoad = performance.now();
+ new PerformanceObserver(t.step_func(entries => {
+ assert_equals(entries.getEntries().length, 1, 'There should be a single entry.');
+ const e = entries.getEntries()[0];
+ const item = taoCombinations[observedCount];
+ const url = getURL(item);
+ const options = item.passes ? [] : ['renderTimeIs0'];
+ checkImage(e, url, 'image', 200*200, beforeLoad, options);
+ observedCount++;
+ if (observedCount === taoCombinations.length) {
+ t.done();
+ } else {
+ beforeLoad = performance.now();
+ setImage(observedCount);
+ }
+ })).observe({entryTypes: ['largest-contentful-paint']});
+ setImage(0);
+}, 'Cross-origin images with passing/failing TAO should/shouldn\'t have its renderTime set.');
+</script>
+</body>
+</html>
+
diff --git a/tests/wpt/web-platform-tests/mathml/presentation-markup/mrow/inferred-mrow-baseline.html b/tests/wpt/web-platform-tests/mathml/presentation-markup/mrow/inferred-mrow-baseline.html
index 1541b2d6ce1..c92cbba922f 100644
--- a/tests/wpt/web-platform-tests/mathml/presentation-markup/mrow/inferred-mrow-baseline.html
+++ b/tests/wpt/web-platform-tests/mathml/presentation-markup/mrow/inferred-mrow-baseline.html
@@ -20,7 +20,7 @@
window.addEventListener("load", runTests);
function runTests()
{
- ["Mrow", "Sqrt", "Style", "Error", "Phantom", "Math", "Menclose", "Mpadded"].forEach((tag) => {
+ ["Mrow", "Sqrt", "Style", "Error", "Phantom", "Math", "Menclose", "Mpadded", "Unknown"].forEach((tag) => {
var x = document.getElementById("above" + tag).getBoundingClientRect();
var y = document.getElementById("below" + tag).getBoundingClientRect();
test(function() {
@@ -43,8 +43,10 @@
<math><mspace id="aboveMath" width="10px" height="30px" style="background: purple"></mspace><mspace id="belowMath" width="10px" depth="30px" style="background: blue"></mspace></math>
<math><menclose notation="box"><mspace id="aboveMenclose" width="10px" height="30px" style="background: purple"
></mspace><mspace id="belowMenclose" width="10px" depth="30px" style="background: blue"></mspace></menclose></math>
- <math><mpadded notation="box"><mspace id="aboveMpadded" width="10px" height="30px" style="background: purple"
+ <math><mpadded lspace="10px"><mspace id="aboveMpadded" width="10px" height="30px" style="background: purple"
></mspace><mspace id="belowMpadded" width="10px" depth="30px" style="background: blue"></mspace></mpadded></math>
+ <math><unknown><mspace id="aboveUnknown" width="10px" height="30px" style="background: purple"
+></mspace><mspace id="belowUnknown" width="10px" depth="30px" style="background: blue"></mspace></unknown></math>
</p>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/mathml/presentation-markup/mrow/inferred-mrow-stretchy.html b/tests/wpt/web-platform-tests/mathml/presentation-markup/mrow/inferred-mrow-stretchy.html
index b6a51762dfd..4b89dd6fa5f 100644
--- a/tests/wpt/web-platform-tests/mathml/presentation-markup/mrow/inferred-mrow-stretchy.html
+++ b/tests/wpt/web-platform-tests/mathml/presentation-markup/mrow/inferred-mrow-stretchy.html
@@ -31,7 +31,7 @@
window.addEventListener("load", () => { document.fonts.ready.then(runTests); });
function runTests()
{
- ["Mrow", "Sqrt", "Style", "Error", "Phantom", "Math", "Menclose", "Mpadded"].forEach((tag) => {
+ ["Mrow", "Sqrt", "Style", "Error", "Phantom", "Math", "Menclose", "Mpadded", "Unknown"].forEach((tag) => {
var mo = document.getElementById("mo" + tag);
test(function() {
assert_true(MathMLFeatureDetection.has_mspace());
@@ -52,7 +52,8 @@
<math><mphantom><mo style="visibilty: visible;" id="moPhantom">&#x21A8;</mo><mspace width="1px" height="100px" style="background: magenta"></mspace></mphantom></math>
<math><mo id="moMath">&#x21A8;</mo><mspace width="1px" height="100px" style="background: magenta"></mspace></math>
<math><menclose notation="box"><mo id="moMenclose">&#x21A8;</mo><mspace width="1px" height="100px" style="background: magenta"></mspace></menclose></math>
- <math><mpadded notation="box"><mo id="moMpadded">&#x21A8;</mo><mspace width="1px" height="100px" style="background: magenta"></mspace></mpadded></math>
+ <math><mpadded lspace="10px"><mo id="moMpadded">&#x21A8;</mo><mspace width="1px" height="100px" style="background: magenta"></mspace></mpadded></math>
+ <math><unknown><mo id="moUnknown">&#x21A8;</mo><mspace width="1px" height="100px" style="background: magenta"></mspace></unknown></math>
</p>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/mathml/presentation-markup/mrow/spacing.html b/tests/wpt/web-platform-tests/mathml/presentation-markup/mrow/spacing.html
new file mode 100644
index 00000000000..4bdfc9a001a
--- /dev/null
+++ b/tests/wpt/web-platform-tests/mathml/presentation-markup/mrow/spacing.html
@@ -0,0 +1,51 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>Spacing in mrows</title>
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#horizontally-group-sub-expressions-mrow">
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#radicals-msqrt-mroot">
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#style-change-mstyle">
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#error-message-merror">
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#making-sub-expressions-invisible-mphantom">
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#the-top-level-math-element">
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#enclose-expression-inside-notation-menclose">
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#adjust-space-around-content-mpadded">
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#operator-fence-separator-or-accent-mo">
+<meta name="assert" content="Spacing is added around operators inside mrow-like elements.">
+<script src="/mathml/support/feature-detection.js"></script>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script type="text/javascript">
+ setup({ explicit_done: true });
+ window.addEventListener("load", () => { document.fonts.ready.then(runTests); });
+ function runTests()
+ {
+ ["Mrow", "Sqrt", "Style", "Error", "Phantom", "Math", "Menclose", "Mpadded", "Unknown"].forEach((tag) => {
+ test(function() {
+ assert_true(MathMLFeatureDetection.has_operator_spacing());
+ var mrow = document.getElementById(tag);
+ var mn1 = mrow.firstElementChild.getBoundingClientRect();
+ var mn2 = mrow.lastElementChild.getBoundingClientRect();
+ assert_greater_than_equal(mn2.left - mn1.right, 50);
+ }, `operator spacing inside ${tag}`);
+ });
+ done();
+ }
+</script>
+</head>
+<body>
+ <div id="log"></div>
+ <p>
+ <math><mrow id="Mrow"><mn>1</mn><mo lspace="50px">|</mo><mn>2</mn></mrow></math>
+ <math><msqrt id="Sqrt"><mn>1</mn><mo lspace="50px">|</mo><mn>2</mn></msqrt></math>
+ <math><mstyle id="Style"><mn>1</mn><mo lspace="50px">|</mo><mn>2</mn></mstyle></math>
+ <math><merror id="Error"><mn>1</mn><mo lspace="50px"></mo><mn>2</mn></merror></math>
+ <math><mphantom id="Phantom"><mn>1</mn><mo lspace="50px">|</mo><mn>2</mn></mphantom></math>
+ <math id="Math"><mn>1</mn><mo lspace="50px">|</mo><mn>2</mn></math>
+ <math><menclose id="Menclose" notation="box"><mn>1</mn><mo lspace="50px">|</mo><mn>2</mn></menclose></math>
+ <math><mpadded id="Mpadded" lspace="10px"><mn>1</mn><mo lspace="50px">|</mo><mn>2</mn></mpadded></math>
+ <math><unknown id="Unknown"><mn>1</mn><mo lspace="50px">|</mo><mn>2</mn></unknown></math>
+ </p>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/mathml/support/feature-detection.js b/tests/wpt/web-platform-tests/mathml/support/feature-detection.js
index 1952d3b06c1..7ad4d953d08 100644
--- a/tests/wpt/web-platform-tests/mathml/support/feature-detection.js
+++ b/tests/wpt/web-platform-tests/mathml/support/feature-detection.js
@@ -24,35 +24,11 @@ var MathMLFeatureDetection = {
},
"has_menclose": function() {
- if (!this.hasOwnProperty("_has_menclose")) {
- document.body.insertAdjacentHTML("beforeend", "<math>\
-<mrow style='font-size: 20px !important'>\
- <mrow>\
- <mrow>\
- <mrow>\
- <mtext>A</mtext>\
- </mrow>\
- </mrow>\
- </mrow>\
-</mrow>\
-<menclose notation='box' style='font-size: 20px !important'>\
- <menclose notation='box'>\
- <menclose notation='box'>\
- <menclose notation='box'>\
- <mtext>A</mtext>\
- </menclose>\
- </menclose>\
- </menclose>\
-</menclose>\
-</math>");
- var math = document.body.lastElementChild;
- // The boxes will make menclose wider than mrow, if the former is supported.
- this._has_menclose =
- math.lastElementChild.getBoundingClientRect().width -
- math.firstElementChild.getBoundingClientRect().width > 5;
- document.body.removeChild(math);
- }
- return this._has_menclose;
+ // Just check whether <mrow> is supported because discussion on this is
+ // still open ( https://github.com/mathml-refresh/mathml/issues/105 )
+ // and it would have to behave at least like an mrow, even if it becomes
+ // an unknown element at the end.
+ return this.has_mrow();
},
"has_merror": function() {
diff --git a/tests/wpt/web-platform-tests/measure-memory/measure-memory.tentative.any.js b/tests/wpt/web-platform-tests/measure-memory/measure-memory.tentative.any.js
index c4f47a0b084..cf42e2c9f46 100644
--- a/tests/wpt/web-platform-tests/measure-memory/measure-memory.tentative.any.js
+++ b/tests/wpt/web-platform-tests/measure-memory/measure-memory.tentative.any.js
@@ -1,25 +1,62 @@
+function checkMeasureMemoryResultEntry(entry, checkUrl) {
+ assert_own_property(entry, "jsMemoryEstimate");
+ assert_own_property(entry, "jsMemoryRange");
+ assert_equals(entry.jsMemoryRange.length, 2);
+ assert_greater_than_equal(entry.jsMemoryRange[1], entry.jsMemoryRange[0]);
+ assert_greater_than_equal(entry.jsMemoryEstimate, entry.jsMemoryRange[0]);
+ assert_greater_than_equal(entry.jsMemoryRange[1], entry.jsMemoryEstimate);
+ if (checkUrl) {
+ assert_own_property(entry, "url");
+ }
+}
+
function checkMeasureMemoryResultSummary(result) {
assert_own_property(result, "total");
- assert_own_property(result.total, "jsMemoryEstimate");
- assert_own_property(result.total, "jsMemoryRange");
- assert_equals(result.total.jsMemoryRange.length, 2);
- assert_greater_than_equal(
- result.total.jsMemoryRange[1],
- result.total.jsMemoryRange[0]);
- assert_greater_than_equal(
- result.total.jsMemoryEstimate,
- result.total.jsMemoryRange[0]);
- assert_greater_than_equal(
- result.total.jsMemoryRange[1],
- result.total.jsMemoryEstimate);
+ checkMeasureMemoryResultEntry(result.total, false);
+}
+
+function checkMeasureMemoryResultDetails(result) {
+ assert_own_property(result, "current");
+ checkMeasureMemoryResultEntry(result.current, true);
+ assert_own_property(result, "other");
+ for (other of result.other) {
+ checkMeasureMemoryResultEntry(other, true);
+ }
}
promise_test(async testCase => {
- let result = await performance.measureMemory();
- checkMeasureMemoryResultSummary(result);
+ try {
+ let result = await performance.measureMemory();
+ checkMeasureMemoryResultSummary(result);
+ } catch (error) {
+ if (!(error instanceof DOMException)) {
+ throw error;
+ }
+ assert_equals(error.name, "SecurityError");
+ }
}, 'Well-formed result of performance.measureMemory with default arguments.');
promise_test(async testcase => {
- let result = await performance.measureMemory({detailed: false});
- checkMeasureMemoryResultSummary(result);
-}, 'well-formed result of performance.measurememory with detailed=false.');
+ try {
+ let result = await performance.measureMemory({detailed: false});
+ checkMeasureMemoryResultSummary(result);
+ } catch (error) {
+ if (!(error instanceof DOMException)) {
+ throw error;
+ }
+ assert_equals(error.name, "SecurityError");
+ }
+}, 'well-formed result of performance.measureMemory with detailed=false.');
+
+promise_test(async testcase => {
+ try {
+ let result = await performance.measureMemory({detailed: true});
+ checkMeasureMemoryResultSummary(result);
+ checkMeasureMemoryResultDetails(result);
+ } catch (error) {
+ if (!(error instanceof DOMException)) {
+ throw error;
+ }
+ assert_equals(error.name, "SecurityError");
+ }
+}, 'well-formed result of performance.measureMemory with detailed=true.');
diff --git a/tests/wpt/web-platform-tests/native-file-system/native_FileSystemBaseHandle-postMessage-manual.https.tentative.html b/tests/wpt/web-platform-tests/native-file-system/native_FileSystemBaseHandle-postMessage-manual.https.tentative.html
index 266238c4acc..e04be7df5fc 100644
--- a/tests/wpt/web-platform-tests/native-file-system/native_FileSystemBaseHandle-postMessage-manual.https.tentative.html
+++ b/tests/wpt/web-platform-tests/native-file-system/native_FileSystemBaseHandle-postMessage-manual.https.tentative.html
@@ -1,5 +1,6 @@
<!doctype html>
<meta charset=utf-8>
+<meta name="timeout" content="long">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
diff --git a/tests/wpt/web-platform-tests/native-file-system/sandboxed_FileSystemBaseHandle-postMessage.tentative.https.window.js b/tests/wpt/web-platform-tests/native-file-system/sandboxed_FileSystemBaseHandle-postMessage.tentative.https.window.js
index e010f6599e8..f7d5776e19e 100644
--- a/tests/wpt/web-platform-tests/native-file-system/sandboxed_FileSystemBaseHandle-postMessage.tentative.https.window.js
+++ b/tests/wpt/web-platform-tests/native-file-system/sandboxed_FileSystemBaseHandle-postMessage.tentative.https.window.js
@@ -4,4 +4,5 @@
// META: script=resources/messaging-helpers.js
// META: script=resources/messaging-blob-helpers.js
// META: script=resources/messaging-serialize-helpers.js
-// META: script=script-tests/FileSystemBaseHandle-postMessage.js \ No newline at end of file
+// META: script=script-tests/FileSystemBaseHandle-postMessage.js
+// META: timeout=long
diff --git a/tests/wpt/web-platform-tests/portals/portals-focus.sub.html b/tests/wpt/web-platform-tests/portals/portals-focus.sub.html
index 1779590779a..97b7579eb63 100644
--- a/tests/wpt/web-platform-tests/portals/portals-focus.sub.html
+++ b/tests/wpt/web-platform-tests/portals/portals-focus.sub.html
@@ -1,4 +1,5 @@
<!DOCTYPE html>
+<meta name="timeout" content="long">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/testdriver.js"></script>
diff --git a/tests/wpt/web-platform-tests/referrer-policy/generic/inheritance/iframe-inheritance-data.html b/tests/wpt/web-platform-tests/referrer-policy/generic/inheritance/iframe-inheritance-data.html
index 368e77e1217..1d39781e305 100644
--- a/tests/wpt/web-platform-tests/referrer-policy/generic/inheritance/iframe-inheritance-data.html
+++ b/tests/wpt/web-platform-tests/referrer-policy/generic/inheritance/iframe-inheritance-data.html
@@ -4,37 +4,21 @@
<link rel="help" href="https://www.w3.org/TR/referrer-policy/#referrer-policy-delivery-nested">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
- <!-- Common global functions for referrer-policy tests. -->
- <script src="/common/security-features/resources/common.sub.js"></script>
- <script src="/referrer-policy/generic/referrer-policy-test-case.js"></script>
+ <script src="/common/get-host-info.sub.js"></script>
+ <script src="resources/make-html-script.js"></script>
<meta name="referrer" content="origin">
</head>
<body onload="runTest()">
<h1>Referrer Policy: iframes with data url uses no referrer</h1>
<script>
let test = async_test("iframes with data url uses no referrer");
- window.addEventListener("message", test.step_func((msg) => {
+ window.addEventListener("message", test.step_func_done(msg => {
assert_equals(msg.data.referrer, undefined);
- test.done();
}));
function runTest() {
- const BASE = location.protocol + "//www1." + location.hostname + ":" + location.port;
- const TEST_DATA =
- `data:text/html,<script src = "${BASE}/common/security-features/resources/common.sub.js"></` + `script>
- <script src = "${BASE}/referrer-policy/generic/referrer-policy-test-case.js"></` + `script>
- <script>
- var urlPath = "/common/security-features/subresource/xhr.py";
- var url = "${BASE}" + urlPath;
- requestViaXhr(url).then((msg) => {
- parent.postMessage({referrer: msg.referrer}, "*")})
- .catch((e) => {
- parent.postMessage({referrer: "FAILURE"}, "*");
- });
- </` + "script>";
-
let iframe = document.createElement("iframe");
- iframe.src = TEST_DATA;
+ iframe.src = `data:text/html,${createScriptString(get_host_info().REMOTE_ORIGIN)}`;
document.body.appendChild(iframe);
}
</script>
diff --git a/tests/wpt/web-platform-tests/referrer-policy/generic/inheritance/iframe-inheritance-document-write.html b/tests/wpt/web-platform-tests/referrer-policy/generic/inheritance/iframe-inheritance-document-write.html
new file mode 100644
index 00000000000..cba71bb1d9f
--- /dev/null
+++ b/tests/wpt/web-platform-tests/referrer-policy/generic/inheritance/iframe-inheritance-document-write.html
@@ -0,0 +1,20 @@
+<!doctype html>
+<title>Referrer Policy: iframes with document.write()</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/common/get-host-info.sub.js"></script>
+<script src="resources/make-html-script.js"></script>
+<meta name="referrer" content="origin">
+<div id="log"></div>
+<script>
+async_test(t => {
+ window.addEventListener("message", t.step_func_done(msg => {
+ assert_equals(msg.data.referrer, self.origin + "/");
+ }));
+
+ const iframe = document.createElement("iframe");
+ document.body.appendChild(iframe);
+ iframe.contentDocument.write(createScriptString(get_host_info().REMOTE_ORIGIN));
+ iframe.contentDocument.close();
+});
+</script>
diff --git a/tests/wpt/web-platform-tests/referrer-policy/generic/inheritance/iframe-inheritance-javascript-child.html b/tests/wpt/web-platform-tests/referrer-policy/generic/inheritance/iframe-inheritance-javascript-child.html
new file mode 100644
index 00000000000..e20da4f2ccc
--- /dev/null
+++ b/tests/wpt/web-platform-tests/referrer-policy/generic/inheritance/iframe-inheritance-javascript-child.html
@@ -0,0 +1,70 @@
+<!doctype html>
+<title>Referrer Policy: iframes with javascript url reuse referrer policy</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/common/get-host-info.sub.js"></script>
+<script src="resources/make-html-script.js"></script>
+<meta name="referrer" content="origin">
+<div id="log"></div>
+<script>
+[
+ {
+ srcDocPolicy: ``,
+ expected: self.origin + "/"
+ },
+ {
+ srcDocPolicy: `<meta name="referrer" content="no-referrer">`,
+ expected: undefined
+ }
+].forEach(({ srcDocPolicy, expected }) => {
+ promise_test(t => {
+ return new Promise(resolve => {
+ window.addEventListener("message", t.step_func(msg => {
+ assert_equals(msg.data.referrer, expected);
+ resolve();
+ }), { once:true });
+
+ const iframe = document.createElement("iframe");
+ t.add_cleanup(() => iframe.remove());
+ iframe.srcdoc = `${srcDocPolicy}<body><h1>Outer iframe</h1></body>`;
+ iframe.onload = t.step_func(() => {
+ iframe.onload = null;
+ const iframeChild = iframe.contentDocument.createElement("iframe");
+ iframeChild.src = `javascript:'${createScriptString(get_host_info().REMOTE_ORIGIN)}'`;
+ iframe.contentDocument.body.appendChild(iframeChild);
+ });
+ document.body.appendChild(iframe);
+ });
+ });
+});
+
+[
+ {
+ srcDocPolicy: ``,
+ expected: self.origin + "/"
+ },
+ {
+ srcDocPolicy: `<meta name="referrer" content="no-referrer">`,
+ expected: undefined
+ }
+].forEach(({ srcDocPolicy, expected }) => {
+ promise_test(t => {
+ return new Promise(resolve => {
+ window.addEventListener("message", t.step_func(msg => {
+ assert_equals(msg.data.referrer, expected);
+ resolve();
+ }), { once:true });
+
+ const iframe = document.createElement("iframe");
+ t.add_cleanup(() => iframe.remove());
+ iframe.srcdoc = `${srcDocPolicy}<body><h1>Outer iframe</h1></body>`;
+ iframe.onload = t.step_func(() => {
+ iframe.onload = null;
+ iframe.contentWindow.location = `javascript:'${createScriptString(get_host_info().REMOTE_ORIGIN)}'`;
+ });
+ document.body.appendChild(iframe);
+ });
+ });
+});
+
+</script>
diff --git a/tests/wpt/web-platform-tests/referrer-policy/generic/inheritance/iframe-inheritance-javascript.html b/tests/wpt/web-platform-tests/referrer-policy/generic/inheritance/iframe-inheritance-javascript.html
new file mode 100644
index 00000000000..77b6d759f5f
--- /dev/null
+++ b/tests/wpt/web-platform-tests/referrer-policy/generic/inheritance/iframe-inheritance-javascript.html
@@ -0,0 +1,19 @@
+<!doctype html>
+<title>Referrer Policy: iframes with javascript url reuse referrer policy</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/common/get-host-info.sub.js"></script>
+<script src="resources/make-html-script.js"></script>
+<meta name="referrer" content="origin">
+<div id="log"></div>
+<script>
+async_test(t => {
+ window.addEventListener("message", t.step_func_done(msg => {
+ assert_equals(msg.data.referrer, self.origin + "/");
+ }));
+
+ const iframe = document.createElement("iframe");
+ iframe.src = `javascript:'${createScriptString(get_host_info().REMOTE_ORIGIN)}'`;
+ document.body.appendChild(iframe);
+});
+</script>
diff --git a/tests/wpt/web-platform-tests/referrer-policy/generic/inheritance/iframe-inheritance-srcdoc-child.html b/tests/wpt/web-platform-tests/referrer-policy/generic/inheritance/iframe-inheritance-srcdoc-child.html
index ecd5a41cc0b..cd4b4ae7248 100644
--- a/tests/wpt/web-platform-tests/referrer-policy/generic/inheritance/iframe-inheritance-srcdoc-child.html
+++ b/tests/wpt/web-platform-tests/referrer-policy/generic/inheritance/iframe-inheritance-srcdoc-child.html
@@ -5,43 +5,27 @@
<link rel="help" href="https://www.w3.org/TR/referrer-policy/#referrer-policy-delivery-nested">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
- <!-- Common global functions for referrer-policy tests. -->
- <script src="/common/security-features/resources/common.sub.js"></script>
- <script src="/referrer-policy/generic/referrer-policy-test-case.js"></script>
+ <script src="/common/get-host-info.sub.js"></script>
+ <script src="resources/make-html-script.js"></script>
<meta name="referrer" content="origin">
</head>
<body onload="runTest()">
<h1>Referrer Policy: iframes srcdoc child correctly inherit the ancestor's referrer policy</h1>
<script>
var test = async_test("iframes srcdoc child correctly inherit the ancestor's referrer policy");
- window.addEventListener("message", test.step_func((msg) => {
- assert_equals(msg.data.referrer, document.location.origin + "/");
- test.done();
+ window.addEventListener("message", test.step_func_done(msg => {
+ assert_equals(msg.data.referrer, self.origin + "/");
}));
- const BASE = location.protocol + "//www1." + location.hostname + ":" + location.port;
-
function runTest() {
var iframe = document.createElement("iframe");
iframe.srcdoc = `<body><h1>Outer iframe</h1></body>`;
- iframe.onload = function() {
+ iframe.onload = test.step_func(() => {
iframe.onload = null;
var iframeChild = iframe.contentDocument.createElement("iframe");
- iframeChild.srcdoc =
- `<script src = "${BASE}/common/security-features/resources/common.sub.js"></sc` + `ript>
- <script src = "${BASE}/referrer-policy/generic/referrer-policy-test-case.js"></sc` + `ript>
- <script>
- var urlPath = "/common/security-features/subresource/xhr.py";
- var url = "${BASE}" + urlPath;
- requestViaXhr(url).then((msg) => {
- window.top.postMessage({referrer: msg.referrer}, "*")})
- .catch((e) => {
- window.top.postMessage({referrer: "FAILURE"}, "*");
- });
- </sc` + "ript>";
+ iframeChild.srcdoc = createScriptString(get_host_info().REMOTE_ORIGIN);
iframe.contentDocument.body.appendChild(iframeChild);
- };
-
+ });
document.body.appendChild(iframe);
}
</script>
diff --git a/tests/wpt/web-platform-tests/referrer-policy/generic/inheritance/iframe-inheritance-srcdoc.html b/tests/wpt/web-platform-tests/referrer-policy/generic/inheritance/iframe-inheritance-srcdoc.html
index 6639ebd9873..c4dffd3ed70 100644
--- a/tests/wpt/web-platform-tests/referrer-policy/generic/inheritance/iframe-inheritance-srcdoc.html
+++ b/tests/wpt/web-platform-tests/referrer-policy/generic/inheritance/iframe-inheritance-srcdoc.html
@@ -5,33 +5,21 @@
<link rel="help" href="https://www.w3.org/TR/referrer-policy/#referrer-policy-delivery-nested">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
- <!-- Common global functions for referrer-policy tests. -->
- <script src="/common/security-features/resources/common.sub.js"></script>
+ <script src="/common/get-host-info.sub.js"></script>
+ <script src="resources/make-html-script.js"></script>
<meta name="referrer" content="origin">
</head>
<body onload="runTest()">
<h1>Referrer Policy: iframes srcdoc correctly inherit the ancestor's referrer policy</h1>
<script>
var test = async_test("iframes srcdoc correctly inherit the ancestor's referrer policy");
- window.addEventListener("message", test.step_func((msg) => {
- assert_equals(msg.data.referrer, document.location.origin + "/");
- test.done();
+ window.addEventListener("message", test.step_func_done(msg => {
+ assert_equals(msg.data.referrer, self.origin + "/");
}));
function runTest() {
var iframe = document.createElement("iframe");
- iframe.srcdoc =
- `<script src = "/common/security-features/resources/common.sub.js"></` + `script>
- <script>
- var urlPath = "/common/security-features/subresource/xhr.py";
- var url = "${location.protocol}//www1.${location.hostname}:${location.port}" + urlPath;
- requestViaXhr(url).then((msg) => {
- parent.postMessage({referrer: msg.referrer}, "*")})
- .catch((e) => {
- parent.postMessage({referrer: "FAILURE"}, "*");
- });
- </` + "script>";
-
+ iframe.srcdoc = createScriptString(get_host_info().REMOTE_ORIGIN);
document.body.appendChild(iframe);
}
</script>
diff --git a/tests/wpt/web-platform-tests/referrer-policy/generic/inheritance/resources/make-html-script.js b/tests/wpt/web-platform-tests/referrer-policy/generic/inheritance/resources/make-html-script.js
new file mode 100644
index 00000000000..e285c559c04
--- /dev/null
+++ b/tests/wpt/web-platform-tests/referrer-policy/generic/inheritance/resources/make-html-script.js
@@ -0,0 +1,10 @@
+function createScriptString(origin) {
+ return `<script src = "${origin}/common/security-features/resources/common.sub.js"><\/script>
+ <script>
+ requestViaXhr("${origin}/common/security-features/subresource/xhr.py").then(msg => {
+ top.postMessage({referrer: msg.referrer}, "*")
+ }).catch(e => {
+ top.postMessage({referrer: "FAILURE"}, "*");
+ });
+ <\/script>`;
+}
diff --git a/tests/wpt/web-platform-tests/resource-timing/resource_timing_buffer_full_eventually.html b/tests/wpt/web-platform-tests/resource-timing/resource_timing_buffer_full_eventually.html
index ce745237c06..140973156fb 100644
--- a/tests/wpt/web-platform-tests/resource-timing/resource_timing_buffer_full_eventually.html
+++ b/tests/wpt/web-platform-tests/resource-timing/resource_timing_buffer_full_eventually.html
@@ -4,6 +4,7 @@
<meta charset="utf-8" />
<link rel="help" href="http://www.w3.org/TR/resource-timing/#performanceresourcetiming"/>
<title>This test validates that resource timing implementations have a finite number of entries in their buffer.</title>
+<meta name="timeout" content="long">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
</head>
@@ -12,28 +13,24 @@
const t = async_test("Finite resource timing entries buffer size");
performance.onresourcetimingbufferfull = t.step_func_done(function() {
});
- window.onload = t.step_func(
- function() {
- // Scripts appended in JS to ensure setResourceTimingBufferSize is called before.
- let counter = performance.getEntriesByType("resource").length;
- function appendScripts() {
- const documentFragment = document.createDocumentFragment();
- // Add 100 elements at a time to avoid page reflow every time.
- let numScriptsAccumulated = 0;
- while (numScriptsAccumulated < 100) {
- const src = "resources/empty.js?" + counter;
- const script = document.createElement('script');
- script.type = 'text/javascript';
- script.src = src;
- documentFragment.appendChild(script);
- ++counter;
- ++numScriptsAccumulated;
- }
- document.body.appendChild(documentFragment);
- t.step_timeout(appendScripts, 20);
- }
- appendScripts();
- });
+ let counter = 0;
+ function appendScripts() {
+ const documentFragment = document.createDocumentFragment();
+ // Add 8 elements at a time to avoid page reflow every time.
+ let numScriptsAccumulated = 0;
+ while (numScriptsAccumulated < 8) {
+ const src = "resources/empty.js?" + counter;
+ const script = document.createElement('script');
+ script.type = 'text/javascript';
+ script.src = src;
+ documentFragment.appendChild(script);
+ ++counter;
+ ++numScriptsAccumulated;
+ }
+ document.body.appendChild(documentFragment);
+ t.step_timeout(appendScripts, 20);
+ }
+ appendScripts();
</script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/scroll-to-text-fragment/scroll-to-text-fragment-target.html b/tests/wpt/web-platform-tests/scroll-to-text-fragment/scroll-to-text-fragment-target.html
index bc9ee9e6bc5..09d22ff6d1d 100644
--- a/tests/wpt/web-platform-tests/scroll-to-text-fragment/scroll-to-text-fragment-target.html
+++ b/tests/wpt/web-platform-tests/scroll-to-text-fragment/scroll-to-text-fragment-target.html
@@ -48,6 +48,14 @@ function checkScroll() {
let key = (new URL(document.location)).searchParams.get("key");
stashResults(key, results);
}
+
+// Ensure two animation frames on load to test the fallback to element anchor,
+// which gets queued for the next frame if the text fragment is not found.
+window.onload = function() {
+ window.requestAnimationFrame(function() {
+ window.requestAnimationFrame(checkScroll);
+ })
+}
</script>
<style>
.scroll-section {
@@ -64,7 +72,7 @@ function checkScroll() {
display: none;
}
</style>
-<body onload="window.requestAnimationFrame(checkScroll)">
+<body>
<div id="element" class="scroll-section">Element</div>
<p id="text" class="scroll-section">This is a test page !$'()*+./:;=?@_~ &,- &#x30cd;&#x30b3;</p>
<p id="more-text" class="scroll-section">More test page text</p>
diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/clients-matchall-client-types.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/clients-matchall-client-types.https.html
index a2a56816a65..54f182b6202 100644
--- a/tests/wpt/web-platform-tests/service-workers/service-worker/clients-matchall-client-types.https.html
+++ b/tests/wpt/web-platform-tests/service-workers/service-worker/clients-matchall-client-types.https.html
@@ -4,121 +4,89 @@
<script src="/resources/testharnessreport.js"></script>
<script src="resources/test-helpers.sub.js"></script>
<script>
-var scope = 'resources/clients-matchall-client-types';
-var iframe_url = scope + '-iframe.html';
-var shared_worker_url = scope + '-shared-worker.js';
-var dedicated_worker_url = scope + '-dedicated-worker.js';
+const scope = 'resources/clients-matchall-client-types';
+const iframe_url = scope + '-iframe.html';
+const shared_worker_url = scope + '-shared-worker.js';
+const dedicated_worker_url = scope + '-dedicated-worker.js';
/* visibilityState, focused, url, type, frameType */
-var expected_only_window = [
+const expected_only_window = [
['visible', true, new URL(iframe_url, location).href, 'window', 'nested']
];
-var expected_only_shared_worker = [
+const expected_only_shared_worker = [
[undefined, undefined, new URL(shared_worker_url, location).href, 'sharedworker', 'none']
];
-var expected_only_dedicated_worker = [
+const expected_only_dedicated_worker = [
[undefined, undefined, new URL(dedicated_worker_url, location).href, 'worker', 'none']
];
// These are explicitly sorted by URL in the service worker script.
-var expected_all_clients = [
+const expected_all_clients = [
expected_only_dedicated_worker[0],
expected_only_window[0],
expected_only_shared_worker[0],
];
-function test_matchall(frame, expected, query_options) {
+async function test_matchall(frame, expected, query_options) {
// Make sure the frame gets focus.
frame.focus();
- return new Promise(function(resolve, reject) {
- var channel = new MessageChannel();
- channel.port1.onmessage = function(e) { resolve(e.data); };
+ const data = await new Promise(resolve => {
+ const channel = new MessageChannel();
+ channel.port1.onmessage = e => resolve(e.data);
frame.contentWindow.navigator.serviceWorker.controller.postMessage(
{port:channel.port2, options:query_options},
[channel.port2]);
- }).then(function(data) {
- if (typeof data === 'string') {
- throw new Error(data);
- }
+ });
- assert_equals(data.length, expected.length, 'result count');
+ if (typeof data === 'string') {
+ throw new Error(data);
+ }
- for (var i = 0; i < data.length; ++i) {
- assert_array_equals(data[i], expected[i]);
- }
- });
+ assert_equals(data.length, expected.length, 'result count');
+
+ for (let i = 0; i < data.length; ++i) {
+ assert_array_equals(data[i], expected[i]);
+ }
}
-promise_test(function(t) {
- var frame;
- return service_worker_unregister_and_register(
- t, 'resources/clients-matchall-worker.js', scope)
- .then(function(registration) {
- t.add_cleanup(function() {
- return service_worker_unregister(t, scope);
- });
+promise_test(async t => {
+ const registration = await service_worker_unregister_and_register(
+ t, 'resources/clients-matchall-worker.js', scope);
+ t.add_cleanup(_ => registration.unregister());
+ await wait_for_state(t, registration.installing, 'activated');
+ const frame = await with_iframe(iframe_url);
+ t.add_cleanup(_ => frame.remove());
+ await test_matchall(frame, expected_only_window, {});
+ await test_matchall(frame, expected_only_window, {type:'window'});
+}, 'Verify matchAll() with window client type');
- return wait_for_state(t, registration.installing, 'activated');
- })
- .then(function() { return with_iframe(iframe_url); })
- .then(function(f) {
- frame = f;
- return test_matchall(frame, expected_only_window, {});
- })
- .then(function() {
- return test_matchall(frame, expected_only_window, {type:'window'});
- })
- .then(function() {
- frame.remove();
- });
- }, 'Verify matchAll() with window client type');
+promise_test(async t => {
+ const registration = await service_worker_unregister_and_register(
+ t, 'resources/clients-matchall-worker.js', scope);
+ t.add_cleanup(_ => registration.unregister());
+ await wait_for_state(t, registration.installing, 'activated');
+ const frame = await with_iframe(iframe_url);
+ t.add_cleanup(_ => frame.remove());
-promise_test(function(t) {
- var frame;
- return service_worker_unregister_and_register(
- t, 'resources/clients-matchall-worker.js', scope)
- .then(function(registration) {
- t.add_cleanup(function() {
- return service_worker_unregister(t, scope);
- });
+ // Set up worker clients.
+ const shared_worker = await new Promise((resolve, reject) => {
+ const w = new SharedWorker(shared_worker_url);
+ w.onerror = e => reject(e.message);
+ w.port.onmessage = _ => resolve(w);
+ });
+ const dedicated_worker = await new Promise((resolve, reject) => {
+ const w = new Worker(dedicated_worker_url);
+ w.onerror = e => reject(e.message);
+ w.onmessage = _ => resolve(w);
+ w.postMessage('Start');
+ });
- return wait_for_state(t, registration.installing, 'activated');
- })
- .then(function() { return with_iframe(iframe_url); })
- .then(function(f) {
- frame = f;
- return new Promise(function(resolve, reject) {
- var w = new SharedWorker(shared_worker_url);
- w.port.onmessage = resolve;
- });
- })
- .then(function() {
- return new Promise(function(resolve, reject) {
- var w = new Worker(dedicated_worker_url);
- w.onmessage = resolve;
- w.postMessage('Start');
- });
- })
- .then(function() {
- return test_matchall(frame, expected_only_window, {});
- })
- .then(function() {
- return test_matchall(frame, expected_only_window, {type:'window'});
- })
- .then(function() {
- return test_matchall(frame, expected_only_shared_worker,
- {type:'sharedworker'});
- })
- .then(function() {
- return test_matchall(frame, expected_only_dedicated_worker,
- {type:'worker'});
- })
- .then(function() {
- return test_matchall(frame, expected_all_clients, {type:'all'});
- })
- .then(function() {
- frame.remove();
- });
+ await test_matchall(frame, expected_only_window, {});
+ await test_matchall(frame, expected_only_window, {type:'window'});
+ await test_matchall(frame, expected_only_shared_worker,
+ {type:'sharedworker'});
+ await test_matchall(frame, expected_only_dedicated_worker, {type:'worker'});
+ await test_matchall(frame, expected_all_clients, {type:'all'});
}, 'Verify matchAll() with {window, sharedworker, worker} client types');
</script>
diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/getregistrations.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/getregistrations.https.html
index 3e48d5fe361..3a9b9a23317 100644
--- a/tests/wpt/web-platform-tests/service-workers/service-worker/getregistrations.https.html
+++ b/tests/wpt/web-platform-tests/service-workers/service-worker/getregistrations.https.html
@@ -31,14 +31,19 @@ promise_test(async t => {
promise_test(async t => {
const scope1 = 'resources/scope/getregistrations/scope1';
const scope2 = 'resources/scope/getregistrations/scope2';
+ const scope3 = 'resources/scope/getregistrations/scope12';
+
const script = 'resources/empty-worker.js';
t.add_cleanup(() => service_worker_unregister(t, scope1));
t.add_cleanup(() => service_worker_unregister(t, scope2));
+ t.add_cleanup(() => service_worker_unregister(t, scope3));
const registrations = [
await service_worker_unregister_and_register(t, script, scope1),
- await service_worker_unregister_and_register(t, script, scope2)
+ await service_worker_unregister_and_register(t, script, scope2),
+ await service_worker_unregister_and_register(t, script, scope3),
];
+
const value = await navigator.serviceWorker.getRegistrations();
assert_array_equals(value, registrations);
}, 'Register multiple times then getRegistrations');
diff --git a/tests/wpt/web-platform-tests/speech-api/META.yml b/tests/wpt/web-platform-tests/speech-api/META.yml
index 9ce8830e78f..88f1837f96f 100644
--- a/tests/wpt/web-platform-tests/speech-api/META.yml
+++ b/tests/wpt/web-platform-tests/speech-api/META.yml
@@ -1,3 +1,5 @@
spec: https://w3c.github.io/speech-api/
suggested_reviewers:
+ - andrenatal
- foolip
+ - marcoscaceres
diff --git a/tests/wpt/web-platform-tests/svg/extensibility/foreignObject/foreign-object-scale-scroll-ref.html b/tests/wpt/web-platform-tests/svg/extensibility/foreignObject/foreign-object-scale-scroll-ref.html
new file mode 100644
index 00000000000..a2217fed5d0
--- /dev/null
+++ b/tests/wpt/web-platform-tests/svg/extensibility/foreignObject/foreign-object-scale-scroll-ref.html
@@ -0,0 +1,8 @@
+<!doctype html>
+<svg width="400" height="400">
+ <foreignObject x="200" y="200" width="200" height="200">
+ <div style="width: 100px; height: 100px; transform: scale(2); transform-origin: 0 0; overflow: scroll">
+ <div style="width: 1000px; height: 1000px; background: blue"></div>
+ </div>
+ </foreignObject>
+</svg>
diff --git a/tests/wpt/web-platform-tests/svg/extensibility/foreignObject/foreign-object-scale-scroll.html b/tests/wpt/web-platform-tests/svg/extensibility/foreignObject/foreign-object-scale-scroll.html
new file mode 100644
index 00000000000..72ce40dc5c0
--- /dev/null
+++ b/tests/wpt/web-platform-tests/svg/extensibility/foreignObject/foreign-object-scale-scroll.html
@@ -0,0 +1,9 @@
+<!doctype html>
+<title>foreignObject with scale transform and overflow:scroll</title>
+<link rel="help" href="https://svgwg.org/svg2-draft/single-page.html#embedded-ForeignObjectElement"/>
+<link rel="match" href="foreign-object-scale-scroll-ref.html">
+<svg width="400" height="400">
+ <foreignObject x="100" y="100" transform="scale(2)" width="100" height="100" style="overflow: scroll">
+ <div style="width: 1000px; height: 1000px; background: blue"></div>
+ </foreignObject>
+</svg>
diff --git a/tests/wpt/web-platform-tests/tools/ci/azure/install_edge.yml b/tests/wpt/web-platform-tests/tools/ci/azure/install_edge.yml
index e4c425ab7a0..297b6e60b29 100644
--- a/tests/wpt/web-platform-tests/tools/ci/azure/install_edge.yml
+++ b/tests/wpt/web-platform-tests/tools/ci/azure/install_edge.yml
@@ -4,6 +4,26 @@ parameters:
# Should match https://web-platform-tests.org/running-tests/chrome.html
# Just replace chrome with edgechromium
steps:
+- ${{ if eq(parameters.channel, 'stable') }}:
+ - powershell: |
+ $edgeInstallerName = 'MicrosoftEdgeSetup.exe'
+ # Link to Stable channel installer
+ Start-BitsTransfer -Source 'https://go.microsoft.com/fwlink/?linkid=2108834&Channel=Stable&language=en' -Destination MicrosoftEdgeSetup.exe
+ if (-not (Test-Path $edgeInstallerName)) {
+ Throw "Failed to download Edge installer to $edgeInstallerName."
+ }
+ cmd /c START /WAIT $edgeInstallerName /silent /install
+ $edgePath = "$env:systemdrive\Program Files (x86)\Microsoft\Edge\Application"
+ if (Test-Path $edgePath) {
+ Write-Host "##vso[task.prependpath]$edgePath"
+ Write-Host "Edge Stable installed at $edgePath."
+ (Get-Item -Path "$edgePath\msedge.exe").VersionInfo | Format-List
+ } else {
+ Copy-Item -Path "$env:temp\*edge*.log" -Destination $(Build.ArtifactStagingDirectory) -Force
+ Throw "Failed to install Edge at $edgePath"
+ }
+ displayName: 'Install Edge Stable'
+
- ${{ if eq(parameters.channel, 'canary') }}:
- powershell: |
$edgeInstallerName = 'MicrosoftEdgeSetup.exe'
diff --git a/tests/wpt/web-platform-tests/tools/wpt/browser.py b/tests/wpt/web-platform-tests/tools/wpt/browser.py
index f0c2eeb94b8..13ce823d0ce 100644
--- a/tests/wpt/web-platform-tests/tools/wpt/browser.py
+++ b/tests/wpt/web-platform-tests/tools/wpt/browser.py
@@ -888,8 +888,10 @@ class EdgeChromium(Browser):
if not binary:
# Use paths from different Edge channels starting with Release\Beta\Dev\Canary
winpaths = [os.path.expanduser("~\\AppData\\Local\\Microsoft\\Edge\\Application"),
+ os.path.expandvars("$SYSTEMDRIVE\\Program Files\\Microsoft\\Edge\\Application"),
os.path.expandvars("$SYSTEMDRIVE\\Program Files\\Microsoft\\Edge Beta\\Application"),
os.path.expandvars("$SYSTEMDRIVE\\Program Files\\Microsoft\\Edge Dev\\Application"),
+ os.path.expandvars("$SYSTEMDRIVE\\Program Files (x86)\\Microsoft\\Edge\\Application"),
os.path.expandvars("$SYSTEMDRIVE\\Program Files (x86)\\Microsoft\\Edge Beta\\Application"),
os.path.expandvars("$SYSTEMDRIVE\\Program Files (x86)\\Microsoft\\Edge Dev\\Application"),
os.path.expanduser("~\\AppData\Local\\Microsoft\\Edge SxS\\Application")]
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorselenium.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorselenium.py
index ceca81211e1..39d723a7886 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorselenium.py
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorselenium.py
@@ -1,11 +1,12 @@
+from __future__ import absolute_import
import json
import os
import socket
import threading
import time
import traceback
-import urlparse
import uuid
+from six.moves.urllib.parse import urljoin
from .base import (CallbackHandler,
RefTestExecutor,
@@ -87,8 +88,8 @@ class SeleniumTestharnessProtocolPart(TestharnessProtocolPart):
def load_runner(self, url_protocol):
if self.runner_handle:
self.webdriver.switch_to_window(self.runner_handle)
- url = urlparse.urljoin(self.parent.executor.server_url(url_protocol),
- "/testharness_runner.html")
+ url = urljoin(self.parent.executor.server_url(url_protocol),
+ "/testharness_runner.html")
self.logger.debug("Loading %s" % url)
self.webdriver.get(url)
self.runner_handle = self.webdriver.current_window_handle
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py
index 0b329210fc5..d09eb1e1451 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py
@@ -1,11 +1,12 @@
+from __future__ import absolute_import
import json
import os
import socket
import threading
import time
import traceback
-import urlparse
import uuid
+from six.moves.urllib.parse import urljoin
from .base import (CallbackHandler,
CrashtestExecutor,
@@ -86,8 +87,8 @@ class WebDriverTestharnessProtocolPart(TestharnessProtocolPart):
def load_runner(self, url_protocol):
if self.runner_handle:
self.webdriver.window_handle = self.runner_handle
- url = urlparse.urljoin(self.parent.executor.server_url(url_protocol),
- "/testharness_runner.html")
+ url = urljoin(self.parent.executor.server_url(url_protocol),
+ "/testharness_runner.html")
self.logger.debug("Loading %s" % url)
self.webdriver.url = url
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptcommandline.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptcommandline.py
index 91f1161b01b..5b7278b99ff 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptcommandline.py
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptcommandline.py
@@ -1,4 +1,4 @@
-from __future__ import print_function
+from __future__ import absolute_import, print_function
import argparse
import os
import sys
@@ -16,9 +16,9 @@ def abs_path(path):
def url_or_path(path):
- import urlparse
+ from six.moves.urllib.parse import urlparse
- parsed = urlparse.urlparse(path)
+ parsed = urlparse(path)
if len(parsed.scheme) > 2:
return path
else:
diff --git a/tests/wpt/web-platform-tests/trusted-types/GlobalEventHandlers-onclick.tentative.html b/tests/wpt/web-platform-tests/trusted-types/GlobalEventHandlers-onclick.tentative.html
index 8c9c2f1a70b..6cbf680fa26 100644
--- a/tests/wpt/web-platform-tests/trusted-types/GlobalEventHandlers-onclick.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/GlobalEventHandlers-onclick.tentative.html
@@ -3,7 +3,7 @@
<script src="/resources/testharnessreport.js"></script>
<script src="support/helper.sub.js"></script>
-<meta http-equiv="Content-Security-Policy" content="trusted-types *">
+<meta http-equiv="Content-Security-Policy" content="trusted-types *; require-trusted-types-for 'script'">
<body>
<div id="container"></div>
<script>
diff --git a/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-metadata.tentative.html b/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-metadata.tentative.html
index da7d1b4f877..67c734b5a42 100644
--- a/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-metadata.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-metadata.tentative.html
@@ -4,7 +4,7 @@
<script src="/resources/testharnessreport.js"></script>
<script src="support/helper.sub.js"></script>
-<meta http-equiv="Content-Security-Policy" content="trusted-types *">
+<meta http-equiv="Content-Security-Policy" content="trusted-types *; require-trusted-types-for 'script';">
<body>
<div id="target"></div>
<script>
diff --git a/tests/wpt/web-platform-tests/trusted-types/WorkerGlobalScope-importScripts.https.html b/tests/wpt/web-platform-tests/trusted-types/WorkerGlobalScope-importScripts.https.html
index 9dbfd7b93c9..0aa965e16e0 100644
--- a/tests/wpt/web-platform-tests/trusted-types/WorkerGlobalScope-importScripts.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/WorkerGlobalScope-importScripts.https.html
@@ -1,7 +1,7 @@
<!doctype html>
<html>
<head>
- <meta http-equiv="Content-Security-Policy" content="trusted-types *">
+ <meta http-equiv="Content-Security-Policy" content="trusted-types *; require-trusted-types-for 'script';">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
</head>
diff --git a/tests/wpt/web-platform-tests/trusted-types/block-Node-multiple-arguments.tentative.html b/tests/wpt/web-platform-tests/trusted-types/block-Node-multiple-arguments.tentative.html
index 5552e131372..879d34f9612 100644
--- a/tests/wpt/web-platform-tests/trusted-types/block-Node-multiple-arguments.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/block-Node-multiple-arguments.tentative.html
@@ -4,7 +4,7 @@
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/helper.sub.js"></script>
- <meta http-equiv="Content-Security-Policy" content="trusted-types *">
+ <meta http-equiv="Content-Security-Policy" content="trusted-types *; require-trusted-types-for 'script';">
</head>
<body>
<div id="container"></div>
diff --git a/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-DOMParser-parseFromString.tentative.html b/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-DOMParser-parseFromString.tentative.html
index 82e31200e6b..12cef6af661 100644
--- a/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-DOMParser-parseFromString.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-DOMParser-parseFromString.tentative.html
@@ -3,7 +3,7 @@
<script src="/resources/testharnessreport.js"></script>
<script src="support/helper.sub.js"></script>
-<meta http-equiv="Content-Security-Policy" content="trusted-types *">
+<meta http-equiv="Content-Security-Policy" content="trusted-types *; require-trusted-types-for 'script';">
<body>
<script>
// Trusted HTML assignments do not throw.
diff --git a/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-DOMWindowTimers-setTimeout-setInterval.tentative.html b/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-DOMWindowTimers-setTimeout-setInterval.tentative.html
index 468ed7b6975..6d723ba23b6 100644
--- a/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-DOMWindowTimers-setTimeout-setInterval.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-DOMWindowTimers-setTimeout-setInterval.tentative.html
@@ -3,7 +3,7 @@
<script src="/resources/testharnessreport.js"></script>
<script src="support/helper.sub.js"></script>
-<meta http-equiv="Content-Security-Policy" content="trusted-types *">
+<meta http-equiv="Content-Security-Policy" content="trusted-types *; require-trusted-types-for 'script';">
<body>
<script>
// setTimeout tests
diff --git a/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Document-write.tentative.html b/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Document-write.tentative.html
index 4defb56c88e..1049b46563d 100644
--- a/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Document-write.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Document-write.tentative.html
@@ -5,7 +5,7 @@
<script src="/resources/testharnessreport.js"></script>
<script src="support/helper.sub.js"></script>
- <meta http-equiv="Content-Security-Policy" content="trusted-types *">
+ <meta http-equiv="Content-Security-Policy" content="trusted-types *; require-trusted-types-for 'script';">
</head>
<body>
<script>
diff --git a/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-insertAdjacentHTML.tentative.html b/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-insertAdjacentHTML.tentative.html
index 37a73f08c20..1e8c091d87e 100644
--- a/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-insertAdjacentHTML.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-insertAdjacentHTML.tentative.html
@@ -5,7 +5,7 @@
<script src="/resources/testharnessreport.js"></script>
<script src="support/helper.sub.js"></script>
- <meta http-equiv="Content-Security-Policy" content="trusted-types *">
+ <meta http-equiv="Content-Security-Policy" content="trusted-types *; require-trusted-types-for 'script';">
</head>
<body>
<div id="container"></div>
diff --git a/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-outerHTML.tentative.html b/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-outerHTML.tentative.html
index 8f314a26bf5..17815e6a9e9 100644
--- a/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-outerHTML.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-outerHTML.tentative.html
@@ -5,7 +5,7 @@
<script src="/resources/testharnessreport.js"></script>
<script src="support/helper.sub.js"></script>
- <meta http-equiv="Content-Security-Policy" content="trusted-types *">
+ <meta http-equiv="Content-Security-Policy" content="trusted-types *; require-trusted-types-for 'script';">
</head>
<body>
<div id="container"></div>
diff --git a/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-setAttribute.tentative.html b/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-setAttribute.tentative.html
index 2639e16ea08..47c4c3557f8 100644
--- a/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-setAttribute.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-setAttribute.tentative.html
@@ -5,7 +5,7 @@
<script src="/resources/testharnessreport.js"></script>
<script src="support/helper.sub.js"></script>
- <meta http-equiv="Content-Security-Policy" content="trusted-types *">
+ <meta http-equiv="Content-Security-Policy" content="trusted-types *; require-trusted-types-for 'script';">
</head>
<body>
<script>
diff --git a/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-setAttributeNS.tentative.html b/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-setAttributeNS.tentative.html
index 5754521b2bd..cc8b05e8c83 100644
--- a/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-setAttributeNS.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-setAttributeNS.tentative.html
@@ -5,7 +5,7 @@
<script src="/resources/testharnessreport.js"></script>
<script src="support/helper.sub.js"></script>
- <meta http-equiv="Content-Security-Policy" content="trusted-types *">
+ <meta http-equiv="Content-Security-Policy" content="trusted-types *; require-trusted-types-for 'script';">
</head>
<body>
<script>
diff --git a/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-HTMLElement-generic.tentative.html b/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-HTMLElement-generic.tentative.html
index 84ff83bc083..b5745199f41 100644
--- a/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-HTMLElement-generic.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-HTMLElement-generic.tentative.html
@@ -5,7 +5,7 @@
<script src="/resources/testharnessreport.js"></script>
<script src="support/helper.sub.js"></script>
- <meta http-equiv="Content-Security-Policy" content="trusted-types *">
+ <meta http-equiv="Content-Security-Policy" content="trusted-types *; require-trusted-types-for 'script';">
</head>
<body>
<script>
diff --git a/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Range-createContextualFragment.tentative.html b/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Range-createContextualFragment.tentative.html
index 61553eb71df..a57376206de 100644
--- a/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Range-createContextualFragment.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Range-createContextualFragment.tentative.html
@@ -3,7 +3,7 @@
<script src="/resources/testharnessreport.js"></script>
<script src="support/helper.sub.js"></script>
-<meta http-equiv="Content-Security-Policy" content="trusted-types *">
+<meta http-equiv="Content-Security-Policy" content="trusted-types *; require-trusted-types-for 'script';">
<body>
<script>
// TrustedHTML assignments do not throw.
diff --git a/tests/wpt/web-platform-tests/trusted-types/block-text-node-insertion-into-script-element.tentative.html b/tests/wpt/web-platform-tests/trusted-types/block-text-node-insertion-into-script-element.tentative.html
index 04b19f7e421..1f5e8fda7ae 100644
--- a/tests/wpt/web-platform-tests/trusted-types/block-text-node-insertion-into-script-element.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/block-text-node-insertion-into-script-element.tentative.html
@@ -3,7 +3,7 @@
<head>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
- <meta http-equiv="Content-Security-Policy" content="trusted-types *">
+ <meta http-equiv="Content-Security-Policy" content="trusted-types *; require-trusted-types-for 'script';">
</head>
<body>
<div id="container"></div>
diff --git a/tests/wpt/web-platform-tests/trusted-types/default-policy-report-only.tentative.html.headers b/tests/wpt/web-platform-tests/trusted-types/default-policy-report-only.tentative.html.headers
index fa87952ae48..67b9ef7a3c5 100644
--- a/tests/wpt/web-platform-tests/trusted-types/default-policy-report-only.tentative.html.headers
+++ b/tests/wpt/web-platform-tests/trusted-types/default-policy-report-only.tentative.html.headers
@@ -1 +1 @@
-Content-Security-Policy-Report-Only: trusted-types *
+Content-Security-Policy-Report-Only: trusted-types *; require-trusted-types-for 'script';
diff --git a/tests/wpt/web-platform-tests/trusted-types/default-policy.tentative.html.headers b/tests/wpt/web-platform-tests/trusted-types/default-policy.tentative.html.headers
index 1bc33add09b..6a40e40a586 100644
--- a/tests/wpt/web-platform-tests/trusted-types/default-policy.tentative.html.headers
+++ b/tests/wpt/web-platform-tests/trusted-types/default-policy.tentative.html.headers
@@ -1 +1 @@
-Content-Security-Policy: trusted-types *
+Content-Security-Policy: trusted-types *; require-trusted-types-for 'script';
diff --git a/tests/wpt/web-platform-tests/trusted-types/empty-default-policy-report-only.tentative.html.headers b/tests/wpt/web-platform-tests/trusted-types/empty-default-policy-report-only.tentative.html.headers
index fa87952ae48..67b9ef7a3c5 100644
--- a/tests/wpt/web-platform-tests/trusted-types/empty-default-policy-report-only.tentative.html.headers
+++ b/tests/wpt/web-platform-tests/trusted-types/empty-default-policy-report-only.tentative.html.headers
@@ -1 +1 @@
-Content-Security-Policy-Report-Only: trusted-types *
+Content-Security-Policy-Report-Only: trusted-types *; require-trusted-types-for 'script';
diff --git a/tests/wpt/web-platform-tests/trusted-types/empty-default-policy.tentative.html.headers b/tests/wpt/web-platform-tests/trusted-types/empty-default-policy.tentative.html.headers
index 1bc33add09b..6a40e40a586 100644
--- a/tests/wpt/web-platform-tests/trusted-types/empty-default-policy.tentative.html.headers
+++ b/tests/wpt/web-platform-tests/trusted-types/empty-default-policy.tentative.html.headers
@@ -1 +1 @@
-Content-Security-Policy: trusted-types *
+Content-Security-Policy: trusted-types *; require-trusted-types-for 'script';
diff --git a/tests/wpt/web-platform-tests/trusted-types/eval-csp-tt-default-policy.tentative.html b/tests/wpt/web-platform-tests/trusted-types/eval-csp-tt-default-policy.tentative.html
index 8f1926d9cf2..eaa74eaf4cd 100644
--- a/tests/wpt/web-platform-tests/trusted-types/eval-csp-tt-default-policy.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/eval-csp-tt-default-policy.tentative.html
@@ -16,7 +16,7 @@
}, "eval of TrustedScript works.");
test(t => {
- assert_equals(eval('1+1'), 15);
+ assert_equals(eval('1+1'), 2);
}, "eval of string works.");
test(t => {
diff --git a/tests/wpt/web-platform-tests/trusted-types/eval-csp-tt-no-default-policy.tentative.html b/tests/wpt/web-platform-tests/trusted-types/eval-csp-tt-no-default-policy.tentative.html
index dc976d64abd..0da09a8a5cd 100644
--- a/tests/wpt/web-platform-tests/trusted-types/eval-csp-tt-no-default-policy.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/eval-csp-tt-no-default-policy.tentative.html
@@ -4,7 +4,7 @@
<script nonce="abc" src="/resources/testharness.js"></script>
<script nonce="abc" src="/resources/testharnessreport.js"></script>
<script nonce="abc" src="support/helper.sub.js"></script>
- <meta http-equiv="Content-Security-Policy" content="trusted-types *">
+ <meta http-equiv="Content-Security-Policy" content="trusted-types *; require-trusted-types-for 'script';">
</head>
<body>
<script>
diff --git a/tests/wpt/web-platform-tests/trusted-types/eval-with-permissive-csp.tentative.html b/tests/wpt/web-platform-tests/trusted-types/eval-with-permissive-csp.tentative.html
index 074fe79dc93..32f12d8e129 100644
--- a/tests/wpt/web-platform-tests/trusted-types/eval-with-permissive-csp.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/eval-with-permissive-csp.tentative.html
@@ -7,7 +7,7 @@
<!-- Note: Trusted Types enforcement, and a CSP that allows all eval. -->
<meta http-equiv="Content-Security-Policy"
- content="script-src 'nonce-abc' 'unsafe-eval'; trusted-types *">
+ content="script-src 'nonce-abc' 'unsafe-eval'; trusted-types *; require-trusted-types-for 'script'">
</head>
<body>
<script nonce="abc">
diff --git a/tests/wpt/web-platform-tests/trusted-types/no-require-trusted-types-for-report-only.tentative.html b/tests/wpt/web-platform-tests/trusted-types/no-require-trusted-types-for-report-only.tentative.html
new file mode 100644
index 00000000000..56f62952213
--- /dev/null
+++ b/tests/wpt/web-platform-tests/trusted-types/no-require-trusted-types-for-report-only.tentative.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html>
+<head>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+<script>
+ const testCases = [
+ ["script", "src"],
+ ["div", "innerHTML"],
+ ["script", "text"],
+ ];
+
+ testCases.forEach(c => {
+ const name = `${c[0]}.${c[1]} `;
+ test(t => {
+ s = document.createElement("script");
+ s.innerText = "1";
+ assert_equals("1", s.innerText.toString());
+ }, name + "without trusted types");
+ });
+
+ p = trustedTypes.createPolicy("policyA",
+ {createScript: s => s + 1, createHTML: s => s + 1, createScriptURL: s => s + 1});
+ testCases.forEach(c => {
+ const name = `${c[0]}.${c[1]} `;
+ test(t => {
+ s = document.createElement("script");
+ script = p.createScript("1");
+ s.innerText = script;
+ assert_equals(script.toString(), s.innerText.toString());
+ }, name + "with trusted types");
+ });
+
+ trustedTypes.createPolicy("default", {});
+ testCases.forEach(c => {
+ const name = `${c[0]}.${c[1]} `;
+ test(t => {
+ s = document.createElement("script");
+ s.innerText = "1";
+ assert_equals(s.innerText.toString(), "1");
+ }, name + "empty default");
+ });
+</script> \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/trusted-types/no-require-trusted-types-for-report-only.tentative.html.headers b/tests/wpt/web-platform-tests/trusted-types/no-require-trusted-types-for-report-only.tentative.html.headers
new file mode 100644
index 00000000000..fa87952ae48
--- /dev/null
+++ b/tests/wpt/web-platform-tests/trusted-types/no-require-trusted-types-for-report-only.tentative.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy-Report-Only: trusted-types *
diff --git a/tests/wpt/web-platform-tests/trusted-types/no-require-trusted-types-for.tentative.html b/tests/wpt/web-platform-tests/trusted-types/no-require-trusted-types-for.tentative.html
new file mode 100644
index 00000000000..4e11b03617b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/trusted-types/no-require-trusted-types-for.tentative.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html>
+<head>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <meta http-equiv="Content-Security-Policy" content="trusted-types *">
+</head>
+<body>
+<script>
+ const testCases = [
+ ["script", "src"],
+ ["div", "innerHTML"],
+ ["script", "text"],
+ ];
+
+ testCases.forEach(c => {
+ const name = `${c[0]}.${c[1]} `;
+ test(t => {
+ s = document.createElement("script");
+ s.innerText = "1";
+ assert_equals("1", s.innerText.toString());
+ }, name + "without trusted types");
+ });
+
+ p = trustedTypes.createPolicy("policyA",
+ {createScript: s => s + 1, createHTML: s => s + 1, createScriptURL: s => s + 1});
+ testCases.forEach(c => {
+ const name = `${c[0]}.${c[1]} `;
+ test(t => {
+ s = document.createElement("script");
+ script = p.createScript("1");
+ s.innerText = script;
+ assert_equals(script.toString(), s.innerText.toString());
+ }, name + "with trusted types");
+ });
+
+ trustedTypes.createPolicy("default", {});
+ testCases.forEach(c => {
+ const name = `${c[0]}.${c[1]} `;
+ test(t => {
+ s = document.createElement("script");
+ s.innerText = "1";
+ assert_equals(s.innerText.toString(), "1");
+ }, name + "empty default");
+ });
+</script> \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/trusted-types/require-trusted-types-for-report-only.tentative.html b/tests/wpt/web-platform-tests/trusted-types/require-trusted-types-for-report-only.tentative.html
new file mode 100644
index 00000000000..25b4440ef41
--- /dev/null
+++ b/tests/wpt/web-platform-tests/trusted-types/require-trusted-types-for-report-only.tentative.html
@@ -0,0 +1,71 @@
+<!DOCTYPE html>
+<head>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+<script>
+
+ function promise_violation(filter_arg) {
+ return _ => new Promise((resolve, reject) => {
+ function handler(e) {
+ let matches = (filter_arg instanceof Function)
+ ? filter_arg(e)
+ : (e.originalPolicy.includes(filter_arg));
+ if (matches) {
+ document.removeEventListener("securitypolicyviolation", handler);
+ e.stopPropagation();
+ resolve(e);
+ }
+ }
+
+ document.addEventListener("securitypolicyviolation", handler);
+ });
+ }
+
+ promise_test(t => {
+ let p = Promise.resolve()
+ .then(promise_violation("require-trusted-types-for 'script'"));
+
+ d = document.createElement("div");
+ d.innerHTML = "a";
+ assert_equals("a", d.innerHTML);
+ return p;
+ }, "Require trusted types for 'script' block create HTML.");
+
+ promise_test(t => {
+ let p = Promise.resolve()
+ .then(promise_violation("require-trusted-types-for 'script'"));
+
+ d = document.createElement("script");
+ d.innerText = "a";
+ assert_equals("a", d.innerText);
+ return p;
+ }, "Require trusted types for 'script' block create script.");
+
+ promise_test(t => {
+ let p = Promise.resolve()
+ .then(promise_violation("require-trusted-types-for 'script'"));
+
+ s = document.createElement("script");
+ s.src = "a";
+ assert_true(s.src.includes("/trusted-types/a"));
+ return p;
+ }, "Require trusted types for 'script' block create script URL.");
+
+ promise_test(t => {
+ return new Promise(resolve => {
+ p = trustedTypes.createPolicy("policyA", {createScript: s => s+1});
+ p1 = trustedTypes.createPolicy("policyA", {createHTML: _ => ""});
+ p2 = trustedTypes.createPolicy("default", {});
+ script = p.createScript("1");
+ assert_equals(script.toString(), "11");
+ s = document.createElement("script");
+ s.innerText = script;
+ assert_equals(script.toString(), s.innerText.toString());
+ s.innerText = "1";
+ assert_equals("1", s.innerText);
+ resolve();
+ });
+ }, "Set require trusted types for 'script' without CSP for trusted types don't block policy creation and using.");
+</script> \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/trusted-types/require-trusted-types-for-report-only.tentative.html.headers b/tests/wpt/web-platform-tests/trusted-types/require-trusted-types-for-report-only.tentative.html.headers
new file mode 100644
index 00000000000..c6412f8d472
--- /dev/null
+++ b/tests/wpt/web-platform-tests/trusted-types/require-trusted-types-for-report-only.tentative.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy-Report-Only: require-trusted-types-for 'script' \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/trusted-types/require-trusted-types-for.tentative.html b/tests/wpt/web-platform-tests/trusted-types/require-trusted-types-for.tentative.html
new file mode 100644
index 00000000000..95cfc4d106e
--- /dev/null
+++ b/tests/wpt/web-platform-tests/trusted-types/require-trusted-types-for.tentative.html
@@ -0,0 +1,78 @@
+<!DOCTYPE html>
+<head>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <meta http-equiv="Content-Security-Policy" content="require-trusted-types-for 'script'">
+</head>
+<body>
+<script>
+
+ function promise_violation(filter_arg) {
+ return _ => new Promise((resolve, reject) => {
+ function handler(e) {
+ let matches = (filter_arg instanceof Function)
+ ? filter_arg(e)
+ : (e.originalPolicy.includes(filter_arg));
+ if (matches) {
+ document.removeEventListener("securitypolicyviolation", handler);
+ e.stopPropagation();
+ resolve(e);
+ }
+ }
+
+ document.addEventListener("securitypolicyviolation", handler);
+ });
+ }
+
+ promise_test(t => {
+ let p = Promise.resolve()
+ .then(promise_violation("require-trusted-types-for 'script'"));
+ d = document.createElement("div");
+ assert_throws(new TypeError(),
+ _ => {
+ d.innerHTML = "a";
+ });
+ assert_equals("", d.innerHTML);
+ return p;
+ }, "Require trusted types for 'script' block create HTML.");
+
+ promise_test(t => {
+ let p = Promise.resolve()
+ .then(promise_violation("require-trusted-types-for 'script'"));
+ d = document.createElement("script");
+ assert_throws(new TypeError(),
+ _ => {
+ d.innerText = "a";
+ });
+ assert_equals("", d.innerText);
+ return p;
+ }, "Require trusted types for 'script' block create script.");
+
+ promise_test(t => {
+ let p = Promise.resolve()
+ .then(promise_violation("require-trusted-types-for 'script'"));
+ s = document.createElement("script");
+ assert_throws(new TypeError(),
+ _ => {
+ s.src = "a";
+ });
+ assert_equals("", s.src);
+ return p;
+ }, "Require trusted types for 'script' block create script URL.");
+
+ promise_test(t => {
+ return new Promise(resolve => {
+ p = trustedTypes.createPolicy("policyA", {createScript: s => s + 1});
+ p1 = trustedTypes.createPolicy("policyA", {createHTML: _ => ""});
+ p2 = trustedTypes.createPolicy("default", {createScript: s => s});
+ script = p.createScript("1");
+ assert_equals(script.toString(), "11");
+ s = document.createElement("script");
+ s.innerText = script;
+ assert_equals(script.toString(), s.innerText.toString());
+ s.innerText = "1";
+ assert_equals("1", s.innerText.toString());
+ resolve();
+ });
+ }, "Set require trusted types for 'script' without CSP for trusted types don't block policy creation and using.");
+</script> \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/trusted-types/support/WorkerGlobalScope-importScripts.https.js.headers b/tests/wpt/web-platform-tests/trusted-types/support/WorkerGlobalScope-importScripts.https.js.headers
index 1bc33add09b..6a40e40a586 100644
--- a/tests/wpt/web-platform-tests/trusted-types/support/WorkerGlobalScope-importScripts.https.js.headers
+++ b/tests/wpt/web-platform-tests/trusted-types/support/WorkerGlobalScope-importScripts.https.js.headers
@@ -1 +1 @@
-Content-Security-Policy: trusted-types *
+Content-Security-Policy: trusted-types *; require-trusted-types-for 'script';
diff --git a/tests/wpt/web-platform-tests/trusted-types/support/navigation-report-only-support.html.headers b/tests/wpt/web-platform-tests/trusted-types/support/navigation-report-only-support.html.headers
index fa87952ae48..67b9ef7a3c5 100644
--- a/tests/wpt/web-platform-tests/trusted-types/support/navigation-report-only-support.html.headers
+++ b/tests/wpt/web-platform-tests/trusted-types/support/navigation-report-only-support.html.headers
@@ -1 +1 @@
-Content-Security-Policy-Report-Only: trusted-types *
+Content-Security-Policy-Report-Only: trusted-types *; require-trusted-types-for 'script';
diff --git a/tests/wpt/web-platform-tests/trusted-types/support/navigation-support.html.headers b/tests/wpt/web-platform-tests/trusted-types/support/navigation-support.html.headers
index 1bc33add09b..6a40e40a586 100644
--- a/tests/wpt/web-platform-tests/trusted-types/support/navigation-support.html.headers
+++ b/tests/wpt/web-platform-tests/trusted-types/support/navigation-support.html.headers
@@ -1 +1 @@
-Content-Security-Policy: trusted-types *
+Content-Security-Policy: trusted-types *; require-trusted-types-for 'script';
diff --git a/tests/wpt/web-platform-tests/trusted-types/trusted-types-createHTMLDocument.tentative.html b/tests/wpt/web-platform-tests/trusted-types/trusted-types-createHTMLDocument.tentative.html
index 6ab5f42d5ff..711e494a160 100644
--- a/tests/wpt/web-platform-tests/trusted-types/trusted-types-createHTMLDocument.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/trusted-types-createHTMLDocument.tentative.html
@@ -2,7 +2,7 @@
<head>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
- <meta http-equiv="Content-Security-Policy" content="trusted-types * 'allow-duplicates'">
+ <meta http-equiv="Content-Security-Policy" content="trusted-types * 'allow-duplicates'; require-trusted-types-for 'script'">
</head>
<body>
<script>
diff --git a/tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting-no-unsafe-eval.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting-no-unsafe-eval.tentative.https.html
index 7902df1c303..78673104114 100644
--- a/tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting-no-unsafe-eval.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting-no-unsafe-eval.tentative.https.html
@@ -76,7 +76,7 @@
promise_test(t => {
let p = Promise.resolve()
- .then(promise_violation("trusted-types *"))
+ .then(promise_violation("require-trusted-types-for 'script'"))
.then(promise_flush());
expect_throws(_ => eval('script_run_beacon="should not run"'));
assert_equals(script_run_beacon, 'never_overwritten');
diff --git a/tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting-no-unsafe-eval.tentative.https.html.headers b/tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting-no-unsafe-eval.tentative.https.html.headers
index 4bc0bd3c1ab..30fe3b1df1d 100644
--- a/tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting-no-unsafe-eval.tentative.https.html.headers
+++ b/tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting-no-unsafe-eval.tentative.https.html.headers
@@ -1,4 +1,4 @@
Content-Security-Policy: trusted-types *
Content-Security-Policy: script-src http: https: 'nonce-123' 'report-sample'
Content-Security-Policy: plugin-types bla/blubb
-
+Content-Security-Policy: require-trusted-types-for 'script'
diff --git a/tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting-report-only.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting-report-only.tentative.https.html
index bd8933a4835..18c035215e0 100644
--- a/tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting-report-only.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting-report-only.tentative.https.html
@@ -76,7 +76,7 @@
promise_test(t => {
let p = Promise.resolve()
- .then(promise_violation("trusted-types *"))
+ .then(promise_violation("require-trusted-types-for 'script'"))
.then(promise_flush());
eval('script_run_beacon="report-only-does-not-stop"');
assert_equals(script_run_beacon, 'report-only-does-not-stop');
diff --git a/tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting-report-only.tentative.https.html.headers b/tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting-report-only.tentative.https.html.headers
index ba26c77fbf4..1d7033658c1 100644
--- a/tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting-report-only.tentative.https.html.headers
+++ b/tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting-report-only.tentative.https.html.headers
@@ -1,4 +1,5 @@
Content-Security-Policy-Report-Only: trusted-types *
Content-Security-Policy: script-src http: https: 'nonce-123' 'unsafe-eval'
Content-Security-Policy: plugin-types bla/blubb
+Content-Security-Policy-Report-Only: require-trusted-types-for 'script'
diff --git a/tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting.tentative.https.html
index c751ae1330c..a521f94389a 100644
--- a/tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting.tentative.https.html
@@ -68,7 +68,7 @@
promise_test(t => {
let beacon = 'never_overwritten';
let p = Promise.resolve()
- .then(promise_violation("trusted-types *"))
+ .then(promise_violation("require-trusted-types-for 'script'"))
.then(promise_flush());
assert_throws(new EvalError(),
_ => eval('beacon="should not run"'));
diff --git a/tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting.tentative.https.html.headers b/tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting.tentative.https.html.headers
index 2e935f73a48..91a2be91ef7 100644
--- a/tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting.tentative.https.html.headers
+++ b/tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting.tentative.https.html.headers
@@ -1,4 +1,5 @@
Content-Security-Policy: trusted-types *
Content-Security-Policy: script-src http: https: 'nonce-123' 'unsafe-eval'
Content-Security-Policy: plugin-types bla/blubb
+Content-Security-Policy: require-trusted-types-for 'script'
diff --git a/tests/wpt/web-platform-tests/trusted-types/trusted-types-navigation.tentative.html b/tests/wpt/web-platform-tests/trusted-types/trusted-types-navigation.tentative.html
index 7f17c64e570..657cbb74e0e 100644
--- a/tests/wpt/web-platform-tests/trusted-types/trusted-types-navigation.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/trusted-types-navigation.tentative.html
@@ -12,7 +12,8 @@
}
function expectViolationAsMessage(sample) {
- const filter = e => (e.data.effectiveDirective == "trusted-types" &&
+ const filter = e => ((e.data.effectiveDirective == "require-trusted-types-for" ||
+ e.data.effectiveDirective == "trusted-types") &&
(!sample || e.data.sample.startsWith(sample)));
return new expectMessage(filter);
}
diff --git a/tests/wpt/web-platform-tests/trusted-types/trusted-types-report-only.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/trusted-types-report-only.tentative.https.html
index bf0a1eb9c19..fcb77841163 100644
--- a/tests/wpt/web-platform-tests/trusted-types/trusted-types-report-only.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/trusted-types-report-only.tentative.https.html
@@ -77,8 +77,8 @@
return p.then(report => {
assert_equals(report.documentURI, "" + window.location);
assert_equals(report.disposition, "report");
- assert_equals(report.effectiveDirective, "trusted-types");
- assert_equals(report.violatedDirective, "trusted-types");
+ assert_equals(report.effectiveDirective, "require-trusted-types-for");
+ assert_equals(report.violatedDirective, "require-trusted-types-for");
assert_true(report.originalPolicy.startsWith("trusted-types two;"));
});
}, "Trusted Type violation report: check report contents");
diff --git a/tests/wpt/web-platform-tests/trusted-types/trusted-types-report-only.tentative.https.html.headers b/tests/wpt/web-platform-tests/trusted-types/trusted-types-report-only.tentative.https.html.headers
index b38cfae2cb2..857a8b31e86 100644
--- a/tests/wpt/web-platform-tests/trusted-types/trusted-types-report-only.tentative.https.html.headers
+++ b/tests/wpt/web-platform-tests/trusted-types/trusted-types-report-only.tentative.https.html.headers
@@ -1 +1 @@
-Content-Security-Policy-Report-Only: trusted-types two; report-uri /content-security-policy/resources/dummy-report.php
+Content-Security-Policy-Report-Only: trusted-types two; report-uri /content-security-policy/resources/dummy-report.php; require-trusted-types-for 'script';
diff --git a/tests/wpt/web-platform-tests/trusted-types/trusted-types-reporting.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/trusted-types-reporting.tentative.https.html
index 10a951fa12c..ef282dc609c 100644
--- a/tests/wpt/web-platform-tests/trusted-types/trusted-types-reporting.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/trusted-types-reporting.tentative.https.html
@@ -125,13 +125,13 @@
}, "Trusted Type violation report: creating a forbidden-but-not-reported policy.");
promise_test(t => {
- let p = promise_violation("trusted-types two")();
+ let p = promise_violation("require-trusted-types-for 'script'")();
expect_throws(_ => document.getElementById("script").src = url);
return p;
}, "Trusted Type violation report: assign string to script url");
promise_test(t => {
- let p = promise_violation("trusted-types two")();
+ let p = promise_violation("require-trusted-types-for 'script'")();
expect_throws(_ => document.getElementById("div").innerHTML = "abc");
return p;
}, "Trusted Type violation report: assign string to html");
@@ -152,7 +152,7 @@
promise_test(t => {
let p = Promise.resolve()
- .then(promise_violation("trusted-types two"))
+ .then(promise_violation("require-trusted-types-for 'script'"))
.then(expect_blocked_uri("trusted-types-sink"))
.then(expect_sample("Element.innerHTML"))
.then(expect_sample("abc"));
@@ -162,7 +162,7 @@
promise_test(t => {
let p = Promise.resolve()
- .then(promise_violation("trusted-types two"))
+ .then(promise_violation("require-trusted-types-for 'script'"))
.then(expect_blocked_uri("trusted-types-sink"))
.then(expect_sample("HTMLScriptElement.src"));
expect_throws(_ => { document.getElementById("script").src = "" });
@@ -171,7 +171,7 @@
promise_test(t => {
let p = Promise.resolve()
- .then(promise_violation("trusted-types two"))
+ .then(promise_violation("require-trusted-types-for 'script'"))
.then(expect_blocked_uri("trusted-types-sink"))
.then(expect_sample("HTMLElement.innerText"))
.then(expect_sample("2+2;"));
@@ -181,7 +181,7 @@
promise_test(t => {
let p = Promise.resolve()
- .then(promise_violation("trusted-types one"))
+ .then(promise_violation("require-trusted-types-for 'script'"))
.then(expect_blocked_uri("trusted-types-sink"))
.then(expect_sample("eval"))
.then(expect_sample("2+2"))
@@ -195,7 +195,7 @@
// We expect the sample string to always contain the name, and at least the
// start of the value, but it should not be excessively long.
let p = Promise.resolve()
- .then(promise_violation("trusted-types two"))
+ .then(promise_violation("require-trusted-types-for 'script'"))
.then(expect_blocked_uri("trusted-types-sink"))
.then(expect_sample("HTMLElement.innerText"))
.then(expect_sample("abbb"))
@@ -214,7 +214,7 @@
promise_test(t => {
let p = Promise.resolve()
- .then(promise_violation("trusted-types one"))
+ .then(promise_violation("require-trusted-types-for 'script'"))
.then(expect_blocked_uri("trusted-types-sink"))
.then(expect_sample("HTMLScriptElement.src"))
.then(expect_sample("abc"));
diff --git a/tests/wpt/web-platform-tests/trusted-types/trusted-types-reporting.tentative.https.html.headers b/tests/wpt/web-platform-tests/trusted-types/trusted-types-reporting.tentative.https.html.headers
index 947a151c874..fa8aceab74b 100644
--- a/tests/wpt/web-platform-tests/trusted-types/trusted-types-reporting.tentative.https.html.headers
+++ b/tests/wpt/web-platform-tests/trusted-types/trusted-types-reporting.tentative.https.html.headers
@@ -2,4 +2,5 @@ Content-Security-Policy: trusted-types one
Content-Security-Policy-Report-Only: trusted-types two; report-uri /content-security-policy/resources/dummy-report.php
Content-Security-Policy: plugin-types bla/blubb
Content-Security-Policy: default-src * 'unsafe-inline'
+Content-Security-Policy: require-trusted-types-for 'script'
diff --git a/tests/wpt/web-platform-tests/trusted-types/tt-block-eval.tentative.html b/tests/wpt/web-platform-tests/trusted-types/tt-block-eval.tentative.html
index e721b0e0d36..8fe8aa50d6c 100644
--- a/tests/wpt/web-platform-tests/trusted-types/tt-block-eval.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/tt-block-eval.tentative.html
@@ -3,7 +3,7 @@
<head>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
- <meta http-equiv="Content-Security-Policy" content="trusted-types *">
+ <meta http-equiv="Content-Security-Policy" content="trusted-types *; require-trusted-types-for 'script'">
</head>
<body>
<script>
diff --git a/tests/wpt/web-platform-tests/url/urlsearchparams-constructor.any.js b/tests/wpt/web-platform-tests/url/urlsearchparams-constructor.any.js
index 398021dde2f..f7989f70ea0 100644
--- a/tests/wpt/web-platform-tests/url/urlsearchparams-constructor.any.js
+++ b/tests/wpt/web-platform-tests/url/urlsearchparams-constructor.any.js
@@ -22,7 +22,7 @@ test(function () {
test(() => {
var params = new URLSearchParams(DOMException);
assert_equals(params.toString(), "INDEX_SIZE_ERR=1&DOMSTRING_SIZE_ERR=2&HIERARCHY_REQUEST_ERR=3&WRONG_DOCUMENT_ERR=4&INVALID_CHARACTER_ERR=5&NO_DATA_ALLOWED_ERR=6&NO_MODIFICATION_ALLOWED_ERR=7&NOT_FOUND_ERR=8&NOT_SUPPORTED_ERR=9&INUSE_ATTRIBUTE_ERR=10&INVALID_STATE_ERR=11&SYNTAX_ERR=12&INVALID_MODIFICATION_ERR=13&NAMESPACE_ERR=14&INVALID_ACCESS_ERR=15&VALIDATION_ERR=16&TYPE_MISMATCH_ERR=17&SECURITY_ERR=18&NETWORK_ERR=19&ABORT_ERR=20&URL_MISMATCH_ERR=21&QUOTA_EXCEEDED_ERR=22&TIMEOUT_ERR=23&INVALID_NODE_TYPE_ERR=24&DATA_CLONE_ERR=25")
- assert_throws(new TypeError(), () => new URLSearchParams(DOMException.prototype),
+ assert_throws_js(TypeError, () => new URLSearchParams(DOMException.prototype),
"Constructing a URLSearchParams from DOMException.prototype should throw due to branding checks");
}, "URLSearchParams constructor, DOMException as argument")
@@ -153,8 +153,8 @@ test(function() {
params = new URLSearchParams([['a', 'b'], ['c', 'd']]);
assert_equals(params.get("a"), "b");
assert_equals(params.get("c"), "d");
- assert_throws(new TypeError(), function() { new URLSearchParams([[1]]); });
- assert_throws(new TypeError(), function() { new URLSearchParams([[1,2,3]]); });
+ assert_throws_js(TypeError, function() { new URLSearchParams([[1]]); });
+ assert_throws_js(TypeError, function() { new URLSearchParams([[1,2,3]]); });
}, "Constructor with sequence of sequences of strings");
[
diff --git a/tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-createDataChannel.html b/tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-createDataChannel.html
index 58e757bce07..943e5728775 100644
--- a/tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-createDataChannel.html
+++ b/tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-createDataChannel.html
@@ -69,7 +69,7 @@ test(t => {
t.add_cleanup(() => pc.close());
assert_equals(pc.createDataChannel.length, 1);
- assert_throws(new TypeError(), () => pc.createDataChannel());
+ assert_throws_js(TypeError, () => pc.createDataChannel());
}, 'createDataChannel with no argument should throw TypeError');
/*
@@ -292,11 +292,11 @@ test(t => {
const pc = new RTCPeerConnection;
t.add_cleanup(() => pc.close());
- assert_throws(new TypeError(), () => pc.createDataChannel('', {
+ assert_throws_js(TypeError, () => pc.createDataChannel('', {
maxPacketLifeTime: 0,
maxRetransmits: 0
}));
- assert_throws(new TypeError(), () => pc.createDataChannel('', {
+ assert_throws_js(TypeError, () => pc.createDataChannel('', {
maxPacketLifeTime: 42,
maxRetransmits: 42
}));
@@ -330,6 +330,15 @@ for (const [description, protocol, expected] of protocols) {
20. If [[DataChannelId]] is equal to 65535, which is greater than the maximum allowed
ID of 65534 but still qualifies as an unsigned short, throw a TypeError.
*/
+for (const id of [0, 1, 65534, 65535]) {
+ test((t) => {
+ const pc = new RTCPeerConnection();
+ t.add_cleanup(() => pc.close());
+ const dc = pc.createDataChannel('', { id });
+ assert_equals(dc.id, null);
+ }, `createDataChannel with id ${id} and negotiated not set should succeed, but not set the channel's id`);
+}
+
for (const id of [0, 1, 65534]) {
test(t => {
const pc = new RTCPeerConnection();
@@ -337,7 +346,15 @@ for (const id of [0, 1, 65534]) {
const dc = pc.createDataChannel('', { 'negotiated': true, 'id': id });
assert_equals(dc.id, id);
- }, `createDataChannel with id ${id} should succeed`);
+ }, `createDataChannel with id ${id} and negotiated true should succeed, and set the channel's id`);
+}
+
+for (const id of [-1, 65536]) {
+ test((t) => {
+ const pc = new RTCPeerConnection();
+ t.add_cleanup(() => pc.close());
+ assert_throws_js(TypeError, () => pc.createDataChannel('', { id }));
+ }, `createDataChannel with id ${id} and negotiated not set should throw TypeError`);
}
for (const id of [-1, 65535, 65536]) {
@@ -345,7 +362,7 @@ for (const id of [-1, 65535, 65536]) {
const pc = new RTCPeerConnection();
t.add_cleanup(() => pc.close());
- assert_throws(new TypeError(), () => pc.createDataChannel('',
+ assert_throws_js(TypeError, () => pc.createDataChannel('',
{ 'negotiated': true, 'id': id }));
}, `createDataChannel with id ${id} should throw TypeError`);
}
@@ -380,10 +397,10 @@ test(t => {
const pc = new RTCPeerConnection();
t.add_cleanup(() => pc.close());
- assert_throws(new TypeError(), () =>
+ assert_throws_js(TypeError, () =>
pc.createDataChannel('l'.repeat(65536)));
- assert_throws(new TypeError(), () =>
+ assert_throws_js(TypeError, () =>
pc.createDataChannel('l'.repeat(65536), {
negotiated: true,
id: 42
@@ -394,10 +411,10 @@ test(t => {
const pc = new RTCPeerConnection();
t.add_cleanup(() => pc.close());
- assert_throws(new TypeError(), () =>
+ assert_throws_js(TypeError, () =>
pc.createDataChannel('\u00b5'.repeat(32768)));
- assert_throws(new TypeError(), () =>
+ assert_throws_js(TypeError, () =>
pc.createDataChannel('\u00b5'.repeat(32768), {
negotiated: true,
id: 42
@@ -435,12 +452,12 @@ test(t => {
const pc = new RTCPeerConnection();
t.add_cleanup(() => pc.close());
- assert_throws(new TypeError(), () =>
+ assert_throws_js(TypeError, () =>
pc.createDataChannel('', {
protocol: 'p'.repeat(65536)
}));
- assert_throws(new TypeError(), () =>
+ assert_throws_js(TypeError, () =>
pc.createDataChannel('', {
protocol: 'p'.repeat(65536),
negotiated: true,
@@ -452,12 +469,12 @@ test(t => {
const pc = new RTCPeerConnection();
t.add_cleanup(() => pc.close());
- assert_throws(new TypeError(), () =>
+ assert_throws_js(TypeError, () =>
pc.createDataChannel('', {
protocol: '\u00b6'.repeat(32768)
}));
- assert_throws(new TypeError(), () =>
+ assert_throws_js(TypeError, () =>
pc.createDataChannel('', {
protocol: '\u00b6'.repeat(32768),
negotiated: true,
@@ -520,7 +537,7 @@ test(t => {
const pc = new RTCPeerConnection();
t.add_cleanup(() => pc.close());
- assert_throws(new TypeError(), () =>
+ assert_throws_js(TypeError, () =>
pc.createDataChannel('test', {
negotiated: true
}));
diff --git a/tests/wpt/web-platform-tests/workers/modules/resources/dynamic-import-and-then-static-import-worker.js b/tests/wpt/web-platform-tests/workers/modules/resources/dynamic-import-and-then-static-import-worker.js
index 9a386e63be5..527702f5511 100644
--- a/tests/wpt/web-platform-tests/workers/modules/resources/dynamic-import-and-then-static-import-worker.js
+++ b/tests/wpt/web-platform-tests/workers/modules/resources/dynamic-import-and-then-static-import-worker.js
@@ -1,12 +1,24 @@
// This script is meant to be imported by a module worker. It receives a
// message from the worker and responds with the list of imported modules.
const sourcePromise = new Promise(resolve => {
- self.onmessage = e => {
- // DedicatedWorkerGlobalScope doesn't fill in e.source,
- // so use e.target instead.
- const source = e.source ? e.source : e.target;
- resolve(source);
- };
+ if ('DedicatedWorkerGlobalScope' in self &&
+ self instanceof DedicatedWorkerGlobalScope) {
+ self.onmessage = e => {
+ resolve(e.target);
+ };
+ } else if (
+ 'SharedWorkerGlobalScope' in self &&
+ self instanceof SharedWorkerGlobalScope) {
+ self.onconnect = e => {
+ resolve(e.ports[0]);
+ };
+ } else if (
+ 'ServiceWorkerGlobalScope' in self &&
+ self instanceof ServiceWorkerGlobalScope) {
+ self.onmessage = e => {
+ resolve(e.source);
+ };
+ }
});
const importedModulesPromise =
diff --git a/tests/wpt/web-platform-tests/workers/modules/resources/dynamic-import-worker.js b/tests/wpt/web-platform-tests/workers/modules/resources/dynamic-import-worker.js
index 07f4df9db3e..2e756fe055e 100644
--- a/tests/wpt/web-platform-tests/workers/modules/resources/dynamic-import-worker.js
+++ b/tests/wpt/web-platform-tests/workers/modules/resources/dynamic-import-worker.js
@@ -1,12 +1,24 @@
// This script is meant to be imported by a module worker. It receives a
// message from the worker and responds with the list of imported modules.
const sourcePromise = new Promise(resolve => {
- self.onmessage = e => {
- // DedicatedWorkerGlobalScope doesn't fill in e.source,
- // so use e.target instead.
- const source = e.source ? e.source : e.target;
- resolve(source);
- };
+ if ('DedicatedWorkerGlobalScope' in self &&
+ self instanceof DedicatedWorkerGlobalScope) {
+ self.onmessage = e => {
+ resolve(e.target);
+ };
+ } else if (
+ 'SharedWorkerGlobalScope' in self &&
+ self instanceof SharedWorkerGlobalScope) {
+ self.onconnect = e => {
+ resolve(e.ports[0]);
+ };
+ } else if (
+ 'ServiceWorkerGlobalScope' in self &&
+ self instanceof ServiceWorkerGlobalScope) {
+ self.onmessage = e => {
+ resolve(e.source);
+ };
+ }
});
const importedModulesPromise =
diff --git a/tests/wpt/web-platform-tests/workers/modules/resources/eval-dynamic-import-worker.js b/tests/wpt/web-platform-tests/workers/modules/resources/eval-dynamic-import-worker.js
index af57b19f98d..60080d4292a 100644
--- a/tests/wpt/web-platform-tests/workers/modules/resources/eval-dynamic-import-worker.js
+++ b/tests/wpt/web-platform-tests/workers/modules/resources/eval-dynamic-import-worker.js
@@ -1,18 +1,29 @@
// This script is meant to be imported by a module worker. It receives a
// message from the worker and responds with the list of imported modules.
-const code =
- "const sourcePromise = new Promise(resolve => {" +
- " self.onmessage = e => {" +
- " const source = e.source ? e.source : e.target;" +
- " resolve(source);" +
- " };" +
- "});" +
- "const importedModulesPromise =" +
- " import('./export-on-load-script.js')" +
- " .then(module => module.importedModules)" +
- " .catch(error => `Failed to do dynamic import: ${error}`);" +
- "Promise.all([sourcePromise, importedModulesPromise]).then(results => {" +
- " const [source, importedModules] = results;" +
- " source.postMessage(importedModules);" +
- "});";
+const code = 'const sourcePromise = new Promise(resolve => {' +
+ ' if (\'DedicatedWorkerGlobalScope\' in self &&' +
+ ' self instanceof DedicatedWorkerGlobalScope) {' +
+ ' self.onmessage = e => {' +
+ ' resolve(e.target);' +
+ ' };' +
+ ' } else if (\'SharedWorkerGlobalScope\' in self &&' +
+ ' self instanceof SharedWorkerGlobalScope) {' +
+ ' self.onconnect = e => {' +
+ ' resolve(e.ports[0]);' +
+ ' };' +
+ ' } else if (\'ServiceWorkerGlobalScope\' in self &&' +
+ ' self instanceof ServiceWorkerGlobalScope) {' +
+ ' self.onmessage = e => {' +
+ ' resolve(e.source);' +
+ ' };' +
+ ' }' +
+ '});' +
+ 'const importedModulesPromise =' +
+ ' import(\'./export-on-load-script.js\')' +
+ ' .then(module => module.importedModules)' +
+ ' .catch(error => `Failed to do dynamic import: ${error}`);' +
+ 'Promise.all([sourcePromise, importedModulesPromise]).then(results => {' +
+ ' const [source, importedModules] = results;' +
+ ' source.postMessage(importedModules);' +
+ '});';
eval(code);
diff --git a/tests/wpt/web-platform-tests/workers/modules/resources/import-scripts-worker.js b/tests/wpt/web-platform-tests/workers/modules/resources/import-scripts-worker.js
index 676cccb2ad7..d85f573ffe3 100644
--- a/tests/wpt/web-platform-tests/workers/modules/resources/import-scripts-worker.js
+++ b/tests/wpt/web-platform-tests/workers/modules/resources/import-scripts-worker.js
@@ -1,6 +1,15 @@
try {
importScripts('empty-worker.js');
- postMessage('LOADED');
+ if ('DedicatedWorkerGlobalScope' in self &&
+ self instanceof DedicatedWorkerGlobalScope) {
+ postMessage('LOADED');
+ } else if (
+ 'SharedWorkerGlobalScope' in self &&
+ self instanceof SharedWorkerGlobalScope) {
+ onconnect = e => {
+ e.ports[0].postMessage('LOADED');
+ };
+ }
} catch (e) {
// Post a message instead of propagating an ErrorEvent to the page because
// propagated event loses an error name.
@@ -11,5 +20,14 @@ try {
// and colno attributes initialized appropriately, and the error attribute
// initialized to null."
// https://html.spec.whatwg.org/multipage/workers.html#runtime-script-errors-2
- postMessage(e.name);
+ if ('DedicatedWorkerGlobalScope' in self &&
+ self instanceof DedicatedWorkerGlobalScope) {
+ postMessage(e.name);
+ } else if (
+ 'SharedWorkerGlobalScope' in self &&
+ self instanceof SharedWorkerGlobalScope) {
+ onconnect = connectEvent => {
+ connectEvent.ports[0].postMessage(e.name);
+ };
+ }
}
diff --git a/tests/wpt/web-platform-tests/workers/modules/resources/nested-dynamic-import-worker.js b/tests/wpt/web-platform-tests/workers/modules/resources/nested-dynamic-import-worker.js
index cb37f6e20f6..00da43c5f07 100644
--- a/tests/wpt/web-platform-tests/workers/modules/resources/nested-dynamic-import-worker.js
+++ b/tests/wpt/web-platform-tests/workers/modules/resources/nested-dynamic-import-worker.js
@@ -2,12 +2,24 @@
// message from the worker and responds with the list of imported modules.
const sourcePromise = new Promise(resolve => {
- self.onmessage = e => {
- // DedicatedWorkerGlobalScope doesn't fill in e.source,
- // so use e.target instead.
- const source = e.source ? e.source : e.target;
- resolve(source);
- };
+ if ('DedicatedWorkerGlobalScope' in self &&
+ self instanceof DedicatedWorkerGlobalScope) {
+ self.onmessage = e => {
+ resolve(e.target);
+ };
+ } else if (
+ 'SharedWorkerGlobalScope' in self &&
+ self instanceof SharedWorkerGlobalScope) {
+ self.onconnect = e => {
+ resolve(e.ports[0]);
+ };
+ } else if (
+ 'ServiceWorkerGlobalScope' in self &&
+ self instanceof ServiceWorkerGlobalScope) {
+ self.onmessage = e => {
+ resolve(e.source);
+ };
+ }
});
const importedModulesPromise =
diff --git a/tests/wpt/web-platform-tests/workers/modules/resources/nested-static-import-worker.js b/tests/wpt/web-platform-tests/workers/modules/resources/nested-static-import-worker.js
index 7599faaa099..c3a9ff0b799 100644
--- a/tests/wpt/web-platform-tests/workers/modules/resources/nested-static-import-worker.js
+++ b/tests/wpt/web-platform-tests/workers/modules/resources/nested-static-import-worker.js
@@ -1,9 +1,21 @@
// This script is meant to be imported by a module worker. It receives a
// message from the worker and responds with the list of imported modules.
import * as module from './export-on-static-import-script.js';
-self.onmessage = e => {
- // DedicatedWorkerGlobalScope doesn't fill in e.source,
- // so use e.target instead.
- const source = e.source ? e.source : e.target;
- source.postMessage(module.importedModules);
-};
+if ('DedicatedWorkerGlobalScope' in self &&
+ self instanceof DedicatedWorkerGlobalScope) {
+ self.onmessage = e => {
+ e.target.postMessage(module.importedModules);
+ };
+} else if (
+ 'SharedWorkerGlobalScope' in self &&
+ self instanceof SharedWorkerGlobalScope) {
+ self.onconnect = e => {
+ e.ports[0].postMessage(module.importedModules);
+ };
+} else if (
+ 'ServiceWorkerGlobalScope' in self &&
+ self instanceof ServiceWorkerGlobalScope) {
+ self.onmessage = e => {
+ e.source.postMessage(module.importedModules);
+ };
+}
diff --git a/tests/wpt/web-platform-tests/workers/modules/resources/post-message-on-load-worker.js b/tests/wpt/web-platform-tests/workers/modules/resources/post-message-on-load-worker.js
index 93818ccad90..e1c547ab6a4 100644
--- a/tests/wpt/web-platform-tests/workers/modules/resources/post-message-on-load-worker.js
+++ b/tests/wpt/web-platform-tests/workers/modules/resources/post-message-on-load-worker.js
@@ -1 +1,10 @@
-postMessage('LOADED');
+if ('DedicatedWorkerGlobalScope' in self &&
+ self instanceof DedicatedWorkerGlobalScope) {
+ postMessage('LOADED');
+} else if (
+ 'SharedWorkerGlobalScope' in self &&
+ self instanceof SharedWorkerGlobalScope) {
+ self.onconnect = e => {
+ e.ports[0].postMessage('LOADED');
+ };
+}
diff --git a/tests/wpt/web-platform-tests/workers/modules/resources/static-import-and-then-dynamic-import-worker.js b/tests/wpt/web-platform-tests/workers/modules/resources/static-import-and-then-dynamic-import-worker.js
index cd98d8c17df..2d857a2e90a 100644
--- a/tests/wpt/web-platform-tests/workers/modules/resources/static-import-and-then-dynamic-import-worker.js
+++ b/tests/wpt/web-platform-tests/workers/modules/resources/static-import-and-then-dynamic-import-worker.js
@@ -3,12 +3,24 @@
import * as module from './export-on-dynamic-import-script.js';
const sourcePromise = new Promise(resolve => {
- self.onmessage = e => {
- // DedicatedWorkerGlobalScope doesn't fill in e.source,
- // so use e.target instead.
- const source = e.source ? e.source : e.target;
- resolve(source);
- };
+ if ('DedicatedWorkerGlobalScope' in self &&
+ self instanceof DedicatedWorkerGlobalScope) {
+ self.onmessage = e => {
+ resolve(e.target);
+ };
+ } else if (
+ 'SharedWorkerGlobalScope' in self &&
+ self instanceof SharedWorkerGlobalScope) {
+ self.onconnect = e => {
+ resolve(e.ports[0]);
+ };
+ } else if (
+ 'ServiceWorkerGlobalScope' in self &&
+ self instanceof ServiceWorkerGlobalScope) {
+ self.onmessage = e => {
+ resolve(e.source);
+ };
+ }
});
export let importedModules = ['export-on-dynamic-import-script.js'];
diff --git a/tests/wpt/web-platform-tests/workers/modules/resources/static-import-worker.js b/tests/wpt/web-platform-tests/workers/modules/resources/static-import-worker.js
index 48751dbe03b..19a347999d3 100644
--- a/tests/wpt/web-platform-tests/workers/modules/resources/static-import-worker.js
+++ b/tests/wpt/web-platform-tests/workers/modules/resources/static-import-worker.js
@@ -1,9 +1,21 @@
// This script is meant to be imported by a module worker. It receives a
// message from the worker and responds with the list of imported modules.
import * as module from './export-on-load-script.js';
-self.onmessage = e => {
- // DedicatedWorkerGlobalScope doesn't fill in e.source,
- // so use e.target instead.
- const source = e.source ? e.source : e.target;
- source.postMessage(module.importedModules);
-};
+if ('DedicatedWorkerGlobalScope' in self &&
+ self instanceof DedicatedWorkerGlobalScope) {
+ self.onmessage = e => {
+ e.target.postMessage(module.importedModules);
+ };
+} else if (
+ 'SharedWorkerGlobalScope' in self &&
+ self instanceof SharedWorkerGlobalScope) {
+ self.onconnect = e => {
+ e.ports[0].postMessage(module.importedModules);
+ };
+} else if (
+ 'ServiceWorkerGlobalScope' in self &&
+ self instanceof ServiceWorkerGlobalScope) {
+ self.onmessage = e => {
+ e.source.postMessage(module.importedModules);
+ };
+}
diff --git a/tests/wpt/web-platform-tests/workers/modules/shared-worker-import-blob-url.any.js b/tests/wpt/web-platform-tests/workers/modules/shared-worker-import-blob-url.any.js
new file mode 100644
index 00000000000..d9e9e34c394
--- /dev/null
+++ b/tests/wpt/web-platform-tests/workers/modules/shared-worker-import-blob-url.any.js
@@ -0,0 +1,23 @@
+// META: global=!worker
+// META: script=/workers/modules/resources/import-test-cases.js
+
+// Imports |testCase.scriptURL| on a shared worker loaded from a blob URL,
+// and waits until the list of imported modules is sent from the worker. Passes
+// if the list is equal to |testCase.expectation|.
+function import_blob_url_test(testCase) {
+ promise_test(async () => {
+ const importURL = new URL(testCase.scriptURL, location.href);
+ const blob =
+ new Blob([`import "${importURL}";`], {type: 'text/javascript'});
+ const blobURL = URL.createObjectURL(blob);
+ const worker = new SharedWorker(blobURL, {type: 'module'});
+ worker.port.postMessage('Send message for tests from main script.');
+ const msgEvent = await new Promise((resolve, reject) => {
+ worker.port.onmessage = resolve;
+ worker.onerror = (error) => reject(error && error.message);
+ });
+ assert_array_equals(msgEvent.data, testCase.expectation);
+ }, testCase.description);
+}
+
+testCases.forEach(import_blob_url_test);
diff --git a/tests/wpt/web-platform-tests/workers/modules/shared-worker-import-failure.html b/tests/wpt/web-platform-tests/workers/modules/shared-worker-import-failure.html
new file mode 100644
index 00000000000..0e0b9b30631
--- /dev/null
+++ b/tests/wpt/web-platform-tests/workers/modules/shared-worker-import-failure.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<title>SharedWorker: import failure</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script> setup({allow_uncaught_exception: true}); </script>
+<script>
+
+// TODO: Factor out the test cases into a separate file.
+// (like import-test-cases.js)
+// TODO: Add rest of the tests correponding to
+// 'dedicated-worker-import-failure.html'
+
+promise_test(async () => {
+ const scriptURL = 'resources/import-scripts-worker.js';
+ const worker = new SharedWorker(scriptURL, { type: 'module' });
+ const msg_event =
+ await new Promise(resolve => worker.port.onmessage = resolve);
+ assert_equals(msg_event.data, 'TypeError');
+}, 'importScripts() on module worker should throw an exception.');
+
+test(() => {
+ const scriptURL = 'http://invalid:123$';
+ assert_throws('SyntaxError',
+ () => new SharedWorker(scriptURL, { type: 'module' }));
+}, 'SharedWorker construction for an invalid URL should throw an exception.');
+
+test(() => {
+ const scriptURL = 'file:///static-import-worker.js';
+ assert_throws('SecurityError',
+ () => new SharedWorker(scriptURL, { type: 'module' }));
+}, 'SharedWorker construction for a file URL should throw an exception.');
+
+</script>
diff --git a/tests/wpt/web-platform-tests/workers/modules/shared-worker-import.any.js b/tests/wpt/web-platform-tests/workers/modules/shared-worker-import.any.js
new file mode 100644
index 00000000000..450d4ad422b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/workers/modules/shared-worker-import.any.js
@@ -0,0 +1,19 @@
+// META: global=!worker
+// META: script=/workers/modules/resources/import-test-cases.js
+
+// Starts a shared worker for |testCase.scriptURL| and waits until the list
+// of imported modules is sent from the worker. Passes if the list is equal to
+// |testCase.expectation|.
+function import_test(testCase) {
+ promise_test(async () => {
+ const worker = new SharedWorker(testCase.scriptURL, {type: 'module'});
+ worker.port.postMessage('Send message for tests from main script.');
+ const msgEvent = await new Promise((resolve, reject) => {
+ worker.port.onmessage = resolve;
+ worker.onerror = (error) => reject(error && error.message);
+ });
+ assert_array_equals(msgEvent.data, testCase.expectation);
+ }, testCase.description);
+}
+
+testCases.forEach(import_test);
diff --git a/tests/wpt/web-platform-tests/workers/modules/shared-worker-options-type.html b/tests/wpt/web-platform-tests/workers/modules/shared-worker-options-type.html
new file mode 100644
index 00000000000..25b793c631d
--- /dev/null
+++ b/tests/wpt/web-platform-tests/workers/modules/shared-worker-options-type.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html>
+<title>SharedWorker: WorkerOptions 'type'</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+
+promise_test(() => {
+ const worker = new SharedWorker('resources/post-message-on-load-worker.js');
+ return new Promise(resolve => worker.port.onmessage = resolve)
+ .then(msg_event => assert_equals(msg_event.data, 'LOADED'));
+}, 'Test worker construction with the default worker type.');
+
+promise_test(() => {
+ const worker = new SharedWorker('resources/post-message-on-load-worker.js',
+ { type: 'classic' });
+ return new Promise(resolve => worker.port.onmessage = resolve)
+ .then(msg_event => assert_equals(msg_event.data, 'LOADED'));
+}, 'Test worker construction with the "classic" worker type.');
+
+promise_test(() => {
+ const worker = new SharedWorker('resources/post-message-on-load-worker.js',
+ { type: 'module' });
+ return new Promise(resolve => worker.port.onmessage = resolve)
+ .then(msg_event => assert_equals(msg_event.data, 'LOADED'));
+}, 'Test worker construction with the "module" worker type.');
+
+test(() => {
+ assert_throws(
+ new TypeError(),
+ () => {
+ new SharedWorker('resources/post-message-on-load-worker.js',
+ {type : ''});
+ },
+ 'Worker construction with an empty type should throw an exception');
+}, 'Test worker construction with an empty worker type.');
+
+test(() => {
+ assert_throws(
+ new TypeError(),
+ () => {
+ new SharedWorker('resources/post-message-on-load-worker.js',
+ {type : 'unknown'});
+ },
+ 'Worker construction with an unknown type should throw an exception');
+}, 'Test worker construction with an unknown worker type.');
+
+</script>