3.1 KiB
NetSurf web browser
The NetSurf code makes use of Doxygen for code documentation.
User Interface
There are some basic user guides for the framebuffer and monkey frontends.
The core user options of the browser are documented which are augmented by each frontend in a specific manner.
Documented API
There are several documents which detail specific aspects of the codebase and APIs.
Core window
The core window API allows frontends to use generic core code for user interface elements beyond the browser render.
Source object caching
The source object caching provides a way for downloaded content to be kept on a persistent storage medium such as hard disc to make future retrieval of that content quickly.
Javascript
JavaScript is provided by integrating the duktape library. There are instructions on how to update the library.
A list of unimplemented DOM and CSSOM methods is available outlining the remaining API that have to be implemented.
Development
Compiling a development edition of NetSurf requires a POSIX style environment. Typically this means a Linux based system although Free BSD, Open BSD, Mac OS X and Haiku all known to work.
Working with the team
Generally it is sensible to check with the other developers if you are planning to make a change to NetSurf intended to be merged.
We are often about on the IRC channel but failing that the developer mailing list is a good place to try.
All the project sources are held in public git repositories
Toolchains
Compilation for non POSIX toolkits/frontends (e.g. RISC OS) generally relies upon a cross compilation environment which is generated using the makefiles found in our toolchains repository. These toolchains are built by the Continuous Integration (CI) system and the results of the system are published as a convenience.
Quick setup
The quick start guide can be used to get a development environment setup quickly and uses the env.sh script the core team utilises.
Manual setup
The Manual environment setup and compilation method is covered by the details in the netsurf libraries document for the core libraries and then one of the building documents for the specific frontend.
These documents are sometimes not completely up to date and the env.sh script should be considered canonical.