The improvement of add-on discovery builds around the Get Add-ons secion of about:addons in Firefox. Also known as the Disco Pain.
- 1 Hypothesis
- 2 Goals
- 3 Timeline
- 4 Roadmap
- 5 UX
- 6 Editorial
- 7 Metrics
- 8 Implementation
Because we know users seeing a clear benefit quickly, are more likely to stick, we believe that providing the right features for each individual user will make more users stay with Firefox.
- Increase retention of Firefox by offering relevant features to users.
- Increase understanding/awareness of Firefox Add-ons.
- Increase usage of Firefox Add-ons.
Aiming for Firefox 48 for the first version.
- refresh discovery page in Firefox (Disco Pane 2)
- one click to turn on add-on (bug 1153226)
- link to add-on details on AMO
- link to AMO for more features
- preview theme on hover
- embed intro video
- use UI-tour doorhanger to confirm installed add-on
- surface discovery page during on-boarding
- restyle AMO
- link to discovery page from places within Firefox
- define set of add-ons for discovery page
- assess user experience of add-ons and improve if necessary
- link to discovery page from places within Firefox
- newTab tile
- make new introductory video
- modify about:addon sidebar to look like about:preferences sidebar
- use white icons (bug 1048912)
Proposal in readthedocs UX section: http://addons.readthedocs.io/en/latest/ux/index.html
- States of the Discover flow
- Final Design of the new Discovery page in about:addons
- Proposed install switch proto
We'll add new recommended content to this module on a quarterly basis. If you're a developer who would like to submit your your add-on for future consideration, please email us at email@example.com with "Discovery" in the subject line. Content is selected by AMO's editorial team and community-based Feature Board. We can only consider add-ons that meet the following criteria:
- Have broad consumer appeal (no dev tools or niche interest content)
- Minimum 4-star rating
- Very polished and bug free
- Mac/PC/Linux compatible
- Willing to devote time to polish your add-on based on UX review
How do we measure how well this is working?
The pages will be generated by AMO and loaded in an iframe into Firefox. This is how the current addons discovery page works (the disco pane). So this will implementation will cover (at a high level):
- creating a new addons page
- figuring out how to put add-ons in that page (and the matrix of products, locales, regions)
- creating new APIs in Firefox for installing and finding out if an add-on installed
- changing Firefox to use the new pages (or maybe just change them in place)
For example of what you currently see in about:addons here's some example urls:
Note: aiming for Android and Desktop.
Tracking bug for platform: 1245993
We'll need to land the Firefox changes for Firefox 48 going into Aurora (2016-04-18).
0 Total; 0 Open (0%); 0 Resolved (0%); 0 Verified (0%);
We'll need to test the Firefox changes for Firefox 48 before they land. The AMO pages can land as ready, but should be all completed by the time Firefox 48 goes into Beta (2016-06-06).
In this will include the redesign started at Mozlando, so that moving between the disco pane and AMO is not too jarring. Bugs for that are tracked here, but might move.
Out of scope
- Changes to snippets
- Changes to the first run experience
To test on dev or stage:
NOTE: dev/stage certs no longer work in 48b5 onwards - to test after 48b4 you'll need to use dev edition or nightly.
1. You must be on Firefox 48 or newer.
2. Go to about:config and set extensions.webapi.testing as a Boolean to true
4. To install an add-on, you will need to be able to install a signed add-on from dev or stage. Create the xpinstall.signatures.dev-root pref in about:config as a Boolean and set it to true.
5. If you see warnings when trying to install a theme or theme previews don't work go to about:preferences#security and add an exception for dev/stage (See the "Exceptions" button next to "Warn me when sites try to install add-ons").
The hosts are:
6. Important: Restart the browser after updating these settings.
7. Open about:addons and go to "Get Addons".
Here's a few example test scenarios that are post-release:
- Installation of an addon should work on production without any banners or special settings. A new profile is required to test this.
- Installation of an theme should work on production without any warning banners or special settings. A new profile is required to test this. Themes do show a banner following installation. Currently the undo button does not update the button - see known issues below.
General Test Scenarios
- Uninstallation of an addon should work and the button state should reflect things accordingly.
- Uninstallation of a theme should work the button state should reflect things accordingly.
- You should see a notification banner of a successful add-on installation or enablement.
- Watch the console for CSP errors. A warning re: 'frame-src' being deprecated is OK.
- Google Analytics should be tracking installs, uininstalls, opening and closing the video and linking to AMO. See the network console to see these beacons being sent or use the GA debugger add-on.
- Locales are changed via the URL. We should see the language change based on the URL language changing. (Ideally this should also be tested by changing the firefox UI locale and trying about:addons) - you will need to install language packs for this.
- Invalid languages in the URL should redirect, this can be tested directly in the browser URL bar. Here's some examples:
- /whatever/firefox/discovery/pane/46.0.1/Darwin/normal should redirect to /en-US/firefox/discovery/pane/46.0.1/Darwin/normal
- /ac%2fdc/firefox/discovery/pane/46.0.1/Darwin/normal should redirect to /en-US/firefox/discovery/pane/46.0.1/Darwin/normal
- /pt/firefox/discovery/pane/46.0.1/Darwin/normal should redirect to /pt-PT/firefox/discovery/pane/46.0.1/Darwin/normal
Security test scenarios
Here's a non-exhaustive list of things to consider testing re: security.
Sources of user input
- Outside input is in the URL (e.g. the locale) which is used to decide the language.
- The translations are used and built into HTML. The HTML coming from the API which is built into the page is santized but it's a source of input in any case.
- The data for the Add-ons that are in the curated list are sent as API data. They are also used alongside the translations as pieces of HTML sent by the API which is santized prior to being put into the page.
- The data for things like Add-on name are used in other places in the HTML too e.g. img alt attributes. Testing for breaking out of attributes like onload="alert(1)" could be useful here.
CSP is enabled so any successful XSS might be blocked by it. Always check the console with the security tab enabled.
SRI is enabled, if the JS or CSS is modifying en-route the hash will not match and the CSS or JS should not be loaded. This test would need to be carried out with a MITM proxy.
Here's a list of unresolved known bugs and other issues.
- If you see banners relating to installation of themes not allowed - please check you've carried out the steps from the testing section above.
Current unresolved issues
There are various minor state related bugs that are still awaiting firefox bugfixes:
- Restart UI doesn't persist when add-on is in uninstall pending restart state
- Restart UI doesn't persist when add-on is in install pending restart state
- Unable to reflect pending uninstall undo from about:addons#Extensions
Dev Specific Issues
Some addons are out of date on -dev. Here's some of the issues currently known: