News for hackers. Stuff that matters.
Re:Firefox’s Fight for the Future of the Web by sebazzz on Sunday November 17, 2019 @09:53AM (#21558116)
Technically I think you are free to build have other browser engines on iOS. However, JIT or other dynamically compiled code is not allowed because that's a security risk. You can't have a browser in 2019 with interpreted javascript.
Re:Firefox’s Fight for the Future of the Web by MaxBarraclough on Sunday November 17, 2019 @12:25PM (#21558861)
> I think you are free to build have other browser engines on iOS

I believe this is false, see 2.5.6 and 4.7 of https://developer.apple.com/app-store/review/guidelines/

But they do allow Opera Mini, a 'browser' for iOS where rendering is done in the cloud.

Re:Firefox’s Fight for the Future of the Web by fauigerzigerk on Sunday November 17, 2019 @09:55AM (#21558129)
But why is JavaScript JIT compilation tied to the rendering engine?
Re:Firefox’s Fight for the Future of the Web by andrewl-hn on Sunday November 17, 2019 @10:28AM (#21558318)
Yep. technically, Apple doesn't force Firefox to use WebKit. They could still use their Gecko WebRenderer and use Apple's JavaScriptCore to run page scripts. Same goes to Chrome: Blink + JSC instead of Blink + V8.

In practice in seems like both Chrome and Firefox have their renderers and JavaScript runtimes so tightly integrated that it's very hard to replace the later.

Re:Firefox’s Fight for the Future of the Web by fauigerzigerk on Sunday November 17, 2019 @10:47AM (#21558397)
Elsewhere in this debate sharpneli says that there is no public API to call into JavaScriptCore and using non-public APIs violates the App Store rules. So that would explain it.
Re:Firefox’s Fight for the Future of the Web by saagarjha on Sunday November 17, 2019 @03:14PM (#21559812)
There is API to use JavaScriptCore in your apps: https://developer.apple.com/documentation/javascriptcore. No JIT, though, so it’s slow.
Re:Firefox’s Fight for the Future of the Web by thekingofh on Sunday November 17, 2019 @11:14AM (#21558528)
I think you mean that you can have interpreted javascript, just not JIT compilers. They don't allow you to mark memory as executable. That syscall is completely disabled on their systems.
Re:Firefox’s Fight for the Future of the Web by saagarjha on Sunday November 17, 2019 @03:11PM (#21559793)
It is not, moprotect (and mach_vm_protect) work just fine if you have the appropriate entitlements or have a way of getting around its checks.
Re:Firefox’s Fight for the Future of the Web by thekingofh on Monday November 18, 2019 @12:43PM (#21566314)
I think the entitlements are not offered to apps such as firefox and those that are not Apple correct?
Re:Firefox’s Fight for the Future of the Web by saagarjha on Monday November 18, 2019 @04:06PM (#21568142)
Some of them are, but they cannot be used with apps delivered on the App Store.
Re:Firefox’s Fight for the Future of the Web by vbezhenar on Sunday November 17, 2019 @02:29PM (#21559534)
It can't be disabled because Safari and Webkit uses JIT for JavaScript. Probably it's enabled for apps signed by Apple.
Re:Firefox’s Fight for the Future of the Web by thekingofh on Monday November 18, 2019 @12:45PM (#21566332)
True it is disabled if you aren't Apple.