Add-ons/Projects: Difference between revisions
(slight updates) |
(moved incognito to 64) |
||
Line 57: | Line 57: | ||
; Improve support for incognito | ; Improve support for incognito | ||
: There are outstanding issues with extensions, private browsing, and the incognito manifest key. [targeting | : There are outstanding issues with extensions, private browsing, and the incognito manifest key. [targeting 64] | ||
; Themes resolution | ; Themes resolution |
Revision as of 15:36, 15 June 2018
These are projects that are being worked on in Add-ons.
Firefox/Quantum Platform
Mission-critical technical needs
- Remove support for unpacked extensions
- The add-ons manager codebase currently support two separate code paths, one for unpacked and one for packed. This doubles the maintenance and testing burden, and unpacked, in particular, is prone to bugs and performance issues. It is no longer recommended on MDN. [targeting 62]
- Telemetry improvements
- Telemetry of the add-ons manager (about:addons) and performance of addons is currently incomplete. [targeting 62]
New WebExtension APIs
New WebExtension APIs help us promote standards and differentiate Firefox. Introducing new APIs continues the promise of the migration to Web Extensions.
These are the confirmed and prioritized APIs, with their corresponding tentative target release version in parentheses:
API | target release |
---|---|
userScripts | 62 |
topSites | 62 |
desktopCapture (TBD) | 63 |
declarativeContent | 62 |
Session management | 63 (TBD) |
Toolbars | 63 (TBD) |
Overlays | 64 (TBD) |
- In discussion: color filter API
- Future: link to prioritized backlog (in progress)
- Future: link to long-term backlog (in progress)
Continuation of migration to Extensions
- Remove uses of bootstrapped extensions
- Removing support for bootstrapped extensions continues the process that was begun when we removed support for arbitrary bootstrapped extensions (on release and beta) and allows for the removal of more unused code. The remainder of bootstrapped extensions should be converted to web extensions or achieve their aim some other way (these are primarily internal). [targeting 65]
Security
- Privacy Manifest Flags
- We want to add support a number of privacy flags that developers can use to report the add-on's privacy practices to users. This would be set using the "privacy" key in the manifest, and would be displayed by the Add-on Manager. [targeting TBD, precedes AMO]
Performance improvements
- Storage.local backend change to indexedDB
- Improve performance and memory usage; also part of quantum flow. [targeting 62]
Engineering improvements
- Context menu improvements
- Follow-on work for context menus and associated APIs. [targeting TBD (63 or 64)]
- Resolve browser_style issues
- The browser_style manifest key is unclear in how it relates to built-in themes, user themes, and how maintenance should extend to add-ons requirements which may or may not be present in extensions.css. [targeting TBD]
- Improve support for incognito
- There are outstanding issues with extensions, private browsing, and the incognito manifest key. [targeting 64]
- Themes resolution
- The introduction of static themes and the Theming API introduce a host of UX issues on AMO and in Firefox that depend on a more concrete definition of "themes" and constraints to the Theming API. This affects both sides of Add-ons, the Visuals team, and community. [targeting 63]
- Delayed background startup pref'd on beyond Nightly
- This fixes an issue with proxy and webRequest (at least), and results in extensions not needing to start during browser startup. [targeting 62]
UX improvements
- Tabs post-launch
- Follow-on work from the release of Tab Hiding in 61 to complete visual indications and UI. [targeting 62]
- UI for exposing how extensions change Firefox
- As part of increasing awareness of extensions, we need to show users in the Firefox UI what extensions do to their browser after they are installed. This includes, but is not limited to, showing permissions, allowing optional permission control, showing command (keyboard shortcut) combinations, notifying of collisions, and allowing the user to override key functionality (search engine, home page, new tab), and more. [ongoing]
Discoverability
- Feed desired extension that triggered install to /firstrun
- A substantial opportunity for add-on installation is to determine if a user installed Firefox from an AMO detail page. Add-ons users (whether new or pre-existing) retain at a higher rate than non-Add-ons users. [targeting 63]
addons.mozilla.org
Mission-critical technical needs
AMO Salesforce integrationLegal requires integration basket API (for Salesforce) for about:addons newsletter signups. [targeting 2018.05.24]
Serve JSON update manifestsIn order to remove RDF support, updates must stop using RDF and start using JSON. JSON has been supported since 45, and RDF and JSON support complicates tests that need to be rewritten in order to remove support for legacy (non-restartless) add-ons. [targeting 2018.05.24]
- Hybrid Content Telemetry on the discovery pane
- Legal requires that we remove uses of GA from Firefox, and while this is technically hosted on AMO, it is effectively in Firefox. [targeting 2018.06.28]
- Data sync from PROD to DEV and STAGE
- Out of date data continues to be a problem for testing on dev and stage in AMO, and a periodic, automated, safe, and selective sync will solve this.
- Code review
- Reviewers and staff need to be able to inspect any code submitted to AMO in order to respond to user or security complaints. The code and diff viewer for code review are based on libraries that aren't being actively maintained, and regularly require code changes in order to work.
- Antispam - Akismet
- There's a increasing amount of spam that is being manually removed from AMO. To combat this we can use Akismet's spam API to give an indication of whether any piece of UGC is spam or not; implementing this means we need to send all UGC to akismet.
Continuation of migration to Extensions
- Support Static Themes on AMO
- AMO needs to support extension-based themes for developers, reviewers, and end users. This includes deprecating existing theme APIs and discontinue (XUL-based) complete themes. [targeting Q3]
- Support static themes on frontend
- Enable the presentation of static themes on AMO. [targeting Q3]
- Theme Migration
- Migrate lightweight themes to static themes. [targeting Q3]
- WebExtensions Dictionaries
- In order to move away from legacy packaging and legacy manifests, we should move dictionaries to WebExtensions packaging.
- Dynamic Theme Classification
- We need to make a distinction between two types of themes: static and dynamic. All themes should be shown under 'themes' on AMO, but we need to determine how a developer specifies that, submits it, and what precautions or limitations we should put in place to protect users as much as is reasonable and prudent.
Continuation of migration to new front-end
- Porting Collections from legacy site
- A collection is list of add-ons curated by one or more users. This tracks a limited feature set that we are porting from the legacy site to the new one. [targeting Q2]
- Finish User Profile
- This project is to track all the remaining tickets for adding the user profile page and user profile editing into the new frontend. [targeting 2018.06.28]
Security
- Two-factor auth for add-on devs
- Bringing MFA to AMO to add more security around developer accounts that publish add-ons in order to prevent malicious content from being pushed to user browsers.
- Privacy Manifest Flags
- We want to add support a number of privacy flags that developers can use to report the add-on's privacy practices to users. This would be set using the "privacy" key in the manifest, and would be displayed on AMO. [targeting TBD, follows Firefox]
Engineering improvements
- Support bigger screenshot uploads
- In order to improve image quality on AMO, larger screenshots must be supported for upload. [targeting ?]
A/B Testing Framework- https://github.com/mozilla/addons-frontend/issues/4262
In order to enable A/B testing on AMO, we need to implement a testing solution (existing, React-based).
- Finishing collections on user pages
- A collection is list of add-ons curated by one or more users. This tracks a limited feature set that we are porting from the legacy site to the new one. [targeting 2018.06.28]
UI improvements
- Disco Pane Improvements
- We believe that improving how we display and organize the content in discopane will result in more add-ons installs. This includes showing recommendations on discopage, UI changes, content strategy, etc.
- New User Onboarding
- Improve the experience of first-time visitors to AMO in order to encourage return visits and downloads.
Discoverability
- TAAR / Recommendations
- ???
- Tags
- ???
web-ext
Web-ext is a command-line tool to assist developers in extension development and submission.
WebExtension browser API polyfill
This polyfill is for add-on developers that want to use a single codebase to create cross-browser extensions (e.g. Firefox and Chrome) using the Promise-based API that Firefox natively provides.
Add-ons Linter
The JavaScript-based Add-ons Linter is used in AMO submission and web-ext to analyze developer code for errors, warnings, and constraints to ensure quality and security standards prior to submission and publication.
Marketing/Community Engagement
Reduce engineering overhead
- Admin tools, phase 1
- In order to administer AMO, admins have to use a variety of disparate and unintegrated tools; this requires separate upkeep and privilege/permission schemes. This project unifies those tools and sets the stage for future content curation tools.
- Curation tools
- This admin tool will enable content curators to customize the AMO homepage using a set of pre-built homepage modules. This replaces the need for manual changes by engineering staff and grants content publishing control to content strategists and editorial/campaign managers.
Growth opportunities
- Non-fx Install Flow (ReturnToAMO)
- Users who choose to install Firefox from an add-ons listing page (on AMO) currently dead-end having installed Firefox. Converting those users to add-ons users by presenting them with the ability to install the add-on whose page they installed from during their first run will increase both user population and retention.
- AMO Rebranding
- Create a brand for AMO that makes it easy for users to refer to it. Potentially retire the term "add-on" and focus on extensions and themes, which both resonate better with users and compete directly with Chrome.
- AMO Rating and Review Flow
- Add-on ratings are a critical feature on AMO, allowing users to tell the world about the usefulness of an add-on and share their experiences. They help users know which add-ons are higher quality, and give developers encouragement and feedback to continue their development. AMO needs a rating system that encourages and highlights legitimate ratings, and mitigates abuse by bad actors. Rating should be easy. Blocking and moderation of written review should be both effective and transparent.