Firefox 77 gets devtool update

Firefox 77 gets devtool update

Mozilla has launched  Firefox 77 for Windows, Mac, and Linux. It brings faster JavaScript debugging, optional permissions for extensions and a couple of new web platform features.

Mozilla has been successful at sticking to its 4-week release cadence for Firefox, which is why our coverage of new versions has jumped from 69 to 77. Sorry for the gap but as this release has improvements for JavaScript developers it seemed a good one to look at.

The emphasis through recent releases has been on improved debugging performance and in this release Firefox has seen performance boosts in JavaScript and CSS source maps. Florian Scholz and Harald Kirshner writing on the Mozilla blog, state:

“Some cases of inline source maps improved 10x in load time. More importantly though, we improved reliability for many more source map configurations. We were able to tweak the fallbacks for parsing and mapping, thanks to your reports about specific cases of slightly-incorrect generated source maps. Overall, you should now see projects that just work, that previously failed to load your original CSS and JavaScript/TypeScript/etc code.”

Recognizing that stepping, which is a big part of debugging, can be tricky in that you can easily lose your way and overstep when moving in and out of functions, and between libraries and your own code, Firefox 77 introduces a welcome change, that should make stepping through code execution more intuitive and make it less likely to miss an important line.

“The debugger will now respect the currently selected stack when stepping. This is useful when you’ve stepped into a function call or paused in a library method further down in the stack. Just select the right function in the Call Stack to jump to its currently paused line and continue stepping from there.”

Watchpoints, which were introduced in Firefox 72 to make it easier to understand state changes, have been made easier to use in Firefox 77 with a new option that combines get/set, so any script reference will trigger a pause.

The new release also extends optional permissions for extensions. As the blog post explains this addresses a problem that was introduced with Firefox Quantum:

Since Firefox 57, users see the permissions an extension wants to access during installation or when any new permissions are added during an update. The frequency of these prompts can be overwhelming, and failure to accept a new permission request during an extension’s update can leave users stranded on an old version. We’re making it easier for extension developers to avoid triggering as many prompts by making more permissions available as optional permissions. Optional permissions don’t trigger a permission request upon installation or when they are added to an extension update, and can also be requested at runtime so users see what permissions are being requested in context. 

There are two web platform features introduced in Firefox 77. The firstString.replaceAll can be regarded as the counterpart toString.matchAll which was introduced in Firefox 67 as a more convenient way to iterate over regex result matches. The other, IndexedDB cursor requests  makes it easier to write things like wrapper functions that “upgrade” database features.  

More Information

Share with