Developer Tools Articles
-
Getting lively with Firefox 90
As the summer rolls around for those of us in the northern hemisphere, temperatures are high and unwinding with a cool ice tea is high on the agenda. Isn't it lucky then that Background Update is here for Windows, which means Firefox can update even if it's not running. We can just sit back and relax! Also this release we see a few nice JavaScript additions, including private fields and methods for classes, and the at() method for Array, String and TypedArray global objects. This blog post just provides a set of highlights.
-
Eliminating Data Races in Firefox – A Technical Report
We successfully deployed ThreadSanitizer in the Firefox project to eliminate data races in our remaining C/C++ components. In the process, we found several impactful bugs and can safely say that data races are often underestimated in terms of their impact on program correctness. We recommend that all multithreaded C/C++ projects adopt the ThreadSanitizer tool to enhance code quality.
-
Improving Cross-Browser Testing, Part 2: New Automation Features in Firefox Nightly
It’s clear that WebDriver needs to grow to meet the capabilities of DevTools-based automation. However, that process will take time, and we want more developers to be able to run their automated tests in Firefox today. To that end, we have shipped an experimental implementation of parts of CDP in Firefox Nightly, specifically targeting the use cases of end-to-end testing using Google’s Puppeteer, and the CDP-based features of Selenium 4.
-
Improving Cross-Browser Testing, Part 1: Web Application Testing Today
Testing web applications can be a challenge. At Mozilla, we see that as a call to action. With our commitment to building a better Internet, we want to provide web developers with the tools they need to build great web experiences – including great tools for testing. In this series of posts, we will explore the current web-application testing landscape and explain what Firefox is doing today to allow developers to run more kinds of tests in Firefox.
-
And now for … Firefox 84
As December ushers in the final curtain for this rather eventful year, there is time left for one more Firefox version to be given its wings. Firefox 84 includes some interesting new features including tab order inspection, complex selector support in :not(), the PerformancePaintTiming API, and more!
-
Coming through with Firefox 82
As October ushers in the tail-end of the year, we are pushing Firefox 82 out the door. This time around we finally enable support for the Media Session API, provide some new CSS pseudo-selector behaviours, close some security loopholes involving the Window.name property, and provide inspection for server-sent events in our developer tools.
-
A New Backend for Cranelift, Part 1: Instruction Selection
This post will describe my recent work on Cranelift as part of my day job at Mozilla. In this post, I will set some context and describe the instruction selection problem. In particular, I’ll talk about a revamp to the instruction selector and backend framework in general that we’ve been working on.
-
Firefox 79: The safe return of shared memory, new tooling, and platform updates
Firefox 79 offers a new Promise method, more secure
target=_blank
links, logical assignment operators, tooling improvements for better JavaScript debugging, and many other updates of interest to web developers. In addition, shared memory is back at last, with a safer implementation. -
Firefox 76: Audio worklets and other tricks
Firefox 76 delivers great new features for web platform support, such as Audio Worklets and
Intl
improvements, on the JavaScript side. Also, we’ve added a number of topnotch improvements to Firefox DevTools to make JavaScript debugging and development easier and quicker. -
Engineering code quality in the Firefox browser: A look at our tools and challenges
Here's an insider's look at Firefox's code quality toolchain that's been designed to manage the ongoing development and monthly releases of our desktop browser. This post explores the architecture, challenges, and ongoing evolution of the process for managing code quality and patches for dealing with 21 million lines of code.