πŸ‘€djoldmanπŸ•‘4yπŸ”Ό409πŸ—¨οΈ63

(Replying to PARENT post)

As a front end developer, I am really happy to see resources like this.

Developing for the browser is a real challenge. I think working with html / css /js has been a neglected skill for a long time - most software engineers look down on that type of work and its rarely covered in comp sci course work.

Still, its good to see a lot of progress has been made, this book included.

My only critique - why use python instead of node.js?

πŸ‘€game_the0ryπŸ•‘4yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

I was interested to see that this uses the DukPy wrapper around Duktape for the JavaScript interpreter: https://browser.engineering/scripts.html

This made me start digging into whether this was considered a "safe" way of executing untrusted JavaScript in a sandbox.

It's not completely clear to me if DukPy currently attempts safe evaluation - it's missing options for setting time or memory limits on executed code for example: https://github.com/amol-/dukpy

There's a QuickJS Python wrapper here which offers those limits: https://github.com/PetterS/quickjs

I'm pretty paranoid though any time it comes to security and dependencies written in C, so I'd love to see a Python wrapper around a JavaScript engine that has safe sandbox execution as a key goal plus an extensive track record to back it up!

πŸ‘€simonwπŸ•‘4yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

I can't wait for Browser Engineering to show up as a university course a la compilers, operating systems, networks, etc.
πŸ‘€eatonphilπŸ•‘4yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

Building a browser as a desktop application would be quite hard, but I reckon I do it as a web application.
πŸ‘€harry-woodπŸ•‘4yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

πŸ‘€tester756πŸ•‘4yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

Many years ago, probably 20, I went on a task of implementing a web browser. I remember I gave up at rendering tables. I couldn't wrap my head around on how to properly size them. It has become extremely complex quickly to address edge cases and I eventually gave up when I couldn't understand what's going after having a two weeks break. Probably if I had money and was able to commit full time I could eventually get it, but I had to focus on commercial work and putting food on my table.

edit: it's a great article! But nothing on rendering tables :-)

πŸ‘€varispeedπŸ•‘4yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

Is this written by actual web browser engineers? If so, what fields did they specialize in?
πŸ‘€ameliusπŸ•‘4yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

This is awesome. I've always wanted to know how the actual layout portion works (or at least, can work in a simple way). I think these kinds of resources are really valuable and people should be empowered to make bespoke-ish web renderers as the need arises.
πŸ‘€jturpinπŸ•‘4yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

This video is good background for khtml/webkit on which chrome was based https://www.youtube.com/watch?v=Tldf1rT0Rn0
πŸ‘€richm44πŸ•‘4yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

Awesome to see this here! The course that accompanied this textbook was among my favorites
πŸ‘€ngai_akuπŸ•‘4yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

There’s a 90’s style browser in Haskell here for demo purposes. Lacks JS.

https://github.com/chrisdone/vado

πŸ‘€louisvgchiπŸ•‘4yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

Love the bibliography section. I have always wanted to reinterpret HTML into other representations. These resources give me good reference
πŸ‘€a_cπŸ•‘4yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

It's now nearly impossible to build a web browser from scratch because of runaway explosion of web browser features, and proprietary API extensions.

W3C here is unfortunately a part to the problem.

Standardisation is good, but letting google pour streams halfassedly written RFCs onto other browsermakers is not good.

Non-enforcement of standards is also bad, and it's bad to extend W3C privileges to companies who themselves selectively implement their own proposals, so others' browsers can't match their behaviour.

πŸ‘€baybal2πŸ•‘4yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

Love first principles stuff. Great job.
πŸ‘€kizerπŸ•‘4yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

this builds a web browser like the build-your-own-x movement?
πŸ‘€ofouπŸ•‘4yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

Neat, but what about integrating widevine support?
πŸ‘€butzπŸ•‘4yπŸ”Ό0πŸ—¨οΈ0