This page is work in progress.
All hints I give here are provides in the hope they may be helpful. Use them at your own risk. Your mileage may vary.
These hints may be obsolete. The situation of today is:
Firefox 1.0.4
Today (in this text) is 2005-06-05T16:57:39+0200.
Mozilla.org's browser named Firefox is a good browser. But it should be improved in some ways, because it has some annoyances for administrators.
I'm talking here as an Linux/Un*x adminsitrator. I explicitely do not talk about other big common platforms (as long as it does not come to use blanks and other crap in filesystem names, or to using GUIDs or munging software versions with non-sortable names like "Release Candidate"/"rc"/"alpha"/"b" and crap like this ...); they have their own lobby...
@@@@@@@@ TODO
Comments go to me.
Period. Luckily there are the .tar.gz distributions; I solely use these nowadays. Administrators have to make packages for many installations and users. I need to repackage that stuff, add extensions, preconfigure everything, so that I install one or several packages and users are instantly ready to use the software; no fumbling around with proxy settings, company certificates, annoying default settings, wrong paper edges, bookmarks that noone needs, startup home page... Users just start working.
Luckily in Firefox there are these command line switches -install-global-extension and -install-extension.
But as of 2005-06-05 -install-global-extension does not do what it says. When I say "install-global-extension" I really mean "Do install globally or fail." If an error occurs it instead munges stuff into my profile... And if I want to install an extension as OS-user root into my profile, I cannot, because accidently I have write permissions to the installation directory...
How to do it better from the command line: Really do what the command line switches say, or fail.
How to do it better in UI: when I klick onto a link to an xpi-package, there should come up the extension manager and ask me, where to install the package, also telling me "You cannot install globally, because you do not have filesystem permissions in this and that directory."
The most important extensions uf da world (AdBlock_Plus, flashblock) fail to install globally... They end up in the users profile instead (see above).
*** getItemProperty failing for lack of an item. This means getResourceForItem failed to locate a resource for aItemID (item ID = file:///full/path/to/xpi/AdBlock_Plus/AdBlock_Plus_0.5.7_txt_enh.xpi, property = disabled) *** getItemProperty failing for lack of an item. This means getResourceForItem failed to locate a resource for aItemID (item ID = file:///full/path/to/xpi/AdBlock_Plus/AdBlock_Plus_0.5.7_txt_enh.xpi, property = internalName)
Often extensions fail to install and end up lying around as not-really-dead corpses... If you deinstall them via the extension manager, you never really know whether all atoms have been extinguished.
What I really dislike with any kind of installation system is, when they make entries in files... Is the deinstallation tool really intelligent enough to find all the crap that the installation tool entered, and if it does, does it really remove all these entries? Beware that the de-/installation tools have to be delivered by developers! Each extension with several surprises...
How to do it better: installation and registration should be implemented by simple "putting files at a defined place". Registering only happens in the application, which stumbles (registers? In German "registrieren" also means "to notice" while doing something else, optionally record it for later processing) over any installed files and simply thinks "Oh, another file... can we read it? Ok, just use it."
How to do it better: Do not ever put any entries in {registra-,configura}tion files! Packaging tools like RPM, APT or anything else are strong in managing filesystem objects; but using them to f*** around in registration files is a pain in the ass! (Yes, I know how to use sed & Co, but that's what I'm talking about... I'm not complaining because sed were dumb, but because you have to know/parse/munge the configuration file in one go. Often it is like taking aim at your target, then hide, close your eyes and fire in the direction - impact guaranteed, but...)
Installation tools should work transaction based:
Many extension stuff files into the installation directory, but only root (owner) has read permissions, causing funny experiences to unprivileged users.
Extensions installed globally into the installation directory do not get registered into the end users profiles. Firefox says something like this:
All your extensions have been disabled.
Why do I install globally, if end users cannot use the extensions buttons and features that they normally register!?
Many extension make interactive requests ("Do you want to have it the right way or the left way?", klick OK|Cancel) and/or message boxes ("Please restart the world to restart the world.", klick OK).
How to do it better in command line mode: Log to the console. How to do it better in UI mode: Log to the a fresh and empty browser tab, surrounded by pre-tags.
Extensions should have a way to find all configuration options (about:config-namespace should be documented), where it writes them, so I, as an administrator, can grab them, stick them into the site-wide configuration file and users find it readily configured (or even locked down via lockPref()).
PS: There is no link to bring you up to my home page! Therefore browsers have the URL-line, so you can read where you are und you can type in, where you want to go... And your keyboard has knobs for positioning...
© 2005 ich Last updated: 2005-06-05T16:57:39+0200 EOF