Update web-platform-tests to revision 1b2893a628c429d144e2b5f7eb5d93855127cacb

This commit is contained in:
WPT Sync Bot 2020-10-11 08:19:59 +00:00
parent 7f12ee6467
commit 382c7ac026
66 changed files with 421 additions and 229 deletions

View file

@ -1,8 +0,0 @@
[url-charset.window.html]
expected: TIMEOUT
[Blob charset should override any auto-detected charset.]
expected: TIMEOUT
[Blob charset should override <meta charset>.]
expected: TIMEOUT

View file

@ -4,7 +4,7 @@
expected: TIMEOUT expected: TIMEOUT
[Opening a blob URL in a new window immediately before revoking it works.] [Opening a blob URL in a new window immediately before revoking it works.]
expected: FAIL expected: TIMEOUT
[Fetching a blob URL immediately before revoking it works in an iframe.] [Fetching a blob URL immediately before revoking it works in an iframe.]
expected: FAIL expected: FAIL

View file

@ -0,0 +1,4 @@
[hit-test-floats-004.html]
[Miss float below something else]
expected: FAIL

View file

@ -0,0 +1,4 @@
[hit-test-floats-005.html]
[Miss clipped float]
expected: FAIL

View file

@ -0,0 +1,4 @@
[hit-test-anonymous-block.html]
[Hit test beside line of text inside anonymous block]
expected: FAIL

View file

