Feature detection is usually the way to go. If your website / webapp depends on a particular feature, check if that specific feature exists, rather than checking for particular browsers. Browser checks are still needed in some cases, for example Safari sometimes reports that it supports particular features but it really doesn’t (or they’re so buggy to the point where they’re unusable), but that’s relatively rare.
This is tough to implement when the feature is present, but implemented wrong. Or, even worse, when it’s implemented right, but the most popular browser implements it wrong and almost everyone else follow suit for compatibility reasons, except for one that takes the stance of following standards. I know safari is notorious for this, think pale moon had those issues, too, and there are still echoes from the past from pre-chrome internet explorer, thank god it’s finally dead.
At least Chrome is mostly standards-compliant and doesn’t do anything too weirdly. I’d say Safari is the new IE - lots of weird bugs that no other browser has, and sometimes you need hacks specific to Safari.
That’s fair. I meant that more in terms of using market dominance to shape the browser market, and not in entirely good ways.
I’ll rue the day that every website insists it only works with Chrome because of some user-privacy degrading feature that Google insists is a core web technology.
However, Chrome is a browser collecting user data for a company whose business model it is to sell user data.
Edge is a shitty bloatware collecting user data for a company that has (for now) a business model selling software licenses.
I wouldn’t say it’s “better” to use Edge, but I wouldn’t install Chrome either(!) on any device whose data I care about.
So I know what you mean, but Google doesn’t sell user data. That’s a common misconception. The data is what makes the company valuable - they’re not going to just give that to anyone with money. Instead, they sell your attention. Advertisers can target their ads based on data collected about you. Advertisers never actually see the data nor do they know exactly which users are seeing their ad - they just get aggregate statistics.
Having said that… Edge is basically Chrome but better (e.g. it uses less RAM). I use Firefox but if I didn’t, I’d give Edge a try. It’s unfortunate that Microsoft are trying to push it so hard, since it’s actually a decent browser that’s being ruined by Microsoft trying to force everyone to use it.
While I don’t know of course whether Google actually sells the data itself, let me rephrase my original criticism: “whose business model is based on monetizing user data - which can lead to severe privacy breaches / leaks of sensitive personal data”.
Thanks for pointing that out, but I would say my prime concern remains.
I couldn’t say that it is. Chrome team’s usual approach is to make and release stuff first, write specifications later. By the time the other browsers come along, there’s already both market adoption and bunch of dumb decisions set in stone as a standard. Most notable examples of this would be QUIC and WebUSB
This is tough to implement when the feature is present, but implemented wrong
Sometimes it’s doable if you can call the API and check that the result is what you’d expect. For example, a long time ago some browsers incorrectly handled particular Unicode characters in JSON.parse. Sites could check for the incorrect behaviour and shim JSON.parse with a version that fixes the output.
I’ve never worked with WebRTC but I imagine it might be difficult to do that with some of its APIs given they require camera or microphone access (meaning you can’t check for the bug until the user actually tries to use it).
Sometimes it’s doable if you can call the API and check that the result is what you’d expect
Yeah, you can even test visual and network stuff at a cost of latency, but it’s hard and lots of developers are too lazy to do this, I’ve often seen sites that don’t even check if function exists before calling it, crashing the entire site because adblock cut out google tags or they call API that isn’t even implemented in firefox.
I’ve never worked with WebRTC but I imagine it might be difficult to do that with some of its APIs given they require camera or microphone access
I did. It’s a complete mess. First and foremost exactly because it’s a soup of completely unrelated tech - P2P, webcams, audio in&out, stream processing and compression, SIP(!?). There’s no good debug tooling available and lots of stuff is buried inside browser’s implementation. And, on top of that, any useful info on the topic is usually buried under lots of “make a skype killer in 5 minutes” kind of libraries with hardcoded TURN servers - the developer’s overpriced TURN servers, that is.
This is tough to implement when the feature is present, but implemented wrong. Or, even worse, when it’s implemented right, but the most popular browser implements it wrong and almost everyone else follow suit for compatibility reasons, except for one that takes the stance of following standards. I know safari is notorious for this, think pale moon had those issues, too, and there are still echoes from the past from pre-chrome internet explorer, thank god it’s finally dead.
Chrome is the new Internet Explorer.
At least Chrome is mostly standards-compliant and doesn’t do anything too weirdly. I’d say Safari is the new IE - lots of weird bugs that no other browser has, and sometimes you need hacks specific to Safari.
That’s fair. I meant that more in terms of using market dominance to shape the browser market, and not in entirely good ways.
I’ll rue the day that every website insists it only works with Chrome because of some user-privacy degrading feature that Google insists is a core web technology.
However, Chrome is a browser collecting user data for a company whose business model it is to sell user data. Edge is a shitty bloatware collecting user data for a company that has (for now) a business model selling software licenses.
I wouldn’t say it’s “better” to use Edge, but I wouldn’t install Chrome either(!) on any device whose data I care about.
So I know what you mean, but Google doesn’t sell user data. That’s a common misconception. The data is what makes the company valuable - they’re not going to just give that to anyone with money. Instead, they sell your attention. Advertisers can target their ads based on data collected about you. Advertisers never actually see the data nor do they know exactly which users are seeing their ad - they just get aggregate statistics.
Having said that… Edge is basically Chrome but better (e.g. it uses less RAM). I use Firefox but if I didn’t, I’d give Edge a try. It’s unfortunate that Microsoft are trying to push it so hard, since it’s actually a decent browser that’s being ruined by Microsoft trying to force everyone to use it.
While I don’t know of course whether Google actually sells the data itself, let me rephrase my original criticism: “whose business model is based on monetizing user data - which can lead to severe privacy breaches / leaks of sensitive personal data”. Thanks for pointing that out, but I would say my prime concern remains.
I couldn’t say that it is. Chrome team’s usual approach is to make and release stuff first, write specifications later. By the time the other browsers come along, there’s already both market adoption and bunch of dumb decisions set in stone as a standard. Most notable examples of this would be QUIC and WebUSB
Sometimes it’s doable if you can call the API and check that the result is what you’d expect. For example, a long time ago some browsers incorrectly handled particular Unicode characters in JSON.parse. Sites could check for the incorrect behaviour and shim JSON.parse with a version that fixes the output.
I’ve never worked with WebRTC but I imagine it might be difficult to do that with some of its APIs given they require camera or microphone access (meaning you can’t check for the bug until the user actually tries to use it).
Yeah, you can even test visual and network stuff at a cost of latency, but it’s hard and lots of developers are too lazy to do this, I’ve often seen sites that don’t even check if function exists before calling it, crashing the entire site because adblock cut out google tags or they call API that isn’t even implemented in firefox.
I did. It’s a complete mess. First and foremost exactly because it’s a soup of completely unrelated tech - P2P, webcams, audio in&out, stream processing and compression, SIP(!?). There’s no good debug tooling available and lots of stuff is buried inside browser’s implementation. And, on top of that, any useful info on the topic is usually buried under lots of “make a skype killer in 5 minutes” kind of libraries with hardcoded TURN servers - the developer’s overpriced TURN servers, that is.