Hi again,
in the meantime I spent several evenings trying to figure out how it works but I didn't quite get a result.
If I understood you correctly, I have to sent an X-FirePHP-ProcessorURL header to load my modified request processor. To make the js file that forms the request processor, I take the original file and modify it.
Sure, I see how this and that single function works but I don't get the whole idea. In addition, there are functions of which I could not even find out what their parameters mean. Maybe you could provide me with a small introduction.
What I am trying to get eventually is a log entry, like the ones produced by FirePHP::error or FirePHP::info but which is expandable and then shows a list of key/value pairs (application state info like "Database: has been connected"). It should then be expandable a second time to show a stack trace.
Now I'll try to give some points that particularly confused me:
On the server side, it seems to me that always a stack trace is derived and which is then enriched with information that is not in the stack trace (in FirePHP::fb, the @see link is down). On the client side some information is extracted from the first stack frame but I cannot see a regularity which information are sent in the first stack frame and which is sent seperately. Has this just "evolved historically"?
My biggest stumbling block was understanding the request processor. From what I see, all messages are handed to the logToFirebug() function. Some of them are later processed by getTraceTemplate(), after some obscure template selection process. But they are not simply rendered by this function but parts are rendered somehow internally, maybe by Firebug.Console.logRow()? Then there are "FirebugReps" objects involved, I absolutely have no idea what they are for. Further, some of the objects that are handed back and forth are "domplate" objects, so I checked this (
http://www.softwareishard.com/blog/planet-mozilla/domplate-examples-part-i/) domplate tutorial, but I could not put it in the context. I could not even figure out where the error/warning/info icons come from. :(
Can you cast some light to all this?
Best regards,
André