- 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
- [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)
- 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!
Add-ons / Web Extensions
- 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
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
- 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)
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.
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
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
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)
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
- Don’t miss Nazim’s lightning talk about improvements in performance regression alerts on Thursday! (please remove for the blog post)
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