diff options
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); +})(); |