Highlights
- The need for speed! 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 frames on the left, Google Chrome is running in the 4 on the right.
- Firefox Nightly is consistently faster to get to first paint, and faster to paint the browser toolbars.
- The primary deficit appears to be presenting
about:home
, which we’ll be focusing on next.
- Hot on the heels of the last update, there’s a new Firefox Front-end Performance Update. Read all about it!
- Touchbar support has been enabled in Nightly!
- The team behind Firefox Lockbox, our password manager for Android and iOS, is working with the password manager team on a WebExtension for Firefox Desktop.
- A new version of Firefox Screenshots landed in Nightly. This version disables screenshot uploads, and has migration instructions if you’ve uploaded screenshots before. There’s also a new Ctrl + Shift + S keyboard shortcut.
- We’ve landed lots of Dev Tools improvements!
- Logpoints landed in the Debugger, letting you add and edit console logs everywhere, without ever touching the files – thanks to Bomsy!
- 📣 Call to Action: ✨ Use All The Breakpoints ✨ in the new debugger. Keep an eye out for issues. If you see something, say something.
- The first Project Fission Newsletter is out!
Friends of the Firefox team
Fixed more than one bug
- Abdoulaye O. LY
- Avery Berninger
- Special shout-out to Manish [:manishkk] for fixing 10 bugs in the last two weeks! 🎉
- Martin Koroknay
- Oriol Brufau [:Oriol]
- Shivam Singhal [ :championshuttler ]
- Tim Nguyen :ntim
New contributors
- 🌟 Avery Berninger migrated
about:tabcrashed
to Fluent, and also updatedbrowser_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 madebrowser_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
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
- A grab bag of improvements!
- Show the context menu when there’s a text selection.
- Enable
pageAction
in Reader Mode. - Add additional
requestIdleCallback
wait around migration server check. - Metrics improvements:
- Stop sending metrics if the server isn’t available.
- Add logic to not send timing information if the server is unavailable.
- Only send analytics for 10% of users.
- Make pressing the “Enter” key download a shot.
- Use
incognito: "spanning"
in the extension manifest. - Update first slide text to remove references to uploading.
- Query user status from server.
- Remove My Shots links for non-server-users.
- Pop open server page for people with indefinite shots.
- Remove My Shots test, since My Shots is no longer available.
Lockbox
- This past sprint covered foundational work on the WebExtension:
- lorchard made it so that we disable prompts to save logins while on extension pages.
- meandave updated the styles in the doorhanger list view.
- lorchard added integration tests for item deletion & modification.
- 6a68 made it so that we filter out Sync logins in event handlers.
- 6a68 made it so that we derive entry titles from saved login URL.
- Relequestual updated the Readme.
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 syncing key-value shaped data in a generic way. 📦
- History sync is largely complete (and ready to test in the Android Reference Browser!), with new APIs for clearing history landing soon. 🕵️♀️
- Mark 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 Dogear into Desktop, using the Rust XPCOM bindings. 🦀
- 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. 📣
Browser Architecture
- Documents in system add-ons can use Fluent now.
- The Fluent XUL cache, which will allow us to use Fluent on the startup path, is in review.
Developer Tools
- The new scrollable badge got enabled on Nightly by Patrick Brosset, letting you quickly find the element causing unwanted scrollbars.
- The Debugger team is working across many fronts to provide you the Breakpoints quality that you deserve!
- Brian Hackett is cleaning up 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.
- 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.
- 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 XHR Breakpoints.
Fission
- Fission now has milestones in Bugzilla!
- Milestone 1 (M1)
- Render an OOP iframe
- Targeted for end of February
- Milestone 2 (M2)
- Interactive OOP iframes
- Targeting for +1 or 2 months, still TBD
- Milestone 3 (M3)
- Still being formulated
- Please nominate bugs with Fission Milestone -> M1/M2/M3 if you think it applies to Fission
- Milestone 1 (M1)
- Groundwork for frame script 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.
Password Manager
- MattN reports that project areas are coming together and should be prioritized by the end of the week! 🔐🙈👍👍
- Completed
- The whole team has landed a lot of test fixes to prepare for new development.
- prathiksha added an Allow/Disallow autofill password option in the management UI.
- prathiksha also made it so that we now provide visual feedback when a password field is autofilled, bringing login fields in line with autofilled address form fields.
- sfoster made it so that you now have the option to save passwords in Private Browsing mode.
- In Progress
- sfoster is working on delaying autofill on background tabs until selected.
- prathiksha is adding a “View Saved Logins” footer to the password manager autocomplete popup.
- jaws is fixing a bug where logins imported from Chrome (on Windows) have the wrong character encoding.
- MattN is fixing a bug where the selection of previously entered form history (and username) data is broken in Nightly when Form Autofill is enabled.
Performance
- 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.
Policy Engine
- New policies for turning off captive portal detection via
CaptivePortal
, disabling prefetch viaNetworkPrediction
, and togglingExtensionUpdate
. - Making progress on the extension allowlist and fixing blocking add-on bugs along the way.
- Started investigating the Chrome Legacy Browser Extension.
Search and Navigation
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, to prepare 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 theurlbar/
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 Contextual Feature Recommender (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
- CFR – Pinned Tabs Spec
MacTen wrote on