Currently, if an XBL binding's <implementation> has a name attribute, it is used as the "class name". If not, the binding's URL is used instead. http://bonsai.mozilla.org/cvsblame.cgi?file=mozilla/content/xbl/src/nsXBLProtoImpl.cpp&rev=1.31&mark=228-231#220 This, eventually, ends up in the CompileFunction code, using the class name as a URI to pass to SpiderMonkey: http://bonsai.mozilla.org/cvsblame.cgi?file=mozilla/content/xbl/src/nsXBLProtoImplMethod.cpp&rev=1.34&mark=237,249#234 Ultimately, it's the fact this is normally the binding URI that debugging XBL even comes close to working. There is one problem: String Bundles. They set name="XStringBundle", which then ends up as the URI for all their functions; obviously, any attempt to debug such things results in invalid URI errors trying to load the source. It also prevents code (e.g. Venkman) being able to classify them as chrome or content. I'm suggesting that either the name attribute stops affecting the mClassName field (and thus the functionUris) or the XBL implementation keeps the class name and binding URI separate, to correctly label functions.
11 years ago