20 Aug 2026
Planet Mozilla
Tom Ritter: webaudio fingerprinting on alibaba
There's a popular post going around about Alibaba doing WebAudio fingerprinting and in the process, mucking around with the author's Bluetooth headphones. Here's the tl;dr: browser fingerprinting is a far-too-pervasive method of tracking users across the web, but at least for WebAudio specifically, it's not very effective. Firefox has largely eliminated this fingerprinting vector.
I work on Firefox. Chrome, Brave, Safari probably have defenses against this. I'm pretty sure Chrome's WebAudio code was made approximately constant (like ours) many years ago. It probably still leaks CPU architecture though.
I don't fully agree with the adage "given enough eyeballs, all bugs are shallow" - I think a more true one might be "given enough victims, your attack code is going to change something that makes someone notice". And that's exactly what happened with... sorry, wrong link. That's exactly what happened with Alibaba's fingerprinting code.
If you want to test Alibaba's WebAudio fingerprint, I had claude extract it into a standalone page. My value is sha256:9a388c0dd04cfdc54314f9d961c7e2d247b972067e28d1cea76bd6060cf1392e, and the other value we saw in an internal survey was sha256:16d3191880ce01f726015ec6a1f9a072a81ebd04bf489098d4685d1d1c0b2711.
WebAudio Fingerprinting in Firefox
We made the WebAudio constant in Firefox 118 as part of our initial round of Fingerprinting Protection features. This eliminated most of the differences.

