Firefox/Meeting/23-Mar-2021

From MozillaWiki
Jump to: navigation, search

Today’s meeting leader is: mtigley

General Topics / Roundtable

Friends of the Firefox team

Introductions/Shout-Outs

Resolved bugs (excluding employees)

Fixed more than one bug

  • Andrei Petcu [:petcuandrei]
  • Erica Wright [:ewright]
  • Sebastian Zartner [:sebo]
  • Tim Nguyen :ntim
  • Tom Schuster [:evilpie]

New contributors (🌟 = first patch)

  • 🌟 Karthik Sundar [karthiksundar30092002] fixed a UI issue where expanding objects in the DevTools console made them jump around (Bug 1608571)
  • 🌟 David [heftydav] fixed an issue where the Picture-in-Picture icon will disappear when dragging the tab to a new window (Bug 1669205)
  • 🌟 Henry Vincent [henryvincent33] fixed a typo in an error message created by DevTools’ Front class (Bug 1699146)
  • 🌟 Renuka Bhure [bhurerenuka14] replaced BrowserTestUtils.waitForCondition with TestUtils.waitForCondition in browser_deleteLogin.js (Bug 1698812)
  • 🌟 Sneha sai KNVS [snehaa2296] replaced BrowserTestUtils.waitForCondition with TestUtils.waitForCondition in browser_protectionsUI_report_breakage.js (Bug 1698076)

Project Updates

Add-ons / Web Extensions

Addon Manager & about:addons

  • Mark adjusted addon signature warning messagebar to make it easier to read on hover (Bug 1694428)

WebExtensions Framework

  • Fission-related fixes:

    • Fix DocumentChannel process switching on sidebar and popup extension pages (Bug 1646817)
    • Logging a deprecation warning on extensions using fission-incompatible canvas drawWindow (Bug 1696976)

      • As also described in the warning, extensions should use Use tabs.captureTab extensions API instead (which is fission compatible)
    • Support for OOP iframes in webNavigation.getAllFrames (Bug 1698398)
  • Starting from Firefox 88 Services is exposed by default in all WebExtensions API scripts (included the experimental APIs embedded in privileged and builtin addons) - Bug 1698158:

WebExtension APIs

  • As part of the FTP removal in Firefox 88 (Bug 1626365):
    • browserSettings.ftpProtocolEnable becomes read only
    • “ftp” has been added to the list of allowed protocols that extension can register as a protocol handler
    • in the proxy WebExtensions API, proxying ftp is deprecated

Developer Tools

Fission

  • Decided not to fix the disabled WebPayments UI for fission.
  • Closed the frontend fission metabug! 🎉🎉🎉🎉🎉🎉🎉
  • Fission beta experiments will start this week (Firefox 88)

Form Autofill

