Replies: 3 comments 19 replies
-
I found this great image: |
Beta Was this translation helpful? Give feedback.
-
I learn best by doing and by osmosis, as I work with a code base, and by studying what has already been done. I have a general sense of what some of the moving parts of a browser engine are now. But at this stage I'm hardly able to see the forest beyond the trees. I find myself latching on to specific concepts like a "parser" and a "tree builder" and a document that holds the DOM tree that is mutated in place. Downstream from there there's the code that will traverse the DOM (possibly multiple times) and turn it into something a display can understand. And then surrounding all of this there's all of the UI that will eventually need to be built out with all of its components, like bookmarks, a search bar, tabs, and so on. A browser engine, and around it a browser, are like an old-fashioned mechanical watch, with thousands of moving pieces. Gradually you can see the different gears and other components become reality. But I do not know how much of that it will be possible for me personally to discern without more experience working with the code. |
Beta Was this translation helpful? Give feedback.
-
i've been thinking about the network layer as well.. here again there are multiple ways to do it, but this layer could be pretty isolated to the rest of the system (i think)... should be support os name resolving, our own dns client, doh etc.. and how do we handle things like TLS, http2/quic/speedy/etc.. even socks proxies etc should have some consideration I guess... |
Beta Was this translation helpful? Give feedback.
-
I would like to propose to see if we can discuss the architectural layout of what we are trying to achieve. I see the current system more as a proof-of-concept on different aspects of a browser, but it have a solid foundation on which we can build a stable engine yet.
In order to do this, we should keep going the way we are going: figuring out little bits, see how they function and try to implement it, and secondly: try to come up with a good architectural foundation to incorporate these components (or rewrite them with the gained knowledge).
It might be too early to do this yet, but at least we can think of some idea's for it.
Beta Was this translation helpful? Give feedback.
All reactions