NetSurf's code is broadly split into two; core code, and front end code. All ports make use of the core code and each port has its own front end code.
Directory Structure
The source is split at top level as follows:
Core
Content handling
- content -- Generic content handling: Fetching, caching, managing, etc
- css -- CSS content specific handling
- image -- Image content specific handling (conversion)
- javascript -- JavaScript content specific handling
- render -- HTML and Text content specific handling (processing, layout, render)
Other core components
- desktop -- Non-platform specific front-end
- utils -- Misc reusable components
Front ends
- amiga -- AmigaOS specific code
- atari -- Atari FreeMiNT code
- beos -- BeOS/Haiku specific code
- cocoa -- Mac OS X specific code
- framebuffer -- Framebuffer specific code
- gtk -- GTK specific code
- monkey -- Terminal based test engine specific code
- riscos -- RISC OS specific code
windows -- Windows specific code
Organization and Conventions
- Modular coding style
- Directory structure
- Error handling
- Memory management
Features
Platform-specifics
References
- References
- Getting started (with coding on NetSurf)
- Git Cheat Sheet