Mozilla, Gecko Archive

Version 100 in Chrome and Firefox

Chrome and Firefox will reach version 100 in a couple of months. This has the potential to cause breakage on sites that rely on identifying the browser version to perform business logic. This post covers the timeline of events, the strategies that Chrome and Firefox are taking to mitigate the impact, and how you can help. Just skip 9.

Privacy preserving attribution for advertising

Attribution is how advertisers know if their advertising campaigns are working. Attribution generates metrics that allow advertisers to understand how their advertising campaigns are performing. Related measurement techniques also help publishers understand how they are helping advertisers. Though attribution is crucial to advertising, current attribution practices have terrible privacy properties. For the last few months we have been working with a team from Meta (formerly Facebook) on a new proposal that aims to enable conversion measurement – or attribution – for advertising called Interoperable Private Attribution, or IPA. Mozilla working together with Facebook on a privacy feature. How desperate is Mozilla, exactly?

Mozilla has defeated Microsoft’s default browser protections in Windows

In version 91 of Firefox, released on August 10th, Mozilla has reverse engineered the way Microsoft sets Edge as default in Windows 10, and enabled Firefox to quickly make itself the default. Before this change, Firefox users would be sent to the Settings part of Windows 10 to then have to select Firefox as a default browser and ignore Microsoft’s plea to keep Edge. Mozilla’s reverse engineering means you can now set Firefox as the default from within the browser, and it does all the work in the background with no additional prompts. This circumvents Microsoft’s anti-hijacking protections that the company built into Windows 10 to ensure malware couldn’t hijack default apps. Microsoft tells us this is not supported in Windows. Sadly, this does not work on Windows 11, where Microsoft is now forcing users to change the default handler for every individual file type a browser might use.

Progress on the OpenPOWER SpiderMonkey JIT

This may not look like much, but it demonstrates that the current version of the OpenPOWER JavaScript JIT for Firefox can emit machine language instructions correctly (mostly — still more codegen bugs to shake out), handles the instruction cache correctly, handles ABI-compliant calls into the SpiderMonkey VM correctly (the IonMonkey JIT is not ABI-compliant except at those edges), and enters and exits routines without making a mess of the stack. Much of the code originates from TenFourFox’s “IonPower” 32-bit PowerPC JIT, though obviously greatly expanded, and there is still ongoing work to make sure it is properly 64-bit aware and takes advantage of instructions available in later versions of the Power ISA. (No more spills to the stack to convert floating point, for example. Yay for VSX!) Good progress being made on porting Firefox’ JIT to POWER. I’m forced to use Chromium for now, which is unpleasant.

Firefox 89 released with new UI

Say hello to a fresh new Firefox, designed to get you where you want to go even faster. We’ve redesigned and modernized the core experience to be cleaner, more inviting, and easier to use. I was all set to dislike the new design, but honestly, on Linux – both on Gtk+ and KDE desktops, it looks and feels… Nice? I got used to it in an instant, and everything definitely looks cleaner, tighter, and fresher, without really making any massive changes or doing any truly drastic user interface overhauls.

Improving Firefox stability on Linux

Roughly a year ago at Mozilla we started an effort to improve Firefox stability on Linux. This effort quickly became an example of good synergies between FOSS projects. Just a nice feelgood read about collaboration in the open source world – and if you use Firefox on Linux, like I do, this is already benefiting you greatly.

Mozilla plans to remove the Compact Density option from Firefox’s Customize menu

The organization plans to remove the Compact option from the customize menu and migrate users who use Compact to the Normal mode once the change happens. The preference browser.uidensity will remain for the time being, but it is possible that it will get removed at one point in time as well or that the compact mode value won’t change it anymore at the very least. This is a terrible decision. I obviously use the compact layout everywhere, because not only does it look better and use less space, it also doesn’t have that insanely oversized back button. This change makes absolutely no sense to me, and I can’t wait until we get a hack to bring it back.

Porting Firefox to Apple Silicon

