mirror of
https://github.com/servo/servo.git
synced 2025-08-05 13:40:08 +01:00
Update web-platform-tests to revision 6a665f63ae39b552f60b971f11c34b215861fcb3
This commit is contained in:
parent
2b0a48f291
commit
ee944e769d
119 changed files with 4924 additions and 556 deletions
|
@ -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
|
||||||
|
|
|
@ -240978,7 +240978,7 @@
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"generate.py": [
|
"generate.py": [
|
||||||
"75b7c1da5ac19288d25e2664b764b5cc631506d8",
|
"7710a824b2dc19bd76203f4d64ef7b329fd1ca35",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"spec.src.json": [
|
"spec.src.json": [
|
||||||
|
@ -240999,11 +240999,11 @@
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"test.debug.html.template": [
|
"test.debug.html.template": [
|
||||||
"7650f02c2862a4923c29b39eae9b7c7d6709f250",
|
"b6be088f6112a040ad84d2b5c176373180111d62",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"test.release.html.template": [
|
"test.release.html.template": [
|
||||||
"71d83f83a2623881b63444cb435d29a4aeb023a3",
|
"bac2d5b5a4d78dbb27170c59baeec70cb23add81",
|
||||||
[]
|
[]
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -280532,7 +280532,7 @@
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"testcommon.js": [
|
"testcommon.js": [
|
||||||
"7d63d2c49bce5152d765ac62728f749f622bde2a",
|
"e26a7a1858ab9e4d404fa9fb76b4a9f4c4f13572",
|
||||||
[]
|
[]
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -312985,7 +312985,7 @@
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"feature-policy-wakelock.html": [
|
"feature-policy-wakelock.html": [
|
||||||
"fac421c09fa2274a8de5f3b914a27fd15f3aaba3",
|
"7d3dab45af1d57c805f14cfdbed142ddb2415eba",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"feature-policy-webvr.html": [
|
"feature-policy-webvr.html": [
|
||||||
|
@ -324213,20 +324213,16 @@
|
||||||
"9d664e2356a87496416644d639598adbaa8c43dd",
|
"9d664e2356a87496416644d639598adbaa8c43dd",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"child-four.html": [
|
"child-message-event-api.html": [
|
||||||
"65d17f273e1868312f59c89f3f2d05bda759ae1a",
|
"a0001633c22d19e44c1f48ddeffa07dde1fbc436",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"child-one.html": [
|
"child-one.html": [
|
||||||
"9c99729b6a98022f7449bae62a7bea616308c0c7",
|
"966837262069acbb1a414c1b4d631b457979fea4",
|
||||||
[]
|
|
||||||
],
|
|
||||||
"child-three.html": [
|
|
||||||
"5a74cf5360c6a14d2ad5eebb31d74db6980ebccf",
|
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"child-two.html": [
|
"child-two.html": [
|
||||||
"1fa8343a18684e1160ae763c4d32cd3fa4027399",
|
"dc50742051f0c53fb6de00b982c30478b63e859c",
|
||||||
[]
|
[]
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -326010,7 +326006,7 @@
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"video-raf.idl": [
|
"video-raf.idl": [
|
||||||
"9c523e6ca0330b96c9320e6ca76a077686afbe3b",
|
"0ab48e33d59392d09e24ad87b4608bd0a840f2d9",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"visual-viewport.idl": [
|
"visual-viewport.idl": [
|
||||||
|
@ -326034,7 +326030,7 @@
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"web-animations.idl": [
|
"web-animations.idl": [
|
||||||
"0d5d40ba74f40ed68c19a8218710204b2767ae12",
|
"006b27b2820f81e89a0088b996acf61fb634f325",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"web-bluetooth.idl": [
|
"web-bluetooth.idl": [
|
||||||
|
@ -326082,7 +326078,7 @@
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"webrtc-stats.idl": [
|
"webrtc-stats.idl": [
|
||||||
"f66b0791cb2fae4665a6df8cde1d1c67a18797f6",
|
"514d09f15a60446ad7a6ba78bd1288a047085af1",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"webrtc-svc.idl": [
|
"webrtc-svc.idl": [
|
||||||
|
@ -328367,7 +328363,7 @@
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"utils.js": [
|
"utils.js": [
|
||||||
"9375b175296c305c8c75eb0a6c618a7ff62364ee",
|
"fb60500f3b5f806783a394eed17accc36c75e87c",
|
||||||
[]
|
[]
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -342190,6 +342186,38 @@
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"gen": {
|
"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": {
|
"top.http-rp": {
|
||||||
"upgrade": {
|
"upgrade": {
|
||||||
"fetch.https.html.headers": [
|
"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": {
|
"worker-module-inherit.http-rp": {
|
||||||
"upgrade": {
|
"upgrade": {
|
||||||
"fetch.https.html.headers": [
|
"fetch.https.html.headers": [
|
||||||
|
@ -342410,7 +342454,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"spec.src.json": [
|
"spec.src.json": [
|
||||||
"139b5c451f7438cea55b1f47fb8102626970f91f",
|
"43f2d6dbc1867c668198e2570414fd08df817dc8",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
|
@ -342538,6 +342582,10 @@
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"resources": {
|
"resources": {
|
||||||
|
"idlharness-worker.js": [
|
||||||
|
"b84ed44a8c89713be559e9cec8a1e3f48c990179",
|
||||||
|
[]
|
||||||
|
],
|
||||||
"page1.html": [
|
"page1.html": [
|
||||||
"7fc080d380c4bd46dfb011910e570ee412561b92",
|
"7fc080d380c4bd46dfb011910e570ee412561b92",
|
||||||
[]
|
[]
|
||||||
|
@ -347579,7 +347627,7 @@
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"WorkerNavigator.js": [
|
"WorkerNavigator.js": [
|
||||||
"084e45b24585b9d43bd55e71fb727bd674977eca",
|
"eec2f6884a10562a0d21ab076b90e099dbb8891a",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"WorkerSendingPerformanceNow.js": [
|
"WorkerSendingPerformanceNow.js": [
|
||||||
|
@ -377167,7 +377215,7 @@
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"CSSAnimation-effect.tentative.html": [
|
"CSSAnimation-effect.tentative.html": [
|
||||||
"5e2d18b5bf9659e9cf8930c151abcd2a12635fa0",
|
"fadcaa129ab2c4da612add9951bf99b447fe948d",
|
||||||
[
|
[
|
||||||
null,
|
null,
|
||||||
{
|
{
|
||||||
|
@ -377318,7 +377366,7 @@
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"event-dispatch.tentative.html": [
|
"event-dispatch.tentative.html": [
|
||||||
"bf5782d24fd2e957bd73235e0e1d8b2b1e7cd41d",
|
"770f9b00b1fd3db438f6d03f7c8535cf1d2e3684",
|
||||||
[
|
[
|
||||||
null,
|
null,
|
||||||
{
|
{
|
||||||
|
@ -392070,6 +392118,13 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"transform-interpolation-computed-value.html": [
|
||||||
|
"80d2a37f4c9aaf6224d8f729214259157b0eefa7",
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"transform-matrix-composition.html": [
|
"transform-matrix-composition.html": [
|
||||||
"2586ff3d4a577b9c4b43a2841884c6f490d7ccf3",
|
"2586ff3d4a577b9c4b43a2841884c6f490d7ccf3",
|
||||||
[
|
[
|
||||||
|
@ -439137,7 +439192,7 @@
|
||||||
},
|
},
|
||||||
"user-activation": {
|
"user-activation": {
|
||||||
"activation-api-click.tentative.html": [
|
"activation-api-click.tentative.html": [
|
||||||
"7f170a04ab1c20702ad0ba282133b32046c6003b",
|
"2178863fbd2a3e101df69ef1a79e420327d7e96c",
|
||||||
[
|
[
|
||||||
null,
|
null,
|
||||||
{
|
{
|
||||||
|
@ -439145,8 +439200,8 @@
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"activation-api-iframe-no-activate.tenative.html": [
|
"activation-api-iframe-no-activate.tentative.html": [
|
||||||
"bd34518ba883d923067ff0921883387e73a42595",
|
"46fd129459c5beb0cb10eb1df40d6764c3dbc98c",
|
||||||
[
|
[
|
||||||
null,
|
null,
|
||||||
{
|
{
|
||||||
|
@ -439154,8 +439209,8 @@
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"activation-api-iframe.tenative.html": [
|
"activation-api-iframe.tentative.html": [
|
||||||
"16b0ba672bc4a27659efaa0fc24907e3f5925437",
|
"91fac9b246c6752bf33b036f6cab7bb1b9022e6c",
|
||||||
[
|
[
|
||||||
null,
|
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": [
|
"message-event-activation-api-iframe-cross-origin.sub.tentative.html": [
|
||||||
"63a1da05d0005c33bec1af8a58e7f011d5b09d4c",
|
"79899cd521808902a4d45d83250341d28a7f0c37",
|
||||||
[
|
[
|
||||||
null,
|
null,
|
||||||
{
|
{
|
||||||
|
@ -441070,7 +441091,7 @@
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"navigator_user_agent.https.html": [
|
"navigator_user_agent.https.html": [
|
||||||
"0fb9e372b0dd6f5c6463430ee4012e5c040c4a80",
|
"9409dd08e4d0e7a351de45419c310cdcccc97c86",
|
||||||
[
|
[
|
||||||
null,
|
null,
|
||||||
{}
|
{}
|
||||||
|
@ -444130,7 +444151,7 @@
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"display-1.html": [
|
"display-1.html": [
|
||||||
"9ecd45f9a4087e41a98546d1afb6faca9d396403",
|
"1d842ccc274f4b79bb6bce9d44e6db346ade2dbe",
|
||||||
[
|
[
|
||||||
null,
|
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": [
|
"first-contentful-bg-image.html": [
|
||||||
"9c3b2200fb667f66925be4333a78b23914749617",
|
"9c3b2200fb667f66925be4333a78b23914749617",
|
||||||
[
|
[
|
||||||
|
@ -474542,7 +474733,14 @@
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"scroll-animation.html": [
|
"scroll-animation.html": [
|
||||||
"62e5bb854aa2cc7d564c258f58e05342ffb8b446",
|
"711314789b12a892b0ef342c35abec89c0da3b53",
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"scroll-timeline-invalidation.html": [
|
||||||
|
"143943c4236725ab08a2d460f090f7b82c2e30db",
|
||||||
[
|
[
|
||||||
null,
|
null,
|
||||||
{}
|
{}
|
||||||
|
@ -485881,7 +486079,7 @@
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"svg-image-intrinsic-size-with-cssstyle-auto.html": [
|
"svg-image-intrinsic-size-with-cssstyle-auto.html": [
|
||||||
"6b49f62296433892913e74d0cc9c6bed7567fe31",
|
"0969e1e8e8f6d1df863acec29ead70c74bdf725d",
|
||||||
[
|
[
|
||||||
null,
|
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": {
|
"sharedworker-classic.http-rp": {
|
||||||
"upgrade": {
|
"upgrade": {
|
||||||
"fetch.https.html": [
|
"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": {
|
"sharedworker-module.http-rp": {
|
||||||
"upgrade": {
|
"upgrade": {
|
||||||
"fetch.https.html": [
|
"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": {
|
"worker-module-inherit.http-rp": {
|
||||||
"upgrade": {
|
"upgrade": {
|
||||||
"fetch.https.html": [
|
"fetch.https.html": [
|
||||||
|
@ -490574,25 +491045,28 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"wake-lock": {
|
"wake-lock": {
|
||||||
"idlharness.https.any.js": [
|
"idlharness-worker.https.window.js": [
|
||||||
"b5d764aee0d85e57b38ee5ff636d18e9c01c1dba",
|
"c747ad6872a91a5ca81fb1e7ca73f72e4e987097",
|
||||||
[
|
[
|
||||||
"wake-lock/idlharness.https.any.html",
|
"wake-lock/idlharness-worker.https.window.html",
|
||||||
{
|
{
|
||||||
"script_metadata": [
|
"script_metadata": [
|
||||||
[
|
[
|
||||||
"script",
|
"script",
|
||||||
"/resources/WebIDLParser.js"
|
"/resources/testdriver.js"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"script",
|
"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": [
|
"script_metadata": [
|
||||||
[
|
[
|
||||||
|
@ -490602,6 +491076,14 @@
|
||||||
[
|
[
|
||||||
"script",
|
"script",
|
||||||
"/resources/idlharness.js"
|
"/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": [
|
"wakelock-enabled-by-feature-policy-attribute-redirect-on-load.https.sub.html": [
|
||||||
"18a2d7c6ba282e7f77487c6744563f9eb2002ac0",
|
"f28a96141c8994125b04c29e440743d2e7837544",
|
||||||
[
|
[
|
||||||
null,
|
null,
|
||||||
{}
|
{}
|
||||||
|
@ -490636,17 +491118,21 @@
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"wakelock-enabled-by-feature-policy.https.sub.html": [
|
"wakelock-enabled-by-feature-policy.https.sub.html": [
|
||||||
"8573f7aa63b8460f28dc174041f9a6a644468a89",
|
"d0f5a15c84bf83dfdaf801e8709d1d7c37f6d91a",
|
||||||
[
|
[
|
||||||
null,
|
null,
|
||||||
{}
|
{
|
||||||
|
"testdriver": true
|
||||||
|
}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"wakelock-enabled-on-self-origin-by-feature-policy.https.sub.html": [
|
"wakelock-enabled-on-self-origin-by-feature-policy.https.sub.html": [
|
||||||
"308217022e1e5fc3e592798c25d4c12aef9c60b2",
|
"73f343867e62c46c4f6e5a4458a384ef652bafd1",
|
||||||
[
|
[
|
||||||
null,
|
null,
|
||||||
{}
|
{
|
||||||
|
"testdriver": true
|
||||||
|
}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"wakelock-insecure-context.any.js": [
|
"wakelock-insecure-context.any.js": [
|
||||||
|
@ -493361,7 +493847,7 @@
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"finished.html": [
|
"finished.html": [
|
||||||
"563d4ba6dd4fbb91598302f6b64f418916168243",
|
"bee4fd8fb7a63137f45681dccc3b53d3570eefc8",
|
||||||
[
|
[
|
||||||
null,
|
null,
|
||||||
{}
|
{}
|
||||||
|
@ -493424,7 +493910,7 @@
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"ready.html": [
|
"ready.html": [
|
||||||
"461c4e95814c2ff3e5e0211ef89a6dfdc05b0606",
|
"462e2a0484451e4cff1f0ffce84d2ea3bd7b456a",
|
||||||
[
|
[
|
||||||
null,
|
null,
|
||||||
{}
|
{}
|
||||||
|
@ -505653,6 +506139,20 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"WorkerNavigator_userAgentData.http.html": [
|
||||||
|
"e47e7e7ceba638eda3d946b420d817a7013aa217",
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"WorkerNavigator_userAgentData.https.html": [
|
||||||
|
"91a63966c01fa30832b72bb16ce4c8926db716f9",
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"WorkerPerformanceNow.html": [
|
"WorkerPerformanceNow.html": [
|
||||||
"467dad44e2082aa5594b4e51eb8d418ebb2cb85b",
|
"467dad44e2082aa5594b4e51eb8d418ebb2cb85b",
|
||||||
[
|
[
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[hit-test-floats-003.html]
|
||||||
|
[Miss float below something else]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[hit-test-floats-004.html]
|
||||||
|
[Miss float below something else]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
[elementFromPoint-001.html]
|
|
||||||
[CSSOM View - 5 - extensions to the Document interface]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -312,21 +312,27 @@
|
||||||
[fetch(): separate response Content-Type: text/plain ]
|
[fetch(): separate response Content-Type: text/plain ]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
[<iframe>: combined response Content-Type: text/html */*;charset=gbk]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[<iframe>: combined response Content-Type: text/html;" text/plain]
|
[<iframe>: combined response Content-Type: text/html;" text/plain]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<iframe>: combined response Content-Type: */* text/html]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[<iframe>: combined response Content-Type: text/html */*]
|
[<iframe>: combined response Content-Type: text/html */*]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<iframe>: separate response Content-Type: text/html;x=" text/plain]
|
[<iframe>: separate response Content-Type: text/html;x=" text/plain]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<iframe>: combined response Content-Type: text/html;" \\" text/plain]
|
[<iframe>: separate response Content-Type: text/html;" text/plain]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<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>: separate response Content-Type: text/plain */*;charset=gbk]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -11,6 +11,3 @@
|
||||||
[X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!]
|
[X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[X-Content-Type-Options%3A%20'NosniFF']
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[traverse_the_history_2.html]
|
||||||
|
[Multiple history traversals, last would be aborted]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
[supported-elements.html]
|
[supported-elements.html]
|
||||||
|
expected: TIMEOUT
|
||||||
[Contenteditable element should support autofocus]
|
[Contenteditable element should support autofocus]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -6,11 +7,14 @@
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Host element with delegatesFocus including no focusable descendants should be skipped]
|
[Host element with delegatesFocus including no focusable descendants should be skipped]
|
||||||
expected: FAIL
|
expected: NOTRUN
|
||||||
|
|
||||||
[Area element should support autofocus]
|
[Area element should support autofocus]
|
||||||
expected: FAIL
|
expected: NOTRUN
|
||||||
|
|
||||||
[Host element with delegatesFocus should support autofocus]
|
[Host element with delegatesFocus should support autofocus]
|
||||||
expected: FAIL
|
expected: NOTRUN
|
||||||
|
|
||||||
|
[Non-HTMLElement should not support autofocus]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
[activation-transfer-without-click.tentative.html]
|
|
||||||
[User activation transfer from inactive frame]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -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]
|
[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
|
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
|
||||||
|
|
||||||
|
|
|
@ -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]
|
[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
|
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
|
||||||
|
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
[017.html]
|
|
||||||
expected: TIMEOUT
|
|
||||||
[origin of the script that invoked the method, about:blank]
|
|
||||||
expected: TIMEOUT
|
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
[018.html]
|
||||||
|
expected: TIMEOUT
|
||||||
|
[origin of the script that invoked the method, javascript:]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[WorkerNavigator_userAgentData.https.html]
|
||||||
|
[Test that userAgentData is available in workers in secure contexts]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -1,8 +1,7 @@
|
||||||
[shared-worker-in-data-url-context.window.html]
|
[shared-worker-in-data-url-context.window.html]
|
||||||
expected: TIMEOUT
|
|
||||||
[Create a shared worker in a data url frame]
|
[Create a shared worker in a data url frame]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Create a data url shared worker in a data url frame]
|
[Create a data url shared worker in a data url frame]
|
||||||
expected: TIMEOUT
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -198,8 +198,13 @@ def generate_test_file(spec_directory, test_helper_filenames,
|
||||||
|
|
||||||
parameters = {}
|
parameters = {}
|
||||||
|
|
||||||
parameters['scenarios'] = dump_test_parameters(scenarios).replace(
|
# Sort scenarios, to avoid unnecessary diffs due to different orders in
|
||||||
"\n", "\n" + " " * 8)
|
# `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)
|
test_directory = os.path.dirname(test_filename)
|
||||||
|
|
||||||
|
|
|
@ -15,7 +15,9 @@
|
||||||
<body>
|
<body>
|
||||||
<script>
|
<script>
|
||||||
TestCase(
|
TestCase(
|
||||||
%(scenarios)s,
|
[
|
||||||
|
%(scenarios)s
|
||||||
|
],
|
||||||
new SanityChecker()
|
new SanityChecker()
|
||||||
).start();
|
).start();
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -11,7 +11,9 @@
|
||||||
<body>
|
<body>
|
||||||
<script>
|
<script>
|
||||||
TestCase(
|
TestCase(
|
||||||
%(scenarios)s,
|
[
|
||||||
|
%(scenarios)s
|
||||||
|
],
|
||||||
new SanityChecker()
|
new SanityChecker()
|
||||||
).start();
|
).start();
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -26,7 +26,8 @@ promise_test(async t => {
|
||||||
div.style.animation = 'anim 100s';
|
div.style.animation = 'anim 100s';
|
||||||
|
|
||||||
const watcher = new EventWatcher(t, div, [ 'animationend',
|
const watcher = new EventWatcher(t, div, [ 'animationend',
|
||||||
'animationcancel' ]);
|
'animationcancel' ],
|
||||||
|
fastEventsTimeout);
|
||||||
const animation = div.getAnimations()[0];
|
const animation = div.getAnimations()[0];
|
||||||
await animation.ready;
|
await animation.ready;
|
||||||
|
|
||||||
|
@ -90,7 +91,8 @@ promise_test(async t => {
|
||||||
const div1 = addDiv(t);
|
const div1 = addDiv(t);
|
||||||
const div2 = 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.
|
// Watch |div2| as well to ensure it does *not* get events.
|
||||||
const watcher2 = new EventWatcher(t, div2, 'animationstart');
|
const watcher2 = new EventWatcher(t, div2, 'animationstart');
|
||||||
|
|
||||||
|
@ -114,7 +116,8 @@ promise_test(async t => {
|
||||||
const div = addDiv(t);
|
const div = addDiv(t);
|
||||||
const watcher = new EventWatcher(t, div, [ 'animationstart',
|
const watcher = new EventWatcher(t, div, [ 'animationstart',
|
||||||
'animationend',
|
'animationend',
|
||||||
'animationcancel' ]);
|
'animationcancel' ],
|
||||||
|
fastEventsTimeout);
|
||||||
div.style.animation = 'anim 100s';
|
div.style.animation = 'anim 100s';
|
||||||
const animation = div.getAnimations()[0];
|
const animation = div.getAnimations()[0];
|
||||||
animation.finish();
|
animation.finish();
|
||||||
|
|
|
@ -21,7 +21,8 @@ const setupAnimation = (t, animationStyle) => {
|
||||||
const watcher = new EventWatcher(t, div, [ 'animationstart',
|
const watcher = new EventWatcher(t, div, [ 'animationstart',
|
||||||
'animationiteration',
|
'animationiteration',
|
||||||
'animationend',
|
'animationend',
|
||||||
'animationcancel' ]);
|
'animationcancel' ],
|
||||||
|
fastEventsTimeout);
|
||||||
const animation = div.getAnimations()[0];
|
const animation = div.getAnimations()[0];
|
||||||
|
|
||||||
return { animation, watcher, div };
|
return { animation, watcher, div };
|
||||||
|
|
|
@ -191,6 +191,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:
|
* Wrapper that takes a sequence of N animations and returns:
|
||||||
*
|
*
|
||||||
|
|
|
@ -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>
|
|
@ -1,8 +1,13 @@
|
||||||
|
<script src="/resources/testdriver.js"></script>
|
||||||
|
<script src="/resources/testdriver-vendor.js"></script>
|
||||||
<script>
|
<script>
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
Promise.resolve().then(async () => {
|
Promise.resolve().then(async () => {
|
||||||
try {
|
try {
|
||||||
|
await test_driver.set_permission(
|
||||||
|
{ name: 'wake-lock', type: 'screen' }, 'granted', false);
|
||||||
|
|
||||||
const wakeLock = await navigator.wakeLock.request("screen");
|
const wakeLock = await navigator.wakeLock.request("screen");
|
||||||
await wakeLock.release();
|
await wakeLock.release();
|
||||||
window.parent.postMessage({ enabled: true }, "*");
|
window.parent.postMessage({ enabled: true }, "*");
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<!--
|
<!--
|
||||||
Tentative due to:
|
Tentative due to:
|
||||||
https://github.com/whatwg/html/issues/1983
|
https://github.com/whatwg/html/issues/1983
|
||||||
-->
|
-->
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
|
|
|
@ -1,8 +1,7 @@
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<!--
|
<!--
|
||||||
Tentative due to:
|
Tentative due to:
|
||||||
https://github.com/whatwg/html/issues/3739
|
https://github.com/whatwg/html/issues/1983
|
||||||
|
|
||||||
-->
|
-->
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
|
@ -16,7 +15,9 @@
|
||||||
<ol id="instructions">
|
<ol id="instructions">
|
||||||
<li>Click this instruction text.
|
<li>Click this instruction text.
|
||||||
</ol>
|
</ol>
|
||||||
<iframe id="child" width="200" height="200"></iframe>
|
<iframe id="child" width="200" height="200"
|
||||||
|
src="resources/child-one.html">
|
||||||
|
</iframe>
|
||||||
<script>
|
<script>
|
||||||
async_test(function(t) {
|
async_test(function(t) {
|
||||||
var child = document.getElementById("child");
|
var child = document.getElementById("child");
|
||||||
|
@ -25,33 +26,32 @@
|
||||||
window.addEventListener("message", t.step_func(event => {
|
window.addEventListener("message", t.step_func(event => {
|
||||||
var msg = JSON.parse(event.data);
|
var msg = JSON.parse(event.data);
|
||||||
if (msg.type == 'child-one-loaded') {
|
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.isActive);
|
||||||
assert_false(msg.hasBeenActive);
|
assert_false(msg.hasBeenActive);
|
||||||
|
|
||||||
// click in parent document
|
// Click in parent document.
|
||||||
test_driver.click(document.getElementById('instructions'));
|
test_driver.click(document.getElementById('instructions'));
|
||||||
} else if (msg.type == 'child-one-report') {
|
} 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_false(msg.isActive);
|
||||||
assert_true(msg.hasBeenActive);
|
assert_true(msg.hasBeenActive);
|
||||||
t.done();
|
t.done();
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
window.addEventListener("click", t.step_func(event => {
|
window.addEventListener("click", t.step_func(event => {
|
||||||
assert_true(navigator.userActivation.isActive);
|
assert_true(navigator.userActivation.isActive);
|
||||||
assert_true(navigator.userActivation.hasBeenActive);
|
assert_true(navigator.userActivation.hasBeenActive);
|
||||||
|
|
||||||
// Opening a window should consume the activation.
|
// Opening a window should consume the activation.
|
||||||
var win = window.open('404.html');
|
var win = window.open('404.html');
|
||||||
win.close();
|
win.close();
|
||||||
assert_false(navigator.userActivation.isActive);
|
assert_false(navigator.userActivation.isActive);
|
||||||
assert_true(navigator.userActivation.hasBeenActive);
|
assert_true(navigator.userActivation.hasBeenActive);
|
||||||
|
|
||||||
// ask child to report their state
|
// Ask child to report its state.
|
||||||
child.contentWindow.postMessage('report', '*');
|
child.contentWindow.postMessage(JSON.stringify({"type": "report"}), '*');
|
||||||
}));
|
}));
|
||||||
child.src = "resources/child-one.html";
|
|
||||||
}, "Values adjust on activity");
|
}, "Values adjust on activity");
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
|
@ -1,8 +1,7 @@
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<!--
|
<!--
|
||||||
Tentative due to:
|
Tentative due to:
|
||||||
https://github.com/whatwg/html/issues/3739
|
https://github.com/whatwg/html/issues/1983
|
||||||
|
|
||||||
-->
|
-->
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
|
@ -14,9 +13,11 @@
|
||||||
<body>
|
<body>
|
||||||
<h1>Clicking in iframe has activation state in child</h1>
|
<h1>Clicking in iframe has activation state in child</h1>
|
||||||
<ol id="instructions">
|
<ol id="instructions">
|
||||||
<li>Click inside the light-grey area.
|
<li>Click inside the yellow area.
|
||||||
</ol>
|
</ol>
|
||||||
<iframe id="child" width="200" height="200"></iframe>
|
<iframe id="child" width="200" height="200"
|
||||||
|
src="resources/child-one.html">
|
||||||
|
</iframe>
|
||||||
<script>
|
<script>
|
||||||
async_test(function(t) {
|
async_test(function(t) {
|
||||||
var child = document.getElementById("child");
|
var child = document.getElementById("child");
|
||||||
|
@ -45,7 +46,6 @@
|
||||||
t.done();
|
t.done();
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
child.src = "resources/child-one.html";
|
|
||||||
}, "Values adjust on activity");
|
}, "Values adjust on activity");
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
|
@ -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>
|
|
|
@ -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>
|
|
|
@ -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>
|
|
|
@ -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>
|
|
|
@ -1,8 +1,7 @@
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<!--
|
<!--
|
||||||
Tentative due to:
|
Tentative due to:
|
||||||
https://github.com/whatwg/html/issues/3739
|
https://github.com/whatwg/html/issues/1983
|
||||||
|
|
||||||
-->
|
-->
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
|
@ -16,39 +15,40 @@
|
||||||
<ol id="instructions">
|
<ol id="instructions">
|
||||||
<li>Click inside the red area.
|
<li>Click inside the red area.
|
||||||
</ol>
|
</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>
|
<script>
|
||||||
async_test(function(t) {
|
async_test(function(t) {
|
||||||
var child = document.getElementById("child");
|
var child = document.getElementById("child");
|
||||||
assert_false(navigator.userActivation.isActive);
|
assert_false(navigator.userActivation.isActive);
|
||||||
assert_false(navigator.userActivation.hasBeenActive);
|
assert_false(navigator.userActivation.hasBeenActive);
|
||||||
window.addEventListener("message", t.step_func(event => {
|
window.addEventListener("message", t.step_func(event => {
|
||||||
if (event.data == 'child-three-loaded') {
|
if (event.data == 'child-loaded') {
|
||||||
// values have false after load
|
// values have false after load
|
||||||
assert_true(event.userActivation != null);
|
assert_true(event.userActivation != null);
|
||||||
assert_false(event.userActivation.isActive);
|
assert_false(event.userActivation.isActive);
|
||||||
assert_false(event.userActivation.hasBeenActive);
|
assert_false(event.userActivation.hasBeenActive);
|
||||||
test_driver.click(child);
|
test_driver.click(child);
|
||||||
} else if (event.data == 'child-three-clicked') {
|
} else if (event.data == 'child-clicked') {
|
||||||
// values have activation state on click
|
// values have activation state on click
|
||||||
assert_true(navigator.userActivation.hasBeenActive);
|
assert_true(navigator.userActivation.hasBeenActive);
|
||||||
assert_true(event.userActivation != null);
|
assert_true(event.userActivation != null);
|
||||||
assert_true(event.userActivation.isActive);
|
assert_true(event.userActivation.isActive);
|
||||||
assert_true(event.userActivation.hasBeenActive);
|
assert_true(event.userActivation.hasBeenActive);
|
||||||
child.contentWindow.postMessage('report', "*");
|
child.contentWindow.postMessage('report', "*");
|
||||||
} else if (event.data == 'child-three-report') {
|
} else if (event.data == 'child-report') {
|
||||||
assert_false(navigator.userActivation.isActive);
|
assert_false(navigator.userActivation.isActive);
|
||||||
assert_true(navigator.userActivation.hasBeenActive);
|
assert_true(navigator.userActivation.hasBeenActive);
|
||||||
assert_true(event.userActivation != null);
|
assert_true(event.userActivation != null);
|
||||||
assert_false(event.userActivation.isActive);
|
assert_false(event.userActivation.isActive);
|
||||||
assert_true(event.userActivation.hasBeenActive);
|
assert_true(event.userActivation.hasBeenActive);
|
||||||
child.contentWindow.postMessage('report-no-activation', "*");
|
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);
|
assert_true(event.userActivation === null);
|
||||||
t.done();
|
t.done();
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
child.src = "http://{{domains[www]}}:{{ports[http][0]}}/html/user-activation/resources/child-three.html";
|
|
||||||
}, "Message propagates values on post");
|
}, "Message propagates values on post");
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
|
|
|
@ -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>
|
|
|
@ -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>
|
|
@ -1,20 +1,29 @@
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<body style="background: red;">
|
<body style="background: yellow;">
|
||||||
<script>
|
<script>
|
||||||
window.parent.postMessage(JSON.stringify({"type": "child-one-loaded", "isActive": navigator.userActivation.isActive,
|
window.top.postMessage(JSON.stringify({
|
||||||
"hasBeenActive": navigator.userActivation.hasBeenActive}), "*");
|
"type": "child-one-loaded",
|
||||||
|
"isActive": navigator.userActivation.isActive,
|
||||||
|
"hasBeenActive": navigator.userActivation.hasBeenActive
|
||||||
|
}), "*");
|
||||||
|
|
||||||
window.addEventListener("click", event => {
|
window.addEventListener("click", event => {
|
||||||
window.parent.postMessage(JSON.stringify({"type": "child-one-clicked", "isActive": navigator.userActivation.isActive,
|
window.top.postMessage(JSON.stringify({
|
||||||
"hasBeenActive": navigator.userActivation.hasBeenActive}), "*");
|
"type": "child-one-clicked",
|
||||||
});
|
"isActive": navigator.userActivation.isActive,
|
||||||
|
"hasBeenActive": navigator.userActivation.hasBeenActive
|
||||||
|
}), "*");
|
||||||
|
});
|
||||||
|
|
||||||
window.addEventListener("message", event => {
|
window.addEventListener("message", event => {
|
||||||
if (event.data == "report") {
|
var msg = JSON.parse(event.data);
|
||||||
window.parent.postMessage(JSON.stringify({"type": "child-one-report", "isActive": navigator.userActivation.isActive,
|
if (msg.type == "report") {
|
||||||
"hasBeenActive": navigator.userActivation.hasBeenActive}), "*");
|
window.top.postMessage(JSON.stringify({
|
||||||
}
|
"type": "child-one-report",
|
||||||
});
|
"isActive": navigator.userActivation.isActive,
|
||||||
|
"hasBeenActive": navigator.userActivation.hasBeenActive
|
||||||
</script>
|
}), "*");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
</body>
|
</body>
|
||||||
|
|
|
@ -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>
|
|
|
@ -1,15 +1,20 @@
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<body style="background: lightgrey;">
|
<body style="background: lightgrey;">
|
||||||
<script>
|
<script>
|
||||||
window.parent.postMessage(JSON.stringify({"type": "child-two-loaded", "isActive": navigator.userActivation.isActive,
|
window.top.postMessage(JSON.stringify({
|
||||||
"hasBeenActive": navigator.userActivation.hasBeenActive}), "*");
|
"type": "child-two-loaded",
|
||||||
|
"isActive": navigator.userActivation.isActive,
|
||||||
|
"hasBeenActive": navigator.userActivation.hasBeenActive
|
||||||
|
}), "*");
|
||||||
|
|
||||||
window.addEventListener("message", event => {
|
window.addEventListener("message", event => {
|
||||||
if (event.source === window.parent && event.data == "report") {
|
if (event.data == "report") {
|
||||||
window.parent.postMessage(JSON.stringify({"type": "child-two-report", "isActive": navigator.userActivation.isActive,
|
window.top.postMessage(JSON.stringify({
|
||||||
"hasBeenActive": navigator.userActivation.hasBeenActive}), "*");
|
"type": "child-two-report",
|
||||||
|
"isActive": navigator.userActivation.isActive,
|
||||||
|
"hasBeenActive": navigator.userActivation.hasBeenActive
|
||||||
|
}), "*");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
</script>
|
||||||
</script>
|
|
||||||
</body>
|
</body>
|
||||||
|
|
|
@ -1,10 +1,11 @@
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<script src="/resources/testharness.js"></script>
|
<script src="/resources/testharness.js"></script>
|
||||||
<script src="/resources/testharnessreport.js"></script>
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
<script src="/webrtc/dictionary-helper.js"></script>
|
|
||||||
<script>
|
<script>
|
||||||
test(t => {
|
test(t => {
|
||||||
assert_true("userAgentData" in navigator);
|
assert_true("userAgentData" in navigator);
|
||||||
|
assert_true("NavigatorUAData" in window);
|
||||||
|
assert_equals(typeof self.NavigatorUAData, "function")
|
||||||
}, "navigator.userAgentData is exposed.");
|
}, "navigator.userAgentData is exposed.");
|
||||||
|
|
||||||
promise_test(async t => {
|
promise_test(async t => {
|
||||||
|
|
|
@ -4,8 +4,8 @@
|
||||||
// Source: HTMLVideoElement.requestAnimationFrame() (https://wicg.github.io/video-raf/)
|
// Source: HTMLVideoElement.requestAnimationFrame() (https://wicg.github.io/video-raf/)
|
||||||
|
|
||||||
dictionary VideoFrameMetadata {
|
dictionary VideoFrameMetadata {
|
||||||
required DOMHighResTimeStamp presentationTime;
|
required DOMHighResTimeStamp timePresented;
|
||||||
required DOMHighResTimeStamp expectedPresentationTime;
|
required DOMHighResTimeStamp expectedDisplayTime;
|
||||||
|
|
||||||
required unsigned long width;
|
required unsigned long width;
|
||||||
required unsigned long height;
|
required unsigned long height;
|
||||||
|
@ -18,7 +18,7 @@ dictionary VideoFrameMetadata {
|
||||||
unsigned long rtpTimestamp;
|
unsigned long rtpTimestamp;
|
||||||
};
|
};
|
||||||
|
|
||||||
callback VideoFrameRequestCallback = void(DOMHighResTimeStamp time, VideoFrameMetadata metadata);
|
callback VideoFrameRequestCallback = void(DOMHighResTimeStamp now, VideoFrameMetadata metadata);
|
||||||
|
|
||||||
partial interface HTMLVideoElement {
|
partial interface HTMLVideoElement {
|
||||||
unsigned long requestAnimationFrame(VideoFrameRequestCallback callback);
|
unsigned long requestAnimationFrame(VideoFrameRequestCallback callback);
|
||||||
|
|
|
@ -96,9 +96,9 @@ interface KeyframeEffect : AnimationEffect {
|
||||||
object? keyframes,
|
object? keyframes,
|
||||||
optional (unrestricted double or KeyframeEffectOptions) options = {});
|
optional (unrestricted double or KeyframeEffectOptions) options = {});
|
||||||
constructor(KeyframeEffect source);
|
constructor(KeyframeEffect source);
|
||||||
attribute Element? target;
|
attribute Element? target;
|
||||||
attribute CSSOMString? pseudoElement;
|
attribute CSSOMString? pseudoElement;
|
||||||
attribute CompositeOperation composite;
|
attribute CompositeOperation composite;
|
||||||
sequence<object> getKeyframes();
|
sequence<object> getKeyframes();
|
||||||
void setKeyframes(object? keyframes);
|
void setKeyframes(object? keyframes);
|
||||||
};
|
};
|
||||||
|
|
|
@ -130,6 +130,7 @@ dictionary RTCSentRtpStreamStats : RTCRtpStreamStats {
|
||||||
};
|
};
|
||||||
|
|
||||||
dictionary RTCOutboundRtpStreamStats : RTCSentRtpStreamStats {
|
dictionary RTCOutboundRtpStreamStats : RTCSentRtpStreamStats {
|
||||||
|
unsigned long rtxSsrc;
|
||||||
DOMString trackId;
|
DOMString trackId;
|
||||||
DOMString mediaSourceId;
|
DOMString mediaSourceId;
|
||||||
DOMString senderId;
|
DOMString senderId;
|
||||||
|
|
|
@ -31,7 +31,7 @@
|
||||||
1,
|
1,
|
||||||
"math must be centered.");
|
"math must be centered.");
|
||||||
assert_approx_equals(after_block.left, content.left, 1,
|
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,
|
assert_less_than_equal(before_block.bottom, mspace_block.top,
|
||||||
"new line before math");
|
"new line before math");
|
||||||
assert_less_than_equal(mspace_block.bottom, after_block.top,
|
assert_less_than_equal(mspace_block.bottom, after_block.top,
|
||||||
|
@ -56,6 +56,25 @@
|
||||||
assert_less_than_equal(mspace_inline.right, after_inline.left,
|
assert_less_than_equal(mspace_inline.right, after_inline.left,
|
||||||
"content after must be on the right of math");
|
"content after must be on the right of math");
|
||||||
}, `Test inline math ${transform}`);
|
}, `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();
|
done();
|
||||||
});
|
});
|
||||||
|
@ -86,6 +105,10 @@
|
||||||
<span id="before_inline" class="square"></span>
|
<span id="before_inline" class="square"></span>
|
||||||
<math display="inline"><mspace id="mspace_inline" width="50px" height="50px"/></math>
|
<math display="inline"><mspace id="mspace_inline" width="50px" height="50px"/></math>
|
||||||
<span id="after_inline" class="square"></span>
|
<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>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -23,45 +23,34 @@ function waitForAnimationFrames(count) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Asserts that there is currently no FCP reported, even after some wait.
|
// Asserts that there is currently no FCP reported, even after some wait.
|
||||||
function assertNoFirstContentfulPaint(t) {
|
async function assertNoFirstContentfulPaint(t) {
|
||||||
return waitTime(t).then(() => {
|
if (t)
|
||||||
return waitForAnimationFrames(numFramesWaiting);
|
await waitTime(t);
|
||||||
}).then(() => {
|
|
||||||
return new Promise((resolve, reject) => {
|
await waitForAnimationFrames(numFramesWaiting);
|
||||||
const observer = new PerformanceObserver(entryList =>{
|
assert_equals(performance.getEntriesByName('first-contentful-paint').length, 0, 'First contentful paint marked too early. ');
|
||||||
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');
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Asserts that FCP is reported, possibly after some wait. The wait is needed
|
// 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.
|
// because sometimes the FCP relies on some CSS resources to finish loading.
|
||||||
function assertFirstContentfulPaint(t) {
|
async function assertFirstContentfulPaint(t) {
|
||||||
return waitTime(t).then(() => {
|
if (t)
|
||||||
return waitForAnimationFrames(numFramesWaiting);
|
await waitTime(t);
|
||||||
}).then(() => {
|
await waitForAnimationFrames(numFramesWaiting);
|
||||||
return new Promise((resolve, reject) => {
|
assert_equals(performance.getEntriesByName('first-contentful-paint').length, 1, 'Expected first contentful paint not found. ');
|
||||||
const observer = new PerformanceObserver(entryList =>{
|
}
|
||||||
const entries = entryList.getEntriesByName('first-contentful-paint');
|
|
||||||
observer.disconnect();
|
async function test_fcp(label) {
|
||||||
if (entries.length === 0)
|
const style = document.createElement('style');
|
||||||
reject('Did not receive a first contentful paint entry.');
|
document.head.appendChild(style);
|
||||||
else {
|
await promise_test(async t => {
|
||||||
resolve();
|
assert_precondition(window.PerformancePaintTiming, "Paint Timing isn't supported.");
|
||||||
}
|
const main = document.getElementById('main');
|
||||||
});
|
await new Promise(r => window.addEventListener('load', r));
|
||||||
observer.observe({type: 'paint', buffered: true});
|
await assertNoFirstContentfulPaint();
|
||||||
observer.observe({type: 'mark'});
|
main.className = 'preFCP';
|
||||||
performance.mark('flush');
|
await assertNoFirstContentfulPaint();
|
||||||
});
|
main.className = 'contentful';
|
||||||
});
|
await assertFirstContentfulPaint();
|
||||||
|
}, label);
|
||||||
}
|
}
|
||||||
|
|
|
@ -47,13 +47,8 @@
|
||||||
// Now do some scrolling and make sure that the Animation current time is
|
// Now do some scrolling and make sure that the Animation current time is
|
||||||
// correct.
|
// correct.
|
||||||
scroller.scrollTop = 0.2 * maxScroll;
|
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,
|
assert_equals(animation.currentTime, animation.timeline.currentTime,
|
||||||
"The current time corresponds to the scroll position of the scroller.");
|
"The current time corresponds to the scroll position of the scroller.");
|
||||||
await waitForNextFrame();
|
|
||||||
assert_times_equal(
|
assert_times_equal(
|
||||||
animation.effect.getComputedTiming().localTime,
|
animation.effect.getComputedTiming().localTime,
|
||||||
animation.timeline.currentTime,
|
animation.timeline.currentTime,
|
||||||
|
|
|
@ -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>
|
|
@ -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='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='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' 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>
|
</svg>
|
||||||
<script>
|
<script>
|
||||||
var expectedBoxes = [
|
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: [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: [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: [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');
|
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);
|
}, document.title + ' with ' + expectedBoxes[i].description);
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -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>
|
|
@ -0,0 +1 @@
|
||||||
|
Content-Security-Policy: upgrade-insecure-requests
|
|
@ -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>
|
|
@ -0,0 +1 @@
|
||||||
|
Content-Security-Policy: upgrade-insecure-requests
|
|
@ -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>
|
|
@ -0,0 +1 @@
|
||||||
|
Content-Security-Policy: upgrade-insecure-requests
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -0,0 +1 @@
|
||||||
|
Content-Security-Policy: upgrade-insecure-requests
|
|
@ -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>
|
|
@ -0,0 +1 @@
|
||||||
|
Content-Security-Policy: upgrade-insecure-requests
|
|
@ -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>
|
|
@ -0,0 +1 @@
|
||||||
|
Content-Security-Policy: upgrade-insecure-requests
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -0,0 +1 @@
|
||||||
|
Content-Security-Policy: upgrade-insecure-requests
|
|
@ -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>
|
|
@ -0,0 +1 @@
|
||||||
|
Content-Security-Policy: upgrade-insecure-requests
|
|
@ -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>
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue