Firefox/Meeting/27-Mar-2018
Today’s meeting leader is: kitcambridge
General Topics / Roundtable
- (Osmose) We have a working prototype collecting browser chrome JS errors on the Nightly channel (tracking bug 1426479). We’re evaluating if collecting these errors is useful enough to do on a permanent basis, but we need your help in using the data to find/fix bugs! If you’re interested, see the wiki page for instructions on how to get access (limited to employees only for now).
[mconley] We collect hang reports on pre-release channels using BHR (BackgroundHangReporter). That information is available at arewesmoothyet.com, which you should use. Search for main thread hangs involving your scripts!
dthayer is working on improving the performance of arewesmoothyet.com. I can confirm that the irony is not lost on him.
Friends of the Firefox team
(Give a shoutout/thanks to people for helping fix and test bugs. Introductions)
Resolved bugs (excluding employees): https://mzl.la/2uoryHL
More than one bug fixed:
- Aakanksha [:accakks]
- Abdoulaye O. LY
- Jeremy Lempereur [:o0ignition0o]
- Matheus Longaray (:mlongaray)
- Oriol Brufau [:Oriol]
- Sean Reeise
- Tim Nguyen :ntim
- Trisha
- Vivek
- YUKI "Piro" Hiroshi
- akriti verma
New contributors (🌟 = First Patch!)
- 🌟 Abdoulaye O. LY made it so that muted states for tabs are remembered by session restore, and also made us avoid injecting lazy browsers in some situations
- 🌟 Alex Morega updated one of our default bookmarks to point at something more relevant
- 🌟 Brian got rid of an unused CSS variable
- 🌟 Daniel de Almeida refactored a chunk of AsyncTabSwitcher
- 🌟 Kiran updated a chunk of AsyncTabSwitcher to use a more appropriate accessor to the tabContainer
- Olivier Tilloy fixed a case where setting Firefox as the Default Browser when installed as a Snap package (Ubuntu) would fail
- 🌟 Sean Reeise added some documentation to our CSS to explain why some CSS variables are (intentionally) defined but not used. He also removed some Instantbird-specific code from the app updater.
- 🌟 Jon Kollari removed an unused CSS variable
- 🌟 Vivek (one of our MSU students) made it so that some parts of themes transition smoothly when switching between them. He also fixed a glitch in how we were theme-ing datepicker panels, and renamed a variable within tabbrowser.js to something more appropriate.
Project Updates
Add-ons
- Listeners to the tabs.onUpdated event may now supply a filter to avoid overhead for unwanted events.
- A bug that caused tab IDs to change when tabs were moved between windows was fixed.
- A few bugs in the bookmarks API were fixed.
- The doorhanger displayed for an extension-controlled homepage now shows a link to a SUMO article. The doorhanger on an extension-controlled newtab page now includes the name of the extension.
- Page actions are now much more efficient. Some other bugs with page actions and browser actions were also fixed.
- There is now a preference that requires language packs to be signed (which currently defaults to false, but will eventually be switched to true).
- Kris removed some old code related to legacy extensions (bootstrap.js, we're coming for you soon)
- Zhengyi implemented theming the toolbar inputs focused background, text and border
Activity Stream
Allow users to set custom icon / image / thumbnail for top sites
- Rearranged New Window / Tab preferences to Home about:preferences category
- Running wider / responsive layout experiment on Beta 60
Adding dark theme detection to switch to dark theme
- Starting work on a “View More” / about:library view and downloads in Highlights
- All XUL Overlays have been removed (metabug)
- Completed a design review of rkv - rust-based key value store based on LMDB, an alternative to the various ways we save key-value data today. Here’s a summary and a full list of current data stores.
XBL bindings continue to be removed (tracking dashboard)
xul.css no longer loaded in content since android touchControls have been merged with videoControls (bug)
- Firefox Preferences migration to Fluent status update (metabug)
- Rolling out no-undef to devtools for tests (and finding bugs in tests!).
Policy Engine
- Policies being uplifted to beta
- Bug 1449021 - Pre-installed add-ons policy being developed
Soft freeze by the end of this week
Only stabilization, testing and documentation work after that
Performance
Tab warming
Initial telemetry looks good - we’ve dropped the median and mean tab switch time substantially.
Spinner telemetry initially dipped, but strangely has regressed again for some reason. Still trying to figure out why.
Known regression where some content appears to not paint after a scroll. A speculative patch appears to fix it.
Blank on first paint
florian enabled this by default on Nightly for Linux and Windows!
Unsurprisingly, this allows us to paint something much faster, and we’ve seen a substantial ts_paint drop on Linux and a similar improvement on SIMPLE_MEASURES_FIRSTPAINT on Telemetry
Blocklist improvements
BHR improvements
dthayer made it so that BHR now more accurately captures stacks when hanging on paint during tab switch
- dthayer has patches to get the ContentPrefService db off of the main thread! All reviewed, likely landing soon!
- dthayer is also working on reducing visual noise during start-up when restoring sessions with pinned tabs
- florian has combined the infrastructure for our performance tests so that we can test for flickering and reflows at the same time. This should make it easier to write performance tests, since test writers will mostly have to worry about scripting the actions to be tested. And this has significantly expanded our flicker test coverage.
- mconley is looking at the impact of 60fps tab throbbers on pageload time on less powerful macOS systems
Privacy/Security
- Facebook Container: https://blog.mozilla.org/firefox/facebook-container-extension/
- Properly working cert error pages in iframes: https://bugzilla.mozilla.org/show_bug.cgi?id=1297630
Address Bar & Search
- Search engine discovery from the Address Bar is pending review and is likely to hit Nightly in the next days.
Places
- Fixed a Firefox 60 regression breaking the All Bookmarks UI for some locales
- We are evaluating the removal of the default smart bookmarks (Most Visited, Recent Tags) from new profiles, to reduce code complexity and improve syncability. Feedback is welcome.
Started working on bookmark tags refactoring (async-ify and simplify)
Support for multiple OR-ed queries has been removed from Places, to simplify code and speed up future development
We’re currently converting and removing old tag queries, to use a new storage-independent format
Next we will merge the Tagging and Bookmarking APIs
The Library left pane is now a virtual query, allowing us to improve its reliability, syncability and I/O patterns.
Database migration will remove any non-official bookmark roots.
Removed even more deprecated code:
Exclude-from-backup annotation
Mobile-root annotation
More
Sync / Firefox Accounts
- Ed added a preference to disable and hide the UI for Sync and Firefox Accounts 🚫.
- Ed is powering through Pushbox ✋📦 work to improve the Send Tab experience across all our devices.
- The last sync time is now relative ⏰, using the fancy new Services.intl.RelativeTimeFormat API.
- Thom fixed the Sync HTTP client to handle UTF-8 correctly in all cases 📣. This should fix “mojibake” in device names, among other issues.
- Thom also fixed some gnarly TPS failures ✅.
- Lots of small cleanup fixes 🐞: improving copy in the signup flow, replacing new String(...) with POJOs, and making deduping more efficient in the bookmark mirror.
- Voice Fill & Snooze Tabs graduated to AMO
- Min Vid graduated, coming soon to a Shield study
- Read the graduation reports: https://medium.com/firefox-test-pilot
Screenshots:
Work continues on Firefox Accounts integration, Chrome webextension, Telemetry-based engagement dashboard, many minor bug fixes
- Reviewed user research on our current flow, "unhappy path" user testing
- Continuing to land UI in central as we build out the payment flow behind the dom.payments.request.enabled pref.
- Most of eng. team out this week on PTO/conference