On 10/11/09 9:04 PM, Ian Hickson wrote:
    http://www.hixie.ch/tests/adhoc/html/navigation/unload/cross-origin/004.html

I couldn't work out what Gecko is doing with it.

I'm not sure what's unclear. The click starts the load of http://another.domain.libpr0n.com/pass and then the form.submit() call is ignored, no? At least that's what I seem to see over here..

The second is that I also covered onunload. It seems everything that
applies to one applies to the other; they run back to back as specced in
HTML5.

I assume you mean onbeforeunload?

In Gecko, onbeforeunload runs when the navigation _starts_ (or when the window is being closed, document.open happens, etc); onunload runs when the server response is received (so the old document is about to be blown away unconditionally). Is this significantly different in other UAs? Do they actually make a request and wait for a response before checking whether the user maybe never wanted to navigate anyway?

Other than that, I think what I specced matches Gecko. The new text is
step 3 of the navigation algorithm:

    http://www.whatwg.org/specs/web-apps/current-work/complete.html#navigate

So reading through those steps, I actually have another issue. Step 10 seems to imply that javascript: URIs run synchronously. Gecko used to do this, and this was not compatible with what other UAs do, so much, nor particularly safe in terms of security bugs. We quite purposefully changed them to run asynchronously (with a single exeption: loads of javascript: URIs performed via NPAPI).

Am I reading the spec wrong, or is there a reason for this synchronous requirement?

Also, I'm not quite sure what the part about unloading that comes after the algorithm you pointed me to means. Does it mean that once you get the response and start parsing the new document you queue a task to unload the old one? That doesn't seem at all right to me, since at this point the new document can be running scripts that touch the WindowProxy they share...

-Boris

Reply via email to