Actions from last meeting
- Next meeting leader will be mconley.
General Topics / Roundtable (tips/tricks/FYI, productivity improvements, industry news)
- The Sync team has been experimenting with using the ‘elm’ twig and ‘hg evolve’ for collaborating. We wrote up our experience, please take a look and suggest improvements.
- [standard8] ESLint no-undef (no undefined) rule has been enabled for toolkit/. browser/ is in progress. See devmo for more hints. Ask in #eslint if you need help.
- [mconley] Talos profiling support is now fixed; this was accidentally broken a month back.
- Note that the option is --geckoProfile now, --spsProfile is deprecated
Friends of the Firefox team
- Resolved bugs (excluding employees): https://mzl.la/2mpsGpV
- More than one bug fixed:
- Deepa
- Mayank
- Svetlana Orlik
- Tomislav Jovanovic :zombie
- Vedant Sareen [:fionn_mac]
- New contributors (🌟 = First Patch!)
Project Updates
Add-ons
Activity Stream
- Removing dependence on Add-on SDK for landing in mozilla-central as a result of Talos testing and deprecation of APIs. Starting with API replacing / inlining, bootstrapping / loader alternatives, testing infrastructure.
- Identified individual modules with clearly defined interfaces that can be profiled, reviewed and landed in smaller separate parts. Our intention is to get help/feedback from other Firefox engineers on the individual issues in each of those modules. For example:
- Places queries: land these as a separate patch that can be profiled, optimized, and reviewed
- Leverage existing code / land code directly in MC for modules we feel need to be more stable/integrated into Firefox, and also to reduce code duplication. For example
- Metadata Parsing / Metadata store: we would like to work with/get patches reviewed so that the existing places metadata parser can use our metadata rules, instead of using our existing metadata parser
- ColorAnalyzer / Screenshots: this code only requires a few bug fixes and additions to what is already landed in M-C
- Use the system add-on architecture where we feel we need to iterate more quickly, such as our UI code
Content Handling Enhancement
- Download progress indication redesign (bug 1270006, bug 1270012, bug 1338984) reviewed and will land in a matter of days.
Electrolysis (e10s)
- Planning is currently underway to do an e10s-multi experiment on a future release. Currently defining cohort sizes.
- Native Stacks are now available for BHR on Windows, and stacks are starting to trickle in for tab switch spinners.
- Mozilla has a symbol server containing symbols we use for Breakpad, and the symbolication service.
- How it works: you hand the symbolication service a stack containing a program counter (gathered by StackWalk), and an array of module versions.
- The service resolves this to a symbolicated stack. It downloads symbols from the symbol server, caches, then maps them.
- The production server is undergoing a rewrite to make it snappier; should be ready in March.
- mconley found a case where we’ll show tab switch spinners when blocked by JS, even with force-painting. Working on a patch.
- Looked into “one” problematic Aurora 51 client that was messing up our graphs.
- Looking into lack of application of hotfix for websense in 47 and 48 (despite users actually having the hotfix).
- pingSender should be fully functional and out of QA this week. Will be used for sending crash pings on Nightly, Aurora, and Beta next week.
- Starting to work on a background download service for updates.
- Team met for a workweek in Taipei
- Discussions with layout/DOM on platform dependencies
- Got form fill working with Enter from autocomplete
- Finalizing preferences design with UX
- Discussed l10n for system add-ons
- Synced eslint rules with toolkit/browser
- Refactored from frame to process scope using JSMs
- Other related refactoring of other components/modules
- Add built-in logging behind a pref
- Using form autofill handler for filling to avoid a second cache
- Defined scope of future milestones
- Collecting data on the form structures of targeted US e-retailers
- Fixed
- In Progress
Go Faster
- Tracking system add-on uptake over time
- Looking into the persistent ~6% that don’t seem to apply updates
- Going to repeat this for other types of update (blocklist, onecrl, etc)
- Planning to replace hotfix w/ system add-ons soon
Platform UI and other Platform Audibles
Privacy/Security
- More polish work around the permissions project (53) and in-context password warning (52) project.
- Test Pilot experiments progress: Tracking Protection concluded, Containers is about to launch.
- Team had a work week last week in MV.
- Immediate priority (as concluded from work week): Containers, Shavar improvements, SafeBrowsing v4, more permissions polish (including about:permissions replacement), shield study on privacy prefs breakage
Quality of Experience
- Lightweight themes will soon be implemented purely through CSS variables once bug 864562 lands
- We are close to getting the new (Web Extension-based) themes to show up in the Add-ons Manager. This work is being tracked in bug 1330349
- Blog post announcing Theming API by dolske: https://blog.mozilla.org/addons/2017/02/24/improving-themes-in-firefox/
- Improvements to importing are ongoing
- Turning on automatic migration/import on nightly, aurora and early beta starting with 54
- Running another experiment on beta 53 to see why/when people don’t like us importing their history/bookmarks from another browser (with a survey)
- Dão added some limits so we don’t import ALL THE HISTORY all the time when importing from Chrome (currently looking at 6 months and 2000 urls as a limit)
- Gijs tried to make history import not hang quite so much by reducing main thread communication
- Looking at improving things for bookmarks imports next…
- Turning automatic import on for Nightly, Aurora, and Beta, but not Release. Large number of people want to revert auto-import; we’re going to prompt them with a survey on Beta.
- Preferences reorg/search
- The work to reorganize the Preferences continues to push forward. Going through review cycles now. We are hoping to get the reorganization work to land at the beginning of the Nightly 55 release cycle.
- Integrating search within the Preferences is also on-going, and will also likely land in the 55 release cycle though the two projects are not tied to each other.
- Six (6!) GSOC applicants for Boosting Sessionstore Performance project so far
- Can I have more than one? ;-P
Search
- Some Awesomebar and Places fixes.
- High-rez favicons are coming.
- The Cliqz test pilot experiment shipped a bug fix update last week.
- Currently working on more telemetry probes in the awesomebar and search bar.
Sync / Firefox Accounts
- Try some new experiments!
- Launched last week: Snooze Tabs and Pulse
- Launching tomorrow (Wednesday): Containers
- Containers are currently in Nightly. Test Pilot is being used to measure engagement and iterate on the UI. Read more about the goals and plans here.
- Page Shot in FF 54
- Page Shot will now be a bootstrapped addon + embedded WebExtension, and will ship as a system addon. Read more details here.
- Questions/comments? #pageshot on IRC. (We’re working on creating a mailing list / Discourse group for the Page Shot transition into Firefox. Link to be added async)
- Please submit your ideas for new Firefox features!
- We’ve simplified our Test Pilot experiment proposal form. Learn more.
This week I learned
- [paolo] I’ve learned from :rexboy that you can use “animation-play-state: paused;” and a negative “animation-delay” controlled from JavaScript to show a specific frame of a CSS animation. This was useful for the new download progress indicator to control height and brightness at the same time.
- [felipe] Prefs.reset() might not work as you expect if you’re using defaultPrefs:
let prefs = new Preferences();
prefs.set(“foobar”, true);
prefs.reset(“foobar”); // this is fine
let prefs = new Preferences({defaultBranch: true});
prefs.set(“foobar”, true);
prefs.reset(“foobar”); // this doesn’t work 😱
- [mconley] We bought Pocket