Update web-platform-tests to revision d4f8820261cce3f9ee37353b6d76d247cb12a972

This commit is contained in:
WPT Sync Bot 2019-03-30 21:38:35 -04:00
parent 793b41299b
commit 7cb8ac2fe2
36 changed files with 278 additions and 279 deletions

View file

@ -14,6 +14,9 @@
[Revoke blob URL after creating Request, will fetch] [Revoke blob URL after creating Request, will fetch]
expected: FAIL expected: FAIL
[Revoke blob URL after calling fetch, fetch should succeed]
expected: FAIL
[url-with-fetch.any.html] [url-with-fetch.any.html]
[Untitled] [Untitled]
@ -34,3 +37,6 @@
[Revoke blob URL after creating Request, will fetch] [Revoke blob URL after creating Request, will fetch]
expected: FAIL expected: FAIL
[Revoke blob URL after calling fetch, fetch should succeed]
expected: FAIL

View file

@ -126697,6 +126697,18 @@
{} {}
] ]
], ],
"css/css-lists/list-item-definition.html": [
[
"css/css-lists/list-item-definition.html",
[
[
"/css/css-lists/list-item-definition-ref.html",
"=="
]
],
{}
]
],
"css/css-lists/list-marker-with-lineheight-and-overflow-hidden-001.html": [ "css/css-lists/list-marker-with-lineheight-and-overflow-hidden-001.html": [
[ [
"css/css-lists/list-marker-with-lineheight-and-overflow-hidden-001.html", "css/css-lists/list-marker-with-lineheight-and-overflow-hidden-001.html",
@ -269042,6 +269054,11 @@
{} {}
] ]
], ],
"css/css-lists/list-item-definition-ref.html": [
[
{}
]
],
"css/css-lists/list-marker-with-lineheight-and-overflow-hidden-001-ref.html": [ "css/css-lists/list-marker-with-lineheight-and-overflow-hidden-001-ref.html": [
[ [
{} {}
@ -357299,6 +357316,12 @@
{} {}
] ]
], ],
"css/css-position/position-absolute-crash-chrome-004.html": [
[
"css/css-position/position-absolute-crash-chrome-004.html",
{}
]
],
"css/css-position/position-absolute-dynamic-containing-block.html": [ "css/css-position/position-absolute-dynamic-containing-block.html": [
[ [
"css/css-position/position-absolute-dynamic-containing-block.html", "css/css-position/position-absolute-dynamic-containing-block.html",
@ -383687,7 +383710,9 @@
"fetch/sec-metadata/iframe.tentative.https.sub.html": [ "fetch/sec-metadata/iframe.tentative.https.sub.html": [
[ [
"fetch/sec-metadata/iframe.tentative.https.sub.html", "fetch/sec-metadata/iframe.tentative.https.sub.html",
{} {
"testdriver": true
}
] ]
], ],
"fetch/sec-metadata/iframe.tentative.sub.html": [ "fetch/sec-metadata/iframe.tentative.sub.html": [
@ -394351,18 +394376,6 @@
{} {}
] ]
], ],
"html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-integrity-classic.sub.html": [
[
"html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-integrity-classic.sub.html",
{}
]
],
"html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-integrity-module.sub.html": [
[
"html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-integrity-module.sub.html",
{}
]
],
"html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-module.html": [ "html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-module.html": [
[ [
"html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-module.html", "html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-module.html",
@ -593783,6 +593796,14 @@
"df54e8fb0df8146f896c2abd136d63d930d92d1c", "df54e8fb0df8146f896c2abd136d63d930d92d1c",
"testharness" "testharness"
], ],
"css/css-lists/list-item-definition-ref.html": [
"72a4c90f4ada6a889fa71a27aea20146ea07bc9b",
"support"
],
"css/css-lists/list-item-definition.html": [
"edae4b96bd98876170145cf9bc9c834d188b5640",
"reftest"
],
"css/css-lists/list-marker-with-lineheight-and-overflow-hidden-001-ref.html": [ "css/css-lists/list-marker-with-lineheight-and-overflow-hidden-001-ref.html": [
"ae6486147e28502db80f6b887b1a6b16c30184f2", "ae6486147e28502db80f6b887b1a6b16c30184f2",
"support" "support"
@ -597711,6 +597732,10 @@
"c443e836e57a361c7de9bc5f9a6debe7ff832fe0", "c443e836e57a361c7de9bc5f9a6debe7ff832fe0",
"testharness" "testharness"
], ],
"css/css-position/position-absolute-crash-chrome-004.html": [
"cc6de63e0011a3588592bd7bf27d5230ea8d2a48",
"testharness"
],
"css/css-position/position-absolute-dynamic-containing-block.html": [ "css/css-position/position-absolute-dynamic-containing-block.html": [
"3968f685849663574ca213fcb90dc5fb3eaffaa3", "3968f685849663574ca213fcb90dc5fb3eaffaa3",
"testharness" "testharness"
@ -648972,19 +648997,19 @@
"support" "support"
], ],
"fetch/sec-metadata/embed.tentative.https.sub.html": [ "fetch/sec-metadata/embed.tentative.https.sub.html": [
"b97de9ef2fd4c0c41a5671ad7cd20c5814ab5223", "c46765b37c6325260882751e9e592c2b55d8b128",
"testharness" "testharness"
], ],
"fetch/sec-metadata/fetch.tentative.https.sub.html": [ "fetch/sec-metadata/fetch.tentative.https.sub.html": [
"dc4b977ac6ec6544215bcf2a41007a6adde2d36e", "bffb4275df8e99c9d06d4fa4ef518e3b1efba747",
"testharness" "testharness"
], ],
"fetch/sec-metadata/font.tentative.https.sub.html": [ "fetch/sec-metadata/font.tentative.https.sub.html": [
"9792f2dce9427c3e42f595adb4c67113a6bb29d7", "60163ee714686fc1c3f5f9b7011ce03cf3028e6b",
"testharness" "testharness"
], ],
"fetch/sec-metadata/iframe.tentative.https.sub.html": [ "fetch/sec-metadata/iframe.tentative.https.sub.html": [
"056d8fdba945ddc9e3daed1f6d4f915b084a3da9", "461d9f28fa1e8987e3b05c48cb10fa6f4f8bf326",
"testharness" "testharness"
], ],
"fetch/sec-metadata/iframe.tentative.sub.html": [ "fetch/sec-metadata/iframe.tentative.sub.html": [
@ -648992,7 +649017,7 @@
"testharness" "testharness"
], ],
"fetch/sec-metadata/img.tentative.https.sub.html": [ "fetch/sec-metadata/img.tentative.https.sub.html": [
"802ae25b775c0b246d162cc8f41df0c47cd52867", "717e385bd040be4b75f1049de05f48726e382d96",
"testharness" "testharness"
], ],
"fetch/sec-metadata/navigation.https.sub.html": [ "fetch/sec-metadata/navigation.https.sub.html": [
@ -649000,31 +649025,31 @@
"testharness" "testharness"
], ],
"fetch/sec-metadata/object.tentative.https.sub.html": [ "fetch/sec-metadata/object.tentative.https.sub.html": [
"474962918b03075b0fa97d199a339b5f504d8c20", "b60ae206c78b3dd8e934dde7a7408fe4a7465932",
"testharness" "testharness"
], ],
"fetch/sec-metadata/redirect/cross-site-redirect.tentative.https.sub.html": [ "fetch/sec-metadata/redirect/cross-site-redirect.tentative.https.sub.html": [
"1634a29f3791490aa782435a294442d3a925ebda", "06b58744fb5a26f16f5ed8fc923f1c91989e2eb8",
"testharness" "testharness"
], ],
"fetch/sec-metadata/redirect/multiple-redirect-cross-site.tentative.https.sub.html": [ "fetch/sec-metadata/redirect/multiple-redirect-cross-site.tentative.https.sub.html": [
"7647a5b1c89a99ab4c8227a6690c457915e07a62", "e173bb053fedd46f346a0e89990f44cf5cbc1856",
"testharness" "testharness"
], ],
"fetch/sec-metadata/redirect/multiple-redirect-same-site.tentative.https.sub.html": [ "fetch/sec-metadata/redirect/multiple-redirect-same-site.tentative.https.sub.html": [
"e83d6fd97e844f84dc5fb6c39a3acc99e5e9f087", "d19a1896ad77e69923e219292d9ae4c1ef35e70e",
"testharness" "testharness"
], ],
"fetch/sec-metadata/redirect/same-origin-redirect.tentative.https.sub.html": [ "fetch/sec-metadata/redirect/same-origin-redirect.tentative.https.sub.html": [
"2033eab5979a619f918443d98788ae3caaefecb5", "0b4fdfeec58b6f353000cf290f345b63c4c9cba9",
"testharness" "testharness"
], ],
"fetch/sec-metadata/redirect/same-site-redirect.tentative.https.sub.html": [ "fetch/sec-metadata/redirect/same-site-redirect.tentative.https.sub.html": [
"c5b6830abed5f197f2640fa1ddb18be9f79480fd", "70c0afef22883469a54a874a955a91c89c4336d7",
"testharness" "testharness"
], ],
"fetch/sec-metadata/report.tentative.https.sub.html": [ "fetch/sec-metadata/report.tentative.https.sub.html": [
"405964e08923ae7db3becc5178f99994b8614230", "eb6c76b57c75a70e183ebbc8a9e11e42275ff82e",
"testharness" "testharness"
], ],
"fetch/sec-metadata/report.tentative.https.sub.html.sub.headers": [ "fetch/sec-metadata/report.tentative.https.sub.html.sub.headers": [
@ -649064,7 +649089,7 @@
"support" "support"
], ],
"fetch/sec-metadata/script.tentative.https.sub.html": [ "fetch/sec-metadata/script.tentative.https.sub.html": [
"a35e753c7898cc89427fa8dc22ce5fd55325ea8e", "b2874a37da1ebb578d76702bae66abf6fa501b8e",
"testharness" "testharness"
], ],
"fetch/sec-metadata/script.tentative.sub.html": [ "fetch/sec-metadata/script.tentative.sub.html": [
@ -649072,35 +649097,35 @@
"testharness" "testharness"
], ],
"fetch/sec-metadata/serviceworker.tentative.https.sub.html": [ "fetch/sec-metadata/serviceworker.tentative.https.sub.html": [
"590a6c33475d26e54ef31e7a766f596d4b6d5215", "ee436d9265ff85c3e307c7c6f565e55d7cc84961",
"testharness" "testharness"
], ],
"fetch/sec-metadata/sharedworker.tentative.https.sub.html": [ "fetch/sec-metadata/sharedworker.tentative.https.sub.html": [
"a1c558ad35dfbdb7d2f35535ba26148f31e3f2c6", "ddd4cc9914eb28a3b85d13366dd84ca722d34d52",
"testharness" "testharness"
], ],
"fetch/sec-metadata/style.tentative.https.sub.html": [ "fetch/sec-metadata/style.tentative.https.sub.html": [
"46f64f49bde0ce6c642a517aacaf5af8c3074edc", "19cc16d8017cc2a86c72098fcfdd161ea4080bde",
"testharness" "testharness"
], ],
"fetch/sec-metadata/track.tentative.https.sub.html": [ "fetch/sec-metadata/track.tentative.https.sub.html": [
"817e4845edb215cd1fdf8183e6d306a4fe4172c4", "fe525caf15523310e4f67dc5200cc7877d5f3456",
"testharness" "testharness"
], ],
"fetch/sec-metadata/trailing-dot.tentative.https.sub.html": [ "fetch/sec-metadata/trailing-dot.tentative.https.sub.html": [
"85f9c73c6ae22fb34a8bd76b624f286367ba0265", "ff0e842d5118cba40b73f09e29cf98be0bcabb12",
"testharness" "testharness"
], ],
"fetch/sec-metadata/window-open.tentative.https.sub.html": [ "fetch/sec-metadata/window-open.tentative.https.sub.html": [
"ef2bc81824ea5f90551da75daf6e10f41ef2cdcd", "0be9f2ce577d5cdd590e0326ed650455d87f1ee4",
"testharness" "testharness"
], ],
"fetch/sec-metadata/worker.tentative.https.sub.html": [ "fetch/sec-metadata/worker.tentative.https.sub.html": [
"dc21d0324f442a8aa801dbddb04e0b2fe93464d0", "940e25b2a51a41610980601e0c97be5e4614c9b0",
"testharness" "testharness"
], ],
"fetch/sec-metadata/xslt.tentative.https.sub.html": [ "fetch/sec-metadata/xslt.tentative.https.sub.html": [
"eea2329900e000c43cb0b347c011d6d4adb8bd46", "0d429266288e8a77bcdc5076d3f248bf0ef509b5",
"testharness" "testharness"
], ],
"fetch/security/dangling-markup-mitigation-data-url.tentative.sub.html": [ "fetch/security/dangling-markup-mitigation-data-url.tentative.sub.html": [
@ -666083,14 +666108,6 @@
"34ea00abc83ce6f8c83c9b31edd77a69d356b214", "34ea00abc83ce6f8c83c9b31edd77a69d356b214",
"testharness" "testharness"
], ],
"html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-integrity-classic.sub.html": [
"80a298913a09c2cccbdfc917975ddc6e801cf411",
"testharness"
],
"html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-integrity-module.sub.html": [
"db3d3b1e15a8fa7ab82947c6fd96bb2d1b5fb2dc",
"testharness"
],
"html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-module.html": [ "html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-module.html": [
"b85d446d8dae01be803e190b593aac6ed921ca08", "b85d446d8dae01be803e190b593aac6ed921ca08",
"testharness" "testharness"
@ -670784,7 +670801,7 @@
"support" "support"
], ],
"interfaces/performance-timeline.idl": [ "interfaces/performance-timeline.idl": [
"7766bfd7b09e56e4822643b5fdf56697b20ad3e3", "51752b139589e64088364109d8c5e117c7811e95",
"support" "support"
], ],
"interfaces/permissions.idl": [ "interfaces/permissions.idl": [

View file

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

View file

@ -11,6 +11,3 @@
[X-Content-Type-Options%3A%20nosniff%0C] [X-Content-Type-Options%3A%20nosniff%0C]
expected: FAIL expected: FAIL
[Content-Type-Options%3A%20nosniff]
expected: FAIL

View file

@ -1,4 +0,0 @@
[javascript-url-abort-return-value-string.tentative.html]
[Aborting fetch for javascript:string navigation]
expected: FAIL

View file

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

View file

@ -1,7 +0,0 @@
[toggleEvent.html]
[Calling open twice on 'details' fires only one toggle event]
expected: FAIL
[Setting open=true to opened 'details' element should not fire a toggle event at the 'details' element]
expected: FAIL

View file

@ -37,6 +37,9 @@
[PerformanceEntry interface: default toJSON operation on mark] [PerformanceEntry interface: default toJSON operation on mark]
expected: FAIL expected: FAIL
[PerformanceObserver interface: operation observe(PerformanceObserverInit)]
expected: FAIL
[idlharness.any.html] [idlharness.any.html]
[Untitled] [Untitled]
@ -72,6 +75,9 @@
[PerformanceEntry interface: default toJSON operation on mark] [PerformanceEntry interface: default toJSON operation on mark]
expected: FAIL expected: FAIL
[PerformanceObserver interface: operation observe(PerformanceObserverInit)]
expected: FAIL
[idlharness.https.any.serviceworker.html] [idlharness.https.any.serviceworker.html]
type: testharness type: testharness

View file

@ -0,0 +1,2 @@
[scroll_root.html]
expected: FAIL

View file

@ -0,0 +1,11 @@
<!doctype html>
<title>CSS Test Reference</title>
<link rel="author" href="mailto:emilio@crisal.io" title="Emilio Cobos Álvarez">
<link rel="author" href="https://mozilla.org" title="Mozilla">
<ol>
<svg style="display: list-item"></svg>
<img style="display: list-item">
<img style="display: list-item" alt="Foo">
<li value="4">Foo
<li>Bar
</ol>

View file

@ -0,0 +1,15 @@
<!doctype html>
<title>The definition of what a list-item is only depends on the display value, and doesn't account for pseudo-elements</title>
<link rel="help" href="https://drafts.csswg.org/css-lists/#list-item">
<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1539171">
<link rel="author" href="mailto:emilio@crisal.io" title="Emilio Cobos Álvarez">
<link rel="author" href="https://mozilla.org" title="Mozilla">
<link rel="match" href="list-item-definition-ref.html">
<!-- TODO: Test pseudo-elements, see https://github.com/w3c/csswg-drafts/issues/3766 -->
<ol>
<svg style="display: list-item"></svg>
<img style="display: list-item">
<img style="display: list-item" alt="Foo">
<div style="display: list-item">Foo</div>
<li>Bar
</ol>

View file

@ -0,0 +1,41 @@
<!DOCTYPE html>
<title>CSS Position Absolute: Chrome crash</title>
<link rel="author" href="mailto:atotic@chromium.org">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=946986">
<meta name="assert" content="Nested abs/fixed/flex do not crash">
<style>
body { overflow: scroll;}
.container {
position: relative;
contain: paint;
}
.flex {
display: flex;
}
.fixed {
position: fixed;
}
.abs {
position: absolute;
}
</style>
<!-- LayoutNG currently does not support display:flex.
Propagation of descendants across flex boundaries is error prone -->
<div id="one" class="container" style="">
<div class="flex">
<div class="abs">
<div class="flex">
<div id="fixed1" class="fixed">
<div id="fixed2" class="fixed"></div>
</div>
</div>
</div>
</div>
</div>
<script>
test(() => {
}, 'test passes if it does not crash');
</script>

View file

@ -16,7 +16,7 @@
let e = document.createElement('embed'); let e = document.createElement('embed');
e.src = "https://{{host}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key; e.src = "https://{{host}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key;
e.onload = e => { e.onload = e => {
let expected = {"dest":"embed", "site":"same-origin", "user":"?F", "mode":"no-cors"}; let expected = {"dest":"embed", "site":"same-origin", "user":"", "mode":"no-cors"};
fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key) fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key)
.then(response => response.text()) .then(response => response.text())
.then(text => assert_header_equals(text, expected)) .then(text => assert_header_equals(text, expected))
@ -35,7 +35,7 @@
let e = document.createElement('embed'); let e = document.createElement('embed');
e.src = "https://{{hosts[][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key; e.src = "https://{{hosts[][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key;
e.onload = e => { e.onload = e => {
let expected = {"dest":"embed", "site":"same-site", "user":"?F", "mode":"no-cors"}; let expected = {"dest":"embed", "site":"same-site", "user":"", "mode":"no-cors"};
fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key) fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key)
.then(response => response.text()) .then(response => response.text())
.then(text => assert_header_equals(text, expected)) .then(text => assert_header_equals(text, expected))
@ -54,7 +54,7 @@
let e = document.createElement('embed'); let e = document.createElement('embed');
e.src = "https://{{hosts[alt][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key; e.src = "https://{{hosts[alt][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key;
e.onload = e => { e.onload = e => {
let expected = {"dest":"embed", "site":"cross-site", "user":"?F", "mode":"no-cors"}; let expected = {"dest":"embed", "site":"cross-site", "user":"", "mode":"no-cors"};
fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key) fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key)
.then(response => response.text()) .then(response => response.text())
.then(text => assert_header_equals(text, expected)) .then(text => assert_header_equals(text, expected))

View file

@ -11,7 +11,7 @@
assert_header_equals(j, { assert_header_equals(j, {
"dest": "empty", "dest": "empty",
"site": "same-origin", "site": "same-origin",
"user": "?F", "user": "",
"mode": "cors", "mode": "cors",
}); });
}); });
@ -24,7 +24,7 @@
assert_header_equals(j, { assert_header_equals(j, {
"dest": "empty", "dest": "empty",
"site": "same-site", "site": "same-site",
"user": "?F", "user": "",
"mode": "cors", "mode": "cors",
}); });
}); });
@ -37,7 +37,7 @@
assert_header_equals(j, { assert_header_equals(j, {
"dest": "empty", "dest": "empty",
"site": "cross-site", "site": "cross-site",
"user": "?F", "user": "",
"mode": "cors", "mode": "cors",
}); });
}); });
@ -51,7 +51,7 @@
assert_header_equals(j, { assert_header_equals(j, {
"dest": "empty", "dest": "empty",
"site": "same-origin", "site": "same-origin",
"user": "?F", "user": "",
"mode": "same-origin", "mode": "same-origin",
}); });
}); });
@ -64,7 +64,7 @@
assert_header_equals(j, { assert_header_equals(j, {
"dest": "empty", "dest": "empty",
"site": "same-origin", "site": "same-origin",
"user": "?F", "user": "",
"mode": "cors", "mode": "cors",
}); });
}); });
@ -77,7 +77,7 @@
assert_header_equals(j, { assert_header_equals(j, {
"dest": "empty", "dest": "empty",
"site": "same-origin", "site": "same-origin",
"user": "?F", "user": "",
"mode": "no-cors", "mode": "no-cors",
}); });
}); });

