First, thank you both for posting your ideas.
I have no trouble writing scripts. I just need a script-able technique. A script could easily loop through and install (or just copy) umpteen .xpi files from a given folder in rapid succession (but I want it silent and unattended). So maintaining the installation library would be as simple copying all desired .xpi files to an install folder the script will look in. And when an individual extension is update to a new version, no problem—delete the old .xpi file and copy the new one in. To this end, the command below is useful, but only when installing an extension for all Windows user accounts on the PC:
Code: Select all
Firefox.exe -install-global-extension "FilePath\FileName.xpi"
This installs extensions globally to "%ProgramFiles%\Mozilla FireFox\Extensions". And as each different Windows user account logs on after the extensions are installed (and launches Firefox), that user account's Firefox profile inherits all newly-installed, globally-installed extensions. I actually plan on installing some extensions globally, but I want to script many as per-user installations (but again silently and unattended).
By contrast, extensions installed per-user reside under that Windows User account, under "%APPDATA%\Mozilla\Extensions". One advantage to installing here, is that Grandma (on her Windows user account) no longer has to worry about clicking on the Chrome Edit Plus button (that I want installed for me) by-mistake and getting herself into trouble. So by installing some extensions per-user, on some select user accounts, it leaves the default Firefox installation (under "%ProgramFiles%\Mozilla FireFox\Extensions") much more simple for other Windows user accounts sharing the same PC.
NOTE: For what I'm try to do here, different Firefox user profiles under the same Windows user account never come into play.
Frank Lion wrote:You have a couple of techniques you could look into here. One is 'multi-package-installs'...
I had already downloaded
CLEO to look at. I haven't played with it much yet. And while the multi-extension.xpi approach may simplify some things, I feel it has some minor drawbacks:
- The resulting .xpi must still be installed. So while this technique does simplify things to a single package, it alone does not help make installation silent and unattended.
- IMO, this technique also introduces a new layer of increased maintenance—maintaining the multi-extension.xpi package. Whenever an individual extension is updated, the multi-extension.xpi must be repackaged.
Bluefang wrote:If you drop the XPI file in to the profile extensions folder, it will be installed the next time the browser starts.
Now,this technique I can understand; it's simple. It should really be described just like this (changing "drop" to "copy") in the help pages. (I did a search, but I could not find this information described in there at all.) I just tested this with a single extension and it works. It does have some minor drawbacks. The user will be prompted to permit installation when they next launch Firefox, and afterward they must deal with any "fireworks" each extension provides (automatically launching a web site in a new tab, opening a configuration dialog, displaying a thank-you message, et cetera). However, this user experience is not significantly different from the one after using the -install-global-extension parameter, where each user must still deal with any "fireworks" the extension provides.
Frank Lion wrote:The other method, which is cruder, is to just delete extensions .rdf/.ini/cache from existing profile with Firefox closed and paste into the profile the entire extensions folder (containing the required extensions). On restart, this lot will be installed - this is a technique we use for quickly migrating over a large number of extensions/themes from one profile to another
Q: Will deleting the .rdf and .ini files from the profile folder only affect extensions? Or will it break anything else?
Q: Do the .rdf and .ini files also store extension option settings, or just which extensions are installed?
Q: I'm assuming it's also a good idea to empty the existing extensions folder before copying in a new one?