Browser engine
- Zig 99.5%
- HTML 0.4%
- CSS 0.1%
|
Arnau Camprubí
0f65af0e23
All checks were successful
/ Build and test (push) Successful in 4m1s
Before this commit, the browser shell had a "browser" process with multiple "view" children processes (one per tab). This is a good approach for a real browser, since process isolation allows the browser to use process security features in the kernel. However, I've come to the conclusion that, for now, it's best to switch to a single-process shell. The main reasons are: - The goal of this project is (at least for now) to create a good browser engine, not a browser shell. The existence of such a thing in the project is only for the purposes of testing the engine. Thus, it makes sense to choose simplicity over security. - Since axiom is still in a very early development stage, debuggability is a very important thing, and having multiple process made debugging harder. Crashes, memory leak detection, etc. - With the previous browser shell implementation, you needed to update the IPC protocol data structures often, which is one more thing to keep in mind when adding new features - Being a single process, tracing is much easier, which will hopefully allow for heavy optimization of the engine - It makes things easier (or faster) to implement by sacrificing purity on the shell, which again, is not the current goal of this project. Overall, while being a "bad" choice for a real browser shell, I think this is the right way to do it for this project. |
||
|---|---|---|
| .forgejo/workflows | Forgejo actions | |
| src | Single-process browser shell | |
| .gitignore | Zig 0.16.0 | |
| build.zig | Use SDL3 | |
| build.zig.zon | Use SDL3 | |