View file

@ -46,7 +46,7 @@
promise_test(t => { promise_test(t => {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
let key = "font-same-origin"; let key = "font-same-origin";
let expected = {"dest":"font", "site":"same-origin", "user":"?F", "mode": "cors"}; let expected = {"dest":"font", "site":"same-origin", "user":"", "mode": "cors"};
fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key) fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key)
.then(response => response.text()) .then(response => response.text())
.then(text => assert_header_equals(text, expected)) .then(text => assert_header_equals(text, expected))
@ -58,7 +58,7 @@
promise_test(t => { promise_test(t => {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
let key = "font-same-site"; let key = "font-same-site";
let expected = {"dest":"font", "site":"same-site", "user":"?F", "mode": "cors"}; let expected = {"dest":"font", "site":"same-site", "user":"", "mode": "cors"};
fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key) fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key)
.then(response => response.text()) .then(response => response.text())
.then(text => assert_header_equals(text, expected)) .then(text => assert_header_equals(text, expected))
@ -70,7 +70,7 @@
promise_test(t => { promise_test(t => {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
let key = "font-cross-site"; let key = "font-cross-site";
let expected = {"dest":"font", "site":"cross-site", "user":"?F", "mode": "cors"}; let expected = {"dest":"font", "site":"cross-site", "user":"", "mode": "cors"};
fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key) fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key)
.then(response => response.text()) .then(response => response.text())
.then(text => assert_header_equals(text, expected)) .then(text => assert_header_equals(text, expected))

View file

@ -1,63 +1,85 @@
<!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=/resources/testdriver.js></script>
<script src=/resources/testdriver-vendor.js></script>
<script src=/fetch/sec-metadata/resources/helper.js></script> <script src=/fetch/sec-metadata/resources/helper.js></script>
<script src=/common/utils.js></script>
<body> <body>
<script> <script>
async_test(t => { const USER = true;
let i = document.createElement('iframe'); const FORCED = false;
i.src = "https://{{host}}:{{ports[https][0]}}/fetch/sec-metadata/resources/post-to-owner.py";
window.addEventListener('message', t.step_func(e => {
if (e.source != i.contentWindow)
return;
assert_header_equals(e.data, { function create_test(host, user_activated, expectations) {
"dest": "nested-document", async_test(t => {
"site": "same-origin", let i = document.createElement('iframe');
"user": "?F", window.addEventListener('message', t.step_func(e => {
"mode": "nested-navigate" if (e.source != i.contentWindow)
}); return;
t.done();
}));
document.body.appendChild(i); assert_header_equals(e.data, expectations);
}, "Same-origin iframe"); t.done();
}));
async_test(t => { let url = `https://${host}/fetch/sec-metadata/resources/post-to-owner.py`;
let i = document.createElement('iframe'); if (user_activated == FORCED) {
i.src = "https://{{hosts[][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/post-to-owner.py"; i.src = url;
window.addEventListener('message', t.step_func(e => { document.body.appendChild(i);
if (e.source != i.contentWindow) } else if (user_activated == USER) {
return; let uuid = token();
i.name = uuid;
let a = document.createElement('a');
a.href = url;
a.target = uuid;
a.text = "This is a link!";
assert_header_equals(e.data, { document.body.appendChild(i);
"dest": "nested-document", document.body.appendChild(a);
"site": "same-site",
"user": "?F",
"mode": "nested-navigate"
});
t.done();
}));
document.body.appendChild(i); test_driver.click(a);
}, "Same-site iframe"); }
}, `{{host}} -> ${host} iframe: ${user_activated ? "user-activated" : "forced"}`);
}
async_test(t => { create_test("{{host}}:{{ports[https][0]}}", FORCED, {
let i = document.createElement('iframe'); "dest": "nested-document",
i.src = "https://{{hosts[alt][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/post-to-owner.py"; "site": "same-origin",
window.addEventListener('message', t.step_func(e => { "user": "",
if (e.source != i.contentWindow) "mode": "nested-navigate"
return; });
assert_header_equals(e.data, { create_test("{{hosts[][www]}}:{{ports[https][0]}}", FORCED, {
"dest": "nested-document", "dest": "nested-document",
"site": "cross-site", "site": "same-site",
"user": "?F", "user": "",
"mode": "nested-navigate" "mode": "nested-navigate"
}); });
t.done();
}));
document.body.appendChild(i); create_test("{{hosts[alt][www]}}:{{ports[https][0]}}", FORCED, {
}, "Cross-site iframe"); "dest": "nested-document",
"site": "cross-site",
"user": "",
"mode": "nested-navigate"
});
create_test("{{host}}:{{ports[https][0]}}", USER, {
"dest": "nested-document",
"site": "same-origin",
"user": "?T",
"mode": "nested-navigate"
});
create_test("{{hosts[][www]}}:{{ports[https][0]}}", USER, {
"dest": "nested-document",
"site": "same-site",
"user": "?T",
"mode": "nested-navigate"
});
create_test("{{hosts[alt][www]}}:{{ports[https][0]}}", USER, {
"dest": "nested-document",
"site": "cross-site",
"user": "?T",
"mode": "nested-navigate"
});
</script> </script>

View file

@ -23,7 +23,9 @@
assert_header_equals(got, { assert_header_equals(got, {
"dest": "image", "dest": "image",
"site": "same-origin", "site": "same-origin",
"user": "?F", // Note that we're using `undefined` here, as opposed to "" elsewhere because of the way
// that `image.py` encodes data.
"user": undefined,
"mode": "cors", // Because `loadImageInWindow` tacks on `crossorigin` "mode": "cors", // Because `loadImageInWindow` tacks on `crossorigin`
}); });
}), }),
@ -45,7 +47,9 @@
assert_header_equals(got, { assert_header_equals(got, {
"dest": "image", "dest": "image",
"site": "same-site", "site": "same-site",
"user": "?F", // Note that we're using `undefined` here, as opposed to "" elsewhere because of the way
// that `image.py` encodes data.
"user": undefined,
"mode": "cors", // Because `loadImageInWindow` tacks on `crossorigin` "mode": "cors", // Because `loadImageInWindow` tacks on `crossorigin`
}); });
}), }),
@ -67,7 +71,9 @@
assert_header_equals(got, { assert_header_equals(got, {
"dest": "image", "dest": "image",
"site": "cross-site", "site": "cross-site",
"user": "?F", // Note that we're using `undefined` here, as opposed to "" elsewhere because of the way
// that `image.py` encodes data.
"user": undefined,
"mode": "cors", // Because `loadImageInWindow` tacks on `crossorigin` "mode": "cors", // Because `loadImageInWindow` tacks on `crossorigin`
}); });
}), }),

