summaryrefslogtreecommitdiff
path: root/Docs/USING-Monkey
blob: 7e30a49ad5f7f9840bde539a1b5155109887f648 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
--------------------------------------------------------------------------------
  Usage Instructions for Monkey NetSurf                            13 March 2011
--------------------------------------------------------------------------------

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

  Monkey NetSurf has been tested on Ubuntu.

Overview
========

  What it is
  ----------

  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.
 
  What it is not
  --------------

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

  How to interact with nsmonkey
  -----------------------------

  In brief, monkey 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.

  Top level tags for nsmonkey
  ---------------------------

    GENERIC

    WARN, ERROR, DIE

    WINDOW

    DOWNLOAD_WINDOW

    SSLCERT

    401LOGIN

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

    %url% will be a URL
    %id% will be an opaque ID
    %n% will be a number
    %bool% will be TRUE or FALSE
    %str% is a string and will only ever be at the end of an output line.

  Warnings, errors etc
  --------------------

  Warnings (tagged WARN) come from the NetSurf core.
  Errors (tagged ERROR) tend to come from Monkey's parsers
  Death (tagged DIE) comes from the core and kills Monkey dead.

  Generic messages
  ----------------

  GENERIC STARTED
    Monkey has started and is ready for commands
  GENERIC CLOSING_DOWN
    Monkey has been told to shut down and is doing so
  GENERIC FINISHED
    Monkey has finished and will now exit
  GENERIC LAUNCH URL %url%
    The core asked monkey to launch the given URL
  GENERIC THUMBNAIL URL %url%
    The core asked monkey to thumbnail a content without
    a window.
  GENERIC POLL BLOCKING
    Monkey reached a point where it could sleep waiting for
    commands or scheduled timeouts.  No fetches nor redraws
    were pending.

  Window messages
  ---------------

  WINDOW NEW WIN %id% FOR %id% CLONE %id% NEWTAB %bool%
    The core asked Monkey to open a new window.  The IDs for 'FOR' and
    'CLONE' are core window IDs, the WIN id is a Monkey window ID.

  WINDOW SIZE WIN %id% WIDTH %num% HEIGHT %num%
    The window specified has been set to the shown width and height.

  WINDOW DESTROY WIN %id%
    The core has instructed Monkey to destroy the named window.

  WINDOW TITLE WIN %id% STR %str%
    The core supplied a titlebar title for the given window.

  WINDOW REDRAW WIN %id%
    The core asked that Monkey redraw the given window.

  WINDOW GET_DIMENSIONS WIN %id% WIDTH %num% HEIGHT %num%
    The core asked Monkey what the dimensions of the window are.
    Monkey has to respond immediately and returned the supplied width
    and height values to the core.

  WINDOW NEW_CONTENT WIN %id%
    The core has informed Monkey that the named window has a new
    content object.

  WINDOW NEW_ICON WIN %id%
    The core has informed Monkey that the named window hsa a new
    icon (favicon) available.

  WINDOW START_THROBBER WIN %id%
    The core asked Monkey to start the throbber for the named
    window.  This indicates to the user that the window is busy.

  WINDOW STOP_THROBBER WIN %id%
    The core asked Monkey to stop the throbber for the named
    window.  This indicates to the user that the window is finished.

  WINDOW SET_SCROLL WIN %id% X %num% Y %num%
    The core asked Monkey to set the named window's scroll offsets
    to the given X and Y position.

  WINDOW UPDATE_BOX WIN %id% X %num% Y %num% WIDTH %num% HEIGHT %num%
    The core asked Monkey to redraw the given portion of the content
    display.  Note these coordinates refer to the content, not the
    viewport which Monkey is simulating.

  WINDOW UPDATE_EXTENT WIN %id% WIDTH %num% HEIGHT %num%
    The core has told us that the content in the given window has a
    total width and height as shown.  This allows us (along with the
    window's width and height) to know the scroll limits.
    
  WINDOW SET_STATUS WIN %id% STR %str%
    The core has told us that the given window needs its status bar
    updating with the given message.

  WINDOW SET_POINTER WIN %id% POINTER %id%
    The core has told us to update the mouse pointer for the given
    window to the given pointer ID.

  WINDOW SET_SCALE WIN %id% SCALE %num%
    The core has asked us to scale the given window by the given scale
    factor.

  WINDOW SET_URL WIN %id% URL %url%
    The core has informed us that the given window's URL bar needs
    updating to the given url.

  WINDOW GET_SCROLL WIN %id% X %num% Y %num%
    The core asked Monkey for the scroll offsets.  Monkey returned the
    numbers shown for the window named.

  WINDOW SCROLL_START WIN %id%
    The core asked Monkey to scroll the named window to the top/left.

  WINDOW POSITION_FRAME WIN %id% X0 %num% Y0 %num% X1 %num% Y1 %num%
    The core asked Monkey to position the named window as a frame at
    the given coordinates of its parent.

  WINDOW SCROLL_VISIBLE WIN %id% X0 %num% Y0 %num% X1 %num% Y1 %num%
    The core asked Monkey to scroll the named window until the
    indicated box is visible.

  WINDOW PLACE_CARET WIN %id% X %num% Y %num% HEIGHT %num% 
    The core asked Monkey to render a caret in the named window at the
    indicated position with the indicated height.

  WINDOW REMOVE_CARET WIN %id%
    The core asked Monkey to remove any caret in the named window.

  WINDOW SCROLL_START WIN %id% X0 %num% Y0 %num% X1 %num% Y1 %num%
    The core asked Monkey to scroll the named window to the start of
    the given box.

  WINDOW SELECT_MENU WIN %id%
    The core asked Monkey to produce a selection menu for the named
    window.

  WINDOW SAVE_LINK WIN %id% URL %url% TITLE %str%
    The core asked Monkey to save a link from the given window with
    the given URL and anchor title.

  WINDOW THUMBNAIL WIN %id% URL %url%
    The core asked Monkey to render a thumbnail for the given window
    which is currently at the given URL.

  Download window messages
  ------------------------

  DOWNLOAD_WINDOW CREATE DWIN %id% WIN %id%
    The core asked Monkey to create a download window owned by the
    given browser window.

  DOWNLOAD_WINDOW DATA DWIN %id% SIZE %num% DATA %str%
    The core asked Monkey to update the named download window with
    the given byte size and data string.

  DOWNLOAD_WINDOW ERROR DWIN %id% ERROR %str%
    The core asked Monkey to update the named download window with
    the given error message.

  DOWNLOAD_WINDOW DONE DWIN %id%
    The core asked Monkey to destroy the named download window.

  SSL Certificate messages
  ------------------------

  SSLCERT VERIFY CERT %id% URL %url%
    The core asked Monkey to say whether or not a given SSL
    certificate is OK.

  401 Login messages
  ------------------

  401LOGIN OPEN M4 %id% URL %url% REALM %str%
    The core asked Monkey to ask for identification for the named
    realm at the given URL.