Overview
- Sprint lead
- Mossop
- Reviewers
- Rob Strong, Shawn Wilsher, Benjamin Smedberg
- Description
- The Extension Manager has been extended repeatedly to add new features. There is now large scope for cleanups and improvements with refactoring the core code and APIs knowing what we know now.
Goals / Use Cases
- Primary goals
- Support a wider range of add-on types managed through the same API
- Allow application/extension developers to be able to easily query the state of installed items
- Make it easier for applications to replace the add-ons UI with their own implementation by making all necessary information available through the defined API
- Secondary goals
- Remove direct access to the datastore
- Simplify the internal code and speed up startup times
- Minimize the use of RDF throughout the backend to allow for easy replacement in the future
- Migrate from an RDF based datastore to an SQLite based datastore
- Remove extensions.cache
- Reduce the number of unnecessary restarts during startup
Design
The new API is proposed at Extension Manager:API Rewrite. Some of this work will assist in the implementation of Extension Manager:UI Update.
Planning
Target Release
Firefox.next. All of the initial work must ship before beta 1.
Status
- [22/06/09] - Implemented basic API framework and detection of items that need to be processed during startup.
- [23/06/09] - Read manifest data from install.rdf and hook the public API up to the backend. Add tests that verify install location priorities and startup detection.
- [24/06/09] - Performance improvements and hook app all manifest data in the database. Make public wrappers around internal data and add stubs for the install APIs.
- [25/06/09] - Hook up installing from xpi files and add an update checker module.
- [30/06/09] - Set up for processing disabling during startup and add checks for application compatibility.
- [03/07/09] - Implement dependency checks and disabling.
- [07/07/09] - Implemented uninstalling. Corrently update dependent items during installs.
- [08/07/09] - Implement theme special cases and switching and add permissions attribute for UI updating.