Commit Graph

14211 Commits

Author SHA1 Message Date
Daniel Silverstone
24ec30359b
Window: Do not get stuck if callbacks are in-train during compartment close
When we close the JS compartment we try and cancel all callbacks so that
they do not fire after the compartment is closed.  However if we have
in-train callbacks, they can gum up the closedown and so we need to check
and if we've done all we can, we break out of the callback removal loop.

Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2020-04-25 14:04:54 +01:00
Vincent Sanders
bf4cbc95b0 add bindings for canvas width and height 2020-04-24 22:05:57 +01:00
Vincent Sanders
084861a31b Implement javascript scheme url script https://wiki.whatwg.org/wiki/URL_schemes 2020-04-17 22:43:44 +01:00
Vincent Sanders
529b94be73 fixup riscos image configuration dialog gadget id
when minimum GIF delay was removed in
 38c632a7da the
 remaining gadget identifier numbers were not updated.

Fixes #2745
2020-04-14 22:03:24 +01:00
Vincent Sanders
84f0c760e6 use form of window create which returns an error instead of aborting 2020-04-14 21:08:51 +01:00
Vincent Sanders
e2f34232a2 refactor html mouse action
This reduces the source complexity of the html_mouse_action()
 previously this was a single function of several thousand
 lines with over 30 local variables allocated on the stack.

Variables are now mostly held in a single static structure which
 drasticaly reduces the size of stack frame required and improves
 lookup locality.

The generated code does cause two additional function calls as the
 compiler avoids inlining the sub functions. The optimiser seems to
 produce somewhat better code within the sub functions.

In the final analysis there appears to be no significant performance
 loss or gain with this change, just more readable source.
