-
Notifications
You must be signed in to change notification settings - Fork 13
/
Copy pathCHANGES
318 lines (211 loc) · 7.11 KB
/
CHANGES
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
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
Noteworthy changes
==================
Breaking changes are usually introduced in a major version bump,
new features are introduced in minor version bumps.
1.2.0
-----
png, pdf, html functions are now immediate,
one must call `wait('load')`, `wait('ready')`, `wait('idle')` before,
to make sure it's in an expected state.
1.6.0
-----
```
on('request', function(req) {
// use
req.cancel = true;
// instead of
req.uri = null;
// or even
delete req.uri;
// all forms are supported but the first one is safer style
});
```
1.7.0
-----
Load options stylesheet and css are now available only as `style`, a Buffer or
a String, inserted as *user style*.
The reason is to simplify API and also that it is not up to this module to load
data from files.
1.8.0
-----
Life events (ready, load, idle, unload) cannot be listened when next event has
already happened - this is made to prevent waiting for an event that's not
going to happen.
If the event already happened but next event has not happened yet, the listener
is immediately called back.
If the event loop is stopped and a listener for a future life event is registered,
it restarts the loop waiting for the next event.
1.9.0
-----
pdf options replaces {fullpage: true} by {margins: 0}.
1.10.0
------
Facilitate arguments passing with run(
function(any, number, of, args, cb),
{a:1}, 34, "number", [],
function(err, some, returned, args) {
}
);
1.11.0
------
.html() now returns the document html prepended with its doctype declaration.
1.12.0
------
idle event is more accurate. Happens once after load event.
Further activity is tracked by repeated on('busy') events.
Remove special inspector code, which paused debugger on load.
1.13.0
------
rewritten all code concerning preloading of a page - might have minor
side effects.
Added transparency support.
1.14.0
------
changed the effect of width, height - it actually sets the window size, now
the "gui" release !
1.15.0
------
changed signature of `done` in .run(..., done) and gave precisions about
that. Otherwise it was impossible to chain an async script after completion
of a run call.
1.16.0
------
req.ignore does not wait for requests to finish when deciding for idle event.
1.17.0
------
changed signature of .run() again.
The optional parameter(s) is either alone or an array, to ensure .run() has
definite max arguments length.
Code doing
`.run(script, arg1, arg2, ...)`
must replace it by
`.run(script, [arg1, arg2], ...)`
If only one argument was passed, that operation is done automatically.
1.18.0
------
registering an event listener using wait(ev) for an event that already happened
has now the same behavior as when the event just happened.
2.0.0
-----
The chainable API has been dropped.
.wait can be replaced by .when, see README.
.run(script, param1, param2, ..., cb) like .runev,
and there is only one callback, as a consequence of dropping chainable API.
2.1.0
-----
Added cookiePolicy instance (init) option.
"idle" event is now much more accurate - meaning it can hang sometimes too,
though it would be considered a bug in that case.
2.2.0
-----
No API change but partial fallback to jsdom is available when bindings are not buildable.
2.3.0
-----
No more complex gtk loop management. The gtk loop is run for all modules in the default uv loop.
Main change: it's not possible to "pause" a view (it wasn't really possible anyway),
and it's no longer necessary to listen "unload" event to keep events running.
2.4.0
-----
All async run() calls have a default runTimeout, settable between loads.
3.0.0
-----
The req object received in the request event is now read-only.
One must now use the load method options `filter` which can be given
additional arguments with `filterArgs`.
This is a major change and also a performance improvement.
3.1.0
-----
Crucial change in the way intervals and timeouts account for idle event,
with the introduction of two load parameters: stallTimeout, stallInterval.
They ensure current timeouts or intervals will not prevent an idle
after those respective durations, thus preventing a never-occuring idle
event on some sites.
This change breaks version 3.0.6 with its cutInterval, cutTimeout - they
were a less efficient attempt at solving the same problem.
3.2.0
-----
With a REPL installed as "webkitgtk".
See `webkitgtk --help`
3.3.0
-----
Add data event.
3.3.1
-----
Always download resources, even if mime type is not supported.
3.4.0
-----
Give access to all WebKitSettings options,
deprecate the options that were renamed arbitrarily, see deprecations in README.
3.5.0
-----
Add a `navigate` event that allows, in conjonction with `navigation` option
to handle redirection.
3.6.0
-----
Shouldn't be a breaking change: default user-agent is now the one set by the
backend (webkitgtk or jsdom), not "Mozilla/5.0".
3.6.3
-----
Officialize the fact that filters never received a populated this.headers by
removing it from documentation.
Support console.trace, and provide better output for errors.
3.6.4
-----
Setting document.location early could stop document while loading and
make client internal script miss the load event.
3.6.5
-----
Add load 'scripts' option.
3.6.6
-----
allow: "same-origin" now allows data:uri.
4.0.0
-----
Expose a promise-based API, expose WebKit.navigator constant.
Bump major because there might be subtle incompatibilities.
4.1.0
-----
stallTimeout ignores timeouts after a given period of time since page opening.
This is good to make sure recurring timeouts do not prevent 'idle' event; this
was bad because it led to ignoring zero-timeouts (the ones used to queue tasks).
This is fixed in this version and it should give better 'idle' behavior.
webkitgtk 2.12 library has an implementation of Promise that has an unpredictable
micro-task queue behavior, leading to some tasks not being run before next
setTimeout task queue, and those tasks could then not be run before idle event.
To fix this, we use another Promise implementation that uses asap module and leads
to a more predictable behavior. This is a workaround - but monkey-patching
Promise object is too difficult for the author :)
4.2.0
-----
Do not catch errors from thenables added in when().
4.3.0
-----
- cacheModel option to choose between cache models. Defaults to "web", a change
w.r.t. previous versions where it was "none".
- reset(cb) allows one to do a quicker .load() calls on same instance
4.4.7
-----
- not a breaking change, but worth knowing: idle event now tracks loading of
script[src], link[href] tags that are inserted by javascript.
4.5.0
-----
- Feature: settings.script now accepts plain js code (it used to accept only
statements returning a value). This is useful to inject custom libs.
4.6.0
-----
- margins can now be a string with units (feature)
- setting orientation works again
4.7.0
-----
- support "fetch" for idle event
4.8.0
-----
- add "resizing" option to allow window resizeTo/moveTo/resizeBy/moveBy
4.8.3
-----
- make fetch() return polyfilled promise instance instead of internal one,
in some high load scenarios this avoids missing end of promise chain.
- fix a segfault by cleaning up GeometryChanged event listener on destroy
4.12.0
------
Node.js 12 support