View file

@ -16,7 +16,7 @@
let e = document.createElement('object'); let e = document.createElement('object');
e.data = "https://{{host}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key; e.data = "https://{{host}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key;
e.onload = e => { e.onload = e => {
let expected = {"dest":"object", "site":"same-origin", "user":"?F", "mode":"no-cors"}; let expected = {"dest":"object", "site":"same-origin", "user":"", "mode":"no-cors"};
fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key) fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key)
.then(response => response.text()) .then(response => response.text())
.then(text => assert_header_equals(text, expected)) .then(text => assert_header_equals(text, expected))
@ -35,7 +35,7 @@
let e = document.createElement('object'); let e = document.createElement('object');
e.data = "https://{{hosts[][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key; e.data = "https://{{hosts[][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key;
e.onload = e => { e.onload = e => {
let expected = {"dest":"object", "site":"same-site", "user":"?F", "mode":"no-cors"}; let expected = {"dest":"object", "site":"same-site", "user":"", "mode":"no-cors"};
fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key) fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key)
.then(response => response.text()) .then(response => response.text())
.then(text => assert_header_equals(text, expected)) .then(text => assert_header_equals(text, expected))
@ -54,7 +54,7 @@
let e = document.createElement('object'); let e = document.createElement('object');
e.data = "https://{{hosts[alt][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key; e.data = "https://{{hosts[alt][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key;
e.onload = e => { e.onload = e => {
let expected = {"dest":"object", "site":"cross-site", "user":"?F", "mode":"no-cors"}; let expected = {"dest":"object", "site":"cross-site", "user":"", "mode":"no-cors"};
fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key) fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key)
.then(response => response.text()) .then(response => response.text())
.then(text => assert_header_equals(text, expected)) .then(text => assert_header_equals(text, expected))