@ -0,0 +1,2 @@
[image-orientation-none-cross-origin-canvas.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[image-orientation-none-cross-origin.html]
expected: FAIL

View file

@ -1,4 +0,0 @@
[CaretPosition-001.html]
[Element at (400, 100)]
expected: FAIL

View file

@ -2,6 +2,3 @@
[elementsFromPoint on the root document for points in iframe elements] [elementsFromPoint on the root document for points in iframe elements]
expected: FAIL expected: FAIL
[elementsFromPoint on inner documents]
expected: FAIL

View file

@ -0,0 +1,4 @@
[elementsFromPoint-invalid-cases.html]
[The root element is the last element returned for otherwise empty queries within the viewport]
expected: FAIL

View file

@ -0,0 +1,2 @@
[matchMedia-display-none-iframe.html]
expected: ERROR

View file

@ -0,0 +1,2 @@
[HTMLMediaElement.html]
expected: TIMEOUT

View file

@ -315,18 +315,12 @@
[<iframe>: combined response Content-Type: text/html */*;charset=gbk] [<iframe>: combined response Content-Type: text/html */*;charset=gbk]
expected: FAIL expected: FAIL
[<iframe>: combined response Content-Type: */* text/html]
expected: FAIL
[<iframe>: combined response Content-Type: text/html;" \\" text/plain] [<iframe>: combined response Content-Type: text/html;" \\" text/plain]
expected: FAIL expected: FAIL
[<iframe>: combined response Content-Type: text/html;x=" text/plain]
expected: FAIL
[<iframe>: combined response Content-Type: text/html;" text/plain]
expected: FAIL
[<iframe>: separate response Content-Type: text/html */*] [<iframe>: separate response Content-Type: text/html */*]
expected: FAIL expected: FAIL
[<iframe>: separate response Content-Type: text/html */*;charset=gbk]
expected: FAIL

View file

@ -56,6 +56,3 @@
[separate text/javascript x/x] [separate text/javascript x/x]
expected: FAIL expected: FAIL
[separate text/javascript error]
expected: FAIL

View file

@ -11,6 +11,6 @@
[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%40%23%24%23%25%25%26%5E%26%5E*()()11!%2Cnosniff] [X-Content-Type-Options%3A%20'NosniFF']
expected: FAIL expected: FAIL

View file

@ -1,4 +0,0 @@
[traverse_the_history_3.html]
[Multiple history traversals, last would be aborted]
expected: FAIL

View file

@ -1,4 +0,0 @@
[traverse_the_history_4.html]
[Multiple history traversals, last would be aborted]
expected: FAIL

View file

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

View file

@ -1,8 +1,7 @@
[embedded-opener-remove-frame.html] [embedded-opener-remove-frame.html]
expected: TIMEOUT
[opener of discarded nested browsing context] [opener of discarded nested browsing context]
expected: FAIL expected: FAIL
[opener of discarded auxiliary browsing context] [opener of discarded auxiliary browsing context]
expected: TIMEOUT expected: FAIL

View file

@ -171,6 +171,3 @@
[XHTML img usemap="#hash-id"] [XHTML img usemap="#hash-id"]
expected: FAIL expected: FAIL
[HTML (standards) IMG usemap="no-hash-name"]
expected: FAIL

View file

@ -1,5 +1,5 @@
[iframe_sandbox_popups_escaping-2.html] [iframe_sandbox_popups_escaping-2.html]
expected: TIMEOUT expected: CRASH
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used] [Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
expected: TIMEOUT expected: TIMEOUT

View file

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

View file

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

View file

@ -1,4 +0,0 @@
[module-delayed.html]
[async document.write in a module]
expected: FAIL

View file

@ -0,0 +1,4 @@
[module-static-import-delayed.html]
[document.write in an imported module]
expected: FAIL

View file

@ -1,4 +1,5 @@
[realtimeanalyser-fft-scaling.html] [realtimeanalyser-fft-scaling.html]
expected: TIMEOUT
[X 2048-point FFT peak position is not equal to 64. Got 0.] [X 2048-point FFT peak position is not equal to 64. Got 0.]
expected: FAIL expected: FAIL

View file

@ -1,2 +0,0 @@
[Worker-constructor.html]
expected: ERROR

View file

@ -1,7 +1,8 @@
[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: TIMEOUT
[Create a data url shared worker in a data url frame] [Create a data url shared worker in a data url frame]
expected: FAIL expected: NOTRUN

View file

@ -1,8 +0,0 @@
[url-charset.window.html]
expected: TIMEOUT
[Blob charset should override any auto-detected charset.]
expected: TIMEOUT
[Blob charset should override <meta charset>.]
expected: TIMEOUT

View file

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

View file

@ -121083,7 +121083,7 @@
] ]
], ],
"background-attachment-350.html": [ "background-attachment-350.html": [
"2323293a96b18e373e26ec3f4406c4a5fb1f7417", "fa63370a43cd575f54fd0004d4436d551144026c",
[ [
null, null,
[ [
@ -153493,6 +153493,64 @@
} }
] ]
], ],
"image-orientation-none-cross-origin-canvas.html": [
"4d370e8e189667368035ecb7e65ba9cc03ba982f",
[
null,
[
[
"/css/css-images/image-orientation/reference/image-orientation-none-cross-origin-ref.html",
"=="
]
],
{
"fuzzy": [
[
null,
[
[
10,
10
],
[
100,
100
]
]
]
]
}
]
],
"image-orientation-none-cross-origin.html": [
"6629f78e5b2923a41e49b4236a4c8b7d17abb2f1",
[
null,
[
[
"/css/css-images/image-orientation/reference/image-orientation-none-cross-origin-ref.html",
"=="
]
],
{
"fuzzy": [
[
null,
[
[
10,
10
],
[
100,
100
]
]
]
]
}
]
],
"image-orientation-none-image-document.html": [ "image-orientation-none-image-document.html": [
"d333b5f4f578a17915c234d905a4978729d55c8e", "d333b5f4f578a17915c234d905a4978729d55c8e",
[ [
@ -159365,20 +159423,7 @@
{} {}
] ]
] ]
}, }
"test-mask.html": [
"b1e21566e3f2072251f0093a4d08e9688991b73f",
[
null,
[
[
"/css/css-masking/test-mask-ref.html",
"=="
]
],
{}
]
]
}, },
"css-multicol": { "css-multicol": {
"always-balancing-before-column-span.html": [ "always-balancing-before-column-span.html": [
@ -310079,6 +310124,14 @@
"5192f5c35aa6c0055594b662bc18f12feb453e87", "5192f5c35aa6c0055594b662bc18f12feb453e87",
[] []
], ],
"image-orientation-none-cross-origin-canvas-ref.html": [
"4f9bc74620d8be7d94b8639a51764e04c2c5e685",
[]
],
"image-orientation-none-cross-origin-ref.html": [
"3e6962184ec3dcb75cd08a440017ed84161fdb4a",
[]
],
"image-orientation-none-image-document-ref.html": [ "image-orientation-none-image-document-ref.html": [
"90eaeaa3da839b111098da9e6f9e4754fe05d2b2", "90eaeaa3da839b111098da9e6f9e4754fe05d2b2",
[] []
@ -311294,11 +311347,7 @@
"de30887ea358ece8e0c1cd593d3d7c66bc744bd4", "de30887ea358ece8e0c1cd593d3d7c66bc744bd4",
[] []
] ]
}, }
"test-mask-ref.html": [
"938235acbd36309fb969c55f161239bcd5ab969e",
[]
]
}, },
"css-multicol": { "css-multicol": {
"META.yml": [ "META.yml": [
@ -425579,7 +425628,7 @@
] ]
], ],
"ParentNode-replaceChildren.html": [ "ParentNode-replaceChildren.html": [
"b1c1008284bbf999d5c61d971b6c8b10704e16e9", "8f2fda9d99c154f7b8eb08aefe0604bf37cb4a37",
[ [
null, null,
{} {}
@ -465653,7 +465702,7 @@
] ]
], ],
"reporting-to-endpoint.https.html": [ "reporting-to-endpoint.https.html": [
"416732497bdd58f654cbfd883721352a8c7ecba7", "7294bdeafab2c32512983954ed20d617a1418f29",
[ [
null, null,
{ {

View file

@ -0,0 +1,4 @@
[hit-test-floats-004.html]
[Miss float below something else]
expected: FAIL

View file

@ -0,0 +1,4 @@
[hit-test-floats-005.html]
[Miss clipped float]
expected: FAIL

View file

@ -0,0 +1,4 @@
[hit-test-anonymous-block.html]
[Hit test beside line of text inside anonymous block]
expected: FAIL

View file

@ -0,0 +1,2 @@
[image-orientation-none-cross-origin-canvas.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[image-orientation-none-cross-origin.html]
expected: FAIL

View file

@ -1,4 +0,0 @@
[CaretPosition-001.html]
[Element at (400, 100)]
expected: FAIL

View file

@ -2,6 +2,3 @@
[elementsFromPoint on the root document for points in iframe elements] [elementsFromPoint on the root document for points in iframe elements]
expected: FAIL expected: FAIL
[elementsFromPoint on inner documents]
expected: FAIL

View file

@ -0,0 +1,4 @@
[elementsFromPoint-invalid-cases.html]
[The root element is the last element returned for otherwise empty queries within the viewport]
expected: FAIL

View file

@ -0,0 +1,2 @@
[matchMedia-display-none-iframe.html]
expected: ERROR

View file

@ -0,0 +1,2 @@
[HTMLMediaElement.html]
expected: TIMEOUT

View file

@ -315,18 +315,12 @@
[<iframe>: combined response Content-Type: text/html */*;charset=gbk] [<iframe>: combined response Content-Type: text/html */*;charset=gbk]
expected: FAIL expected: FAIL
[<iframe>: combined response Content-Type: */* text/html]
expected: FAIL
[<iframe>: combined response Content-Type: text/html;" \\" text/plain] [<iframe>: combined response Content-Type: text/html;" \\" text/plain]
expected: FAIL expected: FAIL
[<iframe>: combined response Content-Type: text/html;x=" text/plain]
expected: FAIL
[<iframe>: combined response Content-Type: text/html;" text/plain]
expected: FAIL
[<iframe>: separate response Content-Type: text/html */*] [<iframe>: separate response Content-Type: text/html */*]
expected: FAIL expected: FAIL
[<iframe>: separate response Content-Type: text/html */*;charset=gbk]
expected: FAIL

View file

@ -56,6 +56,3 @@
[separate text/javascript x/x] [separate text/javascript x/x]
expected: FAIL expected: FAIL
[separate text/javascript error]
expected: FAIL

View file

@ -11,6 +11,6 @@
[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%40%23%24%23%25%25%26%5E%26%5E*()()11!%2Cnosniff] [X-Content-Type-Options%3A%20'NosniFF']
expected: FAIL expected: FAIL

View file

@ -1,4 +0,0 @@
[traverse_the_history_3.html]
[Multiple history traversals, last would be aborted]
expected: FAIL

View file

@ -1,4 +0,0 @@
[traverse_the_history_4.html]
[Multiple history traversals, last would be aborted]
expected: FAIL

View file

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

View file

@ -1,5 +1,4 @@
[embedded-opener-remove-frame.html] [embedded-opener-remove-frame.html]
expected: TIMEOUT
[opener and "removed" embedded documents] [opener and "removed" embedded documents]
expected: FAIL expected: FAIL
@ -7,5 +6,5 @@
expected: FAIL expected: FAIL
[opener of discarded auxiliary browsing context] [opener of discarded auxiliary browsing context]
expected: TIMEOUT expected: FAIL

View file

@ -172,6 +172,3 @@
[XHTML img usemap="http://example.org/#garbage-before-hash-id"] [XHTML img usemap="http://example.org/#garbage-before-hash-id"]
expected: FAIL expected: FAIL
[HTML (standards) IMG usemap="no-hash-name"]
expected: FAIL

View file

@ -1,5 +1,5 @@
[iframe_sandbox_popups_escaping-2.html] [iframe_sandbox_popups_escaping-2.html]
expected: TIMEOUT expected: CRASH
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used] [Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
expected: TIMEOUT expected: TIMEOUT

View file

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

View file

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

View file

@ -1,4 +0,0 @@
[module-delayed.html]
[async document.write in a module]
expected: FAIL

View file

@ -0,0 +1,4 @@
[module-static-import-delayed.html]
[document.write in an imported module]
expected: FAIL

View file

@ -1,4 +1,5 @@
[realtimeanalyser-fft-scaling.html] [realtimeanalyser-fft-scaling.html]
expected: TIMEOUT
[X 2048-point FFT peak position is not equal to 64. Got 0.] [X 2048-point FFT peak position is not equal to 64. Got 0.]
expected: FAIL expected: FAIL

View file

@ -1,2 +0,0 @@
[Worker-constructor.html]
expected: ERROR

View file

@ -1,7 +1,8 @@
[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: TIMEOUT
[Create a data url shared worker in a data url frame] [Create a data url shared worker in a data url frame]
expected: FAIL expected: NOTRUN

View file

@ -43,21 +43,22 @@
<!-- <!--
+-----------------------+ (0px, 0px) (200px, 0px)
|+----------+ | +.......................+
|| +------+ | | |+..........+ |
|| | red | | | <-- bottom right of scrolling box || +......+ | |
|| | red | | | <== bottom right of scrolling box
|| |square| | | when background-image dimensions || |square| | | when background-image dimensions
|| | | | | are the same as the element's || | | | | are the same as the element's
|| +------+ | | viewport dimensions || +......+ | | viewport dimensions
+----------+ | +..........+ |
| | | |
| | | +......+|
| +------+| | | red || <== bottom right of scrollable area
| | red || <-- bottom right of scrollable area
| |square|| which is outside of the viewport | |square|| which is outside of the viewport
| | || area and which is clipped due | | || area and which is clipped due
| +------+| to 'overflow: hidden' | +......+| to 'overflow: hidden'
+-----------------------+ +.......................+
(0px, 200px) (200px, 200px)
--> -->

View file

@ -0,0 +1,79 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS Images Module Level 3: image-orientation: none</title>
<script src=/common/get-host-info.sub.js></script>
<link rel="author" title="Noam Rosenthal" href="mailto:noam@webkit.org">
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/5165">
<link rel="match" href="reference/image-orientation-none-cross-origin-ref.html">
<meta name=fuzzy content="10;100">
<style>
img {display: none}
canvas {
width: 100px;
height: 100px;
margin: 10px;
}
</style>
<script>
const src1 = 'support/exif-orientation-1-ul.jpg';
const src2 = 'support/exif-orientation-3-lr.jpg';
function toCors(src) {
return src.replace(new URL(src).origin, get_host_info().HTTP_REMOTE_ORIGIN)
}
function createImage({cors, src, orientation, shouldBeRotated}) {
const img = document.createElement('img');
img.src = src
if (cors)
img.src = toCors(img.src)
img.style.imageOrientation = orientation
img.style.display = 'none'
img.dataset.shouldBeRotated = shouldBeRotated
document.body.appendChild(img)
return img
}
window.onload = () => {
const images = [
createImage({cors: true, src: src2, orientation: 'from-image', shouldBeRotated: true}),
createImage({cors: true, src: src2, orientation: 'none', shouldBeRotated: true}),
createImage({cors: false, src: src2, orientation: 'from-image', shouldBeRotated: true}),
createImage({cors: true, src: src1, orientation: 'from-image', shouldBeRotated: false}),
createImage({cors: true, src: src1, orientation: 'none', shouldBeRotated: false}),
createImage({cors: false, src: src1, orientation: 'from-image', shouldBeRotated: false}),
createImage({cors: false, src: src1, orientation: 'none', shouldBeRotated: false}),
createImage({cors: false, src: src2, orientation: 'none', shouldBeRotated: false}),
]
const dimension = 1
images.forEach(image => {
const canvas = document.createElement('canvas')
canvas.width = canvas.height = dimension
const ctx = canvas.getContext('2d')
const sx = image.dataset.shouldBeRotated === 'true' ? image.width * .8 : 0
const sy = image.dataset.shouldBeRotated === 'true' ? image.height * .8 : 0
ctx.drawImage(image, sx, sy, 1, 1, 0, 0, dimension, dimension)
document.body.appendChild(canvas)
})
}
</script>
</head>
<body>
<p>You should see 8 green rectangles, no red.</p>
</body>
<script>
[src1, src2].forEach(src => {
const img = document.createElement('img')
img.src = src
const imgCors = document.createElement('img')
imgCors.src = src
imgCors.src = toCors(imgCors.src)
document.body.appendChild(img)
document.body.appendChild(imgCors)
})
</script>
</html>

View file

@ -0,0 +1,37 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS Images Module Level 3: image-orientation: none</title>
<script src=/common/get-host-info.sub.js></script>
<link rel="author" title="Noam Rosenthal" href="mailto:noam@webkit.org">
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/5165">
<link rel="match" href="reference/image-orientation-none-cross-origin-ref.html">
<meta name=fuzzy content="10;100">
<style>
body {
overflow: hidden;
image-orientation: none;
}
div {
display: inline-block;
width: 100px;
vertical-align: top;
}
</style>
</head>
<body>
<p>The following images should not be identical.</p>
<p>The image should not rotate respecting their EXIF orientation because
image-orientation: none is specified.</p>
<div><img src="support/exif-orientation-3-lr.jpg"/></div>
<p>This image should rotate respecting their EXIF orientation because
image-orientation: none should be effectively ignored for opaque (cross-origin) images.</p>
<div><img id="corsImage" src="support/exif-orientation-3-lr.jpg"/></div>
<script>
const img = document.getElementById('corsImage')
img.src = img.src.replace(new URL(img.src).origin, get_host_info().HTTP_REMOTE_ORIGIN)
</script>
</body>
</html>

View file

@ -0,0 +1,44 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS Images Module Level 3: image-orientation: none</title>
<link rel="author" title="Noam Rosenthal" href="mailto:noam@webkit.org">
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/5165">
<meta name=fuzzy content="10;100">
<style>
body {
overflow: hidden;
image-orientation: none;
}
img {display: none}
canvas {
width: 100px;
height: 100px;
margin: 10px;
}
.no-orient { image-orientation: none; }
</style>
<body>
<p>You should see 8 green rectangles, no red.</p>
</body>
<script>
const img = document.createElement('img')
img.src = '../support/exif-orientation-1-ul.jpg'
document.body.appendChild(img)
const dimension = 5
window.onload = () => {
for (let i = 0; i < 8; ++i) {
const canvas = document.createElement('canvas')
canvas.width = canvas.height = dimension
const ctx = canvas.getContext('2d')
ctx.drawImage(img, 0, 0)
document.body.appendChild(canvas)
}
}
</script>
</head>
</html>

View file

@ -0,0 +1,30 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<link rel="author" title="Noam Rosenthal" href="mailto:noam@webkit.org">
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/5165">
<meta name=fuzzy content="10;100">
<style>
body {
overflow: hidden;
image-orientation: none;
}
div {
display: inline-block;
width: 100px;
vertical-align: top;
}
</style>
</head>
<body>
<p>The following images should not be identical.</p>
<p>The image should not rotate respecting their EXIF orientation because
image-orientation: none is specified.</p>
<div><img src="../support/exif-orientation-3-lr.jpg"/></div>
<p>This image should rotate respecting their EXIF orientation because
image-orientation: none should be effectively ignored for opaque (cross-origin) images.</p>
<div><img src="../support/exif-orientation-3-lr.jpg" style="image-orientation: from-image" /></div>
</body>
</html>

View file

@ -1,11 +0,0 @@
<!DOCTYPE html>
<title>CSS Masking: mask-repeat:round repeat;</title>
<link rel="author" title="Li Jun" href="mailto:64835173@qq.com">
<link rel="reviewer" title="Dirk Schulze" href="mailto:dschulze@adobe.com"><!-- 11-09-2013 @TestTWF Shenzhen -->
<body>
<p>Test passes if there is a blue square and no red.</p>
<div style="width: 200px; height:200px; position: fixed; background-color:blue;"></div>
</body>
</html>

View file

@ -1,26 +0,0 @@
<!DOCTYPE html>
<title>CSS Masking: mask-repeat:round repeat;</title>
<link rel="author" title="Li Jun" href="mailto:64835173@qq.com">
<link rel="reviewer" title="Dirk Schulze" href="mailto:dschulze@adobe.com"><!-- 11-09-2013 @TestTWF Shenzhen -->
<link rel="help" href="http://www.w3.org/TR/css-masking-1/#the-mask-repeat">
<link rel="match" href="test-mask-ref.html">
<meta name="assert" content="Test checks that the mask-repeart value "round" is working properly: it should scale to fit the whole area.">
<style>
.test {
width:200px;
height:200px;
white-space:normal;
background:blue;
mask-image:radial-gradient(black, black);
mask-repeat:round;
mask-size:100px 100px;
mask-box-image:none;
mask-origin:border;
};
</style>
<body>
<p>Test passes if there is a blue square and no red.</p>
<div style="width: 200px; height:200px; position: fixed; background-color:red;"></div>
<div class="test"></div>
</body>
</html>

View file

@ -40,6 +40,14 @@
assert_array_equals(parent.childNodes, [x]); assert_array_equals(parent.childNodes, [x]);
}, `${nodeName}.replaceChildren() with only one element as an argument, on a parent having no child.`); }, `${nodeName}.replaceChildren() with only one element as an argument, on a parent having no child.`);
test(() => {
const parent = node.cloneNode();
const child = document.createElement('test');
parent.appendChild(child);
parent.replaceChildren();
assert_array_equals(parent.childNodes, []);
}, `${nodeName}.replaceChildren() without any argument, on a parent having a child.`);
test(() => { test(() => {
const parent = node.cloneNode(); const parent = node.cloneNode();
const child = document.createElement('test'); const child = document.createElement('test');

View file

@ -26,53 +26,57 @@ function wait(ms) {
return new Promise(resolve => step_timeout(resolve, ms)); return new Promise(resolve => step_timeout(resolve, ms));
} }
async function pollReports(endpoint, reports) { async function fetchReports(endpoint) {
while (true) { const res = await fetch(`resources/report.py?endpoint=${endpoint}`, {cache: 'no-store'});
await wait(200); if (res.status == 200) {
const res = await fetch(`resources/report.py?endpoint=${endpoint}`, {cache: 'no-store'}); return await res.json();
if (res.status !== 200) {
continue;
}
for (const report of await res.json()) {
reports.push(report);
}
} }
return [];
} }
const reports = []; async function checkCorpReportExistence(endpoint, blockedUrl, contextUrl, destination, disposition) {
const reportsForReportOnly = [];
pollReports('endpoint', reports);
pollReports('report-only-endpoint', reportsForReportOnly);
function checkCorpReportExistence(reports, blockedUrl, contextUrl, destination, disposition) {
blockedUrl = new URL(blockedUrl, location).href; blockedUrl = new URL(blockedUrl, location).href;
contextUrl = new URL(contextUrl, location).href; contextUrl = new URL(contextUrl, location).href;
for (const report of reports) {
if (report.type !== 'coep' || report.url !== contextUrl || const timeout = 3000;
report.body.type !== 'corp') { const retryDelay = 200;
continue; for (let i = 0; i * retryDelay < timeout; i++) {
} const reports = await fetchReports(endpoint);
if (report.body.blockedURL === blockedUrl && for (const report of reports) {
report.body.disposition === disposition) { if (report.type !== 'coep' || report.url !== contextUrl ||
assert_equals(report.body.destination, destination); report.body.type !== 'corp') {
return; continue;
}
if (report.body.blockedURL === blockedUrl &&
report.body.disposition === disposition) {
assert_equals(report.body.destination, destination);
return;
}
} }
await wait(retryDelay);
} }
assert_unreached(`A report whose blockedURL is ${blockedUrl} and url is ${contextUrl} is not found.`); assert_unreached(`A report whose blockedURL is ${blockedUrl} and url is ${contextUrl} is not found.`);
} }
function checkNavigationReportExistence(reports, blockedUrl, contextUrl, disposition) { async function checkNavigationReportExistence(endpoint, blockedUrl, contextUrl, disposition) {
blockedUrl = new URL(blockedUrl, location).href; blockedUrl = new URL(blockedUrl, location).href;
contextUrl = new URL(contextUrl, location).href; contextUrl = new URL(contextUrl, location).href;
for (const report of reports) { const timeout = 3000;
if (report.type !== 'coep' || report.url !== contextUrl || const retryDelay = 200;
report.body.type !== 'navigation') { for (let i = 0; i * retryDelay < timeout; i++) {
continue; const reports = await fetchReports(endpoint);
}
if (report.body.blockedURL === blockedUrl && for (const report of reports) {
report.body.disposition === disposition) { if (report.type !== 'coep' || report.url !== contextUrl ||
return; report.body.type !== 'navigation') {
continue;
}
if (report.body.blockedURL === blockedUrl &&
report.body.disposition === disposition) {
return;
}
} }
await wait(retryDelay);
} }
assert_unreached(`A report whose blockedURL is ${blockedUrl} and url is ${contextUrl} is not found.`); assert_unreached(`A report whose blockedURL is ${blockedUrl} and url is ${contextUrl} is not found.`);
} }
@ -93,12 +97,9 @@ promise_test(async t => {
// header, so it is blocked. // header, so it is blocked.
iframe.contentWindow.fetch(url, init).catch(() => {}); iframe.contentWindow.fetch(url, init).catch(() => {});
// Wait 3 seconds for reports to settle. await checkCorpReportExistence('endpoint', url, iframe.src, '', 'enforce');
await wait(3000); await checkCorpReportExistence(
'report-only-endpoint', url, iframe.src, '', 'reporting');
checkCorpReportExistence(reports, url, iframe.src, '', 'enforce');
checkCorpReportExistence(
reportsForReportOnly, url, iframe.src, '', 'reporting');
}, 'subresource CORP'); }, 'subresource CORP');
promise_test(async t => { promise_test(async t => {
@ -124,12 +125,10 @@ promise_test(async t => {
// header, so it is blocked. // header, so it is blocked.
attachFrame(url); attachFrame(url);
// Wait 3 seconds for reports to settle. await checkCorpReportExistence(
await wait(3000); 'endpoint', url, iframe.src, 'iframe', 'enforce');
await checkCorpReportExistence(
checkCorpReportExistence(reports, url, iframe.src, 'iframe', 'enforce'); 'report-only-endpoint', url, iframe.src, 'iframe', 'reporting');
checkCorpReportExistence(
reportsForReportOnly, url, iframe.src, 'iframe', 'reporting');
}, 'navigation CORP'); }, 'navigation CORP');
promise_test(async (t) => { promise_test(async (t) => {
@ -147,12 +146,10 @@ promise_test(async (t) => {
document.body.appendChild(iframe); document.body.appendChild(iframe);
// Wait 3 seconds for reports to settle. await checkNavigationReportExistence(
await wait(3000); 'endpoint', targetUrl, iframe.src, 'enforce');
await checkNavigationReportExistence(
checkNavigationReportExistence(reports, targetUrl, iframe.src, 'enforce'); 'report-only-endpoint', targetUrl, iframe.src, 'reporting');
checkNavigationReportExistence(
reportsForReportOnly, targetUrl, iframe.src, 'reporting');
}, 'COEP violation on nested frame navigation'); }, 'COEP violation on nested frame navigation');
</script>$ </script>