In my particular case, I'm trying to figure out how to use cookie-based authentication from workers.<br>I could use postMessage() to a main window to set cookies. However, I have another motivation for exploring this: my team is planning to experiment with persistent workers (workers that continue running even after all entangled windows are closed). In that case, there may not be any window you can use to set cookies. I'll send more about this in a separate thread.<br>
<br>Finally, there's one thing you can do with cookies that I don't think you can do with local storage: share data with other subdomains (i.e. if I'm running code under <a href="http://foo.example.com">foo.example.com</a>, I can write a cookie with 'domain=.<a href="http://example.com">example.com</a>' and it'll be visible to code running under <a href="http://bar.example.com">bar.example.com</a> also). This is useful for things like single sign-on authentication.<br>
<br>-atw<br><br><div class="gmail_quote">On Thu, Mar 5, 2009 at 5:42 PM, Jonas Sicking <span dir="ltr"><jonas@sicking.cc></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="im">On Thu, Mar 5, 2009 at 5:23 PM, Michael Nordman <<a href="mailto:michaeln@google.com">michaeln@google.com</a>> wrote:<br>
</div><div><div></div><div class="h5">>> Allowing cookie to be set would unfortunately create a synchronous<br>
>> communication channel between the worker and the main window. This is<br>
>> something that we need to avoid to prevent users from having to deal<br>
>> with locking and other thread related issues.<br>
><br>
> Hmmm... the cookie setting API could be async in workers.<br>
<br>
</div></div>Or you could just use postMessage() and ask the main thread to do it?<br>
<br>
What is the use case for reading/writing cookies though? Could use use<br>
localStorage instead (once we figure out a different API for it that<br>
doesn't have the shared-state problem that the current API has)<br>
<br>
Even just synchronous read access has race-condition problems. For<br>
example the following script:<br>
<br>
if (docCookies == "hello") {<br>
  doStuff();<br>
}<br>
else {<br>
  log("cookies certainly aren't 'hello', they are: " + docCookies);<br>
}<br>
<br>
could result in "cookies certainly aren't 'hello', they are: hello"<br>
being printed.<br>
<font color="#888888"><br>
/ Jonas<br>
</font></blockquote></div><br>