View file

@ -15,7 +15,7 @@
let e = document.createElement('img'); let e = document.createElement('img');
e.src = "https://{{hosts[alt][www]}}:{{ports[https][0]}}/xhr/resources/redirect.py?location=https://{{host}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key; e.src = "https://{{hosts[alt][www]}}:{{ports[https][0]}}/xhr/resources/redirect.py?location=https://{{host}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key;
let expected = {"dest":"image", "site":"cross-site", "user":"?F", "mode": "no-cors"}; let expected = {"dest":"image", "site":"cross-site", "user":"", "mode": "no-cors"};
e.onload = e => { e.onload = e => {
fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key) fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key)
.then(response => response.text()) .then(response => response.text())
@ -41,7 +41,7 @@
let e = document.createElement('img'); let e = document.createElement('img');
e.src = "https://{{hosts[alt][www]}}:{{ports[https][0]}}/xhr/resources/redirect.py?location=https://{{hosts[][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key; e.src = "https://{{hosts[alt][www]}}:{{ports[https][0]}}/xhr/resources/redirect.py?location=https://{{hosts[][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key;
let expected = {"dest":"image", "site":"cross-site", "user":"?F", "mode": "no-cors"}; let expected = {"dest":"image", "site":"cross-site", "user":"", "mode": "no-cors"};
e.onload = e => { e.onload = e => {
fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key) fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key)
.then(response => response.text()) .then(response => response.text())
@ -67,7 +67,7 @@
let e = document.createElement('img'); let e = document.createElement('img');
e.src = "https://{{hosts[alt][www]}}:{{ports[https][0]}}/xhr/resources/redirect.py?location=https://{{hosts[alt][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key; e.src = "https://{{hosts[alt][www]}}:{{ports[https][0]}}/xhr/resources/redirect.py?location=https://{{hosts[alt][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key;
let expected = {"dest":"image", "site":"cross-site", "user":"?F", "mode": "no-cors"}; let expected = {"dest":"image", "site":"cross-site", "user":"", "mode": "no-cors"};
e.onload = e => { e.onload = e => {
fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key) fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key)
.then(response => response.text()) .then(response => response.text())

