Multi-Account Containers Sync is live and people seem to really like it!
Thank you to our Outreachy intern Kendall for implementing it!
Instant Evaluation in the DevTools Console is being tested in Nightly, and currently targeted for rollout for Firefox 75
Are you having problems with instant evaluations? Please file against the meta bug!
A new Initiator column in the Network Inspector shows the stack trace of the JavaScript that caused the network request! Thanks to tranfusion for the patch.
In Nightly, it’s now possible to enable the profiler UI without having to install an add-on. Just visit https://profiler.firefox.com and click “Enable Profiler Menu Button”
Caption: The profiler.firefox.com page showing a button to enable the profiler menu. That button is highlighted to draw attention to it.
Web developers can now block URLs using wildcard (*) patterns in the DevTools network monitor
The mobile team has finished the Fennec Nightly migration to Fenix!
aarushivij
Florens Verschelde :fvsch
Itiel
Pranav pandey
Vitalii
🌟 Aggelos Gamvrinos [:agam] simplified some of our DevTools Console tests
Andy Bruère [:abruere] fixed a regression with the layout of about:logins on wider displays
Duncan Dean made is so that you can use domain wildcards when blocking requests in the Network Monitor
🌟 Farooq AR added the new beforeinput event type to the Event Listener Breakpoints list
Stepan Stava [:stepan] made the “execute getter” feature work in the Debugger variable preview pane
🌟 Manvel Saroyan fixed using the browser.permissions.request WebExtension API from a popup context
🌟 Eugene Simakin made it so that ES6 classes are displayed as classes when logged to the console
🌟 Surya Shankar renamed one of our DevTools files to more accurately reflect what it does
🌟 Lana Honcharuk [:sviho] removed some unused preferences
Thiago Arrais made sure that the Resend Request feature in the Network Monitor also resends headers
🌟 Uday Mewada renamed the nascent “Eager Evaluation” DevTools Console feature to “Instant Evaluation”
Mohd Umar Alam [:umaralam48] made it so that updating a tab via the context menu in the Tab Manager menu updates the list of tabs immediately
🌟 Vitalii fixed a confusing styling inconsistency in the Network Monitor tool and made it so that tooltips for WebSockets in the Network Monitor have a limit to their size
As part of the QA verification on Bug 1602839 (meta issue related to locking down the add-ons sideload locations) we noticed that we were still accepting sideloading of extensions dropped into the application directory, Shane fixed this in Bug 1616545 (currently landed in Firefox 75, may be uplifted to 74 beta).
The initial webpage that originated an addon installation is now stored in the addon db and sent as part of the abuse reports submitted by a user for the related extension (Bug 1610844)
In Bug 1493620 Tomislav removed the creation of about:blank in the windowless browsers created to load the extension background pages
In Bug 1614966 Shane moved the RemoteSettings prefs overriding out of ExtensionXPCShellUtils.jsm, which should make it simpler to re-use ExtensionTestUtils in xpcshell tests that would need RemoteSettings prefs to not be overwritten (e.g. see Bug 1612416)
saroyanm fixed a bug that was preventing browser.permissions.request to work correctly when called from an extension popup (Bug 1432083)
The newly added "beforeinput" event is now also available as "Event Listener Breakpoints", thanks to farooqbckk
The secondary footer in the Debugger was removed to save some space
File tabs in Debugger can now be reordered with drag & drop, thanks to transfusion
Command-Click to highlight and jump to a location, thanks to janelledement
Instant Evaluation keeps getting better (scheduled for 75)
Oriol added support for Proxy and Reflect methods in bug 1615861
Logan added support for side-effects free DOM method (like querySelector for example)
Highlight DOM element results (bug 1614549)
Fixed issue with autocomplete case-insensitive matching in bug 1614841
[WIP] Display the autocomplete above the input so it doesn’t cover the instant evaluation result (bug 1609942)
`print` and `pprint` console helpers were removed, as they’re not standard, provided little values in comparison to console APIs and are not defined in other browser DevTools (Bug 1613845 and 1613843 )
There’s now a way to disable autocomplete directly in the UI (Bug 1593607)
Autoclose brackets - The Console panel input now respects the Autoclose brackets option. Console automatically inserts the corresponding closing element for quotes & brackets (bug).
Eugene added proper rendering of ES6 classes in the console and debugger (bug 1592277)
Caption: The DevTools Console showing ES6 classes named "A" and "B" being logged to the console as classes.
Alex made the Multiprocess Browser Console faster to open (bug 1605763)
Console also got a boost when dealing with lots of new messages at once (bug 1612571)
Added autocompletion support for optional chaining operator (?.) that landed in Firefox 74 (bug 1594009)
WebSocket Inspector supports WAMP protocol, including JSON, MsgPack and CBOR (bug). Available in the Network panel
Caption: Multiple new protocols being displayed in the WebSocket Network Monitor tool, including JSON, MsgPack and CBOR.
Resend request doesn’t forget headers anymore, thanks to thiago.arrais
The left sidebar (request blocking and full text search) is now accessible with a side bar toggle, thanks to pranavpandey1998official
Focused filter buttons now look less `active` to avoid confusion, thanks to vtsty.dev
Blocking network URLs now allows wildcard (*) patterns, thanks to duncangleeddean
Borders got added between columns in network requests list for readability
Caption: The Network Monitor showing a series of requests, where each column of request data is separated by clear borders.
Temporary extensions loaded in GeckoView apps now also appear in about:debugging when connected to the device. Implemented by Luca Greco in bug 1596867.
Historically, the framework part of the code that deals with client to server communication for DevTools has been called DebuggerClient and DebuggerServer.
This likely comes from the fact that the Debugger was probably the first tool to be based on a remote (client-server) architecture.
These objects have now been renamed to the more self-explanatory DevToolsClient and DevToolsServer.
Julian tracked down an issue that had made the build for our documentation website fail for some time now (bug 1613368). The site was fine, but the latest updates were not being pushed to it. This is now fixed!
We'll continue improving the onboarding docs on that site, and turn it into a simple, easy to digest, single page that points to other up-to-date resources wherever possible, to avoid duplication.
Honza improved the table of content for the DevTools docs on https://firefox-source-docs.mozilla.org/devtools/index.html
In time, we plan on moving our internal technical documentation over to this site instead of https://docs.firefox-dev.tools . Our firef-dev.tools site will only contain a one pager getting started guide for new contributors.
Bernard Igiri has a patch up to port UnselectedTabHover to JSWindowActors
Neil has a patch up to port RemotePageManager, and many of the pages that rely on it, to JSWindowActors
hsivonen fixed the focus issue so you can click in form controls now.
Adding a general fission test that is useful as a base for other fission tests that need to check that functionality works in different iframe setups.
ESLint is now on for the entire codebase (where possible): 🎉🎉🎉🎉🎉🎉 https://www.thebanners.uk/standard8/2020/02/14/eslint-now-turned-on-for-all-of-the-firefox-gecko-codebase/
A big, big, thank you to all who have participated and helped to roll this out, especially those that picked up the mentored bugs.
There's still more to do (enabling more of the "default" rules on various files.
Fenix has reached a big milestone, Feature Freeze, so in the next release you can check out:
Logins (big thanks to Emily Kager, Severin Rudie, Grisha Kruglov, Eugen Sawin and others)
Top Sites (Thanks to Gabriel Luong, Jeff Boek)
UBlock Origin extension (Thanks to Christian Sadilek)
Better error pages (Thanks to Sawyer Blatz)
Custom ETP controls (Thanks to Mihai Carare)
Language picker (Thanks to Mihai Brancescu)
UX, stability improvements (Thanks to David Walsh, Kate Glazko, many others)
And lots of other features!
Working on Pocket story collections, almost done, just some telemetry and metrics stuff left.
Now ready to enable Pocket stories in the UK for 75
Password manager:
Show a dismissed login capture doorhanger when a user edits a password field (before submission)! (off-by-default until some follow-ups are landed)
We no longer consider a login modified if there is a <button> and we fixed tabbing from a field eligible for password generation.
The Fathom team is making progress on rules to identify new-password fields to offer password generation.
about:logins:
Initial support for OS authentication dialogs before accessing credentials is in review.
dthayer has landed the work to write StartupCache’s file in a background thread and helped enable Fast shutdown on Nightly
dthayer has also continued working on improving select dropdown performance
emalysz switched DownloadPlatform to use a low-priority background thread
Florian ensures we avoid running BrowserGlue idle tasks during shutdown
gijs wrote a clang checker for RemoveObserver calls for xpcom-shutdown from inside Observe() and has helped with xperf regressions for the new search service
mconley enabled Base Profiler for Talos startup tests and fixed the about_home_topsites_first_paint scalar probe
mconley has also started to put together a story on egregious start-up times
mconley wrote a patch to collect Telemetry on whether or not Windows-users have Superfetch and Prefetch enabled and using the default settings
Superfetch and Prefetch are optimizations that Windows offers to try to improve application start times.
bigiri has started to de-couple ASRouter from Activity Stream as part of the effort to speed up about:home initialization.
We’re tracking a very nice falloff in our shutdown duration probe on the Nightly channel in the 95th percentile, likely due to dthayer’s shutdown improvement efforts!
Caption: A graph showing a measurement of shutdown times for Nightly users. The Y axis is time to shutdown, and X axis is Nightly build. The graph has a downward dip towards the end.
Removed the loupe view from the tab panel.
Added "show active tab only" checkbox to see the active tab processes and threads only. We are trying to make the UI simpler for web developers, expect more changes soon. (example profile)
Caption: The Firefox Profiler UI showing a thread of execution, and a checkbox that allows the user to only show samples for the currently selected tab. That checkbox is highlighted.
Storage migration for the profiler server is over now. The server was down for a while on Friday and Saturday, but it's up and running again now.
Martin Stransky from RedHat fixed an issue where the Picture-in-Picture player window would shrink after opening on KDE desktops
Karan Sapolia made it so that the keyboard shortcut (Ctrl-Shift-] on Linux and Windows) prioritizes selecting the first playing video in the page, rather than the first video in the markup.
mconley has a patch up to enable usage Telemetry on the release channel
Gijs expanded the Picture-in-Picture event Telemetry to non-Windows platforms as well
mconley has a patch up make double-clicking fullscreen the player window
mstriemer made it so that closing the player window with the “X” button causes the underlying video to pause
We’re hanging around in this Matrix channel now.
Erica has landed the initial patch to start purging cookies and site data from tracking sites that the user hasn’t interacted with for a while. This combats e.g. first-party redirect tracking.
We’re starting to roll out DoH for a percentage of US users.
We’re shipping Feature Policy (allow attribute on iframes) and Permission Delegation with Firefox 74
Paul has started to implement tab-modal prompts in Bug 1615588 - Extend nsIPromptService to support tab modal system prompts (with WIP GIFs)
Henrik implemented Page.getNavigationHistory to allow access to history entries of the current tab, and Page.navigateToHistoryEntry to navigate between those.
Henrik finished off the patch from David Burns for Page.setCookie(s).
Henrik added support for the "clip" argument in Page.captureScreenshot
The Puppeteer project are now running their CI jobs against Firefox Nightly in addition to Chrome
Search
Turning the new configuration on for Nightly users in the next few days. Full roll-out currently scheduled for 76.
Please watch out for regressions, e.g. unexpectedly missing engines, or re-appearing engines.
Address Bar
In the AwesomeBar, the “www.” prefix is now being stripped from URLs in results
Has been enabled in Early Beta 74
Release scheduled for Firefox 75
Many fixes landed and uplifted to stabilize the design and features, in preparation to run a full experience pref-flip experiment in Firefox 74.
Tab can again be used to move through results when there is user typed search string - Bug 1616880
Working on separating about:welcome from about:newtab to improve performance, adding JSWindowActors
Experimenting with loading remote content during first run using Normandy
Bernard helping us with separating ASRouter/Messaging System from New Tab
Launched Chrome Switchers experiment (New users on Windows that use Google Chrome): The onboarding card on about:home/newtab allows the user to start the import wizard
Upgraded to node 10
Starting up “Profile Migration Revamp” initially focusing on new users from Windows Chrome to contextually suggest importing passwords that exist in other browsers
Caption: An email field showing an autocomplete popup offering to import a set of credentials from another installed browser - in this case, Google Chrome.
[mconley] You can send nsIInputStream’s over the message manager / JSWindowActors
Might be an interesting way of avoiding IPC message limits
We don’t implement nsIOutputStream, but if you need to output from process A to process B, construct an nsIInputStream in process A and hand to process B, and have process B consume the stream.
You can send Blobs too
Unsure whether or not we’re okay to use these yet in production code.
[Mardak] looks like eslint parses and passes static class fields (and ?? nullish too, but eslint doesn’t parse ?. optional chaining yet)
This information, including all of the previous updates, are fully available in this doc: https://docs.google.com/a/mozilla.com/document/d/1u9YH3ULNRYg6G-fN-Udkvfkcvg0alJfzi_zIAfFNkL8/edit?usp=sharing
Also note that I'm really just synthesizing and humanizing the stuff that's on the Wiki, which is freely available from here: https://wiki.mozilla.org/Firefox/Meeting, so check that out if you want the source material. It'll also be posted (minus the Below the Fold stuff) to the Nightly blog.
Finally, if there's a Firefox-ish team that you feel isn't being represented here, please let them know about the above meeting so we can get their updates.
Keep on rockin' the free web,
-Mike