29 Jan 2026

feedPlanet Mozilla

Jonathan Almeida: Test sites for browser developers

Working on the mobile Firefox team gives you the opportunity to touch on many different parts of the browser space. You often need to test the interaction between web content and the application integration's to another component, say for example, a site registering for a WebPush subscription and Firefox using Firebase Cloud Messaging to deliver the encrypted message to the end-user. Hunting around for an example to validate everything fine and dandy takes time.

Sometimes a simple test site for your use case is helpful for initial validation or comparison against other browsers.

Below is a list of tests that I've used in the past (in no particular order):

Forms and Autocomplete

There are various form types and various heuristics to trigger completion options, so they deserve their own section. The more (test sites) the merrier!

Make your own

If you need to make your own, try to write out the code yourself so you can understand the reduced test case. If it's not straight-forward, try using the Testcase Reducer by Thomas Wisniewski.

Comments

With an account on the Fediverse or Mastodon, you can respond to this post. Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one. Known non-private replies are displayed below.

Learn how this was implemented from the original source here.

<noscript><p>Loading comments relies on JavaScript. Try enabling JavaScript and reloading, or visit <a href="https://mindly.social/@jonalmeida/115937256635328128">the original post</a> on Mastodon.</p></noscript>
<noscript>You need JavaScript to view the comments.</noscript> &>"'

29 Jan 2026 9:39pm GMT

28 Jan 2026

feedPlanet Mozilla

This Week In Rust: This Week in Rust 636

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
Project/Tooling Updates
Observations/Thoughts
Rust Walkthroughs

Crate of the Week

This week's crate is dynamodb-crud, a type-safe API for working with DynamoDB tables.

Thanks to dario curreri 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.

Cargo

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.

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

479 pull requests were merged in the last week

Compiler
Library
Cargo
Rustdoc
Clippy
Rust-Analyzer
Rust Compiler Performance Triage