View file

@ -17,7 +17,7 @@
e.src = "https://{{host}}:{{ports[https][0]}}/xhr/resources/redirect.py?location=" +// same-origin e.src = "https://{{host}}:{{ports[https][0]}}/xhr/resources/redirect.py?location=" +// same-origin
"https://{{hosts[alt][www]}}:{{ports[https][0]}}/xhr/resources/redirect.py?location=" +// cross-site "https://{{hosts[alt][www]}}:{{ports[https][0]}}/xhr/resources/redirect.py?location=" +// cross-site
"https://{{host}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key;// same-origin "https://{{host}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key;// same-origin
let expected = {"dest":"image", "site":"cross-site", "user":"?F", "mode": "no-cors"}; let expected = {"dest":"image", "site":"cross-site", "user":"", "mode": "no-cors"};
e.onload = e => { e.onload = e => {
fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key) fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key)

View file

@ -17,7 +17,7 @@
e.src = "https://{{host}}:{{ports[https][0]}}/xhr/resources/redirect.py?location=" +// same-origin e.src = "https://{{host}}:{{ports[https][0]}}/xhr/resources/redirect.py?location=" +// same-origin
"https://{{hosts[][www]}}:{{ports[https][0]}}/xhr/resources/redirect.py?location=" +// same-site "https://{{hosts[][www]}}:{{ports[https][0]}}/xhr/resources/redirect.py?location=" +// same-site
"https://{{host}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key;// same-origin "https://{{host}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key;// same-origin
let expected = {"dest":"image", "site":"same-site", "user":"?F", "mode": "no-cors"}; let expected = {"dest":"image", "site":"same-site", "user":"", "mode": "no-cors"};
e.onload = e => { e.onload = e => {
fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key) fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key)

