Engineering Effectiveness Newsletter (August and September 2022 Edition)

Welcome to the August and September edition of the Engineering Effectiveness Newsletter! The Engineering Effectiveness org makes it easy to develop, test and release Mozilla software at scale. See below for some highlights, then read on for more detailed info!

Highlights

Detailed Project Updates

Bugzilla and Bugbug

Build System and Mach Environment

  • Starting with Bug 1746462 you can use the mold linker for linking Mozilla Firefox on most Linux distributions. MacOS support will come shortly.

CI and Treeherder

Crash Management

  • All of Ubuntu Snap channels (stable, beta, edge and ESR) should now have proper symbols and are integrated with the pipeline to keep them updated.

Lint, Static Analysis and Code Coverage

  • code-review bot now has a retry mechanism when pushing to remote repositories and failure happens. It also detects try closures and retries when try is open.
  • Integration between heroku and code-review bot is more streamlined when shutdowns happen.
  • When a base revision is missing for the code-review bot, a message is going to be displayed in Phabricator informing the developer about this.
  • code-review bot implements the Mozilla Dockerflow supports.

OS Integration and Security

  • Gabriele Svelto landed a change to our locking on macOS that significantly improves Firefox responsiveness on loaded systems.
  • Raymond Kraesig, in coordination with the Windows Spotlight team and Gabriele Svelto’s insight specifically, was able to shift 50-60% of parent process crashes on Windows to content process crashes, which significantly improves the experience for our users. Instead of bringing down the whole browser, a user typically only needs to reload a tab. The team is looking at reducing the total number of OOM crashes next. This graph illustrates the steep dropoff in parent process crashes (blue):

  • Bob Owen landed a change to use the WER runtime exception module to catch early crashes.
  • The Windows Spotlight team continued to address stability (1, 2, 3, 4, 5, 6), fullscreen (1), multi-monitor (1) and sizing (1, 2) issues.
  • Yannis Juglaret published mitimon, a tool that will help us collect useful debug information from bug reporters when their issue is related to security mitigations and we have trouble reproducing it.

PDF.js

  • PDF editing is enabled by default in 106, which was just released!
    • Next steps will be the ability to import signatures from images and the ability to highlight and comment.
  • Calixte fixed some serious pdf.js accessibility issues for HCM users and keyboard users

Power use

  • The new power profiling feature got some attention when it shipped in Firefox 104, including a blog post that reversed engineered it and wonders if/when a similar feature will appear in other browsers.
  • In addition to showing the instantaneous power, the profiler tooltip for power tracks now shows the energy used over the selected time range.

Release Engineering and Management

  • S3 storage investigation
    • Archive.m.o cleanup
  • aki presented a Chain of Trust deep dive to help cross-train on this important topic
  • gabriel and ahal automated more of the VPN release pipeline with signing and beetmover tasks
  • gabriel and ahal also created a release pipeline for the new VPN addons by adding signing, beetmover and a release promotion action
  • String freeze date is now available in product-details
  • The l10n bumper now runs on autoland instead of mozilla-central

mozregression

  • zeid made improvements to the CI workflow, including automating PyPI deployments, moving all CI to GitHub Actions including the building of Windows packages. Also upgraded PySide2 to PySide6, dropped support for Python 3.6, and cleaned up outdated and unmaintained packages.

Other

  • ahal and Sylvestre proposed and created a new module for Firefox Source Docs!
  • zeid moved module owner and peer definitions for Desktop Firefox, Toolkit, Core, and Testing to be in tree and the wiki pages are no longer used.

Thanks for reading and see you next month!