MoeNavigatorEngine is a web browser engine written from scratch in C++. The goal of this project is to create a modular, fast and flexible web browser engine.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Moritz Strohm 25c1240539 updated documentation, re #25 2 weeks ago
CommonClasses extended test for URL class, added documentation to constructor in URL class, added better checking for port number in URL class constructor, re #42 4 weeks ago
Exceptions added TLSException class and defined error codes, throw TLSException instead of std::exception in NetworkHandler_GnuTLS, re #20 5 months ago
GUIWidgets Initial import 4 years ago
LocalStorage included stdexcept headers in a few parts, re #30 8 months ago
MNECommon moved MNEException class to MNE::Exception, moved MarkupParserException to MNE namespace, added Exception directory 5 months ago
MNERenderer began work on the test for the SVG renderer, re #25 4 months ago
MarkupParsers removed endless loop in HTMLParser::parseData 4 months ago
Network updated doc, extended HTTPFormDataSource, began writing HTTPFormDataSource test, re #13 4 weeks ago
ScriptEngines refactorised ScriptEngine and JavascriptEngine classes, closes #2 9 months ago
Settings Added CookiePolicy class, MoeNavigatorEngine class: added getters and setters for cookie_jar attribute, added general_cookie_policy attribute with getter and setter, re #4 9 months ago
StylesheetParsers moved method docblocks from CSSParser to StylesheetParser class, re #3 6 months ago
doc@45f99dc6af updated documentation, re #25 2 weeks ago
tests finished initial version of the SVGRenderer test, re #25 2 weeks ago
.dir-locals.el added origin attribute to DocumentNode 2 years ago
.gitignore added MNENetwork/MNEURL header and source file 2 years ago
.gitmodules added the wiki repository as submodule in doc directory, re #17 10 months ago
AUTHORS Initial import 4 years ago
CMakeLists.txt began implementation of HTTPFormDataSource, re #13 1 month ago
COPYING Initial import 4 years ago added file 1 month ago
MoeNavigatorEngine.cpp MoeNavigatorEngine::determineVisualAttributes: check for nullptr before doing anything with the passed node, re #40 3 months ago
MoeNavigatorEngine.h removed obsolete network classes ResponseHeader and ResponseHeaderHandler 4 months ago added GnuTLS in dependency list 3 weeks ago
StylesheetNodeConnector.h Initial import 4 years ago


MoeNavigatorEngine is a web browser engine written from scratch in C++.

The goal of this project is to create a modular, fast and flexible web browser engine.


To compile MoeNavigatorEngine you will need the following software:

  • CMake (at least version 2.8)
  • A C++ compiler (for example g++) and all standard C++ library headers
  • C POSIX socket headers
  • GnuTLS library development headers


First you will need to create a "build" directory below the base directory of this repository, where all the temporary files will be placed. Then, open a terminal in the build directory and run the following command:


This will make the project configuration and will create all files necessary for invoking make. When cmake has finished you invoke make simply by typing:


If compilation is successful you should have the compiled version of MoeNavigatorEngine lying in your build directory.

Compiling for development

To compile MoeNavigatorEngine for development and debugging purposes, you should make a debug build. From the "build" directory from above, you can create a debug build like this:


When cmake has finished, you can invoke make like before to build a debug version of MoeNavigatorEngine.


Besides the source code documentation there is the project's wiki for additional documentation regarding the internals of the engine and the project in general. The wiki is available at

Alternatively, you may download the whole wiki source code (markdown) for offline reading. After cloning the source code repository, simply init and update the submodules:

git submodule init
git submodule update

After that, you will find the whole wiki source code in the "doc" directory.