Firefox/Meeting/12-Feb-2019
Contents
- 1 General Topics / Roundtable
- 2 Friends of the Firefox team
- 3 Project Updates
- 4 This week I learned
General Topics / Roundtable
- [MattN] Credit card autofill was disabled by default so we dogfood and test what we ship since it’s not a priority to ship in the short term.
Friends of the Firefox team
Introductions
- [mconley] Eric Smyth (:esmyth)
Resolved bugs (excluding employees)
Fixed more than one bug
- Abdoulaye O. LY
- Avery Berninger
Manish [:manishkk]
Special shout-out for fixing 10 bugs in the last two weeks! 🎉
- Martin Koroknay
- Oriol Brufau [:Oriol]
- Shivam Singhal [ :championshuttler ]
- Tim Nguyen :ntim
New contributors (🌟 = first patch)
- 🌟 Avery Berninger migrated about:tabcrashed to Fluent, and also updated browser_all_files_referenced.js so that it also looks for Fluent ftl files!
- 🌟 Brian Chen migrated the “reset profile” strings and about:rights to Fluent, and then made browser_misused_characters_in_strings.js check Fluent files
- edward.i.wu made it possible to theme selection text and background colours from a WebExtension theme
- Garvit Khatri [:garvitdelhi] fixed a styling glitch in our DevTools Font Inspector
- 🌟 Martin Koroknay fixed a bug where add-ons could get stuck checking for updates, and made it so that we always show the filter toolbar buttons for the console
- 🌟 Sakshaat Choyikandi improved our DevTools documentation
- 🌟 SresthaSrivastava [:srestha] removed some unused attributes from aboutNetError.xhtml
- 🌟 Varun [:vdey he/him IST] cleaned up some of our Telemetry tests
Project Updates
Activity Stream
Add-ons / Web Extensions
- Support for update.rdf was removed. 🎉 🎉 🎉 🎉
- Themes got the ability to handle selection colors.
- Moving an unloaded tab no longer loads it.
- Work on extensions in private browsing mode continues.
- The first bits of a new about:addons written in HTML landed.
Applications
Screenshots
Latest export landed in Nightly: disables uploads, provides migration instructions for past uploaders, adds ctrl + shift + s keyboard shortcut
Show context menu when there's a text selection (#5334)
Enable pageAction on reader mode (#5282)
Add additional requestIdleCallback wait around migration server check (#5335).
Metrics improvements (#5315)
- stop sending metrics if server isn't available
- Also adds logic to not send timing information if server is unavailable
- only send analytics for 10% of user.
Make Enter download a shot. (#5259)
Use incognito: spanning in manifest (#5294)
Update first slide text to remove references to uploading[1]43c8db5
Query user status from server (#5260)
Remove My Shots links for non-server-users (#5263)
Pop open server page for people with indefinite shots. (#5261)
Remove My Shots test, since My Shots button is usually gone[2]534eba4
Lockbox
- Firefox Lockbox is a password manager project that is adding a webextension, and will be working together with the password manager team. The code is currently hosted on github.
- This past sprint covered foundational work on the webextension:
- [lorchard] Disable prompts to save logins while on extension pages (#74)
- [JSON_voorhees] Update styles in the doorhanger list view (#64)
- [lorchard] Add integration tests for item deletion & modification (#71)
- [6a68] Filter out sync logins in event handlers (#67)
- [6a68] Derive entry titles from saved login URL (#16)
- [Relequestual] Updated Readme (#75)
Services (Firefox Accounts / Sync / Push)
We’re continuing to port Places to Rust for Fenix and Firefox for iOS!
Thom is looking at optimizing our frecency algorithm and history expiration.
Thom also has a proposal for generic syncing for key-value shaped data.
History sync is largely complete (and ready to test in the Android Reference Browser!), with new APIs for clearing history landing soon.
Mark has landed an initial cut of the bookmarks schema. We’ll be implementing syncing and merging next.
Our bookmark sync merging algorithm lives in a separate Rust crate now, called Dogear.
Lina integrated the Rust merger into Desktop, using a Rust XPCOM binding. Patches should be ready for review this week.
- Edouard implemented Web Push crypto in Rust, to support Send Tab (and, eventually, Web Push!) in Android Components.
- JR and Phil are working on a Push component for Rust.
- TL;DR: Lots of Rust! 🦀
Browser Architecture
- We now have more Fluent strings than DTD!
- Documents in System Addons can use Fluent now
- Fluent XUL cache (in review) will allow us to use Fluent on the startup path
Developer Tools
- The new scrollable badge got enabled on Nightly by Patrick Brosset, letting you quickly find the element causing unwanted scrollbars
428x184px Debugger team is working across many fronts to provide you the Breakpoints quality that you deserve!
Brian Hackett is cleaning the Debugger’s sources/script handling which not only fixes long-standing issues with inline, console, evaled & gc’d scripts but also sets the foundation for shipping “windowless” worker debugging.
Landing: Logan Smyth unified the pause location logic in the Debugger Server & JS Engine. Expect rock solid & fast pausing/stepping!
- Sneak preview: Having proper locations support will also unblock the new Column Breakpoints feature and Pretty Print improvements.
📣 Call to Action: ✨Use All The Breakpoints ✨ Keep an eye for issues. If you see something, say something.
- Razvan landed the Copy support for the new Changes panel, so you can easily export the style modifications done the Inspector to share or apply in your IDE.
252x202px - Logpoints landed in the Debugger, letting you add and edit console logs everywhere, without ever touching the files – thanks to Bomsy!
147x101px - UX Contributor Florens Verschelde continues his icon update work with more and more batches.
- Nicolas making it easier to copy and share traces from the Console by improving the copied formatting.
- Micah added a Copy Stylesheet URL to the Style Editor to make compat debugging easier
- Contributor Anthony X. added syntax highlighting to the Debugger’s conditional breakpoint input
- Contributor Jarim added the method filter to the XHR Breakpoints
Fission
- First Fission Newsletter published
Fission now has milestones! (Fission Milestone in Bugzilla)
M1 -> Render an OOP iframe -> End of February
M2 -> Interactive OOP iframes -> +1 or 2 months, TBD
M3 … Future
Please nominate bugs with Fission Milestone -> ? if you think it applies to Fission
- Groundwork for framescript replacement is landing at a fast pace
- Some docs for the front-end are on the wiki
Lint
- Standard8 is investigating centralising the configuration for test directories so that we don't need a .eslintrc.js in every test directory.
- ESLint is discussing a big change to how they manage configurations.
NodeJS
Password Manager
- [MattN] Project areas are coming together and should be prioritized by the end of the week
Completed
[everyone] Lots of test fixes to prepare for new development
[prathiksha] Added an Allow/Disallow autofill password option in the management UI
[prathiksha] We now provide visual feedback when a password field is autofilled bringing login fields in line with autofilled address form fields.
[sfoster] You now have the option to save passwords in Private Browsing mode
In Progress
Performance
- Firefox Front-end Performance Update #12 posted
dthayer’s research into a warm-up service seems to indicate that we can perhaps shave off 1s of net time required to start Firefox from cold OS boot.
esmyth is running a Heartbeat survey to get some user sentiment on the various trade-offs here
- dthayer is going to collect Telemetry on startup cache hits and misses
- felipe’s new tab animations have been baking in Nightly behind the browser.tabs.newanimations pref, and plawless has been working with UX to free up epang to help figure out the remaining animations
felipe has also resurrected an older patch to make creating the ever-mysterious Hidden Window lazy to load on Windows and Linux
This has resulted in some nice clean-ups, since felipe has discovered quite a bit of unused code
Gijs landed a patch to make it easier to experiment with the low-end hardware browser adjustment on beta. He’s going to try shifting the technique to lower the frame rate by having the RefreshDriver skip every other vsync, rather than lowering the vsync rate.
We believe this will allow scrolling and video to still play at 60fps, but that painting of web and chrome content will happen less frequently per second
- Gijs also made it so that we don’t invalidate the start-up cache when installing or uninstalling a WebExtension
- mconley landed a probe that measures the time from process start to painting the top sites in the initial tab’s about:home
mconley enabled the process priority manager by default on Windows on Nightly.
Got our first fallout report, and just today landed some patches to increase the priority of background tabs playing audio
Using some handy scripts from Florian, mconley was able to do some frame recordings on the 2018 reference hardware to measure start-up performance
Firefox Nightly is running in the 4 on the left, Google Chrome is running in the 4 on the right
Observations
- Firefox Nightly is consistently faster to get to first paint and to painting the browser toolbars
- The primary deficit appears to be presenting about:home.
- We probably should delay the Update
The team will be focusing on trying to improve our time to painting about:home.
Policy Engine
New policies for
- Making progress on extension whitelist, fixing blocking add-on bugs along the way
- Started investigating the Chrome Legacy Browser Extension
Privacy/Security
Bookmarks & History
- Marco fixed an issue with Favicons where we would lose them in some circumstances if you clear history on shutdown.
- Mark fixed an issue where importing bookmarks could unnecessarily fail earlier if invalid entries resulted in an empty section.
Search
- Mike de Boer landed a patch to make the Search Service load asynchronously. Preparation for loading WebExtension based engines
Quantum Bar
- Lots of bug fixes and code cleanups, list too long.
- Search one-off buttons have been added to the display, but currently can't be selected/clicked on.
- Now ported the majority of tests in the urlbar directory to work with QuantumBar. Likely to start on those outside the urlbar directory soon.
- Working on getting the list of bugs remaining for nightly down, will likely be looking at starting wider testing soon.
User Experience
After the implementation of CFR for Extensions, the goal is to extend recommendations to include Firefox features, like Pinned tabs. For example, if you open multiple tabs and repeatedly use these tabs, we may offer you a feature called “Pin Tabs” and explain how it works. Firefox curates the suggested features and notifies you in an appropriate context.
After several rounds of user testing, we've finalized the design and will run CFR Pinned Tab in a shield study. Engineering work is scheduled for 67.
CFR Pinned Tabs Bug - https://bugzilla.mozilla.org/show_bug.cgi?id=1501815
CFR - Pinned Tabs Spec - https://mozilla.invisionapp.com/share/R3OVTEX9X76#/screens
This week I learned
- [felipe] There’s a non-standard transitioncancel event, useful when a transition is interrupted midway and you still need to do work. It can be interrupted by some CSS changes such as the element receiving display: none, the transition-property changing, etc.
- [felipe] elem.getAnimations() also returns ongoing transitions, and there’s a `finished` promise on it (which resolves or rejects if the transition was canceled)
- [6a68] Github contributors in contributors list? (Sure!)