"like not allowing ANY browser besides Safari" are you saying this is potentially an issue? Because I have Chrome and Firefox installed on my iPhone and MacBook Air. I also have DuckDuckGo's browser on my iPhone.
What the parent means to say, is not allowing any browser engine other than WebKit. Chrome, Firefox, Brave, etc, are just wrapping WebKit.
The big issue, as I understand it, is JIT. You can run any browser engine you like on iOS, but only WebKit (its JavaScriptCore component) is allowed to JIT JavaScript. Without JIT, the JavaScript performance will be bad; and considering the contemporary JavaScript-heavy nature of the web, that makes any alternative browser engine a non-starter.
(I wonder how it is implemented. I'm guessing that WebKit runs out-of-process, and that process has the JIT entitlement, whereas the host app process doesn't.)
> The big issue, as I understand it, is JIT. You can run any browser engine you like on iOS, but only WebKit (its JavaScriptCore component) is allowed to JIT JavaScript. Without JIT, the JavaScript performance will be bad; and considering the contemporary JavaScript-heavy nature of the web, that makes any alternative browser engine a non-starter.
IDK how it is now, but Apple used not to allow e.g. alternative Javascript engines in apps—you had to use Webkit's.
Having developed an app-building engine for Android in the days when some vendors shipped different engines to supply webview functionality (is that a thing? I actually don't know if they ever stopped) I can say I'm extremely in favor of this part of their policy. God that was a pain in the ass.
> IDK how it is now, but Apple used not to allow e.g. alternative Javascript engines in apps—you had to use Webkit's.
App Store guidelines say you have to use WebKit JavaScript for web browsing. I believe you are allowed to use third-party JavaScript for non-web-related purposes. That’s a rather small use case though.
Also, we have to distinguish between App Store policy and technical constraints. If you are just running your own software (e.g. developer, adhoc distribution, enterprise distribution), you don’t need to care about the former only the later-lack of entitlements to JIT is still an issue for the later.
Apple doesn't allow any other browser engines on iOS except Webkit.
Despite the branding, "Chrome for iOS" and "Firefox for iOS" are fundamentally different products than their Android or desktop counterparts. They're both just wrappers around the same bundled version of Webkit that Safari uses.
Any browser on iPhone is just a skin for Mobile Safari. In particular, you can't install uBlock Origin/similar there. Every time I browse web on an iDevice I feel like I'm losing 20 IQ points.