Project statement
When I started having to do stuff with chrome-privileged JS, I found it really confusing. There is documentation, but on the whole it's:
- scattered around MDN
- grievously out of date
- tends to assume a lot of knowledge that is very Gecko-specific, that someone who understands standard web development will not have. Unlike standard web stuff, there's no other place to find this out (except the source).
More recently, from a few different directions, I've been doing a bit to document this area of things, and I'm starting to think that maybe we should look at building a coherent set of docs on "writing privileged JS in Gecko".
The audience would be:
- add-on developers
- devtools developers
- Gecko developers
Things to do
I think the content would be partly pulled in from some existing places, appropriately updated, and partly new. I'm not really proposing to update, for example, *all* the XPCOM docs now. More to update the most important stuff and have some high-level content that ties it together. I think it would cover something like this:
what's chrome code?
- different javascript contexts in Gecko (chrome, content, sandboxes)
what's in the chrome environment?
- Components (classes, XPCOM, JSMs, Components.utils)
- gBrowser &c
working with content
- getting access to content
- using message managers in multiprocess Firefox (e10s)
security
- compartments
- xray wrappers
- security principals
People
- from MDN: Will Bamberg
- from engineering: I've been working with Bobby Holley and Gabor Krizsanits on the security/Xray stuff, and Bill McCloskey on e10s. It would be good to get other Firefox platform people involved in deciding what we should do here.