Simple module loader

From MozillaWiki
Jump to: navigation, search
Please use "Edit with form" above to edit this page.


Simple module loader
Stage Complete
Status Complete
Release target SDK 1.4
Health OK
Status note `


Product manager David Mason
Directly Responsible Individual Irakli Gozalishvili
Lead engineer Irakli Gozalishvili
Security lead `
Privacy lead `
Localization lead `
Accessibility lead `
QA lead `
UX lead `
Product marketing lead `
Operations lead `
Additional members `

Open issues/risks


Stage 1: Definition

1. Feature overview

Addon SDK's module loader was implemented at the early stage of the project and intentionally was designed with lots of flexibility in mind. This flexibility comes with a price of complexity, unjustified for at this stage of the project.

This feature is to simplify the SDK's module loader and bootstrap code and relay on platform capabilities were possible.

2. Users & use cases

The target audience is addon developers. The use case is an add-on developer using the Add-on SDK (either directly or via the Add-on Builder) to build an addon.

3. Dependencies

4. Requirements

  • Combine bootstrap.js, components/harness.js, cuddlefish.js and securable-module.js into single form module loader that has no external dependencies.
  • Let platform handle all IO operations associated to the module loading.
  • Make module loader agnostic of addon form (whether.xpi is unpacked or not).



Stage 2: Design

5. Functional specification


6. User experience design


Stage 3: Planning

7. Implementation plan


8. Reviews

Security review


Privacy review


Localization review




Quality Assurance review


Operations review


Stage 4: Development

9. Implementation


Stage 5: Release

10. Landing criteria


Feature details

Priority Unprioritized
Rank 999
Theme / Goal `
Roadmap Jetpack
Secondary roadmap `
Feature list Jetpack
Project `
Engineering team Jetpack

Team status notes

  status notes
Products ` `
Engineering ` `
Security sec-review-unnecessary `
Privacy ` `
Localization ` `
Accessibility ` `
Quality assurance ` `
User experience ` `
Product marketing ` `
Operations ` `

This change is crucial and indirectly related to other features:

  • Out-of-Process Addons

  • SDK Support for Firefox for Mobile Addons

Two options were considered in implementing this:

1. Use of .jsm modules wrapped into CommonJS form

2. Use of sandboxes

Few disadvantages have been highlighted with an option #1: