[webkit-dev] Re: AJAX Application (corrections made)
Paul Everitt
paul at zope-europe.org
Wed Jan 4 07:49:14 PST 2006
Err, I small detail I, uhh, ahem, forgot to mention. I wasn't testing
against Safari. :^) I was testing against the WebKit nightly build.
--Paul
Andrew Eberhard wrote:
> Hi Paul,
>
> Thanks for responding (and sorry my post was inadvertently directed only
> to Eric). I did run into the problem that you mentioned and I patched
> sarissa.js to do exactly what you suggested (I used "temp"). Most of
> the sarissa test cases now run successfully (very good news), but the
> problem I mentioned is actually a separate issue.
>
> When creating an XML document, sarissa assumes that the output of
> document.implementation.createDocument implements a method called
> "load." This allows the XML document to load XML from an XML file using
> a standard URI (i.e. file://, http://, and relative paths). As far as I
> can tell, this method is not implemented in Safari causing sarissa to
> break whenever the SarissaDocument.load method is used.
>
> Technically, Sarissa goes a step further for browers that implement
> document.implementation.createLSParser by overriding the default
> document.implementation.createDocument.load method with a user defined
> function that makes use of the functionality described here
> (specifically document.implementation.createLSParser.parseURI):
> http://www.w3.org/TR/2004/REC-DOM-Level-3-LS-20040407/load-save.html
> I am not sure I understand why this approach is used for some browsers
> (document.implementation.hasFeature('LS', '3.0') == true), perhaps it
> performs better than the document.implementation.createDocument.load
> method. Nevertheless, FireFox will work just fine with either but sadly
> Safari won't do either.
>
> Technically, Sarissa could be updated to use XMLHttpRequest in order to
> provide SarissaDocument.load functionality to the web developer, but the
> more I investigate that approach, the more it resembles a crude
> substitute for implementing the load method on
> document.implementation.createDocument.
>
> I guess I'm not sure whether or not this is a bug, an oversight, or a
> deliberate omission in Safari. I'm also not certain what to ask for
> (document.load or LSParser support). Once I determine this, I should be
> able to either convince the folks at Sarissa to modify their code, enter
> a bug report on Safari (still waiting on my BZ enrollment email...), or
> just hack Sarissa myself to implement SarissaDocument.load for Safari
> alone using XmlHTTPRequest.
>
> Many thanks!
> Andrew
>
>
> On 03.01.2006, at 01:35, Paul Everitt wrote:
>
>> Andrew Eberhard wrote:
>>> Hi Eric,
>>> Well, I'm getting underway with Safari-enabling my AJAX project
>>> [using the latest nightly build ;-) ] and I've run into a problem
>>> that seems to be "as designed" but I wanted to run it by everyone
>>> first. Basically, Document.load is not supported in Safari. I
>>> assume that I can use XMLHttpRequest instead, but
>>> http://bugzilla.opendarwin.org/show_bug.cgi?id=5411 led me to think
>>> that there might be reason to enter a bug on Document.load support.
>>> Since Sarissa currently relies on Document.load for SarissaDoc.load,
>>> I wasn't sure if bug #5411 was intended to include Document.load
>>> support in Safari or if the folks at Sarissa should be asked to
>>> update it to work with Safari's XmlHttpRequest approach.
>>> There is a bit of prior research on this subject at
>>> http://www.xs4all.nl/~zanstra/inTec/safariIdea.htm.
>>
>> Hi Andrew. The Sarissa folks are taking a look at it. It's actually
>> possible to work around the bug, I believe.
>>
>> Here is what triggers the bug:
>>
>> var oldDoc = document.implementation.createDocument("", "", null);
>>
>> (Note: This is against the Sarissa CVS HEAD.)
>>
>> Creating a document with a real node name for the document element,
>> though, works:
>>
>> var oldDoc = document.implementation.createDocument("", "foo", null);
>>
>> Hmm, come to think of it, this works as well:
>>
>> var oldDoc = document.implementation.createDocument("", null, null);
>>
>> Anyway, my guess is that your application can be made to work with a
>> patched Sarissa. I *think* (but I'm not sure) that the qualified name
>> (2nd arg) should either be a real node name or null. In which case,
>> WebKit is right and we need to change Sarissa.
>>
>> --Paul
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> webkit-dev mailing list
> webkit-dev at opendarwin.org
> http://www.opendarwin.org/mailman/listinfo/webkit-dev
More information about the webkit-dev
mailing list