- Thanks to Alex Poirot’s work on Bug 1410932, starting from Firefox 110, errors raised from WebExtensions content scripts should be visible in the related tab’s DevTools webconsole
- Migrators for Opera, Opera GX and Vivaldi have been enabled by default and should hit release for Firefox 110 in February! Special thanks to Nolan Ishii and Evan Liang from CalState LA for their work there.
- Various improvements to the Picture-in-Picture player window have landed – see the Picture-in-Picture section below for details.
- Many of these improvements are currently gated behind a pref. Set `media.videocontrols.picture-in-picture.improved-video-controls.enabled` to true to check them out! You can file bugs here if you find any.
- Firefox Profiler updates
- Mark Banner fixed an issue with the default search engine being reset when the user upgrades to 108 if the profile was previously copied from somewhere else.
Friends of the Firefox team
- [mconley] Welcome back mtigley!
- [kpatenio] Welcome bnasar!
Volunteers that fixed more than one bug
- Gregory Pappas [:gregp]
- Oriol Brufau [:Oriol]
- Janvi Bajoria [:janvi01]
- Zach Hoffman [:zrhoffman]
- Khairul Azhar Kasmiran, and Johannes Bechberger on the Firefox Profiler
New contributors (🌟 = first patch)
- Chris Adams, Krishna Ravishankar, Joel Höner for their first patches in the Firefox profiler.
- Brian Pham cleaned up crypto modules that are used/referenced from various platforms
- 🌟 jacksonwhale fixed padding for “Add Custom Device” form in RDM’s device dialog
- 🌟 nihal updated fallback to $HOME in absence of $HOME/Desktop
Add-ons / Web Extensions
- Thanks to Gregory Pappas’ contributions starting from Firefox 110:
- tabs.getZoomSettings will properly support the “defaultZoomFactor” property (instead of always returning “1” as before) – Bug 1772166
- a “close” action icon is now being shown next to the omnibox API’s deletable suggestions – Bug 1478095 (deletable suggestions have been also introduced recently, in Firefox 109 by Bug 1478095)
- As part of the ongoing work on the declarativeNetRequest API: initial support for the Dynamic Ruleset has been introduced in Nightly 110 – Bug 1745764
- :jacksonwhale (new contributor) fixed a small CSS issue in RDM’s device dialog (bug)
- :Oriol improved the way we display quotes to require less “escaping” (bug)
- :Gijs fixed all the imports of sys.mjs modules in DevTools to use the proper names and APIs (bug)
- :barret cleaned up a remaining usage of osfile.jsm in DevTools (bug)
- Mark (:standard8) replaced all Cu.reportError calls with console.error (bug)
- :arai fixed eager evaluation for expressions which can safely be considered as non-effectful (JSOp::InitAliasedLexical with hops == 0) (bug)
- :ochameau removed the preference to switch back to the legacy Browser Toolbox (bug) and also removed the Browser Content Toolbox (bug).
- The regular Browser Toolbox (and Browser Console) should now cover all your needs to debug the parent process and content processes (ask us if you have any trouble migrating from our Browser Content Toolbox workflows!).
- :ochameau updated the version of the source-map library we use in-tree, which came with some performance improvements (bug)
- :jdescottes implemented two events of the WebDriver BiDi network module: network.beforeRequestSent and network.responseStarted (bug and bug)
- :whimboo added general support for serialization of platform objects (bug)
- :whimboo migrated marionette’s element cache from the parent process to the content process which is the first step to be able to share element references between WebDriver BiDi and Classic (bug)
- :sasha fixed the event subscription logic to allow consumers to subscribe for events on any context (bug)
- Standard8 converted some newtab modules to ES modules
- This does not yet mean that we can do a full-scale conversion of newtab’s modules, there’s still some harness support work that is necessary.
- Please consider migrating your components if you haven’t already. Don’t forget actors as well.
- ESMified status:
- browser: 47.2%
- toolkit: 36.4%
- Total: 46.0% (up from 43.6%)
- #esmification on Matrix
- Migration Document (with a walkthrough!)
Lint, Docs and Workflow
- Sylvestre enabled trailing whitespace linting and file permission checks for md, idl and webidl files.
- The roll-out for disallowing the single argument form Cu.reportError has continued, with browser/components and toolkit/ being the remaining major areas to address.
Migration Improvements (CalState LA Project)
- Brian Pham cleaned up some cryptography modules used for passwords import
- Underway (follow this metabug to monitor activity):
- Favicon import from Safari
- Favicon import from Chromium-based browsers
- History import from Safari
- A migrator for the DuckDuckGo browser
- Make the migrator only show resources that actually contain importable things
- Importing when Firefox is installed as a Snap package on Ubuntu
- Tighten up some of the styling of the new migrator dialog
- Offer up an experimental variant of the resource selection pane in the new migrator dialog
- Credit card import from Chromium based browsers
- Students are mostly on break until the end of January
- mconley is laying the groundwork for the students to work on the new migration wizard
- Adding the “migration in progress” state
- Allow the migration wizard to be dismissed when embedded in a dialog
- Curious to know more about how the new migration wizard works? Documentation!
PDFs & Printing
- Bug 1798965 – Simplified PDF print mode (using Reader mode behind the scenes) sometimes causes text to be impossibly small because image widths are unbounded
- Bug 1790757 – crash displaying print popup | this.availablePrinters[target.printerName] is undefined
- Thanks to Niklas for fixing the PiP mute/unmute shortcut on Hulu
- Janvi and Niklas modified PiP tooltips and outlines so that they do not disappear immediately after selecting a control button
- Janvi fixed inconsistent focus outline styling concerning the PiP scrubber
- Niklas fixed seeking issues when using the PiP scrubber/seek buttons on Prime Video
- Playback improvements
- cmkm implemented visible duration timestamps on the PiP window
- kpatenio added a background gradient so that controls have better contrast
- Reminder: you can view and test our WIP playback improvements using the pref `media.videocontrols.picture-in-picture.improved-video-controls.enabled`. More updates to come very soon!
Performance Tools (aka Firefox Profiler)
- Various small UI changes
- The initial selection and tree expansion in call trees is now better:
- Procure a selection also when the components update (for example when changing threads) (PR #4382). Previously no selection was ever provided after the first load.
- Skip idle nodes when procuring an initial selection in the call tree (PR #4383). Previously we would very often select an idle node, because that’s where the most samples were captured. Indeed threads are usually very idle, but we’re interested in the moments when they’re not.
- Do not automatically hide tracks when comparing profiles (Merge PR #4384). Previously it was common that the computed diffing track was hidden by the auto-hide algorithm.
- Handle copy gesture for flame graph and stack chart (PR #4392). Thanks Krishna Ravishankar!
- The initial selection and tree expansion in call trees is now better:
- Improved Chrome and Linux perf importers
- Don’t miss Nazim’s lightning talk about improvements in performance regression alerts on Thursday! (please remove for the blog post)
- Text only
- Add some more content to the home page, about Android profiling as well as opening files from 3rd party tools (PR #4360)
- Prevent ctrl+wheel events in timeline (PR #4350)
- Make more explicit the fact that MarkerPayload is nullable (PR #4368)
- Sanitize URL and file-path properties in markers (Merge PR #4369). We didn’t use these properties before so this wasn’t a problem for current payloads, but future patches in Firefox want to use them, so it’s important to remove this possibly private data.
- Unselect and scroll to top when clicking outside of the activity graph (Merge PR #4375)
- Do not show a tooltip when the stack index of the hovered sample is null, instead of crashing (PR #4376)
- Do not trigger transforms when searching in the stack chart (PR #4387)
- Add development note on Flow (PR #4391). Thanks Khairul Azhar Kasmiran!
- Scroll the network chart at mount time if there’s a selected item (PR #4385)
- Add VSCode settings.json to bypass flow-bin `SHASUM256.txt.sign` check (PR #4393). Thanks Khairul Azhar Kasmiran!
- Do not scroll the various views as a result of a pointer click (PR #4386)
- Do not throw an error when browsertime provides null timestamps incorrectly (Merge PR #4399)
- Make cause.time optional (PR #4408)
- Using mouseTimePosition in Selection.js and added tests for that (Merge PR #3000). This is the second step of a work to show a vertical line indicating the time position from the mouse cursor in all chronological panels at the same time. Thanks Hasna Hena Mow!
Search and Navigation
- Marco stopped places from using negative frecency results to indicate when it needs recalculation. This had potential to cause instability in address bar results.
- James implemented some more improvements to handling of the search terms displayed in the address bar.
- Dale fixed displaying all quick actions when requested.
- Niklas fixed the screenshot quick action to be enabled on about: pages when the screenshots component is enabled.
Storybook / Reusable components
- Our Storybook has been updated
- mconley fixed the styling for the (in-progress) Migration Wizard component Bug 1806128
- tgiles added the MozSupportLink, for easier SUMO page linking Bug 1770447
- <a is=”moz-support-link” support-page=”my-feature”></a>
- tgiles added an Accessibility panel in Storybook which runs some accessibility tests against components Bug 1804927
- mstriemer extracted the panel-list element (menu) from about:addons
- This isn’t a fully-fledged “Reusable Component” but it would be better than writing yet another menu 🙂 Bug 1765635
- hjones updated the moz-toggle element to now be backed by a button, rather than a checkbox. Toggles/switches should not be “form-associated” and should instead perform an immediate action, similar to a button Bug 1804771