99.24% of users belong to one of three values, and .76% of users had that data collection point fail (a value of zero.) So virtually all users have one of these three values but why are there three values??? Why isn't there one?? Well this is why we collected this telemetry - to ensure we really had made things constant the way we thought we had, and if we hadn't, figure out why and fix it.
The improvements we put into 118 eliminated a lot of differences and I wish I had a graph I could show you of what it looked like before (but I don't.) But what about these remaining three buckets? We were able to figure out that the differences between these are CPU-level differences, which is not surprising given the math operations of audio processing. Specifically one value comes from (all) x86 CPUs and x64 CPUs that lack fused multiply-add instructions, one value from x64 with FMA, and one value from CPUs with the NEON instruction set (ARM).
We followed up on that effort to collapse these buckets into one another. Bug 2036977 collapses the x64 (with FMA3) into the x86/x64 (without FMA3) bucket. Bug 2040494 is on file to collapse the remaining bucket into the NEON bucket but I haven't worked on it in a while because it's just not as high a priority as larger improvements we can make like Sanitizing the WebGL Renderer and Vendor (something I talked a bit about a few months ago).
Because if you've read this far you surely care about the rest of the graph also. There is also the long-tail of 23 other values belonging to 48 other users. This is very unfortunate, as it makes these users completely unique, but it is also not terribly unusual - computers are weird and these results could have been caused by bad RAM, a CPU bug, or possibly some crazy architecture (LoongArch??).
But at the end of the day, WebAudio fingerprinting is nearly useless. I don't expect browser fingerprinting to disappear from websites entirely (unless some regulatory action occurs, fingers crossed) - it's still going to be effective against a majority of users on the web, but at least for privacy focused browsers, it should be wildly less effective.
20 Aug 2026 7:56pm GMT
The Mozilla Blog: A New Framework for Open Source AI
Open or closed AI isn't a fringe question anymore; it's a live policy debate, with real consequences for who gets to build, audit, and compete in the AI ecosystem. But as that debate plays out in Washington, Brussels, and beyond, the harder questions are still very much up for discussion. What does meaningful openness actually require? Where should the guardrails sit? And who gets a say in setting them?
That's exactly the gap a group of us set out to close two years ago.
Back in 2024, Mozilla and the Columbia Institute of Global Politics brought together more than 40 researchers, builders, and policy experts for the Columbia Convening on Openness and AI. The goal was simple to state, but hard to do: figure out what "open" actually means once you're talking about foundational models rather than traditional software, and build a shared vocabulary that researchers, developers, policymakers, and civil society could all work from.
The convening was the start of a years-long effort to turn a room full of perspectives on openness into something durable and useful for developers, builders, and policymakers alike. Recently, that effort reached a new milestone: Communications of the ACM published "Unpacking Open Source AI: Toward a Framework for Openness in Foundation Models," which I co-authored alongside a host of other allies spanning academia, industry, and civil society.
The paper outlines a framework that does something the open source AI debate badly needs. It stops treating "open" as a single switch you flip on or off. Instead, it breaks the AI stack down into its component parts - data, code, model weights, documentation, and more - and looks at how openness at each layer shapes who actually gets to inspect, use, and build on a system. That kind of specificity matters. A lot of the current policy debate treats open source AI as a monolith, when in reality the details of what gets shared (and how) are what determine whether openness delivers on its promise of safety, competition, and accountability.
A few of the framework's ideas are worth pulling out. First, it treats openness as a gradient rather than a binary. A system can be open on weights while remaining closed on training data, or open on code while offering little documentation on how it was evaluated. The framework offers language to describe that mix precisely, instead of lumping it under one vague label. Second, it argues that safety can't be assessed at the model level alone: what matters just as much is the surrounding system - the deployment environment, the safeguards, the moderation layers, and governance structures. That's because a model's real-world risk profile is shaped by all of it together, not by the weights in isolation. Critically, the framework deliberately stops short of prescribing one "correct" level of openness for every system. Instead, it gives developers, researchers, and regulators a common vocabulary to make and evaluate those tradeoffs on a case-by-case basis.
It's worth pausing on who's behind this work. Scroll through the author list, and you'll find a genuine cross-section of the individuals and organizations contributing to moving the development of open systems forward. It's a collection of people who've spent years arguing, in good faith and often across real disagreements, that open approaches can be a foundation for safer, more democratic, more accountable AI. That's the same spirit that drove the original convening, and it's what makes this paper a genuinely important milestone for our mission to make AI systems accessible to the many, rather than the few.
You can read the full paper here.
The post A New Framework for Open Source AI appeared first on The Mozilla Blog.
20 Aug 2026 3:57pm GMT
Firefox Add-on Reviews: Extension starter pack
You've probably heard about "ad blockers," "tab managers," "anti-trackers" or any number of browser customization tools commonly known as extensions. And maybe you're intrigued to try one, but you've never installed an extension before and the whole notion just seems a bit vague.
Let's demystify extensions.
An extension is simply an app that runs on a browser like Firefox. From serious productivity and privacy enhancing features to fun stuff like changing the way the web looks and feels, extensions give you the power to completely personalize your browsing experience.
Addons.mozilla.org (AMO) is a discovery site that hosts thousands of independently developed Firefox extensions. It's a vast and eclectic ecosystem of features, so we've hand-picked a small collection of great extensions to get you started…
I've always wanted an ad blocker!
uBlock Origin
Works beautifully "right out of the box." Just add it to Firefox and uBlock Origin will automatically start blocking all types of advertising - display ads, banners, video pre-rolls, pop-ups - you name it.
Of course, if you prefer deeper content blocking customization, uBlock Origin allows for fine control as well, like the ability to import your own custom block filters or access a data display that shows how much of a web page was blocked by the extension. More than just an ad blocker, uBlock Origin also effectively thwarts some websites that may be infected with malware.
For more insights about this excellent ad blocker, please see uBlock Origin - everything you need to know about the ad blocker, or to explore even more ad blocker options, check out What's the best ad blocker for you?
I'm concerned about my privacy and tracking around the web
Privacy Badger
The flagship anti-tracking extension from privacy proponents at the Electronic Frontier Foundation, Privacy Badger is programmed to look for tracking heuristics (i.e. specific actions that indicate someone is trying to track you).
Zero set up required. Just install Privacy Badger and it will automatically search for third-party cookies, HTML5 local storage "supercookies," canvas fingerprinting, and other sneaky tracking methods.
Consent-O-Matic
Not only will Consent-O-Matic automatically handle pop-up data consent forms (per GDPR regulations), but it's brilliantly designed to interpret the often intentionally confusing language of consent pop-ups trying to trick you into agreeing to invasive tracking.
Developed by internet privacy researchers at Aarhus University in Denmark who grew sick of seeing so many deceptive consent pop-ups, Consent-O-Matic's decision-making logic is built upon studying hundreds of pop-ups and identifying duplicitous patterns. So using this extension not only gives you a great ally in the fight against intrusive tracking, but you're spared the annoyance of constantly clicking consent forms all over the internet.
I need an easier way to translate languages
Simple Translate
Do you do a lot of language translations on the web? If so, it's a hassle always copying text and navigating away from the page you're on just to translate a word or phrase. Simple Translate solves this problem by giving you the power to perform translations right there on the page.
Just highlight the text you want translated and right-click to get instant translations in a handy pop-up display, so you never have to leave the page again.
YouTube your way
Enhancer for YouTube
Despite offering dozens of creative customization features, Enhancer for YouTube is easy to grasp and gives you a variety of ways to radically alter YouTube functionality.
Once the extension is installed you'll find an additional set of controls just beneath YouTube's video player (you can even select the extension features you want to appear in the control bar).
Key features include…
- Customize video player size
- Change YouTube's look with a dark theme
- Volume boost
- Ad blocking (with ability to allow ads from channels you choose to support)
- One-click screenshots
- Change playback speed
- High-def default video quality
I'm drowning in browser tabs! Send help!
OneTab
You've got an overwhelming number of open tabs. You can't close them. You need them. But you can't organize them all right now either. You're too busy. What to do?!
If you have OneTab on Firefox you just click the toolbar button and suddenly all those open tabs become a clean list of text links listed on a single page. Ahhh serenity.
Not only will you create browser breathing room for yourself, but with all those previously open tabs now closed and converted to text links, you've also freed up a bunch of CPU and memory, which should improve browser speed and performance.
If you've never installed a browser extension before, we hope you found something here that piques your interest to try. To continue exploring ways to personalize Firefox through the power of extensions, please see our collection of 100+ Recommended Extensions.
20 Aug 2026 1:16am GMT
Firefox Add-on Reviews: YouTube your way — browser extensions put you in charge of your video experience
YouTube wants you to experience YouTube in prescribed ways. But with the right browser extension, you're free to alter YouTube to taste. Change the way the site looks, behaves, and delivers your favorite videos.
Enhancer for YouTube
With dozens of customization features, Enhancer for YouTube has the power to dramatically reorient the way you watch videos.
While a bunch of customization options may seem overwhelming, Enhancer for YouTube actually makes it very simple to navigate settings and select just your favorite features. You can even choose which of your preferred features will display in the extension's easy access interface that appears just beneath the video player.
Key features…
- Customize video player size
- Change YouTube's look with a dark theme
- Volume booster
- Ad blocking (with ability to whitelist channels you OK for ads)
- Take quick screenshots of videos
- Change playback speed
- Set default video quality from low to high def
- Shortcut configuration
Return YouTube Dislike
Do you like the Dislike? YouTube removed the display that reveals the number of thumbs-down Dislikes a video has, but with Return YouTube Dislike you can bring back the brutal truth.
"Does exactly what the name suggests. Can't see myself without this extension. Seriously, bad move on YouTube for removing such a vital tool."
Firefox user OFG
"i have never smashed 5 stars faster."
Firefox user 12918016
YouTube High Definition
Though its primary function is to automatically play all YouTube videos in their highest possible resolution, YouTube High Definition has a few other fine features to offer.
In addition to automatic HD, YouTube High Definition can…
- Customize video player size
- HD support for clips embedded on external sites
- Specify your ideal resolution (4k - 144p)
- Set a preferred volume level
- Also automatically plays the highest quality audio
YouTube NonStop
So simple. So awesome. YouTube NonStop remedies the headache of interrupting your music with that awful "Video paused. Continue watching?" message.
Works on YouTube and YouTube Music. Now you're free to navigate away from the YouTube tab for as long as you like and never worry about music interruption again.
YouTube Screenshot Button
If you take a lot of screenshots on YouTube, then the aptly titled YouTube Screenshot Button is worth your time.
You'll find a "Screenshot" button conveniently located on the control panel of videos, or at the top of the screen on Shorts (or you can use custom keystrokes), so it's always easy to snap a quick shot. Set preferences to automatically download screenshots as JPEG or PNG files.
Unhook: Remove YouTube Recommended Videos & Comments
Instant serenity for YouTube! Unhook strips away unwanted distractions like the promotional sidebar, end-screen suggestions, trending tab, and much more.
More than two dozen customization options make this an essential extension for anyone seeking escape from YouTube rabbit holes. You can even hide notifications and live chat boxes.
"This is the best extension to control YouTube usage, and not let YouTube control you."
Firefox user Shubham Mandiya
PocketTube
If you subscribe to a lot of YouTube channels PocketTube is a fantastic way to organize all your subscriptions by themed collections.
Group your channel collections by subject, like "Sports," "Cooking," "Cat videos," etc. Other key features include…
- Add custom icons to easily identify channel collections
- Customize your feed so you just see videos you haven't watched yet and prioritize videos from certain channels
- Integrates seamlessly with YouTube homepage
- Sync collections across Firefox/Android/iOS using Google Drive and Chrome Profiler
AdBlocker for YouTube
It's not just you who's noticed a lot more ads lately. Regain control with AdBlocker for YouTube.
The extension very simply and effectively removes both video and display ads from YouTube. Period. Enjoy a faster, more focused YouTube.
SponsorBlock
It's a terrible experience when you're enjoying a video or music on YouTube and you're suddenly interrupted by a blaring ad. SponsorBlock solves this problem in a highly effective and original way.
Leveraging the power of crowd sourced information to locate where - precisely - interruptive sponsored segments appear in videos, SponsorBlock learns where to automatically skip sponsored segments with its ever growing database of videos. You can also participate in the project by reporting sponsored segments whenever you encounter them (it's easy to report right there on the video page with the extension).
SponsorBlock can also learn to skip non-music portions of music videos and intros/outros, as well. If you'd like a deeper dive of SponsorBlock we profiled its developer and open source project on Mozilla Distilled.
We hope one of these extensions enhances the way you enjoy YouTube. Feel free to explore more great media extensions on addons.mozilla.org.
20 Aug 2026 1:10am GMT
The Rust Programming Language Blog: Supply chain attack on arrayref
What happened
On 2026-08-20 at 7:15 UTC we got a report that the proc-macro1 crate was malicious.
The Rust Security Response Team verified this to be the case: the crate had a build script that was downloading a malicious payload.
This crate proc-macro1 and others like it (proc-macro-en, aovine, arone, aronenao, tinymember) have been deleted.
Furthermore, we discovered that the popular arrayref crate had recently been republished and made to depend on this crate, with the most recent versions yanked. We have removed the malicious version and unyanked the maliciously-yanked versions. Other crates by that author (internment, append-only-vec) were also affected so we have done the same for those, and locked the account as a precaution. We do not believe the author of arrayref to be acting maliciously, but their computer or credentials are likely compromised, and we are attempting to contact them.
What you need to do
We recommend you check your local dependencies to ensure these crates were not pulled in. Here are the malicious versions that we deleted from crates.io:
append-only-vec@0.1.9: published at2026-08-20T07:37:49Z, deleted at2026-08-20T09:25:24Z. Online for 107 minutes.arrayref@0.3.10: published at2026-08-20T07:15:00Z, deleted at2026-08-20T08:41:40Z. Online for 86 minutes.internment@0.8.7: published at2026-08-20T07:34:07Z, deleted at2026-08-20T09:04:11Z. Online for 90 minutes.proc-macro1,proc-macro-en,aovine,arone,aronenao,tinymember(any versions).
You can quickly check if these crates have been used locally by going through ~/.cargo/registry/cache with this command:
find ~/.cargo/registry/cache -type f \( \
-name 'append-only-vec-0.1.9.crate' -o \
-name 'arrayref-0.3.10.crate' -o \
-name 'internment-0.8.7.crate' -o \
-name 'proc-macro1-*.crate' -o \
-name 'proc-macro-en-*.crate' -o \
-name 'aovine-*.crate' -o \
-name 'arone-*.crate' -o \
-name 'aronenao-*.crate' -o \
-name 'tinymember-*.crate' \
\) -print
Thanks
We'd like to thank the Research Team at Nextron Systems GmbH for initially discovering this and reporting it to us. We'd also like to thank Emily Albini, Manish Goregaokar, Marco Ieni, Tobias Bieniek, Ubiratan Soares, and Walter Pearce for participating in the response here.
20 Aug 2026 12:00am GMT
The Rust Programming Language Blog: Announcing Rust 1.98.0
The Rust team is happy to announce a new version of Rust, 1.98.0. Rust is a programming language empowering everyone to build reliable and efficient software.
If you have a previous version of Rust installed via rustup, you can get 1.98.0 with:
$ rustup update stable
If you don't have it already, you can get rustup from the appropriate page on our website, and check out the detailed release notes for 1.98.0.
If you'd like to help us out by testing future releases, you might consider updating locally to use the beta channel (rustup default beta) or the nightly channel (rustup default nightly). Please report any bugs you might come across!
What's in 1.98.0 stable
Algebraic floating-point methods
The floating-point types f32 and f64 now have "algebraic" methods for addition, subtraction, multiplication, division, and remainder. These allow optimizations on these operations using the algebraic properties of real numbers, even though these properties do not hold with the limitations of floating-point representations. The exact set of optimizations is not specified, but may be similar to the kind of optimization you would see with the -ffast-math option in other languages.
For example, floating-point addition is not associative, so a sum like a + b + c + d must be evaluated in the left-associative order in which it is parsed, like ((a + b) + c) + d. If you write the same sum as a chain of algebraic_add calls, then the compiler is free to reorder it, perhaps like (a + b) + (c + d) to evaluate the partial sums simultaneously. Broader loop-vectorization is often enabled by using these algebraic methods as well.
These methods are non-deterministic, since the compiler is free to choose different optimizations, but they never cause undefined behavior. See the library documentation and the original API change proposal for more details.
Buffered integer formatting
All of the primitive integer types now have a format_into method that takes a &mut NumBuffer<Self> parameter, which is a buffer that is large enough to hold the decimal format of any value of that type. The buffer itself is opaque, but the method returns the formatted &str with a lifetime borrowed from that buffer.
This method also bypasses much of the dynamic dispatch that you would get with buffered write! formatting, which can be a boon to performance. The itoa-benchmark repo now shows that format_into performs similarly to itoa itself, so this could serve as a standard replacement for that dependency and others like it.
Fix interaction between ManuallyDrop and Box
Prior to Rust 1.96.0, there was a bug in the Rust compiler, which made the following code undefined behavior:
let mut x = ManuallyDrop::new(Box::new(1));
unsafe { ManuallyDrop::drop(&mut x) };
let x = x; // UB!
This is because the compiler considers it undefined behavior to move a Box that has been dropped (deallocated), and ManuallyDrop used to propagate that, such that moving ManuallyDrop<Box<_>> where the box has been dropped would also be considered UB.
In Rust 1.96.0 we fixed this, so this code was no longer UB. In this release we have updated the ManuallyDrop documentation, providing a stable guarantee that this code will continue to not be UB in the future. See ManuallyDrop docs and the related RFC 3336 for more information.
Stabilized APIs
str::substr_range[T]::subslice_rangecore::fmt::NumBuffer<{integer}>::format_intoSend/Sync for std::process::CommandArgs{fN}::algebraic_add{fN}::algebraic_sub{fN}::algebraic_mul{fN}::algebraic_div{fN}::algebraic_remNonZero<{integer}>::from_str_radixString::from_utf16leString::from_utf16le_lossyString::from_utf16beString::from_utf16be_lossy[T]::strip_circumfixstr::strip_circumfixAtomic<T>::from_mutAtomic<T>::get_mut_sliceAtomic<T>::from_mut_slicestd::range::legacy
Other changes
Check out everything that changed in Rust, Cargo, and Clippy.
Contributors to 1.98.0
Many people came together to create Rust 1.98.0. We couldn't have done it without all of you. Thanks!
20 Aug 2026 12:00am GMT
19 Aug 2026
Planet Mozilla
Support.Mozilla.Org: Firefox new release cadence and what to expect
Some of you may have heard about this change from the announcement the team shared in early July, but Firefox is moving to a two-week release cycle. The first release on the new cadence is Firefox 155 on September 1, 2026, two weeks earlier than the originally planned September 15 release.
Why this is happening
If you've been following recent Firefox releases, you may have noticed that we've shipped multiple dot releases for several versions (up to six for Firefox 152). This new release cadence is designed to get bug fixes and completed features into users' hands sooner, while making the release process more predictable.
It's important to note that this doesn't mean Firefox will ship twice as many features. Instead, we'll be releasing updates more frequently, using a two-week rhythm instead of the current four-week cadence. For contributors, the biggest benefit is predictability: rather than waiting for an unpredictable series of dot releases, we'll have a more consistent release schedule to plan around.
That said, it doesn't mean dot releases will disappear entirely. They may still happen when needed, albeit not as often.
Here's what to expect, how we're preparing, and how you can help.
What it means for SUMO
Community Forum
On a typical Firefox release, we see an average of 30% increase in incoming support questions during the first 10 days. Under the new two-week release cadence, we expect these waves of questions will arrive more frequently.
The good news is that we've observed a consistent pattern after each release. Most questions fall into a handful of common categories, including UI changes ("Where did this go?"), lost data after updating, and crashes. We expect to see the same types of questions, just on a more frequent schedule, which gives us an opportunity to prepare ahead of each release.
Knowledge Base & Localization
A faster release cadence also means a faster content cycle. We expect that content requests will arrive on a more distributed timeline instead of every 4 weeks. But of course, this will also have a downstream impact on localization, as new and updated KB articles become available for translation more frequently. We recognize the additional pressure this could put on localization communities, and we'll be monitoring the transition closely to make sure we're mindful of contributor capacity.
Release preparation
We'll be preparing a release wiki page every two weeks instead of every four. For now, our monthly Community Call will remain on its existing monthly schedule, though we'll revisit that if the new release cadence creates a need for more frequent community updates.
How we're preparing and how you can help
Here's what we're doing:
- Community Forum: We'll be adding and updating canned responses related to the most common post-release questions, including UI changes, lost data after updating, crashes, and other recurring issues. We'll also continue to prepare the release wiki before each Firefox release so you'll know what's changing and what to expect.
- Knowledge Base: The CX team is updating the Bugzilla content request template and collaborating with the product folks to make it easier for them to submit content requests and provide the information needed to create the content. We've also introduced a sumo-contributors keyword in Bugzilla to categorize requests that are open for contributors, making them easier to find and track.
- Localization: We know the SUMO localization dashboard doesn't currently have a priority indicator, so please use the release wiki as a guide to identify which content may need attention first. We'll also explore ways to provide better visibility into upcoming content changes, giving localization communities more time to plan their work around the new release cadence.
Here's how you can help:
- Be extra active during the first 10 days after each release. That's when we see the biggest wave of support questions, and your contributions have the greatest impact.
- Use our common forum responses. They'll help you reply more quickly and consistently. If you spot opportunities for improvement, please let us know in this thread! Your feedback will help make them even better for future releases.
- Get involved in the KB content request process. With content requests arriving more frequently, we'll need more contributor participation to help create, update, and review support content. Keep an eye on Bugzilla requests tagged with sumo-contributors for opportunities to get involved.
- Keep an eye on the release calendar for localization work. Localization work will likely arrive on a more distributed schedule rather than being concentrated every four weeks. Following the release calendar can help you anticipate when new or updated content may be ready for localization. But of course, be sure to contribute at a pace that works for you.
Looking after each other
We also want to acknowledge that contributor burnout is a real risk when the quieter periods between releases become shorter. We'll be monitoring the transition closely and adjusting as we learn. Most importantly, you should never feel like you have to be "on" all the time. Every contribution, no matter how big or small, makes a difference.
The first major test of this new cadence will likely come with Firefox 157, when Project Nova is expected to roll out more broadly. We'll treat that release as an opportunity to learn what works, identify where we need to improve, and fine-tune our approach together.
Thank you for everything you do to support Firefox users. This transition is only possible because of our contributor community. If you have any questions, concerns, or ideas, we'd love to hear them. Join our Community Call where we'll also discuss more about this change.
19 Aug 2026 4:07pm GMT
This Week In Rust: This Week in Rust 665
Hello and welcome to another issue of This Week in Rust! Rust is a programming language empowering everyone to build reliable and efficient software. This is a weekly summary of its progress and community. Want something mentioned? Tag us at @thisweekinrust.bsky.social on Bluesky or @ThisWeekinRust on mastodon.social, or send us a pull request. Want to get involved? We love contributions.
This Week in Rust is openly developed on GitHub and archives can be viewed at this-week-in-rust.org. If you find any errors in this week's issue, please submit a PR.
Want TWIR in your inbox? Subscribe here.
Updates from Rust Community
Official
Newsletters
Project/Tooling Updates
Observations/Thoughts
- From Go to Rust
- What Zig felt like, coming from Rust
- I want extern "fil-c"
- Four levels of in-place initialization
- Protecting the Rust standard library from accidental breakage
- Zero-copy wgpu rendering inside an Electron app
- The Lint That Would Have Caught It Is Off by Default
- [video] [series] Implementing State Machines (Part 1)
Rust Walkthroughs
Research
Miscellaneous
Crate of the Week
This week's crate is tokio_with_wasm, a crate that lets a single tokio codebase run both natively and in web browsers.
Thanks to Kim Dong-Hyun for the self-suggestion!
Please submit your suggestions and votes for next week!
Calls for Testing
An important step for RFC implementation is for people to experiment with the implementation and give feedback, especially before stabilization.
If you are a feature implementer and would like your RFC to appear in this list, add a call-for-testing label to your RFC along with a comment providing testing instructions and/or guidance on which aspect(s) of the feature need testing.
No calls for testing were issued this week by Rust, Rustup or Rust language RFCs.
Let us know if you would like your feature to be tracked as a part of this list.
Call for Participation; projects and speakers
CFP - Projects
Always wanted to contribute to open-source projects but did not know where to start? Every week we highlight some tasks from the Rust community for you to pick and get started!
Some of these tasks may also have mentors available, visit the task page for more information.
- sysknife - Export the audit chain rows, not just the verify verdict
- sysknife - Expose the read-only actions as MCP tools without exposing AptUpdate
- sysknife - Record a current Fedora Atomic validation run
- YantrikDB - Migrate the 7 remaining manual SAVEPOINT sites to SavepointGuard (panic-unwind hole + 7 hand-rolled copies of the unwind rule)
- RustAPI - chore: issue templates, drop missing triage label, MSRV 1.85 (easy)
- KayaDB - test: one extra named malformed WAL / command-frame decoder case (easy)
- Cordial - GameActivity.getWaterfallInsets has the wrong JNI descriptor
- Cordial - ro.soc.manufacturer is answered with an empty string
- Cordial - Map which FLog channels take a number and which take a severity name
If you are a Rust project owner and are looking for contributors, please submit tasks here or through a PR to TWiR or by reaching out on Bluesky or Mastodon!
CFP - Events
Are you a new or experienced speaker looking for a place to share something cool? This section highlights events that are being planned and are accepting submissions to join their event as a speaker.
If you are an event organizer hoping to expand the reach of your event, please submit a link to the website through a PR to TWiR or by reaching out on Bluesky or Mastodon!
Updates from the Rust Project
613 pull requests were merged in the last week
Compiler
- inline some hot new-solver functions
- stabilize
-Zprofile-sample-use - stabilize
extern "custom" - make
ShardedHashMap::with_capacitysplit capacity between shards - three new-solver speedups
- use
TyOrConstInferVarin the next solver, fix #158441
Library
- add
core::num::Complex Arc: remove unnecessaryfmt::Displayuse for overflow assertion- core/num: implement feature
float_nan_to - core: implement
FusedIteratorforStepBy - experiment: add
core::cmp::smallestandcore::cmp::largest Iterator::{min,max}(_by_key)should use overriddenmin/max/ltoffload!function-like macro- optimize CStr backing slice bounds checks
- single-byte ASCII searcher for
StrSearcherImpl(pattern.rs)
Cargo
trim-paths: honor workspace prefix override from envfrontmatter: Don't panic on a short closing fence before a non-ASCII charmin-publish-age: removeregistry.min-publish-age- enable
-Zembed-metadata=noby default on nightly Cargo - re-stabilize build-dir layout v2
- remove unremap file when running cargo clean -p in new build-dir layout
Rustdoc
- add basic
splatsupport torustdoc - add new
unused_footnote_definitionrustdoc lint - also warn if an invalid
docattribute is used on a macro invocation
Clippy
- add
option_zip_nonelint - clean-up
used_underscore_* - fix ICE on
unnecessary_rest_patternfor TyAlias - fix
unfulfilled_lint_expectationsincorrectly triggered by#[expect(clippy::let_and_return)] - fix duplicate diagnostics for
min_rust_version_invalid_attr - perf: check fn kind before the expansion walk in
missing_const_for_thread_local - perf: resolve the callee before the expansion walk in
VecArgs::hir - perf: run
in_external_macroafter the cheap checks in five hot lint paths
Rust-Analyzer
- parser: frontmatter error path for UTF-8
- avoid panic for mismatched associated type parameters
- check original type for
replace_arith_op - consider loop containing
break exprto diverge ifexpris diverging - do not panic when defined in macro from input
- don't error on tail comma for some macro
- emit E0600 when unary
!/-is applied to unsupported type - every workspace should have a proc-macro server
- fix
rustc_privatesupport forrustc_proc_macro - lower range expressions in hir lowering
- return an error const to the solver when consteval fails
- offer
replace_arithon references to ints - support Reborrow and CoerceShared built-in derives
Rust Compiler Performance Triage
There were almost no regressions this week, while the next trait solver saw several significant performance improvements!
Triage done by @kobzol. Revision range: 771916f9..8fa1c96c
Summary:
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions ❌ (primary) |
0.4% | [0.2%, 0.5%] | 6 |
| Regressions ❌ (secondary) |
0.6% | [0.2%, 1.0%] | 17 |
| Improvements ✅ (primary) |
-0.5% | [-1.7%, -0.2%] | 166 |
| Improvements ✅ (secondary) |
-2.3% | [-16.0%, -0.1%] | 219 |
| All ❌✅ (primary) | -0.5% | [-1.7%, 0.5%] | 172 |
0 Regressions, 6 Improvements, 7 Mixed; 4 of them in rollups 50 artifact comparisons made in total
Approved RFCs
Changes to Rust follow the Rust RFC (request for comments) process. These are the RFCs that were approved for implementation this week:
Final Comment Period
Every week, the team announces the 'final comment period' for RFCs and key PRs which are reaching a decision. Express your opinions now.
Tracking Issues & PRs
- Always escape grapheme extenders in
str::escape_debug - feat: add symmetric PartialEq impls for Vec, &[T], &mut [T] versus Cow<'_, [T]>
- stabilize smart pointer map functions
- Stabilize
windows_process_extensions_main_thread_handle - Add
Defaultimplementation forstd::sync::Once - target_features: sse (or at least avx2) is incompatible with soft-float ABI
- Remove
From<!> for Treservation impl - stabilize
Box::take - Extend
dropping_{references,copy_types}lints todrop_in_place - lint on more incorrect usages of
core::ffi::c_void - Make let-else respect macro_rules expr metavariable grouping
No Items entered Final Comment Period this week for Rust RFCs, Language Team, Language Reference, Leadership Council or Unsafe Code Guidelines. Let us know if you would like your PRs, Tracking Issues or RFCs to be tracked as a part of this list.
New and Updated RFCs
- Change
i686-pc-windows-msvcfrom Tier 1 with host tools => Tier 1 without host tools - Owning references (
&own T)
This RFC will appear in the Call for Testing section of the next issue (#) of This Week in Rust (TWiR). You may remove the call-for-testing label. Please feel free to leave the call-for-testing label in place if you would like this RFC to appear again in another issue of TWiR.
Upcoming Events
Rusty Events between 2026-08-19 - 2026-09-16 🦀
Virtual
- 2026-08-19 | Hybrid (Vancouver, CA) | Vancouver Rust
- 2026-08-20 | Hybrid (Seattle, WA, US) | Seattle Rust User Group
- 2026-08-20 | Virtual (Charlottesville, VA, US) | Charlottesville Rust Meetup
- 2026-08-21 | Virtual | Rust Girona
- 2026-08-25 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2026-08-26 | Virtual (Cardiff, UK) | Rust and C++ Cardiff
- 2026-08-27 | Virtual (Berlin, DE) | Rust Berlin
- 2026-08-28 | Virtual | Rust Girona
- 2026-08-31 | Virtual | Rust 🦀 Maven
- 2026-09-01 | Virtual | Rust 🦀 Maven
- 2026-09-02 | Virtual (Indianapolis, IN, US) | Indy Rust
- 2026-09-02 | Virtual (Indianapolis, IN, US) | Indy Rust
- 2026-09-04 | Virtual | Rust Girona
- 2026-09-06 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2026-09-08 - 2026-09-11 | Hybrid (Montreal, CA) | RustConf 2026
- 2026-09-08 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2026-09-08 | Virtual (London, UK) | Women in Rust
- 2026-09-10 | Virtual | Rust 🦀 Maven
- 2026-09-10 | Virtual (Berlin, DE) | Rust Berlin
- 2026-09-10 | Virtual (Nürnberg, DE) | Rust Nuremberg
- 2026-09-15 | Virtual (Washington, DC, US) | Rust DC
- 2026-09-16 | Hybrid (Vancouver, CA) | Vancouver Rust
Africa
- 2026-09-08 | Johannesburg, ZA | Johannesburg Rust Meetup
Asia
- 2026-08-22 | Bangalore, IN | Rust Bangalore
- 2026-08-22 | Delhi, IN | Rust Delhi
- 2026-08-22 | Noida, IN | SciPy India
- 2026-08-29 | Pune, IN | Rust Pune
Europe
- 2026-08-20 | Berlin, DE | Rust Berlin
- 2026-08-20 | Frankfurt, DE | Rust Rhein-Main
- 2026-08-21 | Edinburgh, UK | Rust and Friends
- 2026-08-26 | Dresden, DE | Rust Dresden
- 2026-08-27 | Manchester, UK | Rust Manchester
- 2026-08-29 | Stockholm, SE | Stockholm Rust
- 2026-09-08 | Paris, FR | Rust Paris
- 2026-09-14 - 2026-09-16 | Berlin, DE | Oxidize 2026
- 2026-09-15 | Leipzig, DE | Rust - Modern Systems Programming in Leipzig
North America
- 2026-08-19 | Hybrid (Vancouver, CA) | Vancouver Rust
- 2026-08-19 | San Francisco, CA, US | Bay Area Rust
- 2026-08-20 | Hybrid (Seattle, WA, US) | Seattle Rust User Group
- 2026-08-20 | Mountain View, CA, US | Hacker Dojo
- 2026-08-20 | New York, NY, US | Rust NYC
- 2026-08-26 | Austin, TX, US | Rust ATX
- 2026-08-26 | Los Angeles, CA, US | Rust Los Angeles
- 2026-08-27 | Atlanta, GA, US | Rust Atlanta
- 2026-09-03 | Mountain View, CA, US | Hacker Dojo
- 2026-09-03 | Saint Louis, MO, US | STL Rust
- 2026-09-08 - 2026-09-11 | Hybrid (Montreal, CA) | RustConf
- 2026-09-08 | Montreal, QC, CA | Rust Foundation
- 2026-09-08 - 2026-09-11 | Montreal, QC, CA | RustConf 2026
- 2026-09-09 | Montreal, CA | Women in Rust
- 2026-09-10 | San Diego, CA, US | San Diego Rust
- 2026-09-15 | San Francisco, CA, US | San Francisco Rust Study Group
- 2026-09-16 | Hybrid (Vancouver, CA) | Vancouver Rust
Oceania
- 2026-08-27 | Melbourne, AU | Rust Melbourne
- 2026-08-27 | Melbourne, AU | Rust Melbourne
If you are running a Rust event please add it to the calendar to get it mentioned here. Please remember to add a link to the event too. Email the Rust Community Team for access.
Jobs
Please see the latest Who's Hiring thread on r/rust
Quote of the Week
ass-bind is peak
- Clar Fon on rust-zulip discussion "assumptions on binders" abbreviations
Thanks to Theemathas for the suggestion!
Please submit quotes and vote for next week!
This Week in Rust is edited by:
- nellshamrell
- llogiq
- ericseppanen
- extrawurst
- U007D
- mariannegoldin
- bdillo
- opeolluwa
- bnchi
- KannanPalani57
- tzilist
Email list hosting is sponsored by The Rust Foundation
19 Aug 2026 4:00am GMT
18 Aug 2026
Planet Mozilla
Firefox Tooling Announcements: MozPhab 2.17.0 Released
Bugs resolved in Moz-Phab 2.17.0:
- bug 2036748 submit: parallelise per-commit upload + creatediff across the stack
- bug 2036749 git: skip restoring git checkout in cleanup/finalize when HEAD already on branch
- bug 2060484 " Phabricator Error: Validation errors" should display the revision
Discuss these changes in #engineering-workflow on Slack or #Conduit Matrix.
1 post - 1 participant
18 Aug 2026 9:16pm GMT
Mozilla Privacy Blog: Brasil dá um passo importante para a promoção de mercados digitais abertos e competitivos
Leia a versão em inglês aqui.
A concorrência é o ponto forte da internet. Com a possibilidade de as pessoas escolherem navegadores, mecanismos de pesquisa e aplicativos livremente, a concorrência entre das empresas se baseia no mérito. No entanto, os mercados digitais estão concentrados em "guardiões" que controlam a descoberta, dificultando o alcance de usuários por desenvolvedores independentes. A fiscalização tradicional acabou se tornando ineficaz, normalmente sendo muito tardia. Agora, governos do mundo todo estão adotando novas ferramentas para garantir um mercado aberto e contestável.
O projeto de lei (PL) 4675/2025 é um passo importante nessa direção. Baseando-se na DMA (Digital Markets Act) da União Europeia e na DMCCA (Digital Markets, Competition and Consumers Act) do Reino Unido, esse projeto de lei aborda questões de concorrência sistêmica voltadas à realidade do mercado brasileiro. A Mozilla é a favor dessa legislação, que visa criar uma estrutura segmentada de concorrência para os mercados digitais brasileiros.
A concorrência possibilita produtos melhores e liberdade de escolha
Há vinte anos, a Mozilla desenvolve o Firefox como um navegador independente, priorizando a privacidade, a segurança e a escolha. Operamos no Gecko, um dos três mecanismos de navegador existentes no mundo. A independência é essencial para evitar dominância no mercado e garantir que os usuários tenham liberdade de escolha. A inovação não é suficiente. Os produtos precisam de oportunidades justas de concorrência sem barreiras de pré-instalação ou interoperabilidade.
O PL 4675/2025 trata dessa questão por meio de uma estrutura ex ante, permitindo que a autoridade relevante mitigue os riscos antes de se tornarem irreversíveis. O anteprojeto mais recente contém melhorias importantes dessa estrutura. Ele determina as obrigações de acordo com produtos ou serviços específicos, em vez de aplicá-las automaticamente a todo um grupo corporativo; define proteções processuais durante todo o processo de designação; e traça limites mais claros sobre a capacidade da autoridade de fazer algo as obrigações além daquelas estabelecidas na legislação. De forma mais notável, ele determina uma arquitetura de escolha "isonômica e não discriminatória", incluindo telas de opções para selecionar, instalar ou definir produtos de terceiros como padrão.
A experiência da Mozilla com telas de escolha de navegador, em conformidade com a DMA da União Europeia, mostra que essas disposições funcionam. O Firefox foi o navegador de escolha mais de seis milhões de vezes. A probabilidade de as pessoas que escolheram o Firefox nessas telas continuarem usando o navegador é cinco vezes maior. Ao tornar a estrutura segmentada e previsível, o PL 4675/2025 estabelece a base para um ecossistema de concorrência em que a inovação impulsiona o sucesso.
Qual é o benefício da concorrência para as pessoas
A política de concorrência defende as pessoas. Mercados abertos permitem a liberdade de escolha e o sucesso de empresas menores. Críticos argumentam que essas propostas prejudicam a inovação, mas nossa experiência sugere o contrário. O Gecko, mecanismo de navegador do Firefox, continua sendo o maior mecanismo não controlado por uma operadora dominante de sistema operacional. Essa independência nos permite priorizar inovações voltadas aos usuários, como proteções avançadas de privacidade e segurança.
Decisões de design, como padrões pré-instalados e barreiras de interoperabilidade, moldam significativamente a experiência de usuários. A pesquisa Over the Edge 2.0 da Mozilla destaca como essas práticas afetam a liberdade de escolha. Startups também se beneficiam, pois podem alcançar usuários e concorrer com base no mérito, em vez de depender de decisões de plataformas dominantes. O projeto de lei brasileiro promove essas condições ao proporcionar ao Cade (Conselho Administrativo de Defesa Econômica) as ferramentas para tratar de práticas anticoncorrenciais, garantindo que a concorrência de plataformas dominantes ocorra por meio de melhoria da qualidade do produto, não por controle da infraestrutura.
De olho no futuro
Os mercados digitais evoluem, mas os princípios de concorrência justa (abertura, liberdade de escolha, interoperabilidade e transparência) continuam iguais. O PL 4675/2025 transforma esses princípios em normas aplicáveis. Seu modelo ex ante segmentado e suas proteções processuais posicionam o Brasil entre os países que visam restaurar o equilíbrio do mercado. Por fim, o sucesso da estrutura será medido por sua capacidade de proporcionar uma mudança significativa para os usuários.
A Mozilla é a favor desse projeto de lei e se dispõe a colaborar com o poder legislativo, o Cade e todas as partes interessadas. Com alterações segmentadas, o PL 4675/2025 pode se tornar uma estrutura duradoura a favor da concorrência, da inovação e da liberdade de escolha.
The post Brasil dá um passo importante para a promoção de mercados digitais abertos e competitivos appeared first on Open Policy & Advocacy.
18 Aug 2026 8:59pm GMT
Mozilla Privacy Blog: Brazil is Taking an Important Step Toward More Open & Competitive Digital Markets
Read the Portuguese version here.
Competition is a strength of the internet. When people freely choose among browsers, search engines, and apps, companies compete on merit. However, digital markets have concentrated around 'gatekeepers' that control discovery, making it harder for independent developers to reach users. Traditional enforcement has proven ineffective, often arriving too late. Governments worldwide are now adopting new tools to ensure open, contestable markets.
Brazil's Bill 4,675/2025 is a critical step in this direction. Drawing lessons from the EU's Digital Markets Act and the UK's Digital Markets, Competition and Consumers regime, the bill addresses structural competition concerns with an approach calibrated to Brazil's market realities. Mozilla strongly supports this legislation, which aims to establish a tailored competition framework for Brazil's digital markets.
Competition unlocks better products and meaningful choice
For over twenty years, Mozilla has built Firefox as an independent browser prioritizing privacy, security, and choice. We operate on Gecko, one of only three browser engines worldwide. Maintaining independence is critical to preventing market dominance and ensuring users have genuine choices. Innovation alone isn't enough; products need fair opportunities to compete without being hindered by preinstallation or interoperability barriers.
Bill 4,675 addresses this via an ex ante framework, allowing Brazil's competition authority to mitigate risks before they become irreversible. The latest draft improves this framework in several important ways. It tailors obligations to specific products and services rather than automatically applying them across an entire corporate group, strengthens procedural safeguards throughout the designation process, and places clearer limits on the authority's ability to expand obligations beyond those established in legislation. Most notably, it requires "neutral and non-discriminatory" choice architecture, including choice screens, for selecting, installing, or setting third-party products as defaults.
Mozilla's experience with browser choice screens under the EU Digital Markets Act proves these provisions work. Firefox has been selected more than six million times, and users who select Firefox through these screens are five times more likely to continue using it. By making the framework targeted and predictable, Bill 4,675 establishes a foundation for a competitive ecosystem where innovation drives success.
How competition delivers for people
Competition policy is about people. Open markets provide genuine choice and allow smaller players to thrive. Critics argue these proposals harm innovation, but our experience suggests the opposite. Gecko, Firefox's browser engine, remains the only major engine not controlled by a dominant OS operator. This independence enables us to prioritize user-focused innovations like advanced privacy and security protections.
Design decisions, like preinstalled defaults and interoperability barriers, significantly shape the user experience. Mozilla's Over the Edge 2.0 research highlights how these practices undermine choice. Startups similarly benefit when they can reach users and compete on merit rather than relying on dominant platform decisions. Brazil's bill can foster these conditions by providing CADE with tools to address anti-competitive practices, ensuring dominant platforms compete by improving product quality rather than leveraging infrastructure control.
Looking ahead
Digital markets evolve, but healthy competition principles (openness, choice, interoperability, and transparency) remain constant. Bill 4,675 translates these into enforceable rules. Its tailored ex ante model and procedural safeguards position Brazil among jurisdictions restoring market balance. Ultimately, the framework's success will be measured by its ability to deliver meaningful change for users.
Mozilla supports this bill and looks forward to collaborating with lawmakers, CADE, and stakeholders. With targeted refinements, Bill 4,675 can become a durable framework that promotes competition, supports innovation, and empowers people with greater choice.
The post Brazil is Taking an Important Step Toward More Open & Competitive Digital Markets appeared first on Open Policy & Advocacy.
18 Aug 2026 8:59pm GMT
The Mozilla Blog: The wait is over. NVIDIA GeForce NOW adds Firefox to its supported browser lineup.
Gamers have asked for GeForce NOW support for years. Today, NVIDIA made it official, opening up GeForce RTX-powered play to Firefox on Windows.
Firefox users can now stream more than 2,000 PC games from virtually anywhere, no downloads, installs, or hardware upgrades required, just a Windows PC and a browser.
Gaming: one of the web's toughest tests
Cloud gaming pushes a browser in ways most websites never do. Every click and frame matters. Behind today's announcement is months of collaboration and engineering between Mozilla and NVIDIA to deliver GeForce NOW on Firefox for Windows.
Now, players can jump into high-performance PC gaming directly from Firefox, no waiting on lengthy game downloads, installs, or updates. The experience delivers GeForce RTX-powered performance at up to 1440p and up to 120 frames per second for GeForce NOW Ultimate members.
"Firefox earned its place on our list of supported browsers by delivering the first-class experience GeForce NOW players expect. We set a high bar for browser support, and we're excited to welcome Firefox - giving millions of Firefox fans a new way to stream the games they love," said Andrew Fear, Director of NVIDIA GeForce NOW.

Versatility and customization baked into your gaming rig
Gamers put real effort into making their rigs their own, and Firefox gets that. Users can choose themes, custom colors, and tab settings to customize their setup, instead of sitting there like just another window.
We also know online gaming doesn't happen in just one window. It's social and sometimes spontaneous. With Firefox, you can have a Discord call running in Split View, a guide open in another tab, or Reddit pulled up between matches. Then go full screen when you're ready to play, no need to switch browsers to stream games.
"Teaming up with NVIDIA to bring GeForce NOW to Firefox is a milestone moment - one of the world's leading cloud gaming services, now running on a browser built for privacy, control and flexibility. This is a big win for the Firefox community and for NVIDIA's gaming community - and a sign of even bigger things ahead," said Ajit Varma, Head of Firefox.
If Firefox is already your browser of choice, online gaming and your PC game library can join the party. Whether your library lives on Steam, Epic Games Store, GOG, Xbox PC Game Pass, or Ubisoft Connect, you can sign in, open your library, and start streaming the games you already own. For all the gamers returning to Night City in Cyberpunk 2077, jumping into Halo: Campaign Evolved, or dropping in for a quick round of Fortnite, Firefox users can now play where you want.
Try it today
Update to the latest version of Firefox, go to play.geforcenow.com, and sign in with your GeForce NOW account.
Join us August 25 as NVIDIA heads to Gamescom, where we'll have more to share about what this partnership means for gamers.
The post The wait is over. NVIDIA GeForce NOW adds Firefox to its supported browser lineup. appeared first on The Mozilla Blog.
18 Aug 2026 2:58pm GMT
The Mozilla Blog: A billion searches a year, now built in: Startpage comes to Firefox
Firefox users were choosing Startpage long before today - to the tune of more than a billion searches a year, every one of them required some assembly: an extension, a manual setting, a workaround.
Today, starting with Firefox 154, that choice becomes as easy as head to the drop-down menu, hit 'select,' and start searching. Startpage is now a built-in search option for Firefox users on desktop in Germany, France, Austria, Switzerland, and the Netherlands. Android and iOS are coming soon. Whether you want to search with Startpage, or another preferred search engine, it's as easy as opening your search settings, picking a default, and done.
And if you're happy with your current search engine, nothing about your setup changes.
Why Europe first
This launch starts in Startpage's home markets: a Netherlands-based search engine, now built into the browser for some of the most privacy-conscious users in the world. At a moment when so much of the web experience is decided by a handful of very large companies, a search option that's private by design and European by origin isn't a small thing.
What Startpage delivers
Startpage delivers full, high-quality search results without the privacy trade off. Queries aren't stored or linked to you, and there are no AI answers pushed above your search results. In fact, there's no AI at all. Based in the Netherlands, Startpage built its product around a simple idea: great search and personal privacy can go hand in hand.
"So much of your web experience is prescribed before you ever open a browser. We'd rather you decide how you want to search. Adding Startpage puts a genuinely private search engine option - real results, zero profiling, AI-free - one click away for millions of people in Europe," said Ajit Varma, Head of Firefox.
Users asked with one billion searches
Startpage ranks among the most-requested search engines in the Firefox community. When demand is this clear, our job is to remove the friction.
"More and more of what people use online comes from a handful of very large companies, and search is where that concentration gets felt most directly. Firefox has always been the browser for people who want to make their own decisions about the web, which makes it a natural home for private search. Firefox users already run over a billion Startpage searches a year. Now Startpage is built in for everyone in these markets," said Stewart Marlborough, President of Startpage.
That's the pattern we want: people who use Firefox every day tell us what they need, and we ship it.
Search is a choice. Firefox treats it like one.
Most browsers have already decided how you're going to search. Firefox hasn't. Pick your search engine, control what happens to your queries, decide who sees data about you, even turn AI on or off. It should always be your call. Not everyone wants the same thing from search, and a browser shouldn't pretend they do.
Try it out
If you're in Germany, France, Austria, Switzerland, or the Netherlands, update to Firefox 154 and you'll find Startpage in your search settings.
The post A billion searches a year, now built in: Startpage comes to Firefox appeared first on The Mozilla Blog.
18 Aug 2026 2:57pm GMT
The Mozilla Blog: Smart Window: Finish what you start online
Browsers make it easy to start things, but picking them back up is another story.
We start planning a trip or researching a purchase, and before long we're comparing options and chasing ideas across dozens of tabs. That work rarely happens in one sitting. When we come back after an interruption, we have to figure out where we were, what we'd already found, and what we were trying to do in the first place.
Smart Window is Firefox's privacy-first, AI-powered browsing experience designed to help people finish what they start online. It works with the context you choose to share, such as your open tabs and relevant browsing history, so you can get back to what you were doing without retracing your steps.
We've spent the last several months building and testing Smart Window in beta with our community. Today, we're adding new capabilities that help you check answers without losing your place, make sense of open tabs and get back to things you've seen before. Together, they help keep a task moving across tabs, searches, and time.
"The browser already has much of the context around what you're trying to do - the research in your tabs, the pages you've visited, the things you've found along the way," said Ajit Varma, Head of Firefox. "With Smart Window, we're exploring how to make more of that context useful while keeping you in control."
What's new in Smart Window
Check answers without losing your place

When you have a question in the middle of a task, getting an answer shouldn't take you out of your flow or require you to track down the sources separately.
Through our new partnership with Exa, Smart Window can now retrieve current web information and show the sources behind its response without taking you to a separate search results page. Learn more about why we chose Exa and what the partnership means for Firefox in our companion post.
Group tabs that belong together

It doesn't take long for a quick search to turn into a browser full of tabs. Once they pile up, keeping track of everything becomes even more work.
Smart Window can now suggest groups for related tabs, making it easier to organize what you have open and return to it later. It can also spot duplicate tabs and close them with a click.
Find your spot again

Sometimes you remember what was on a page better than you remember what it was called or how you got there. Smart Window can now show visual previews of pages in your browsing history, making it easier to spot the page you're looking for among similar results without opening each one to figure out which is which.
Behind the evolution
Last November, we shared an early concept called "AI Window," exploring what it could look like to give people a user-controlled space where they could chat with an AI assistant to get help while browsing. We shared it early because we wanted our community to help shape where it went next.
Over the months that followed, we watched how people used the experience, listened to feedback, and tested new ideas. A consistent theme emerged: people were increasingly using it as part of their everyday browsing - searching, navigating, and working through the things they'd come online to do. The value of the AI assistant came through in how it helped them make progress on those tasks.
We saw the same idea in feedback from beta users. One described using Smart Window to keep track of their "train of thought." Another used it to find something they'd looked at before without remembering exactly where they'd seen it.
Those learnings helped us shape Smart Window into a broader browsing experience that helps people make progress on what they came online to do.
While the product is evolving, the principles we started with remain the same: choice, privacy, and transparency. Smart Window is optional. You choose when to use it, what browsing context it can use to help with a task, and which AI model you want to use. Firefox's AI Controls gives you one place to manage Smart Window, including turning it off entirely, so you can easily choose the browsing experience you want.
What's next
We're continuing to explore ways Smart Window can help carry a task forward, especially when you leave it and come back later.
Soon, Smart Window will be able to surface recent browsing journeys and pull together related tabs and history, giving you a starting point when you return to something you were working on. We're also working on ways for Smart Window to use relevant information to help fill out online forms, so you don't have to re-enter the same details again and again. You'll stay in control of what Smart Window can access, including which tabs you choose to share with it.
Smart Window remains in beta, and we'll keep learning from our community as these experiences develop. It's currently available in English to people in the U.S. and Canada. If it's not available where you are yet, you can sign up to be notified when it is.
To try Smart Window, visit https://www.firefox.com/smart-window.
The post Smart Window: Finish what you start online appeared first on The Mozilla Blog.
18 Aug 2026 1:06pm GMT
The Mozilla Blog: Firefox and Exa: Building AI search around people, not platforms
AI has changed how we browse. Full stop. The real question is whether AI leads to one browser experience for everyone, or gives people more ways to make the browser work for them.
Firefox was always built to give users an alternative to the status quo, and our approach with AI is no different. Much of the industry is going in another direction: Company A builds the browser → and the search engine → and the AI model → and all the surrounding services. The seduction lies in how effortless every layer feels, but it also means one company has total influence over what tech you can use and what AI delivers.
We aim to deliver users a different model: one where AI makes your browser empowering and helpful, with visible citations and with a zero-data-retention commitment, all powered by an independent browser engine. To get there, we're partnering with people who align with the same open, choice-first thinking that's shaped Firefox from day one.
Today, that starts with Exa.ai, a search and retrieval company built for the AI era.
Going forward, Exa will help power Smart Window on desktop and Quick Answers on iOS, giving people a way to get current, source-backed answers without leaving the page. More on our related Smart Window announcement here.
But our Exa news isn't about one feature or product. It's about model choice and how people find things online.

An independent AI model
Mozilla has always believed the web is strongest when it encourages technology competition and variety, and we think the same principle should apply to AI. We want to create an AI ecosystem that is open, diverse, and grounded in the same values we champion for the web. So, instead of building our own closed AI stack, Firefox is investing in partnerships with companies like Exa.ai to bring deep expertise in specific areas while sharing our commitment to user choice, privacy, and transparency.
As Ajit Varma, Head of Firefox, puts it, "Firefox's philosophy is straightforward: the open internet is a critical resource and people should be able to shape it to their needs and preferences - even as new entry points like AI emerge. AI should be responsible. It should stay transparent and under your control. AI shouldn't be an-all-or nothing offering, but rather built so users can pick and choose the model or system that works for them."
The idea is simple: Mozilla builds the browser people trust, and partners like Exa.ai bring the specialized pieces that make it better. That lets us move faster without asking people to give up what made Firefox different in the first place.
Adds Will Bryk, Co-founder and CEO of Exa.ai, "Search built for the AI era doesn't work if it's locked inside one company's stack. Firefox is one of the last browsers that isn't trying to own the model, the search, and the browser all at once. That's why this partnership makes sense to us. We're building the information layer for an agentic web, where trust and transparency are paramount. We share those values with Firefox, making this partnership a very easy call."
AI should make the web more useful, not replace it
AI is only as useful as your ability to check its work.
That's the point of building Exa's retrieval into Firefox: when you get an answer, you can see the source it came from. Nothing is buried in a 'citations' menu, but sitting right there so a two-second glance tells you whether to trust it or read more. We're not forcing you 'just trust us' that it's right.
It's a small design choice, but it matters. It's the difference between an AI that tells you things and one that shows you where to look. It also means the people who actually wrote that content don't disappear from the picture, the way they often do when AI summarizes and moves on.
Looking ahead
This won't be the last partnership like it. We're picking partners for the same reason each time: people who think AI in a browser should work for you, not the other way around.
The post Firefox and Exa: Building AI search around people, not platforms appeared first on The Mozilla Blog.
18 Aug 2026 1:05pm GMT
Firefox Developer Experience: Firefox WebDriver Newsletter 154
WebDriver is a remote control interface that enables introspection and control of user agents. As such, it can help developers to verify that their websites are working and performing well with all major browsers. The protocol is standardized by the W3C and consists of two separate specifications: WebDriver classic (HTTP) and the new WebDriver BiDi (Bi-Directional).
This newsletter gives an overview of the work we've done as part of the Firefox 154 release cycle.
Contributions
Firefox is an open source project, and we are always happy to receive external code contributions to our WebDriver implementation. We want to give special thanks to everyone who filed issues, bugs, and submitted patches.
Firefox 154, one WebDriver bug was fixed by a contributor:
- Devin Rousso updated the
emulation.setLocaleOverridecommand to allow overriding theAccept-Languageheader for fetch andWebSocketrequests in workers.
WebDriver code is written in JavaScript, Python, and Rust, so any web developer can contribute! Read how to set up the work environment and check the list of mentored issues for Marionette or the list of mentored JavaScript bugs for WebDriver BiDi. Join our chatroom if you need any help to get started!
All Changes
A complete list of developer-facing changes included in this Firefox release is available in the MDN Firefox 154 Release Notes.
18 Aug 2026 10:00am GMT