Stop using <implementation>'s name attribute as a URI

NEW
Unassigned

Status

()

Core
XBL
11 years ago
8 years ago

People

(Reporter: James Ross, Unassigned)

Tracking

({helpwanted})

Trunk
helpwanted
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

(URL)

(Reporter)

Description

11 years ago
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.
Keywords: helpwanted
Assignee: xbl → nobody
QA Contact: ian → xbl
You need to log in before you can comment on or make changes to this bug.