Firefox/Meeting/28-Jun-2022
Contents
- 1 Friends of the Firefox team
- 2 Project Updates
- 2.1 Add-ons / Web Extensions
- 2.2 Addon Manager & about:addons
- 2.3 WebExtensions Framework
- 2.4 Developer Tools
- 2.5 Browser Toolbox
- 2.6 WebDriver BiDi
- 2.7 Lint, Docs and Workflow
- 2.8 Picture-in-Picture
- 2.9 Performance Tools (aka Firefox Profiler)
- 2.10 Privacy/Security
- 2.11 Search and Navigation
- 2.12 ESMification status
- 3 This week I learned
Friends of the Firefox team
Resolved bugs (excluding employees)
Script to find new contributors from bug list
Volunteers that fixed more than one bug
- Itiel
- Mike Ratcliffe [:miker] [:mratcliffe] [:mikeratcliffe]
- Rob Lemley [:rjl]
- ZoltĂĄn SzatmĂĄry
New contributors (đ = first patch)
- đ Anthony Hung replaced ChromeUtils.defineModuleGetter with XPCOMUtils.defineLazyModuleGetters in Form Autofill.
- Manekenpix removed size property from SearchBar component
- ZoltĂĄn SzatmĂĄry fixed FxA's device list to now use the server time for last accessed and fixed Context menu for Network side panel to copy value only instead of `name: value`
General triage
Project Updates
Add-ons / Web Extensions
Addon Manager & about:addons
InstallTrigger Deprecation: Bug 1772905 landed in Nightly 103 as mentioned two weeks ago: the InstallTrigger global is now fully hidden on nightly and early beta.
NOTE: Please link to Bug 1774005 bug reports of website breaking due to websites using InstallTrigger for UserAgent detection (e.g. see Bug 1773873) if you notice newly filed ones during âFirefox :: Generalâ triaging
WebExtensions Framework
As part of the ongoing ManifestVersion 3 (MV3) work:
Added to the browserAction (the toolbar extension button) context menu new entries to allow the user to grant/revoke permissions for the current website (currently restricted to MV3 extensions) - Bug 1769793
For MV3 extensions, all host permissions are considered optional and not granted (until the user has explicitly granted some to the extension). When the user activates the browserAction button (e.g. by clicking on it), the extension content scripts will be temporarily allowed to be injected in all same-origin frames of the current tab top-level origin if the top-level origin matches at least one of the host permissions listed in the manifest - Bug 1774641
Developer Tools
Browser Toolbox
Performance improvements for Browser Toolbox Debugger
Performance improvement for Browser Toolbox Console
Avoiding cloning Map() objects (bug)
Allow the browser toolbox to enable/disable multiprocess behavior on-demand (bug). The user can switch between two modes.
Parent process only (fast) - observing only the parent process and useful for debugging Firefox UI only
Multiprocess (slower) - observing all chrome as well as content processes
- Mike Ratcliffe is making lots of contribution to DevTools these days and fixed an issue where we would limit the number of indexedDB items you could see in the storage panel (bug)
- Thanks to arai we now display getter/setter in arrays (bug)
WebDriver BiDi
- We landed basic support for the script.evaluate command, which allows us to execute JavaScript in a given Browsing Context and also return the result of the evaluation.
- We are actively collaborating with other vendors in this area, with Google providing web-platform tests for this script.evaluate command.
- Support for serialization and deserialization of objects (so they can be transferred between Firefox and clients)
Lint, Docs and Workflow
- Thanks to Mark Hammond for fixing many lint warnings in services code.
- Lots of work in preparation for ESM-ification.
Picture-in-Picture
- Subtitles setting panel is now in Firefox 103. Make sure `media.videocontrols.picture-in-picture.display-text-tracks.enabled` is set to true and subtitles enabled on the original video.
Performance Tools (aka Firefox Profiler)
- Alphabetically sort the roots in the flamegraph. This is especially useful when comparing profiles with the JavaScript filter, as this ensures that the order is consistent.
- Huge documentation improvement. (along with the removal of the documentation of the old panel)
- The tooltip for markers is now showing the originating thread when weâre in the view for merged tracks.
Reminder: you can merge tracks by ctrl clicking their names in the timeline (the top part).
- Local threads are alphabetically sorted at load time, which is nice for threadpools especially, when youâre looking for a specific track in the list.
- We now have smaller URLs by default, which should avoid the problem where a permalink couldnât be created with profiles that have a lot of tracks
- New locale: frisian (fy-NL) (locale with more than 400k speakers, originating in netherlands).
- Add tracks for power usage (this works on MacOS M1 and Windows 11 especially)
Follow along bug 1774844 to know when the feature will land to Firefox.
- As an aside Gerald worked on reducing the timer thread wake-ups to reduce the power usage for this thread.
Privacy/Security
- Eval has been disallowed in the parent process and system privilege context for some time, but as part of Pwn2Own followup investigation we discovered it was not properly being blocked in .jsm files. After the merge we will be landing this enforcement - if you encounter breakage please cc Tom Ritter on the bug. You can work around it by disabling the prefs.
- Updated documentation explaining the different sources of search engines are defined in Firefox, also updated the autofill telemetry documentation
- Improvements to adaptive history autofill, fixing matches that are missed or completing the wrong url
- Fixed uppercase ABOUT: pages being broken
- Updated the redesigned Ecosia icon
ESMification status
- Most of the preparation work has been completed.
- Documentation and scripts for semi-automatic migration are undergoing testing.
- Hoping to open up to teams next week.
This week I learned
- [standard8] `moz-phab reorg` - reorganises your patches in phabricator (as long as they are linear)
- [standard8] Adding debug logs in debugger
- [mcheang] private fields are enforced by Javascript. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/Private_class_fields