- 1 Actions from last meeting
- 2 General Topics / Roundtable
- 3 Friends of the Firefox team
- 4 Project Updates
- 4.1 Add-ons
- 4.2 Activity Stream
- 4.3 Electrolysis (e10s)
- 4.4 Firefox Core Engineering
- 4.5 Form Autofill
- 4.6 Go Faster
- 4.7 Lint
- 4.8 Photon
- 4.9 Platform Audibles
- 4.10 Privacy/Security
- 4.11 Project Mortar (PDFium)
- 4.12 Search
- 4.13 Sync / Firefox Accounts
- 4.14 Test Pilot
- 4.15 This week I learned
Actions from last meeting
- Select a new meeting leader for May 23rd meeting.
- Today’s meeting leader is: Tim Spurway
- Next meeting leader is: mconley
General Topics / Roundtable
(tips/tricks/FYI, productivity improvements, industry news)
- [mconley] https://prepack.io/ ← a tool from Facebook that does JS optimizations, with an emphasis on runtime performance. Might be worth keeping an eye on this.
Friends of the Firefox team
(Give a shoutout/thanks to people for helping fix and test bugs. Introductions)
- [MattN] Welcome to intern JonathanGB who will be working on form history improvements. He landed his first patch on day 1!
- Resolved bugs (excluding employees): https://mzl.la/2q0LGdq
- More than one bug fixed:
- Avikalpa Kundu [:kalpa]
- Dan Banner
- Kevin Jones
- New contributors (🌟 = First Patch!)
- 🌟 Ashhar Hasan made it so that the password manager list doesn’t send you back to the top after a password is removed (13 year-old bug!)
- More than one bug fixed:
- About:addons now has a legacy tag to show when an extension is not a WebExtension
- Addons.mozilla.org now specifically tags WebExtensions as compatible on Firefox 57
- The WebExtensions API browser.sessions.restore will now return an object instead of an array.
- Quite a few performance fixes including: localized message generation, stop calling getAddonById or getAddonList at startup, compiling scripts in a background thread
- browser.management.getAll and setEnabled for themes
- About:debugging for addons now shows the filesystem of the add-on
- Get Activity Stream (Dev channel)
- Pocket in Activity Stream experiment launched (Test Pilot version)
- Activity Stream is landing in nightly and is available behind pref (browser.newtabpage.activity-stream.enabled)
- gabor turned on the pre-allocated process manager, which should improve the perceived performance of opening tabs and windows in new processes
- mconley is currently fixing a regression in the tab switch spinner metric
- e10s-multi A/B test is currently underway on Beta
- e10s-a11y support still targeted for Firefox 55
- Shield Study defaulting to click-to-play (Plugin Safety) has begun on Release 53 and will run through June 15.
- Productive Sync Team Work Week in MTV two weeks ago. Sync is on schedule to ship with our MVP this year.
- [Form Autofill Add a new pseudo class for preview which > highlight and change text color of form > elements.]
- Apply the field prediction heuristics for the elements added > after > DOMContentLoaded
- [Form Autofill Rename "profiles" to "addresses" in the > storage]
- Add autofill name fields to the management/preferences > UI
- [Form Autofill Autofill preferences should appear before > the master password > ones]
- [Form Autofill Move form autofill preference to Forms & > Passwords > group]
- Add mochitest for form autofill > feature
- Implement the test fixtures for the top 12 web > sites.
- [Form Autofill Support full-name > fields]
- [Form Autofill Support "address-line*" > fields]
- [Form Autofill A utility library for handling full name and > separated > names]
- [Form Autofill Support name fields in > profiles]
- [Form Autofill Profiles in the manage dialog should sort by > last > modified]
- In Progress
- [Form Autofill Auto-create new profiles based off submitted > form > data]
- Implement the first version of heuristic > algorithm.
- Enable Form Autofill by default on > Nightly
- [Form Autofill autofill's autocomplete popup filtering is > broken]
- [Form Autofill Collect information on how much time users > spent on page with forms (w/wo form > autofill)]
- Support non-experimental autocomplete > perf
- Implement the labels > attribute
- Support feature detection on autocomplete > attribute
- [Form Autofill Implement the credit-card > storage]
- Field Prediction Heuristics for select > element.
- [Form Autofill Collect information on how many people > opt-out of Form > Autofill]
- There’s an example add-on repository that is intended to provide example integrations for legacy system-addons based in github. This includes taskcluster integration for unit tests. More testing functionality, e.g. mochitests, probably coming soon.
- This was originally based on ideas from Hello.
- There is also an example web-extension repository that was based on that idea, but is intended as a more general add-on developer repo that can be used outside the Mozilla circle, e.g. doesn’t use taskcluster. More info here.
- We now have a git hook for ESLint (as well as the existing Mercurial hook).
- ESLint now uses file differences to work out if a setup is needed due to eslint-plugin-mozilla changes - we no longer need to bump the package.json version number each time.
- Work continues on spreading mozilla/recommended across the whole tree
- Accessibility, services, tools & taskcluster are now covered
- Geoff Brown is working to enable ESLint across more test files
- mobile/android/ and caps/ just landed
- Frederik Braun has enabled no-eval across the tree, but with follow-ups to be filed to fix existing instances.
- [mconley] Published Performance best practices for Firefox front-end engineers 🔥
- We are working on deterministic perf tests for sync reflows and files loaded too early during startup
- Sync layout and style flush tests will be in > browser/base/content/test/performance. When these become > available, make sure to run these when you add Photon-y > things!
- Expect big patches to land to stop using Task.jsm in browser/ and toolkit/, and stop using the non standard Promise.defer from promise.jsm
- If you have WIP patches for these folders, consider landing them > soon to avoid bitrot.
- No updates.
- Looks like we now have SVG sprites for the various animations, will begin putting the animations in to the browser
- Jaws landed code to transition the selected tab to its destination when reordering tabs
- The old download indicator - the seconds countdown and progressbar in the toolbar - was kept around when the new arrow-style indicator landed. It is now gone as we prepare for photon changes.
- Nihanth changed all our toolbar button icons to use SVGs! 🎉🎉🎉🎉
- Johann shared our toolbarbutton code between platforms and we had a bit of fallout to fix
- Johann increased the spacing of context menu items when accessed through touch.
- Dao refreshed the about:privatebrowsing design for Photon
- Dao updated our toolbarbuttons to be 16x16 px instead of 18x18
- [Fischer] We checked out the onboarding overlay prototype with the team members. And have a discussion with Activity-Stream team on how to integrate our onboarding overlay into Activity-Stream as well as how to communicate between the tour notification bar and the snippet using the pref. Then we are targeting to sort out how to approach the bug 1054947, bug 1361286 and more about the onboarding overlay as a System addon.
- Scenario for onboarding overlay after sync account login: we > decided the behavior after user successfully logged in.
- Prototype for making onboarding overlay as a system add-on and > find out issues that need to be discussed further.
- [Fred] We checked out the automigration UX spec with UX and also the activity stream engineer.
- Figured out how to communicate with AutoMigrate moduels by > messaging.
- The actual implementation place is in discussion.
- Prototype based on the newtab page is on the way.
- [timdream] Photon work week! We’ll have the scope of the Photon Preferences project finalized this week. The scope includes follow-up and ship preferences re-org, search, and updates visual design and content (graphics and wording). Check out https://wiki.mozilla.org/Photon_Preference_Dashboard and please file bugs under meta bugs.
- No updates.
- jkt is looking into rewriting containers to use WebExtensions instead of the Addon SDK
- Our three Outreachy interns for May 30 - August 30 were announced last week:
- Prathiksha G - Site Permission Management UI 🎉
- Princiya Marina Sequeira & Bianca Danforth - Upgrade Lightbeam 🎉
Project Mortar (PDFium)
- The team is still working on landing the HUGE patches of Chromium PDFium source code into m-c.
- PDF printing integration is ongoing.
- JSPlugin architecture is broken by lately m-c changes, Peterv is fixing.
- A new SHIELD study for unifying the search and location bars went live.
- The awesomebar now prefers https to http more often than before.
- Some Places, bookmarks and one-off search fixes.
- Some followups around hi-res favicons.
Sync / Firefox Accounts
- Form autofill sync engine on track to land along with autofill profiles. The teams had a productive work week in Mountain View last week, resolved tricky opt-in UX issues, and started prototyping the engine.
- :eoger refactored the Sync UI code, resulting in some impressive Talos improvements: https://bugzilla.mozilla.org/show_bug.cgi?id=1353571#c69
- Modernizing the codebase with async functions: https://bugzilla.mozilla.org/show_bug.cgi?id=1210296 This should eventually get unrelated Sync code out of profiler stacks.
- Screenshots in 54: some final perf issues with Talos tests (https://bugzil.la/1361792) and some work still remaining to get tests working (https://bugzil.la/1355569)
- Special thanks to Mark Banner and Kris Maglione for their help.
- Addon SDK deprecation: working to graduate experiments or migrate to WebExtensions before 57
- News Feed coming to the Test Pilot website soon: https://mozilla.invisionapp.com/share/3SBLDS9Z4#/screens
- MacOS hackers: help needed with a Min Vid windowing bug (player doesn’t always stay always-on-top): https://github.com/meandavejustice/min-vid/issues/619
This week I learned
- [kit] `nsIConverterInputStream` reads 8192 bytes at a time, even if you pass a larger count to `readString`. Make sure to read the decoded output in a loop: https://bugzilla.mozilla.org/show_bug.cgi?id=1362099
- [mconley] We should strive to batch all DOM writes into requestAnimationFrame where possible. This helps us to avoid sync style / layout flushes in event handlers.