track.https.sub.html (3804B)
1 <!DOCTYPE html> 2 3 <link rel="author" href="mtrzos@google.com" title="Maciek Trzos"> 4 <script src=/resources/testharness.js></script> 5 <script src=/resources/testharnessreport.js></script> 6 <script src=/fetch/metadata/resources/helper.js></script> 7 <script src=/common/utils.js></script> 8 <body> 9 </body> 10 <script> 11 let nonce = token(); 12 13 function createVideoElement() { 14 let el = document.createElement('video'); 15 el.src = "/media/movie_5.mp4"; 16 el.setAttribute("controls", ""); 17 el.setAttribute("crossorigin", ""); 18 return el; 19 } 20 21 function createTrack() { 22 let el = document.createElement("track"); 23 el.setAttribute("default", ""); 24 el.setAttribute("kind", "captions"); 25 el.setAttribute("srclang", "en"); 26 return el; 27 } 28 29 promise_test(t => { 30 return new Promise((resolve, reject) => { 31 let key = "track-same-origin" + nonce; 32 let video = createVideoElement(); 33 let el = createTrack(); 34 el.src = "https://{{host}}:{{ports[https][0]}}/fetch/metadata/resources/record-header.py?file=" + key; 35 el.onload = t.step_func(_ => { 36 expected = { 37 "site": "same-origin", 38 "user": "", 39 "mode": "cors", // Because the `video` element has `crossorigin` 40 "dest": "track" 41 }; 42 validate_expectations(key, expected, "Same-Origin track") 43 .then(_ => resolve()); 44 }); 45 video.appendChild(el); 46 document.body.appendChild(video); 47 }); 48 }, "Same-Origin track"); 49 50 promise_test(t => { 51 return new Promise((resolve, reject) => { 52 let key = "track-same-site" + nonce; 53 let video = createVideoElement(); 54 let el = createTrack(); 55 el.src = "https://{{hosts[][www]}}:{{ports[https][0]}}/fetch/metadata/resources/record-header.py?file=" + key; 56 el.onload = t.step_func(_ => { 57 expected = { 58 "site": "same-site", 59 "user": "", 60 "mode": "cors", // Because the `video` element has `crossorigin` 61 "dest": "track" 62 }; 63 validate_expectations(key, expected, "Same-Site track") 64 .then(resolve) 65 .catch(reject); 66 67 }); 68 video.appendChild(el); 69 document.body.appendChild(video); 70 }); 71 }, "Same-Site track"); 72 73 promise_test(t => { 74 return new Promise((resolve, reject) => { 75 let key = "track-cross-site" + nonce; 76 let video = createVideoElement(); 77 let el = createTrack(); 78 el.src = "https://{{hosts[alt][www]}}:{{ports[https][0]}}/fetch/metadata/resources/record-header.py?file=" + key; 79 el.onload = t.step_func(_ => { 80 expected = { 81 "site": "cross-site", 82 "user": "", 83 "mode": "cors", // Because the `video` element has `crossorigin` 84 "dest": "track" 85 }; 86 validate_expectations(key, expected,"Cross-Site track") 87 .then(resolve) 88 .catch(reject); 89 }); 90 video.appendChild(el); 91 document.body.appendChild(video); 92 }); 93 }, "Cross-Site track"); 94 95 promise_test(t => { 96 return new Promise((resolve, reject) => { 97 let key = "track-same-origin-cors" + nonce; 98 let video = createVideoElement(); 99 100 // Unset `crossorigin` to change the CORS mode: 101 video.crossOrigin = undefined; 102 103 let el = createTrack(); 104 el.src = "https://{{host}}:{{ports[https][0]}}/fetch/metadata/resources/record-header.py?file=" + key; 105 el.onload = t.step_func(_ => { 106 expected = { 107 "site":"same-origin", 108 "user":"", 109 "mode": "same-origin", 110 "dest": "track" 111 }; 112 validate_expectations(key, expected, "Same-Origin, CORS track") 113 .then(_ => resolve()); 114 }); 115 video.appendChild(el); 116 document.body.appendChild(video); 117 }); 118 }, "Same-Origin, CORS track"); 119 </script>