| <!DOCTYPE html> |
| <html> |
| <head> |
| <meta charset="utf-8" /> |
| <title>XMLHttpRequest: redirected worker scripts, origin and referrer</title> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| </head> |
| <body> |
| <div id="log"></div> |
| <script type="text/javascript"> |
| var test = async_test() // This "test" does not actually do any assertations. It's just there to have multiple, separate, asyncronous sub-tests. |
| var expectations = { |
| 'Referer header': 'Referer: '+(location.href.replace(/[^/]*$/, ''))+"resources/workerxhr-origin-referrer.js\n", |
| 'Origin header': 'Origin: '+location.protocol+'//'+location.hostname+((location.port === "")?"":":"+location.port)+'\n', |
| 'Request URL test' : (location.href.replace(/[^/]*$/, ''))+'resources/requri.py?full' |
| } |
| // now start the worker |
| var finalWorkerURL = "workerxhr-origin-referrer.js"; |
| var url = "resources/redirect.py?location=" + encodeURIComponent(finalWorkerURL); |
| var worker = new Worker(url, true) |
| worker.onmessage = function (e) { |
| var subtest = async_test(e.data.test) |
| subtest.step(function(){ |
| var thisExpectation = expectations[e.data.test] |
| delete expectations[e.data.test] |
| assert_equals(e.data.result, thisExpectation) |
| subtest.done() |
| }) |
| var allDone = true |
| for(var prop in expectations){ |
| allDone = false |
| } |
| if(allDone){ |
| test.step(function(){ |
| test.done() |
| }) |
| } |
| } |
| |
| </script> |
| </body> |
| </html> |