This week saw a very nice win from doing overall less work in the compiler (https://github.com/rust-lang/rust/pull/151382). There were a few regressions, but only in artificial stress tests, we are keeping an eye on them.

Triage done by @kobzol. Revision range: 3d087e60..ebf13cca

Summary:

(instructions:u) mean range count
Regressions ❌
(primary)
0.6% [0.2%, 1.8%] 9
Regressions ❌
(secondary)
3.1% [0.1%, 19.9%] 47
Improvements ✅
(primary)
-1.0% [-3.1%, -0.2%] 195
Improvements ✅
(secondary)
-1.4% [-10.1%, -0.1%] 157
All ❌✅ (primary) -1.0% [-3.1%, 1.8%] 204

2 Regressions, 2 Improvements, 6 Mixed; 6 of them in rollups 42 artifact comparisons made in total

Full report here.

Approved RFCs

Changes to Rust follow the Rust RFC (request for comments) process. These are the RFCs that were approved for implementation this week: * Trait method impl restrictions (final methods) * RFC: #[export_visibility = ...] attribute

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

Compiler Team (MCPs only)

Rust

Cargo
Language Reference

No Items entered Final Comment Period this week for Rust RFCs, Leadership Council, Language Team 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

Upcoming Events

Rusty Events between 2026-01-28 - 2026-02-25 🦀

Virtual
Asia
Europe
North America
Oceania

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

Telling a programmer there's already a library to do X is like telling a songwriter there's already a song about love.

- Pete Cordell cited by @blonk on rust-users

Thanks to Kill The Mule for the suggestion!

Please submit quotes and vote for next week!

This Week in Rust is edited by:

Email list hosting is sponsored by The Rust Foundation

Discuss on r/rust

28 Jan 2026 5:00am GMT

27 Jan 2026

feedPlanet Mozilla

The Mozilla Blog: The State of Mozilla: Are you ready to choose your future?

Dreamlike image of a bear standing in a forest meadow at sunrise
VFX animation still. Credit: Mozilla

We're at a fork in the road.

AI is here, and has started to define how we search, create, communicate - and how the web itself works. Some of you love AI, but want it to work better for yourselves and society. Some of you hate it, and don't want any of it.

We get it.

We also know, as Mozilla, that the future is being decided now. The big tech players are racing to lock down and control AI, and make sure it works on their terms, not ours.

The 2025/26 State of Mozilla, our annual report published today, is an invitation to a different future.

What you'll find in the State of Mozilla

This year's State of Mozilla goes beyond a traditional annual report. Inside, you'll find:

All of this is guided by Mozilla's double bottom line: advancing the public interest and building sustainable businesses. This model lets us invest patiently, say no to extractive approaches, and support ecosystems that would otherwise struggle to exist.

A vision for what comes next

The future of AI - and the future of the web - is ours to define. We want to make that future to be one where humanity thrives, and technology helps out.

If you believe the future of AI should be human-centered, transparent, and open, we invite you to explore the report, share with your community and build that future with us.

Read the State of Mozilla 2025/26 here.

The post The State of Mozilla: Are you ready to choose your future? appeared first on The Mozilla Blog.

27 Jan 2026 5:05pm GMT

Firefox Tooling Announcements: Firefox Profiler Deployment (January 27, 2026)

The latest version of the Firefox Profiler is now live! Check out the full changelog below to see what's changed:

Highlights:

Other Changes:

Big thanks to our amazing localizers for making this release possible:

Find out more about the Firefox Profiler on profiler.firefox.com! If you have any questions, join the discussion on our Matrix channel!

1 post - 1 participant

Read full topic

27 Jan 2026 4:53pm GMT

26 Jan 2026

feedPlanet Mozilla

The Mozilla Blog: Who will pioneer the next web?

Mozilla Pioneers logo above a green halftone mountain on a dark background.

Who will build the next version of the web? Mozilla wants to make it more likely that it's you. We are committing time and resources to bring experienced builders into Mozilla for a short, programmed period, to work with our New Products leaders to build tools and products for the next version of the web.

It's a new program called Mozilla Pioneers, and applications open today - closing Monday, Feb. 16, 2026.

A different program from a different kind of company

Our mission at Mozilla is to ensure the internet is a global public resource, open and accessible to all. We know that there are a lot of gifted, experienced and thoughtful technologists, designers, and builders who care as deeply about the internet as we do - but seek a different environment to explore what's possible than what they might find across the rest of the tech industry.

This is the gap Mozilla Pioneers intends to fill.

Pioneers is intentionally structured to make it possible for those who don't typically get the opportunity to create new products to participate. The program is paid, flexible (i.e. you can do it part-time if needed), and bounded. We're not asking you to gamble your livelihood in order to explore how we can improve the internet.

This matters to me

My own career advanced the most dramatically in moments when change was piling on top of change and most people couldn't grasp the compounding effects of these shifts. That's why I stepped up to start an independent blogging company back in 2002 (Gizmodo) and again in 2004 (Engadget).

It's also why, a lifetime later, I joined Mozilla to lead New Products, where I've had the good fortune of supporting the development of meaningful new Mozilla tools like Solo, Tabstack, 0DIN, and an enterprise version of Firefox.

Changing the game

We've designed Pioneers to make space for technologists - professionals comfortable working across code, product, and systems - to collaborate with Mozilla on foundational ideas for AI and the web in a way that reflects these shared values.

We're looking for people to work with; this is not a contest for ideas, and you don't apply with a pitch deck. Our vision:

Pioneers isn't an accelerator, and it isn't a traditional residency. It's a way to explore foundational ideas for AI and the web in a high-trust environment, with the possibility of continuing that work at Mozilla.

If this sounds like the kind of work you want to do, we want to hear from you. Hopefully, by reading to the end of this post, you're either thinking of applying yourself - or know someone who should. I encourage you to check out (and share) Mozilla Pioneers, thanks!

The post Who will pioneer the next web? appeared first on The Mozilla Blog.

26 Jan 2026 7:14pm GMT

Firefox Nightly: Take note – Split View is ready for testing! – These Weeks in Firefox: Issue 194

Highlights

Friends of the Firefox team

Introductions/Shout-Outs

Resolved bugs (excluding employees)

Volunteers that fixed more than one bug

New contributors (🌟 = first patch)

Project Updates

AI Window

WebDriver

Lint, Docs and Workflow

Information Management/Sidebar

New Tab Page

Profile Management

Search and Navigation

Storybook/Reusable Components/Acorn Design System

Tab Groups

UX Fundamentals

26 Jan 2026 6:53pm GMT

23 Jan 2026

feedPlanet Mozilla

Firefox Tooling Announcements: MozPhab 2.8.2 Released

Bugs resolved in Moz-Phab 2.8.2:

Discuss these changes in #engineering-workflow on Slack or #Conduit Matrix.

1 post - 1 participant

Read full topic

23 Jan 2026 8:40pm GMT

Firefox hacking in Fedora: Firefox & Linux in 2025

HDR YouTube video clip I used for testing


Last year brought a wealth of new features and fixes to Firefox on Linux. Besides numerous improvements and bug fixes, I want to highlight some major achievements: HDR video playback support, reworked rendering for fractionally scaled displays, and asynchronous rendering implementation. All this progress was enabled by advances in the Wayland compositor ecosystem, with new features implemented by Mutter and KWin.

HDR

The most significant news on the Wayland scene is HDR support, tracked by Bug 1642854. It's disabled by default but can be enabled in recent Wayland compositors using the gfx.wayland.hdr preference at about:config (or by gfx.wayland.hdr.force-enabled if you don't have an HDR display).

HDR mode uses a completely different rendering path, similar to the rendering used on Windows and macOS. It's called native rendering or composited rendering, and it places specific application layers directly into the Wayland compositor as subsurfaces.

The first implementation was done by Robert Mader (presented at FOSDEM), and I unified the implementation for HDR and non-HDR rendering paths as new WaylandSurface object.

The Firefox application window is actually composited from multiple subsurfaces layered together. This design allows HDR content like video frames to be sent directly to the screen while the rest of the application (controls and HTML page) remains in SDR mode. It also enables power-efficient rendering when video frames are decoded on the graphics card and sent directly to the screen (zero-copy playback). In fullscreen mode, this rendering is similar to mpv or mplayer playback and uses minimal power resources.

