On Tue, Sep 8, 2009 at 9:38 PM, Aaron Boodman <span dir="ltr"><<a href="mailto:aa@google.com">aa@google.com</a>></span> wrote:<br><div class="gmail_quote"><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 Tue, Sep 8, 2009 at 2:02 AM, Robert O'Callahan<<a href="mailto:robert@ocallahan.org">robert@ocallahan.org</a>> wrote:<br>
</div><div class="im">> Looking back over previous threads on the storage mutex, I can't seem to<br>
> remember or find the reason that implementing the storage mutex for cookies<br>
> can't easily be done with a mutex per domain. Ian pointed out this approach<br>
> breaks if you can make synchronous script calls across origins (e.g. across<br>
> IFRAME boundaries), but can you actually make such calls? Or if you can<br>
> (NPAPI?), can we just declare that those APIs release the storage mutex?<br>
<br>
</div>I believe that synchronous cross-origin calls are possible a variety<br>
of ways. Here is one way I found with a quick test: Resize an iframe<br>
element. window.onresize is fired synchronously inside the frame. I<br>
bet there are others.<br></blockquote><div><br>What spec says that onresize should fire synchronously? I'm actually pretty sure no-one should be saying that, since layout is "mostly asynchronous" in Webkit and Gecko and I don't want any spec to impose mostly-unobservable requirements about when layout should happen.<br>
<br></div><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">> I know that setting document.domain makes this tricky because it<br>
> synchronously enables new cross-domain interactions, but can't we handle<br>
> that by declaring that setting document.domain releases the storage mutex?<br>
<br>
</div>All of these different ways that the storage mutex gets implicitly<br>
released lead to weird behavior in edge cases. In my opinion, it would<br>
be better to fix the API in a clean way than keep patching it like<br>
this.<br>
<br></blockquote><div> </div></div>document.domain is a crazy API. So are sync XHRs which I believe also drop the mutex. I'm comfortable with these cases dropping the mutex ... much more comfortable than not having the mutex at all.<br>
<br clear="all">Rob<br>-- <br>"He was pierced for our transgressions, he was crushed for our iniquities; the punishment that brought us peace was upon him, and by his wounds we are healed. We all, like sheep, have gone astray, each of us has turned to his own way; and the LORD has laid on him the iniquity of us all." [Isaiah 53:5-6]<br>