I've known a few people (including myself) who have casually thought about what it would take to write a new browser engine. Obviously it's a titanic undertaking and unrealistic project but one thing I considered recently:
There are a ton of new API's the browser has added since HTML5 giving all sorts of capabilities. Hell, Chrome can access USB devices on your host if you allow it permissions.
But is there a canonical list of all standardized web API's somewhere? Something that a browser engine developer could look at to decide what API's are must haves and what are optional.
I have also had that thought for a long time (nearly a decade), remember seeing this article and progressed beyond thought to start writing some code, but naturally have plenty of other things to work on, so it's been very slow going. I have in mind only something comparable to NetSurf or Dillo, but even that is not trivial.
See also browser-compat-data, the source data for Can I Use? and the Browser Compatibility tables at the bottom of MDN reference pages. I believe VS Code and other tools also rely on it.
12 comments
[ 4.2 ms ] story [ 44.1 ms ] thread...and Mozilla has some people dorking around with VR headsets.
There are a ton of new API's the browser has added since HTML5 giving all sorts of capabilities. Hell, Chrome can access USB devices on your host if you allow it permissions.
But is there a canonical list of all standardized web API's somewhere? Something that a browser engine developer could look at to decide what API's are must haves and what are optional.
MDN[0] is probably the best list intended for this purpose, but it's easier to use if you already know what you're looking for.
While not explicitly its intent, I think caniuse[1] may be a better list for top-level browsing.
[0] https://developer.mozilla.org/en-US/docs/Web/API
[1] https://caniuse.com/ciu/index
https://github.com/mdn/browser-compat-data
https://www.ekioh.com/flow-browser/
Probably had to ask themselves the same question. Not sure if they have a published list though.
And "Anatomy Of A Frame": https://aerotwist.com/blog/the-anatomy-of-a-frame/
Also "Inside A Super Fast CSS Engine: Quantum CSS (AKA Stylo)": https://hacks.mozilla.org/2017/08/inside-a-super-fast-css-en...
If you dig around chromium.org you can find lots of details about Chromium's guts, too.