The release of Apple Silicon-based Macs at the end of last year generated a flurry of news coverage and some surprises at the machine’s performance. This post details some background information on the experience of porting Firefox to run natively on these CPUs. We’ll start with some background on the Mac transition and give an overview of Firefox internals that needed to know about the new architecture, before moving on to the concept of Universal Binaries. We’ll then explain how DRM/EME works on the new platform, talk about our experience with macOS Big Sur, and discuss various updater problems we had to deal with. We’ll conclude with the release and an overview of various other improvements that are in the pipeline. These kinds of articles are very valuable, since Apple isn’t always forthcoming with documentation of specifications, and the new M1-based Macs are no exception. Big, massive projects like Firefox sharing their experiences can be quite useful to other developers.

Servo project has a new home

The Servo Project is excited to announce that it has found a new home with the Linux Foundation. Servo was incubated inside Mozilla, and served as the proof that important web components such as CSS and rendering could be implemented in Rust, with all its safety, concurrency and speed. Now it’s time for Servo to leave the nest! Code for this independent web engine is out on Github.

Firefox 82 on POWER goes PGO

But let’s not bury the lede here: after several days of screaming, ranting and scaring the cat with various failures, this blog post is finally being typed in a fully profile-guided and link-time optimized Firefox 82 tuned for POWER9 little-endian. Although it multiplies compile time by nearly a factor of 3 and the build process intermittently can consume a terrifying amount of memory, the PGO-LTO build is roughly 25% faster than the LTO-only build, which was already 4% faster than the “baseline” -O3 -mcpu=power9 build. That’s worth an 84-minute coffee break! (-j24 on a dual-8 Talos II , 64GB RAM.) This whole post is a ringing endorsement of Firefox and why the technology landscape – especially the alternative operating systems and hardware platforms landscape – needs Firefox. There really isn’t any other viable option. Chromium? Chromium is open source, but a lot of its important functionality is hidden behind a needlessly complex process of setting up and registering API keys that’s about as intuitive as designing an atomic bomb from scratch on a deserted island. On top of that, Chromium is still a Google project, and as Google’s reluctance to support important features on Linux shows, Chromium is designed for Google’s interests – nobody else’s. WebKit? WebKit requires developers to build an entire web browser around it from scratch. While that can lead to awesome applications, it also means replicating every single bit of functionality users have come to expect from their browsers. Things like bookmark and tab sync, extensions, and so on – all have to be built and maintained form scratch. Firefox is the only complete package someone can port to another platform and end up with a complete browser package. Sure, it’s definitely not an easy undertaking to port a program as complex as Firefox, but in a lot of cases, it’s probably easier than porting WebKit/Blink and building a browser around it from scratch.

Firefox Nightly flips on new JIT “Warp” code for greater JavaScript performance

Warp aims to improve the Firefox JavaScript performance by reducing the amount of internal type information that is tracked along with other optimizations. Warp can lead to greater responsiveness and faster page load speed. Numbers cited by Warm developers are normally in the 5~15% range. As of yesterday, Firefox Nightly now enables Warp by default. The enabling in Firefox Nightly is seeing 20% faster load times for Win64 Google Docs, 13% faster for the Android Reddit SpeedIndex, 18% faster for PDFPaint, and other measurable improvements elsewhere. That’s a big improvement, and sadly, due to the state of the modern web, a very, very welcome one.

Why Did Mozilla Remove XUL Add-ons?

During the past few days, I’ve been chatting with Firefox users, trying to separate fact from rumor regarding the consequences of the August 2020 Mozilla layoffs. One of the topics that came back a few times was the removal of XUL-based add-ons during the move to Firefox Quantum. I was very surprised to see that, years after it happened, some community members still felt hurt by this choice. And then, as someone pointed out on reddit, I realized that we still haven’t taken the time to explain in-depth why we had no choice but to remove XUL-based add-ons. So, if you’re ready for a dive into some of the internals of add-ons and Gecko, I’d like to take this opportunity to try and give you a bit more detail. David Teller’s been at Mozilla for nearly 10 years, so he knows what he’s talking about. A good and detailed explanation of why Mozilla pretty much had no choice.

Sources: Mozilla extends its Google search deal

Mozilla and Google have extended their current search deal for another three years, multiple sources have told ZDNet. The new search deal will ensure Google remains the default search engine provider inside the Firefox browser until 2023 at an estimated price tag of around $400 million to $450 million per year. Mozilla officials are expected to announce the search deal’s extension later this fall, in November, when the organization is scheduled to disclose its 2019 financial figures. This is definitely good news in terms of Firefox’ continued existence, but the uncertainty every time the deal is about to run out illustrates once again that this situation is entirely untenable. I have no idea how to solve this problem, but my wildest idea is large open source projects like major Linux distributions, GNOME, KDE, and so on, taking an active interest in investing manpower and other resources into ensuring Firefox remains the independent browser for Linux and BSD users. God forbid I have to use Chrome.