View file

@ -15,7 +15,7 @@
let e = document.createElement('img'); let e = document.createElement('img');
e.src = "/xhr/resources/redirect.py?location=https://{{host}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key; e.src = "/xhr/resources/redirect.py?location=https://{{host}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key;
let expected = {"dest":"image", "site":"same-origin", "user":"?F", "mode": "no-cors"}; let expected = {"dest":"image", "site":"same-origin", "user":"", "mode": "no-cors"};
e.onload = e => { e.onload = e => {
fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key) fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key)
@ -42,7 +42,7 @@ promise_test(t => {
let e = document.createElement('img'); let e = document.createElement('img');
e.src = "/xhr/resources/redirect.py?location=https://{{hosts[][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key; e.src = "/xhr/resources/redirect.py?location=https://{{hosts[][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key;
let expected = {"dest":"image", "site":"same-site", "user":"?F", "mode": "no-cors"}; let expected = {"dest":"image", "site":"same-site", "user":"", "mode": "no-cors"};
e.onload = e => { e.onload = e => {
fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key) fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key)
@ -69,7 +69,7 @@ promise_test(t => {
let e = document.createElement('img'); let e = document.createElement('img');
e.src = "/xhr/resources/redirect.py?location=https://{{hosts[alt][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key; e.src = "/xhr/resources/redirect.py?location=https://{{hosts[alt][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key;
let expected = {"dest":"image", "site":"cross-site", "user":"?F", "mode": "no-cors"}; let expected = {"dest":"image", "site":"cross-site", "user":"", "mode": "no-cors"};
e.onload = e => { e.onload = e => {
fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key) fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key)

View file

@ -15,7 +15,7 @@
let e = document.createElement('img'); let e = document.createElement('img');
e.src = "https://{{hosts[][www]}}:{{ports[https][0]}}/xhr/resources/redirect.py?location=https://{{host}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key; e.src = "https://{{hosts[][www]}}:{{ports[https][0]}}/xhr/resources/redirect.py?location=https://{{host}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key;
let expected = {"dest":"image", "site":"same-site", "user":"?F", "mode": "no-cors"}; let expected = {"dest":"image", "site":"same-site", "user":"", "mode": "no-cors"};
e.onload = e => { e.onload = e => {
fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key) fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key)
@ -42,7 +42,7 @@ promise_test(t => {
let e = document.createElement('img'); let e = document.createElement('img');
e.src = "https://{{hosts[][www]}}:{{ports[https][0]}}/xhr/resources/redirect.py?location=https://{{host}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key; e.src = "https://{{hosts[][www]}}:{{ports[https][0]}}/xhr/resources/redirect.py?location=https://{{host}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key;
let expected = {"dest":"image", "site":"same-site", "user":"?F", "mode": "no-cors"}; let expected = {"dest":"image", "site":"same-site", "user":"", "mode": "no-cors"};
e.onload = e => { e.onload = e => {
fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key) fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key)
@ -69,7 +69,7 @@ promise_test(t => {
let e = document.createElement('img'); let e = document.createElement('img');
e.src = "https://{{hosts[][www]}}:{{ports[https][0]}}/xhr/resources/redirect.py?location=https://{{hosts[alt][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key; e.src = "https://{{hosts[][www]}}:{{ports[https][0]}}/xhr/resources/redirect.py?location=https://{{hosts[alt][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key;
let expected = {"dest":"image", "site":"cross-site", "user":"?F", "mode": "no-cors"}; let expected = {"dest":"image", "site":"cross-site", "user":"", "mode": "no-cors"};
e.onload = e => { e.onload = e => {
fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key) fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key)

View file

@ -22,9 +22,9 @@
document.addEventListener("securitypolicyviolation", (e) => { document.addEventListener("securitypolicyviolation", (e) => {
counter++; counter++;
if (counter == 3) { if (counter == 3) {
generate_test({"dest":"report", "site":"same-origin", "user":"?F", "mode": "no-cors"}, "same-origin"); generate_test({"dest":"report", "site":"same-origin", "user":"", "mode": "no-cors"}, "same-origin");
generate_test({"dest":"report", "site":"same-site", "user":"?F", "mode": "no-cors"}, "same-site"); generate_test({"dest":"report", "site":"same-site", "user":"", "mode": "no-cors"}, "same-site");
generate_test({"dest":"report", "site":"cross-site", "user":"?F", "mode": "no-cors"}, "cross-site"); generate_test({"dest":"report", "site":"cross-site", "user":"", "mode": "no-cors"}, "cross-site");
done(); done();
} }

View file

@ -12,7 +12,7 @@
assert_header_equals(header, { assert_header_equals(header, {
"dest": "script", "dest": "script",
"site": "same-origin", "site": "same-origin",
"user": "?F", "user": "",
"mode": "no-cors", "mode": "no-cors",
}); });
}, "Same-origin script"); }, "Same-origin script");
@ -27,7 +27,7 @@
assert_header_equals(header, { assert_header_equals(header, {
"dest": "script", "dest": "script",
"site": "same-site", "site": "same-site",
"user": "?F", "user": "",
"mode": "no-cors", "mode": "no-cors",
}); });
}, "Same-site script"); }, "Same-site script");
@ -42,7 +42,7 @@
assert_header_equals(header, { assert_header_equals(header, {
"dest": "script", "dest": "script",
"site": "cross-site", "site": "cross-site",
"user": "?F", "user": "",
"mode": "no-cors", "mode": "no-cors",
}); });
}, "Cross-site script"); }, "Cross-site script");
@ -57,7 +57,7 @@
assert_header_equals(header, { assert_header_equals(header, {
"dest": "script", "dest": "script",
"site": "same-origin", "site": "same-origin",
"user": "?F", "user": "",
"mode": "cors", "mode": "cors",
}); });
}, "Same-origin CORS script"); }, "Same-origin CORS script");

View file

