Firefox/Meeting/10-Jan-2023
Contents
- 1 Friends of the Firefox team
- 2 Project Updates
- 2.1 Add-ons / Web Extensions
- 2.2 Developer Tools
- 2.3 ESMification status
- 2.4 Lint, Docs and Workflow
- 2.5 Migration Improvements (CalState LA Project)
- 2.6 PDFs & Printing
- 2.7 Picture-in-Picture
- 2.8 Performance Tools (aka Firefox Profiler)
- 2.9 Search and Navigation
- 2.10 Storybook / Reusable components
- 3 This week I learned
Friends of the Firefox team
Introductions/Shout-Outs
- [mconley] Welcome back mtigley!
- [kpatenio] Welcome bnasar!
Resolved bugs (excluding employees)
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.
General triage
- mstriemer, hjones, niklas and sclements are this monthâs triagers!
- Havenât done this in a while, or ever? Add yourself to the schedule table!
Project Updates
Add-ons / Web Extensions
WebExtensions Framework
- 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
WebExtension APIs
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
Developer Tools
DevTools
- :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)
WebDriver BiDi
- :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)
ESMification status
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.
-
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)
- 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 for their work there
- Brian Pham cleaned up some cryptography modules used for passwords import
Underway (follow this metabug to monitor activity):
- 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
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]
Picture-in-Picture
- 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)
Highlights
Implement resizing columns in the TreeView (Merge PR #4204). This works in the Call Tree and the Marker Table that both use this component. Thanks Johannes Bechberger!
Add carbon metrics information to Firefox profiler (Merge PR #4372). Thanks Chris Adams!
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!
Improved Chrome and Linux perf importers
Chrome importer: Add 1 to line and column numbers of cpu profile (Merge PR #4403). Thanks Khairul Azhar Kasmiran!
linux perf: fix parsing frames with whitespaces in the path (PR #4410). Thanks Joel Höner!
- 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!
- 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.
- Mark fixed an issue with the default search engine being reset when the user upgrades to 108 if the profile was previously copied.
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
This week I learned
[Nicolas] You can change the font used for diffs in Phabricator
- [mconley] Prefer waitForMutationCondition over waitForCondition
- [mcheang and cbellini] Hey! So an update on helping out with creating more visibility of our features to the marketing team and ultimately landing on the Whatâs New Page. I started this conversation a few meetings ago and if you want to catch up on it, thereâs a thread here on #firefox.
- [mcheang and cbellini] Our team is going to try something new. Weâve been having discussions with our Product and EPM team on how to improve our communication with marketing. So the first thing we want to try is this â our product manager Henry Mosetiwrites a Search Product Newsletter on the mana page and also sent through email. Our product and EPMs have the big picture of whatâs being released and when. The format of this letter is evolving into a more easily digestible article and Marketing will be ccâd on this letter so they know the upcoming features in new releases, and easily copy and paste our description, video, and many screenshots directly for use.
- [mcheang and cbellini] Weâll update you on how this is working out and if it helps! Feel free to share some new processes your teams are thinking about with collaborating with marketing in the future