Add-ons/WorkWeek2013
From MozillaWiki
< Add-ons
Tuesday, July 16
Intro
- https://docs.google.com/a/mozilla.com/presentation/d/1DMmkSk8SglrYRklTqTANo2SrLPE4nuMR1PqxQHtY45E/edit#slide=id.gf17b3a42_2_7
- Action Items:
-
Meet with Bill to create product roadmap, redefine priorities-> See meeting outcome below. - AMO technical debt--create frontend shell, decide which URLs to kill
- File reg system https://wiki.mozilla.org/Features/Desktop/Improve_Add-on_Monitoring
- Documentation
- Mobile add-ons
- Complete theme community
-
Mobile add-ons
- Goal: Make it easy to develop for mobile. Process, documentation, and tools should be streamlined and approachable.
- Developer survey
- Analyze contest submissions
- User studies
- Target content-related mobile add-ons
- Challenges
- Tools and documentation lacking/not integrated- organization of existing docs is the largest problem
- No testing environment
- Not enough users to know how to target
- Action items:
- Include themes on new add-on tab
Documentation
- Discoverability is major challenge
- Work-arounds until it becomes easier to find docs on MDN?
- Move most of devhub to MDN.
- Start making add-ons -> Guide page on MDN.
- This page should highlight the SDK, but provide some perspective about XUL extensions.
- Developer activity has remained stable along the years.
Future of Add-ons on Firefox OS
- Add-ons might make sense where apps don't fill the gap
- Customization for end users and manufacturers.
- Stronger case for themes
- Technical complexity
- Theme file size
- Extensions
- AdBlock Plus
- Content scripts
- Extensions could have manifests that declare which apps they work with
- What are the top 5 things users want to customize?
- Ad blocking
- Video / media downloading
- Content scripts
- Themes / backgrounds
- Security / privacy controls? Password management?
- Talk to FFOS UX about what customization will look like in future iterations
- https://groups.google.com/forum/#!topic/mozilla.dev.b2g/NXyjt32lGOc
Marketplace
- Right now, no pressure to converge add-ons with Marketplace
- Focus is on apps, don't want to confuse people with so many choices
- Nothing concrete until we have a strategy for apps on desktop
- Now that there are no immmediate plans for convergence, we should move AMO forward
Wednesday, July 17
Add-on Developer Experience
- PRD for developer tooling: https://docs.google.com/a/mozilla.com/document/d/1dPP6a7rqeZ-dUqtXldFeluhA49bmP-LecHOYc63UPDU/edit?usp=sharing
- Focus is desktop first.
- How do we get devs excited about tools?
- we show them how the tools make their experience less frustrating
Devtools API
- PRD link: https://docs.google.com/a/mozilla.com/document/d/1er8oX1vTRqzvO5SP8cuttyYu9h5j4C0Z1Fjk0pzUX3w/edit#heading=h.z2emr0xstni3
- tl;dr:
- identify key use cases for extensibility
- prioritize
Devtools extensibility
- The API PRD above explains the plans for extensibility.
- Extensibility is a big feature in Firebug. YSlow, FirePHP are popular extensions.
- Millions of users still using Firebug.
- What is our message to devs?
- Web Console is first step for extensibility, then move into new devtool panels.
- Panels depend on making it easy to replicate the experience in the default panels, which might require Web Components or reusable stylesheets.
- Firebug will continue to be supported until it's usage become negligible.
- We should gather data about actual Firebug usage: Test Pilot?
Upcoming technical challenges
e10s
- https://wiki.mozilla.org/Electrolysis/Roadmap
- Having this meeting over Vidyo without a proper Vidyo setup is a big problem. We ended up hanging up.
- Landed on central, preffed off. We won't ask add-on developers to work on it until we are certain that this won't be rolled back.
- Analysis of top add-ons: https://docs.google.com/spreadsheet/ccc?key=0AhFRRYurPzRndHQwUVNscThIbFBsYmNRaU44LVlDdlE#gid=0
Metro
- Initial plan not to support add-ons and see if users complained about it.
- Metro interface is XUL, based on original Fennec, so it is possible to support add-ons.
- Supporting add-ons requires adding an add-on install UI. Should only bootstrapped add-ons be allowed?
Australis
- Most add-ons that add toolbar buttons should continue to work.
- Add-on Bar and statusbar are both gone.
- Current plan is to bake on Nightly for two cycles, and release on 26.
- We want to approach developers when it hits Aurora.
Sandboxing
- Firefox is the only modern browser without a sandbox and process separation. This is considered unacceptable.
- Is this costing us users in a meaningful way? Anecdata: German government recommends other browsers (http://www.computerworld.com/s/article/9223957/German_gov_t_endorses_Chrome_as_most_secure_browser)
- All research studies say FF is the least secure: http://www.accuvant.com/capability/accuvant-labs/security-research/browser-security-comparison-quantitative-approach
- 1 pager: https://docs.google.com/a/mozilla.com/document/d/1opnXiB9qSEtqQKABx3A3gQmuzbUjCkxcVqYaRUYF-8I/edit#
- Depends on e10s.
- Content sandboxing comes first. For plugins, there's click-to-play.
Deprecation of XUL add-ons
- Nope
- no reason to do this, but no hope for xul outside of desktop.
Roadmap meeting
- (Q3 -> *) Infrastructure.
- (Q3) File registration
- Docs: https://wiki.mozilla.org/Features/Desktop/Improve_Add-on_Monitoring
- Validator
- Admin interface - CRUD / reporting
- User (developer) interface - UX
- API
- Platform - Mossop, UX
- Better documentation
- (Q3) Landing page for devs on MDN - sheppy, holly (UX)
- (Q4) SDK docs - Luke Crouch
- (Q3 - Q4) Mobile add-ons
- Contest
- Market requirements
- Stats - Metrics (download counts for mobile), webdev (~2 weeks)
- Developer survey
- (Q3) Australis
- Ongoing into Q4.
- (Q3) Indiegogo
- (Q4) Retiring the Add-on Builder
- (Q1 - Q2) AMO Feature / bug work.
Add-on Performance
- Profiler can be modified to tell apart add-on code.
- Memory usage is probably the biggest problem in performance, causing jank and other problems.
- AV add-ons do many things that cause performance problems.
- Making the slow startup notification better.
- Firefox self-healing / reset.
- Slow SQLite queries.
- Power usage graphs.
- Test day? Reach out through users through communication channels?
Thursday, July 18
Squeaky
- https://bugzilla.mozilla.org/show_bug.cgi?id=775253 Gather statistics on add-ons installed after changes to extensions.autoDisableScopes
- With FHR we'll know which installs are enabled.
- Consider prompting users to clean up their add-on installs again (bug 596343).
Add-on Install Process
- https://bugzilla.mozilla.org/show_bug.cgi?id=834385 about:newaddon should support messages from the vendor, read from install.rdf.
- lco is going to look at this, maybe ~ 2 weeks
Dealing with malicious and unwanted add-ons
- Integrate extension blocklist and file registration
- Should we only check hashes on install?
Blocklisting
- bug ? - Increase blocklist refresh rate to twice a day. -> Easy, but P3
- bug ? - Make Add-ons Manager look for suitable upgrades or downgrades before issuing a block. -> P2, easy (might need work on AMO side)
- bug ? - Expand blocklist features.
- Support warnings for policy violations and performance problems, support custom URLs (SUMO pages, blog posts). P2
- Bug 802434 - Support reverting settings (homepage, default search, keyword URL). P1, being worked on.
- bug 897735 More filtering options: name, developer (regular expressions). P1
Third party add-ons
- Remove deletion requirement until it becomes a problem.
- Remove requirement of optional AMO code review. -> Version 2
- Separate from add-ons table.
- Use metadata ping on install.
- No warning on install of unregistered file.
- TODO: mockups for Admin tools.
- Add Telemetry for add-ons bypassing the registration mechanism.
- Deploy during 3 releases: first show a warning in the Web Console, secondly show a warning with opt-in, and finally close the list.
- The override system should be more robust than a preference.
- How will this work with the blocklist?
Statistics gathering
- https://dataviz.mozilla.org - yummy dashboards!
- Get more data for developers (crash, fhr) from Metrics to AMO.
- TODO: figure out exactly what kind of data we want to gather.