<br><br><div class="gmail_quote">On Thu, May 28, 2009 at 1:11 AM, Jonas Sicking <span dir="ltr"><jonas@sicking.cc></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im">On Wed, May 27, 2009 at 6:15 PM, Drew Wilson <<a href="mailto:atwilson@google.com">atwilson@google.com</a>> wrote:<br>
> Along the same lines, I'm wondering why we require a same-domain check for<br>
> initial worker URLs, but not for script imported via importScripts().<br>
<br>
</div>This is because workers run in a security context of the initial<br>
worker URL. So this is the origin that is used for security checks<br>
whenever the worker does something, like load data using<br>
XMLHttpRequest.</blockquote><div><br></div><div>I'm not quite sure why importScripts() should behave more like a <script> tag than the Worker constructor itself. There's no reason why I shouldn't be able to do Worker("<a href="http://foo.com/worker.js">http://foo.com/worker.js</a>") if I can do importScript("<a href="http://foo.com/worker.js">http://foo.com/worker.js</a>").</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<br>
importScripts() however behave more like <script> in that they run the<br>
loaded script in the security context of the worked that loaded them.<br>
<div class="im"><br>
> Seems<br>
> like we ought to have workers inherit the origin of the script context that<br>
> invoked the Worker constructor, but allow the script URL passed to the<br>
> constructor to point at any domain.<br>
<br>
</div>That would be another solution to this problem, however some people<br>
preferred the solution that is currently in the spec.</blockquote><div><br></div><div>Can anyone explain the motivation? A search of the archives isn't yielding anything particularly useful - the earliest mention I could find was someone from August of last year saying that essentially the same thing: "some people thought it was not safe" with no details.</div>
</div><br>