On Mon, 25 Feb 2008 23:56:25 +0900, Anne van Kesteren <[EMAIL PROTECTED]>
wrote:
Thanks for going through these Hallvord! Some comments / questons below.
(Also questions regarding changing XMLHttpRequest. So if the rest of the
WG could review as well that'd be apprecated.)
I second that - more eyes on our tests-in-progress would be good :-)
http://tc.labs.opera.com/apis/XMLHttpRequest/open/016.htm
Tests creating an XMLHttpRequest instance, changing the URL of
associated document, and loading a relative URL. Assumes that URL
should be resolved according to location of original document in said
window.
Opera 9.5 - fails because it throws INVALID_STATE_ERROR on send()
IE7 - fails because it throws on open()
Firefox 2 - fails because it throws on open()
Safari (version 3 on Windows btw) - fails because it fails to load the
new document when location is set (!??)
http://tc.labs.opera.com/apis/XMLHttpRequest/open/024.htm
Same results as 016.htm
These probably fail because everyone resolves URIs in different ways.
The specification defines a clear way to do this, but if there is a
better alternative I'm open to suggestions.
Personally I think throwing is quite a natural thing to do in this
condition (the document/URL of window has changed since the XHR object was
created) and when 3 out of 4 major implementations already do so we
probably don't introduce compat problems by specifying that.
http://tc.labs.opera.com/apis/XMLHttpRequest/open/031.htm
Tests creating an XHR instance from the XMLHttpRequest object of an
IFRAME, removing the IFRAME from the DOM, adding a BASE href element
with DOM methods to the document in the removed IFRAME, and using the
XHR instance. (Anne getting rather creative/evil here :-) )
IE7 - my IE7 actually says pass here!
Opera / Safari / Firefox: all three kill the script environment of the
window object when the IFRAME is removed from the DOM. Hence trying to
add BASE href throws and the test says failed.
When to kill and garbage collect the script environment inside the
IFRAME when it's removed from DOM is obviously not the XHR spec's
business. I suggest this test is relaxed to accept several
implementation choices, either shutting down the script environment and
resolving URL by original IFRAME src or doing whatever IE does. We
should have a corresponding evil security test or two checking that
removing the IFRAME won't confuse the browser into allowing x-domain
requests it shouldn't.
I rather liked the behavior of Internet Explorer 7.
I still think we can't make implementations rewire their garbage
collection to pass an extreme corner case test. This sort of stuff simply
should not be specified here. :-p
Changing this would require some rewording of the definition of document
pointer in section 4 probably:
http://dev.w3.org/2006/webapi/XMLHttpRequest/#xmlhttprequest
If we want that suggestions are welcome.
What about just throwing if the associated window is closed or removed
from the DOM?
--
Hallvord R. M. Steen
Core QA JavaScript tester, Opera Software
http://www.opera.com/
Opera - simply the best Internet experience