Categories: Uncategorized

These Weeks in Firefox: Issue 88

Highlights

  • Firefox 86 went out on February 23rd! Here are the release notes.
  • The new, modern printing UI is rolling out to 100% of our release users in Firefox 86!
  • Devtools has a new UI for color scheme simulation (bug). This change was contributed by Sebo. The following media query can be used on the page to follow the current scheme value:
@media (prefers-color-scheme: dark) {

 body { background-color: #333; color: white; }

}

Two new icons in the DevTools inspector sidebar are highlighted. They are of a sun and a moon. They toggle prefers-color-scheme.

  • The new Devtools Performance panel is enabled by default in Nightly (bug)

The new DevTools performance tab. An onboading message notes that "Firefox Profiler is now integrated into Developer Tools".

  • About:welcome now supports a “Make Firefox My Primary Browser” button (bug). This button pins Firefox to the taskbar and sets it as the default browser.

An onboarding message shown on about:welcome. Underneath, a button reads "Make Firefox My Primary Browser".

Friends of the Firefox team

For contributions made from January 26, 2021 to February 23, 2021, inclusive.

Introductions/Shout-Outs

Resolved bugs (excluding employees)

Fixed more than one bug

  • Anurag Kalia :anuragkalia
  • msirringhaus
  • Itiel
  • Andrei Petcu
  • Sebastian Zartner [:sebo]
  • Sunday Mgbogu  [:digitalsimboja]
  • Tim Nguyen :ntim
  • Tom Schuster [:evilpie]

New contributors (🌟 = first patch)

Project Updates

Add-ons / Web Extensions

Addon Manager & about:addons
  • The about:addons HTML views are now finally moved to the top level document (Bug 1525179), which was the last remaining step related to completely replacing the old XUL about:addons page. As a side effect of that change, in Firefox >= 87 the print preview now works as expected for the about:addons page (Bug 1663385).
  • Some more cleanups and papercuts fixed in about:addons, thanks to ntim (Bug 1689234, Bug 1689230) and Itiel (Bug 1693642)
WebExtensions Framework
WebExtension APIs
  • Starting from Firefox 87 nativeMessaging can be used as an optional permission (Bug 1630415)
  • Sunday Mgbogu (:digitalsimboja) contributed a fix to make sure we include the expected stack trace on errors triggered by the menu API (Bug 1588616)
  • Fixed missing windows.onFocusChanged event for extensions not allowed to access private browsing windows when the user does switch to a private windows (Bug 1691144). Fix uplifted to Firefox 86. Thanks to Alessio (:Dexter) for contributing a fix for it.

Developer Tools

  • Inactive CSS – Contributed by Sebo
    • Warning is displayed when table-layout is used incorrectly e.g. table-layout is used on non-table elements (bug)
    • Warning is displayed when margin or padding is set on internal table elements (bug)

A panel in DevTools says that "margin has not effect on internal table elements" and offers recommendations on how to fix this.

  • Developer Tools Toolbox is now showing a number of errors on the current page. This is a quick way to surface information to a developer that something is wrong with their page. Clicking on the red exclamation icon navigates the user to the Console panel.

In DevTools, a warning icon with the number "3" next to it is shown.

  • Fission – DevTools milestones aligned with platform (M7 and M8)

Fission

  • Milestone 6c is finished. Milestone 7 targets Firefox 88.
  • Neil added a notification bar now appears when a subframe crashes, offering help and an option to submit the crash. Also added telemetry for crash notifications.

Installer & Updater

  • 1686343 – agashlin worked with the UJET team(mardak) to find and integrate a way to programmatically allow Windows users to pin to the taskbar. This will be surfaced as an experiment in FX 87.
  • 1685213 – agashlin is working on implementing a way to track pin to taskbar state, and if a user launched Firefox from a pin or not. We will likely be uplifting this into FX 87 – patch has not landed yet.
  • 1483399 – bytesized will be improving how we handle per-installation (as opposed to per-profile) prefs in order to support integrating a pref to enable/disable the upcoming background update agent.
  • 1684971 – bytesized landed a change to track who we might be losing in the default browser agent due to confusion over how to set Firefox as the default. This goes live with FX 86.
  • 1654891 – nalexander is currently integrating Glean into the background update agent.
  • nalexander has been coordinating with the experimenter team for the background update agent rollout plan – it will be a staged rollout for all windows users starting with FX 89.

Lint

Messaging System

Password Manager

  • Thanks to Andrei Petcu for the following patches:
    • 1688049 – Fixed wrong focused element in Import Password from CSV dialog
    • 1689119 – Fixed duplicated telemetry initialization in “LoginCSVImport.jsm”
    • 1687852 – Fixed how duplicates are handled when importing from a CSV file.
    • 1692481 – Fixed “Import Error” modal not appearing after importing logins from a CSV file that contains multiple duplicated column headers
  • 1592050 – tgiles landed a patch that enables users to search via password when Primary Password is enabled

PDFs & Printing

  • Duplex (print on both sides):
    • Bug 1673099 – enordin fixed some issues with our default flipping across platforms
    • Bug 1671702 – emilio added support to pick between the two modes
  • Bug 1688099 – emalysz landed a patch to remember the “More settings” expanded state
  • Bug 1669732 – emalysz added an error message when copies are invalid (> 10,000)

Performance

  • Barret is working on unblocking a bunch of IOUtils migrations that will hopefully land this week. The unblocked patches will help startup performance by not instantiating OS.File during startup.
  • Gijs made closing hung tabs faster by not checking for “beforeunload”.
  • We’re going to run an experiment in Firefox 86 in early March that will enable the Pre-XUL Skeleton UI to see how it impacts user retention. We were originally going to test the about:home startup cache as well, but it turns out that Normandy sets the prefs for experiments too late for that to work.

Performance Tools

  • There’s a new “PROFILER” category showing profiler overhead, displayed in a red-ish color in the timeline. (example profile)
    A chart shows profiler overhead.
    This lets us cleanup marker stacks by stopping the stackwalker when it enters the profiler category:

A panel shows the call stack for the profiler.

Full stack:

A panel shows the call stack for the profiler.
Marker stack (with profiler internals now hidden!):

A panel shows the call stack for a particular profiler marker.

  • The “Buffer Capacity” line in the profile metadata panel has been fixed (it used to show a size 8 times too small). It should now match the size set in about:profiling.

The profiler metadata panel is shown, with information about the performance profile.

  • We are making progress on localizing the profiler.firefox.com homepage, thanks to Hasna, our Outreachy student.
  • The marker context menu has been redesigned to no longer use submenus, to make it easier to change the selection based on marker timings.

A context menu with several items about setting profiler markers.

  • The large GeckoProfiler.h header is being split into smaller headers that contain the most used profiler features: mozilla/ProfilerLabels.h and mozilla/ProfilerMarkers.h are the most frequently used. This should hopefully help reduce compile times slightly (and significantly for people hacking on the profiler that will no longer need to rebuild everything whenever a profiler header is edited).
  • Visualization of the new CPU Utilization data is going through review, and should be available soon.
  • New markers:
    • Sync IPC markers are now available again unconditionally
    • New DoFlushPendingNotifications and SetNeedStyleFlush markers to make sync style flushes easy to understand
    • New Runnable markers to understand things using just a little bit of CPU on a thread (otherwise invisible in samples)
    • “Perform Microtasks” marker

Picture-in-Picture

Exciting progress from MSU students over the past few weeks:

  • Guanlin [:chenggu3] has been porting the DTD strings in videocontrols.js to Fluent (bug 1654054)
  • Swapnik [:katkoor2] recently landed a fix where PiP would open a video with an invalid duration value via the keyboard shortcut (bug 1679174)
  • Oliver [:popeoliv] has begun moving the PiP overrides embedded in the WebCompat add-on into its own system addon. This will allow us to develop more site-specific overrides for Picture-in-Picture independently from the WebCompat add-on (bug 1690076)
  • David [:heftydav] has fixed a tricky issue where the PiP icon disappears when moving its parent tab into a new window. Currently in the process of reviewing (bug 1669205).
  • Tony [:frostwyrm98] has finished up making the PictureInPicture and Player modules emit interface documentation via SphinxJS (bug 1674152).

Search and Navigation

  • Making search engines handling more robust
  • Fixed regressions:
    • Tab moving to the wrong widget after CTRL+L if browser.toolbar.keyboard_navigation = false – Bug 1678323
    • Experimental “Show results during IME composition” may break IME on autofill – Bug 1689055
    • Legacy search bar may lose focus after IME composition- Bug 1687704
  • Enhancements:
    • Made urlbar results composition more flexible – Bug 1676469. In practice, this means that the same types of results will be grouped together in the address bar. For example, we will show a set number of search suggestions, then fill up the remaining spaces with history results. Previously, we may have shown some search suggestions, some history results, then filled the remaining space with more search suggestions.
    • Pasting non-url strings should insert spaces in place of newlines – Bug 1185358
    • The WebRTC mic/camera icon doesn’t flash anymore in the urlbar or permissions panel – Bug 1687397

WebRTC UI

  • Did you know that if you’re sharing your screen over WebRTC, you can choose to suppress DOM notifications?

A WebRTC permissions panel asks the user if they want to share their screen. A checkbox underneath asks if Firefox notifications should be disabled.

A WebRTC permissions panel where the dropdowns for camera and microphone are replaced with static text.

No comments yet

Post a comment

Leave a Reply

Your email address will not be published. Required fields are marked *