aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/wpt/metadata-layout-2020/css/css-transforms/animation/transform-interpolation-computed-value.html.ini262
-rw-r--r--tests/wpt/metadata/MANIFEST.json658
-rw-r--r--tests/wpt/metadata/css/CSS2/floats/hit-test-floats-003.html.ini4
-rw-r--r--tests/wpt/metadata/css/CSS2/floats/hit-test-floats-004.html.ini4
-rw-r--r--tests/wpt/metadata/css/css-transforms/animation/transform-interpolation-computed-value.html.ini262
-rw-r--r--tests/wpt/metadata/css/cssom-view/elementFromPoint-001.html.ini4
-rw-r--r--tests/wpt/metadata/fetch/content-type/response.window.js.ini18
-rw-r--r--tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini3
-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/interaction/focus/the-autofocus-attribute/supported-elements.html.ini10
-rw-r--r--tests/wpt/metadata/html/user-activation/activation-transfer-without-click.tentative.html.ini4
-rw-r--r--tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-multi-channels.html.ini3
-rw-r--r--tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini6
-rw-r--r--tests/wpt/metadata/webmessaging/with-ports/017.html.ini5
-rw-r--r--tests/wpt/metadata/webmessaging/without-ports/018.html.ini5
-rw-r--r--tests/wpt/metadata/workers/WorkerNavigator_userAgentData.https.html.ini4
-rw-r--r--tests/wpt/metadata/workers/shared-worker-in-data-url-context.window.js.ini3
-rwxr-xr-xtests/wpt/web-platform-tests/common/security-features/tools/generate.py9
-rw-r--r--tests/wpt/web-platform-tests/common/security-features/tools/template/test.debug.html.template4
-rw-r--r--tests/wpt/web-platform-tests/common/security-features/tools/template/test.release.html.template4
-rw-r--r--tests/wpt/web-platform-tests/css/css-animations/CSSAnimation-effect.tentative.html9
-rw-r--r--tests/wpt/web-platform-tests/css/css-animations/event-dispatch.tentative.html3
-rw-r--r--tests/wpt/web-platform-tests/css/css-animations/support/testcommon.js9
-rw-r--r--tests/wpt/web-platform-tests/css/css-transforms/animation/transform-interpolation-computed-value.html80
-rw-r--r--tests/wpt/web-platform-tests/feature-policy/resources/feature-policy-wakelock.html5
-rw-r--r--tests/wpt/web-platform-tests/html/user-activation/activation-api-click.tentative.html2
-rw-r--r--tests/wpt/web-platform-tests/html/user-activation/activation-api-iframe-no-activate.tentative.html (renamed from tests/wpt/web-platform-tests/html/user-activation/activation-api-iframe-no-activate.tenative.html)32
-rw-r--r--tests/wpt/web-platform-tests/html/user-activation/activation-api-iframe.tentative.html (renamed from tests/wpt/web-platform-tests/html/user-activation/activation-api-iframe.tenative.html)10
-rw-r--r--tests/wpt/web-platform-tests/html/user-activation/activation-transfer-cross-origin-with-click-two-child-frames.sub.tentative.html90
-rw-r--r--tests/wpt/web-platform-tests/html/user-activation/activation-transfer-cross-origin-with-click.sub.tentative.html62
-rw-r--r--tests/wpt/web-platform-tests/html/user-activation/activation-transfer-with-click.tentative.html62
-rw-r--r--tests/wpt/web-platform-tests/html/user-activation/activation-transfer-without-click.tentative.html54
-rw-r--r--tests/wpt/web-platform-tests/html/user-activation/message-event-activation-api-iframe-cross-origin.sub.tentative.html16
-rw-r--r--tests/wpt/web-platform-tests/html/user-activation/resources/child-four.html15
-rw-r--r--tests/wpt/web-platform-tests/html/user-activation/resources/child-message-event-api.html24
-rw-r--r--tests/wpt/web-platform-tests/html/user-activation/resources/child-one.html39
-rw-r--r--tests/wpt/web-platform-tests/html/user-activation/resources/child-three.html19
-rw-r--r--tests/wpt/web-platform-tests/html/user-activation/resources/child-two.html21
-rw-r--r--tests/wpt/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/navigator_user_agent.https.html3
-rw-r--r--tests/wpt/web-platform-tests/interfaces/video-raf.idl6
-rw-r--r--tests/wpt/web-platform-tests/interfaces/web-animations.idl6
-rw-r--r--tests/wpt/web-platform-tests/interfaces/webrtc-stats.idl1
-rw-r--r--tests/wpt/web-platform-tests/mathml/relations/html5-tree/display-1.html25
-rw-r--r--tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-background-size.html28
-rw-r--r--tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-bg-image-set.html26
-rw-r--r--tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-bg-image-two-steps.html34
-rw-r--r--tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-canvas-context.html23
-rw-r--r--tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-gradient.html27
-rw-r--r--tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-invisible-3d-rotate-descendant.html39
-rw-r--r--tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-invisible-3d-rotate.html29
-rw-r--r--tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-invisible-scale-transition.html30
-rw-r--r--tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-invisible-scale.html30
-rw-r--r--tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-invisible-text.html30
-rw-r--r--tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-opacity-descendant.html46
-rw-r--r--tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-opacity.html30
-rw-r--r--tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-out-of-bounds-translate.html30
-rw-r--r--tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-out-of-bounds.html29
-rw-r--r--tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-overflow.html35
-rw-r--r--tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-pseudo-element-display.html32
-rw-r--r--tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-pseudo-element-image.html28
-rw-r--r--tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-pseudo-element-opacity.html32
-rw-r--r--tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-pseudo-element-text.html28
-rw-r--r--tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-pseudo-element-visibility.html32
-rw-r--r--tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-svg.html40
-rw-r--r--tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-video-frame.html24
-rw-r--r--tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-video-poster.html27
-rw-r--r--tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-whitespace.html35
-rw-r--r--tests/wpt/web-platform-tests/paint-timing/resources/utils.js63
-rw-r--r--tests/wpt/web-platform-tests/scroll-animations/scroll-animation.html5
-rw-r--r--tests/wpt/web-platform-tests/scroll-animations/scroll-timeline-invalidation.html98
-rw-r--r--tests/wpt/web-platform-tests/svg/geometry/svg-image-intrinsic-size-with-cssstyle-auto.html6
-rw-r--r--tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-classic-data.http-rp/upgrade/fetch.https.html112
-rw-r--r--tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-classic-data.http-rp/upgrade/fetch.https.html.headers1
-rw-r--r--tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-classic-data.http-rp/upgrade/websocket.https.html52
-rw-r--r--tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-classic-data.http-rp/upgrade/websocket.https.html.headers1
-rw-r--r--tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-classic-data.http-rp/upgrade/xhr.https.html112
-rw-r--r--tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-classic-data.http-rp/upgrade/xhr.https.html.headers1
-rw-r--r--tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-classic-data.meta/unset/fetch.https.html112
-rw-r--r--tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-classic-data.meta/unset/websocket.https.html52
-rw-r--r--tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-classic-data.meta/unset/xhr.https.html112
-rw-r--r--tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-classic-data.meta/upgrade/fetch.https.html113
-rw-r--r--tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-classic-data.meta/upgrade/websocket.https.html53
-rw-r--r--tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-classic-data.meta/upgrade/xhr.https.html113
-rw-r--r--tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-module-data.http-rp/upgrade/fetch.https.html112
-rw-r--r--tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-module-data.http-rp/upgrade/fetch.https.html.headers1
-rw-r--r--tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-module-data.http-rp/upgrade/websocket.https.html52
-rw-r--r--tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-module-data.http-rp/upgrade/websocket.https.html.headers1
-rw-r--r--tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-module-data.http-rp/upgrade/xhr.https.html112
-rw-r--r--tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-module-data.http-rp/upgrade/xhr.https.html.headers1
-rw-r--r--tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-module-data.meta/unset/fetch.https.html112
-rw-r--r--tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-module-data.meta/unset/websocket.https.html52
-rw-r--r--tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-module-data.meta/unset/xhr.https.html112
-rw-r--r--tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-module-data.meta/upgrade/fetch.https.html113
-rw-r--r--tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-module-data.meta/upgrade/websocket.https.html53
-rw-r--r--tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-module-data.meta/upgrade/xhr.https.html113
-rw-r--r--tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/worker-module-data.http-rp/upgrade/fetch.https.html112
-rw-r--r--tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/worker-module-data.http-rp/upgrade/fetch.https.html.headers1
-rw-r--r--tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/worker-module-data.http-rp/upgrade/websocket.https.html52
-rw-r--r--tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/worker-module-data.http-rp/upgrade/websocket.https.html.headers1
-rw-r--r--tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/worker-module-data.http-rp/upgrade/xhr.https.html112
-rw-r--r--tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/worker-module-data.http-rp/upgrade/xhr.https.html.headers1
-rw-r--r--tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/worker-module-data.meta/unset/fetch.https.html112
-rw-r--r--tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/worker-module-data.meta/unset/websocket.https.html52
-rw-r--r--tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/worker-module-data.meta/unset/xhr.https.html112
-rw-r--r--tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/worker-module-data.meta/upgrade/fetch.https.html113
-rw-r--r--tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/worker-module-data.meta/upgrade/websocket.https.html53
-rw-r--r--tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/worker-module-data.meta/upgrade/xhr.https.html113
-rw-r--r--tests/wpt/web-platform-tests/upgrade-insecure-requests/spec.src.json5
-rw-r--r--tests/wpt/web-platform-tests/wake-lock/idlharness-worker.https.window.js13
-rw-r--r--tests/wpt/web-platform-tests/wake-lock/idlharness.https.window.js (renamed from tests/wpt/web-platform-tests/wake-lock/idlharness.https.any.js)13
-rw-r--r--tests/wpt/web-platform-tests/wake-lock/resources/idlharness-worker.js24
-rw-r--r--tests/wpt/web-platform-tests/wake-lock/wakelock-enabled-by-feature-policy-attribute-redirect-on-load.https.sub.html4
-rw-r--r--tests/wpt/web-platform-tests/wake-lock/wakelock-enabled-by-feature-policy.https.sub.html12
-rw-r--r--tests/wpt/web-platform-tests/wake-lock/wakelock-enabled-on-self-origin-by-feature-policy.https.sub.html12
-rw-r--r--tests/wpt/web-platform-tests/web-animations/interfaces/Animation/finished.html17
-rw-r--r--tests/wpt/web-platform-tests/web-animations/interfaces/Animation/ready.html17
-rw-r--r--tests/wpt/web-platform-tests/workers/WorkerNavigator_userAgentData.http.html17
-rw-r--r--tests/wpt/web-platform-tests/workers/WorkerNavigator_userAgentData.https.html29
-rw-r--r--tests/wpt/web-platform-tests/workers/support/WorkerNavigator.js28
119 files changed, 4923 insertions, 555 deletions
diff --git a/tests/wpt/metadata-layout-2020/css/css-transforms/animation/transform-interpolation-computed-value.html.ini b/tests/wpt/metadata-layout-2020/css/css-transforms/animation/transform-interpolation-computed-value.html.ini
new file mode 100644
index 00000000000..6f903e3fbd6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/css-transforms/animation/transform-interpolation-computed-value.html.ini
@@ -0,0 +1,262 @@
+[transform-interpolation-computed-value.html]
+ [Interpolation between rotateX(0deg) and rotateX(90deg) gives the correct computed value halfway according to commitStyles.]
+ expected: FAIL
+
+ [Interpolation between translate3d(0,0,-50px) and translateZ(50px) gives the correct computed value halfway according to computedStyleMap with zoom active.]
+ expected: FAIL
+
+ [Interpolation between scaleY(1) and scaleY(2) gives the correct computed value halfway according to commitStyles.]
+ expected: FAIL
+
+ [Interpolation between rotateZ(30deg) and rotateZ(90deg) gives the correct computed value halfway according to computedStyleMap with zoom active.]
+ expected: FAIL
+
+ [Interpolation between rotate(30deg) and rotate(90deg) gives the correct computed value halfway according to computedStyleMap with zoom active.]
+ expected: FAIL
+
+ [Interpolation between scale3d(1, 2, 3) and scale3d(4, 5, 6) gives the correct computed value halfway according to commitStyles.]
+ expected: FAIL
+
+ [Interpolation between translateX(50px) and translateY(50px) gives the correct computed value halfway according to computedStyleMap with zoom active.]
+ expected: FAIL
+
+ [Interpolation between scale3d(1, 2, 3) and scale(4, 5) gives the correct computed value halfway according to computedStyleMap.]
+ expected: FAIL
+
+ [Interpolation between skewX(0deg) and skewX(180deg) gives the correct computed value halfway according to computedStyleMap.]
+ expected: FAIL
+
+ [Interpolation between scale(1, 2) and scale(3, 4) gives the correct computed value halfway according to computedStyleMap.]
+ expected: FAIL
+
+ [Interpolation between skewX(0deg) and skewX(90deg) gives the correct computed value halfway according to commitStyles.]
+ expected: FAIL
+
+ [Interpolation between scaleZ(1) and scaleZ(2) gives the correct computed value halfway according to computedStyleMap with zoom active.]
+ expected: FAIL
+
+ [Interpolation between scaleX(2) and scaleY(2) gives the correct computed value halfway according to computedStyleMap.]
+ expected: FAIL
+
+ [Interpolation between scaleZ(1) and scale(2) gives the correct computed value halfway according to commitStyles.]
+ expected: FAIL
+
+ [Interpolation between translateZ(-50px) and translateZ(50px) gives the correct computed value halfway according to commitStyles.]
+ expected: FAIL
+
+ [Interpolation between scaleX(2) and scaleY(3) gives the correct computed value halfway according to computedStyleMap with zoom active.]
+ expected: FAIL
+
+ [Interpolation between skew(0deg, 0deg) and skew(60deg, 60deg) gives the correct computed value halfway according to commitStyles.]
+ expected: FAIL
+
+ [Interpolation between translateZ(50px) and translateX(50px) gives the correct computed value halfway according to computedStyleMap.]
+ expected: FAIL
+
+ [Interpolation between scale(1, 2) and scale(3, 4) gives the correct computed value halfway according to computedStyleMap with zoom active.]
+ expected: FAIL
+
+ [Interpolation between rotate(30deg) and rotate(90deg) gives the correct computed value halfway according to commitStyles.]
+ expected: FAIL
+
+ [Interpolation between translateZ(50px) and translateX(50px) gives the correct computed value halfway according to commitStyles.]
+ expected: FAIL
+
+ [Interpolation between scaleZ(1) and scaleZ(2) gives the correct computed value halfway according to commitStyles.]
+ expected: FAIL
+
+ [Interpolation between scaleX(1) and scaleX(2) gives the correct computed value halfway according to computedStyleMap.]
+ expected: FAIL
+
+ [Interpolation between rotate(0deg) and rotateZ(90deg) gives the correct computed value halfway according to computedStyleMap.]
+ expected: FAIL
+
+ [Interpolation between skewX(0deg) and skewX(60deg) gives the correct computed value halfway according to commitStyles.]
+ expected: FAIL
+
+ [Interpolation between rotate(0deg) and rotateZ(90deg) gives the correct computed value halfway according to commitStyles.]
+ expected: FAIL
+
+ [Interpolation between rotate(0deg) and rotateX(90deg) gives the correct computed value halfway according to computedStyleMap.]
+ expected: FAIL
+
+ [Interpolation between scale3d(1, 2, 3) and scale3d(4, 5, 6) gives the correct computed value halfway according to computedStyleMap with zoom active.]
+ expected: FAIL
+
+ [Interpolation between scaleZ(1) and scale(2) gives the correct computed value halfway according to computedStyleMap.]
+ expected: FAIL
+
+ [Interpolation between translateX(0%) and translateX(50%) gives the correct computed value halfway according to computedStyleMap.]
+ expected: FAIL
+
+ [Interpolation between translateX(50px) and translateY(50px) gives the correct computed value halfway according to commitStyles.]
+ expected: FAIL
+
+ [Interpolation between translateX(0px) and translateX(50px) gives the correct computed value halfway according to computedStyleMap.]
+ expected: FAIL
+
+ [Interpolation between scaleX(1) and scaleX(2) gives the correct computed value halfway according to commitStyles.]
+ expected: FAIL
+
+ [Interpolation between translateX(50px) and translateZ(50px) gives the correct computed value halfway according to commitStyles.]
+ expected: FAIL
+
+ [Interpolation between skew(45deg, 0deg) and skew(0deg, 45deg) gives the correct computed value halfway according to commitStyles.]
+ expected: FAIL
+
+ [Interpolation between rotateZ(30deg) and rotateZ(90deg) gives the correct computed value halfway according to commitStyles.]
+ expected: FAIL
+
+ [Interpolation between translateY(0%) and translateX(50%) gives the correct computed value halfway according to commitStyles.]
+ expected: FAIL
+
+ [Interpolation between scale(1, 2) and scale3d(3, 4, 5) gives the correct computed value halfway according to computedStyleMap.]
+ expected: FAIL
+
+ [Interpolation between translateX(0%) and translateX(50%) gives the correct computed value halfway according to commitStyles.]
+ expected: FAIL
+
+ [Interpolation between skew(45deg, 0deg) and skew(0deg, 45deg) gives the correct computed value halfway according to computedStyleMap.]
+ expected: FAIL
+
+ [Interpolation between rotate(0deg) and rotateZ(90deg) gives the correct computed value halfway according to computedStyleMap with zoom active.]
+ expected: FAIL
+
+ [Interpolation between scaleX(2) and scaleY(2) gives the correct computed value halfway according to computedStyleMap with zoom active.]
+ expected: FAIL
+
+ [Interpolation between skewX(0deg) and skewX(60deg) gives the correct computed value halfway according to computedStyleMap.]
+ expected: FAIL
+
+ [Interpolation between rotateZ(30deg) and rotateZ(90deg) gives the correct computed value halfway according to computedStyleMap.]
+ expected: FAIL
+
+ [Interpolation between scale(1) and scale(2) gives the correct computed value halfway according to computedStyleMap with zoom active.]
+ expected: FAIL
+
+ [Interpolation between translateZ(-50px) and translateZ(50px) gives the correct computed value halfway according to computedStyleMap with zoom active.]
+ expected: FAIL
+
+ [Interpolation between scaleX(1) and scaleX(2) gives the correct computed value halfway according to computedStyleMap with zoom active.]
+ expected: FAIL
+
+ [Interpolation between scaleZ(1) and scaleZ(2) gives the correct computed value halfway according to computedStyleMap.]
+ expected: FAIL
+
+ [Interpolation between scale3d(1, 2, 3) and scale3d(4, 5, 6) gives the correct computed value halfway according to computedStyleMap.]
+ expected: FAIL
+
+ [Interpolation between rotate(0deg) and rotateX(90deg) gives the correct computed value halfway according to commitStyles.]
+ expected: FAIL
+
+ [Interpolation between translateX(50px) and translateY(50px) gives the correct computed value halfway according to computedStyleMap.]
+ expected: FAIL
+
+ [Interpolation between translateX(50px) and translateZ(50px) gives the correct computed value halfway according to computedStyleMap with zoom active.]
+ expected: FAIL
+
+ [Interpolation between translateX(0px) and translateX(50px) gives the correct computed value halfway according to commitStyles.]
+ expected: FAIL
+
+ [Interpolation between scaleY(1) and scaleY(2) gives the correct computed value halfway according to computedStyleMap with zoom active.]
+ expected: FAIL
+
+ [Interpolation between translateX(50px) and translateZ(50px) gives the correct computed value halfway according to computedStyleMap.]
+ expected: FAIL
+
+ [Interpolation between scale3d(1, 2, 3) and scale(4, 5) gives the correct computed value halfway according to computedStyleMap with zoom active.]
+ expected: FAIL
+
+ [Interpolation between skewX(0deg) and skewX(180deg) gives the correct computed value halfway according to commitStyles.]
+ expected: FAIL
+
+ [Interpolation between rotate(0deg) and rotateX(90deg) gives the correct computed value halfway according to computedStyleMap with zoom active.]
+ expected: FAIL
+
+ [Interpolation between translateY(0%) and translateX(50%) gives the correct computed value halfway according to computedStyleMap with zoom active.]
+ expected: FAIL
+
+ [Interpolation between skew(0deg, 0deg) and skew(60deg, 60deg) gives the correct computed value halfway according to computedStyleMap.]
+ expected: FAIL
+
+ [Interpolation between skewX(0deg) and skewX(90deg) gives the correct computed value halfway according to computedStyleMap with zoom active.]
+ expected: FAIL
+
+ [Interpolation between scale(1) and scale(2) gives the correct computed value halfway according to computedStyleMap.]
+ expected: FAIL
+
+ [Interpolation between scaleX(2) and scaleY(2) gives the correct computed value halfway according to commitStyles.]
+ expected: FAIL
+
+ [Interpolation between scale(1, 2) and scale3d(3, 4, 5) gives the correct computed value halfway according to commitStyles.]
+ expected: FAIL
+
+ [Interpolation between rotate(30deg) and rotate(90deg) gives the correct computed value halfway according to computedStyleMap.]
+ expected: FAIL
+
+ [Interpolation between rotateX(0deg) and rotateX(90deg) gives the correct computed value halfway according to computedStyleMap with zoom active.]
+ expected: FAIL
+
+ [Interpolation between translateZ(-50px) and translateZ(50px) gives the correct computed value halfway according to computedStyleMap.]
+ expected: FAIL
+
+ [Interpolation between skewX(0deg) and skewX(60deg) gives the correct computed value halfway according to computedStyleMap with zoom active.]
+ expected: FAIL
+
+ [Interpolation between translateY(0%) and translateX(50%) gives the correct computed value halfway according to computedStyleMap.]
+ expected: FAIL
+
+ [Interpolation between scale(1) and scale(2) gives the correct computed value halfway according to commitStyles.]
+ expected: FAIL
+
+ [Interpolation between translate3d(0,0,-50px) and translateZ(50px) gives the correct computed value halfway according to computedStyleMap.]
+ expected: FAIL
+
+ [Interpolation between scaleX(2) and scaleY(3) gives the correct computed value halfway according to commitStyles.]
+ expected: FAIL
+
+ [Interpolation between skewX(0deg) and skewX(180deg) gives the correct computed value halfway according to computedStyleMap with zoom active.]
+ expected: FAIL
+
+ [Interpolation between skew(0deg, 0deg) and skew(60deg, 60deg) gives the correct computed value halfway according to computedStyleMap with zoom active.]
+ expected: FAIL
+
+ [Interpolation between translateZ(50px) and translateX(50px) gives the correct computed value halfway according to computedStyleMap with zoom active.]
+ expected: FAIL
+
+ [Interpolation between translate3d(0,0,-50px) and translateZ(50px) gives the correct computed value halfway according to commitStyles.]
+ expected: FAIL
+
+ [Interpolation between rotateX(0deg) and rotateX(90deg) gives the correct computed value halfway according to computedStyleMap.]
+ expected: FAIL
+
+ [Interpolation between scale(1, 2) and scale(3, 4) gives the correct computed value halfway according to commitStyles.]
+ expected: FAIL
+
+ [Interpolation between scale3d(1, 2, 3) and scale(4, 5) gives the correct computed value halfway according to commitStyles.]
+ expected: FAIL
+
+ [Interpolation between scale(1, 2) and scale3d(3, 4, 5) gives the correct computed value halfway according to computedStyleMap with zoom active.]
+ expected: FAIL
+
+ [Interpolation between skewX(0deg) and skewX(90deg) gives the correct computed value halfway according to computedStyleMap.]
+ expected: FAIL
+
+ [Interpolation between skew(45deg, 0deg) and skew(0deg, 45deg) gives the correct computed value halfway according to computedStyleMap with zoom active.]
+ expected: FAIL
+
+ [Interpolation between scaleX(2) and scaleY(3) gives the correct computed value halfway according to computedStyleMap.]
+ expected: FAIL
+
+ [Interpolation between translateX(0px) and translateX(50px) gives the correct computed value halfway according to computedStyleMap with zoom active.]
+ expected: FAIL
+
+ [Interpolation between scaleY(1) and scaleY(2) gives the correct computed value halfway according to computedStyleMap.]
+ expected: FAIL
+
+ [Interpolation between translateX(0%) and translateX(50%) gives the correct computed value halfway according to computedStyleMap with zoom active.]
+ expected: FAIL
+
+ [Interpolation between scaleZ(1) and scale(2) gives the correct computed value halfway according to computedStyleMap with zoom active.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json
index f76e1497974..867578b2552 100644
--- a/tests/wpt/metadata/MANIFEST.json
+++ b/tests/wpt/metadata/MANIFEST.json
@@ -240978,7 +240978,7 @@
[]
],
"generate.py": [
- "75b7c1da5ac19288d25e2664b764b5cc631506d8",
+ "7710a824b2dc19bd76203f4d64ef7b329fd1ca35",
[]
],
"spec.src.json": [
@@ -240999,11 +240999,11 @@
[]
],
"test.debug.html.template": [
- "7650f02c2862a4923c29b39eae9b7c7d6709f250",
+ "b6be088f6112a040ad84d2b5c176373180111d62",
[]
],
"test.release.html.template": [
- "71d83f83a2623881b63444cb435d29a4aeb023a3",
+ "bac2d5b5a4d78dbb27170c59baeec70cb23add81",
[]
]
},
@@ -280532,7 +280532,7 @@
[]
],
"testcommon.js": [
- "7d63d2c49bce5152d765ac62728f749f622bde2a",
+ "e26a7a1858ab9e4d404fa9fb76b4a9f4c4f13572",
[]
]
}
@@ -312985,7 +312985,7 @@
[]
],
"feature-policy-wakelock.html": [
- "fac421c09fa2274a8de5f3b914a27fd15f3aaba3",
+ "7d3dab45af1d57c805f14cfdbed142ddb2415eba",
[]
],
"feature-policy-webvr.html": [
@@ -324213,20 +324213,16 @@
"9d664e2356a87496416644d639598adbaa8c43dd",
[]
],
- "child-four.html": [
- "65d17f273e1868312f59c89f3f2d05bda759ae1a",
+ "child-message-event-api.html": [
+ "a0001633c22d19e44c1f48ddeffa07dde1fbc436",
[]
],
"child-one.html": [
- "9c99729b6a98022f7449bae62a7bea616308c0c7",
- []
- ],
- "child-three.html": [
- "5a74cf5360c6a14d2ad5eebb31d74db6980ebccf",
+ "966837262069acbb1a414c1b4d631b457979fea4",
[]
],
"child-two.html": [
- "1fa8343a18684e1160ae763c4d32cd3fa4027399",
+ "dc50742051f0c53fb6de00b982c30478b63e859c",
[]
]
}
@@ -326010,7 +326006,7 @@
[]
],
"video-raf.idl": [
- "9c523e6ca0330b96c9320e6ca76a077686afbe3b",
+ "0ab48e33d59392d09e24ad87b4608bd0a840f2d9",
[]
],
"visual-viewport.idl": [
@@ -326034,7 +326030,7 @@
[]
],
"web-animations.idl": [
- "0d5d40ba74f40ed68c19a8218710204b2767ae12",
+ "006b27b2820f81e89a0088b996acf61fb634f325",
[]
],
"web-bluetooth.idl": [
@@ -326082,7 +326078,7 @@
[]
],
"webrtc-stats.idl": [
- "f66b0791cb2fae4665a6df8cde1d1c67a18797f6",
+ "514d09f15a60446ad7a6ba78bd1288a047085af1",
[]
],
"webrtc-svc.idl": [
@@ -328367,7 +328363,7 @@
[]
],
"utils.js": [
- "9375b175296c305c8c75eb0a6c618a7ff62364ee",
+ "fb60500f3b5f806783a394eed17accc36c75e87c",
[]
]
}
@@ -342190,6 +342186,38 @@
[]
],
"gen": {
+ "sharedworker-classic-data.http-rp": {
+ "upgrade": {
+ "fetch.https.html.headers": [
+ "602d9dc38d0a5975e8d40c26daae9329de69840c",
+ []
+ ],
+ "websocket.https.html.headers": [
+ "602d9dc38d0a5975e8d40c26daae9329de69840c",
+ []
+ ],
+ "xhr.https.html.headers": [
+ "602d9dc38d0a5975e8d40c26daae9329de69840c",
+ []
+ ]
+ }
+ },
+ "sharedworker-module-data.http-rp": {
+ "upgrade": {
+ "fetch.https.html.headers": [
+ "602d9dc38d0a5975e8d40c26daae9329de69840c",
+ []
+ ],
+ "websocket.https.html.headers": [
+ "602d9dc38d0a5975e8d40c26daae9329de69840c",
+ []
+ ],
+ "xhr.https.html.headers": [
+ "602d9dc38d0a5975e8d40c26daae9329de69840c",
+ []
+ ]
+ }
+ },
"top.http-rp": {
"upgrade": {
"fetch.https.html.headers": [
@@ -342294,6 +342322,22 @@
]
}
},
+ "worker-module-data.http-rp": {
+ "upgrade": {
+ "fetch.https.html.headers": [
+ "602d9dc38d0a5975e8d40c26daae9329de69840c",
+ []
+ ],
+ "websocket.https.html.headers": [
+ "602d9dc38d0a5975e8d40c26daae9329de69840c",
+ []
+ ],
+ "xhr.https.html.headers": [
+ "602d9dc38d0a5975e8d40c26daae9329de69840c",
+ []
+ ]
+ }
+ },
"worker-module-inherit.http-rp": {
"upgrade": {
"fetch.https.html.headers": [
@@ -342410,7 +342454,7 @@
}
},
"spec.src.json": [
- "139b5c451f7438cea55b1f47fb8102626970f91f",
+ "43f2d6dbc1867c668198e2570414fd08df817dc8",
[]
],
"support": {
@@ -342538,6 +342582,10 @@
[]
],
"resources": {
+ "idlharness-worker.js": [
+ "b84ed44a8c89713be559e9cec8a1e3f48c990179",
+ []
+ ],
"page1.html": [
"7fc080d380c4bd46dfb011910e570ee412561b92",
[]
@@ -347579,7 +347627,7 @@
[]
],
"WorkerNavigator.js": [
- "084e45b24585b9d43bd55e71fb727bd674977eca",
+ "eec2f6884a10562a0d21ab076b90e099dbb8891a",
[]
],
"WorkerSendingPerformanceNow.js": [
@@ -377167,7 +377215,7 @@
]
],
"CSSAnimation-effect.tentative.html": [
- "5e2d18b5bf9659e9cf8930c151abcd2a12635fa0",
+ "fadcaa129ab2c4da612add9951bf99b447fe948d",
[
null,
{
@@ -377318,7 +377366,7 @@
]
],
"event-dispatch.tentative.html": [
- "bf5782d24fd2e957bd73235e0e1d8b2b1e7cd41d",
+ "770f9b00b1fd3db438f6d03f7c8535cf1d2e3684",
[
null,
{
@@ -392070,6 +392118,13 @@
{}
]
],
+ "transform-interpolation-computed-value.html": [
+ "80d2a37f4c9aaf6224d8f729214259157b0eefa7",
+ [
+ null,
+ {}
+ ]
+ ],
"transform-matrix-composition.html": [
"2586ff3d4a577b9c4b43a2841884c6f490d7ccf3",
[
@@ -439137,7 +439192,7 @@
},
"user-activation": {
"activation-api-click.tentative.html": [
- "7f170a04ab1c20702ad0ba282133b32046c6003b",
+ "2178863fbd2a3e101df69ef1a79e420327d7e96c",
[
null,
{
@@ -439145,8 +439200,8 @@
}
]
],
- "activation-api-iframe-no-activate.tenative.html": [
- "bd34518ba883d923067ff0921883387e73a42595",
+ "activation-api-iframe-no-activate.tentative.html": [
+ "46fd129459c5beb0cb10eb1df40d6764c3dbc98c",
[
null,
{
@@ -439154,8 +439209,8 @@
}
]
],
- "activation-api-iframe.tenative.html": [
- "16b0ba672bc4a27659efaa0fc24907e3f5925437",
+ "activation-api-iframe.tentative.html": [
+ "91fac9b246c6752bf33b036f6cab7bb1b9022e6c",
[
null,
{
@@ -439172,42 +439227,8 @@
}
]
],
- "activation-transfer-cross-origin-with-click-two-child-frames.sub.tentative.html": [
- "777cb5b11efe0ad664d34825bc6b5b69724f8c68",
- [
- null,
- {
- "testdriver": true
- }
- ]
- ],
- "activation-transfer-cross-origin-with-click.sub.tentative.html": [
- "ef1602a8c36a43b078950521a81c3747979d7b82",
- [
- null,
- {
- "testdriver": true
- }
- ]
- ],
- "activation-transfer-with-click.tentative.html": [
- "040d36c3190d228a7326ed0ea5dd46153f1b997b",
- [
- null,
- {
- "testdriver": true
- }
- ]
- ],
- "activation-transfer-without-click.tentative.html": [
- "a12d4346a8e3cb475bb7446f784a626e46cd1e26",
- [
- null,
- {}
- ]
- ],
"message-event-activation-api-iframe-cross-origin.sub.tentative.html": [
- "63a1da05d0005c33bec1af8a58e7f011d5b09d4c",
+ "79899cd521808902a4d45d83250341d28a7f0c37",
[
null,
{
@@ -441070,7 +441091,7 @@
]
],
"navigator_user_agent.https.html": [
- "0fb9e372b0dd6f5c6463430ee4012e5c040c4a80",
+ "9409dd08e4d0e7a351de45419c310cdcccc97c86",
[
null,
{}
@@ -444130,7 +444151,7 @@
]
],
"display-1.html": [
- "9ecd45f9a4087e41a98546d1afb6faca9d396403",
+ "1d842ccc274f4b79bb6bce9d44e6db346ade2dbe",
[
null,
{}
@@ -460296,6 +460317,176 @@
{}
]
],
+ "fcp-only": {
+ "fcp-background-size.html": [
+ "8cc83702c1fb8c411813ba23594c6ad39de09bd7",
+ [
+ null,
+ {}
+ ]
+ ],
+ "fcp-bg-image-set.html": [
+ "0cc52d0263e0239816ab075ae1ed90b2fd9a26c6",
+ [
+ null,
+ {}
+ ]
+ ],
+ "fcp-bg-image-two-steps.html": [
+ "4dc9af9da84fdb0dea6d39cf8dd50611de87c704",
+ [
+ null,
+ {}
+ ]
+ ],
+ "fcp-canvas-context.html": [
+ "18eb07bfdea11aa1c5eef9e77b5aeccd1b0c3332",
+ [
+ null,
+ {}
+ ]
+ ],
+ "fcp-gradient.html": [
+ "3a356f3dd1abf0f35c248fece3c877210162550b",
+ [
+ null,
+ {}
+ ]
+ ],
+ "fcp-invisible-3d-rotate-descendant.html": [
+ "76d459d0f40fcaa46e9561e76c99b4d4a17f157b",
+ [
+ null,
+ {}
+ ]
+ ],
+ "fcp-invisible-3d-rotate.html": [
+ "0b7fc325c5d200b8489d5d04ba26f86e62f35fae",
+ [
+ null,
+ {}
+ ]
+ ],
+ "fcp-invisible-scale-transition.html": [
+ "e0ac85ceb258a274ae2e48b1f0ff3d148e248e27",
+ [
+ null,
+ {}
+ ]
+ ],
+ "fcp-invisible-scale.html": [
+ "5389e8a846bf6c2844dd61fe3a4e0cb9344b4ffe",
+ [
+ null,
+ {}
+ ]
+ ],
+ "fcp-invisible-text.html": [
+ "e1b38712a63db192f6830136fc6a38aa6e5a44f8",
+ [
+ null,
+ {}
+ ]
+ ],
+ "fcp-opacity-descendant.html": [
+ "8ada49b767f011848de3b549d93c7573dd4b471c",
+ [
+ null,
+ {}
+ ]
+ ],
+ "fcp-opacity.html": [
+ "83afdde195b73eb7a348255da05594b1a2bc45a1",
+ [
+ null,
+ {}
+ ]
+ ],
+ "fcp-out-of-bounds-translate.html": [
+ "ee7975eec45267d5b29594ba5adf0df03d2a02e9",
+ [
+ null,
+ {}
+ ]
+ ],
+ "fcp-out-of-bounds.html": [
+ "3553772d4fc6b68c9769442129723a57e07aea16",
+ [
+ null,
+ {}
+ ]
+ ],
+ "fcp-overflow.html": [
+ "d7cc34663b7f846055ff5a6ca1d07fc1b4677464",
+ [
+ null,
+ {}
+ ]
+ ],
+ "fcp-pseudo-element-display.html": [
+ "50fd626e899940ba2d6d19344df41111feafd6f8",
+ [
+ null,
+ {}
+ ]
+ ],
+ "fcp-pseudo-element-image.html": [
+ "ba38edb68cbedf3157344cb9477c2e48fb1daea8",
+ [
+ null,
+ {}
+ ]
+ ],
+ "fcp-pseudo-element-opacity.html": [
+ "b209864d5d6e3c834ed09832196ece07cd692886",
+ [
+ null,
+ {}
+ ]
+ ],
+ "fcp-pseudo-element-text.html": [
+ "ea2105e45300c2477f9536e776e58c31561d95fd",
+ [
+ null,
+ {}
+ ]
+ ],
+ "fcp-pseudo-element-visibility.html": [
+ "c903c4721851eff36135ef1eeeaffd9cc5a9c46c",
+ [
+ null,
+ {}
+ ]
+ ],
+ "fcp-svg.html": [
+ "bcd2372cfc3b7374ecba7e4ee1cd077b3e51f798",
+ [
+ null,
+ {}
+ ]
+ ],
+ "fcp-video-frame.html": [
+ "fff38cd2c811937cac38c605e94402eab1e4e977",
+ [
+ null,
+ {}
+ ]
+ ],
+ "fcp-video-poster.html": [
+ "ed9cabcaeeb8c62687aee7ec4033650eeea3295c",
+ [
+ null,
+ {}
+ ]
+ ],
+ "fcp-whitespace.html": [
+ "6e1f425de80225931a517b6c839e7be23bf26f91",
+ [
+ null,
+ {}
+ ]
+ ]
+ },
"first-contentful-bg-image.html": [
"9c3b2200fb667f66925be4333a78b23914749617",
[
@@ -474542,7 +474733,14 @@
]
],
"scroll-animation.html": [
- "62e5bb854aa2cc7d564c258f58e05342ffb8b446",
+ "711314789b12a892b0ef342c35abec89c0da3b53",
+ [
+ null,
+ {}
+ ]
+ ],
+ "scroll-timeline-invalidation.html": [
+ "143943c4236725ab08a2d460f090f7b82c2e30db",
[
null,
{}
@@ -485881,7 +486079,7 @@
]
],
"svg-image-intrinsic-size-with-cssstyle-auto.html": [
- "6b49f62296433892913e74d0cc9c6bed7567fe31",
+ "0969e1e8e8f6d1df863acec29ead70c74bdf725d",
[
null,
{}
@@ -488347,6 +488545,97 @@
]
}
},
+ "sharedworker-classic-data.http-rp": {
+ "upgrade": {
+ "fetch.https.html": [
+ "b65bb8451f0f184a431620ba90fc4c5a117b0eb9",
+ [
+ null,
+ {
+ "timeout": "long"
+ }
+ ]
+ ],
+ "websocket.https.html": [
+ "f1933b620e9b60b4dbf54589eef8c164ccff4d4d",
+ [
+ null,
+ {
+ "timeout": "long"
+ }
+ ]
+ ],
+ "xhr.https.html": [
+ "026d771dd7f2eed34eacb4e743591f9ecfb6903f",
+ [
+ null,
+ {
+ "timeout": "long"
+ }
+ ]
+ ]
+ }
+ },
+ "sharedworker-classic-data.meta": {
+ "unset": {
+ "fetch.https.html": [
+ "95c36dab7034119665014c2d1404d254857dc17a",
+ [
+ null,
+ {
+ "timeout": "long"
+ }
+ ]
+ ],
+ "websocket.https.html": [
+ "116967e02074081ddbe0ee5176d9b745b43e4d23",
+ [
+ null,
+ {
+ "timeout": "long"
+ }
+ ]
+ ],
+ "xhr.https.html": [
+ "89ab0fe4ef9f8fa5151daa253f943652bccbf5a1",
+ [
+ null,
+ {
+ "timeout": "long"
+ }
+ ]
+ ]
+ },
+ "upgrade": {
+ "fetch.https.html": [
+ "eea46ce9648d52c3cbf64c2e9d44a041a34bfd19",
+ [
+ null,
+ {
+ "timeout": "long"
+ }
+ ]
+ ],
+ "websocket.https.html": [
+ "4347f0118885cf42eaeb2e7afc5199b3f732a568",
+ [
+ null,
+ {
+ "timeout": "long"
+ }
+ ]
+ ],
+ "xhr.https.html": [
+ "c0447cf3c021d6a7b5b439ed1d1b800d568e2385",
+ [
+ null,
+ {
+ "timeout": "long"
+ }
+ ]
+ ]
+ }
+ },
"sharedworker-classic.http-rp": {
"upgrade": {
"fetch.https.html": [
@@ -488378,6 +488667,97 @@
]
}
},
+ "sharedworker-module-data.http-rp": {
+ "upgrade": {
+ "fetch.https.html": [
+ "ea2320e6ce728ef5dfb3a12cf82de59decc9ff12",
+ [
+ null,
+ {
+ "timeout": "long"
+ }
+ ]
+ ],
+ "websocket.https.html": [
+ "124a03c37f4cc249708cf4f58bd7efc77c9257af",
+ [
+ null,
+ {
+ "timeout": "long"
+ }
+ ]
+ ],
+ "xhr.https.html": [
+ "b04b07adb5740fff3b9c22ae22c444189d753a92",
+ [
+ null,
+ {
+ "timeout": "long"
+ }
+ ]
+ ]
+ }
+ },
+ "sharedworker-module-data.meta": {
+ "unset": {
+ "fetch.https.html": [
+ "d6b8cdf41712c1c9edc4b5ba5c5e2b5eb62bdda7",
+ [
+ null,
+ {
+ "timeout": "long"
+ }
+ ]
+ ],
+ "websocket.https.html": [
+ "a4798e53a062c221e0d21b988a4a304377c52d80",
+ [
+ null,
+ {
+ "timeout": "long"
+ }
+ ]
+ ],
+ "xhr.https.html": [
+ "681c1cee442f6fa825727cbfd03fd0c1be837730",
+ [
+ null,
+ {
+ "timeout": "long"
+ }
+ ]
+ ]
+ },
+ "upgrade": {
+ "fetch.https.html": [
+ "b355fd0c14c2765bec501b73fd2258d2773460bd",
+ [
+ null,
+ {
+ "timeout": "long"
+ }
+ ]
+ ],
+ "websocket.https.html": [
+ "36bac646a02d69de9da34768698458ba335846f9",
+ [
+ null,
+ {
+ "timeout": "long"
+ }
+ ]
+ ],
+ "xhr.https.html": [
+ "befbb210fc88f7cb9cd041e4b8fe8ab82114f7aa",
+ [
+ null,
+ {
+ "timeout": "long"
+ }
+ ]
+ ]
+ }
+ },
"sharedworker-module.http-rp": {
"upgrade": {
"fetch.https.html": [
@@ -489485,6 +489865,97 @@
]
}
},
+ "worker-module-data.http-rp": {
+ "upgrade": {
+ "fetch.https.html": [
+ "a3fa13ecfd9cd997db80d523a481f7e586cf760b",
+ [
+ null,
+ {
+ "timeout": "long"
+ }
+ ]
+ ],
+ "websocket.https.html": [
+ "53dc448d6c497c673505ab8c44bac3efb3a50167",
+ [
+ null,
+ {
+ "timeout": "long"
+ }
+ ]
+ ],
+ "xhr.https.html": [
+ "1125fa454346c5897dba66c4b3dd6a72f5a9dd60",
+ [
+ null,
+ {
+ "timeout": "long"
+ }
+ ]
+ ]
+ }
+ },
+ "worker-module-data.meta": {
+ "unset": {
+ "fetch.https.html": [
+ "a3cd2146663d34f350d169a7de36c7c664639234",
+ [
+ null,
+ {
+ "timeout": "long"
+ }
+ ]
+ ],
+ "websocket.https.html": [
+ "27e0c78bb8e20de711d27a9bf159066a8e1be3d4",
+ [
+ null,
+ {
+ "timeout": "long"
+ }
+ ]
+ ],
+ "xhr.https.html": [
+ "cc450bfef7a0e55367d85228189f80c61a9e363c",
+ [
+ null,
+ {
+ "timeout": "long"
+ }
+ ]
+ ]
+ },
+ "upgrade": {
+ "fetch.https.html": [
+ "b50873f80858af44755b497e8bdfc06549255911",
+ [
+ null,
+ {
+ "timeout": "long"
+ }
+ ]
+ ],
+ "websocket.https.html": [
+ "0173f7986b03472771c1bddd115808188c9d8a4f",
+ [
+ null,
+ {
+ "timeout": "long"
+ }
+ ]
+ ],
+ "xhr.https.html": [
+ "cc0a17b9f1acd9ead23e96aeacedbba28e538508",
+ [
+ null,
+ {
+ "timeout": "long"
+ }
+ ]
+ ]
+ }
+ },
"worker-module-inherit.http-rp": {
"upgrade": {
"fetch.https.html": [
@@ -490574,25 +491045,28 @@
]
},
"wake-lock": {
- "idlharness.https.any.js": [
- "b5d764aee0d85e57b38ee5ff636d18e9c01c1dba",
+ "idlharness-worker.https.window.js": [
+ "c747ad6872a91a5ca81fb1e7ca73f72e4e987097",
[
- "wake-lock/idlharness.https.any.html",
+ "wake-lock/idlharness-worker.https.window.html",
{
"script_metadata": [
[
"script",
- "/resources/WebIDLParser.js"
+ "/resources/testdriver.js"
],
[
"script",
- "/resources/idlharness.js"
+ "/resources/testdriver-vendor.js"
]
]
}
- ],
+ ]
+ ],
+ "idlharness.https.window.js": [
+ "f9e3c02175d519f454c15109b30fa567709cee2d",
[
- "wake-lock/idlharness.https.any.worker.html",
+ "wake-lock/idlharness.https.window.html",
{
"script_metadata": [
[
@@ -490602,6 +491076,14 @@
[
"script",
"/resources/idlharness.js"
+ ],
+ [
+ "script",
+ "/resources/testdriver.js"
+ ],
+ [
+ "script",
+ "/resources/testdriver-vendor.js"
]
]
}
@@ -490622,7 +491104,7 @@
]
],
"wakelock-enabled-by-feature-policy-attribute-redirect-on-load.https.sub.html": [
- "18a2d7c6ba282e7f77487c6744563f9eb2002ac0",
+ "f28a96141c8994125b04c29e440743d2e7837544",
[
null,
{}
@@ -490636,17 +491118,21 @@
]
],
"wakelock-enabled-by-feature-policy.https.sub.html": [
- "8573f7aa63b8460f28dc174041f9a6a644468a89",
+ "d0f5a15c84bf83dfdaf801e8709d1d7c37f6d91a",
[
null,
- {}
+ {
+ "testdriver": true
+ }
]
],
"wakelock-enabled-on-self-origin-by-feature-policy.https.sub.html": [
- "308217022e1e5fc3e592798c25d4c12aef9c60b2",
+ "73f343867e62c46c4f6e5a4458a384ef652bafd1",
[
null,
- {}
+ {
+ "testdriver": true
+ }
]
],
"wakelock-insecure-context.any.js": [
@@ -493361,7 +493847,7 @@
]
],
"finished.html": [
- "563d4ba6dd4fbb91598302f6b64f418916168243",
+ "bee4fd8fb7a63137f45681dccc3b53d3570eefc8",
[
null,
{}
@@ -493424,7 +493910,7 @@
]
],
"ready.html": [
- "461c4e95814c2ff3e5e0211ef89a6dfdc05b0606",
+ "462e2a0484451e4cff1f0ffce84d2ea3bd7b456a",
[
null,
{}
@@ -505653,6 +506139,20 @@
{}
]
],
+ "WorkerNavigator_userAgentData.http.html": [
+ "e47e7e7ceba638eda3d946b420d817a7013aa217",
+ [
+ null,
+ {}
+ ]
+ ],
+ "WorkerNavigator_userAgentData.https.html": [
+ "91a63966c01fa30832b72bb16ce4c8926db716f9",
+ [
+ null,
+ {}
+ ]
+ ],
"WorkerPerformanceNow.html": [
"467dad44e2082aa5594b4e51eb8d418ebb2cb85b",
[
diff --git a/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-003.html.ini b/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-003.html.ini
new file mode 100644
index 00000000000..f29da48a2a0
--- /dev/null
+++ b/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-003.html.ini
@@ -0,0 +1,4 @@
+[hit-test-floats-003.html]
+ [Miss float below something else]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-004.html.ini b/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-004.html.ini
new file mode 100644
index 00000000000..4bfb0c2053a
--- /dev/null
+++ b/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-004.html.ini
@@ -0,0 +1,4 @@
+[hit-test-floats-004.html]
+ [Miss float below something else]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/css-transforms/animation/transform-interpolation-computed-value.html.ini b/tests/wpt/metadata/css/css-transforms/animation/transform-interpolation-computed-value.html.ini
new file mode 100644
index 00000000000..6f903e3fbd6
--- /dev/null
+++ b/tests/wpt/metadata/css/css-transforms/animation/transform-interpolation-computed-value.html.ini
@@ -0,0 +1,262 @@
+[transform-interpolation-computed-value.html]
+ [Interpolation between rotateX(0deg) and rotateX(90deg) gives the correct computed value halfway according to commitStyles.]
+ expected: FAIL
+
+ [Interpolation between translate3d(0,0,-50px) and translateZ(50px) gives the correct computed value halfway according to computedStyleMap with zoom active.]
+ expected: FAIL
+
+ [Interpolation between scaleY(1) and scaleY(2) gives the correct computed value halfway according to commitStyles.]
+ expected: FAIL
+
+ [Interpolation between rotateZ(30deg) and rotateZ(90deg) gives the correct computed value halfway according to computedStyleMap with zoom active.]
+ expected: FAIL
+
+ [Interpolation between rotate(30deg) and rotate(90deg) gives the correct computed value halfway according to computedStyleMap with zoom active.]
+ expected: FAIL
+
+ [Interpolation between scale3d(1, 2, 3) and scale3d(4, 5, 6) gives the correct computed value halfway according to commitStyles.]
+ expected: FAIL
+
+ [Interpolation between translateX(50px) and translateY(50px) gives the correct computed value halfway according to computedStyleMap with zoom active.]
+ expected: FAIL
+
+ [Interpolation between scale3d(1, 2, 3) and scale(4, 5) gives the correct computed value halfway according to computedStyleMap.]
+ expected: FAIL
+
+ [Interpolation between skewX(0deg) and skewX(180deg) gives the correct computed value halfway according to computedStyleMap.]
+ expected: FAIL
+
+ [Interpolation between scale(1, 2) and scale(3, 4) gives the correct computed value halfway according to computedStyleMap.]
+ expected: FAIL
+
+ [Interpolation between skewX(0deg) and skewX(90deg) gives the correct computed value halfway according to commitStyles.]
+ expected: FAIL
+
+ [Interpolation between scaleZ(1) and scaleZ(2) gives the correct computed value halfway according to computedStyleMap with zoom active.]
+ expected: FAIL
+
+ [Interpolation between scaleX(2) and scaleY(2) gives the correct computed value halfway according to computedStyleMap.]
+ expected: FAIL
+
+ [Interpolation between scaleZ(1) and scale(2) gives the correct computed value halfway according to commitStyles.]
+ expected: FAIL
+
+ [Interpolation between translateZ(-50px) and translateZ(50px) gives the correct computed value halfway according to commitStyles.]
+ expected: FAIL
+
+ [Interpolation between scaleX(2) and scaleY(3) gives the correct computed value halfway according to computedStyleMap with zoom active.]
+ expected: FAIL
+
+ [Interpolation between skew(0deg, 0deg) and skew(60deg, 60deg) gives the correct computed value halfway according to commitStyles.]
+ expected: FAIL
+
+ [Interpolation between translateZ(50px) and translateX(50px) gives the correct computed value halfway according to computedStyleMap.]
+ expected: FAIL
+
+ [Interpolation between scale(1, 2) and scale(3, 4) gives the correct computed value halfway according to computedStyleMap with zoom active.]
+ expected: FAIL
+
+ [Interpolation between rotate(30deg) and rotate(90deg) gives the correct computed value halfway according to commitStyles.]
+ expected: FAIL
+
+ [Interpolation between translateZ(50px) and translateX(50px) gives the correct computed value halfway according to commitStyles.]
+ expected: FAIL
+
+ [Interpolation between scaleZ(1) and scaleZ(2) gives the correct computed value halfway according to commitStyles.]
+ expected: FAIL
+
+ [Interpolation between scaleX(1) and scaleX(2) gives the correct computed value halfway according to computedStyleMap.]
+ expected: FAIL
+
+ [Interpolation between rotate(0deg) and rotateZ(90deg) gives the correct computed value halfway according to computedStyleMap.]
+ expected: FAIL
+
+ [Interpolation between skewX(0deg) and skewX(60deg) gives the correct computed value halfway according to commitStyles.]
+ expected: FAIL
+
+ [Interpolation between rotate(0deg) and rotateZ(90deg) gives the correct computed value halfway according to commitStyles.]
+ expected: FAIL
+
+ [Interpolation between rotate(0deg) and rotateX(90deg) gives the correct computed value halfway according to computedStyleMap.]
+ expected: FAIL
+
+ [Interpolation between scale3d(1, 2, 3) and scale3d(4, 5, 6) gives the correct computed value halfway according to computedStyleMap with zoom active.]
+ expected: FAIL
+
+ [Interpolation between scaleZ(1) and scale(2) gives the correct computed value halfway according to computedStyleMap.]
+ expected: FAIL
+
+ [Interpolation between translateX(0%) and translateX(50%) gives the correct computed value halfway according to computedStyleMap.]
+ expected: FAIL
+
+ [Interpolation between translateX(50px) and translateY(50px) gives the correct computed value halfway according to commitStyles.]
+ expected: FAIL
+
+ [Interpolation between translateX(0px) and translateX(50px) gives the correct computed value halfway according to computedStyleMap.]
+ expected: FAIL
+
+ [Interpolation between scaleX(1) and scaleX(2) gives the correct computed value halfway according to commitStyles.]
+ expected: FAIL
+
+ [Interpolation between translateX(50px) and translateZ(50px) gives the correct computed value halfway according to commitStyles.]
+ expected: FAIL
+
+ [Interpolation between skew(45deg, 0deg) and skew(0deg, 45deg) gives the correct computed value halfway according to commitStyles.]
+ expected: FAIL
+
+ [Interpolation between rotateZ(30deg) and rotateZ(90deg) gives the correct computed value halfway according to commitStyles.]
+ expected: FAIL
+
+ [Interpolation between translateY(0%) and translateX(50%) gives the correct computed value halfway according to commitStyles.]
+ expected: FAIL
+
+ [Interpolation between scale(1, 2) and scale3d(3, 4, 5) gives the correct computed value halfway according to computedStyleMap.]
+ expected: FAIL
+
+ [Interpolation between translateX(0%) and translateX(50%) gives the correct computed value halfway according to commitStyles.]
+ expected: FAIL
+
+ [Interpolation between skew(45deg, 0deg) and skew(0deg, 45deg) gives the correct computed value halfway according to computedStyleMap.]
+ expected: FAIL
+
+ [Interpolation between rotate(0deg) and rotateZ(90deg) gives the correct computed value halfway according to computedStyleMap with zoom active.]
+ expected: FAIL
+
+ [Interpolation between scaleX(2) and scaleY(2) gives the correct computed value halfway according to computedStyleMap with zoom active.]
+ expected: FAIL
+
+ [Interpolation between skewX(0deg) and skewX(60deg) gives the correct computed value halfway according to computedStyleMap.]
+ expected: FAIL
+
+ [Interpolation between rotateZ(30deg) and rotateZ(90deg) gives the correct computed value halfway according to computedStyleMap.]
+ expected: FAIL
+
+ [Interpolation between scale(1) and scale(2) gives the correct computed value halfway according to computedStyleMap with zoom active.]
+ expected: FAIL
+
+ [Interpolation between translateZ(-50px) and translateZ(50px) gives the correct computed value halfway according to computedStyleMap with zoom active.]
+ expected: FAIL
+
+ [Interpolation between scaleX(1) and scaleX(2) gives the correct computed value halfway according to computedStyleMap with zoom active.]
+ expected: FAIL
+
+ [Interpolation between scaleZ(1) and scaleZ(2) gives the correct computed value halfway according to computedStyleMap.]
+ expected: FAIL
+
+ [Interpolation between scale3d(1, 2, 3) and scale3d(4, 5, 6) gives the correct computed value halfway according to computedStyleMap.]
+ expected: FAIL
+
+ [Interpolation between rotate(0deg) and rotateX(90deg) gives the correct computed value halfway according to commitStyles.]
+ expected: FAIL
+
+ [Interpolation between translateX(50px) and translateY(50px) gives the correct computed value halfway according to computedStyleMap.]
+ expected: FAIL
+
+ [Interpolation between translateX(50px) and translateZ(50px) gives the correct computed value halfway according to computedStyleMap with zoom active.]
+ expected: FAIL
+
+ [Interpolation between translateX(0px) and translateX(50px) gives the correct computed value halfway according to commitStyles.]
+ expected: FAIL
+
+ [Interpolation between scaleY(1) and scaleY(2) gives the correct computed value halfway according to computedStyleMap with zoom active.]
+ expected: FAIL
+
+ [Interpolation between translateX(50px) and translateZ(50px) gives the correct computed value halfway according to computedStyleMap.]
+ expected: FAIL
+
+ [Interpolation between scale3d(1, 2, 3) and scale(4, 5) gives the correct computed value halfway according to computedStyleMap with zoom active.]
+ expected: FAIL
+
+ [Interpolation between skewX(0deg) and skewX(180deg) gives the correct computed value halfway according to commitStyles.]
+ expected: FAIL
+
+ [Interpolation between rotate(0deg) and rotateX(90deg) gives the correct computed value halfway according to computedStyleMap with zoom active.]
+ expected: FAIL
+
+ [Interpolation between translateY(0%) and translateX(50%) gives the correct computed value halfway according to computedStyleMap with zoom active.]
+ expected: FAIL
+
+ [Interpolation between skew(0deg, 0deg) and skew(60deg, 60deg) gives the correct computed value halfway according to computedStyleMap.]
+ expected: FAIL
+
+ [Interpolation between skewX(0deg) and skewX(90deg) gives the correct computed value halfway according to computedStyleMap with zoom active.]
+ expected: FAIL
+
+ [Interpolation between scale(1) and scale(2) gives the correct computed value halfway according to computedStyleMap.]
+ expected: FAIL
+
+ [Interpolation between scaleX(2) and scaleY(2) gives the correct computed value halfway according to commitStyles.]
+ expected: FAIL
+
+ [Interpolation between scale(1, 2) and scale3d(3, 4, 5) gives the correct computed value halfway according to commitStyles.]
+ expected: FAIL
+
+ [Interpolation between rotate(30deg) and rotate(90deg) gives the correct computed value halfway according to computedStyleMap.]
+ expected: FAIL
+
+ [Interpolation between rotateX(0deg) and rotateX(90deg) gives the correct computed value halfway according to computedStyleMap with zoom active.]
+ expected: FAIL
+
+ [Interpolation between translateZ(-50px) and translateZ(50px) gives the correct computed value halfway according to computedStyleMap.]
+ expected: FAIL
+
+ [Interpolation between skewX(0deg) and skewX(60deg) gives the correct computed value halfway according to computedStyleMap with zoom active.]
+ expected: FAIL
+
+ [Interpolation between translateY(0%) and translateX(50%) gives the correct computed value halfway according to computedStyleMap.]
+ expected: FAIL
+
+ [Interpolation between scale(1) and scale(2) gives the correct computed value halfway according to commitStyles.]
+ expected: FAIL
+
+ [Interpolation between translate3d(0,0,-50px) and translateZ(50px) gives the correct computed value halfway according to computedStyleMap.]
+ expected: FAIL
+
+ [Interpolation between scaleX(2) and scaleY(3) gives the correct computed value halfway according to commitStyles.]
+ expected: FAIL
+
+ [Interpolation between skewX(0deg) and skewX(180deg) gives the correct computed value halfway according to computedStyleMap with zoom active.]
+ expected: FAIL
+
+ [Interpolation between skew(0deg, 0deg) and skew(60deg, 60deg) gives the correct computed value halfway according to computedStyleMap with zoom active.]
+ expected: FAIL
+
+ [Interpolation between translateZ(50px) and translateX(50px) gives the correct computed value halfway according to computedStyleMap with zoom active.]
+ expected: FAIL
+
+ [Interpolation between translate3d(0,0,-50px) and translateZ(50px) gives the correct computed value halfway according to commitStyles.]
+ expected: FAIL
+
+ [Interpolation between rotateX(0deg) and rotateX(90deg) gives the correct computed value halfway according to computedStyleMap.]
+ expected: FAIL
+
+ [Interpolation between scale(1, 2) and scale(3, 4) gives the correct computed value halfway according to commitStyles.]
+ expected: FAIL
+
+ [Interpolation between scale3d(1, 2, 3) and scale(4, 5) gives the correct computed value halfway according to commitStyles.]
+ expected: FAIL
+
+ [Interpolation between scale(1, 2) and scale3d(3, 4, 5) gives the correct computed value halfway according to computedStyleMap with zoom active.]
+ expected: FAIL
+
+ [Interpolation between skewX(0deg) and skewX(90deg) gives the correct computed value halfway according to computedStyleMap.]
+ expected: FAIL
+
+ [Interpolation between skew(45deg, 0deg) and skew(0deg, 45deg) gives the correct computed value halfway according to computedStyleMap with zoom active.]
+ expected: FAIL
+
+ [Interpolation between scaleX(2) and scaleY(3) gives the correct computed value halfway according to computedStyleMap.]
+ expected: FAIL
+
+ [Interpolation between translateX(0px) and translateX(50px) gives the correct computed value halfway according to computedStyleMap with zoom active.]
+ expected: FAIL
+
+ [Interpolation between scaleY(1) and scaleY(2) gives the correct computed value halfway according to computedStyleMap.]
+ expected: FAIL
+
+ [Interpolation between translateX(0%) and translateX(50%) gives the correct computed value halfway according to computedStyleMap with zoom active.]
+ expected: FAIL
+
+ [Interpolation between scaleZ(1) and scale(2) gives the correct computed value halfway according to computedStyleMap with zoom active.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/cssom-view/elementFromPoint-001.html.ini b/tests/wpt/metadata/css/cssom-view/elementFromPoint-001.html.ini
deleted file mode 100644
index e38782d8c85..00000000000
--- a/tests/wpt/metadata/css/cssom-view/elementFromPoint-001.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[elementFromPoint-001.html]
- [CSSOM View - 5 - extensions to the Document interface]
- 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 60c2adeafb6..ac66a0c6f33 100644
--- a/tests/wpt/metadata/fetch/content-type/response.window.js.ini
+++ b/tests/wpt/metadata/fetch/content-type/response.window.js.ini
@@ -312,21 +312,27 @@
[fetch(): separate response Content-Type: text/plain ]
expected: NOTRUN
- [<iframe>: combined response Content-Type: text/html */*;charset=gbk]
+ [<iframe>: combined response Content-Type: text/html;" text/plain]
expected: FAIL
- [<iframe>: combined response Content-Type: text/html;" text/plain]
+ [<iframe>: combined response Content-Type: text/html */*]
expected: FAIL
- [<iframe>: combined response Content-Type: */* text/html]
+ [<iframe>: separate response Content-Type: text/html;x=" text/plain]
expected: FAIL
- [<iframe>: combined response Content-Type: text/html */*]
+ [<iframe>: separate 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/html */*;charset=gbk]
+ expected: FAIL
+
+ [<iframe>: separate response Content-Type: text/html */*]
+ expected: FAIL
+
+ [<iframe>: separate response Content-Type: text/plain */*]
expected: FAIL
- [<iframe>: combined response Content-Type: text/html;" \\" text/plain]
+ [<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
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 aa6eb8f6085..30e1b851fd4 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,3 @@
[X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!]
expected: FAIL
- [X-Content-Type-Options%3A%20'NosniFF']
- expected: FAIL
-
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/interaction/focus/the-autofocus-attribute/supported-elements.html.ini b/tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini
index 6b68e9094e4..f1aa94c7ced 100644
--- a/tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini
+++ b/tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini
@@ -1,4 +1,5 @@
[supported-elements.html]
+ expected: TIMEOUT
[Contenteditable element should support autofocus]
expected: FAIL
@@ -6,11 +7,14 @@
expected: FAIL
[Host element with delegatesFocus including no focusable descendants should be skipped]
- expected: FAIL
+ expected: NOTRUN
[Area element should support autofocus]
- expected: FAIL
+ expected: NOTRUN
[Host element with delegatesFocus should support autofocus]
- expected: FAIL
+ expected: NOTRUN
+
+ [Non-HTMLElement should not support autofocus]
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata/html/user-activation/activation-transfer-without-click.tentative.html.ini b/tests/wpt/metadata/html/user-activation/activation-transfer-without-click.tentative.html.ini
deleted file mode 100644
index 3d959ddd896..00000000000
--- a/tests/wpt/metadata/html/user-activation/activation-transfer-without-click.tentative.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[activation-transfer-without-click.tentative.html]
- [User activation transfer from inactive frame]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-multi-channels.html.ini b/tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-multi-channels.html.ini
index 30a626f8146..661dd318a19 100644
--- a/tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-multi-channels.html.ini
+++ b/tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-multi-channels.html.ini
@@ -71,3 +71,6 @@
[X Rendered audio for channel 5 does not equal [0,0.0626220703125,0.125030517578125,0.18695068359375,0.24810791015625,0.308319091796875,0.3673095703125,0.42486572265625,0.480743408203125,0.53472900390625,0.58660888671875,0.636199951171875,0.68328857421875,0.727691650390625,0.76922607421875,0.8077392578125...\] with an element-wise tolerance of {"absoluteThreshold":0.000030517578125,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[1\]\t3.6732959747314453e-1\t6.2622070312500000e-2\t3.0470752716064453e-1\t4.8658168859649127e+0\t3.0517578125000000e-5\n\t[2\]\t6.8329977989196777e-1\t1.2503051757812500e-1\t5.5826926231384277e-1\t4.4650639949963384e+0\t3.0517578125000000e-5\n\t[3\]\t9.0373212099075317e-1\t1.8695068359375000e-1\t7.1678143739700317e-1\t3.8340669508039502e+0\t3.0517578125000000e-5\n\t[4\]\t9.9780619144439697e-1\t2.4810791015625000e-1\t7.4969828128814697e-1\t3.0216621502152523e+0\t3.0517578125000000e-5\n\t[5\]\t9.5236867666244507e-1\t3.0831909179687500e-1\t6.4404958486557007e-1\t2.0889059484187866e+0\t3.0517578125000000e-5\n\t...and 35232 more errors.\n\tMax AbsError of 1.9999977350234985e+0 at index of 19181.\n\t[19181\]\t9.9999773502349854e-1\t-1.0000000000000000e+0\t1.9999977350234985e+0\t1.9999977350234985e+0\t3.0517578125000000e-5\n\tMax RelError of Infinity at index of 15876.\n\t[15876\]\t5.8778524398803711e-1\t0.0000000000000000e+0\t5.8778524398803711e-1\tInfinity\t3.0517578125000000e-5\n]
expected: FAIL
+ [X Rendered audio for channel 5 does not equal [0,0.0626220703125,0.125030517578125,0.18695068359375,0.24810791015625,0.308319091796875,0.3673095703125,0.42486572265625,0.480743408203125,0.53472900390625,0.58660888671875,0.636199951171875,0.68328857421875,0.727691650390625,0.76922607421875,0.8077392578125...\] with an element-wise tolerance of {"absoluteThreshold":0.000030517578125,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[1\]\t3.6732959747314453e-1\t6.2622070312500000e-2\t3.0470752716064453e-1\t4.8658168859649127e+0\t3.0517578125000000e-5\n\t[2\]\t6.8329977989196777e-1\t1.2503051757812500e-1\t5.5826926231384277e-1\t4.4650639949963384e+0\t3.0517578125000000e-5\n\t[3\]\t9.0373212099075317e-1\t1.8695068359375000e-1\t7.1678143739700317e-1\t3.8340669508039502e+0\t3.0517578125000000e-5\n\t[4\]\t9.9780619144439697e-1\t2.4810791015625000e-1\t7.4969828128814697e-1\t3.0216621502152523e+0\t3.0517578125000000e-5\n\t[5\]\t9.5236867666244507e-1\t3.0831909179687500e-1\t6.4404958486557007e-1\t2.0889059484187866e+0\t3.0517578125000000e-5\n\t...and 44046 more errors.\n\tMax AbsError of 1.9961981773376465e+0 at index of 38383.\n\t[38383\]\t-9.9879217147827148e-1\t9.9740600585937500e-1\t1.9961981773376465e+0\t2.0013897706758867e+0\t3.0517578125000000e-5\n\tMax RelError of Infinity at index of 15876.\n\t[15876\]\t5.8778524398803711e-1\t0.0000000000000000e+0\t5.8778524398803711e-1\tInfinity\t3.0517578125000000e-5\n]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini b/tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini
index 195650274d3..bb9dc16b484 100644
--- a/tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini
+++ b/tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini
@@ -233,3 +233,9 @@
[X Stitched sine-wave buffers at sample rate 44100 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...\] with an element-wise tolerance of {"absoluteThreshold":0.000090957,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[31080\]\t1.3060499448206951e-19\t5.6332010030746460e-1\t5.6332010030746460e-1\t1.0000000000000000e+0\t9.0957000000000003e-5\n\t[31081\]\t4.5902333795888033e-41\t6.1397600173950195e-1\t6.1397600173950195e-1\t1.0000000000000000e+0\t9.0957000000000003e-5\n\tMax AbsError of 6.1397600173950195e-1 at index of 31081.\n\tMax RelError of 1.0000000000000000e+0 at index of 31080.\n]
expected: FAIL
+ [X SNR (44.952263867341635 dB) is not greater than or equal to 85.58. Got 44.952263867341635.]
+ expected: FAIL
+
+ [X Stitched sine-wave buffers at sample rate 44100 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...\] with an element-wise tolerance of {"absoluteThreshold":0.000090957,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[31080\]\t-9.4121694564819336e-3\t5.6332010030746460e-1\t5.7273226976394653e-1\t1.0167083856076584e+0\t9.0957000000000003e-5\n\t[31081\]\t4.5714559801668507e-41\t6.1397600173950195e-1\t6.1397600173950195e-1\t1.0000000000000000e+0\t9.0957000000000003e-5\n\tMax AbsError of 6.1397600173950195e-1 at index of 31081.\n\tMax RelError of 1.0167083856076584e+0 at index of 31080.\n]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/webmessaging/with-ports/017.html.ini b/tests/wpt/metadata/webmessaging/with-ports/017.html.ini
deleted file mode 100644
index 064cf47545b..00000000000
--- a/tests/wpt/metadata/webmessaging/with-ports/017.html.ini
+++ /dev/null
@@ -1,5 +0,0 @@
-[017.html]
- expected: TIMEOUT
- [origin of the script that invoked the method, about:blank]
- expected: TIMEOUT
-
diff --git a/tests/wpt/metadata/webmessaging/without-ports/018.html.ini b/tests/wpt/metadata/webmessaging/without-ports/018.html.ini
new file mode 100644
index 00000000000..663a1f8fa30
--- /dev/null
+++ b/tests/wpt/metadata/webmessaging/without-ports/018.html.ini
@@ -0,0 +1,5 @@
+[018.html]
+ expected: TIMEOUT
+ [origin of the script that invoked the method, javascript:]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/workers/WorkerNavigator_userAgentData.https.html.ini b/tests/wpt/metadata/workers/WorkerNavigator_userAgentData.https.html.ini
new file mode 100644
index 00000000000..69664a25c04
--- /dev/null
+++ b/tests/wpt/metadata/workers/WorkerNavigator_userAgentData.https.html.ini
@@ -0,0 +1,4 @@
+[WorkerNavigator_userAgentData.https.html]
+ [Test that userAgentData is available in workers in secure contexts]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/workers/shared-worker-in-data-url-context.window.js.ini b/tests/wpt/metadata/workers/shared-worker-in-data-url-context.window.js.ini
index daa7a8c41bc..10dda3a6659 100644
--- a/tests/wpt/metadata/workers/shared-worker-in-data-url-context.window.js.ini
+++ b/tests/wpt/metadata/workers/shared-worker-in-data-url-context.window.js.ini
@@ -1,8 +1,7 @@
[shared-worker-in-data-url-context.window.html]
- expected: TIMEOUT
[Create a shared worker in a data url frame]
expected: FAIL
[Create a data url shared worker in a data url frame]
- expected: TIMEOUT
+ expected: FAIL
diff --git a/tests/wpt/web-platform-tests/common/security-features/tools/generate.py b/tests/wpt/web-platform-tests/common/security-features/tools/generate.py
index 75b7c1da5ac..7710a824b2d 100755
--- a/tests/wpt/web-platform-tests/common/security-features/tools/generate.py
+++ b/tests/wpt/web-platform-tests/common/security-features/tools/generate.py
@@ -198,8 +198,13 @@ def generate_test_file(spec_directory, test_helper_filenames,
parameters = {}
- parameters['scenarios'] = dump_test_parameters(scenarios).replace(
- "\n", "\n" + " " * 8)
+ # Sort scenarios, to avoid unnecessary diffs due to different orders in
+ # `scenarios`.
+ serialized_scenarios = sorted(
+ [dump_test_parameters(scenario) for scenario in scenarios])
+
+ parameters['scenarios'] = ",\n".join(serialized_scenarios).replace(
+ "\n", "\n" + " " * 10)
test_directory = os.path.dirname(test_filename)
diff --git a/tests/wpt/web-platform-tests/common/security-features/tools/template/test.debug.html.template b/tests/wpt/web-platform-tests/common/security-features/tools/template/test.debug.html.template
index 7650f02c286..b6be088f611 100644
--- a/tests/wpt/web-platform-tests/common/security-features/tools/template/test.debug.html.template
+++ b/tests/wpt/web-platform-tests/common/security-features/tools/template/test.debug.html.template
@@ -15,7 +15,9 @@
<body>
<script>
TestCase(
- %(scenarios)s,
+ [
+ %(scenarios)s
+ ],
new SanityChecker()
).start();
</script>
diff --git a/tests/wpt/web-platform-tests/common/security-features/tools/template/test.release.html.template b/tests/wpt/web-platform-tests/common/security-features/tools/template/test.release.html.template
index 71d83f83a26..bac2d5b5a4d 100644
--- a/tests/wpt/web-platform-tests/common/security-features/tools/template/test.release.html.template
+++ b/tests/wpt/web-platform-tests/common/security-features/tools/template/test.release.html.template
@@ -11,7 +11,9 @@
<body>
<script>
TestCase(
- %(scenarios)s,
+ [
+ %(scenarios)s
+ ],
new SanityChecker()
).start();
</script>
diff --git a/tests/wpt/web-platform-tests/css/css-animations/CSSAnimation-effect.tentative.html b/tests/wpt/web-platform-tests/css/css-animations/CSSAnimation-effect.tentative.html
index 5e2d18b5bf9..fadcaa129ab 100644
--- a/tests/wpt/web-platform-tests/css/css-animations/CSSAnimation-effect.tentative.html
+++ b/tests/wpt/web-platform-tests/css/css-animations/CSSAnimation-effect.tentative.html
@@ -26,7 +26,8 @@ promise_test(async t => {
div.style.animation = 'anim 100s';
const watcher = new EventWatcher(t, div, [ 'animationend',
- 'animationcancel' ]);
+ 'animationcancel' ],
+ fastEventsTimeout);
const animation = div.getAnimations()[0];
await animation.ready;
@@ -90,7 +91,8 @@ promise_test(async t => {
const div1 = addDiv(t);
const div2 = addDiv(t);
- const watcher1 = new EventWatcher(t, div1, 'animationstart');
+ const watcher1 = new EventWatcher(t, div1, 'animationstart',
+ fastEventsTimeout);
// Watch |div2| as well to ensure it does *not* get events.
const watcher2 = new EventWatcher(t, div2, 'animationstart');
@@ -114,7 +116,8 @@ promise_test(async t => {
const div = addDiv(t);
const watcher = new EventWatcher(t, div, [ 'animationstart',
'animationend',
- 'animationcancel' ]);
+ 'animationcancel' ],
+ fastEventsTimeout);
div.style.animation = 'anim 100s';
const animation = div.getAnimations()[0];
animation.finish();
diff --git a/tests/wpt/web-platform-tests/css/css-animations/event-dispatch.tentative.html b/tests/wpt/web-platform-tests/css/css-animations/event-dispatch.tentative.html
index bf5782d24fd..770f9b00b1f 100644
--- a/tests/wpt/web-platform-tests/css/css-animations/event-dispatch.tentative.html
+++ b/tests/wpt/web-platform-tests/css/css-animations/event-dispatch.tentative.html
@@ -21,7 +21,8 @@ const setupAnimation = (t, animationStyle) => {
const watcher = new EventWatcher(t, div, [ 'animationstart',
'animationiteration',
'animationend',
- 'animationcancel' ]);
+ 'animationcancel' ],
+ fastEventsTimeout);
const animation = div.getAnimations()[0];
return { animation, watcher, div };
diff --git a/tests/wpt/web-platform-tests/css/css-animations/support/testcommon.js b/tests/wpt/web-platform-tests/css/css-animations/support/testcommon.js
index 7d63d2c49bc..e26a7a1858a 100644
--- a/tests/wpt/web-platform-tests/css/css-animations/support/testcommon.js
+++ b/tests/wpt/web-platform-tests/css/css-animations/support/testcommon.js
@@ -192,6 +192,15 @@ function waitForAnimationFrames(frameCount, onFrame) {
}
/**
+ * Timeout function used for tests with EventWatchers when all animation events
+ * should be received on the next animation frame. If two frames pass before
+ * receiving the expected events, then we can immediate fail the test.
+ */
+function fastEventsTimeout() {
+ return waitForAnimationFrames(2);
+};
+
+/**
* Wrapper that takes a sequence of N animations and returns:
*
* Promise.all([animations[0].ready, animations[1].ready, ... animations[N-1].ready]);
diff --git a/tests/wpt/web-platform-tests/css/css-transforms/animation/transform-interpolation-computed-value.html b/tests/wpt/web-platform-tests/css/css-transforms/animation/transform-interpolation-computed-value.html
new file mode 100644
index 00000000000..80d2a37f4c9
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-transforms/animation/transform-interpolation-computed-value.html
@@ -0,0 +1,80 @@
+<!DOCTYPE html>
+<meta charset="UTF-8">
+<title>transform interpolation</title>
+<link rel="help" href="https://drafts.csswg.org/css-transforms/#interpolation-of-transform-functions">
+<meta name="assert" content="transform gives the correct computed values when interpolated">
+
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/web-animations/testcommon.js"></script>
+
+<body>
+<script>
+function interpolation_test(from, to, expected_50) {
+ test(t => {
+ let div = createDiv(t);
+ let anim = div.animate({transform: [from, to]}, 2000);
+ anim.pause();
+ anim.currentTime = 1000;
+ let halfway = div.computedStyleMap().get('transform').toString();
+ assert_equals(halfway, expected_50, "The value at 50% progress is as expected");
+ }, "Interpolation between " + from + " and " + to + " gives the correct " +
+ "computed value halfway according to computedStyleMap.");
+
+ test(t => {
+ let div = createDiv(t);
+ div.style.zoom = 1.25;
+ let anim = div.animate({transform: [from, to]}, 2000);
+ anim.pause();
+ anim.currentTime = 1000;
+ let halfway = div.computedStyleMap().get('transform').toString();
+ assert_equals(halfway, expected_50, "The value at 50% progress is as expected");
+ }, "Interpolation between " + from + " and " + to + " gives the correct " +
+ "computed value halfway according to computedStyleMap with zoom active.");
+
+ test(t => {
+ let div = createDiv(t);
+ let anim = div.animate({transform: [from, to]}, 2000);
+ anim.pause();
+ anim.currentTime = 1000;
+ anim.commitStyles()
+ let halfway = div.style.transform;
+ assert_equals(halfway, expected_50, "The value at 50% progress is as expected");
+ }, "Interpolation between " + from + " and " + to + " gives the correct " +
+ "computed value halfway according to commitStyles.");
+}
+
+interpolation_test('translateX(0px)', 'translateX(50px)', 'translateX(25px)');
+interpolation_test('translateX(0%)', 'translateX(50%)', 'translateX(25%)');
+interpolation_test('translateY(0%)', 'translateX(50%)', 'translate(25%, 0px)');
+interpolation_test('translateX(50px)', 'translateY(50px)', 'translate(25px, 25px)');
+interpolation_test('translateX(50px)', 'translateZ(50px)', 'translate3d(25px, 0px, 25px)');
+interpolation_test('translateZ(50px)', 'translateX(50px)', 'translate3d(25px, 0px, 25px)');
+interpolation_test('translateZ(-50px)','translateZ(50px)', 'translateZ(0px)');
+interpolation_test('translate3d(0,0,-50px)','translateZ(50px)', 'translate3d(0px, 0px, 0px)');
+
+interpolation_test('rotate(30deg)', 'rotate(90deg)', 'rotate(60deg)');
+interpolation_test('rotateZ(30deg)', 'rotateZ(90deg)', 'rotateZ(60deg)');
+interpolation_test('rotate(0deg)', 'rotateZ(90deg)', 'rotate3d(0, 0, 1, 45deg)');
+interpolation_test('rotateX(0deg)','rotateX(90deg)', 'rotateX(45deg)');
+interpolation_test('rotate(0deg)', 'rotateX(90deg)', 'rotate3d(1, 0, 0, 45deg)');
+
+interpolation_test('scale(1)', 'scale(2)', 'scale(1.5)');
+interpolation_test('scaleX(1)', 'scaleX(2)', 'scaleX(1.5)');
+interpolation_test('scaleY(1)', 'scaleY(2)', 'scaleY(1.5)');
+interpolation_test('scaleZ(1)', 'scaleZ(2)', 'scaleZ(1.5)');
+interpolation_test('scaleX(2)', 'scaleY(2)', 'scale(1.5)');
+interpolation_test('scaleX(2)', 'scaleY(3)', 'scale(1.5, 2)');
+interpolation_test('scaleZ(1)', 'scale(2)', 'scale3d(1.5, 1.5, 1)');
+interpolation_test('scale(1, 2)', 'scale(3, 4)', 'scale(2, 3)');
+interpolation_test('scale3d(1, 2, 3)', 'scale3d(4, 5, 6)', 'scale3d(2.5, 3.5, 4.5)');
+interpolation_test('scale3d(1, 2, 3)', 'scale(4, 5)', 'scale3d(2.5, 3.5, 2)');
+interpolation_test('scale(1, 2)', 'scale3d(3, 4, 5)', 'scale3d(2, 3, 3)');
+
+interpolation_test('skewX(0deg)', 'skewX(60deg)', 'skewX(30deg)');
+interpolation_test('skewX(0deg)', 'skewX(90deg)', 'skewX(45deg)');
+interpolation_test('skewX(0deg)', 'skewX(180deg)', 'skewX(90deg)');
+interpolation_test('skew(0deg, 0deg)', 'skew(60deg, 60deg)', 'skew(30deg, 30deg)');
+interpolation_test('skew(45deg, 0deg)', 'skew(0deg, 45deg)', 'skew(22.5deg, 22.5deg)');
+
+</script>
diff --git a/tests/wpt/web-platform-tests/feature-policy/resources/feature-policy-wakelock.html b/tests/wpt/web-platform-tests/feature-policy/resources/feature-policy-wakelock.html
index fac421c09fa..7d3dab45af1 100644
--- a/tests/wpt/web-platform-tests/feature-policy/resources/feature-policy-wakelock.html
+++ b/tests/wpt/web-platform-tests/feature-policy/resources/feature-policy-wakelock.html
@@ -1,8 +1,13 @@
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
<script>
"use strict";
Promise.resolve().then(async () => {
try {
+ await test_driver.set_permission(
+ { name: 'wake-lock', type: 'screen' }, 'granted', false);
+
const wakeLock = await navigator.wakeLock.request("screen");
await wakeLock.release();
window.parent.postMessage({ enabled: true }, "*");
diff --git a/tests/wpt/web-platform-tests/html/user-activation/activation-api-click.tentative.html b/tests/wpt/web-platform-tests/html/user-activation/activation-api-click.tentative.html
index 7f170a04ab1..2178863fbd2 100644
--- a/tests/wpt/web-platform-tests/html/user-activation/activation-api-click.tentative.html
+++ b/tests/wpt/web-platform-tests/html/user-activation/activation-api-click.tentative.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<!--
Tentative due to:
- https://github.com/whatwg/html/issues/1983
+ https://github.com/whatwg/html/issues/1983
-->
<html>
<head>
diff --git a/tests/wpt/web-platform-tests/html/user-activation/activation-api-iframe-no-activate.tenative.html b/tests/wpt/web-platform-tests/html/user-activation/activation-api-iframe-no-activate.tentative.html
index bd34518ba88..46fd129459c 100644
--- a/tests/wpt/web-platform-tests/html/user-activation/activation-api-iframe-no-activate.tenative.html
+++ b/tests/wpt/web-platform-tests/html/user-activation/activation-api-iframe-no-activate.tentative.html
@@ -1,8 +1,7 @@
<!DOCTYPE html>
<!--
Tentative due to:
- https://github.com/whatwg/html/issues/3739
-
+ https://github.com/whatwg/html/issues/1983
-->
<html>
<head>
@@ -16,7 +15,9 @@
<ol id="instructions">
<li>Click this instruction text.
</ol>
- <iframe id="child" width="200" height="200"></iframe>
+ <iframe id="child" width="200" height="200"
+ src="resources/child-one.html">
+ </iframe>
<script>
async_test(function(t) {
var child = document.getElementById("child");
@@ -25,33 +26,32 @@
window.addEventListener("message", t.step_func(event => {
var msg = JSON.parse(event.data);
if (msg.type == 'child-one-loaded') {
- // state should be false after load
+ // Child's states should be false after load.
assert_false(msg.isActive);
assert_false(msg.hasBeenActive);
- // click in parent document
+ // Click in parent document.
test_driver.click(document.getElementById('instructions'));
} else if (msg.type == 'child-one-report') {
- // only the transient state should be false after asked to report
+ // Only the transient state in child should be false after consumption below.
assert_false(msg.isActive);
assert_true(msg.hasBeenActive);
t.done();
}
}));
window.addEventListener("click", t.step_func(event => {
- assert_true(navigator.userActivation.isActive);
- assert_true(navigator.userActivation.hasBeenActive);
+ assert_true(navigator.userActivation.isActive);
+ assert_true(navigator.userActivation.hasBeenActive);
- // Opening a window should consume the activation.
- var win = window.open('404.html');
- win.close();
- assert_false(navigator.userActivation.isActive);
- assert_true(navigator.userActivation.hasBeenActive);
+ // Opening a window should consume the activation.
+ var win = window.open('404.html');
+ win.close();
+ assert_false(navigator.userActivation.isActive);
+ assert_true(navigator.userActivation.hasBeenActive);
- // ask child to report their state
- child.contentWindow.postMessage('report', '*');
+ // Ask child to report its state.
+ child.contentWindow.postMessage(JSON.stringify({"type": "report"}), '*');
}));
- child.src = "resources/child-one.html";
}, "Values adjust on activity");
</script>
</body>
diff --git a/tests/wpt/web-platform-tests/html/user-activation/activation-api-iframe.tenative.html b/tests/wpt/web-platform-tests/html/user-activation/activation-api-iframe.tentative.html
index 16b0ba672bc..91fac9b246c 100644
--- a/tests/wpt/web-platform-tests/html/user-activation/activation-api-iframe.tenative.html
+++ b/tests/wpt/web-platform-tests/html/user-activation/activation-api-iframe.tentative.html
@@ -1,8 +1,7 @@
<!DOCTYPE html>
<!--
Tentative due to:
- https://github.com/whatwg/html/issues/3739
-
+ https://github.com/whatwg/html/issues/1983
-->
<html>
<head>
@@ -14,9 +13,11 @@
<body>
<h1>Clicking in iframe has activation state in child</h1>
<ol id="instructions">
- <li>Click inside the light-grey area.
+ <li>Click inside the yellow area.
</ol>
- <iframe id="child" width="200" height="200"></iframe>
+ <iframe id="child" width="200" height="200"
+ src="resources/child-one.html">
+ </iframe>
<script>
async_test(function(t) {
var child = document.getElementById("child");
@@ -45,7 +46,6 @@
t.done();
}
}));
- child.src = "resources/child-one.html";
}, "Values adjust on activity");
</script>
</body>
diff --git a/tests/wpt/web-platform-tests/html/user-activation/activation-transfer-cross-origin-with-click-two-child-frames.sub.tentative.html b/tests/wpt/web-platform-tests/html/user-activation/activation-transfer-cross-origin-with-click-two-child-frames.sub.tentative.html
deleted file mode 100644
index 777cb5b11ef..00000000000
--- a/tests/wpt/web-platform-tests/html/user-activation/activation-transfer-cross-origin-with-click-two-child-frames.sub.tentative.html
+++ /dev/null
@@ -1,90 +0,0 @@
-<!DOCTYPE html>
-<!--
- Tentative due to:
- https://github.com/whatwg/html/issues/4364
-
--->
-<html>
-<head>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="/resources/testdriver.js"></script>
-<script src="/resources/testdriver-vendor.js"></script>
-</head>
-<body>
- <h1>User activation can be transferred to a cross-origin child frame
- via a postMessage option.</h1>
- <ol id="instructions">
- <li>Click this instruction text.
- </ol>
- <iframe id="child1" width="200" height="200"></iframe>
- <iframe id="child2" width="200" height="200"></iframe>
- <script>
- async_test(function(t) {
- var child1 = document.getElementById("child1");
- var child2 = document.getElementById("child2");
- var is_child_four_loaded = false;
- var is_child_two_loaded = false;
- assert_false(navigator.userActivation.isActive);
- assert_false(navigator.userActivation.hasBeenActive);
-
- function tryClickInstructions() {
- if (is_child_four_loaded && is_child_two_loaded)
- test_driver.click(document.getElementById('instructions'));
- }
-
- window.addEventListener("message", t.step_func(event => {
- var msg = JSON.parse(event.data);
- if (msg.type == 'child-four-loaded') {
- // state should be false after load
- assert_false(msg.isActive);
- assert_false(msg.hasBeenActive);
-
- // click in parent document after both child frames load
- is_child_four_loaded = true;
- tryClickInstructions();
- } else if (msg.type == 'child-four-report') {
- assert_true(msg.isActive);
- assert_true(msg.hasBeenActive);
-
- // check sender's activation state again
- assert_false(navigator.userActivation.isActive);
- assert_false(navigator.userActivation.hasBeenActive);
-
- child2.contentWindow.postMessage('report', '*');
- } else if (msg.type == 'child-two-loaded') {
- // state should be false after load
- assert_false(msg.isActive);
- assert_false(msg.hasBeenActive);
-
- // click in parent document after both child frames load
- is_child_two_loaded = true;
- tryClickInstructions();
- } else if (msg.type == 'child-two-report') {
- assert_false(msg.isActive);
- assert_false(msg.hasBeenActive);
-
- // check sender's activation state again
- assert_false(navigator.userActivation.isActive);
- assert_false(navigator.userActivation.hasBeenActive);
- t.done();
- }
- }));
- window.addEventListener("click", t.step_func(event => {
- assert_true(navigator.userActivation.isActive);
- assert_true(navigator.userActivation.hasBeenActive);
-
- // transfer user activation to the child frame
- child1.contentWindow.postMessage("report",
- {targetOrigin: "*", transferUserActivation: true});
-
- // sender's activation state is updated synchronously
- assert_false(navigator.userActivation.isActive);
- assert_false(navigator.userActivation.hasBeenActive);
- }));
- child1.src = "http://{{domains[www]}}:{{ports[http][0]}}/html/user-activation/resources/child-four.html";
- child2.src = "http://{{domains[www1]}}:{{ports[http][0]}}/html/user-activation/resources/child-two.html";
- }, "Cross-origin user activation transfer through postMessages");
- </script>
-</body>
-</html>
diff --git a/tests/wpt/web-platform-tests/html/user-activation/activation-transfer-cross-origin-with-click.sub.tentative.html b/tests/wpt/web-platform-tests/html/user-activation/activation-transfer-cross-origin-with-click.sub.tentative.html
deleted file mode 100644
index ef1602a8c36..00000000000
--- a/tests/wpt/web-platform-tests/html/user-activation/activation-transfer-cross-origin-with-click.sub.tentative.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!DOCTYPE html>
-<!--
- Tentative due to:
- https://github.com/whatwg/html/issues/4364
-
--->
-<html>
-<head>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="/resources/testdriver.js"></script>
-<script src="/resources/testdriver-vendor.js"></script>
-</head>
-<body>
- <h1>User activation can be transferred to a cross-origin child frame
- via a postMessage option.</h1>
- <ol id="instructions">
- <li>Click this instruction text.
- </ol>
- <iframe id="child" width="200" height="200"></iframe>
- <script>
- async_test(function(t) {
- var child = document.getElementById("child");
- assert_false(navigator.userActivation.isActive);
- assert_false(navigator.userActivation.hasBeenActive);
-
- window.addEventListener("message", t.step_func(event => {
- var msg = JSON.parse(event.data);
- if (msg.type == 'child-four-loaded') {
- // state should be false after load
- assert_false(msg.isActive);
- assert_false(msg.hasBeenActive);
-
- // click in parent document
- test_driver.click(document.getElementById('instructions'));
- } else if (msg.type == 'child-four-report') {
- assert_true(msg.isActive);
- assert_true(msg.hasBeenActive);
-
- // check sender's activation state again
- assert_false(navigator.userActivation.isActive);
- assert_false(navigator.userActivation.hasBeenActive);
- t.done();
- }
- }));
- window.addEventListener("click", t.step_func(event => {
- assert_true(navigator.userActivation.isActive);
- assert_true(navigator.userActivation.hasBeenActive);
-
- // transfer user activation to the child frame
- child.contentWindow.postMessage("report",
- {targetOrigin: "*", transferUserActivation: true});
-
- // sender's activation state is updated synchronously
- assert_false(navigator.userActivation.isActive);
- assert_false(navigator.userActivation.hasBeenActive);
- }));
- child.src = "http://{{domains[www]}}:{{ports[http][0]}}/html/user-activation/resources/child-four.html";
- }, "Cross-origin user activation transfer through postMessages");
- </script>
-</body>
-</html>
diff --git a/tests/wpt/web-platform-tests/html/user-activation/activation-transfer-with-click.tentative.html b/tests/wpt/web-platform-tests/html/user-activation/activation-transfer-with-click.tentative.html
deleted file mode 100644
index 040d36c3190..00000000000
--- a/tests/wpt/web-platform-tests/html/user-activation/activation-transfer-with-click.tentative.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!DOCTYPE html>
-<!--
- Tentative due to:
- https://github.com/whatwg/html/issues/4364
-
--->
-<html>
-<head>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="/resources/testdriver.js"></script>
-<script src="/resources/testdriver-vendor.js"></script>
-</head>
-<body>
- <h1>User activation can be transferred to a child frame
- via a postMessage option.</h1>
- <ol id="instructions">
- <li>Click this instruction text.
- </ol>
- <iframe id="child" width="200" height="200"></iframe>
- <script>
- async_test(function(t) {
- var child = document.getElementById("child");
- assert_false(navigator.userActivation.isActive);
- assert_false(navigator.userActivation.hasBeenActive);
-
- window.addEventListener("message", t.step_func(event => {
- var msg = JSON.parse(event.data);
- if (msg.type == 'child-four-loaded') {
- // state should be false after load
- assert_false(msg.isActive);
- assert_false(msg.hasBeenActive);
-
- // click in parent document
- test_driver.click(document.getElementById('instructions'));
- } else if (msg.type == 'child-four-report') {
- assert_true(msg.isActive);
- assert_true(msg.hasBeenActive);
-
- // check sender's activation state again
- assert_false(navigator.userActivation.isActive);
- assert_false(navigator.userActivation.hasBeenActive);
- t.done();
- }
- }));
- window.addEventListener("click", t.step_func(event => {
- assert_true(navigator.userActivation.isActive);
- assert_true(navigator.userActivation.hasBeenActive);
-
- // transfer user activation to the child frame
- child.contentWindow.postMessage("report",
- {transferUserActivation: true});
-
- // sender's activation state is updated synchronously
- assert_false(navigator.userActivation.isActive);
- assert_false(navigator.userActivation.hasBeenActive);
- }));
- child.src = "resources/child-four.html";
- }, "User activation transfer through postMessages");
- </script>
-</body>
-</html>
diff --git a/tests/wpt/web-platform-tests/html/user-activation/activation-transfer-without-click.tentative.html b/tests/wpt/web-platform-tests/html/user-activation/activation-transfer-without-click.tentative.html
deleted file mode 100644
index a12d4346a8e..00000000000
--- a/tests/wpt/web-platform-tests/html/user-activation/activation-transfer-without-click.tentative.html
+++ /dev/null
@@ -1,54 +0,0 @@
-<!DOCTYPE html>
-<!--
- Tentative due to:
- https://github.com/whatwg/html/issues/4364
-
--->
-<html>
-<head>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-</head>
-<body>
- <h1>User activation transfer request from an inactive frame is ignored.</h1>
- <iframe id="child" width="200" height="200"></iframe>
- <script>
- async_test(function(t) {
- var child = document.getElementById("child");
- var is_page_loaded = false;
- var is_child_four_loaded = false;
- assert_false(navigator.userActivation.isActive);
- assert_false(navigator.userActivation.hasBeenActive);
-
- function tryPostMessaging() {
- if (is_page_loaded && is_child_four_loaded)
- child.contentWindow.postMessage("report", {transferUserActivation: true});
- }
-
- window.addEventListener("message", t.step_func(event => {
- var msg = JSON.parse(event.data);
- if (msg.type == 'child-four-loaded') {
- // state should be false after load
- assert_false(msg.isActive);
- assert_false(msg.hasBeenActive);
- is_child_four_loaded = true;
-
- tryPostMessaging();
- } else if (msg.type == 'child-four-report') {
- assert_false(msg.isActive);
- assert_false(msg.hasBeenActive);
- assert_false(navigator.userActivation.isActive);
- assert_false(navigator.userActivation.hasBeenActive);
- t.done();
- }
- }));
-
- window.addEventListener("load", function(event) {
- is_page_loaded = true;
- tryPostMessaging();
- });
- child.src = "resources/child-four.html";
- }, "User activation transfer from inactive frame");
- </script>
-</body>
-</html>
diff --git a/tests/wpt/web-platform-tests/html/user-activation/message-event-activation-api-iframe-cross-origin.sub.tentative.html b/tests/wpt/web-platform-tests/html/user-activation/message-event-activation-api-iframe-cross-origin.sub.tentative.html
index 63a1da05d00..79899cd5218 100644
--- a/tests/wpt/web-platform-tests/html/user-activation/message-event-activation-api-iframe-cross-origin.sub.tentative.html
+++ b/tests/wpt/web-platform-tests/html/user-activation/message-event-activation-api-iframe-cross-origin.sub.tentative.html
@@ -1,8 +1,7 @@
<!DOCTYPE html>
<!--
Tentative due to:
- https://github.com/whatwg/html/issues/3739
-
+ https://github.com/whatwg/html/issues/1983
-->
<html>
<head>
@@ -16,39 +15,40 @@
<ol id="instructions">
<li>Click inside the red area.
</ol>
- <iframe id="child" width="200" height="200"></iframe>
+ <iframe id="child" width="200" height="200"
+ src="http://{{domains[www]}}:{{ports[http][0]}}/html/user-activation/resources/child-message-event-api.html">
+ </iframe>
<script>
async_test(function(t) {
var child = document.getElementById("child");
assert_false(navigator.userActivation.isActive);
assert_false(navigator.userActivation.hasBeenActive);
window.addEventListener("message", t.step_func(event => {
- if (event.data == 'child-three-loaded') {
+ if (event.data == 'child-loaded') {
// values have false after load
assert_true(event.userActivation != null);
assert_false(event.userActivation.isActive);
assert_false(event.userActivation.hasBeenActive);
test_driver.click(child);
- } else if (event.data == 'child-three-clicked') {
+ } else if (event.data == 'child-clicked') {
// values have activation state on click
assert_true(navigator.userActivation.hasBeenActive);
assert_true(event.userActivation != null);
assert_true(event.userActivation.isActive);
assert_true(event.userActivation.hasBeenActive);
child.contentWindow.postMessage('report', "*");
- } else if (event.data == 'child-three-report') {
+ } else if (event.data == 'child-report') {
assert_false(navigator.userActivation.isActive);
assert_true(navigator.userActivation.hasBeenActive);
assert_true(event.userActivation != null);
assert_false(event.userActivation.isActive);
assert_true(event.userActivation.hasBeenActive);
child.contentWindow.postMessage('report-no-activation', "*");
- } else if (event.data == 'child-three-report-no-activation') {
+ } else if (event.data == 'child-report-no-activation') {
assert_true(event.userActivation === null);
t.done();
}
}));
- child.src = "http://{{domains[www]}}:{{ports[http][0]}}/html/user-activation/resources/child-three.html";
}, "Message propagates values on post");
</script>
</body>
diff --git a/tests/wpt/web-platform-tests/html/user-activation/resources/child-four.html b/tests/wpt/web-platform-tests/html/user-activation/resources/child-four.html
deleted file mode 100644
index 65d17f273e1..00000000000
--- a/tests/wpt/web-platform-tests/html/user-activation/resources/child-four.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html>
-<body style="background: lightgrey;">
-<script>
- window.parent.postMessage(JSON.stringify({"type": "child-four-loaded", "isActive": navigator.userActivation.isActive,
- "hasBeenActive": navigator.userActivation.hasBeenActive}), "*");
-
- window.addEventListener("message", event => {
- if (event.source === window.parent && event.data == "report") {
- window.parent.postMessage(JSON.stringify({"type": "child-four-report", "isActive": navigator.userActivation.isActive,
- "hasBeenActive": navigator.userActivation.hasBeenActive}), "*");
- }
- });
-
-</script>
-</body>
diff --git a/tests/wpt/web-platform-tests/html/user-activation/resources/child-message-event-api.html b/tests/wpt/web-platform-tests/html/user-activation/resources/child-message-event-api.html
new file mode 100644
index 00000000000..a0001633c22
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/user-activation/resources/child-message-event-api.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<body style="background: red;">
+ <script>
+ window.parent.postMessage("child-loaded",
+ {targetOrigin: "*", includeUserActivation: true});
+ window.addEventListener("click", event => {
+ window.parent.postMessage("child-clicked",
+ {targetOrigin: "*", includeUserActivation: true});
+ var win = window.open('404.html');
+ win.close();
+ });
+
+ window.addEventListener("message", event => {
+ if (event.data == "report") {
+ window.parent.postMessage("child-report",
+ {targetOrigin: "*", includeUserActivation: true});
+ }
+ if (event.data == "report-no-activation") {
+ window.parent.postMessage("child-report-no-activation",
+ {targetOrigin: "*", includeUserActivation: false});
+ }
+ });
+ </script>
+</body>
diff --git a/tests/wpt/web-platform-tests/html/user-activation/resources/child-one.html b/tests/wpt/web-platform-tests/html/user-activation/resources/child-one.html
index 9c99729b6a9..96683726206 100644
--- a/tests/wpt/web-platform-tests/html/user-activation/resources/child-one.html
+++ b/tests/wpt/web-platform-tests/html/user-activation/resources/child-one.html
@@ -1,20 +1,29 @@
<!DOCTYPE html>
-<body style="background: red;">
+<body style="background: yellow;">
<script>
- window.parent.postMessage(JSON.stringify({"type": "child-one-loaded", "isActive": navigator.userActivation.isActive,
- "hasBeenActive": navigator.userActivation.hasBeenActive}), "*");
+ window.top.postMessage(JSON.stringify({
+ "type": "child-one-loaded",
+ "isActive": navigator.userActivation.isActive,
+ "hasBeenActive": navigator.userActivation.hasBeenActive
+ }), "*");
- window.addEventListener("click", event => {
- window.parent.postMessage(JSON.stringify({"type": "child-one-clicked", "isActive": navigator.userActivation.isActive,
- "hasBeenActive": navigator.userActivation.hasBeenActive}), "*");
- });
+ window.addEventListener("click", event => {
+ window.top.postMessage(JSON.stringify({
+ "type": "child-one-clicked",
+ "isActive": navigator.userActivation.isActive,
+ "hasBeenActive": navigator.userActivation.hasBeenActive
+ }), "*");
+ });
- window.addEventListener("message", event => {
- if (event.data == "report") {
- window.parent.postMessage(JSON.stringify({"type": "child-one-report", "isActive": navigator.userActivation.isActive,
- "hasBeenActive": navigator.userActivation.hasBeenActive}), "*");
- }
- });
-
-</script>
+ window.addEventListener("message", event => {
+ var msg = JSON.parse(event.data);
+ if (msg.type == "report") {
+ window.top.postMessage(JSON.stringify({
+ "type": "child-one-report",
+ "isActive": navigator.userActivation.isActive,
+ "hasBeenActive": navigator.userActivation.hasBeenActive
+ }), "*");
+ }
+ });
+ </script>
</body>
diff --git a/tests/wpt/web-platform-tests/html/user-activation/resources/child-three.html b/tests/wpt/web-platform-tests/html/user-activation/resources/child-three.html
deleted file mode 100644
index 5a74cf5360c..00000000000
--- a/tests/wpt/web-platform-tests/html/user-activation/resources/child-three.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<!DOCTYPE html>
-<body style="background: red;">
- <script>
- window.parent.postMessage("child-three-loaded", {targetOrigin: "*", includeUserActivation: true});
- window.addEventListener("click", event => {
- window.parent.postMessage("child-three-clicked", {targetOrigin: "*", includeUserActivation: true});
- var win = window.open('404.html');
- win.close();
- });
-
- window.addEventListener("message", event => {
- if (event.data == "report")
- window.parent.postMessage("child-three-report", {targetOrigin: "*", includeUserActivation: true});
- if (event.data == "report-no-activation")
- window.parent.postMessage("child-three-report-no-activation", {targetOrigin: "*", includeUserActivation: false});
- });
-
-</script>
-</body>
diff --git a/tests/wpt/web-platform-tests/html/user-activation/resources/child-two.html b/tests/wpt/web-platform-tests/html/user-activation/resources/child-two.html
index 1fa8343a186..dc50742051f 100644
--- a/tests/wpt/web-platform-tests/html/user-activation/resources/child-two.html
+++ b/tests/wpt/web-platform-tests/html/user-activation/resources/child-two.html
@@ -1,15 +1,20 @@
<!DOCTYPE html>
<body style="background: lightgrey;">
-<script>
- window.parent.postMessage(JSON.stringify({"type": "child-two-loaded", "isActive": navigator.userActivation.isActive,
- "hasBeenActive": navigator.userActivation.hasBeenActive}), "*");
+ <script>
+ window.top.postMessage(JSON.stringify({
+ "type": "child-two-loaded",
+ "isActive": navigator.userActivation.isActive,
+ "hasBeenActive": navigator.userActivation.hasBeenActive
+ }), "*");
window.addEventListener("message", event => {
- if (event.source === window.parent && event.data == "report") {
- window.parent.postMessage(JSON.stringify({"type": "child-two-report", "isActive": navigator.userActivation.isActive,
- "hasBeenActive": navigator.userActivation.hasBeenActive}), "*");
+ if (event.data == "report") {
+ window.top.postMessage(JSON.stringify({
+ "type": "child-two-report",
+ "isActive": navigator.userActivation.isActive,
+ "hasBeenActive": navigator.userActivation.hasBeenActive
+ }), "*");
}
});
-
-</script>
+ </script>
</body>
diff --git a/tests/wpt/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/navigator_user_agent.https.html b/tests/wpt/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/navigator_user_agent.https.html
index 0fb9e372b0d..9409dd08e4d 100644
--- a/tests/wpt/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/navigator_user_agent.https.html
+++ b/tests/wpt/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/navigator_user_agent.https.html
@@ -1,10 +1,11 @@
<!DOCTYPE html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
-<script src="/webrtc/dictionary-helper.js"></script>
<script>
test(t => {
assert_true("userAgentData" in navigator);
+ assert_true("NavigatorUAData" in window);
+ assert_equals(typeof self.NavigatorUAData, "function")
}, "navigator.userAgentData is exposed.");
promise_test(async t => {
diff --git a/tests/wpt/web-platform-tests/interfaces/video-raf.idl b/tests/wpt/web-platform-tests/interfaces/video-raf.idl
index 9c523e6ca03..0ab48e33d59 100644
--- a/tests/wpt/web-platform-tests/interfaces/video-raf.idl
+++ b/tests/wpt/web-platform-tests/interfaces/video-raf.idl
@@ -4,8 +4,8 @@
// Source: HTMLVideoElement.requestAnimationFrame() (https://wicg.github.io/video-raf/)
dictionary VideoFrameMetadata {
- required DOMHighResTimeStamp presentationTime;
- required DOMHighResTimeStamp expectedPresentationTime;
+ required DOMHighResTimeStamp timePresented;
+ required DOMHighResTimeStamp expectedDisplayTime;
required unsigned long width;
required unsigned long height;
@@ -18,7 +18,7 @@ dictionary VideoFrameMetadata {
unsigned long rtpTimestamp;
};
-callback VideoFrameRequestCallback = void(DOMHighResTimeStamp time, VideoFrameMetadata metadata);
+callback VideoFrameRequestCallback = void(DOMHighResTimeStamp now, VideoFrameMetadata metadata);
partial interface HTMLVideoElement {
unsigned long requestAnimationFrame(VideoFrameRequestCallback callback);
diff --git a/tests/wpt/web-platform-tests/interfaces/web-animations.idl b/tests/wpt/web-platform-tests/interfaces/web-animations.idl
index 0d5d40ba74f..006b27b2820 100644
--- a/tests/wpt/web-platform-tests/interfaces/web-animations.idl
+++ b/tests/wpt/web-platform-tests/interfaces/web-animations.idl
@@ -96,9 +96,9 @@ interface KeyframeEffect : AnimationEffect {
object? keyframes,
optional (unrestricted double or KeyframeEffectOptions) options = {});
constructor(KeyframeEffect source);
- attribute Element? target;
- attribute CSSOMString? pseudoElement;
- attribute CompositeOperation composite;
+ attribute Element? target;
+ attribute CSSOMString? pseudoElement;
+ attribute CompositeOperation composite;
sequence<object> getKeyframes();
void setKeyframes(object? keyframes);
};
diff --git a/tests/wpt/web-platform-tests/interfaces/webrtc-stats.idl b/tests/wpt/web-platform-tests/interfaces/webrtc-stats.idl
index f66b0791cb2..514d09f15a6 100644
--- a/tests/wpt/web-platform-tests/interfaces/webrtc-stats.idl
+++ b/tests/wpt/web-platform-tests/interfaces/webrtc-stats.idl
@@ -130,6 +130,7 @@ dictionary RTCSentRtpStreamStats : RTCRtpStreamStats {
};
dictionary RTCOutboundRtpStreamStats : RTCSentRtpStreamStats {
+ unsigned long rtxSsrc;
DOMString trackId;
DOMString mediaSourceId;
DOMString senderId;
diff --git a/tests/wpt/web-platform-tests/mathml/relations/html5-tree/display-1.html b/tests/wpt/web-platform-tests/mathml/relations/html5-tree/display-1.html
index 9ecd45f9a40..1d842ccc274 100644
--- a/tests/wpt/web-platform-tests/mathml/relations/html5-tree/display-1.html
+++ b/tests/wpt/web-platform-tests/mathml/relations/html5-tree/display-1.html
@@ -31,7 +31,7 @@
1,
"math must be centered.");
assert_approx_equals(after_block.left, content.left, 1,
- "content before must be left aligned");
+ "content after must be left aligned");
assert_less_than_equal(before_block.bottom, mspace_block.top,
"new line before math");
assert_less_than_equal(mspace_block.bottom, after_block.top,
@@ -56,6 +56,25 @@
assert_less_than_equal(mspace_inline.right, after_inline.left,
"content after must be on the right of math");
}, `Test inline math ${transform}`);
+
+ var before_block_and_specified_width = getBox("before_block_and_specified_width");
+ var mspace_width = getBox("mspace_width");
+ var after_block_and_specified_width = getBox("after_block_and_specified_width");
+ test(function() {
+ assert_true(MathMLFeatureDetection.has_mspace());
+ assert_approx_equals(before_block_and_specified_width.left, content.left, 1,
+ "content before must be left aligned");
+ assert_approx_equals((mspace_width.left + mspace_width.right) / 2,
+ (content.left + content.right) / 2,
+ 1,
+ "math must be centered.");
+ assert_approx_equals(after_block_and_specified_width.left, content.left, 1,
+ "content after must be left aligned");
+ assert_less_than_equal(before_block_and_specified_width.bottom, mspace_width.top,
+ "new line before math");
+ assert_less_than_equal(mspace_width.bottom, after_block_and_specified_width.top,
+ "new line after math");
+ }, `Test width on display=block math ${transform}`);
}
done();
});
@@ -86,6 +105,10 @@
<span id="before_inline" class="square"></span>
<math display="inline"><mspace id="mspace_inline" width="50px" height="50px"/></math>
<span id="after_inline" class="square"></span>
+ <br/>
+ <span id="before_block_and_specified_width" class="square"></span>
+ <math display="block" style="width:100px"><mspace id="mspace_width" width="50px" height="50px"/></math>
+ <span id="after_block_and_specified_width" class="square"></span>
</div>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-background-size.html b/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-background-size.html
new file mode 100644
index 00000000000..8cc83702c1f
--- /dev/null
+++ b/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-background-size.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<head>
+<title>Performance Paint Timing Test: FCP due to background size</title>
+<style>
+ #main {
+ position: relative;
+ width: 100px;
+ height: 100px;
+ background-image: url(../resources/circles.png);
+ background-size: 0 0;
+ }
+
+ /* contentful class is defined in test_fcp script. */
+ #main.contentful {
+ background-size: 100% 100%;
+ }
+</style>
+</head>
+<body>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../resources/utils.js"></script>
+<div id="main"></div>
+<script>
+ test_fcp("First contentful paint fires due to background size.");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-bg-image-set.html b/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-bg-image-set.html
new file mode 100644
index 00000000000..0cc52d0263e
--- /dev/null
+++ b/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-bg-image-set.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<head>
+<title>Performance Paint Timing Test: FCP due to background image in image-set</title>
+<style>
+ #main {
+ width: 100px;
+ height: 100px;
+ }
+
+ /* contentful class is defined in test_fcp script. */
+ #main.contentful {
+ background-image: -webkit-image-set(url(../resources/circles.png) 1x);
+ background-image: image-set(url(../resources/circles.png) 1x);
+ }
+</style>
+</head>
+<body>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../resources/utils.js"></script>
+<div id="main"></div>
+<script>
+ test_fcp("First contentful paint fires due to background image in image-set.");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-bg-image-two-steps.html b/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-bg-image-two-steps.html
new file mode 100644
index 00000000000..4dc9af9da84
--- /dev/null
+++ b/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-bg-image-two-steps.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<head>
+<title>Performance Paint Timing Test: FCP should fire for background image only when visible</title>
+<style>
+ #main {
+ width: 100px;
+ height: 100px;
+ }
+
+ /* contentful and preFCP classes are defined in test_fcp script. */
+ #main.preFCP {
+ visibility: hidden;
+ }
+
+ #main.contentful, #main.preFCP {
+ background-image: url(../resources/circles.png);
+ }
+
+ #main.contentful {
+ visibility: visible;
+ }
+</style>
+</head>
+<body>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../resources/utils.js"></script>
+<div id="main"></div>
+<script>
+ test_fcp("First contentful paint fires for background image only when visible.");
+</script>
+</body>
+
+</html>
diff --git a/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-canvas-context.html b/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-canvas-context.html
new file mode 100644
index 00000000000..18eb07bfdea
--- /dev/null
+++ b/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-canvas-context.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<head>
+<title>Performance Paint Timing Test: FCP when canvas context is created</title>
+</head>
+<body>
+<script src="../resources/utils.js"></script>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<canvas id="canvas" width="50" height="50"></canvas>
+<script>
+ promise_test(async t => {
+ assert_precondition(window.PerformancePaintTiming, "Paint Timing isn't supported.");
+ await new Promise(r => window.addEventListener('load', r));
+ await assertNoFirstContentfulPaint();
+ const canvas = document.getElementById('canvas');
+ const context = canvas.getContext('2d');
+ context.fillRect(0, 0, 100, 100);
+ await assertFirstContentfulPaint();
+ }, 'Canvas should count as contentful when context is created');
+</script>
+</body>
+
+</html>
diff --git a/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-gradient.html b/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-gradient.html
new file mode 100644
index 00000000000..3a356f3dd1a
--- /dev/null
+++ b/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-gradient.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<head>
+<title>Performance Paint Timing Test: FCP should not fire with gradient-only backgrounds</title>
+<style>
+ #main {
+ width: 100px;
+ height: 100px;
+ background-image: linear-gradient(to bottom, orange, blue);
+ }
+</style>
+</head>
+<body>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../resources/utils.js"></script>
+<div id="main"></div>
+<script>
+ promise_test(async t => {
+ assert_precondition(window.PerformancePaintTiming, "Paint Timing isn't supported.");
+ const main = document.getElementById('main');
+ await new Promise(r => window.addEventListener('load', r));
+ await assertNoFirstContentfulPaint();
+ }, 'Gradients should not count as contentful');
+</script>
+</body>
+
+</html>
diff --git a/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-invisible-3d-rotate-descendant.html b/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-invisible-3d-rotate-descendant.html
new file mode 100644
index 00000000000..76d459d0f40
--- /dev/null
+++ b/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-invisible-3d-rotate-descendant.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<head>
+<title>Performance Paint Timing Test: FCP due to 3d revealing of descendants</title>
+<style>
+ #main {
+ width: 100px;
+ height: 100px;
+ left: 0px;
+ position: relative;
+ top: 0;
+ transform: rotateX(45deg);
+ transform-style: preserve-3d;
+ }
+
+ /*
+ This tests that given multiplication effect of 3d transforms on bounding rect,
+ An element counts as contentful/paintable only when its bounding rect is truly non-empty */
+ #child {
+ transform: rotateX(45deg);
+ }
+
+ /* contentful class is defined in test_fcp script. */
+ #main.contentful {
+ transform: none;
+ }
+</style>
+</head>
+<body>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../resources/utils.js"></script>
+<div id="main">
+ <div id="child">Text</div>
+</div>
+<script>
+ test_fcp("First contentful paint fires due to its ancestor getting rotating into view.");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-invisible-3d-rotate.html b/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-invisible-3d-rotate.html
new file mode 100644
index 00000000000..0b7fc325c5d
--- /dev/null
+++ b/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-invisible-3d-rotate.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<head>
+<title>Performance Paint Timing Test: FCP due to 3d rotation into view</title>
+<style>
+ #main {
+ width: 100px;
+ height: 100px;
+ left: 0px;
+ transform: rotateY(90deg);
+ position: relative;
+ top: 0;
+ }
+
+ /* contentful class is defined in test_fcp script. */
+ #main.contentful {
+ transform: none;
+ }
+</style>
+</head>
+<body>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../resources/utils.js"></script>
+<div id="main">Text</div>
+<script>
+ test_fcp("First contentful paint fires due to 3d rotation into view.")
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-invisible-scale-transition.html b/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-invisible-scale-transition.html
new file mode 100644
index 00000000000..e0ac85ceb25
--- /dev/null
+++ b/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-invisible-scale-transition.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<head>
+<title>Performance Paint Timing Test: FCP in transition</title>
+<style>
+ #main {
+ width: 100px;
+ height: 100px;
+ left: 0px;
+ transform: scale(0);
+ transition: transform 10s;
+ position: relative;
+ top: 0;
+ }
+
+ /* contentful class is defined in test_fcp script. */
+ #main.contentful {
+ transform: scale(1);
+ }
+</style>
+</head>
+<body>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../resources/utils.js"></script>
+<div id="main">TEXT</div>
+<script>
+ test_fcp("First contentful paint fires when revealed during transition.");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-invisible-scale.html b/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-invisible-scale.html
new file mode 100644
index 00000000000..5389e8a846b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-invisible-scale.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<head>
+<title>Performance Paint Timing Test: FCP due to scale change</title>
+<style>
+ #main {
+ width: 100px;
+ height: 100px;
+ left: 0px;
+ transform: scale(0);
+ position: relative;
+ top: 0;
+ background-image: url(../resources/circles.png);
+ }
+
+ /* contentful class is defined in test_fcp script. */
+ #main.contentful {
+ transform: none;
+ }
+</style>
+</head>
+<body>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../resources/utils.js"></script>
+<div id="main"></div>
+<script>
+ test_fcp("First contentful paint fires due to scale becoming positive.")
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-invisible-text.html b/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-invisible-text.html
new file mode 100644
index 00000000000..e1b38712a63
--- /dev/null
+++ b/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-invisible-text.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<head>
+<title>Performance Paint Timing Test: FCP should still fire for invisible text</title>
+<style>
+ #main {
+ position: relative;
+ width: 100px;
+ height: 100px;
+ visibility: hidden;
+ color: rgba(0, 0, 0, 0);
+ }
+
+ /* contentful class is defined in test_fcp script. */
+ #main.contentful {
+ visibility: visible;
+ }
+</style>
+</head>
+<body>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../resources/utils.js"></script>
+<div id="main">
+ INVISIBLE
+</div>
+<script>
+ test_fcp("First contentful paint fires due to pseudo-element becoming visible.")
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-opacity-descendant.html b/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-opacity-descendant.html
new file mode 100644
index 00000000000..8ada49b767f
--- /dev/null
+++ b/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-opacity-descendant.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html>
+<head>
+<title>Performance Paint Timing Test: FCP due to ancestor opacity</title>
+<style>
+ #main {
+ width: 100px;
+ height: 100px;
+ left: 0px;
+ position: relative;
+ top: 0;
+ }
+
+ #child {
+ opacity: 0;
+ }
+
+ /* contentful and intermediate classes are defined in test_fcp script. */
+ #main.contentful #child {
+ opacity: 1;
+ }
+
+ #main.intermediate #child {
+ opacity: 1;
+ }
+
+ #main.intermediate {
+ opacity: 0;
+ }
+
+ #main.contentful {
+ opacity: 0.5;
+ }
+</style>
+</head>
+<body>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../resources/utils.js"></script>
+<div id="main">
+ <div id="child">Text</div>
+</div>
+<script>
+ test_fcp("First contentful paint fires due to its ancestor getting positive opacity.");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-opacity.html b/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-opacity.html
new file mode 100644
index 00000000000..83afdde195b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-opacity.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<head>
+<title>Performance Paint Timing Test: FCP due to opacity</title>
+<style>
+ #main {
+ width: 100px;
+ height: 100px;
+ left: 0px;
+ position: relative;
+ top: 0;
+ background-image: url(../resources/circles.png);
+ opacity: 0;
+ }
+
+ /* contentful class is defined in test_fcp script. */
+ #main.contentful {
+ opacity: 0.1;
+ }
+</style>
+</head>
+<body>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../resources/utils.js"></script>
+<div id="main"></div>
+<script>
+ test_fcp("First contentful paint fires due to opacity-revealed element.");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-out-of-bounds-translate.html b/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-out-of-bounds-translate.html
new file mode 100644
index 00000000000..ee7975eec45
--- /dev/null
+++ b/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-out-of-bounds-translate.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<head>
+<title>Performance Paint Timing Test: FCP due to transform-based intersection with document</title>
+<style>
+ #main {
+ width: 100px;
+ height: 100px;
+ left: 0px;
+ transform: translate(-1000px);
+ position: relative;
+ top: 0;
+ background-image: url(../resources/circles.png);
+ }
+
+ /* contentful class is defined in test_fcp script. */
+ #main.contentful {
+ transform: none;
+ }
+</style>
+</head>
+<body>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../resources/utils.js"></script>
+<div id="main"></div>
+<script>
+ test_fcp("First contentful paint fires due to transform-based intersection with document.")
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-out-of-bounds.html b/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-out-of-bounds.html
new file mode 100644
index 00000000000..3553772d4fc
--- /dev/null
+++ b/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-out-of-bounds.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<head>
+<title>Performance Paint Timing Test: FCP due to intersection with document</title>
+<style>
+ #main {
+ width: 100px;
+ height: 100px;
+ left: -1000px;
+ position: relative;
+ top: 0;
+ background-image: url(../resources/circles.png);
+ }
+
+ /* contentful class is defined in test_fcp script. */
+ #main.contentful {
+ left: 0px;
+ }
+</style>
+</head>
+<body>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../resources/utils.js"></script>
+<div id="main"></div>
+<script>
+ test_fcp("First contentful paint fires due to intersection with document.")
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-overflow.html b/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-overflow.html
new file mode 100644
index 00000000000..d7cc34663b7
--- /dev/null
+++ b/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-overflow.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<head>
+<title>Performance Paint Timing Test: FCP with element clipped with overflow</title>
+<style>
+ #main {
+ width: 100px;
+ height: 100px;
+ overflow: hidden;
+ display: none;
+ }
+
+ /* contentful class is defined in test_fcp script. */
+ #main.contentful {
+ display: block;
+ }
+
+ #text {
+ top: 10000px;
+ position: relative;
+ }
+</style>
+</head>
+<body>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../resources/utils.js"></script>
+<div id="main">
+ <div id="text">HELLO</div>
+</div>
+<script>
+ test_fcp("First contentful paint fires even when element is hidden due to overflow.")
+</script>
+</body>
+
+</html>
diff --git a/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-pseudo-element-display.html b/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-pseudo-element-display.html
new file mode 100644
index 00000000000..50fd626e899
--- /dev/null
+++ b/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-pseudo-element-display.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<head>
+<title>Performance Paint Timing Test: FCP due to pseudo-element text</title>
+<style>
+ #main {
+ position: relative;
+ width: 100px;
+ height: 100px;
+ }
+
+ #main:after {
+ content: "TEXT";
+ display: none;
+ }
+
+ /* contentful class is defined in test_fcp script. */
+ #main.contentful:after {
+ display: block;
+ }
+</style>
+</head>
+<body>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../resources/utils.js"></script>
+<div id="main">
+</div>
+<script>
+ test_fcp("First contentful paint fires due to pseudo-element text.")
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-pseudo-element-image.html b/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-pseudo-element-image.html
new file mode 100644
index 00000000000..ba38edb68cb
--- /dev/null
+++ b/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-pseudo-element-image.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<head>
+<title>Performance Paint Timing Test: FCP due to pseudo-element image</title>
+<style>
+ #main {
+ position: relative;
+ width: 100px;
+ height: 100px;
+ }
+
+ /* contentful class is defined in test_fcp script. */
+ #main.contentful:after {
+ content: url(../resources/circles.png);
+ }
+</style>
+</head>
+<body>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../resources/utils.js"></script>
+<div id="main">
+</div>
+<script>
+ test_fcp("First contentful paint fires due to pseudo-element image.")
+</script>
+</body>
+
+</html>
diff --git a/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-pseudo-element-opacity.html b/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-pseudo-element-opacity.html
new file mode 100644
index 00000000000..b209864d5d6
--- /dev/null
+++ b/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-pseudo-element-opacity.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<head>
+<title>Performance Paint Timing Test: FCP due to pseudo-element getting positive opacity</title>
+<style>
+ #main {
+ position: relative;
+ width: 100px;
+ height: 100px;
+ }
+
+ #main:after {
+ content: "TEXT";
+ opacity: 0;
+ }
+
+ /* contentful class is defined in test_fcp script. */
+ #main.contentful:after {
+ opacity: 0.5;
+ }
+</style>
+</head>
+<body>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../resources/utils.js"></script>
+<div id="main">
+</div>
+<script>
+ test_fcp("First contentful paint fires due to pseudo-element getting positive opacity.")
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-pseudo-element-text.html b/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-pseudo-element-text.html
new file mode 100644
index 00000000000..ea2105e4530
--- /dev/null
+++ b/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-pseudo-element-text.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<head>
+<title>Performance Paint Timing Test: FCP due to pseudo-element text</title>
+<style>
+ #main {
+ position: relative;
+ width: 100px;
+ height: 100px;
+ }
+
+ /* contentful class is defined in test_fcp script. */
+ #main.contentful:after {
+ content: "TEXT"
+ }
+</style>
+</head>
+<body>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../resources/utils.js"></script>
+<div id="main">
+</div>
+<script>
+ test_fcp("First contentful paint fires due to pseudo-element text.")
+</script>
+</body>
+
+</html>
diff --git a/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-pseudo-element-visibility.html b/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-pseudo-element-visibility.html
new file mode 100644
index 00000000000..c903c472185
--- /dev/null
+++ b/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-pseudo-element-visibility.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<head>
+<title>Performance Paint Timing Test: FCP due to pseudo-element becoming visible</title>
+<style>
+ #main {
+ position: relative;
+ width: 100px;
+ height: 100px;
+ }
+
+ #main:after {
+ content: "TEXT";
+ visibility: hidden;
+ }
+
+ /* contentful class is defined in test_fcp script. */
+ #main.contentful:after {
+ visibility: visible;
+ }
+</style>
+</head>
+<body>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../resources/utils.js"></script>
+<div id="main">
+</div>
+<script>
+ test_fcp("First contentful paint fires due to pseudo-element becoming visible.")
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-svg.html b/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-svg.html
new file mode 100644
index 00000000000..bcd2372cfc3
--- /dev/null
+++ b/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-svg.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<head>
+<title>Performance Paint Timing Test: FCP with SVG</title>
+<style>
+ #main {
+ width: 100px;
+ height: 100px;
+ left: 0px;
+ position: relative;
+ }
+
+ #circle {
+ display: none;
+ }
+
+ /* contentful class is defined in test_fcp script. */
+ #main.contentful #circle {
+ display: block;
+ }
+</style>
+</head>
+<body>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../resources/utils.js"></script>
+<div id="main">
+ <svg viewBox="0 0 10 10" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <defs>
+ <circle id="myCircle" cx="5" cy="5" r="4" stroke="blue"/>
+ </defs>
+ <use id="circle" href="#myCircle" fill="green" />
+ </svg>
+</div>
+<script>
+ test_fcp("First contentful paint fires when SVG becomes contentful.")
+</script>
+</body>
+
+</html>
diff --git a/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-video-frame.html b/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-video-frame.html
new file mode 100644
index 00000000000..fff38cd2c81
--- /dev/null
+++ b/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-video-frame.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<head>
+<title>Performance Paint Timing Test: FCP due to loaded video frame</title>
+</head>
+<body>
+<script src="../resources/utils.js"></script>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<video id="video" autoplay></video>
+<script>
+ promise_test(async t => {
+ assert_precondition(window.PerformancePaintTiming, "Paint Timing isn't supported.");
+ await new Promise(r => window.addEventListener('load', r));
+ await assertNoFirstContentfulPaint();
+ const video = document.getElementById('video');
+ video.setAttribute('src', '/media/test.mp4');
+ await new Promise(resolve => {
+ video.oncanplay = resolve;
+ });
+ await assertFirstContentfulPaint();
+ }, 'Video should become contentful when first frame is loaded');
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-video-poster.html b/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-video-poster.html
new file mode 100644
index 00000000000..ed9cabcaeeb
--- /dev/null
+++ b/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-video-poster.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<head>
+<title>Performance Paint Timing Test: FCP due to loaded video poster</title>
+</head>
+<body>
+<script src="../resources/utils.js"></script>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<video id="video" width="50" height="50"></video>
+<script>
+ promise_test(async t => {
+ assert_precondition(window.PerformancePaintTiming, "Paint Timing isn't supported.");
+ await new Promise(r => window.addEventListener('load', r));
+ await assertNoFirstContentfulPaint();
+ const video = document.getElementById('video');
+ const src = '../resources/circles.png';
+ const image = new Image();
+ image.src = src;
+ video.setAttribute('poster', src);
+ await new Promise(resolve => {
+ image.onload = async () => resolve();
+ })
+ await assertFirstContentfulPaint();
+ }, 'Video should become contentful when poster is loaded');
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-whitespace.html b/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-whitespace.html
new file mode 100644
index 00000000000..6e1f425de80
--- /dev/null
+++ b/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-whitespace.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<head>
+<title>Performance Paint Timing Test: Whitespace should not count as contentful</title>
+<style>
+ #main {
+ position: relative;
+ width: 100px;
+ height: 100px;
+ background-image: url(../resources/circles.png);
+ background-size: 0 0;
+ }
+
+ #text {
+ display: none;
+ }
+
+ /* contentful class is defined in test_fcp script. */
+ #main.contentful #text{
+ display: block;
+ }
+</style>
+</head>
+<body>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../resources/utils.js"></script>
+<div id="main">
+ <div id="whitespace"> </div>
+ <div id="text">TEXT</div>
+</div>
+<script>
+ test_fcp("Whitespace should not count as contentful.")
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/paint-timing/resources/utils.js b/tests/wpt/web-platform-tests/paint-timing/resources/utils.js
index 9375b175296..fb60500f3b5 100644
--- a/tests/wpt/web-platform-tests/paint-timing/resources/utils.js
+++ b/tests/wpt/web-platform-tests/paint-timing/resources/utils.js
@@ -23,45 +23,34 @@ function waitForAnimationFrames(count) {
}
// Asserts that there is currently no FCP reported, even after some wait.
-function assertNoFirstContentfulPaint(t) {
- return waitTime(t).then(() => {
- return waitForAnimationFrames(numFramesWaiting);
- }).then(() => {
- return new Promise((resolve, reject) => {
- const observer = new PerformanceObserver(entryList =>{
- const entries = entryList.getEntriesByName('first-contentful-paint');
- observer.disconnect();
- if (entries.length > 0)
- reject('Received a first contentful paint entry.');
- else
- resolve();
- });
- observer.observe({type: 'paint', buffered: true});
- observer.observe({type: 'mark'});
- performance.mark('flush');
- });
- });
+async function assertNoFirstContentfulPaint(t) {
+ if (t)
+ await waitTime(t);
+
+ await waitForAnimationFrames(numFramesWaiting);
+ assert_equals(performance.getEntriesByName('first-contentful-paint').length, 0, 'First contentful paint marked too early. ');
}
// Asserts that FCP is reported, possibly after some wait. The wait is needed
// because sometimes the FCP relies on some CSS resources to finish loading.
-function assertFirstContentfulPaint(t) {
- return waitTime(t).then(() => {
- return waitForAnimationFrames(numFramesWaiting);
- }).then(() => {
- return new Promise((resolve, reject) => {
- const observer = new PerformanceObserver(entryList =>{
- const entries = entryList.getEntriesByName('first-contentful-paint');
- observer.disconnect();
- if (entries.length === 0)
- reject('Did not receive a first contentful paint entry.');
- else {
- resolve();
- }
- });
- observer.observe({type: 'paint', buffered: true});
- observer.observe({type: 'mark'});
- performance.mark('flush');
- });
- });
+async function assertFirstContentfulPaint(t) {
+ if (t)
+ await waitTime(t);
+ await waitForAnimationFrames(numFramesWaiting);
+ assert_equals(performance.getEntriesByName('first-contentful-paint').length, 1, 'Expected first contentful paint not found. ');
+}
+
+async function test_fcp(label) {
+ const style = document.createElement('style');
+ document.head.appendChild(style);
+ await promise_test(async t => {
+ assert_precondition(window.PerformancePaintTiming, "Paint Timing isn't supported.");
+ const main = document.getElementById('main');
+ await new Promise(r => window.addEventListener('load', r));
+ await assertNoFirstContentfulPaint();
+ main.className = 'preFCP';
+ await assertNoFirstContentfulPaint();
+ main.className = 'contentful';
+ await assertFirstContentfulPaint();
+ }, label);
}
diff --git a/tests/wpt/web-platform-tests/scroll-animations/scroll-animation.html b/tests/wpt/web-platform-tests/scroll-animations/scroll-animation.html
index 62e5bb854aa..711314789b1 100644
--- a/tests/wpt/web-platform-tests/scroll-animations/scroll-animation.html
+++ b/tests/wpt/web-platform-tests/scroll-animations/scroll-animation.html
@@ -47,13 +47,8 @@
// Now do some scrolling and make sure that the Animation current time is
// correct.
scroller.scrollTop = 0.2 * maxScroll;
- // TODO(crbug.com/944449): After scroll offset snapshotting is implemented,
- // scroll timeline current time, animation current time and effect local
- // time will be updated on the same frame (which in this case will be the
- // next frame).
assert_equals(animation.currentTime, animation.timeline.currentTime,
"The current time corresponds to the scroll position of the scroller.");
- await waitForNextFrame();
assert_times_equal(
animation.effect.getComputedTiming().localTime,
animation.timeline.currentTime,
diff --git a/tests/wpt/web-platform-tests/scroll-animations/scroll-timeline-invalidation.html b/tests/wpt/web-platform-tests/scroll-animations/scroll-timeline-invalidation.html
new file mode 100644
index 00000000000..143943c4236
--- /dev/null
+++ b/tests/wpt/web-platform-tests/scroll-animations/scroll-timeline-invalidation.html
@@ -0,0 +1,98 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>ScrollTimeline invalidation</title>
+<link rel="help" href="https://wicg.github.io/scroll-animations/#current-time-algorithm">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/web-animations/testcommon.js"></script>
+<script src="testcommon.js"></script>
+<style>
+ .scroller {
+ overflow: auto;
+ height: 100px;
+ width: 100px;
+ }
+ .contents {
+ height: 1000px;
+ width: 100%;
+ }
+</style>
+<div id="log"></div>
+
+<script>
+'use strict';
+
+promise_test(async t => {
+ const animation = createScrollLinkedAnimation(t);
+ animation.effect.updateTiming({ duration: 350 });
+ const scroller = animation.timeline.scrollSource;
+ const maxScroll = scroller.scrollHeight - scroller.clientHeight;
+ scroller.scrollTop = 0.2 * maxScroll;
+
+ animation.play();
+ await animation.ready;
+
+ // Change scroller content size.
+ scroller.firstChild.style.height = "500px";
+
+ await animation.finished;
+ const newTime = animation.effect.getTiming().duration;
+ assert_times_equal(animation.currentTime, newTime,
+ 'Animation current time is updated after scroller invalidation.');
+
+ assert_times_equal(
+ animation.effect.getComputedTiming().localTime, newTime,
+ 'Effect local time is updated after scroller invalidation.');
+}, 'Animation current time and effect local time are updated after scroller ' +
+ 'content size changes.');
+
+promise_test(async t => {
+ const animation = createScrollLinkedAnimation(t);
+ animation.effect.updateTiming({ duration: 350 });
+ const scroller = animation.timeline.scrollSource;
+ const maxScroll = scroller.scrollHeight - scroller.clientHeight;
+ scroller.scrollTop = 0.2 * maxScroll;
+
+ animation.play();
+ await animation.ready;
+
+ // Change scroller size.
+ scroller.style.height = "500px";
+
+ await animation.finished;
+ const newTime = animation.effect.getTiming().duration;
+ assert_times_equal(animation.currentTime, newTime,
+ 'Animation current time is updated after scroller invalidation.');
+
+ assert_times_equal(
+ animation.effect.getComputedTiming().localTime, newTime,
+ 'Effect local time is updated after scroller invalidation.');
+}, 'Animation current time and effect local time are updated after scroller ' +
+ 'size changes.');
+
+promise_test(async t => {
+ const timeline = createScrollTimeline(t);
+ const scroller = timeline.scrollSource;
+ const maxScroll = scroller.scrollHeight - scroller.clientHeight;
+ // Instantiate scroll animation that resizes its scroll timeline scroller.
+ const animation = new Animation(
+ new KeyframeEffect(
+ timeline.scrollSource.firstChild,
+ [{ height: '1000px' }, { height: '2000px' }],
+ { duration: 1000, }
+ ), timeline);
+ animation.play();
+ await animation.ready;
+ await waitForNextFrame();
+ scroller.scrollTop = 0.2 * maxScroll;
+ assert_times_equal(timeline.currentTime, 200,
+ 'Timeline current time is updated after scroller update.');
+
+ await waitForNextFrame();
+ assert_times_equal(timeline.currentTime, 163.636,
+ 'Timeline current time is updated after animation frame and ' +
+ 'reflects single layout run.');
+
+}, 'If scroll animation resizes its scroll timeline scroller, ' +
+ 'layout runs only once to reflect the initial update.');
+</script>
diff --git a/tests/wpt/web-platform-tests/svg/geometry/svg-image-intrinsic-size-with-cssstyle-auto.html b/tests/wpt/web-platform-tests/svg/geometry/svg-image-intrinsic-size-with-cssstyle-auto.html
index 6b49f622964..0969e1e8e8f 100644
--- a/tests/wpt/web-platform-tests/svg/geometry/svg-image-intrinsic-size-with-cssstyle-auto.html
+++ b/tests/wpt/web-platform-tests/svg/geometry/svg-image-intrinsic-size-with-cssstyle-auto.html
@@ -43,6 +43,8 @@
<image width="60" height="60" xlink:href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='100' viewBox='0 0 400 100'></svg>" style='width:auto'/>
<image width="60" height="60" xlink:href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='100' viewBox='0 0 400 100'></svg>" style='height:auto'/>
<image width="60" height="60" xlink:href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='100' viewBox='0 0 400 100'></svg>" style='width:auto; height:auto'/>
+ <image width="60" height="60" xlink:href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg'></svg>" style='height:auto'/>
+ <image width="60" height="60" xlink:href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg'></svg>" style='width:auto'/>
</svg>
<script>
var expectedBoxes = [
@@ -76,6 +78,8 @@ var expectedBoxes = [
{ dimensions: [120, 60], description: "200x100 svg image viewBox='0 0 400 100', attributes width='60' height='60' and CSS 'width:auto'"},
{ dimensions: [60, 30], description: "200x100 svg image viewBox='0 0 400 100', attributes width='60' height='60' and CSS 'height:auto'"},
{ dimensions: [200, 100], description: "200x100 svg image viewBox='0 0 400 100', attributes width='60' height='60' and CSS 'width:auto; height:auto'"},
+ { dimensions: [60, 150], description: "default sized svg image, attributes width='60' height='60' and CSS 'height:auto'"},
+ { dimensions: [300, 60], description: "default sized svg image, attributes width='60' height='60' and CSS 'width:auto'"}
];
var images = document.getElementsByTagName('image');
@@ -90,4 +94,4 @@ for (var i = 0, length = images.length; i < length; ++i) {
});
}, document.title + ' with ' + expectedBoxes[i].description);
}
-</script> \ No newline at end of file
+</script>
diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-classic-data.http-rp/upgrade/fetch.https.html b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-classic-data.http-rp/upgrade/fetch.https.html
new file mode 100644
index 00000000000..b65bb8451f0
--- /dev/null
+++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-classic-data.http-rp/upgrade/fetch.https.html
@@ -0,0 +1,112 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec upgrade-insecure-requests/` -->
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta name="timeout" content="long">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/security-features/resources/common.sub.js"></script>
+ <script src="../../../generic/test-case.sub.js"></script>
+ </head>
+ <body>
+ <script>
+ TestCase(
+ [
+ {
+ "expectation": "allowed",
+ "origin": "same-http-downgrade",
+ "redirection": "no-redirect",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-classic-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "fetch",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for fetch to same-http-downgrade origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "cross-https",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-classic-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "fetch",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for fetch to cross-https origin and downgrade redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "cross-http-downgrade",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-classic-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "fetch",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for fetch to cross-http-downgrade origin and downgrade redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-classic-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "fetch",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for fetch to same-https origin and downgrade redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "cross-http-downgrade",
+ "redirection": "no-redirect",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-classic-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "fetch",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for fetch to cross-http-downgrade origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "same-http-downgrade",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-classic-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "fetch",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for fetch to same-http-downgrade origin and downgrade redirection from https context."
+ }
+ ],
+ new SanityChecker()
+ ).start();
+ </script>
+ <div id="log"></div>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-classic-data.http-rp/upgrade/fetch.https.html.headers b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-classic-data.http-rp/upgrade/fetch.https.html.headers
new file mode 100644
index 00000000000..602d9dc38d0
--- /dev/null
+++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-classic-data.http-rp/upgrade/fetch.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-classic-data.http-rp/upgrade/websocket.https.html b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-classic-data.http-rp/upgrade/websocket.https.html
new file mode 100644
index 00000000000..f1933b620e9
--- /dev/null
+++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-classic-data.http-rp/upgrade/websocket.https.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec upgrade-insecure-requests/` -->
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta name="timeout" content="long">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/security-features/resources/common.sub.js"></script>
+ <script src="../../../generic/test-case.sub.js"></script>
+ </head>
+ <body>
+ <script>
+ TestCase(
+ [
+ {
+ "expectation": "allowed",
+ "origin": "same-ws-downgrade",
+ "redirection": "no-redirect",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-classic-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "websocket",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for websocket to same-ws-downgrade origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "cross-ws-downgrade",
+ "redirection": "no-redirect",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-classic-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "websocket",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for websocket to cross-ws-downgrade origin and no-redirect redirection from https context."
+ }
+ ],
+ new SanityChecker()
+ ).start();
+ </script>
+ <div id="log"></div>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-classic-data.http-rp/upgrade/websocket.https.html.headers b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-classic-data.http-rp/upgrade/websocket.https.html.headers
new file mode 100644
index 00000000000..602d9dc38d0
--- /dev/null
+++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-classic-data.http-rp/upgrade/websocket.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-classic-data.http-rp/upgrade/xhr.https.html b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-classic-data.http-rp/upgrade/xhr.https.html
new file mode 100644
index 00000000000..026d771dd7f
--- /dev/null
+++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-classic-data.http-rp/upgrade/xhr.https.html
@@ -0,0 +1,112 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec upgrade-insecure-requests/` -->
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta name="timeout" content="long">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/security-features/resources/common.sub.js"></script>
+ <script src="../../../generic/test-case.sub.js"></script>
+ </head>
+ <body>
+ <script>
+ TestCase(
+ [
+ {
+ "expectation": "allowed",
+ "origin": "same-http-downgrade",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-classic-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "xhr",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for xhr to same-http-downgrade origin and downgrade redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "cross-http-downgrade",
+ "redirection": "no-redirect",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-classic-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "xhr",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for xhr to cross-http-downgrade origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "same-http-downgrade",
+ "redirection": "no-redirect",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-classic-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "xhr",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for xhr to same-http-downgrade origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-classic-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "xhr",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for xhr to same-https origin and downgrade redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "cross-https",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-classic-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "xhr",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for xhr to cross-https origin and downgrade redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "cross-http-downgrade",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-classic-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "xhr",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for xhr to cross-http-downgrade origin and downgrade redirection from https context."
+ }
+ ],
+ new SanityChecker()
+ ).start();
+ </script>
+ <div id="log"></div>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-classic-data.http-rp/upgrade/xhr.https.html.headers b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-classic-data.http-rp/upgrade/xhr.https.html.headers
new file mode 100644
index 00000000000..602d9dc38d0
--- /dev/null
+++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-classic-data.http-rp/upgrade/xhr.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-classic-data.meta/unset/fetch.https.html b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-classic-data.meta/unset/fetch.https.html
new file mode 100644
index 00000000000..95c36dab703
--- /dev/null
+++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-classic-data.meta/unset/fetch.https.html
@@ -0,0 +1,112 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec upgrade-insecure-requests/` -->
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta name="timeout" content="long">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/security-features/resources/common.sub.js"></script>
+ <script src="../../../generic/test-case.sub.js"></script>
+ </head>
+ <body>
+ <script>
+ TestCase(
+ [
+ {
+ "expectation": "blocked",
+ "origin": "same-http-downgrade",
+ "redirection": "no-redirect",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-classic-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "fetch",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects blocked for fetch to same-http-downgrade origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http-downgrade",
+ "redirection": "no-redirect",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-classic-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "fetch",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects blocked for fetch to cross-http-downgrade origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-https",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-classic-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "fetch",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects blocked for fetch to cross-https origin and downgrade redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http-downgrade",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-classic-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "fetch",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects blocked for fetch to cross-http-downgrade origin and downgrade redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http-downgrade",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-classic-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "fetch",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects blocked for fetch to same-http-downgrade origin and downgrade redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-https",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-classic-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "fetch",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects blocked for fetch to same-https origin and downgrade redirection from https context."
+ }
+ ],
+ new SanityChecker()
+ ).start();
+ </script>
+ <div id="log"></div>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-classic-data.meta/unset/websocket.https.html b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-classic-data.meta/unset/websocket.https.html
new file mode 100644
index 00000000000..116967e0207
--- /dev/null
+++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-classic-data.meta/unset/websocket.https.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec upgrade-insecure-requests/` -->
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta name="timeout" content="long">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/security-features/resources/common.sub.js"></script>
+ <script src="../../../generic/test-case.sub.js"></script>
+ </head>
+ <body>
+ <script>
+ TestCase(
+ [
+ {
+ "expectation": "blocked",
+ "origin": "cross-ws-downgrade",
+ "redirection": "no-redirect",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-classic-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "websocket",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects blocked for websocket to cross-ws-downgrade origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-ws-downgrade",
+ "redirection": "no-redirect",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-classic-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "websocket",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects blocked for websocket to same-ws-downgrade origin and no-redirect redirection from https context."
+ }
+ ],
+ new SanityChecker()
+ ).start();
+ </script>
+ <div id="log"></div>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-classic-data.meta/unset/xhr.https.html b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-classic-data.meta/unset/xhr.https.html
new file mode 100644
index 00000000000..89ab0fe4ef9
--- /dev/null
+++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-classic-data.meta/unset/xhr.https.html
@@ -0,0 +1,112 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec upgrade-insecure-requests/` -->
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta name="timeout" content="long">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/security-features/resources/common.sub.js"></script>
+ <script src="../../../generic/test-case.sub.js"></script>
+ </head>
+ <body>
+ <script>
+ TestCase(
+ [
+ {
+ "expectation": "blocked",
+ "origin": "cross-http-downgrade",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-classic-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "xhr",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects blocked for xhr to cross-http-downgrade origin and downgrade redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http-downgrade",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-classic-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "xhr",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects blocked for xhr to same-http-downgrade origin and downgrade redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http-downgrade",
+ "redirection": "no-redirect",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-classic-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "xhr",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects blocked for xhr to same-http-downgrade origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http-downgrade",
+ "redirection": "no-redirect",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-classic-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "xhr",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects blocked for xhr to cross-http-downgrade origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-https",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-classic-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "xhr",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects blocked for xhr to same-https origin and downgrade redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-https",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-classic-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "xhr",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects blocked for xhr to cross-https origin and downgrade redirection from https context."
+ }
+ ],
+ new SanityChecker()
+ ).start();
+ </script>
+ <div id="log"></div>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-classic-data.meta/upgrade/fetch.https.html b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-classic-data.meta/upgrade/fetch.https.html
new file mode 100644
index 00000000000..eea46ce9648
--- /dev/null
+++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-classic-data.meta/upgrade/fetch.https.html
@@ -0,0 +1,113 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec upgrade-insecure-requests/` -->
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta name="timeout" content="long">
+ <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/security-features/resources/common.sub.js"></script>
+ <script src="../../../generic/test-case.sub.js"></script>
+ </head>
+ <body>
+ <script>
+ TestCase(
+ [
+ {
+ "expectation": "allowed",
+ "origin": "cross-https",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-classic-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "fetch",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for fetch to cross-https origin and downgrade redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "same-http-downgrade",
+ "redirection": "no-redirect",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-classic-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "fetch",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for fetch to same-http-downgrade origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-classic-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "fetch",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for fetch to same-https origin and downgrade redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "cross-http-downgrade",
+ "redirection": "no-redirect",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-classic-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "fetch",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for fetch to cross-http-downgrade origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "cross-http-downgrade",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-classic-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "fetch",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for fetch to cross-http-downgrade origin and downgrade redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "same-http-downgrade",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-classic-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "fetch",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for fetch to same-http-downgrade origin and downgrade redirection from https context."
+ }
+ ],
+ new SanityChecker()
+ ).start();
+ </script>
+ <div id="log"></div>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-classic-data.meta/upgrade/websocket.https.html b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-classic-data.meta/upgrade/websocket.https.html
new file mode 100644
index 00000000000..4347f011888
--- /dev/null
+++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-classic-data.meta/upgrade/websocket.https.html
@@ -0,0 +1,53 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec upgrade-insecure-requests/` -->
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta name="timeout" content="long">
+ <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/security-features/resources/common.sub.js"></script>
+ <script src="../../../generic/test-case.sub.js"></script>
+ </head>
+ <body>
+ <script>
+ TestCase(
+ [
+ {
+ "expectation": "allowed",
+ "origin": "cross-ws-downgrade",
+ "redirection": "no-redirect",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-classic-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "websocket",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for websocket to cross-ws-downgrade origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "same-ws-downgrade",
+ "redirection": "no-redirect",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-classic-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "websocket",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for websocket to same-ws-downgrade origin and no-redirect redirection from https context."
+ }
+ ],
+ new SanityChecker()
+ ).start();
+ </script>
+ <div id="log"></div>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-classic-data.meta/upgrade/xhr.https.html b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-classic-data.meta/upgrade/xhr.https.html
new file mode 100644
index 00000000000..c0447cf3c02
--- /dev/null
+++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-classic-data.meta/upgrade/xhr.https.html
@@ -0,0 +1,113 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec upgrade-insecure-requests/` -->
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta name="timeout" content="long">
+ <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/security-features/resources/common.sub.js"></script>
+ <script src="../../../generic/test-case.sub.js"></script>
+ </head>
+ <body>
+ <script>
+ TestCase(
+ [
+ {
+ "expectation": "allowed",
+ "origin": "cross-http-downgrade",
+ "redirection": "no-redirect",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-classic-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "xhr",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for xhr to cross-http-downgrade origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "same-http-downgrade",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-classic-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "xhr",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for xhr to same-http-downgrade origin and downgrade redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-classic-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "xhr",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for xhr to same-https origin and downgrade redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "same-http-downgrade",
+ "redirection": "no-redirect",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-classic-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "xhr",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for xhr to same-http-downgrade origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "cross-http-downgrade",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-classic-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "xhr",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for xhr to cross-http-downgrade origin and downgrade redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "cross-https",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-classic-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "xhr",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for xhr to cross-https origin and downgrade redirection from https context."
+ }
+ ],
+ new SanityChecker()
+ ).start();
+ </script>
+ <div id="log"></div>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-module-data.http-rp/upgrade/fetch.https.html b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-module-data.http-rp/upgrade/fetch.https.html
new file mode 100644
index 00000000000..ea2320e6ce7
--- /dev/null
+++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-module-data.http-rp/upgrade/fetch.https.html
@@ -0,0 +1,112 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec upgrade-insecure-requests/` -->
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta name="timeout" content="long">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/security-features/resources/common.sub.js"></script>
+ <script src="../../../generic/test-case.sub.js"></script>
+ </head>
+ <body>
+ <script>
+ TestCase(
+ [
+ {
+ "expectation": "allowed",
+ "origin": "cross-https",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "fetch",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for fetch to cross-https origin and downgrade redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "cross-http-downgrade",
+ "redirection": "no-redirect",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "fetch",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for fetch to cross-http-downgrade origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "fetch",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for fetch to same-https origin and downgrade redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "same-http-downgrade",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "fetch",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for fetch to same-http-downgrade origin and downgrade redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "cross-http-downgrade",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "fetch",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for fetch to cross-http-downgrade origin and downgrade redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "same-http-downgrade",
+ "redirection": "no-redirect",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "fetch",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for fetch to same-http-downgrade origin and no-redirect redirection from https context."
+ }
+ ],
+ new SanityChecker()
+ ).start();
+ </script>
+ <div id="log"></div>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-module-data.http-rp/upgrade/fetch.https.html.headers b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-module-data.http-rp/upgrade/fetch.https.html.headers
new file mode 100644
index 00000000000..602d9dc38d0
--- /dev/null
+++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-module-data.http-rp/upgrade/fetch.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-module-data.http-rp/upgrade/websocket.https.html b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-module-data.http-rp/upgrade/websocket.https.html
new file mode 100644
index 00000000000..124a03c37f4
--- /dev/null
+++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-module-data.http-rp/upgrade/websocket.https.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec upgrade-insecure-requests/` -->
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta name="timeout" content="long">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/security-features/resources/common.sub.js"></script>
+ <script src="../../../generic/test-case.sub.js"></script>
+ </head>
+ <body>
+ <script>
+ TestCase(
+ [
+ {
+ "expectation": "allowed",
+ "origin": "same-ws-downgrade",
+ "redirection": "no-redirect",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "websocket",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for websocket to same-ws-downgrade origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "cross-ws-downgrade",
+ "redirection": "no-redirect",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "websocket",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for websocket to cross-ws-downgrade origin and no-redirect redirection from https context."
+ }
+ ],
+ new SanityChecker()
+ ).start();
+ </script>
+ <div id="log"></div>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-module-data.http-rp/upgrade/websocket.https.html.headers b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-module-data.http-rp/upgrade/websocket.https.html.headers
new file mode 100644
index 00000000000..602d9dc38d0
--- /dev/null
+++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-module-data.http-rp/upgrade/websocket.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-module-data.http-rp/upgrade/xhr.https.html b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-module-data.http-rp/upgrade/xhr.https.html
new file mode 100644
index 00000000000..b04b07adb57
--- /dev/null
+++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-module-data.http-rp/upgrade/xhr.https.html
@@ -0,0 +1,112 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec upgrade-insecure-requests/` -->
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta name="timeout" content="long">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/security-features/resources/common.sub.js"></script>
+ <script src="../../../generic/test-case.sub.js"></script>
+ </head>
+ <body>
+ <script>
+ TestCase(
+ [
+ {
+ "expectation": "allowed",
+ "origin": "same-http-downgrade",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "xhr",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for xhr to same-http-downgrade origin and downgrade redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "same-http-downgrade",
+ "redirection": "no-redirect",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "xhr",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for xhr to same-http-downgrade origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "cross-http-downgrade",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "xhr",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for xhr to cross-http-downgrade origin and downgrade redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "xhr",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for xhr to same-https origin and downgrade redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "cross-https",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "xhr",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for xhr to cross-https origin and downgrade redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "cross-http-downgrade",
+ "redirection": "no-redirect",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "xhr",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for xhr to cross-http-downgrade origin and no-redirect redirection from https context."
+ }
+ ],
+ new SanityChecker()
+ ).start();
+ </script>
+ <div id="log"></div>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-module-data.http-rp/upgrade/xhr.https.html.headers b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-module-data.http-rp/upgrade/xhr.https.html.headers
new file mode 100644
index 00000000000..602d9dc38d0
--- /dev/null
+++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-module-data.http-rp/upgrade/xhr.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-module-data.meta/unset/fetch.https.html b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-module-data.meta/unset/fetch.https.html
new file mode 100644
index 00000000000..d6b8cdf4171
--- /dev/null
+++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-module-data.meta/unset/fetch.https.html
@@ -0,0 +1,112 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec upgrade-insecure-requests/` -->
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta name="timeout" content="long">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/security-features/resources/common.sub.js"></script>
+ <script src="../../../generic/test-case.sub.js"></script>
+ </head>
+ <body>
+ <script>
+ TestCase(
+ [
+ {
+ "expectation": "blocked",
+ "origin": "same-http-downgrade",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "fetch",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects blocked for fetch to same-http-downgrade origin and downgrade redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http-downgrade",
+ "redirection": "no-redirect",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "fetch",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects blocked for fetch to same-http-downgrade origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-https",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "fetch",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects blocked for fetch to same-https origin and downgrade redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http-downgrade",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "fetch",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects blocked for fetch to cross-http-downgrade origin and downgrade redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http-downgrade",
+ "redirection": "no-redirect",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "fetch",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects blocked for fetch to cross-http-downgrade origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-https",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "fetch",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects blocked for fetch to cross-https origin and downgrade redirection from https context."
+ }
+ ],
+ new SanityChecker()
+ ).start();
+ </script>
+ <div id="log"></div>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-module-data.meta/unset/websocket.https.html b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-module-data.meta/unset/websocket.https.html
new file mode 100644
index 00000000000..a4798e53a06
--- /dev/null
+++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-module-data.meta/unset/websocket.https.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec upgrade-insecure-requests/` -->
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta name="timeout" content="long">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/security-features/resources/common.sub.js"></script>
+ <script src="../../../generic/test-case.sub.js"></script>
+ </head>
+ <body>
+ <script>
+ TestCase(
+ [
+ {
+ "expectation": "blocked",
+ "origin": "same-ws-downgrade",
+ "redirection": "no-redirect",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "websocket",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects blocked for websocket to same-ws-downgrade origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-ws-downgrade",
+ "redirection": "no-redirect",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "websocket",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects blocked for websocket to cross-ws-downgrade origin and no-redirect redirection from https context."
+ }
+ ],
+ new SanityChecker()
+ ).start();
+ </script>
+ <div id="log"></div>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-module-data.meta/unset/xhr.https.html b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-module-data.meta/unset/xhr.https.html
new file mode 100644
index 00000000000..681c1cee442
--- /dev/null
+++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-module-data.meta/unset/xhr.https.html
@@ -0,0 +1,112 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec upgrade-insecure-requests/` -->
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta name="timeout" content="long">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/security-features/resources/common.sub.js"></script>
+ <script src="../../../generic/test-case.sub.js"></script>
+ </head>
+ <body>
+ <script>
+ TestCase(
+ [
+ {
+ "expectation": "blocked",
+ "origin": "cross-http-downgrade",
+ "redirection": "no-redirect",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "xhr",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects blocked for xhr to cross-http-downgrade origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http-downgrade",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "xhr",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects blocked for xhr to cross-http-downgrade origin and downgrade redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http-downgrade",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "xhr",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects blocked for xhr to same-http-downgrade origin and downgrade redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http-downgrade",
+ "redirection": "no-redirect",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "xhr",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects blocked for xhr to same-http-downgrade origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-https",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "xhr",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects blocked for xhr to same-https origin and downgrade redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-https",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "xhr",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects blocked for xhr to cross-https origin and downgrade redirection from https context."
+ }
+ ],
+ new SanityChecker()
+ ).start();
+ </script>
+ <div id="log"></div>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-module-data.meta/upgrade/fetch.https.html b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-module-data.meta/upgrade/fetch.https.html
new file mode 100644
index 00000000000..b355fd0c14c
--- /dev/null
+++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-module-data.meta/upgrade/fetch.https.html
@@ -0,0 +1,113 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec upgrade-insecure-requests/` -->
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta name="timeout" content="long">
+ <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/security-features/resources/common.sub.js"></script>
+ <script src="../../../generic/test-case.sub.js"></script>
+ </head>
+ <body>
+ <script>
+ TestCase(
+ [
+ {
+ "expectation": "allowed",
+ "origin": "cross-http-downgrade",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "fetch",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for fetch to cross-http-downgrade origin and downgrade redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "cross-http-downgrade",
+ "redirection": "no-redirect",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "fetch",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for fetch to cross-http-downgrade origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "same-http-downgrade",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "fetch",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for fetch to same-http-downgrade origin and downgrade redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "fetch",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for fetch to same-https origin and downgrade redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "same-http-downgrade",
+ "redirection": "no-redirect",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "fetch",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for fetch to same-http-downgrade origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "cross-https",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "fetch",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for fetch to cross-https origin and downgrade redirection from https context."
+ }
+ ],
+ new SanityChecker()
+ ).start();
+ </script>
+ <div id="log"></div>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-module-data.meta/upgrade/websocket.https.html b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-module-data.meta/upgrade/websocket.https.html
new file mode 100644
index 00000000000..36bac646a02
--- /dev/null
+++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-module-data.meta/upgrade/websocket.https.html
@@ -0,0 +1,53 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec upgrade-insecure-requests/` -->
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta name="timeout" content="long">
+ <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/security-features/resources/common.sub.js"></script>
+ <script src="../../../generic/test-case.sub.js"></script>
+ </head>
+ <body>
+ <script>
+ TestCase(
+ [
+ {
+ "expectation": "allowed",
+ "origin": "cross-ws-downgrade",
+ "redirection": "no-redirect",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "websocket",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for websocket to cross-ws-downgrade origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "same-ws-downgrade",
+ "redirection": "no-redirect",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "websocket",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for websocket to same-ws-downgrade origin and no-redirect redirection from https context."
+ }
+ ],
+ new SanityChecker()
+ ).start();
+ </script>
+ <div id="log"></div>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-module-data.meta/upgrade/xhr.https.html b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-module-data.meta/upgrade/xhr.https.html
new file mode 100644
index 00000000000..befbb210fc8
--- /dev/null
+++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-module-data.meta/upgrade/xhr.https.html
@@ -0,0 +1,113 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec upgrade-insecure-requests/` -->
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta name="timeout" content="long">
+ <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/security-features/resources/common.sub.js"></script>
+ <script src="../../../generic/test-case.sub.js"></script>
+ </head>
+ <body>
+ <script>
+ TestCase(
+ [
+ {
+ "expectation": "allowed",
+ "origin": "cross-http-downgrade",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "xhr",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for xhr to cross-http-downgrade origin and downgrade redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "same-http-downgrade",
+ "redirection": "no-redirect",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "xhr",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for xhr to same-http-downgrade origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "cross-http-downgrade",
+ "redirection": "no-redirect",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "xhr",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for xhr to cross-http-downgrade origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "same-http-downgrade",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "xhr",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for xhr to same-http-downgrade origin and downgrade redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "cross-https",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "xhr",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for xhr to cross-https origin and downgrade redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "sharedworker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "xhr",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for xhr to same-https origin and downgrade redirection from https context."
+ }
+ ],
+ new SanityChecker()
+ ).start();
+ </script>
+ <div id="log"></div>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/worker-module-data.http-rp/upgrade/fetch.https.html b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/worker-module-data.http-rp/upgrade/fetch.https.html
new file mode 100644
index 00000000000..a3fa13ecfd9
--- /dev/null
+++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/worker-module-data.http-rp/upgrade/fetch.https.html
@@ -0,0 +1,112 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec upgrade-insecure-requests/` -->
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta name="timeout" content="long">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/security-features/resources/common.sub.js"></script>
+ <script src="../../../generic/test-case.sub.js"></script>
+ </head>
+ <body>
+ <script>
+ TestCase(
+ [
+ {
+ "expectation": "allowed",
+ "origin": "same-http-downgrade",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "worker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "fetch",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for fetch to same-http-downgrade origin and downgrade redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "cross-http-downgrade",
+ "redirection": "no-redirect",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "worker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "fetch",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for fetch to cross-http-downgrade origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "cross-https",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "worker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "fetch",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for fetch to cross-https origin and downgrade redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "cross-http-downgrade",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "worker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "fetch",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for fetch to cross-http-downgrade origin and downgrade redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "worker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "fetch",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for fetch to same-https origin and downgrade redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "same-http-downgrade",
+ "redirection": "no-redirect",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "worker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "fetch",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for fetch to same-http-downgrade origin and no-redirect redirection from https context."
+ }
+ ],
+ new SanityChecker()
+ ).start();
+ </script>
+ <div id="log"></div>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/worker-module-data.http-rp/upgrade/fetch.https.html.headers b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/worker-module-data.http-rp/upgrade/fetch.https.html.headers
new file mode 100644
index 00000000000..602d9dc38d0
--- /dev/null
+++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/worker-module-data.http-rp/upgrade/fetch.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/worker-module-data.http-rp/upgrade/websocket.https.html b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/worker-module-data.http-rp/upgrade/websocket.https.html
new file mode 100644
index 00000000000..53dc448d6c4
--- /dev/null
+++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/worker-module-data.http-rp/upgrade/websocket.https.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec upgrade-insecure-requests/` -->
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta name="timeout" content="long">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/security-features/resources/common.sub.js"></script>
+ <script src="../../../generic/test-case.sub.js"></script>
+ </head>
+ <body>
+ <script>
+ TestCase(
+ [
+ {
+ "expectation": "allowed",
+ "origin": "same-ws-downgrade",
+ "redirection": "no-redirect",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "worker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "websocket",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for websocket to same-ws-downgrade origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "cross-ws-downgrade",
+ "redirection": "no-redirect",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "worker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "websocket",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for websocket to cross-ws-downgrade origin and no-redirect redirection from https context."
+ }
+ ],
+ new SanityChecker()
+ ).start();
+ </script>
+ <div id="log"></div>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/worker-module-data.http-rp/upgrade/websocket.https.html.headers b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/worker-module-data.http-rp/upgrade/websocket.https.html.headers
new file mode 100644
index 00000000000..602d9dc38d0
--- /dev/null
+++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/worker-module-data.http-rp/upgrade/websocket.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/worker-module-data.http-rp/upgrade/xhr.https.html b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/worker-module-data.http-rp/upgrade/xhr.https.html
new file mode 100644
index 00000000000..1125fa45434
--- /dev/null
+++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/worker-module-data.http-rp/upgrade/xhr.https.html
@@ -0,0 +1,112 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec upgrade-insecure-requests/` -->
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta name="timeout" content="long">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/security-features/resources/common.sub.js"></script>
+ <script src="../../../generic/test-case.sub.js"></script>
+ </head>
+ <body>
+ <script>
+ TestCase(
+ [
+ {
+ "expectation": "allowed",
+ "origin": "same-http-downgrade",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "worker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "xhr",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for xhr to same-http-downgrade origin and downgrade redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "cross-http-downgrade",
+ "redirection": "no-redirect",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "worker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "xhr",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for xhr to cross-http-downgrade origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "cross-https",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "worker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "xhr",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for xhr to cross-https origin and downgrade redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "same-http-downgrade",
+ "redirection": "no-redirect",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "worker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "xhr",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for xhr to same-http-downgrade origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "cross-http-downgrade",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "worker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "xhr",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for xhr to cross-http-downgrade origin and downgrade redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "worker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "xhr",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for xhr to same-https origin and downgrade redirection from https context."
+ }
+ ],
+ new SanityChecker()
+ ).start();
+ </script>
+ <div id="log"></div>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/worker-module-data.http-rp/upgrade/xhr.https.html.headers b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/worker-module-data.http-rp/upgrade/xhr.https.html.headers
new file mode 100644
index 00000000000..602d9dc38d0
--- /dev/null
+++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/worker-module-data.http-rp/upgrade/xhr.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/worker-module-data.meta/unset/fetch.https.html b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/worker-module-data.meta/unset/fetch.https.html
new file mode 100644
index 00000000000..a3cd2146663
--- /dev/null
+++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/worker-module-data.meta/unset/fetch.https.html
@@ -0,0 +1,112 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec upgrade-insecure-requests/` -->
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta name="timeout" content="long">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/security-features/resources/common.sub.js"></script>
+ <script src="../../../generic/test-case.sub.js"></script>
+ </head>
+ <body>
+ <script>
+ TestCase(
+ [
+ {
+ "expectation": "blocked",
+ "origin": "same-https",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "worker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "fetch",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects blocked for fetch to same-https origin and downgrade redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-https",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "worker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "fetch",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects blocked for fetch to cross-https origin and downgrade redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http-downgrade",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "worker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "fetch",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects blocked for fetch to same-http-downgrade origin and downgrade redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http-downgrade",
+ "redirection": "no-redirect",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "worker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "fetch",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects blocked for fetch to same-http-downgrade origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http-downgrade",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "worker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "fetch",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects blocked for fetch to cross-http-downgrade origin and downgrade redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http-downgrade",
+ "redirection": "no-redirect",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "worker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "fetch",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects blocked for fetch to cross-http-downgrade origin and no-redirect redirection from https context."
+ }
+ ],
+ new SanityChecker()
+ ).start();
+ </script>
+ <div id="log"></div>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/worker-module-data.meta/unset/websocket.https.html b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/worker-module-data.meta/unset/websocket.https.html
new file mode 100644
index 00000000000..27e0c78bb8e
--- /dev/null
+++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/worker-module-data.meta/unset/websocket.https.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec upgrade-insecure-requests/` -->
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta name="timeout" content="long">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/security-features/resources/common.sub.js"></script>
+ <script src="../../../generic/test-case.sub.js"></script>
+ </head>
+ <body>
+ <script>
+ TestCase(
+ [
+ {
+ "expectation": "blocked",
+ "origin": "cross-ws-downgrade",
+ "redirection": "no-redirect",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "worker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "websocket",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects blocked for websocket to cross-ws-downgrade origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-ws-downgrade",
+ "redirection": "no-redirect",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "worker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "websocket",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects blocked for websocket to same-ws-downgrade origin and no-redirect redirection from https context."
+ }
+ ],
+ new SanityChecker()
+ ).start();
+ </script>
+ <div id="log"></div>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/worker-module-data.meta/unset/xhr.https.html b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/worker-module-data.meta/unset/xhr.https.html
new file mode 100644
index 00000000000..cc450bfef7a
--- /dev/null
+++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/worker-module-data.meta/unset/xhr.https.html
@@ -0,0 +1,112 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec upgrade-insecure-requests/` -->
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta name="timeout" content="long">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/security-features/resources/common.sub.js"></script>
+ <script src="../../../generic/test-case.sub.js"></script>
+ </head>
+ <body>
+ <script>
+ TestCase(
+ [
+ {
+ "expectation": "blocked",
+ "origin": "same-http-downgrade",
+ "redirection": "no-redirect",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "worker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "xhr",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects blocked for xhr to same-http-downgrade origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-https",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "worker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "xhr",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects blocked for xhr to cross-https origin and downgrade redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http-downgrade",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "worker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "xhr",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects blocked for xhr to same-http-downgrade origin and downgrade redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http-downgrade",
+ "redirection": "no-redirect",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "worker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "xhr",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects blocked for xhr to cross-http-downgrade origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-https",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "worker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "xhr",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects blocked for xhr to same-https origin and downgrade redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http-downgrade",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "worker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "xhr",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects blocked for xhr to cross-http-downgrade origin and downgrade redirection from https context."
+ }
+ ],
+ new SanityChecker()
+ ).start();
+ </script>
+ <div id="log"></div>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/worker-module-data.meta/upgrade/fetch.https.html b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/worker-module-data.meta/upgrade/fetch.https.html
new file mode 100644
index 00000000000..b50873f8085
--- /dev/null
+++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/worker-module-data.meta/upgrade/fetch.https.html
@@ -0,0 +1,113 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec upgrade-insecure-requests/` -->
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta name="timeout" content="long">
+ <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/security-features/resources/common.sub.js"></script>
+ <script src="../../../generic/test-case.sub.js"></script>
+ </head>
+ <body>
+ <script>
+ TestCase(
+ [
+ {
+ "expectation": "allowed",
+ "origin": "same-http-downgrade",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "worker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "fetch",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for fetch to same-http-downgrade origin and downgrade redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "worker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "fetch",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for fetch to same-https origin and downgrade redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "cross-http-downgrade",
+ "redirection": "no-redirect",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "worker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "fetch",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for fetch to cross-http-downgrade origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "cross-http-downgrade",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "worker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "fetch",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for fetch to cross-http-downgrade origin and downgrade redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "cross-https",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "worker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "fetch",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for fetch to cross-https origin and downgrade redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "same-http-downgrade",
+ "redirection": "no-redirect",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "worker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "fetch",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for fetch to same-http-downgrade origin and no-redirect redirection from https context."
+ }
+ ],
+ new SanityChecker()
+ ).start();
+ </script>
+ <div id="log"></div>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/worker-module-data.meta/upgrade/websocket.https.html b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/worker-module-data.meta/upgrade/websocket.https.html
new file mode 100644
index 00000000000..0173f7986b0
--- /dev/null
+++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/worker-module-data.meta/upgrade/websocket.https.html
@@ -0,0 +1,53 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec upgrade-insecure-requests/` -->
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta name="timeout" content="long">
+ <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/security-features/resources/common.sub.js"></script>
+ <script src="../../../generic/test-case.sub.js"></script>
+ </head>
+ <body>
+ <script>
+ TestCase(
+ [
+ {
+ "expectation": "allowed",
+ "origin": "cross-ws-downgrade",
+ "redirection": "no-redirect",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "worker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "websocket",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for websocket to cross-ws-downgrade origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "same-ws-downgrade",
+ "redirection": "no-redirect",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "worker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "websocket",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for websocket to same-ws-downgrade origin and no-redirect redirection from https context."
+ }
+ ],
+ new SanityChecker()
+ ).start();
+ </script>
+ <div id="log"></div>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/worker-module-data.meta/upgrade/xhr.https.html b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/worker-module-data.meta/upgrade/xhr.https.html
new file mode 100644
index 00000000000..cc0a17b9f1a
--- /dev/null
+++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/gen/worker-module-data.meta/upgrade/xhr.https.html
@@ -0,0 +1,113 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec upgrade-insecure-requests/` -->
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta name="timeout" content="long">
+ <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/security-features/resources/common.sub.js"></script>
+ <script src="../../../generic/test-case.sub.js"></script>
+ </head>
+ <body>
+ <script>
+ TestCase(
+ [
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "worker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "xhr",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for xhr to same-https origin and downgrade redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "same-http-downgrade",
+ "redirection": "no-redirect",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "worker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "xhr",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for xhr to same-http-downgrade origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "cross-https",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "worker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "xhr",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for xhr to cross-https origin and downgrade redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "same-http-downgrade",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "worker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "xhr",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for xhr to same-http-downgrade origin and downgrade redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "cross-http-downgrade",
+ "redirection": "downgrade",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "worker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "xhr",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for xhr to cross-http-downgrade origin and downgrade redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "cross-http-downgrade",
+ "redirection": "no-redirect",
+ "source_context_list": [
+ {
+ "policyDeliveries": [],
+ "sourceContextType": "worker-module-data"
+ }
+ ],
+ "source_scheme": "https",
+ "subresource": "xhr",
+ "subresource_policy_deliveries": [],
+ "test_description": "Upgrade-Insecure-Requests: Expects allowed for xhr to cross-http-downgrade origin and no-redirect redirection from https context."
+ }
+ ],
+ new SanityChecker()
+ ).start();
+ </script>
+ <div id="log"></div>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/spec.src.json b/tests/wpt/web-platform-tests/upgrade-insecure-requests/spec.src.json
index 139b5c451f7..43f2d6dbc18 100644
--- a/tests/wpt/web-platform-tests/upgrade-insecure-requests/spec.src.json
+++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/spec.src.json
@@ -102,10 +102,7 @@
"source_context_list": [
"req",
"srcdoc",
- "iframe",
- "worker-module-data",
- "sharedworker-classic-data",
- "sharedworker-module-data"
+ "iframe"
],
"delivery_type": "*",
"delivery_value": "*",
diff --git a/tests/wpt/web-platform-tests/wake-lock/idlharness-worker.https.window.js b/tests/wpt/web-platform-tests/wake-lock/idlharness-worker.https.window.js
new file mode 100644
index 00000000000..c747ad6872a
--- /dev/null
+++ b/tests/wpt/web-platform-tests/wake-lock/idlharness-worker.https.window.js
@@ -0,0 +1,13 @@
+// META: script=/resources/testdriver.js
+// META: script=/resources/testdriver-vendor.js
+
+// https://w3c.github.io/wake-lock/
+
+'use strict';
+
+promise_test(async t => {
+ await test_driver.set_permission(
+ { name: 'wake-lock', type: 'system' }, 'granted', false);
+
+ await fetch_tests_from_worker(new Worker('resources/idlharness-worker.js'));
+}, 'Run idlharness tests in a worker.');
diff --git a/tests/wpt/web-platform-tests/wake-lock/idlharness.https.any.js b/tests/wpt/web-platform-tests/wake-lock/idlharness.https.window.js
index b5d764aee0d..f9e3c02175d 100644
--- a/tests/wpt/web-platform-tests/wake-lock/idlharness.https.any.js
+++ b/tests/wpt/web-platform-tests/wake-lock/idlharness.https.window.js
@@ -1,5 +1,7 @@
// META: script=/resources/WebIDLParser.js
// META: script=/resources/idlharness.js
+// META: script=/resources/testdriver.js
+// META: script=/resources/testdriver-vendor.js
// https://w3c.github.io/wake-lock/
@@ -9,18 +11,15 @@ idl_test(
['wake-lock'],
['dom', 'html', 'permissions'],
async idl_array => {
- if (self.GLOBAL.isWorker()) {
- idl_array.add_objects({ WorkerNavigator: ['navigator'] });
- } else {
- idl_array.add_objects({ Navigator: ['navigator'] });
- }
+ idl_array.add_objects({ Navigator: ['navigator'] });
+
idl_array.add_objects({
WakeLock: ['navigator.wakeLock'],
WakeLockSentinel: ['sentinel'],
});
- // For now, this assumes the request will be granted and the promise will
- // be fulfilled with a WakeLockSentinel object.
+ await test_driver.set_permission(
+ { name: 'wake-lock', type: 'screen' }, 'granted', false);
self.sentinel = await navigator.wakeLock.request('screen');
self.sentinel.release();
}
diff --git a/tests/wpt/web-platform-tests/wake-lock/resources/idlharness-worker.js b/tests/wpt/web-platform-tests/wake-lock/resources/idlharness-worker.js
new file mode 100644
index 00000000000..b84ed44a8c8
--- /dev/null
+++ b/tests/wpt/web-platform-tests/wake-lock/resources/idlharness-worker.js
@@ -0,0 +1,24 @@
+'use strict';
+
+// https://w3c.github.io/wake-lock/
+
+importScripts("/resources/testharness.js");
+importScripts("/resources/WebIDLParser.js", "/resources/idlharness.js");
+
+idl_test(
+ ['wake-lock'],
+ ['dom', 'html', 'permissions'],
+ async idl_array => {
+ idl_array.add_objects({ WorkerNavigator: ['navigator'] });
+
+ idl_array.add_objects({
+ WakeLock: ['navigator.wakeLock'],
+ WakeLockSentinel: ['sentinel'],
+ });
+
+ self.sentinel = await navigator.wakeLock.request('system');
+ self.sentinel.release();
+ }
+);
+
+done();
diff --git a/tests/wpt/web-platform-tests/wake-lock/wakelock-enabled-by-feature-policy-attribute-redirect-on-load.https.sub.html b/tests/wpt/web-platform-tests/wake-lock/wakelock-enabled-by-feature-policy-attribute-redirect-on-load.https.sub.html
index 18a2d7c6ba2..f28a96141c8 100644
--- a/tests/wpt/web-platform-tests/wake-lock/wakelock-enabled-by-feature-policy-attribute-redirect-on-load.https.sub.html
+++ b/tests/wpt/web-platform-tests/wake-lock/wakelock-enabled-by-feature-policy-attribute-redirect-on-load.https.sub.html
@@ -12,10 +12,6 @@
const cross_origin_src =
base_src + "https://{{domains[www]}}:{{ports[https][0]}}" + relative_path;
- // request() checks for both Feature Policy and permission, so the tests below
- // can have inconsistent results due to the default permission a wake lock
- // request might return.
-
async_test(t => {
test_feature_availability(
'navigator.wakeLock.request("screen")',
diff --git a/tests/wpt/web-platform-tests/wake-lock/wakelock-enabled-by-feature-policy.https.sub.html b/tests/wpt/web-platform-tests/wake-lock/wakelock-enabled-by-feature-policy.https.sub.html
index 8573f7aa63b..d0f5a15c84b 100644
--- a/tests/wpt/web-platform-tests/wake-lock/wakelock-enabled-by-feature-policy.https.sub.html
+++ b/tests/wpt/web-platform-tests/wake-lock/wakelock-enabled-by-feature-policy.https.sub.html
@@ -2,6 +2,8 @@
<body>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
<script src="/feature-policy/resources/featurepolicy.js"></script>
<script>
"use strict";
@@ -11,12 +13,10 @@
const cross_origin_src =
"https://{{domains[www]}}:{{ports[https][0]}}" + same_origin_src;
- // request() checks for both Feature Policy and permission, so the tests below
- // can have inconsistent results due to the default permission a wake lock
- // request might return.
-
- promise_test(t => {
- return navigator.wakeLock.request('screen').then(lock => lock.release());
+ promise_test(async t => {
+ await test_driver.set_permission(
+ { name: 'wake-lock', type: 'screen' }, 'granted', false);
+ await navigator.wakeLock.request('screen').then(lock => lock.release());
}, 'Feature-Policy header {"wake-lock" : ["*"]} allows the top-level document.');
async_test(t => {
diff --git a/tests/wpt/web-platform-tests/wake-lock/wakelock-enabled-on-self-origin-by-feature-policy.https.sub.html b/tests/wpt/web-platform-tests/wake-lock/wakelock-enabled-on-self-origin-by-feature-policy.https.sub.html
index 308217022e1..73f343867e6 100644
--- a/tests/wpt/web-platform-tests/wake-lock/wakelock-enabled-on-self-origin-by-feature-policy.https.sub.html
+++ b/tests/wpt/web-platform-tests/wake-lock/wakelock-enabled-on-self-origin-by-feature-policy.https.sub.html
@@ -2,6 +2,8 @@
<body>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
<script src="/feature-policy/resources/featurepolicy.js"></script>
<script>
@@ -12,12 +14,10 @@
const cross_origin_src =
"https://{{domains[www]}}:{{ports[https][0]}}" + same_origin_src;
- // request() checks for both Feature Policy and permission, so the tests below
- // can have inconsistent results due to the default permission a wake lock
- // request might return.
-
- promise_test(t => {
- return navigator.wakeLock.request('screen').then(lock => lock.release());
+ promise_test(async t => {
+ await test_driver.set_permission(
+ { name: 'wake-lock', type: 'screen' }, 'granted', false);
+ await navigator.wakeLock.request('screen').then(lock => lock.release());
}, 'Feature-Policy header wake-lock "self" allows the top-level document.');
async_test(t => {
diff --git a/tests/wpt/web-platform-tests/web-animations/interfaces/Animation/finished.html b/tests/wpt/web-platform-tests/web-animations/interfaces/Animation/finished.html
index 563d4ba6dd4..bee4fd8fb7a 100644
--- a/tests/wpt/web-platform-tests/web-animations/interfaces/Animation/finished.html
+++ b/tests/wpt/web-platform-tests/web-animations/interfaces/Animation/finished.html
@@ -395,5 +395,22 @@ promise_test(t => {
return Promise.race([timeout, testSuccess]);
}, 'Finished promise should be rejected after the ready promise is rejected');
+promise_test(async t => {
+ const animation = createDiv(t).animate(null, 100 * MS_PER_SEC);
+
+ // Ensure the finished promise is created
+ const finished = animation.finished;
+
+ window.addEventListener(
+ 'unhandledrejection',
+ t.unreached_func('Should not get an unhandled rejection')
+ );
+
+ animation.cancel();
+
+ // Wait a moment to allow a chance for the event to be dispatched.
+ await waitForAnimationFrames(2);
+}, 'Finished promise does not report an unhandledrejection when rejected');
+
</script>
</body>
diff --git a/tests/wpt/web-platform-tests/web-animations/interfaces/Animation/ready.html b/tests/wpt/web-platform-tests/web-animations/interfaces/Animation/ready.html
index 461c4e95814..462e2a04844 100644
--- a/tests/wpt/web-platform-tests/web-animations/interfaces/Animation/ready.html
+++ b/tests/wpt/web-platform-tests/web-animations/interfaces/Animation/ready.html
@@ -57,5 +57,22 @@ promise_test(t => {
});
}, 'The ready promise is fulfilled with its Animation');
+promise_test(async t => {
+ const animation = createDiv(t).animate(null, 100 * MS_PER_SEC);
+
+ // Ensure the ready promise is created
+ const ready = animation.ready;
+
+ window.addEventListener(
+ 'unhandledrejection',
+ t.unreached_func('Should not get an unhandled rejection')
+ );
+
+ animation.cancel();
+
+ // Wait a moment to allow a chance for the event to be dispatched.
+ await waitForAnimationFrames(2);
+}, 'The ready promise does not report an unhandledrejection when rejected');
+
</script>
</body>
diff --git a/tests/wpt/web-platform-tests/workers/WorkerNavigator_userAgentData.http.html b/tests/wpt/web-platform-tests/workers/WorkerNavigator_userAgentData.http.html
new file mode 100644
index 00000000000..e47e7e7ceba
--- /dev/null
+++ b/tests/wpt/web-platform-tests/workers/WorkerNavigator_userAgentData.http.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<title> WorkerNavigator.userAgentData </title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+
+ promise_test(async () => {
+ const e = await new Promise((resolve, reject) => {
+ const worker = new Worker("./support/WorkerNavigator.js");
+ worker.onmessage = resolve;
+ });
+
+ assert_equals(e.data.uaList, undefined);
+ assert_equals(e.data.mobile, undefined);
+ assert_equals(e.data.getHighEntropyValues, undefined);
+ }, "Test that userAgentData is not available in workers in non-secure contexts");
+</script>
diff --git a/tests/wpt/web-platform-tests/workers/WorkerNavigator_userAgentData.https.html b/tests/wpt/web-platform-tests/workers/WorkerNavigator_userAgentData.https.html
new file mode 100644
index 00000000000..91a63966c01
--- /dev/null
+++ b/tests/wpt/web-platform-tests/workers/WorkerNavigator_userAgentData.https.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<title> WorkerNavigator.userAgentData </title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+
+ promise_test(async () => {
+ const e = await new Promise((resolve, reject) => {
+ const worker = new Worker("./support/WorkerNavigator.js");
+ worker.onmessage = resolve;
+ });
+
+ assert_equals(e.data.uaList.length, navigator.userAgentData.uaList.length);
+ for (let i = 0; i < e.data.uaList.length; ++i) {
+ const workerUA = e.data.uaList[i];
+ const windowUA = navigator.userAgentData.uaList[i];
+ assert_equals(workerUA.brand, windowUA.brand);
+ assert_equals(workerUA.version, windowUA.version);
+ }
+ assert_equals(e.data.mobile, navigator.userAgentData.mobile);
+ const highEntropyValues = await navigator.userAgentData.getHighEntropyValues(["platform", "platformVersion", "architecture", "model", "uaFullVersion"]);
+ assert_equals(e.data.model, highEntropyValues.model);
+ assert_equals(e.data.platform, highEntropyValues.platform);
+ assert_equals(e.data.platformVersion, highEntropyValues.platformVersion);
+ assert_equals(e.data.architecture, highEntropyValues.architecture);
+ assert_equals(e.data.uaFullVersion, highEntropyValues.uaFullVersion);
+ assert_equals(e.data.NavigatorUADataExposed, true);
+ }, "Test that userAgentData is available in workers in secure contexts");
+</script>
diff --git a/tests/wpt/web-platform-tests/workers/support/WorkerNavigator.js b/tests/wpt/web-platform-tests/workers/support/WorkerNavigator.js
index 084e45b2458..eec2f6884a1 100644
--- a/tests/wpt/web-platform-tests/workers/support/WorkerNavigator.js
+++ b/tests/wpt/web-platform-tests/workers/support/WorkerNavigator.js
@@ -1,8 +1,20 @@
-var obj = new Object();
-obj.appName = navigator.appName;
-obj.appVersion = navigator.appVersion;
-obj.platform = navigator.platform;
-obj.userAgent = navigator.userAgent;
-obj.onLine = navigator.onLine;
-
-postMessage(obj);
+(async () => {
+ const obj = new Object();
+ obj.appName = navigator.appName;
+ obj.appVersion = navigator.appVersion;
+ obj.platform = navigator.platform;
+ obj.userAgent = navigator.userAgent;
+ obj.onLine = navigator.onLine;
+ if (navigator.userAgentData) {
+ obj.uaList = navigator.userAgentData.uaList;
+ obj.mobile = navigator.userAgentData.mobile;
+ const highEntropyValues = await navigator.userAgentData.getHighEntropyValues(["platform", "platformVersion", "architecture", "model", "uaFullVersion"]);
+ obj.platform = highEntropyValues.platform;
+ obj.platformVersion = highEntropyValues.platformVersion;
+ obj.architecture = highEntropyValues.architecture;
+ obj.model = highEntropyValues.model;
+ obj.uaFullVersion = highEntropyValues.uaFullVersion;
+ obj.NavigatorUADataExposed = (typeof self.NavigatorUAData != "undefined");
+ }
+ postMessage(obj);
+})();