I also received valuable feedback from AMD engineers who suggested various improvements to HDR playback. We removed unnecessary texture creation over decoded video frames (they're now displayed directly as wl_buffers without any GL operations) and implemented wl_buffer recycling as mpv does.

For HDR itself (since composited rendering is available for any video playback), Firefox on Wayland uses the color-management-v1 protocol to display HDR content on screen, along with BT.2020 video color space and PQ color transfer function. It uses 10-bit color vectors, so you need VP9 version 2 to decode it in hardware. Firefox also implements software decoding and direct upload to dmabuf frames as a fallback.

The basic HDR rendering implementation is complete, and we're now in the testing and bug-fixing phase. Layered rendering is quite tricky as it involves rapid wl_surface mapping/unmapping and quick wl_buffer switches, which are difficult to handle properly. HDR rendering of scaled surfaces is still missing-we need fractional-scale-v2 for this (see below), which allows positioning scaled subsurfaces directly in device pixels. We also need to test composited/layered rendering for regular web page rendering to ensure it doesn't drain your battery. You're very welcome to test it and report any bugs you find.

Fractional scale

The next major work was done for fractional scale rendering, which shipped in Firefox 147.0. We updated the rendering pipeline and widget sizing to support fractionally scaled displays (scales like 125%, etc.). This required reworking the widget size code to strictly upscale window/surface sizes and coordinates and never downscale them, as downscaling introduces rounding errors.

Another step was identifying the correct rounding algorithm for Wayland subsurfaces and implementing it. Wayland doesn't define rounding for it, only for toplevel windows, so we're in a gray area here. I was directed to Stable rounding by Michel Daenzer. It's used by Mutter and Sway so Firefox implements it for those two compositors while using a different implementation for KWin. This may be updated to use the fractional-scale-v2 protocol when it becomes available.

Fractional scaling is enabled by default, and you should see crisp and clear output regardless of your desktop environment or screen scale.

Asynchronous rendering

Historically, Firefox disabled and re-enabled the rendering pipeline for scale changes, window create/destroy events, and hide/show sequences. This stems from Wayland's architecture, where a Wayland surface is deleted when a window becomes invisible or is submitted to the compositor with mismatched size/scale (e.g., 111 pixels wide at 200% scale).

Such rendering disruptions cause issues with multi-threaded rendering-they need to be synchronized among threads, and we must ensure surfaces with the wrong scale aren't sent to the screen, as this leads to application crashes due to protocol errors.

Firefox 149.0 (recent nightly) has a reworked Wayland painting pipeline (Bug 1739232) for both EGL and software rendering. Scale management was moved from wl_buffer fixed scale to wp_viewport, which doesn't cause protocol errors when size/scale doesn't match (producing only blurred output instead of crashes).

We also use a clever technique: the rendering wl_surface / wl_buffer / EGLWindow is created right after window creation and before it's shown, allowing us to paint to it offscreen. When a window becomes visible, we only attach the wl_surface as a subsurface (making it visible) and remove the attachment when it's hidden. This allows us to keep painting and updating the backbuffer regardless of the actual window status, and the synchronized calls can be removed.

This brings speed improvements when windows are opened and closed, and Linux rendering is now synchronized with the Windows and macOS implementations.

… and more

Other improvements include a screen lock update for audio playback, which allows the screen to dim but prevents sleep when audio is playing. We also added asynchronous Wayland object management to ensure we cleanly remove Wayland objects without pending callbacks, along with various stability fixes.

And there are even more challenges waiting for us Firefox Linux hackers:

And of course, we should plan properly before we even start. Ready, Scrum, Go!

23 Jan 2026 12:28pm GMT

Firefox Add-on Reviews: Firefox extensions for creatives

From designers to writers, multi-media producers and more - if you perform creative work on a computer there's a good chance you can find a browser extension to improve your process. Here's a mix of practical Firefox extensions for a wide spectrum of creative cases…

Extensions for visual artists, animators & designers

Awesome Screenshot & Screen Recorder

There are a lot of screenshot and recording tools out there, but few offer the sweet combination of intuitive control and a deep feature set like Awesome Screenshot & Screen Recorder.

An ideal tool if you do a lot of screen recording for things like tutorials, the extension also integrates with your computer's microphone should you need a voice component.

The easily accessible pop-up menu puts you in control of everything, including the screenshot feature (full page, selected area, or just the visible part). You can also annotate screenshots with text and graphics, blur unwanted images, highlight sections, and more.

Save and share everything with just a couple quick mouse clicks.

Image Max URL

Find a great image online, but it's too small or the resolution is poor quality? No problem. Image Max URL can help you find a batter version or even the original.

Scouring more than 10,000 websites in its database (including most social media sites, news outlets, WordPress sites and various image hosting services), Image Max URL will search for any image's original version and short of that, look for high res alternatives.

Font Finder

Every designer has seen a beautiful font in the wild and thought - I need that font for my next project! But how to track it down? Try Font Finder.

Investigating your latest favorite font doesn't require a major research project anymore. Font Finder gives you quick point-and-click access to:

Search by Image

If you're a designer who scours the web looking for images to use in your work, but gets bogged down researching aspects like intellectual property ownership or subject matter context, you might consider an image search extension like Search by Image.

If you're unfamiliar with the concept of image search, it works like text-based search, except your search starts with an image instead of a word or phrase. The Search by Image extension leverages the power of 30+ image search engines like Tineye, Google, Bing, Yandex, Getty Images, Pinterest, and others. This tool can be an incredible time saver when you can't leave any guesswork to images you want to repurpose.

Search by Image makes it simple to find the origins of almost any image you encounter on the web.
Extended Color Management

Built in partnership between Mozilla and Industrial Light & Magic, this niche extension performs an invaluable function for animation teams working remotely. Extended Color Management calibrates colors on Firefox so animators working from different home computer systems (which might display colors differently based on their operating systems) can trust the whole team is looking at the same exact shades of color through Firefox.

Like other browsers, Firefox by default utilizes color management (i.e. the optimization of color and brightness) from the distinct operating systems of the computers it runs on. The problem here for professional animators working remotely is they're likely collaborating from different operating system - and seeing slight but critically different variations in color rendering. Extended Color Management simply disables the default color management tools so animators with different operating systems are guaranteed to see the same versions of all colors, as rendered by Firefox.

Measure-it

What a handy tool for designers and developers - Measure-it lets you draw a ruler across any web page to get precise dimensions in pixels.

Access the ruler from a toolbar icon or keyboard shortcut. Other customization features include setting overlay colors, background opacity, and pop-up characteristics.

Extensions for writers

LanguageTool

It's like having a copy editor with you wherever you write on the web. Language Tool - Grammar and Spell Checker will make you a better writer in 25+ languages.

More than just a spell checker, LanguageTool also…

Please note LanguageTool's full feature set is free during a 14-day trial period, then payment is required.

Dark Background and Light Text

If you spend all day (and maybe many nights) staring at a screen to scribe away, Dark Background and Light Text may ease strain on your eyes.

By default the extension flips the colors of every web page you visit, so your common light colored backgrounds become text colors and vice versa. But all color combinations are customizable, freeing you to adjust everything to taste. You can also set exceptions for certain websites that have a native look you prefer.

Dictionary Anywhere

It's annoying when you have to navigate away from a page just to check a word definition elsewhere. Dictionary Anywhere fixes that by giving you instant access to word definitions without leaving the page you're on.

Just double-click any word to get a pop-up definition right there on the page. Available in English, French, German, and Spanish. You can even save and download word definitions for later offline reference.

Dictionary Anywhere - no more navigating away from a page just to get a word check.
LeechBlock NG

Concentration is key for productive writing. Block time-wasting websites with LeechBlock NG.

This self-discipline aid lets you select websites that Firefox will restrict during time parameters you define - hours of the day, days of the week, or general time limits for specific sites. Even cooler, LeechBlock NG lets you block just portions of websites (for instance, you can allow yourself to see YouTube video pages but block YouTube's homepage, which sucks you down a new rabbit hole every time!).

Gyazo

If your writing involves a fair amount of research and cataloging content, consider Gyazo for a better way to organize all the stuff you clip and save on the web.

Clip entire web pages or just certain elements, save images, take screenshots, mark them up with notes, and much more. Everything you clip is automatically saved to your Gyazo account, making it accessible across devices and collaborative teams.

With its minimalist pop-up interface, Gyazo makes it easy to clip elements, sections, or entire web pages.

We hope one of these extensions improves your creative output on Firefox! Explore more great media extensions on addons.mozilla.org.

23 Jan 2026 1:08am GMT

The Servo Blog: December in Servo: multiple windows, proxy support, better caching, and more!

Servo 0.0.4 and our December nightly builds now support multiple windows (@mrobinson, @mukilan, #40927, #41235, #41144)! This builds on features that landed in Servo's embedding API last month. We've also landed support for several web platform features, both old and new:

Servo 0.0.4 showing new support for multiple windows

For better compatibility with older web content, we now support vendor-prefixed CSS properties like '-moz-transform' (@mrobinson, #41350), as well as window.clientInformation (@Taym95, #41111).

We've continued shipping the SubtleCrypto API, with full support for ChaCha20-Poly1305, RSA-OAEP, RSA-PSS, and RSASSA-PKCS1-v1_5 (see below), plus importKey() for ML-KEM (@kkoyung, #41585) and several other improvements (@kkoyung, @PaulTreitel, @danilopedraza, #41180, #41395, #41428, #41442, #41472, #41544, #41563, #41587, #41039, #41292):

Algorithm
ChaCha20-Poly1305 (@kkoyung, #40978, #41003, #41030)
RSA-OAEP (@kkoyung, @TimvdLippe, @jdm, #41225, #41217, #41240, #41316)
RSA-PSS (@kkoyung, @jdm, #41157, #41225, #41240, #41287)
RSASSA-PKCS1-v1_5 (@kkoyung, @jdm, #41172, #41225, #41240, #41267)

When using servoshell on Windows, you can now see --help and log output, as long as servoshell was started in a console (@jschwe, #40961).

Servo diagnostics options are now accessible in servoshell via the SERVO_DIAGNOSTICS environment variable (@atbrakhi, #41013), in addition to the usual -Z / --debug= arguments.

Servo's devtools now partially support the Network > Security tab (@jiang1997, #40567), allowing you to inspect some of the TLS details of your requests. We've also made it compatible with Firefox 145 (@eerii, #41087), and use fewer IPC resources (@mrobinson, #41161).

this website in Servo’s devtools, showing that the main request used TLS 1.3, TLS13_AES_256_GCM_SHA384 cipher suite, and X25519MLKEM768 key exchange, with HSTS enabled and HPKP disabled

We've fixed rendering bugs related to 'float', 'order', 'max-width', 'max-height', ':link' selectors, <audio> layout, and getClientRects(), affecting intrinsic sizing (@Loirooriol, #41513), anonymous blocks (@Loirooriol, #41510), incremental layout (@Loirooriol, #40994), flex item sizing (@Loirooriol, #41291), selector matching (@andreubotella, #41478), replaced element layout (@Loirooriol, #41262), and empty fragments (@Loirooriol, #41477).

Servo now fires 'toggle' events on <dialog> (@lukewarlow, #40412). We've also improved the conformance of 'wheel' events (@mrobinson, #41182), 'hashchange' events (@Taym95, #41325), 'dblclick' events on <input> (@Taym95, #41319), 'resize' events on <video> (@tharkum, #40940), 'seeked' events on <video> and <audio> (@tharkum, #40981), and the 'transform' property in getComputedStyle() (@mrobinson, #41187).

Embedding API

Servo now has basic support for HTTP proxies (@Narfinger, #40941). You can set the proxy URL in the http_proxy (@Narfinger, #41209) or HTTP_PROXY (@treeshateorcs, @yezhizhen, #41268) environment variables, or via --pref network_http_proxy_uri.

We now use the system root certificates by default (@Narfinger, @mrobinson, #40935, #41179), on most platforms. If you don't want to trust the system root certificates, you can instead continue to use Mozilla's root certificates with --pref network_use_webpki_roots. As always, you can also add your own root certificates via Opts::certificate_path (--certificate-path=).

We have a new SiteDataManager API for managing localStorage, sessionStorage, and cookies (@janvarga, #41236, #41255, #41378, #41523, #41528), and a new NetworkManager API for managing the cache (@janvarga, @mrobinson, #41255, #41474, #41386). To clear the cache, call NetworkManager::clear_cache, and to list cache entries, call NetworkManager::cache_entries.

Simple dialogs - that is alert(), confirm(), and prompt() - are now exposed to embedders via a new SimpleDialog type in EmbedderControl (@mrobinson, @mukilan, #40982). This new interface is harder to misuse, and no longer requires boilerplate for embedders that wish to ignore simple dialogs.

Web console messages, including messages from the Console API, are now accessible via ServoDelegate::show_console_message and WebViewDelegate::show_console_message (@atbrakhi, #41351).

Servo, the main handle for controlling Servo, is now cloneable for sharing within the same thread (@mukilan, @mrobinson, #41010). To shut down Servo, simply drop the last Servo handle or let it go out of scope. Servo::start_shutting_down and Servo::deinit have been removed (@mukilan, @mrobinson, #41012).

Several interfaces have also been renamed:

Perf and stability

We can now evict entries from our HTTP cache (@Narfinger, @gterzian, @Taym95, #40613), rather than having it grow forever (or get cleared by an embedder). about:memory now tracks SVG-related memory usage (@d-kraus, #41481), and we've fixed memory leaks in <video> and <audio> (@tharkum, #41131).

Servo now does less work when matching selectors (@webbeef, #41368), when focus changes (@mrobinson, @Loirooriol, #40984), and when reflowing boxes whose size did not change (@Loirooriol, @mrobinson, #41160).

To allow for smaller binaries, gamepad support is now optional at build time (@WaterWhisperer, #41451).

We've fixed some undefined behaviour around garbage collection (@sagudev, @jdm, @gmorenz, #41546, mozjs#688, mozjs#689, mozjs#692). To better avoid other garbage-collection-related bugs (@sagudev, mozjs#647, mozjs#638), we've continued our work on defining (and migrating to) safer interfaces between Servo and the SpiderMonkey GC (@sagudev, #41519, #41536, #41537, #41520, #41564).

We've fixed a crash that occurs when <link rel="shortcut icon"> has an empty 'href' attribute, which affected chiptune.com (@webbeef, #41056), and we've also fixed crashes in:

Donations

Thanks again for your generous support! We are now receiving 7110 USD/month (+10.5% over November) in recurring donations. This helps us cover the cost of our speedy CI and benchmarking servers, one of our latest Outreachy interns, and funding maintainer work that helps more people contribute to Servo.

Servo is also on thanks.dev, and already 30 GitHub users (+2 over November) that depend on Servo are sponsoring us there. If you use Servo libraries like url, html5ever, selectors, or cssparser, signing up for thanks.dev could be a good way for you (or your employer) to give back to the community.

We now have sponsorship tiers that allow you or your organisation to donate to the Servo project with public acknowlegement of your support. A big thanks from Servo to our newest Bronze Sponsors: Anthropy, Niclas Overby, and RxDB! If you're interested in this kind of sponsorship, please contact us at join@servo.org.

7110 USD/month
10000

Use of donations is decided transparently via the Technical Steering Committee's public funding request process, and active proposals are tracked in servo/project#187. For more details, head to our Sponsorship page.

Conference talks and blogs

We've recently published one talk and one blog post:

We also have two upcoming talks at FOSDEM 2026 in Brussels later this month:

Servo developers Martin Robinson (@mrobinson) and Delan Azabani (@delan) will also be attending FOSDEM 2026, so it would be a great time to come along and chat about Servo!

23 Jan 2026 12:00am GMT

22 Jan 2026

feedPlanet Mozilla

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.

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…

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…

PocketTube keeps your channel collections neatly tucked away to the side.

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.

22 Jan 2026 11:57pm GMT

Mozilla Localization (L10N): L10n Report: January Edition 2026

Please note some of the information provided in this report may be subject to change as we are sometimes sharing information about projects that are still in early stages and are not final yet.

Happy New Year!

What's new or coming up in Firefox desktop

Preferences updates for 148

A new set of strings intended for inclusion in the preferences page of 148 landed recently in Pontoon on January 16. These strings, focused around controls of AI features, landed ahead of the UX and functionality implementation so are not currently testable. These should be testable within the coming week in Nightly and Beta.

Split view coming in 149

A new feature, called "split view", is coming to Firefox 149. This feature and its related strings have already started landing at the end of 2025. You can test the feature now in Nightly, just right click a tab and select "Add Split View". (If the option isn't showing in your Nightly, then open about:config and ensure "browser.tabs.splitView.enabled" is set to true.

Split view menuExample of split view with Transvision and Pontoon

What's new or coming up in mobile

Android onboarding testing updates

It is now possible to test the onboarding experience in Firefox for Android without using a simulator or wiping your existing data. We are currently waiting for engineers to update the default configuration to align with the onboarding experience in Firefox 148 and newer. We hope this update will land in time for the release of 148, and we will communicate the change via Pontoon as soon as that's available.

In the meantime, please review the updated testing documentation to see how to trigger the onboarding flow. Note that some UI elements will display string identifiers instead of translations until the configuration is updated.

Firefox for iOS localization screenshots

We heard your feedback about the screenshot process for Firefox for iOS. Thanks to everyone who answered the survey at the end of last year.

Screenshots are now available as a gallery for each locale. There is no longer a need to download and decompress a local zip file. You can browse the current screenshots for your locale, and use the links at the top to review the full history or compare changes between runs (generated roughly every two weeks).

Links in Firefox for iOS screenshots gallery

A reminder that links to testing environments and instructions are always available from the project header in Pontoon.

What's new or coming up in web projects

Firefox.com

We're planning some changes to how content is managed on firefox.com, and these updates will have an impact on our existing localization workflows. Once the details are finalized, we'll share more information and notify you directly in Pontoon.

What's new or coming up in Pontoon

Pontoon infrastructure update

Behind the scenes, Pontoon has recently completed a major migration from Heroku to Google Cloud Platform. While this change should be largely invisible to localizers in day-to-day use, it brings noticeable improvements in performance, reliability, and scalability, helping ensure a smoother experience as contributor activity continues to grow. Huge thanks go to our Cloud Engineering partners for supporting this effort over the past months and helping make this important milestone possible.

Friends of the Lion

Image by Elio Qoshi

Image by Elio Qoshi

Since relaunching the contributor spotlight blog series, we've published two more stories highlighting the people behind our localization work.

We featured Robb, a professional translator from Romania, whose love for words and her desire to help her mom keep up with modern technology has grown into a day-to-day commitment to making products and technology accessible in language that everyday people can understand.

We also spotlighted Andika from Indonesia, a long-time open source contributor who joined the localization community to ensure Firefox and other products feel natural and accessible for Indonesian-speaking users. His steady, long-term commitment to quality speaks volumes about the impact of thoughtful localization.

We'll be continuing this series and are always looking for contributors to feature. You can help us find the next localizer to spotlight by nominating one of your fellow community members. We'd love to hear from you!

Know someone in your l10n community who's been doing a great job and should appear here? Contact us and we'll make sure they get a shout-out!

Useful Links

Questions? Want to get involved?

If you want to get involved, or have any question about l10n, reach out to:

22 Jan 2026 6:48pm GMT

The Mozilla Blog: How Mozilla builds now

Headshot of Peter Rojas, Senior Vice President of New Products at Mozilla, wearing a gray sweater and smiling against a white background.

Mozilla has always believed that technology should empower people.

That belief shaped the early web, when browsers were still new and the idea of an open internet felt fragile. Today, the technology is more powerful, more complex, and more opaque, but the responsibility is the same. The question isn't whether technology can do more. It's whether it helps people feel capable, informed, and in control.

As we build new products at Mozilla today, that question is where we start.

I joined Mozilla to lead New Products almost one year ago this week because this is one of the few places still willing to take that responsibility seriously. Not just in what we ship, but in how we decide what's worth building in the first place - especially at a moment when AI, platforms, and business models are all shifting at once.

Our mission - and mine - is to find the next set of opportunities for Mozilla and help shape the internet that all of us want to see.

Writing up to users

One of Mozilla's longest-held principles is respect for the people who use our products. We assume users are thoughtful. We accept skepticism as a given (it forces product development rigor - more on that later). And we design accordingly.

That respect shows up not just in how we communicate, but in the kinds of systems we choose to build and the role we expect people to play in shaping them.

You can see this in the way we're approaching New Products work across Mozilla today: Our current portfolio includes tools like Solo, which makes it easy for anyone to own their presence on the web; Tabstack, which helps developers enable agentic experiences; 0DIN, which pools the collective expertise of over 1400 researchers from around the globe to help identify and surface AI vulnerabilities; and an enterprise version of Firefox that treats the browser as critical infrastructure for modern work, not a data collection surface.

None of this is about making technology simpler than it is. It's about making it legible. When people understand the systems they're using, they can decide whether those systems are actually serving them.

Experimentation that respects people's time

Mozilla experiments. A lot. But we try to do it without treating talent and attention as an unlimited resource. Building products that users love isn't easy and requires us to embrace the uncertainty and ambiguity that comes with zero-to-one exploration.

Every experiment should answer a real question. It should be bounded. And it should be clear to the people interacting with it what's being tested and why. That discipline matters, especially now. When everything can be prototyped quickly, restraint becomes part of the craft.

Fewer bets, made deliberately. A willingness to stop when something isn't working. And an understanding that experimentation doesn't have to feel chaotic to be effective.

Creating space for more kinds of builders

Mozilla has always believed that who builds is just as important as what gets built. But let's be honest: The current tech landscape often excludes a lot of brilliant people, simply because the system is focused on only rewarding certain kinds of outcomes.

We want to unlock those meaningful ideas by making experimentation more practical for people with real-world perspectives. We're focused on lowering the barriers to building - because we believe that making tech more inclusive isn't just a nice-to-have, it's how you build better products.

A practical expression of this approach

One expression of this philosophy is a new initiative we'll be sharing more about soon: Mozilla Pioneers.

Pioneers isn't an accelerator, and it isn't a traditional residency. It's a structured, time-limited way for experienced builders to work with Mozilla on early ideas without requiring them to put the rest of their lives on hold.

The structure is intentional. Pioneers is paid. It's flexible. It's hands-on. And it's bounded. Participants work closely with Mozilla engineers, designers, and product leaders to explore ideas that could become real Mozilla products - or could simply clarify what shouldn't be built.

Some of that work will move forward. Some won't. Both outcomes are valuable. Pioneers exists because we believe that good ideas don't only come from founders or full-time employees, and that meaningful contribution deserves real support.

Applications open Jan. 26. For anyone interested (and I hope that's a lot of you) please follow us, share and apply. In the meantime, know that what's ahead is just one more example of how we're trying to build with intention.

Looking ahead

Mozilla doesn't pretend to have all the answers. But we're clear about our commitments.

As we build new products, programs, and systems, we're choosing clarity over speed, boundaries over ambiguity, and trust that compounds over time instead of short-term gains.

The future of the internet won't be shaped only by what technology can do - but by what its builders choose to prioritize. Mozilla intends to keep choosing people.

The post How Mozilla builds now appeared first on The Mozilla Blog.

22 Jan 2026 2:00pm GMT

The Rust Programming Language Blog: Announcing Rust 1.93.0

The Rust team is happy to announce a new version of Rust, 1.93.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.93.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.93.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.93.0 stable

Update bundled musl to 1.2.5

The various *-linux-musl targets now all ship with musl 1.2.5. This primarily affects static musl builds for x86_64, aarch64, and powerpc64le which bundled musl 1.2.3. This update comes with several fixes and improvements, and a breaking change that affects the Rust ecosystem.

For the Rust ecosystem, the primary motivation for this update is to receive major improvements to musl's DNS resolver which shipped in 1.2.4 and received bug fixes in 1.2.5. When using musl targets for static linking, this should make portable Linux binaries that do networking more reliable, particularly in the face of large DNS records and recursive nameservers.

However, 1.2.4 also comes with a breaking change: the removal of several legacy compatibility symbols that the Rust libc crate was using. A fix for this was shipped in libc 0.2.146 in June 2023 (2.5 years ago), and we believe has sufficiently widely propagated that we're ready to make the change in Rust targets.

See our previous announcement for more details.

Allow the global allocator to use thread-local storage

Rust 1.93 adjusts the internals of the standard library to permit global allocators written in Rust to use std's thread_local! and std::thread::current without re-entrancy concerns by using the system allocator instead.

See docs for details.

cfg attributes on asm! lines

Previously, if individual parts of a section of inline assembly needed to be cfg'd, the full asm! block would need to be repeated with and without that section. In 1.93, cfg can now be applied to individual statements within the asm! block.

asm!( // or global_asm! or naked_asm!
    "nop",
    #[cfg(target_feature = "sse2")]
    "nop",
    // ...
    #[cfg(target_feature = "sse2")]
    a = const 123, // only used on sse2
);

Stabilized APIs

Other changes

Check out everything that changed in Rust, Cargo, and Clippy.

Contributors to 1.93.0

Many people came together to create Rust 1.93.0. We couldn't have done it without all of you. Thanks!

22 Jan 2026 12:00am GMT

21 Jan 2026

feedPlanet Mozilla

This Week In Rust: This Week in Rust 635

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
Rust Walkthroughs
Miscellaneous

Crate of the Week

This week's crate is throttled-tracing, a crate of periodic and throttled logging macros.

Thanks to Paperinik 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.

Cargo

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.

No Calls for participation were submitted this week.

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

464 pull requests were merged in the last week

Compiler
Library
Cargo
Rustdoc
Clippy
Rust-Analyzer
Rust Compiler Performance Triage

Various changes in both direction, but not much has changed overall.

Triage done by @panstromek. Revision range: 840245e9..3d087e60

Summary:

(instructions:u) mean range count
Regressions ❌
(primary)
0.6% [0.1%, 1.6%] 21
Regressions ❌
(secondary)
0.6% [0.0%, 2.6%] 113
Improvements ✅
(primary)
-0.3% [-2.1%, -0.2%] 37
Improvements ✅
(secondary)
-1.2% [-29.6%, -0.1%] 37
All ❌✅ (primary) 0.0% [-2.1%, 1.6%] 58

3 Regressions, 4 Improvements, 7 Mixed; 6 of them in rollups 40 artifact comparisons made in total

Full report here

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

Rust

Cargo

Leadership Council

No Items entered Final Comment Period this week for Compiler Team (MCPs only), Rust RFCs, Language Team, Language Reference 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

Upcoming Events

Rusty Events between 2026-01-21 - 2026-02-18 🦀

Virtual
Asia
Europe
North America

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

I might suspect that if you are lumping all statically-typed languages into a single bucket without making particular distinction among them, then you might not have fully internalized the implications of union (aka Rust enum aka sum) typed data structures combined with exhaustive pattern matching.

I like to call it getting "union-pilled" and it's really hard to accept otherwise statically-typed languages once you become familiar.

- arwhatever on hacker news

Thanks to Colin Bennett for the suggestion!

Please submit quotes and vote for next week!

This Week in Rust is edited by:

Email list hosting is sponsored by The Rust Foundation

Discuss on r/rust

21 Jan 2026 5:00am GMT

The Rust Programming Language Blog: crates.io: development update

Time flies! Six months have passed since our last crates.io development update, so it's time for another one. Here's a summary of the most notable changes and improvements made to crates.io over the past six months.

Security Tab

Crate pages now have a new "Security" tab that displays security advisories from the RustSec database. This allows you to quickly see if a crate has known vulnerabilities before adding it as a dependency.

Security Tab Screenshot

The tab shows known vulnerabilities for the crate along with the affected version ranges.

This feature is still a work in progress, and we plan to add more functionality in the future. We would like to thank the OpenSSF (Open Source Security Foundation) for funding this work and Dirkjan Ochtman for implementing it.

Trusted Publishing Enhancements

In our July 2025 update, we announced Trusted Publishing support for GitHub Actions. Since then, we have made several enhancements to this feature.

GitLab CI/CD Support

Trusted Publishing now supports GitLab CI/CD in addition to GitHub Actions. This allows GitLab users to publish crates without managing API tokens, using the same OIDC-based authentication flow.

Note that this currently only works with GitLab.com. Self-hosted GitLab instances are not supported yet. The crates.io implementation has been refactored to support multiple CI providers, so adding support for other platforms like Codeberg/Forgejo in the future should be straightforward. Contributions are welcome!

Trusted Publishing Only Mode

Crate owners can now enforce Trusted Publishing for their crates. When enabled in the crate settings, traditional API token-based publishing is disabled, and only Trusted Publishing can be used to publish new versions. This reduces the risk of unauthorized publishes from leaked API tokens.

Blocked Triggers

The pull_request_target and workflow_run GitHub Actions triggers are now blocked from Trusted Publishing. These triggers have been responsible for multiple security incidents in the GitHub Actions ecosystem and are not worth the risk.

Source Lines of Code

Crate pages now display source lines of code (SLOC) metrics, giving you insight into the size of a crate before adding it as a dependency. This metric is calculated in a background job after publishing using the tokei crate. It is also shown on OpenGraph images:

OpenGraph image showing SLOC metric

Thanks to XAMPPRocky for maintaining the tokei crate!

Publication Time in Index

A new pubtime field has been added to crate index entries, recording when each version was published. This enables several use cases:

Thanks to Rene Leonhardt for the suggestion and Ed Page for driving this forward on the Cargo side.

Svelte Frontend Migration

At the end of 2025, the crates.io team evaluated several options for modernizing our frontend and decided to experiment with porting the website to Svelte. The goal is to create a one-to-one port of the existing functionality before adding new features.

This migration is still considered experimental and is a work in progress. Using a more mainstream framework should make it easier for new contributors to work on the frontend. The new Svelte frontend uses TypeScript and generates type-safe API client code from our OpenAPI description, so types flow from the Rust backend to the TypeScript frontend automatically.

Thanks to eth3lbert for the helpful reviews and guidance on Svelte best practices. We'll share more details in a future update.

Miscellaneous

These were some of the more visible changes to crates.io over the past six months, but a lot has happened "under the hood" as well.

Feedback

We hope you enjoyed this update on the development of crates.io. If you have any feedback or questions, please let us know on Zulip or GitHub. We are always happy to hear from you and are looking forward to your feedback!

21 Jan 2026 12:00am GMT