Hi WHATWG!<div><br></div><div>I have a question about URL origin check for Workers: the spec, in 4.8.2, mandates a check for the Worker URL to be the 'same origin' with the parent document's URL. At the same time, 4.2 says the origin of the worker is derived later from the URL represented by the 'location' object of the worker context.<br>
</div><div><br></div><div>However, the spec doesn't say how redirects should be processed. If a browser gets 30x redirect request, the final URL of a worker can be different from the original one which has passed the check before loading. Current spec ignores the fact that origin can be changed via redirect. If the origin of the loaded worker is based on the final (potentially redirected) URL that 'location' object represents, then subsequent XHR requests, nested workers and importScripts() will work in the origin of that final URL. As specified, in case of redirect the page from "<a href="http://applicationInternals.com">http://applicationInternals.com</a>" can use a worker from "<a href="http://application.com">http://application.com</a>" (via redirect) to access APIs of <a href="http://application.com">application.com</a> that were not necessarily intended for such consumption.</div>
<div><br></div><div>Should the spec simply require the redirected, final URLs to be checked against parent's and reject the script if redirection results in a different origin?</div><div><br></div><div>Thanks,</div><div>
Dmitry</div><div> </div>