4 ms·
https://developer.apple.com/support/alternative-browser-engines/ https://developer.apple.com/support/alternative-browser-engi...
by nox101 3y ago
https://developer.apple.com/support/alternative-browser-engines/ https://developer.apple.com/support/alternative-browser-engi...
- throwaway2037 3y agoThis link alone is worth a whole separate HN discussion. Thank you to share. The requirements list is very interesting. For example: > Meet the following functional requirements to ensure your app is using a web browser engine that provides a baseline of web functionality: Pass a minimum percentage of tests available from industry standard test suites: 90% from Web Platform Tests and 80% from Test262 And: > Program security requirements: You must do the following: Use memory-safe programming languages, or features that improve memory safety within other languages, within the Alternative Web Browser Engine at a minimum for all code that processes web content; Is WebKit written in C++? That language certainly isn't "memory-safe" (I am not dumping on C++ here!). I assume that Apple uses fuzz testing and static analysis to find memory safety issues. So... does WebKit pass this rule? Hmm... And, are there any browsers written in memory-safe languages? I assume they would be too slow (Java, C#, etc.) I'm not sure if Rust is considered memory safe here. (Can you have null pointer exceptions in Rust -- dereference a null pointer?)
- saagarjha 3y agoI believe Apple considers themselves compliant because they use technologies to improve the safety of their C++…?
- kevingadd 3y agoMy understanding is that WebKit (Safari) and Blink (Chrome) both have extremely complex smart pointer types and GCs and allocators such that they count as memory-safe, at least in comparison to regular C++. I don't know how much this applies to Firefox but I would assume they have similarly elaborate infrastructure. Large portions of each browser are also written in JS ("self-hosted") at this point, and Firefox now contains large components either written in Rust or sandboxed (via wasm) C. This rule does seem like an easy way to reject literally every browser other than Servo, though.
- crazygringo 3y agoThat's a great link, and indeed zero mention of requiring the new terms. So this seems to very much confirm it -- new browsers can be distributed 100% for free. But not many people will see it here buried down deep in this thread. I suggest you submit it as a new link to HN though. Very interesting stuff!