4 ms·
An efficient browser engine needs to run with security privileges that I don't imagine Apple ever giving to 3rd party code.
by shuckles 6y ago
An efficient browser engine needs to run with security privileges that I don't imagine Apple ever giving to 3rd party code.
- chongli 6y agoYou never know. Perhaps Apple is working on public APIs to mitigate those issues? What if Apple released APIs that let you write an all-new, high performance browser engine and let you publish your own browser on iOS, but the APIs weren’t compatible with Firefox or Chromium, so a rewrite would be required?
- cbzoiav 6y agoApple has all of the APIs needed. You can compile and run chromium on iOS today (or at least it used to be possible - I work for an enterprise that did it for internal apps) - it'll just never make it through AppStore review.
- tarkin2 6y agoDo you know of these security privileges? I've never heard either google or mozilla complain about them.
- JoshTriplett 6y agoA browser's JIT needs permission to dynamically generate code and then execute it, which is the primary permission Apple doesn't grant to third parties. Other browsers on iOS just wrap Safari's WebKit in a different UI.
- tarkin2 6y agoThey're not allowed to ship their own engines, in addition, rather than this being framed as a JIT issue.
- miohtama 6y agoI think they had fixed this in the latest iOS versions. It is good for AAA game engines and such as well.
- rictic 6y agoThis isn't true, other browsers can run JITless. JIT is a performance optimization to be sure, but this doesn't explain why Apple bans other browsers. See https://twitter.com/slightlylate/status/1274012259451207681 https://twitter.com/slightlylate/status/1274012259451207681 Disclosure: I work at Google, formerly Chrome team, never worked on this.
- shuckles 6y agoI didn't know about this. Thanks for sharing. It does mention a 40% performance impact to running JITless. What is the power impact?
- sudosysgen 6y agoCode generation is not a safety issue. If you have the privileges to run code then generating code should not cause more problems unless the OS has significant vulnerabilities.
- robocat 6y agoV8 has a pure interpreted mode for JavaScript and RegExps: https://v8.dev/blog/jitless https://v8.dev/blog/jitless Many sites only need light JavaScript usage and would not run significantly slower. wasm is not supported in jitless mode. Link pulled from twitter link in sister comment by rictic.
- monocasa 6y agoIt destroys battery life though.
- saagarjha 6y ago> An efficient browser engine needs to run with security privileges The ability to dynamically generate code is not "security privileges"; security should be enforced by the platform sandbox and not by the ability to JIT code.