Re: debugging XSLT in Firefox
Lucky <[email protected]> Wed, 23 May 2007 22:25:50 -0400
| Newsgroups | gmane.comp.mozilla.devel.layout.xslt |
|---|---|
| Message-ID | <[email protected]> |
John, that sounds great, I can't wait to get my hands on the fixed copy!!
I was never able to "trick" it into initializing from the resulting
document, but learned a bit more on the xml+xsl "bugginess"
John J. Barton wrote:
> To end my little saga, I did succeed in getting Firebug to view
> XSLT pages, see http://code.google.com/p/fbug/issues/detail?id=130
> for the rest of the story.
>
> John J. Barton wrote:
>> More XSLT-not-playing nice. Firebug uses event pagehide to reset its
>> logic in preparation for a possible new page. XSLT pages do not signal
>> this event. So Firebug is broken after XSLT. I was able to fix this,
>> so maybe this means I know more now.
>>
>> John J. Barton wrote:
>>> Unfortunately the only thing I learned is that after an xslt page,
>>> Firebug is broken for other pages as well. So after the testXSLT.xml
>>> page is viewed, subsequent use of Firebug on HTML pages has empty
>>> HTML and DOM panels. Somehow an event handler is not being called to
>>> connect
>>> Firebug to the page's window.
>>>
>>> John.
>>>
>>>
>>> Lucky wrote:
>>>> Sure, as it seems the test i did used those files:
>>>> Here, i piggy-back off the "load" event attempting to dispatch the
>>>> DOMContentLoaded.
>>>>
>>>> You can also dupe out the transform, by simply renaming your .xml ->
>>>> .xhtml, but that no longer works for IE browser, etc.
>>>>
>>>> Here, the contentType is being set via extension, and never listens
>>>> to the content @media stuff from XSLT processing-instruction it seems.
>>>>
>>>> It's really a much bigger problem though, seeing how the Document
>>>> never gets initialized as being HTMLDocument will all collections,
>>>> cookies, blah, blah.
>>>>
>>>>
>>>>
>>>> John J. Barton wrote:
>>>>> I'd have to trace the window logic to tell you why. Do you have
>>>>> a simple test case (or can you modify the one in
>>>>> http://code.google.com/p/fbug/issues/detail?id=130
>>>>> ?
>>>>> John.
>>>>>
>>>>> Lucky wrote:
>>>>>> I noticed that even dispatching the DOMContentLoaded event from
>>>>>> the xml+xsl transformed content would still not allow firebug to
>>>>>> initialize?
>>>>>>
>>>>>>
>>>>>> John J. Barton wrote:
>>>>>>> Firebug is a Firefox Javascript debugger. I looked into why it fails
>>>>>>> for XSLT. Seems like the problem is that XSLT does not signal
>>>>>>> DOMContentLoaded, a known bug. (See
>>>>>>> http://code.google.com/p/fbug/issues/detail?id=130)
>>>>>>>
>>>>>>> Does XSLT signal other events, similar to nsIWebProgressListener?
>>>>>>>
>>>>>>> Are there interfaces to probe the state of the transformation?
>>>>>>>
>>>>>>> Is there someone interested in XSLT who would like help extending
>>>>>>> Firebug to support it better?
>>>>>>>
>>>>>>> John.
>>>>>>>
>>>>>>> Mike wrote:
>>>>>>>> How do people debug their XSLT under Firefox. I got something
>>>>>>>> working
>>>>>>>> under xsltproc, but it fails occasionally on Firefox with the
>>>>>>>> following error message:
>>>>>>>>
>>>>>>>> [Exception... "Component returned failure code: 0x80600004
>>>>>>>> [nsIXSLTProcessor.transformToFragment]" nsresult: "0x80600004
>>>>>>>> (<unknown>)" location: "JS frame :: <elided> :: anonymous ::
>>>>>>>> line 155"
>>>>>>>> data: no]
>>>>>>>>
>>>>>>>> which gives me no clue what happened. Web searches on that
>>>>>>>> error code
>>>>>>>> don't turn up much either.
>>>>>>>>
>>>>>>>> Is there any way to get more useful error messages, or is there
>>>>>>>> a more
>>>>>>>> verbose version of the same XSLT engine that Firefox uses that I
>>>>>>>> can
>>>>>>>> run my stuff against?
>>>>>>>>
>>>>>>>> thanks,
>>>>>>>> mike
>>>>>>>>
>>>>
>>>>
>>>> ------------------------------------------------------------------------
>>>>
>>>>
>>>> <?xml version="1.0"?>
>>>> <xsl:stylesheet version="1.0"
>>>> xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
>>>> <xsl:template match="/">
>>>> <html>
>>>> <body>
>>>> <script type="text/javascript">
>>>> function handler(e) {
>>>> var evt = document.createEvent("MutationEvents");
>>>> evt.initMutationEvent("DOMContentLoaded", true, true, document,
>>>> "", "", "", 0);
>>>> document.dispatchEvent(evt);
>>>> }
>>>> window.addEventListener("load", handler, false);
>>>> document.addEventListener("DOMContentLoaded", function(e) {
>>>> //alert(e.type)
>>>> }, false);
>>>> </script>
>>>> </body>
>>>> </html>
>>>> </xsl:template>
>>>> </xsl:stylesheet>