Firefox:1.5 Extension Manager Upgrades

From MozillaWiki
Jump to: navigation, search

Low opportunity cost updates to EM

Enhanced Installation

Goal

Simplify the way extensions are installed and registered so that:

1. third party applications can easily register and deregister extensions that live with their code. 2. developers can easily register extensions that they are developing out of a location apart from their build (e.g. their home directory) 3. developers can easily install extensions for testing.

Method of Installing

There are two methods of installing - installing and registering. Installing is copying the extension's files into the Firefox Application or Profile directory, and Registering is telling Firefox that the extension's files live elsewhere.

To install an extension, simply copy (or deflate) its files to:

bin/firefox/extensions/{GUID}/ or <profile>/firefox/extensions/{GUID}/

To register an extension, create a text file containing the file URI to the extension in:

bin/firefox/extensions/{GUID} or <profile>/firefox/extensions/{GUID}

See http://www.mozilla.org/projects/firefox/extensions/em-changes.html for a description of the changes.

Details

The Extension System will check the mtime of the two extensions folders every time Firefox starts. If the mtime changes, then Firefox will correlate the contents of the dir with the extensions list it has in its datasource. If there is a difference, it will register the extension present either in the new dir or in the dir pointed to by the text file, or deregister if a directory or file is missing.

Notes

Improvements to command line flags are no longer needed since this system is portable and usable by developers and installers.

Installed/Uninstalled Notifications

Observer notifications when an extension is installed, uninstalled, enabled or disabled.

Server-Side GUID Blacklist

Ability to shut down extensions remotely using a blacklist that we control. Client checks in periodically for additions and if it finds one, disables the extension. The disabled extension should say disabled because of blacklist, provide a link to the reason why, and a button to easily uninstall (what about an option for the user to override blacklisting per extension?).

More: Firefox:1.1 Extension Manager Blacklist

Improvements to Installation Experience

Likely OUT. Make user type "I agree" or some such when installing untrusted content.

Work Estimate

Identify + Implement + Land = 15d