The WebWorkers spec states:<div><br></div><div>"DedicatedWorkerGlobalScope objects act as if they had an implicit MessagePort associated with them"</div><div><br></div><div>MessagePorts will queue up events until the owner either explicitly invokes start() on them, or sets the onmessage attribute. Is the intent that dedicated workers also implement this same functionality for their implicit port (i.e. if I create a dedicated worker, and immediately post a message to it, but the worker doesn't actually set an onmessage handler, should that event be queued until such a time as the worker does set an onmessage handler)?</div>
<div><br></div><div>There's a similar issue with cross-window postMessage(). I've been playing around with the current implementation in Chrome/WebKit, and code like this:</div><div><span class="Apple-style-span" style="font-family: 'Times New Roman'; font-size: 16px; "><pre style="word-wrap: break-word; white-space: pre-wrap; ">
<span class="Apple-style-span" style="font-size: small;">function newWindow() {
  var childWin = window.open();
  childWin.document.location = "<a href="http://example.com/child.html">http://example.com/child.html</a>";</span></pre><pre style="word-wrap: break-word; white-space: pre-wrap; "><span class="Apple-style-span" style="font-family: 'Times New Roman'; white-space: normal; "><pre style="word-wrap: break-word; white-space: pre-wrap; ">
<span class="Apple-style-span" style="font-size: small;">  childWin.postMessage("hi new window", "*");</span></pre></span><span class="Apple-style-span" style="font-size: small;">}
</span></pre><pre style="word-wrap: break-word; white-space: pre-wrap; "><span class="Apple-style-span" style="font-family: arial; font-size: 13px;">...does not result in the message handler in the new window being called, because the window isn't loaded at the time the message is posted (it works just fine after the new window has loaded/executed its script). I'm curious whether this is just a bug in the early implementation, or if this is indeed the expected behavior -- if so, then it makes it difficult to do cross-domain messaging as you have this race condition on startup.</span></pre>
<pre style="word-wrap: break-word; white-space: pre-wrap; "><span class="Apple-style-span" style="font-family: arial; font-size: 13px;">The spec is fairly clear about how this should work when explicitly working with MessagePorts, but the behavior for these other related use cases seems ambiguous (maybe intentionally so?)</span></pre>
<pre style="word-wrap: break-word; white-space: pre-wrap; "><span class="Apple-style-span" style="font-family: arial; font-size: 13px;">-atw</span></pre></span></div>