As a Safari extensions developer, I'm becoming frustrated with the quality of Safari for Mac. It has too many bad bugs, and they're causing problems for me, even costing me money. For example, there's a bug introduced over nine months ago, which I blogged about before, that prevents Safari users from enabling the extensions they've installed. This bug still exists in Catalina and Big Sur. When the bug first appeared, enabling extensions failed silently, but then later Apple added a (mostly useless) alert on failure, without actually solving the problem. Customers email me mystified, and I even randomly experience the problem myself, since I frequently need to enable my extensions for testing. A few months ago I blogged about a bug in Safari's WebExtensions API that was preventing me from releasing a new extension I was working on. That bug, which is a showstopper for me, is still not fixed either, not even in Safari Technology Preview, much less Safari.
As I was writing this article, I checked Apple's Feedback Assistant, and I just discovered that a Safari bug I filed a couple months ago has a "Resolution" listed by Apple: "Investigation complete - Unable to diagnose with current information". However, I didn't receive any email or other notification about this; nor did Apple request further information from me. I only noticed because I was looking through all of my filed bugs. So this is what it has come to: Apple just decides to give up on my bug and not even tell me. This bug still exists, of course. For the record, the bug is FB8759599 "Safari 14: localhost page can take 30 seconds to load". This affects me because I frequently use localhost for testing extensions (which aren't loaded by file:
URLs, hence the need for http://localhost
), and also for testing my web site before I publish changes to my web server.
Then there's the Safari web inspector, which is an essential tool for an extension developer. The web inspector is part of the WebKit open source project, so fortunately its bug reporting system is public, unlike Feedback Assistant. Six months ago I found a bug in Safari Technology Preview that prevents you from opening the JavaScript console in an empty tab, but unfortunately the bug wasn't fixed, and in fact made its way into public Safari. (What's the point of Safari Technology Preview if bugs found during the preview don't get fixed?) I found another bug a year ago where JavaScript console messages can get lost, and needless to say, it's not fixed either. The worst web inspector bugs, though, are the freezes that occur when I try to search the page resources. The example of YouTube that I gave in the bug report is only one of many sites where this occurs, to this day.
To be fair, Safari sometimes fixes bugs that I report. Nonetheless, the fixes often take painfully long to ship. If I recall correctly, the Safari extensions bug I found that accidentally loads links when you open the context menu took six months to fix. Meanwhile, it was a major problem for my own extension, which uses context menu items for several important features.
The "defense" of Safari will surely be that I'm not the only person who reports bugs, so why should I expect my bugs to get fixed quickly? But I don't view this as a great defense, because if Safari has so many other bad bugs that my bugs have to be ignored for long periods of time, that doesn't exactly speak well of Safari's quality either. And I haven't even mentioned all of the Safari bugs I know about, that I personally found, or that other people found. (How in the world do you lose icon files from your app bundle?) I've focused on a few of the bugs that particularly "bug" me as a Safari extension developer. If you've filed Safari bugs yourself, please "pile on" now and let Apple know that they need to focus on quality.
I don't know why things are so bad, but my suspicion is that the Safari team is trying to add too many features too fast. (As is the rest of Apple, in my opinion.) Ideally, things would "just work", as the saying goes, but short of that, I wish Safari would "just fix" my reproducible (for me) bugs. And if for some reason the bugs not reproducible for them, let me know! It's depressing to take the time to file bugs and try to make the app better, and then see those efforts go to waste.