Safari Ruined My Tuesday
fly.io
fly.io
There is a CSS bug.
CSS bugs are dirt common. It's a miracle that there are as few CSS bugs as there are. However, I remember IE6. IE6 was a total fucking mess. Everything was broken on IE6. It wasn't just a bug, it was a complete support nightmare.
I routinely encounter problems with CSS that reveal maddening differences between Chrome, Firefox, and Safari. That's just for desktop. But it's still way better than dealing with IE6.
But still, most CSS bugs aren’t so severe.
I knew it'd be this number right away, because it's also the maximum screenshot height thanks to being the maximum height of a surface in Chromium (Actually last I checked this technically depends on the GL backend used, but 16kpx seems common)
Back in 2000, I was living in a new city, and cold-calling graphic design firms. At the time, most of the web looked like utter ass, and my feeling was that it made more sense to try to be the in-house developer for designers, rather than try to bring design to web development firms.
So I put together a resume with my personal URL placed prominently across the top, and knocked on the door of every graphic design firm in Portland. I met a bunch of confused designers, and didn’t get a single call or email back. I noticed in passing — and importantly to this story — that the whole industry was still wedded to Macs running the non-memory-protected OS 8. Months passed and my savings trickled away.
Eventually out of desperation I took a job at a shipping company that was rewriting their in-house software suite. I noticed that they had a couple dusty Macs in the corner for browser testing that they never bothered doing, and thought it might be amusing to see how my site loaded.
It turned out that there was an error in the CSS engine in MSIE Mac that crashed the system. Not the browser, the entire computer. Click, smash. I realized with horror that I had spent months crashing the computers — along with the unsaved work — of every graphic designer in Portland.
On some computers without enough memory the "fix" crashed the entire OS with a bluescreen (no idea what the bug was because I didn't have windows, and because... well it's windows, I think I developed it in WINE!). I only found this out through a client complaining about their clients computers bluescreening when visiting their site... this was probably 2008-ish, so not exactly peak IE6, but it was the phase where a bunch of orgs still forced everyone to use it under the ridiculous premise of "security".
Indeed. While Safari does have its problems, it is a long, long way from being as bad as IE used to be. I recall one project where making it work on IE required that about 30% of the code be rewritten.
Then the time card website upgrade, which only worked in ie.
So now log onto Unix, use a VPN (Citrix) to log onto a windows NT machine, then use IE. It had to be done daily and wasn’t fun.
Most competing browsers chose to implement IE6 rendering (border box model, quirksmode etc), bug-by-bug. To at least have some of those "built for ie6 only" websites functioning and looking OKish.
But when those quirks would break the website on anything but IE6, many webmasters (is that still a function-title in 2021?) would not care, or not get budget to fix it: "96% of our users use IE6, why spend time for those 4%?". (which also begs the question: what are those 4% doing on a website that doesn't work at all for them? Shouldn't that be 100%/0%)
We were pretty much stuffed due to depending on iframes. Some users are stuck on that version of iOS because their device is "too old" for Apple's liking and we have to tell those users we can't support it, which is horrible because we are effectively being used by Apple to coerce those users to throw their devices away...
> Oh dear God.. Clearing history on Safari iOS closes all currently-opened tabs?! Why is there nothing that warns you of that?! Why does clearing history on mobile work differently from the way it does on mac? I had 60+ important tabs open and now they're gone!!
> I had so many notes, bookmarks, and links I needed to use in my course + so many pages unrelated to work, all open for later reference. And no I don't have a backup to restore from. What the heck, Apple?!
To each their own, I guess. Just don't get mad when your browser crashes from overloading with tabs, or when you clear your history and it triggers the expected behavior of closing them. It would be a huge privacy concern if your open tabs didn't close when you clear the browser history.
Regarding crashes, I fully expect that a browser which crashes or gets forcibly closed (e.g. the computer losing power) will restore all the open tabs afterwards, and modern browsers do succeed in doing that, if they did not, I would consider that as a bug to be fixed.
This actually gave me an idea: a web browser with a feature that automatically saves open tabs into a "tab list," which functions the same way as bookmarks. Oh wait, that's the browsing history.
Also, I must point out that your choice of words with respect to users who have different habits than you - "PEBKAC", "need to take accountability for not using browsers correctly" is condescending, arrogant and simply rude - please do not do that. Not respecting users' choices and behavior is not an appropriate way to design user interfaces and is not an appropriate position from which to argue how user interfaces should be implemented. If browsers provide functionality for more than one tab, then browsers must work properly for more than one tab. In this case, the expected functionality for n=2 is the same as for n=1000, so the number of open tabs is not particularly relevant.
The swapping behaviour seems to be good at stopping leaky sites from ruining your browsing experience.
Personally I am also guilty of using tabs like bookmarks. Especially on mobile. Though I do think that if the aggressive swapping wasn’t done, this behaviour wouldn’t be so prevalent.
50 tabs open is an indication that there is a stage between "I am actively reading" and "I care about this enough to make a permanent record."
My use case for tabs is quick ingestion of information that I tend to look at immediately, in rapid succession. Say, a Google search for something, and I open the top ten links to ingest the info.
I do not use bookmarks or keep tabs open. I do not save browser history either. Everything important to me, for the past or future, is in my head. If I want to bookmark something, I'll make a shortcut instead. Hacker News is a good example of a shortcut I'll make on my homescreen.
Overall, I think it's important to exercise our memory or we risk losing it. Having a cognitive load is important to our aging brains, and I feel that things like bookmarks and open tabs reduce our cognitive load too much. There are also privacy merits to not retaining bookmarks, tabs, or browser history. My ideal web browser is completely stateless.
Precisely. Personally, I created a browser extension[0] for myself where I just save the webpage and set a reminder to read, and then just close the tab. This way, I just close the tab immediately, and then I would be able to revisit the page later via reminders. This kind of works fine for me.
As the tweeter mentions, no other browser has that behaviour, nor does Safari on MacOS, nor did older versions. A sibling comment also reported not being able to reproduce it, so it sounds like a bug - in any case, definitely not expected behaviour.
Luckily it was really just work "in progress", but never the less I've lost information. Which shouldn't happen in 2021.
This just doesn't seem a reasonable expectation that these are preserved - they would also be lost if the computer crashed wouldn't they?
If it's important then save it.
Of course, bugs and disk corruption happen, but you need more than a computer crash to lose all your tabs.
And Firefox has multiple backup of sessions to the point even if your previous session was corrupted you can still recover a session saved slightly earlier. This was partly done because there are people ( like me ) who have hundreds if not thousands of Tabs opened and they ( me ) complain a lot about it.
Chrome made something similar and put in protection that may corrupt the ex-session files. To the point for nearly a decade browsers have had bullet proof session restore. ( Apart from Safari which still happens from time to time )
Yup. You might have to root around in the profile's directory, though, which not every user knows how to do.
But it being a possibility is absolutely great.
> This was partly done because there are people ( like me ) who have hundreds if not thousands of Tabs opened and they ( me ) complain a lot about it.
Same.
In 2000, maybe, yes. But nowadays all browsers write important parts of their state to disk and will recover that on crash. If you do a `sudo reboot now` in a terminal, you'll find firefox opens all tabs when rebooting.
A lot of the content in those pages will be gone; e.g. sessions, SPA/JS-in-memory-state or this comment in a textbox before submitting. But the tabs, their URLs and even the placement of tabs is restored.
I have seen iOS on iPad suddenly start with a set of tabs from some time ago, though, and that can look identical to “losing all tabs”. Can’t repro that either, but it seems to happen after one runs multiple Safari’s side by side and then went back to full-screen (if you do that, multiple Safari’s show up in the Task Switcher)
Either way I think this is a bug, not by design.
I hope some point in the future Apple untie Safari from macOS and iOS so they can be updated independently without having to wait months to operating system updates to come out..
But they aren't backported on iOS, I assume purely for marketing (look at our new tab layout! you'll get it in the fall), which doesn't make sense considering the last time anyone cared about a browser feature was probably when tabs were added to IE7.
Take Chrome for example, where there's roughly an update every 60 days and the option for them to push out security fixes quicker.
Imagine having to wait for an operating system update (major or minor version) to just get the latest secure version of Chrome. That's pretty much where Safari is, especially on iOS.
Don't get me wrong, I think Safari gets a lot of unwarranted hate and it can certainly be a bit quirky here and there, but if they didn't have to wait for the next major/minor release of macOS/iOS to update Safari I think it'd be in a much better place.
There are severe bugs in iOS Mail app for instance that have been there for years, through major iOS versions. How difficult would it be to have a team dedicated to fixing bugs outside the release cycle? It would provide a great environment for up and coming developers. And I can’t help thinking that fixing these paper cut issues would gain Apple respect, maybe not from the average user, but certainly from the sort of user that notices those details.
And perhaps also an easier way of raising bugs…
Google wants everything to be done in the browser, their browser, so they can track everything without cookies to sell ads
On the plus side, our competitor's product didn't work at all. So I guess it's not all bad.
In this case, Catalina had worked fine, and upgrading to Monterey fixed the issue. So props to Apple for fixing the problem. However, at the same time, our app worked flawlessly in both Firefox and Chrome running on the same hardware. Granted, it's not as simple as pointing the finger at Safari. The issue was a combination of Safari's behaviour paired with less than perfect graphics drivers.
Although, this is just one example. Mobile Safari not supporting full screen APIs on iPhone, but supporting them on iPad is just, well, weird. Is that a conscious effort to cripple the web on iPhone, or could they just not figure out the UX?
That said, I agree with you on custom video UIs being horrid.
Honestly I don't know the reality some HN commenters live in.
And FF isn't keeping up :( WebUSB for example.
About the only worse thing would be a WebPCIe.
Given the seemingly extensive support for doing emulated USB passthrough/redirection to VMs, I'm assuming people have looked into the security implications to the host.
Edit, here's how Google justifies the existence of WebUSB (https://web.dev/usb/):
"""
Let's see the behavior you could expect with the WebUSB API:
1. Buy a USB device.
2. Plug it into your computer. A notification appears right away, with the right website to go to for this device.
3. Click the notification. The website is there and ready to use!
4. Click to connect and a USB device chooser shows up in Chrome where you can pick your device.
"""
The goal is to make Chrome the OS. As long as your USB device works on Chrome, who cares about it working on the rest of the system. Absolute madness.
I would like to see a strong competitor to Chrome someday though... - Firefox still has weird issues occasionally (most recently scroll position randomly jumping sometimes). I still keep it around though because its sane when it comes to standards and will remain sane even if things like HW acceleration are not available. - Safari is out of the question as it is not even cross-platform (might as well be IE6) - Chromium and derivatives aren't distinct enough from Chrome and a lot of the new ones have weird cryptocurrency integrations that just don't feel right. - Is Opera still alive?
It's a bit funny, and a bit sad, that this wasn't always so; I rather liked the Windows version of Safari, and IE for UNIX was apparently pretty good.
I don't miss doing web dev in the Win XP days when one had to test everything on IE, Chrome, Safari, Opera, Firefox, etc. but at least there were options back then and things legit ran with different HTML and JS engines.
Now it's just Chrome/Chromium and Firefox representing cross-platform browsers, and most other things are platform specific WebKit mods or Chromium reskins...
At the moment. Apple has a fairly long history of keeping cross-platform ports alive even if they aren't publicly available (that's why the transitions from 68K->PowerPC->Intel->Apple Silicon have been relatively smooth).
I would bet that Apple could roll out a cross-platform Safari in fairly short order, should the powers that be decide that it makes business sense.
I get that Apple are not trying to make a Chrome/Chromium competitor because it is not worth it for them and in that they have succeeded --- Safari is indeed not a competitor to Chrome/Chromium... So... good job?
I don’t fully follow that logic. There never was a cross-platform Mac OS until PowerPC. The 68k to PowerPC transition had the first PowerPC version running most of the OS in emulation, and an incredible hack (in the good sense) to allow 68k code call PowerPC code and vice versa for all the different calling conventions that the 68k version of the OS used.
I think the later transitions only worked because they had moved to the Unix-based Mac OS X before that, ditching lots of assembly code. It’s Unix that’s portable.
For both PowerPC to Intel and Intel to Apple Silicon I guess it also helped that they already had code for lots of time-critical parts of the OS. For the first, they had Intel code in QuickTime for Windows, for the second, ARM code in iOS.
If any weirdness shows up in Chrome, you'll just end up comparing it to IE6.
Last I checked Safari unlike Firefox and Chrome is not cross platform.
Small aside: Webkit browsers used to have problems with CSS (especially things involving 3d) when hardware acceleration is unavailable. Spent so many hours back in the day debugging why certain CSS effects did not work. Switched to Firefox and worked like a charm... Only really understood the problem when I eventually switched to a system with HW acceleration support.
'Cause if it isn't then it's not really a good proxy for testing Safari behavior in this context...
How do you that if you don't own a mac?
Whereas you’re literally saying you’re happy to walk away from over 35% of mobile users, while telling them to do something they can’t do without replacing their device. That’s… one way to run a business.
The amount of business we would be losing by ignoring mobile safari users is staggering. For whatever reason it's also the majority browser, I dont think its safe to assume that the users of your site using safari are equal to the percentage of the market share even.
Ignoring it is a very unusual stance unless your site/app is basically exclusively desktop.
Not in 2006 no. MS started providing free VMs for browser testing circa 2013, after the release of IE10.
Say what you will about IE, at least Microsoft make an attempt to make it available to everyone (via free Windows VM preloaded with specific IE version).
1. Tell customers it will cost x more money to fix bugs on Safari (likely zero will pay this premium)
2. Put a notice or banner for Safari users that they are using a non standards compliant browser and they may see minor or major issues and maybe should use Firefox or Chrome.
3. Educate customers on standards and show them alternatives so they can do the same for their customers.
4. Record actual brower useage data and demonstrate the low count of actual Safari visitors and star back at #1 above with this newly applied info.
safari and browsers aside, there is something bigger going on. there is a massive disconnect between applications users and makers nowadays. i have started to think that they a) don't care b) have misaligned priorities c) have weird notions of "acceptable" errors.
i have a long list of applications that break every time there is an update. even UX updates introduce bugs nowadays. i have started to dread updates and upgrades.
we have lost all notion of stability.
As for 'acceptable' errors, I find software to be pretty reliable these days. I remember way more things being messed up back in the day...
Who will the developers' manager blame: Apple or the developers?
Those updates broke a lot of websites - you might have noticed SSO failing, iframes failing, or websites confusing unmodified Safari users for adblock users.
Firefox adopted the changes a bit later. By the time they made the switch, I think most had resolved their sites because of Safari. Last I read, Chrome is slated to implement similar for 2022.
Not intended to be a defense of Safari, especially for OP's bug. But at least some breaking changes were deliberate and in the name of privacy enhancements.
Updates to Wordpress / WooCommerce and accompanying plugins can make one go suicidal.
In one case the code failed because the form object there doesn't implement the method to validate and submit. In another, it wasn't sending a form field if it was styled with "display: none;" (had to change to "left: -9999px;"). In another, playing a non-muted video would error out some of the time, if clicking an element wasn't recognized as a user event. In yet another, the mobile version refused to center text inside <button> no matter what. And so on.
Except that it doesn't, you can still focus those with keyboard and click them. You should always disable buttons with `disabled` property instead of that hack.
Does anyone have any insights into how the Safari team functions at Apple, and why they're not catching up?
After a bunch of investigation and rabbit holes it turned out that it was an app issue where the "_" character wasn't being filtered from sub-domains.
https://my_name.domain.com -> works in Chrome, not in Safari
This is interesting to me as Safari is _correct_ in their implementation (that the underscore character isn't valid in domains), but again an instance of FF+Chrome working where Safari doesn't.
It's IE/Netscape all over again; a big driver of bugs back in the day was the one of them (usually but not always IE) was overly tolerant of some sort of bad behaviour).
It's fine to criticize Safari and encourage Apple to do better in the space, since Apple isn't super incentivized to improve Safari. But this narrative that always targets the browser with the smallest feature-set at any given time will only stop when all browsers are Chromium based. (At which point they'll start complaining about other browsers using a Chromium version that's slightly behind Chrome.)
To clarify: it's not an attack on developers of Safari. The point is that Apple is severely underinvesting while at the same time blocking competition.
I’m curious if more explicit selectors would’ve fixed this, since the * exposes you to anything weird about your layout.
On the one hand, you have Safari whom has a parent company that isn't interested in making it have useful feature parity with the others because it'll then allow escape from their gravy train app store (fully working PWA's, non-compete with rendering engines in iOS). Their lack of keeping up is starting to look a bit like IE6 days.
And on the other, you have Chrome whom has a parent company that claims it wants to improve privacy (FLoC), but to me it is more of a "pulling the ladder up on everyone else" because they have so many other methods to track you (DNS, GA, Android, etc.) that limiting everyone would be disingenuous. Pushing AMP is another example of bullying behavior.
Tell your manager that you want the web site to support Firefox or Brave or something else, and they'll tell you it's a waste of time.
Tell them that the web site won't work on their MacBook, and it's a four-alarm fire.
In a lot of ways, I wish Safari would deviate even more from Google's "standards" just so that maybe it would pull Big G back to the center some how.
The problem with Safari is that they either simply haven't, and, in some cases, even flat out refuse to implement certain standards that they themselves have had a hand in establishing. And then most of what is available comes half-arsed, undocumented, and is not supported/iterated upon.
[0] https://gs.statcounter.com/browser-market-share/desktop/worl...
I was actually referring to the proper global standards that are set forth by the W3C [1] and WHATWG organisations (now merged... I think). Both of which all major browser vendors are registered and actively contributing members of.
[0] https://web.dev/
This is a terrible argument. That an inferior, proprietary, broken browser made by a company trying to cripple the web to protect their lucrative walled garden should be more popular in order to prevent Google from having more market share just for reasons?
Chrome became popular and is popular because it works. It's cross-platform, it implements all the newest standards, it's just a good product.
> Chrome became popular and is popular because it works.
Google promotes Chrome by leveraging the most valuable real estate on the web: the google.com homepage, and GMail popups. This ad space is unavailable to everyone else. They also bundled Chrome with Adobe Flash installers.
I agree Chrome is a good product, but Google uses their influence in search and email to gain Chrome market share. That's fine, it's their prerogative, but it means Chrome's rise is not pure organic growth based on its technical merit.
Wait... are you talking about Apple and Safari? Sounds like a description of Google and Chrome.
I'm sort of sick of this phenomena/trend of marketing/promotional material being masked as technically helpful content.
This is exactly like the appalling methods of native advertising (aka sponsored content), but now used for self-promotion.