🌟 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:
Be aware of potential intermittent conflicts if the same global is defined in conflicting ways in experimental APIs part of the same addon (see Bug 1697404 comment 3 and Bug 1697404 comment 4)
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.
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 dialogScreenshot 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.
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.
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
[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.