22 Aug 2025

feedPlanet Mozilla

The Servo Blog: This month in Servo: new image formats, canvas backends, automation, and more!

Servo has smashed its record again in July, with 367 pull requests landing in our nightly builds! This includes several new web platform features:

Notable changes for Servo library consumers:

servoshell nightly showing the same things, but animated
<figcaption>texImage3D() example reproduced from texture_2d_array in the WebGL 2.0 Samples by Trung Le, Shuai Shao (Shrek), et al (license).</figcaption>

Engine changes

Like many browsers, Servo has two kinds of zoom: page zoom affects the size of the viewport, while pinch zoom does not (@shubhamg13, #38194). Page zoom now correctly triggers reflow (@mrobinson, #38166), and pinch zoom is now reset to the viewport meta config when navigating (@shubhamg13, #37315).

'image-rendering' property now affects 'border-image' (@lumiscosity, @Loirooriol, #38346), 'text-decoration[-line]' is now drawn under whitespace (@leo030303, @Loirooriol, #38007), and we've also fixed several layout bugs around grid item contents (@Loirooriol, #37981), table cell contents (@Loirooriol, #38290), quirks mode (@Loirooriol, #37814, #37831, #37820, #37837), clientWidth and clientHeight queries of grid layouts (@Loirooriol, #37917), and 'min-height' and 'max-height' of replaced elements (@Loirooriol, #37758).

As part of our incremental layout project, we now cache the layout results of replaced boxes (@Loirooriol, #37971, #37897, #37962, #37943, #37985, #38349), avoid unnecessary reflows after animations (@coding-joedow, #37954), invalidate layouts more precisely (@coding-joedow, #38199, #38057, #38198, #38059), and we've added incremental box tree construction (@mrobinson, @Loirooriol, @coding-joedow, #37751, #37957) for flex and grid items (@coding-joedow, #37854), table columns, cells, and captions (@Loirooriol, @mrobinson, #37851, #37850, #37849), and a variety of inline elements (@coding-joedow, #38084, #37866, #37868, #37892).

Work on IndexedDB continues, notably including support for key ranges (@arihant2math, @jdm, #38268, #37684, #38278).

sessionStorage is now isolated between webviews, and copied to new webviews with the same opener (@janvarga, #37803).

Browser changes

servoshell now has a .desktop file and window name, so you can now pin it to your taskbar on Linux (@MichaelMcDonnell, #38038). We've made it more ergonomic too, fixing both the sluggish mouse wheel and pixel-perfect trackpad scrolling and the too fast arrow key scrolling (@yezhizhen, #37982).

You can now focus the location bar with Alt+D in addition to Ctrl+L on non-macOS platforms (@MichaelMcDonnell, #37794), and clicking the location bar now selects the contents (@MichaelMcDonnell, #37839).

When debugging Servo with the Firefox devtools, you can now view requests in the Network tab both after navigating (@uthmaniv, #37778) and when responses are served from cache (@uthmaniv, #37906). We're also implementing the Debugger tab (@delan, @atbrakhi, #36027), including several changes to our script system (@delan, @atbrakhi, #38236, #38232, #38265) and fixing a whole class of bugs where devtools ends up broken (@atbrakhi, @delan, @simonwuelker, @the6p4c, #37686).

WebDriver changes

WebDriver automation support now goes through servoshell, rather than through libservo internally, ensuring that WebDriver commands are consistently executed in the correct order (@longvatrong111, @PotatoCP, @mrobinson, @yezhizhen, #37669, #37908, #37663, #37911, #38212, #38314). We've also fixed race conditions in the Back, Forward (@longvatrong111, @jdm, #37950), Element Click (@longvatrong111, #37935), Switch To Window (@yezhizhen, #38160), and other commands (@PotatoCP, @longvatrong111, #38079, #38234).

We've added support for the Dismiss Alert, Accept Alert, Get Alert Text (@longvatrong111, #37913), and Send Alert Text commands for simple dialogs (@longvatrong111, #38140, #38035, #38142), as well as the Maximize Window (@yezhizhen, #38271) and Element Clear commands (@PotatoCP, @yezhizhen, @jdm, #38208). Find Element family of commands can now use the "xpath" location strategy (@yezhizhen, #37783). Get Element Shadow Root commands can now interact with closed shadow roots (@PotatoCP, #37826).

You can now run the WebDriver test suite in CI with mach try wd or mach try webdriver (@PotatoCP, @sagudev, @yezhizhen, #37498, #37873, #37712).

2D graphics

<canvas> is key to programmable graphics on the web, with Servo supporting WebGPU, WebGL, and 2D canvas contexts. But the general-purpose 2D graphics routines that power Servo's 2D canvases are potentially useful for a lot more than <canvas>: font rendering is bread and butter for Servo, but SVG rendering is only minimally supported right now, and PDF output is not yet implemented at all.

Those features have one thing in common: they require things that WebRender can't yet do. WebRender does one thing and does it well: rasterise the layouts of the web, really fast, by using the GPU as much as possible. Font rendering and SVG rendering both involve rasterising arbitrary paths, which currently has to be done outside WebRender, and PDF output is out of scope entirely.

The more code we can share between these tasks, the better we can make that code, and the smaller we can make Servo's binary sizes (#38022). We've started by moving 2D-<canvas>-specific state out of the canvas crate (@sagudev, #38098, #38114, #38164, #38214), which has in turn allowed us to modernise it with new backends based on Vello (@EnnuiL, @sagudev, #30636, #38345):

What is a pixel?

Many recent Servo bugs have been related to our handling of viewport, window, and screen coordinate spaces (#36817, #37804, #37824, #37878, #37978, #38089, #38090, #38093, #38255). Symptoms of these bugs include bad hit testing (e.g. links that can't be clicked), inability to scroll to the end of the page, or graphical glitches like disappearing browser UI or black bars.

Windows rarely take up the whole screen, viewports rarely take up the whole window due to window decorations, and when different units come into play, like CSS px vs device pixels, a more systematic approach is needed. We built euclid to solve these problems in a strongly typed way within Servo, but beyond the viewport, we need to convert between euclid types and the geometry types provided by the embedder, the toolkit, the platform, or WebDriver, which creates opportunities for errors.

Embedders are now the single source of truth for window rects and screen sizes (@yezhizhen, @mrobinson, #37960, #38020), and we've fixed incorrect coordinate handling in Get Window Rect, Set Window Rect (@yezhizhen, #37812, #37893, #38209, #38258, #38249), resizeTo() (@yezhizhen, #37848), screenX, screenY, screenLeft, screenTop (@yezhizhen, #37934), and in servoshell (@yezhizhen, #37961, #38174, #38307, #38082). We've also improved the Web Platform Tests (@yezhizhen, #37856) and clarified our docs (@yezhizhen, @mrobinson, #37879, #38110) in these areas.

Donations

Thanks again for your generous support! We are now receiving 4691 USD/month (+5.0% over June) in recurring donations. This helps cover the cost of our self-hosted CI runners and one of our latest Outreachy interns!

Keep an eye out for further improvements to our CI system in the coming months, including ten-minute WPT builds and our new proposal for dedicated benchmarking runners, all thanks to your support.

Servo is also on thanks.dev, and already 22 GitHub users (−3 from June) 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.

4691 USD/month
10000

As always, use of these funds will be decided transparently in the Technical Steering Committee. For more details, head to our Sponsorship page.

22 Aug 2025 12:00am GMT

21 Aug 2025

feedPlanet Mozilla

The Mozilla Blog: What I learned when I stopped posting my life online, from a former influencer

Woman with orange hair in peach coat and floral bag standing by blooming tree.<figcaption class="wp-element-caption">During my influencer and blogging era, 2016. </figcaption>

This essay was originally published on The Sidebar, Mozilla's Substack.

I was an influencer years before it became mainstream in 2016. I shared my outfits on my fashion blog almost daily, along with recipes, travel itineraries, lifestyle photos, you name it. My blog upheld a twee aesthetic that I stuck to religiously. I made content (it wasn't called that yet), curated an aesthetic (it also wasn't called that yet) and blurred the lines between what was real and what was for the curated version of me. I was good at it and made money from sponsored content and paid ads. But I learned how overcurating can affect every part of your life.

I was always thinking about the shot I needed to get, if a restaurant was going to match my aesthetic, or if I needed to go thrifting to purchase new clothes because I had gone through most of my clothes in my previous blog posts. In the early 2010s, blogs that did well were a one-stop-shop for all lifestyle content. It was a lot of work, but that's what I strived for.

I was an influencer when the term was just "blogger" and things were slower, but I never felt that. I struggled to keep up even with caffeine pills, being in my early 20s with a lot of energy and finding out that I liked being online and enjoyed it there. But by the time the term "influencer" entered common conversations among coworkers and family, I was burnt out. I was over it, exhausted from overcurating my life. So I decided to stop posting.

Lesson 1: The best photos aren't staged

I kept my website up for a while, then shut it down completely. Going "offline," I found that the best photos are the ones that are not staged, and you will find yourself with the most beautiful pictures of yourself. Of course we all know this, we all want those curated photo dumps for Instagram and candid shots of us just looking carefree… but what I'm saying is stop asking for photos altogether. Let people take pictures of you unasked. The best photos of myself were during the years I was offline because I didn't think about any photos in the same way. These were pictures I didn't ask for, therefore I wouldn't have that many to choose from. It felt almost like film pictures I developed, I had to pick from one or two.

Lesson 2: Hobbies hit different

I also found that you have a lot more free time when you don't have to be online. I still scrolled sometimes, I still read blogs, I still downloaded TikTok in 2020, but I didn't feel the need to scroll in the same way. When I was offline, I was only scrolling for pleasure like finding videos of a Furbie cult or Calico Critters collector drama.

Going 'offline,' I found that the best photos are the ones that are not staged, and you will find the most beautiful pictures of yourself.

But when I was blogging, and when I got back online for Tiktok and my Substack, I was scrolling for strategy. I needed to know what current trends I should talk about or follow, and I felt if I missed something online it could hurt my credibility. When I stopped blogging, I almost didn't know what to do with my extra time - I'm a girl with hobbies and friends and I was in my 20s, so this says a lot! I spent so long curating my online presence, picking out outfits, planning photoshoots, and replying to emails (not even to mention actual blogging!) that I had SO much free time. I could actually focus on my hobbies… for me. I didn't need to take photos of everything nor look at the menu of the restaurant before I went. Over time I got used to it and loved it. I no longer had to collect stamps or postcards, which was just something I did for my blog. I even took up new hobbies, ones that couldn't be translated into my blog or online, like watching anime and learning how to work a grill. Camping was not aesthetic enough for my blog, though I still went when I was blogging. After quitting I felt like I could go more often, because there was no post being counted on that weekend. I could do whatever I wanted without the fear of "what will I post?"

Smiling woman in bright yellow dress with sunglasses standing in sunny green field.<figcaption class="wp-element-caption">In 2020, after I had been offline for a few years and before joining TikTok. </figcaption>

Lesson 3: Your personal style will change

It's been said that people can tell how much screentime you spend by how you dress, and I agree. If you are wearing everything trending, experimenting with the cutting edge micro trends and aesthetics, you are definitely online and probably online a lot. There is nothing wrong with that (besides overconsumption, but that is for a different topic), but when you exit an online space you exit those types of information. While blogging I was wearing tons of layers, everything pre-1980s vintage, and uncomfortable hats and fabrics. I bought my first pair of athletic leggings with pockets after I quit blogging and I wondered why I deprived myself of this type of comfort for so long. You will be dressing for you and those only physically around you, not other people online and not trying to go viral. It will be different and you should embrace that. It's a luxury not everyone has.

Lesson 4: You learn the things you actually enjoy, and those you don't

It took time to adjust to being offline, but those times might have been my happiest. Nothing felt calculated anymore. Once you stop posting, you're not in the public eye in the same way. I didn't worry if someone in my city recognized me at the grocery store in my pjs and hungover. I started being sillier. I decided to use some extra time I had to write more poetry and do readings at local venues. It took a while for me to realize this, but after I took down my blog there was no real trace of me. I could be anyone. I was just Lindsey. Not Lindsey the fashion blogger, just Lindsey.

I started being sillier. I decided to use some extra time I had to write more poetry and do readings at local venues. It took a while for me to realize this, but after I took down my blog there was no real trace of me. I could be anyone. I was just Lindsey. Not Lindsey the fashion blogger, just Lindsey.

Now you have permission to cut out what you don't really like. I hated selling vintage clothing, which was part of how I made money with my blog. I would buy so many clothes so I could wear new items in my posts. It was very time consuming. Vintage reselling can be exploitative and I didn't like that. I also really did not like the way I dressed anymore. My readers responded the best to very "true vintage" looks (all items at least 20 years old) and I had been over that for years. I liked vintage band tees, leopard print, and chain link necklaces at this point. When I wore different looks, my views went down. My collabs, how I made money, were usually with vintage-inspired fashion companies, so I couldn't change my look or I would lose money. I didn't feel like rebranding myself either. But I changed my style anyway.

When I quit blogging and influencing, I realized how unhappy I was. I was chasing cheap dopamine and working 24/7 to barely make ends meet, and while it was fun for a while, it was only for a while.

Around December 2023, I went back "online" and started posting regularly on TikTok. I told myself it would always be about the things I say, what I want to wear, and what I want to write - never chasing paid sponsorship or selling clothes to my followers. Although, you cannot escape thinking about the algorithm if you are online and making money and funding a career. But I know the boundaries and what life is like when I'm not creating content. I specifically choose not to do "influencing" when coming online again because when I'm not trying to sell myself to brands, I can truly be myself. For me, creating content is a job, not a lifestyle. Ultimately, I'm building a life I just want to be in - online or not.

Take control of your internet

Download Firefox

The post What I learned when I stopped posting my life online, from a former influencer appeared first on The Mozilla Blog.

21 Aug 2025 5:39pm GMT

Don Marti: building wealth the privacy way?

Previously: advertising personalization: good for you?

Looks like the Dubé et al. paper, a review of claimed benefits for personalized advertising, is making the rounds again. The Intended and Unintended Consequences of Privacy Regulation for Consumer Marketing by Jean-Pierre Dubé, John G. Lynch, Dirk Bergemann, Mert Demirer, Avi Goldfarb, Garrett Johnson, Anja Lambrecht, Tesary Lin, Anna Tuchman, Catherine E. Tucker. One argument that the paper makes against restricting personalized ads is that

Current regulations tend to favor high-income consumers with stronger privacy preferences.

We know that people have different preferences about personalized advertising and, of course, that some people have more money than others, but more research needs to be done to understand the connection between how much money someone has and how much value they put on privacy and personalized advertising.

The idea that more privilege of some kind leads to less tolerance for personalized ads seems implausible. Having more money makes your experience of personalized ads better. Personally, I'm well enough off that in an ad-supported context where I'm identifiable, I get pretty high-quality personalized ads on average. SaaS subscriptions, fancy conferences, sharp outfits-and far fewer of the deceptive offers that older and/or poorer people get, or that I get when less accurately targeted. If it were just about preferences being formed by users based on their current income or net worth, then the richer people should like the personalized ads more.

Other news and academic literature suggests a much more plausible cause and effect relationship. It's not that wealthier people choose privacy over personalization, but that people who choose privacy build more wealth. Although a typical personalized ad is likely to be somewhat better than a typical non-personalized ad-because an ad campaign with a creative budget is likely to also have a data budget-the benefits of personalization, of usually getting an ad that's better matched to you, are swamped by the risks of being more accurately targeted for a win-lose deal.

In a recent announcement, Google called turning off personalized ads a protection. If it's a protection, what are the users who don't get the personalized ads being protected from? One answer is that they're being protected from the kinds of targeted win-lose offers-for predatory finance, gambling, and deceptively sold products-that interfere with building wealth.

From a policy point of view it will be important to address the question: are people with more money choosing privacy, or are people who prefer privacy accumulating more money? If it's the first, then a lot of the Dubé et al. arguments would apply. But it it's the second, it would be counterproductive for a state to interfere with wealth-building by its residents by pursuing policies that make advertising personalization harder to avoid. More easily available privacy protections would tend to increase prosperity in that state in the future.

Large platform companies already have some data that would help understand this issue, because they have data or inferences about a user's age, net worth and privacy preferences. I suggest a research project.

This is another one of those questions that personalized ad advocates have the data to answer but somehow haven't.

More: A related study would be an easy experiment to support behavioral advertising (or not) which would look at individual consumer outcomes like purchase satisfaction instead of net worth changes over time.

Bonus links

Finish This Quickly. by George Tannenbaum. When I was a kid, Listerine used to spend millions advertising. I probably haven't seen an ad for Listerine for 25 years. If I go to one of the two remaining drug stores in America, CVS or Walgreens, they have a store brand that looks identical in every way to Listerine, yet it costs probably 40% less. All those millions Listerine used to spend justified spending more for Listerine. Now, I have no reason to. So I buy whatever's cheapest. Lack of advertising, short-term thinking, took Listerine (and hundreds of other brands) from a leader to a too-expensive parity.

Minnesota attorney general sues TikTok over harm to teens by Clay Masters, Nina Moini and Aleesa Kuznetsov. The lawsuit says TikTok has violated the law by designing features that can cause children to compulsively and excessively use the app such that they are mentally, physically and financially injured.

US (finally) issues warning about crypto ATMs by Bob Sullivan. As I mentioned, there really isn't a use case for these fast-proliferating devices. Well, there's one. When a criminal has a victim confused and manipulated, the fastest way to steal their money is to persuade them to drive to the nearest crypto ATM and feed the machines with $100 bills. I've talked to countless victims who've told me harrowing, tragic tales of crouching in the dark corner of a gas station, shoving money into one of these machines, terrified they are being watched. In fact, they aren't. Employees are told not to get involved. So victims drive away, their money stolen in the fastest way possible. The transfer is nearly instant, faster than a wire transfer, and irrevocable.

Meta receives 48 hour warning over illicit gambling ads in Brazil by Graeme Hanna. The parent company of Facebook, Instagram, and WhatsApp has been instructed to remove the content, following a search of Meta's ad library, which contained hundreds of active advertisements from profiles lacking the authority to promote gambling. (related: some ways that Facebook ads are optimized for deceptive advertising)

British father issues scam warning after common Google search almost costs him £30k by Arthur Parashar and Poppy Atkinson Gibson. Answered fairly quickly which I supposed should have been a red flag. Normally you end up on hold for a while.

Cannes Special: How Google's Ad Spam Secrecy Alienated A Generation Of Creators by Jonathan Bellack. Choosing secrecy over trust poisoned AdSense's publisher relationships. Google effectively treated every AdSense web site, even ones in good standing, as if they might actually be a covertly metastasizing spam monster straight out of John Carpenter's The Thing. If the spam algorithm caught your site in its dragnet, you were presumed guilty unless you could prove your innocence. This made Google look like the bad guy in four common situations….

21 Aug 2025 12:00am GMT