Mozilla fires 250 employees in restructuring

Today we announced a significant restructuring of Mozilla Corporation. This will strengthen our ability to build and invest in products and services that will give people alternatives to conventional Big Tech. Sadly, the changes also include a significant reduction in our workforce by approximately 250 people. These are individuals of exceptional professional and personal caliber who have made outstanding contributions to who we are today. To each of them, I extend my heartfelt thanks and deepest regrets that we have come to this point. This is a humbling recognition of the realities we face, and what is needed to overcome them. I feel for the 250 laid off employees – that always sucks and I hope they will be able to find a new job quickly. That being said, I have no idea what to make of this corporate speak word soup, and it’s hard to parse what, exactly, is going to change from here on out. There’s nothing concrete here, no announcements, no goals or targets – just vague evergreen wording. There’s hints that the deal with Google – wherein Google contributes about 90% of Mozilla’s revenue to be the default search engine in Firefox – might expire and not be renewed at the end of this year, which would effectively cut all of Mozilla’s revenue off. That will be an immense shock, and it could easily spell the end of the Mozilla Foundation in its current form – and thus the continued viability of Firefox.

SeaMonkey 2.53.1 released

The SeaMonkey project is a community effort to develop the SeaMonkey Internet Application Suite (see below). Such a software suite was previously made popular by Netscape and Mozilla, and the SeaMonkey project continues to develop and deliver high-quality updates to this concept. Containing an Internet browser, email & newsgroup client with an included web feed reader, HTML editor, IRC chat and web development tools, SeaMonkey is sure to appeal to advanced users, web developers and corporate users. SeaMonkey has been around for a while, and I’m sure many of you are familiar with it. It’s effectively a modern continuation of the more classic Mozilla browser, the Mozilla Application Suite, which also included a news reader, email client, and so on. Not exactly the kind of thing most people want to use today, but there must still be a place for it in today’s era. That being said, the project just released its latest new version, 2.53.1, so I figured I’d highlight it here.

Firefox enables DNS over HTTPS by default for US users

Today, Firefox began the rollout of encrypted DNS over HTTPS (DoH) by default for US-based users. The rollout will continue over the next few weeks to confirm no major issues are discovered as this new protocol is enabled for Firefox’s US-based users. At the creation of the internet, these kinds of threats to people’s privacy and security were known, but not being exploited yet. Today, we know that unencrypted DNS is not only vulnerable to spying but is being exploited, and so we are helping the internet to make the shift to more secure alternatives. We do this by performing DNS lookups in an encrypted HTTPS connection. This helps hide your browsing history from attackers on the network, helps prevent data collection by third parties on the network that ties your computer to websites you visit. We can only hope other browsers will follow soon. This is a very important and great improvement.

Thunderbird’s new home

There was a time when Thunderbird’s future was uncertain, and it was unclear what was going to happen to the project after it was decided Mozilla Corporation would no longer support it. But in recent years donations from Thunderbird users have allowed the project to grow and flourish organically within the Mozilla Foundation. Now, to ensure future operational success, following months of planning, we are forging a new path forward. Moving to MZLA Technologies Corporation will not only allow the Thunderbird project more flexibility and agility, but will also allow us to explore offering our users products and services that were not possible under the Mozilla Foundation. The move will allow the project to collect revenue through partnerships and non-charitable donations, which in turn can be used to cover the costs of new products and services. Thunderbird’s focus isn’t going to change. We remain committed to creating amazing, open source technology focused on open standards, user privacy, and productive communication. The Thunderbird Council continues to steward the project, and the team guiding Thunderbird’s development remains the same. I’m glad Thunderbird and its users found a way forward for the application, but I’ve never been a fan of these complex, overloaded e-mail/groupware applications like Thunderbird, Evolution, and Kmail. I use Geary because it focuses on one thing and does it well – e-mail – and it doesn’t try to also do all sorts of stuff I don’t want an e-mail client to do. As a side note, KDE could really use a Geary-like simple e-mail client – because Kmail is not in a great state.