In a recent conversation with colleagues some of the limitations of XML processing in Mozilla came up. I think some of these are really holding Mozilla and Firefox back from being a great platform for XML processing, and so I wanted to highlight them here. Remember that the key to bringing attention to an important bug/request is to vote for it in the tracker, so please consider doing so. I already have done.
18333: "XML Content Sink should be incremental". The description says it all:
Large XML documents, such as the W3C's XSLT spec, take an incredibly long time to load into view source. The browser freezes/blocks (is "not responding" according to Windows) while it processes, and finally unlocks after the entire source of the document is ready for display.
Firefox will never really be a friendly platform for XML processing until this is addressed. There is not really a problem addressing this using the Mozilla's underlying parser, Expat. Worst case one could use that parser's suspend/resume facility (we recently took advantage of this to allow Python-generator-based access to 4Suite Saxlette parsing). The real issue is the amount of work that would need to be done across the Mozilla code base. Unfortunately, Mozilla insiders have been predicting a fix for this problem for a while, and unless there's a sudden boost in votes or better yet resources to help fix the problem, I'm not feeling very optimistic.
69799: "External entities are not included in XML document". Using Betty Harvey's example,
<!DOCTYPE myXML[ <!ENTITY extFile SYSTEM "extFile.xml"> ]> <myXML>&extFile;</myXML>
Is rendered as if Mozilla read
<myXML></myXML>
Of course you have to watch out for XSS type attacks, but I imagine Mozilla could handle this the same way it does loaded stylesheets: by restricting to same host domain as the document entity.
193678: "support exslt:common". The node-set extension function is pretty much required for complex XSLT processing, so support from Mozilla would really help open up the landscape of what you can do with XSLT in the browser.
98413: "Implement XML Catalogs". A request to implement OASIS Open XML Catalogs. This could do a lot to encourage support for external entities because some performance problems could be reduced by using a catalog to load a local version of the resource.
A few on my personal would-be-nice-to-fix-but-not-essential list are:
- 256430: "XML parsing errors need a storyline". A really bad title for the fact that RDF/XML is not checked for well-formedness in Mozilla so that e.g. RSS 1.0 Web feeds could be non-WF. Bad. Bad.
- 293347: "Firefox crashes when open xml with associated xsl". Basically only an issue when calling XSLT from Javascript. See also 202765: "Crash when doing document.write[ln] in an XSLT stylesheet [@ txMozillaXMLOutput::endHTMLElement]" and 315799: "Viewing an XML document which produces JavaScript via XSLT produces blank page".
See also: