Browsercore is written with Zig 0.11.0. You have to
install it with the right version in order to build the project.
Browsercore also depends on js-runtimelib and lexbor libs.
To be able to build the v8 engine for js-runtimelib, you have to install some libs:
For Debian/Ubuntu based Linux:
sudo apt install xz-utils \
python3 ca-certificates git \
pkg-config libglib2.0-dev \
gperf libexpat1-dev \
cmake clang
For MacOS, you only need Python 3 and cmake.
To be able to build lexbor, you need to install also cmake.
The project uses git submodule for dependencies.
The make install-submodule will init and update the submodules in the vendor/
directory.
make install-submodule
The command make install-netsurf will build netsurf libs used by browsercore.
make install-netsurf
The command make install-lexbor will build lexbor lib used by browsercore.
make install-lexbor
The command make install-jsruntime-dev uses jsruntime-lib's zig-v8 dependency to build v8 engine lib.
Be aware the build task is very long and cpu consuming.
Build v8 engine for debug/dev version, it creates
vendor/jsruntime-lib/vendor/v8/$ARCH/debug/libc_v8.a file.
make install-jsruntime-dev
You should also build a release vesion of v8 with:
make install-jsruntime
You can run make intall and make install-dev to install deps all in one.
You can test browsercore by running make test.
Browsercore is tested against the standardized Web Platform Tests.
The relevant tests cases for Browsercore are commit with the project.
All the tests cases executed are located in tests/wpt dir.
For reference, you can easily execute a WPT test case with your browser via wpt.live.
Run WPT test suite
You can run all the test.
The runner execute all the tests ending with .html.
make wpt
Or one specific test by using a suffix.
make wpt Node-childNodes.html
Add a new WPT test case
We add new tests cases files with implemented changes in Browsercore.
Copy the test case you want to add from the WPT
repo into tests/wpt dir and commit
the files.
tests/wpt.