Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / third_party / WebKit / LayoutTests / http / tests / security / text-track-crossorigin.html
blobf9d7f025d7bb165e83acdbf29302acafbeaa2d22
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <script src="resources/cross-frame-access.js"></script>
5 <script>
7 var shouldLoad = false;
8 var counter = 0;
10 if (window.testRunner) {
11 testRunner.dumpAsText();
12 testRunner.waitUntilDone();
15 function log(msg)
17 document.getElementById('console').innerHTML += msg + "<br>";
20 function trackLoaded()
22 log('EVENT(load)');
23 shouldBe('shouldLoad', true);
25 trackElement = document.querySelectorAll('track')[0];
26 videoElement = document.querySelectorAll('video')[0];
27 shouldBe('event.target', trackElement);
28 shouldBe('trackElement.readyState', HTMLTrackElement.LOADED);
30 log('<br>');
31 switch(counter) {
32 case 2:
33 log('Loading <b>with</b> Access-Control-Allow-Origin and Access-Control-Allow-Credentials headers, setting video.crossorigin to "use-credentials"');
34 url = "http://localhost:8000/security/resources/captions-with-access-control-headers.php?origin=1;credentials=1";
35 trackElement.setAttribute('crossorigin', 'use-credentials');
36 trackElement.setAttribute('src', url);
37 ++counter;
38 break;
40 case 3:
41 log("END OF TEST");
42 if (window.testRunner)
43 testRunner.notifyDone();
47 function trackError()
49 log('EVENT(error)');
50 shouldBe('shouldLoad', false);
52 trackElement = document.querySelectorAll('track')[0];
53 videoElement = document.querySelectorAll('video')[0];
54 shouldBe('event.target', trackElement);
55 shouldBe('trackElement.readyState', HTMLTrackElement.ERROR);
57 log('<br>');
58 switch(counter) {
59 case 0:
60 log('Loading <b>without</b> Access-Control-Allow-Origin header, setting video.crossorigin to "anonymous"');
61 url = "http://localhost:8000/security/resources/captions-with-access-control-headers.php?count=" + counter;
62 videoElement.setAttribute('crossorigin', 'anonymous');
63 trackElement.removeAttribute('src');
64 trackElement.setAttribute('src', url);
65 ++counter;
66 break;
68 case 1:
69 log('Loading <b>with</b> Access-Control-Allow-Origin header, leaving video.crossorigin as "anonymous"');
70 url = "http://localhost:8000/security/resources/captions-with-access-control-headers.php?origin=1";
71 trackElement.setAttribute('src', url);
72 shouldLoad = true;
73 ++counter;
74 break;
79 function start()
81 trackElement = document.querySelectorAll('track')[0];
82 trackElement.track.mode = "hidden";
83 log('Loading <b>without</b> Access-Control-Allow-Origin header, no "crossorigin" attribute on &lt;video&gt;');
84 var url = "http://localhost:8000/security/resources/captions-with-access-control-headers.php"
85 trackElement.setAttribute('src', url);
88 </script>
89 </head>
90 <body onload="start()">
91 <p>Tests loading cross-domain &lt;track&gt;.</p>
92 <video >
93 <track kind="captions" onerror="trackError()" onload="trackLoaded()" >
94 </video>
95 <div id="console"></div>
96 </body>
97 </html>