I'd Like to Start Using Firefox Again

I'd Like to Start Using Firefox Again

I mostly use Chrome, but I'd like to switch to Firefox. There are plenty of good reasons to use Firefox instead. Chrome is made by Google, and Google sells a lot of advertising, which means they want to know which ads you might like so that they can keep profits high. This has lead to various tracking methods that Google claims are better for your privacy (but still good enough for advertising). Google has also made efforts to reduce ad-blocker usage, like Extension Manifest Version 3, or blocking users with ad-blockers enabled on YouTube.

I am generally okay with using Google's services and products. I like Android and I really like my Pixel 7 that I currently use. I use Google Workspace for my business since it's so much simpler than Microsoft 365 if you're just one user. I like their Nest speakers, hubs, and thermostats (although Home Assistant is always improving and I will eventually de-Google my smart home ecosystem). As a developer, Google's API documentation for their products and services is excellent (Microsoft has some chating up to do).

In my opinion, Google isn't as quite as evil as other Internet giants like Meta. For example, Google recently agreed to pay $100 million CAD to Canadian news companies in accordance with the (rather flawed) Online News Act, Bill C-18. Location History (soon to be called Timeline) is still an opt-in feature that you have to turn on yourself. Google has also recently changed how your location history is processed, making it possible to only store the data on your device and reducing the default retention period to 3 months. I imagine Google found the increase of requests from law enforcement from just under a thousand in 2018 to tens of thousands in recent years to be very annoying.

For me, there are a few important reasons that Firefox won't be replacing Chrome anytime soon.

Lack of Support

Firefox doesn't support a few core web technologies that I use often or sometimes daily.

Progressive Web Apps

I use, work on, and develop a few progressive web apps – so this is a major roadblock for me. Obviously Chrome has the best support for PWAs right now.

Safari (macOS Sonoma and up) also recently gained better support for what Apple refers to as Web Apps. Most properties of the Web App Manifest are supported, like names, start URL, theme color, icons, etc. Notably, they oppose the supplementary Application Information manifest members (https://webkit.org/standards-positions/#position-49). The reasons behind this, of course, are related to why Apple does not want to allow side-loading apps on iOS. Once legislation in the EU and Japan forces Apple to open iOS to third-part app stores, their negative position on the remaining manifest properties isn't going to make much sense.

Interestingly, Mozilla is reluctant to mention on MDN that Safari supports PWAs, since any website can be installed as a "Web App". Websites can optimize the user experience though and take advantage of PWA features like notifications and launching as a standlone app.

I'm curious to see how side-loading will play out for iOS. It is the dominant platform in some parts of the world and will become another attack vector for malicious actors, spyware vendors, and the like. iPhones are also popular with the older generation, like my Grandmother. We originally gave her one a Samsung Galaxy that had been replaced by a newer device, not without some issues. After finding a relatively recent, but used iPhone, no more issues! (Although she still sends her messages through iMessage instead of SMS to me). I use an Android phone, and have installed apps from outside the Play store before, but I know what I'm doing and how to keep my device safe.

Passkeys

Yet again, Firefox is the one remaining browser that does not have full support for Passkeys. It looks like they are working on support for this, though. Not to be confused with WebAuthn however, as Firefox does already have support for hardware security keys, like the YubiKey.

I like Chrome's implementation of Passkeys. For example, when a site asks for my Passkey to sign in, I can choose to use my Google Pixel, my hardware key (a YubiKey), or my password manager (1Password). I often use my phone since my keys are usually not close to me desk. Even when I do have my keys nearby, it's a bit of work to find a USB port, plug it in, tap the button, unlock the YubiKey with my PIN, re-insert and tap the button again. On the phone, just provide your PIN or fingerprint and you are done.

Web Serial & Web USB

Mozilla has taken a negative position on this standard, seemingly due to "security" reasons. If Mozilla could explain in a bit more detail what "adequate safeguards" would look like, that would be nice.

Currently, in Chrome, the website asks for permission to see a list of USB devices or serial ports (that you, the user must approve or deny). Then, you must select a device from the list before the website can interact with it.

Why would someone want serial or USB access from a browser? There are a number of good reasons!

I have Home Assistant at home, which has excellent support for ESP32 devices though their ESPHome project. A common (and surprisingly user-friendly) way of flashing firmware to these devices is using a web-based utility.

Web - ESPHome

There are also a number of web-based IDE for devices like the Arduino. Rather than downloading and installing the IDE nativity on your computer, you could upload sketches from your browser. That's quite a bit safer for people who are starting to learn about microcontrollers, since they are not installing anything on their computer.

I also created a web-based serial console as a quick project just to see what I could do with Web Serial.

Sure, there are valid security concerns with such powerful access to devices. Serial is at least a simpler protocol compared to USB, so I would rather see support for that first. If you're an IT administrator (or motivated power user), Chrome provides policies that allow complete control over which sites (if any) are allowed to use the APIs. Additionally, there are policies that can control which devices can be enumerated for USB or Serial access.

It seems like I'm not the only one who is missing this API in Firefox either:

Fully support Web USB and Web Serial
Web-based IDEs like Arduino and Github Codespaces are now commonplace. They are hobbled in Firefox due to an inability to access development boards without installing extra system software, which rather defeats the purpose of having an IDE that runs in your browser. This is not the case on Chrome, w…

Safari also does not support Web Serial/USB. This was previously listed on the WebKit Standards Positions page, but has been removed since I last looked there. I don't use Safari (or macOS) most of the time anyway.