Asked an entire room full of webdevs yesterday if any of them knew that FF/Chrome/Opera/Brave/etc. for iOS weren't allowed to compete on engine quality.
Zero hands up.
— Alex Russell (@slightlylate) September 25, 2019
It’s worth making this clear then. On iOS, the only browser engine is WebKit. There are other browsers, but they can’t bring their own engine (Blink/Gecko). So, if you’re using Chrome or Firefox on iOS, it’s really the same engine Safari is using, only slightly less capable (e.g. no third-party content blocker apps work in them).
It’s worth knowing that as a developer. While Chrome supports stuff like service workers on their desktop browser and on other platforms, the browser engine made available to non-Safari browsers on iOS does not. You don’t have them there. Likewise for Firefox.
Must say that I’m surprised this wasn’t common knowledge. I remember it being a regular part of Android vs iOS arguments however long ago it was when this first came up
Not to be that guy, but I thought this was common knowledge.
Same here, I’ve been yelling this for years. Surprised the EU hasn’t been at their throats
Similar experience as a customer being told there exists “Internet Explorer for Mac” by customer support agents for any company that leaned heavy on ActiveX.
How do you tell someone who has no power “but they’re different engines…”.
Mobile Safari does have service worker support, and has had it (in a more limited capacity) since iOS 11.4: https://caniuse.com/#feat=serviceworkers
Sorry, misread this I think. Safari on iOS has service worker support; other browser apps on iOS don’t have that support (I think?)
Yes I think that’s correct. Safari on iOS itself does, but not the WebKit view made available for other browsers to use.
caniuse.com is a bit misleading in this case. It lists what is supported in iOS Safari, but there is no way to find out what is supported on the restricted WebKit view that other browsers use. I also wish it listed the capabilities of the browser inside Facebook’s app on Android.
There might be reasons for that… see https://daringfireball.net/linked/2019/09/25/mr-macintosh-chrome-updater
How is this not an antitrust issue?
There may be good reasons as well as bad reasons for this. For example, test your website once on Safari on any iOS device and you have confidence it works on all browsing apps on all iOS devices. That’s got some merit to it, I think.
Not that I want to defend Apple’s anti-competitive behaviour, but there’s advantages there too.
Test your app on Chrome on Windows and you have no idea if your app works on any other OS… Not that great.
Also — if Safari breaks something you cannot ask clients to use another browser before you fix it. Clients are f.cked. You are f.cked.
Service Workers aren’t the only things that will perish as part of the process. WebKit has support for browser based AR/VR but you must run it through Safari and not Firefox/Chrome on iOS.
This makes tools like A Frame, AR.js, and 8th Wall not able to run unless going through Safari.
Probably the same engineers who have been touting PWAs as the future for the last ten years.