Re: XSLT processing model in Mozilla
Jonas Sicking <[email protected]> Tue, 24 Jul 2007 23:26:10 -0700
| Newsgroups | gmane.comp.mozilla.devel.layout.xslt |
|---|---|
| Message-ID | <[email protected]> |
Since you're not providing a testcase, I'm left with guessing what's going on. What it might be is that you're managing to attach eventlisteners to the source XML file, i.e. the one before transformation takes place. I do think we might (arguably errorously) be firing events at that document. However I think we're not firing them at the result document, which probably is where firebug is attaching its listeners. / Jonas John J. Barton wrote: > I've started to look at XSLT again in Firebug with FF3. I decided to try > more experiments and I got some surprising results. > > First off, XML pages with XSL do indeed raise pageshow, > DOMContentLoaded, load, unload, and pagehide. That is, if I issue > window.addEventListener() in a top level script in my test.xsl, these > events trigger handlers. > > But Firebug also adds event listeners for the same events and these are > not triggered. And if I put win.uid = 12345 in Firebug, the top level > script cannot find win.uid. > > So it is as if the window created for the .xml load which I manipulate > in Firebug before the top-level script runs is erased during the XSLT > step. Is that possible? > > Thanks, > John. > > Jonas Sicking wrote: >> John J. Barton wrote: >>> Jonas Sicking wrote: >>>> John J. Barton wrote: >>>>> Jonas Sicking wrote: >>>>>> The way we do it for transformations done using >>>>>> <?xml-stylesheet type="text/xslt" ...?> is as follows: >>>>>> >>>>>> We parse the source document normally into a DOM, however during >>>>>> this parsing script execution is turned off for the source document. >>>>>> >>>>>> Simultaneously we load the stylesheet and parse it into an >>>>>> internal compiled format (not a DOM). >>>>>> >>>>>> Once both the source document and stylesheet is done loading we >>>>>> execute the stylesheet. >>>>>> >>>>>> Executing the stylesheet builds DOM nodes which once the execution >>>>>> is done is displayed instead of the source document. >>>>> >>>>> Jonas, >>>>> - are any events raised after execution? >>>> >>>> You should get a normal 'load' event. >>> >>> How about pageshow? DOMContentLoaded? >> >> I think these are not currently fired. This is a bug which would be >> great to get fixed. I believe that if you search bugzilla you can find >> it. >> >> Please refrain from "i'd like this bug fixed" comments though. We >> already know. >> >>>>> - at what point is script execution turned on? >>>> >>>> script execution is never turned on for the source document. It is >>>> always on for the result document though. >>> >>> So the first script tag is executed before the next element is added? >>> Or the script engine is activated after the stylesheet has been >>> exhausted but before the 'load' event is raised? Or? >> >> The script engine is always active, so the <script> element is >> executed as soon as it is inserted. The one difference though is that >> <script> elements that refer to external scripts will not halt >> execution of the stylesheet to wait for the external script to load. >> This means that such element will likely not execute until the >> stylesheet is finished executing. >> >> / Jonas