@ -38,7 +38,7 @@
function test_same_origin(){ function test_same_origin(){
promise_test(t => { promise_test(t => {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
let expected = {"dest":"serviceworker", "site":"same-origin", "user":"?F", "mode": "same-origin"}; let expected = {"dest":"serviceworker", "site":"same-origin", "user":"", "mode": "same-origin"};
fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key) fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key)
.then(response => response.text()) .then(response => response.text())
.then(text => assert_header_equals(text, expected)) .then(text => assert_header_equals(text, expected))

View file

@ -28,7 +28,7 @@
function test_same_origin(){ function test_same_origin(){
promise_test(t => { promise_test(t => {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
let expected = {"dest":"sharedworker", "site":"same-origin", "user":"?F", "mode": "same-origin"}; let expected = {"dest":"sharedworker", "site":"same-origin", "user":"", "mode": "same-origin"};
fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key) fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key)
.then(response => response.text()) .then(response => response.text())

View file

@ -17,7 +17,7 @@
e.rel = "stylesheet"; e.rel = "stylesheet";
e.href = "https://{{host}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key; e.href = "https://{{host}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key;
e.onload = e => { e.onload = e => {
let expected = {"dest":"style", "site":"same-origin", "user":"?F", "mode": "no-cors"}; let expected = {"dest":"style", "site":"same-origin", "user":"", "mode": "no-cors"};
fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key) fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key)
.then(response => response.text()) .then(response => response.text())
.then(text => assert_header_equals(text, expected)) .then(text => assert_header_equals(text, expected))
@ -37,7 +37,7 @@
e.rel = "stylesheet"; e.rel = "stylesheet";
e.href = "https://{{hosts[][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key; e.href = "https://{{hosts[][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key;
e.onload = e => { e.onload = e => {
let expected = {"dest":"style", "site":"same-site", "user":"?F", "mode": "no-cors"}; let expected = {"dest":"style", "site":"same-site", "user":"", "mode": "no-cors"};
fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key) fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key)
.then(response => response.text()) .then(response => response.text())
.then(text => assert_header_equals(text, expected)) .then(text => assert_header_equals(text, expected))
@ -57,7 +57,7 @@
e.rel = "stylesheet"; e.rel = "stylesheet";
e.href = "https://{{hosts[alt][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key; e.href = "https://{{hosts[alt][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key;
e.onload = e => { e.onload = e => {
let expected = {"dest":"style", "site":"cross-site", "user":"?F", "mode": "no-cors"}; let expected = {"dest":"style", "site":"cross-site", "user":"", "mode": "no-cors"};
fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key) fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key)
.then(response => response.text()) .then(response => response.text())
.then(text => assert_header_equals(text, expected)) .then(text => assert_header_equals(text, expected))
@ -78,7 +78,7 @@
e.href = "https://{{host}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key; e.href = "https://{{host}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key;
e.crossOrigin = "anonymous"; e.crossOrigin = "anonymous";
e.onload = e => { e.onload = e => {
let expected = {"dest":"style", "site":"same-origin", "user":"?F", "mode": "cors"}; let expected = {"dest":"style", "site":"same-origin", "user":"", "mode": "cors"};
fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key) fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key)
.then(response => response.text()) .then(response => response.text())
.then(text => assert_header_equals(text, expected)) .then(text => assert_header_equals(text, expected))

View file

@ -36,7 +36,7 @@
expected = { expected = {
"dest": "track", "dest": "track",
"site": "same-origin", "site": "same-origin",
"user": "?F", "user": "",
"mode": "cors" // Because the `video` element has `crossorigin` "mode": "cors" // Because the `video` element has `crossorigin`
}; };
fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key) fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key)
@ -59,7 +59,7 @@
expected = { expected = {
"dest": "track", "dest": "track",
"site": "same-site", "site": "same-site",
"user": "?F", "user": "",
"mode": "cors" // Because the `video` element has `crossorigin` "mode": "cors" // Because the `video` element has `crossorigin`
}; };
fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key) fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key)
@ -84,7 +84,7 @@
expected = { expected = {
"dest": "track", "dest": "track",
"site": "cross-site", "site": "cross-site",
"user": "?F", "user": "",
"mode": "cors" // Because the `video` element has `crossorigin` "mode": "cors" // Because the `video` element has `crossorigin`
}; };
fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key) fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key)
@ -112,7 +112,7 @@
expected = { expected = {
"dest":"track", "dest":"track",
"site":"same-origin", "site":"same-origin",
"user":"?F", "user":"",
"mode": "same-origin" "mode": "same-origin"
}; };
fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key) fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key)

View file

@ -11,7 +11,7 @@
assert_header_equals(j, { assert_header_equals(j, {
"dest": "empty", "dest": "empty",
"site": "cross-site", "site": "cross-site",
"user": "?F", "user": "",
"mode": "cors", "mode": "cors",
}); });
}); });
@ -24,7 +24,7 @@
assert_header_equals(j, { assert_header_equals(j, {
"dest": "empty", "dest": "empty",
"site": "cross-site", "site": "cross-site",
"user": "?F", "user": "",
"mode": "cors", "mode": "cors",
}); });
}); });
@ -37,7 +37,7 @@
assert_header_equals(j, { assert_header_equals(j, {
"dest": "empty", "dest": "empty",
"site": "cross-site", "site": "cross-site",
"user": "?F", "user": "",
"mode": "cors", "mode": "cors",
}); });
}); });

View file

@ -17,7 +17,7 @@
assert_header_equals(e.data, { assert_header_equals(e.data, {
"dest": "document", "dest": "document",
"site": "same-origin", "site": "same-origin",
"user": "?F", "user": "",
"mode": "navigate", "mode": "navigate",
}); });
t.done(); t.done();
@ -34,7 +34,7 @@
assert_header_equals(e.data, { assert_header_equals(e.data, {
"dest": "document", "dest": "document",
"site": "same-site", "site": "same-site",
"user": "?F", "user": "",
"mode": "navigate", "mode": "navigate",
}); });
t.done(); t.done();
@ -51,7 +51,7 @@
assert_header_equals(e.data, { assert_header_equals(e.data, {
"dest": "document", "dest": "document",
"site": "cross-site", "site": "cross-site",
"user": "?F", "user": "",
"mode": "navigate", "mode": "navigate",
}); });
t.done(); t.done();
@ -70,7 +70,7 @@
assert_header_equals(e.data, { assert_header_equals(e.data, {
"dest": "document", "dest": "document",
"site": "same-origin", "site": "same-origin",
"user": "?F", "user": "",
"mode": "navigate", "mode": "navigate",
}); });
@ -94,7 +94,7 @@
assert_header_equals(e.data, { assert_header_equals(e.data, {
"dest": "document", "dest": "document",
"site": "same-site", "site": "same-site",
"user": "?F", "user": "",
"mode": "navigate", "mode": "navigate",
}); });
@ -118,7 +118,7 @@
assert_header_equals(e.data, { assert_header_equals(e.data, {
"dest": "document", "dest": "document",
"site": "cross-site", "site": "cross-site",
"user": "?F", "user": "",
"mode": "navigate", "mode": "navigate",
}); });

View file

@ -13,7 +13,7 @@
let key = "worker-same-origin" + nonce; let key = "worker-same-origin" + nonce;
let w = new Worker("/fetch/sec-metadata/resources/record-header.py?file=" + key); let w = new Worker("/fetch/sec-metadata/resources/record-header.py?file=" + key);
w.onmessage = e => { w.onmessage = e => {
let expected = {"dest":"worker", "site":"same-origin", "user":"?F", "mode": "same-origin"}; let expected = {"dest":"worker", "site":"same-origin", "user":"", "mode": "same-origin"};
fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key) fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key)
.then(response => response.text()) .then(response => response.text())
.then(text => assert_header_equals(text, expected)) .then(text => assert_header_equals(text, expected))

View file

@ -12,21 +12,21 @@
return; return;
promise_test(t => { promise_test(t => {
let expected = {"dest":"xslt", "site":"same-origin", "user":"?F", "mode": "same-origin"}; let expected = {"dest":"xslt", "site":"same-origin", "user":"", "mode": "same-origin"};
return fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=xslt-same-origin") return fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=xslt-same-origin")
.then(response => response.text()) .then(response => response.text())
.then(text => assert_header_equals(text, expected)); .then(text => assert_header_equals(text, expected));
}, "Same-Origin xslt"); }, "Same-Origin xslt");
promise_test(t => { promise_test(t => {
let expected = {"dest":"xslt", "site":"same-site", "user":"?F", "mode": "no-cors"}; let expected = {"dest":"xslt", "site":"same-site", "user":"", "mode": "no-cors"};
return fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=xslt-same-site") return fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=xslt-same-site")
.then(response => response.text()) .then(response => response.text())
.then(text => assert_header_equals(text, expected)); .then(text => assert_header_equals(text, expected));
}, "Same-site xslt"); }, "Same-site xslt");
promise_test(t => { promise_test(t => {
let expected = {"dest":"xslt", "site":"cross-site", "user":"?F", "mode": "no-cors"}; let expected = {"dest":"xslt", "site":"cross-site", "user":"", "mode": "no-cors"};
return fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=xslt-cross-site") return fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=xslt-cross-site")
.then(response => response.text()) .then(response => response.text())
.then(text => assert_header_equals(text, expected)); .then(text => assert_header_equals(text, expected));

View file

@ -1,52 +0,0 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>import() doesn't have any integrity metadata when initiated by compiled strings inside a classic script</title>
<link rel="author" title="Domenic Denicola" href="mailto:d@domenic.me">
<meta http-equiv="Content-Security-Policy" content="require-sri-for script">
<script src="/resources/testharness.js" integrity="sha384-{{file_hash(sha384, resources/testharness.js)}}"></script>
<script src="/resources/testharnessreport.js" integrity="sha384-{{file_hash(sha384, resources/testharnessreport.js)}}"></script>
<div id="dummy"></div>
<script>
function createTestPromise() {
return new Promise((resolve, reject) => {
window.continueTest = resolve;
window.errorTest = reject;
});
}
const dummyDiv = document.querySelector("#dummy");
const evaluators = {
eval,
setTimeout,
"the Function constructor"(x) {
Function(x)();
},
"reflected inline event handlers"(x) {
dummyDiv.setAttribute("onclick", x);
dummyDiv.onclick();
},
"inline event handlers triggered via UA code"(x) {
dummyDiv.setAttribute("onclick", x);
dummyDiv.click(); // different from .**on**click()
}
};
for (const [label, evaluator] of Object.entries(evaluators)) {
promise_test(t => {
t.add_cleanup(() => {
dummyDiv.removeAttribute("onclick");
delete window.evaluated_imports_a;
});
const promise = createTestPromise();
evaluator(`import('../imports-a.js?label=${label}').then(window.continueTest, window.errorTest);`);
return promise_rejects(t, new TypeError(), promise);
}, label + " should fail to import");
};
</script>

View file

@ -1,52 +0,0 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>import() doesn't have any integrity metadata when initiated by compiled strings inside a module script</title>
<link rel="author" title="Domenic Denicola" href="mailto:d@domenic.me">
<meta http-equiv="Content-Security-Policy" content="require-sri-for script">
<script src="/resources/testharness.js" integrity="sha384-{{file_hash(sha384, resources/testharness.js)}}"></script>
<script src="/resources/testharnessreport.js" integrity="sha384-{{file_hash(sha384, resources/testharnessreport.js)}}"></script>
<div id="dummy"></div>
<script type="module">
function createTestPromise() {
return new Promise((resolve, reject) => {
window.continueTest = resolve;
window.errorTest = reject;
});
}
const dummyDiv = document.querySelector("#dummy");
const evaluators = {
eval,
setTimeout,
"the Function constructor"(x) {
Function(x)();
},
"reflected inline event handlers"(x) {
dummyDiv.setAttribute("onclick", x);
dummyDiv.onclick();
},
"inline event handlers triggered via UA code"(x) {
dummyDiv.setAttribute("onclick", x);
dummyDiv.click(); // different from .**on**click()
}
};
for (const [label, evaluator] of Object.entries(evaluators)) {
promise_test(t => {
t.add_cleanup(() => {
dummyDiv.removeAttribute("onclick");
delete window.evaluated_imports_a;
});
const promise = createTestPromise();
evaluator(`import('../imports-a.js?label=${label}').then(window.continueTest, window.errorTest);`);
return promise_rejects(t, new TypeError(), promise);
}, label + " should fail to import");
};
</script>

View file

@ -23,7 +23,7 @@ callback PerformanceObserverCallback = void (PerformanceObserverEntryList entrie
PerformanceObserver observer); PerformanceObserver observer);
[Constructor(PerformanceObserverCallback callback), Exposed=(Window,Worker)] [Constructor(PerformanceObserverCallback callback), Exposed=(Window,Worker)]
interface PerformanceObserver { interface PerformanceObserver {
void observe(PerformanceObserverInit options); void observe(optional PerformanceObserverInit options);
void disconnect(); void disconnect();
PerformanceEntryList takeRecords(); PerformanceEntryList takeRecords();
static readonly attribute FrozenArray<DOMString> supportedEntryTypes; static readonly attribute FrozenArray<DOMString> supportedEntryTypes;