Re:Ask HN: If I wanted to make a web browser, where would I ...
by sglane on Tuesday August 30, 2016 @11:04AM
(#12390769)
>Chrome was developed by different teams with different expertises, some of them acquired from other companies.
To expand on this, Chrome and Safari use webkit as their rendering/layout engine which is a fork of KDE's KHTML. IE came from NCSA Mosaic-> Spyglass -> Microsoft IE.
To be clear on my suggestions below, let's clarify what a browser actually is. The browser manages things like the navigation bar, bookmarks, download/mime handling, etc. This is known as the "chrome" or GUI. The layout engine handles HTML parsing, rendering, possibly is coupled with a Javascript engine like V8.
If you are trying to write a browser, the answer is to use webkit2 in whatever language you like. It's fast, light, and portable. If you are trying to write a layout engine (rendering engine), do as another poster suggested and write one to target HTML 3.2.
Re:Ask HN: If I wanted to make a web browser, where would I ...
by timvdalen on Tuesday August 30, 2016 @03:25PM
(#12393106)
Note that Chrome is actually using Blink now, which itself is a fork of webkit
Re:Ask HN: If I wanted to make a web browser, where would I ...
by fspeech on Tuesday August 30, 2016 @11:06AM
(#12390794)
Servo https://github.com/servo/servo is a browser rewrite in Rust. Could be a good place to start.
Re:Ask HN: If I wanted to make a web browser, where would I ...
by zamalek on Tuesday August 30, 2016 @11:12AM
(#12390851)
Or a good study if the the goal language is different. Studying a clean codebase is where I'd start, there is likely a lot of tribal knowledge in HTML rendering (especially layout) that isn't documented anywhere but in code.
The second option is reusing a web component or browser and modify it for your purposes. Building on top of Chrome or Firefox (or their variants) is a good choice. I think Chrome is better engineered than Firefox and the code is clear. Obviously this is just an opinion.
Now the question is what do you want to add to such browser? Is this something you can add via an extension or is something that requires a new direction?