Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | Download | RSS feed

  1. --------------------------------------------------------------------------------
  2.   Usage Instructions for Monkey NetSurf                            13 March 2011
  3. --------------------------------------------------------------------------------
  4.  
  5.   This document provides usage instructions for the Monkey version of
  6.   NetSurf.
  7.  
  8.   Monkey NetSurf has been tested on Ubuntu.
  9.  
  10. Overview
  11. ========
  12.  
  13.   What it is
  14.   ----------
  15.  
  16.   The NetSurf Monkey front end is a developer debug tool used to
  17.   test how the core interacts with the user interface.  It allows
  18.   the developers to profile NetSurf and to interact with the core
  19.   directly as though the developer were a front end.
  20.  
  21.   What it is not
  22.   --------------
  23.  
  24.   Monkey is not a tool for building web-crawling robots or indeed
  25.   anything other than a debug tool for the NetSurf developers.
  26.  
  27.   How to interact with nsmonkey
  28.   -----------------------------
  29.  
  30.   In brief, monkey will produce tagged output on stdout and expect
  31.   commands on stdin.  Windows are numbered and for the most part
  32.   tokens are space separated.  In some cases (e.g. title or status)
  33.   the final element on the output line is a string which might have
  34.   spaces embedded within it.  As such, output from nsmonkey should be
  35.   parsed a token at a time, so that when such a string is encountered,
  36.   the parser can stop splitting and return the rest.
  37.  
  38.   Commands to Monkey are namespaced.  For example commands related to
  39.   browser windows are prefixed by WINDOW.
  40.  
  41.   Top level tags for nsmonkey
  42.   ---------------------------
  43.  
  44.     QUIT
  45.  
  46.     WINDOW
  47.  
  48.   Top level response tags for nsmonkey
  49.   ------------------------------------
  50.  
  51.     GENERIC
  52.  
  53.     WARN, ERROR, DIE
  54.  
  55.     WINDOW
  56.  
  57.     DOWNLOAD_WINDOW
  58.  
  59.     SSLCERT
  60.  
  61.     401LOGIN
  62.  
  63.     PLOT
  64.  
  65.   In the below, %something% indicates a substitution made by Monkey.
  66.  
  67.     %url% will be a URL
  68.     %id% will be an opaque ID
  69.     %n% will be a number
  70.     %bool% will be TRUE or FALSE
  71.     %str% is a string and will only ever be at the end of an output line.
  72.  
  73.   Warnings, errors etc
  74.   --------------------
  75.  
  76.   Warnings (tagged WARN) come from the NetSurf core.
  77.   Errors (tagged ERROR) tend to come from Monkey's parsers
  78.   Death (tagged DIE) comes from the core and kills Monkey dead.
  79.  
  80. Commands
  81. ========
  82.  
  83.   Generic commands
  84.   ----------------
  85.  
  86.   QUIT
  87.     Cause monkey to quit cleanly.
  88.     This will cleanly destroy open windows etc.
  89.  
  90.   Window commands
  91.   ---------------
  92.  
  93.   WINDOW NEW [%url%]
  94.     Create a new browser window, optionally giving the core
  95.     a URL to immediately navigate to.
  96.     Minimally you will receive a WINDOW NEW WIN %id% response.
  97.  
  98.   WINDOW DESTROY %id%
  99.     Destroy the given browser window.
  100.     Minimally you will recieve a WINDOW DESTROY WIN %id% response.
  101.  
  102.   WINDOW GO %id% %url% [%url%]
  103.     Cause the given browser window to visit the given URL.
  104.     Optionally you can give a referrer URL to also use (simulating
  105.     a click in the browser on a link).
  106.     Minimally you can expect throbber, url etc responses.
  107.  
  108.   WINDOW REDRAW %id% [%num% %num% %num% %num%]
  109.     Cause a browser window to redraw.  Optionally you can give a
  110.     set of coordinates to simulate a partial expose of the window.
  111.     Said coordinates are in traditional X0 Y0 X1 Y1 order.
  112.     The coordinates are in canvas, not window, coordinates.  So you
  113.     should take into account the scroll offsets when issuing this
  114.     command.
  115.     Minimally you can expect redraw start/stop messages and you
  116.     can likely expect some number of PLOT results.
  117.  
  118.   WINDOW RELOAD %id%
  119.     Cause a browser window to reload its current content.
  120.     Expect responses similar to a GO command.
  121.  
  122.  
  123. Responses
  124. =========
  125.  
  126.   Generic messages
  127.   ----------------
  128.  
  129.   GENERIC STARTED
  130.     Monkey has started and is ready for commands
  131.  
  132.   GENERIC CLOSING_DOWN
  133.     Monkey has been told to shut down and is doing so
  134.  
  135.   GENERIC FINISHED
  136.     Monkey has finished and will now exit
  137.  
  138.   GENERIC LAUNCH URL %url%
  139.     The core asked monkey to launch the given URL
  140.  
  141.   GENERIC THUMBNAIL URL %url%
  142.     The core asked monkey to thumbnail a content without
  143.     a window.
  144.  
  145.   GENERIC POLL BLOCKING
  146.     Monkey reached a point where it could sleep waiting for
  147.     commands or scheduled timeouts.  No fetches nor redraws
  148.     were pending.
  149.  
  150.   Window messages
  151.   ---------------
  152.  
  153.   WINDOW NEW WIN %id% FOR %id% CLONE %id% NEWTAB %bool%
  154.     The core asked Monkey to open a new window.  The IDs for 'FOR' and
  155.     'CLONE' are core window IDs, the WIN id is a Monkey window ID.
  156.  
  157.   WINDOW SIZE WIN %id% WIDTH %n% HEIGHT %n%
  158.     The window specified has been set to the shown width and height.
  159.  
  160.   WINDOW DESTROY WIN %id%
  161.     The core has instructed Monkey to destroy the named window.
  162.  
  163.   WINDOW TITLE WIN %id% STR %str%
  164.     The core supplied a titlebar title for the given window.
  165.  
  166.   WINDOW REDRAW WIN %id%
  167.     The core asked that Monkey redraw the given window.
  168.  
  169.   WINDOW GET_DIMENSIONS WIN %id% WIDTH %n% HEIGHT %n%
  170.     The core asked Monkey what the dimensions of the window are.
  171.     Monkey has to respond immediately and returned the supplied width
  172.     and height values to the core.
  173.  
  174.   WINDOW NEW_CONTENT WIN %id%
  175.     The core has informed Monkey that the named window has a new
  176.     content object.
  177.  
  178.   WINDOW NEW_ICON WIN %id%
  179.     The core has informed Monkey that the named window hsa a new
  180.     icon (favicon) available.
  181.  
  182.   WINDOW START_THROBBER WIN %id%
  183.     The core asked Monkey to start the throbber for the named
  184.     window.  This indicates to the user that the window is busy.
  185.  
  186.   WINDOW STOP_THROBBER WIN %id%
  187.     The core asked Monkey to stop the throbber for the named
  188.     window.  This indicates to the user that the window is finished.
  189.  
  190.   WINDOW SET_SCROLL WIN %id% X %n% Y %n%
  191.     The core asked Monkey to set the named window's scroll offsets
  192.     to the given X and Y position.
  193.  
  194.   WINDOW UPDATE_BOX WIN %id% X %n% Y %n% WIDTH %n% HEIGHT %n%
  195.     The core asked Monkey to redraw the given portion of the content
  196.     display.  Note these coordinates refer to the content, not the
  197.     viewport which Monkey is simulating.
  198.  
  199.   WINDOW UPDATE_EXTENT WIN %id% WIDTH %n% HEIGHT %n%
  200.     The core has told us that the content in the given window has a
  201.     total width and height as shown.  This allows us (along with the
  202.     window's width and height) to know the scroll limits.
  203.    
  204.   WINDOW SET_STATUS WIN %id% STR %str%
  205.     The core has told us that the given window needs its status bar
  206.     updating with the given message.
  207.  
  208.   WINDOW SET_POINTER WIN %id% POINTER %id%
  209.     The core has told us to update the mouse pointer for the given
  210.     window to the given pointer ID.
  211.  
  212.   WINDOW SET_SCALE WIN %id% SCALE %n%
  213.     The core has asked us to scale the given window by the given scale
  214.     factor.
  215.  
  216.   WINDOW SET_URL WIN %id% URL %url%
  217.     The core has informed us that the given window's URL bar needs
  218.     updating to the given url.
  219.  
  220.   WINDOW GET_SCROLL WIN %id% X %n% Y %n%
  221.     The core asked Monkey for the scroll offsets.  Monkey returned the
  222.     numbers shown for the window named.
  223.  
  224.   WINDOW SCROLL_START WIN %id%
  225.     The core asked Monkey to scroll the named window to the top/left.
  226.  
  227.   WINDOW POSITION_FRAME WIN %id% X0 %n% Y0 %n% X1 %n% Y1 %n%
  228.     The core asked Monkey to position the named window as a frame at
  229.     the given coordinates of its parent.
  230.  
  231.   WINDOW SCROLL_VISIBLE WIN %id% X0 %n% Y0 %n% X1 %n% Y1 %n%
  232.     The core asked Monkey to scroll the named window until the
  233.     indicated box is visible.
  234.  
  235.   WINDOW PLACE_CARET WIN %id% X %n% Y %n% HEIGHT %n%
  236.     The core asked Monkey to render a caret in the named window at the
  237.     indicated position with the indicated height.
  238.  
  239.   WINDOW REMOVE_CARET WIN %id%
  240.     The core asked Monkey to remove any caret in the named window.
  241.  
  242.   WINDOW SCROLL_START WIN %id% X0 %n% Y0 %n% X1 %n% Y1 %n%
  243.     The core asked Monkey to scroll the named window to the start of
  244.     the given box.
  245.  
  246.   WINDOW SELECT_MENU WIN %id%
  247.     The core asked Monkey to produce a selection menu for the named
  248.     window.
  249.  
  250.   WINDOW SAVE_LINK WIN %id% URL %url% TITLE %str%
  251.     The core asked Monkey to save a link from the given window with
  252.     the given URL and anchor title.
  253.  
  254.   WINDOW THUMBNAIL WIN %id% URL %url%
  255.     The core asked Monkey to render a thumbnail for the given window
  256.     which is currently at the given URL.
  257.  
  258.   WINDOW REDRAW WIN %id% START
  259.   WINDOW REDRAW WIN %id% STOP
  260.     The core wraps redraws in these messages.  Thus PLOT responses can
  261.     be allocated to the appropriate window.
  262.  
  263.   Download window messages
  264.   ------------------------
  265.  
  266.   DOWNLOAD_WINDOW CREATE DWIN %id% WIN %id%
  267.     The core asked Monkey to create a download window owned by the
  268.     given browser window.
  269.  
  270.   DOWNLOAD_WINDOW DATA DWIN %id% SIZE %n% DATA %str%
  271.     The core asked Monkey to update the named download window with
  272.     the given byte size and data string.
  273.  
  274.   DOWNLOAD_WINDOW ERROR DWIN %id% ERROR %str%
  275.     The core asked Monkey to update the named download window with
  276.     the given error message.
  277.  
  278.   DOWNLOAD_WINDOW DONE DWIN %id%
  279.     The core asked Monkey to destroy the named download window.
  280.  
  281.   SSL Certificate messages
  282.   ------------------------
  283.  
  284.   SSLCERT VERIFY CERT %id% URL %url%
  285.     The core asked Monkey to say whether or not a given SSL
  286.     certificate is OK.
  287.  
  288.   401 Login messages
  289.   ------------------
  290.  
  291.   401LOGIN OPEN M4 %id% URL %url% REALM %str%
  292.     The core asked Monkey to ask for identification for the named
  293.     realm at the given URL.
  294.  
  295.   Plotter messages
  296.   ----------------
  297.  
  298.   Note, Monkey won't clip coordinates, but sometimes the core does.
  299.  
  300.   PLOT CLIP X0 %n% Y0 %n% X1 %n% Y1 %n%
  301.     The core asked Monkey to clip plotting to the given clipping
  302.     rectangle (X0,Y0) (X1,Y1)
  303.  
  304.   PLOT TEXT X %n% Y %n% STR %str%
  305.     The core asked Monkey to plot the given string at the
  306.     given coordinates.
  307.  
  308.   PLOT LINE X0 %n% Y0 %n% X1 %n% Y1 %n%
  309.     The core asked Monkey to plot a line with the given start
  310.     and end coordinates.
  311.  
  312.   PLOT RECT X0 %n% Y0 %n% X1 %n% Y1 %n%
  313.     The core asked Monkey to plot a rectangle with the given
  314.     coordinates as the corners.
  315.  
  316.   PLOT BITMAP X %n% Y %n% WIDTH %n% HEIGHT %n%
  317.     The core asked Monkey to plot a bitmap at the given
  318.     coordinates, scaled to the given width/height.
  319.