Marketplace/add-ons
Contents
Overview
Add-ons are a well-known concept in the world of web browsers, and this concept has been added to Firefox OS too. A single Firefox OS add-on can extend just one app, several, or all of them. As a prototype there is an app on the latest builds of FirefoxOS called HackerSpace which holds add-ons. We would like to deprecate that app and replace it with the Marketplace officially supporting add-ons.
Proposed Phases
- beta phase (open for foxfooding of consumer pages, submission process): starting 2015/10/06
- MVP phase (open for consumer pages, submission process, review process): starting 2015/11/02
- version 1.1
Engineering Considerations
This affects:
- Developer Tools
- Modify required fields (categories, icons, etc.)
- Validator
- Reviewer Tools
- Add an API revealing add-ons
- Add a new page for displaying add-ons
- Gaia will bookmark this on their home screen
- Bonus: Gaia would like to upload add-ons programmatically from FxOS
Implementation
Add-ons for FxOS were implemented via Marketplace (rather than AMO), due to the timeline and the similarity between webapps and extensions (in the context of FxOS).
This required several major efforts:
- back-end (model and API) support for this new "content type"
- consumer-side (front-end) support for add-ons in Marketplace
- updated navigation to promote add-ons (and homescreens)
- new submission tools for add-ons
- new review tools for add-ons
- blocklisting using addons.mozilla.org (rather than the faux blocklisting of webapps on Marketplace)
Process
In addition, a new process was applied, leveraging an Agile process (using Pivotal tracker) and the concept of a functional Walking Skeleton.
The functional walking skeleton establishes basic functionality early and attempts to maintain that functionality as more details of the overall implementation are fleshed out. In theory this allows for earlier and more iterative QA, integration, and development.
Background materials
- Project Charter
- Decision Log
- Design Brief
- Developer Outreach
- cross-team meeting notes (weekly): https://etherpad.mozilla.org/addons
- UX notes: https://etherpad.mozilla.org/MP2-5
- UX specs: https://drive.google.com/a/mozilla.com/file/d/0By5ZvBZQRgjRS1dNM08zcFJuUnM/view
- proposal for subcategory nav (mobile): http://marketplaceux.github.io/subcategories/
- open tech decisions: https://etherpad.mozilla.org/fxos-open-tech-decisions
- marketplace engineering discussion: https://etherpad.mozilla.org/marketplace-fxos-addons-engineering
- story map: https://docs.google.com/drawings/d/1hVKda3C7dwbKMrx3RqSCvU8bpnEc5gBDnGJu71GdFzI/edit
- MDN addons documentation
- WebExtensions API
- Submission UX
(posterity)
- marketplace walking skeleton sprint planning
- Engineering background
- addons engineering call notes
- Walking skeleton release plan
Compatibility
Because add-ons are not supported prior to 2.5, support is determined using navigator.hasFeature('web-extensions')
.
Note that feature detection is only supported within the Marketplace app (because the API is privileged), so the consumer pages portion add-ons in Marketplace are not visible – even on 2.5 – in the Marketplace via the browser. Navigation items are hidden, and direct links still work; we are relying on button status to enforce compatibility in that case (1221345).
Add-ons are similar in structure and functionality to webapps, but have a few key differences:
- different validation rules and required fields
- generated UIDs are included in the mini-manifest
- true blocklisting, without forced empty updates
Firefox OS integration
In Firefox OS, under Settings->Add-ons, a web activity is used to launch Marketplace and bring up the Add-ons "category" page. This uses name="marketplace-category"
and slug="addons"
to imitate the similar behavior for category pages, langpacks, and homescreens.
Submission and Review tools
New submission and review tools were built at /content using React – this served as both a beta for React (to replace our proprietary Commonplace) as well as an initial step towards a re-architecture of DevHub (analogous tools currently only supporting webapps).
Blocklisting
Because Marketplace's blocklisting for webapps is actually the pushing of an empty app update, and because add-ons have more power than webapps, it was decided that add-ons would have true blocklisting, implemented as:
- basic functionality in Marketplace (blocklisting disables further access/install of the add-on, except to administrators), but would then
- follow the existing circuit of Desktop add-ons (blocklisted item is added to the blocklist service (https://blocklist.addons.mozilla.org/etc), which is queried daily by FxOS using application IDs to identify and enforce disabling of matching add-ons on the device).
Tracking bugs
- Pivotal tracker (exported archive): https://drive.google.com/open?id=0B3KnWfn_4CqGMnh1Tk1RN2FhWFE
- Bugzilla (main tracking bug): 1195470
No results.
0 Total; 0 Open (0%); 0 Resolved (0%); 0 Verified (0%);