MDN/Projects/Content/Writing Chrome Code

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.