Installer & Updater

  • Background update agent work continues:
  • Lint

  • If you run `./mach lint` in the top-level directory of a repository, with no paths specified, it will now default to `--outgoing --workdir`, rather than doing a full lint.
  • Messaging System

    Mobile

    New Tab Page

    Nimbus

    NodeJS

    New Tab Page

    Password Manager

    • Bug 1688213 Enable "signon.management.page.fileImport.enabled" for all channels fixed and in 88.
      • Import logins from CSV is in beta! Congrats to :petcuandrei for taking this feature from a UX spec and aspirational bugs to implementing and now shipping a feature that rounds out our whole story around login management.
      • We now import and export logins, allowing you to round-trip from other browsers, other password managers, backed-up profiles or any other exotic scenario for which you can prepare a comma-separated values sheet, with at least password and URL columns for successful import into Firefox.
      • We also have the ability to delete all, so the cost is low to play around with it and file bugs.
    • :dimi landed Bug 1166995 - Run login capture code when a form or a formless password field is removed from the document tree. This fixed some long standing issues with prompting to save passwords on sites e.g bigcommerce.com, and no doubt many many others we were never notified about


    Screenshot of the Import Complete dialog
    Screenshot of the Import Summary page

    PDFs & Printing

    • Bug 1682162 - Print margin unit should be localized. [sfoster] landed this in 88, so now margin units are displayed according to the unit indicated by your printer. Mms rule.
    Print Settings Screenshot

    Performance

    • dthayer improved the UX of slow script notifications in Fission
    • dthayer is also working on various improvements and bug-fixes for the Pre-XUL Skeleton UI
    • florian added some very handy profiler markers for CSS animations and transitions. Here’s an example profile.
    • The Pre-XUL Skeleton UI experiment will be wrapping up next week, and we hope to have some data on how it impacts new and existing user behaviour
    • The Process Priority Manager was originally going to be disabled for Fission, but it turns out that for weaker hardware, it seems to really help with pageload time. The Fission team is looking into how to adapt the Process Priority Manager to work for subframes.
    • mconley spoke with k88hudson about using Nimbus / ExperimentsAPI to run an about:home startup cache experiment
      • Originally, we had a Normandy experiment set up for about:home startup cache, but it turns out Normandy sets its prefs too late. Nimbus seems to do it earlier, which is good for us.
    • barret fixed an AsyncShutdown bug for IOUtils, which should be the final blocker to remove the remainder of the OSFile uses in the tree! \o/

    Performance Tools

    Before and after the CPU utilization changes in the graph.

    Picture-in-Picture

    • Molly [mhowell] and Micah [mtigley] are working on setting up a foundation for site-specific video wrappers (Bug 1670108)
    • Oliver [popeoliv]
      • Landed some documentation for the Picture-in-Picture addon (Bug 1695266)
      • Started investigating how we can allow the Picture-in-Picture player window to continue playing even after the parent tab closes (Bug 1561301)
    • Swapnik [katkoor2] submitted a patch where we prevent showing the PiP toggle button for videos with an invalid duration (Bug 1697616)

    Pocket

    Privacy/Security

    Push

    Search and Navigation

    • If a search engine that is set as default is removed, we will now revert to the region/locale default if it is not hidden, or we will try revert to a general search engine.
    • Fixed an issue where updating an add-on which defined a search engine, and changing the search engine name could cause issues.
    • `nsISearchService.addEngineWithDetails` has now been removed. This had become a test-only function, but conflicted with future work. Please prefer `SearchTestUtils.installSearchExtension` instead.
    • Cleaned up the Search Telemetry in tree documentation - Bug 1698847
    • Improved Address Bar handling of pasted strings containing white spaces - Bug 1327589
    • Fixed a problem with editing the case of the url ref fragment - Bug 1693320
    • Fixed a problem causing Tab to Search results to appear at the wrong index - Bug 1697517

    Screenshots

    This week I learned

    • [agashlin] Windows FILE_FLAG_DELETE_ON_CLOSE starts deleting when the first handle closes, but doesn't actually delete it until the last handle closes; it is inaccessible in between (Bug 1696772)
    • [florian] `TestUtils.waitForCondition` waits first 100ms (or the specified interval) before checking the condition for the first time. This implicit timer is a cause of several intermittent test failures when the condition isn’t exactly what the test needs, and the test relies on something happening during the initial timer. Attempting to change this behavior made 20+ intermittent failures become perma-fails. I’m fixing this.
    • [florian] `BrowserTestUtils.openNewForegroundTab` awaits `BrowserTestUtils.switchTab` which also has an implicit 300ms timer
    • [florian] EventUtils.synthesizeKey can sometimes trigger 2 “keypress” events instead of one, when the event is transmitted to remote content.
      • The Event object has isWaitingReplyFromRemoteContent and isReplyEventFromRemoteContent attributes that I didn’t know existed.
      • Some intermittent failures are caused by a test waiting for a synthesized keypress event, and the next test receiving it too!
      • Event.preventDefault() stops the event from being sent to the content process after having been handled by a listener in the parent.