2020-04-13 12:09:07 +01:00
Michael Drake
c4a18c2fdd Resources: Update presentation to use nscolour. 2020-04-07 21:32:28 +01:00
Michael Drake
15342b5f5b About pages: Update presentation using nscolour. 2020-04-07 21:32:28 +01:00
Michael Drake
aa1513ed92 Directory listings: Update to use nscolour. 2020-04-07 21:32:28 +01:00
Michael Drake
56bdc71817 Internal stylesheet: Update dirlist style. 2020-04-07 21:32:28 +01:00
Michael Drake
b688a222ee Internal stylesheet: Update heading styles. 2020-04-07 21:32:27 +01:00
Michael Drake
7745f224dc Internal stylesheet: Import the nscolour stylesheet. 2020-04-07 21:32:27 +01:00
Michael Drake
0e04059f53 about fetcher: Add about:nscolour.css generated colour stylesheet. 2020-04-07 21:32:27 +01:00
Michael Drake
9fa6ac7113 nscolour: Add function to get nscolour stylesheet. 2020-04-07 21:32:27 +01:00
Michael Drake
562f4f765c Local history: Convert to use nscolour. 2020-04-07 21:32:27 +01:00
Michael Drake
6a7729a04f Scrollbar: Convert to use nscolour. 2020-04-07 21:32:27 +01:00
Michael Drake
b55cc0c222 Page info: Convert to nscolour. 2020-04-07 21:32:27 +01:00
Michael Drake
d34f9ec04d Treeview: Convert to nscolour. 2020-04-07 21:32:27 +01:00
Michael Drake
efc8160d3c NetSurf: Setup the nscolour module on startup. 2020-04-07 21:32:27 +01:00
Michael Drake
13e0faa261 Buildsystem: Build the nscolour module. 2020-04-07 21:32:27 +01:00
Michael Drake
2e844636cb nscolour: Add nscolour module for NetSurf UI colours. 2020-04-07 21:32:27 +01:00
Michael Drake
0ab6249a64 Tests: Update test data for improved nsoption colour rendering. 2020-04-07 21:32:27 +01:00
Michael Drake
bdd1d2039c nsoption: Improve how we show colours in about:config. 2020-04-07 21:28:12 +01:00
Michael Drake
2da993756c nsoption: Use colour_rb_swap macro. 2020-04-07 21:28:12 +01:00
Michael Drake
30b9c088b0 Plot style: Add half lighten/darken helper variants. 2020-04-07 21:28:12 +01:00
Michael Drake
02400588e4 Local history: Improve look of keyboard nav cursor highlight. 2020-04-06 11:30:48 +01:00
Daniel Silverstone
cbc28d2c98
html: Also close js thread on html_stop()
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2020-03-29 14:31:42 +01:00
Vincent Sanders
6b0cb5479f fix source object backing store documentation
fix formatting
add section on version 2 layout
2020-03-26 23:38:50 +00:00
Vincent Sanders
51dc59ecc9 remove unused constants 2020-03-26 23:38:50 +00:00
Daniel Silverstone
1053bcd3c1
Makefile: Add STMTEXPR detection for wapcaplet
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2020-03-26 22:05:21 +00:00
Vincent Sanders
34508fc3cd For some reason atari mkdir_all operation was using the wrong path separator 2020-03-25 21:54:12 +00:00
Vincent Sanders
959c561eb3 unit testing table of contents marker was wrong case 2020-03-24 13:03:51 +00:00
Vincent Sanders
06b709f71a Improve unit testing documentation headers and code blocks 2020-03-24 08:54:40 +00:00
Vincent Sanders
5bc21c0467 fix use of headings in integration test document 2020-03-24 08:49:29 +00:00
Vincent Sanders
fa1f1dcd11 fix start stop test to set launch options correctly 2020-03-23 17:41:05 +00:00
Vincent Sanders
9ec17b011b Document the integration test setup 2020-03-23 17:41:05 +00:00
Vincent Sanders
e070f13093 integration test remove remaining windows when browser has been quit 2020-03-23 17:41:05 +00:00
Vincent Sanders
710818f346 fix integration test repeat "max" handling 2020-03-23 17:41:05 +00:00
Vincent Sanders
9cb7d0ab48 make conditionals optional in integration test sleep-ms action 2020-03-23 17:41:05 +00:00
Vincent Sanders
19dded8cfa add ability for monkey farmer to launch browser with environment variables set 2020-03-23 17:40:53 +00:00
Daniel Silverstone
4cbdcc4aae
about: Add handling for unknown about: page
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2020-03-22 14:09:09 +00:00
Daniel Silverstone
9014dc7381
browser_window: Don't attempt to unref NULL lwc string
Fixes #2741

Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2020-03-22 13:35:45 +00:00
Daniel Silverstone
d3a80a9aae
Monkey: Clean up on completion of downloads
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2020-03-22 13:08:36 +00:00
Daniel Silverstone
677d757a6c
browser_window: Re-add clearing of loading_content in download
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2020-03-22 12:59:22 +00:00
Daniel Silverstone
6a2ce2b3c7
HTML: Use new js_closethread()
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2020-03-22 10:18:30 +00:00
Daniel Silverstone
8f7bfb7b56
Window: Add flag to ensure we don't set timeouts after close
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2020-03-22 10:14:31 +00:00
Daniel Silverstone
d1e2eef18b
JS: Add concept of js_closethread
In order to better model content close vs destroy, add the concept
of closing a thread to the JS interface.

Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2020-03-22 10:14:00 +00:00
Daniel Silverstone
efbfaa0cb1
JS: Move ownership of jsthread from browser to htmlc
Since it makes more sense for the htmlc to be responsible for
when the JS thread gets destroyed, move its lifetime from the
responsibility of the browser window to the html content.

Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2020-03-22 10:00:29 +00:00
Daniel Silverstone
98e461a3b3
Dukky: Make heaps refcounted too
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2020-03-22 09:59:52 +00:00
Daniel Silverstone
80e7ac7345
Dukky: Add refcounting to threads
In order to cope with threads which manage to navigate entirely
while executing (sadly possible) we need to handle the possibility
that a thread is destroyed by the browser but still needs to live
until it returns from whatever exec it was doing at the time.

Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2020-03-21 20:49:40 +00:00