NetSurf
Usage Instructions for Monkey NetSurf

This document provides usage instructions for the Monkey version of NetSurf.

Monkey NetSurf has been tested on Ubuntu and Debian.

If you want to run the monkey_driver.py or monkey-see-monkey-do tools then you will need python3 and pyyaml installed. The latter also needs internet access to test.netsurf-browser.org to acquire test data.

The NetSurf Monkey front end is a developer debug tool used to test how the core interacts with the user interface. It allows the developers to profile NetSurf and to interact with the core directly as though the developer were a front end.

Monkey is not a tool for building web-crawling robots or indeed anything other than a debug tool for the NetSurf developers.

In brief, nsmonkey will produce tagged output on stdout and expect commands on stdin. Windows are numbered and for the most part tokens are space separated. In some cases (e.g. title or status) the final element on the output line is a string which might have spaces embedded within it. As such, output from nsmonkey should be parsed a token at a time, so that when such a string is encountered, the parser can stop splitting and return the rest.

Commands to nsmonkey are namespaced. For example commands related to browser windows are prefixed by WINDOW.

In the below, something% indicates a substitution made by Monkey.

Note, Monkey won't clip coordinates, but sometimes the core does.

TODO: Check if other things are implemented and add them to the docs