Open Bug 536237 Opened 11 years ago Updated 2 years ago

Don't build anything by default from extensions/

Categories

(Firefox Build System :: General, defect)

defect
Not set
normal

Tracking

(Not tracked)

People

(Reporter: ted, Unassigned)

References

Details

The extensions directory has historically been a dumping ground for random code. I hate the way --enable-extensions works, I hate that core bits of our platform like spellcheck live there, and I hate the name collision we have with "extensions" in the add-on sense.

I think we should just remove anything in extensions/ that's unsupported, move all the supported bits to more logical homes in toolkit/ or wherever, and get rid of --enable-extensions completely.
While moving the barely-optional and just-plain-broken code into more reasonable places (and the trash) sounds like a wonderful idea, I'm not sure that baby extensions/ really needs to go out with the bathwater - layout-debug, metrics and reporter at least are all extensions in both senses, and don't particularly belong elsewhere like some of the random bits of code do (plus it's very handy to me to have it as a place to hook building Venkman and DOMi).
I think metrics should be removed--pretty sure it's abandoned, and Test Pilot fills its role nowadays. Reporter should go in toolkit or browser, whichever is more correct. layout-debug could go in layout/tools.

I'm not discounting its ease of use for building random code, certainly, but for things like Venkman and DOMi that are basically part of your default build, or things like reporter for Firefox, it's a crummy spot, and the build machinery underlying it in configure is super ugly.
Just because something is an extension doesn't mean that it needs or ought to live in the extensions/ directory. The point of this bug is that if we build or maintain code in the tree, it ought to live in a directory related to its purpose. Thus, layout-debug belongs under layout/, and metrics and reporter belong under browser/ (or perhaps toolkit, but I don't think they are/should be that general).

--enable-extensions will continue to exist so that you can import and build external code in our tree, but the mozilla-central tree by default shouldn't have these oddball entities.
(Also, what set me off was bug 532621--the fact that we have GnomeVFS code in toolkit/system/gnome as well as extensions/gnomevfs.)
Putting reporter in browser/, and making SeaMonkey grovel through there to pick it up, sounds like it might be fun to watch :)
Depends on: 534694
SeaMonkey does use reporter/ quite easily as it stands now, so IFF it is moving out of extensions/ please move it to toolkit/ (or some other SIMILAR place where we can pick it up easily).

Of course I hope that c-c will have a heads up with sufficient time to correct the client.py which pulls in 3 separate extensions to extensions/ (Though only SM actually builds them by default):
DOMi, Venkman, and ChatZilla.  Though they work for all apps, including Firefox.
Clarifying per discussion here. We'll keep the extensions/ directory and --enable-extensions, but any default functionality should move out of there to elsewhere in the tree, and anything else in there that nobody is using should be rm'ed.
Summary: get rid of the extensions/ directory → Don't build anything by default from extensions/
Depends on: 614183
Depends on: 616761
Depends on: 586869
Product: Core → Firefox Build System
You need to log in before you can comment on or make changes to this bug.