Commit Graph

1299 Commits

Author SHA1 Message Date
Vincent Sanders
730d59776a cleanup some javascript documentation comments 2019-07-12 13:40:26 +01:00
Vincent Sanders
90530c419e when owning context is destroyed ensure that active js compartment is destroyed first 2019-07-12 13:37:04 +01:00
Vincent Sanders
c2fa6af0ff make content close check the content status itself
make content handler open and close return error status
2019-07-10 16:42:52 +01:00
Vincent Sanders
1ae0ee21ee add isFinite to global context 2019-07-01 23:26:11 +01:00
Daniel Silverstone
43f8e77df7 css/utils.c: Fix vw/vh handling in len2pt
We were using integer multiplication rather than fixed-point
multiplication when calculating point sizes relative to the viewport.

This fixes that.

Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2019-06-30 11:27:58 +01:00
Michael Drake
1c3ce67c62 HTML: Viewport width/height in length context are fixed point. 2019-06-29 21:59:15 +01:00
Vincent Sanders
dc9762fef3 revert 8265b8b66f as ssize_t is not available everywhere 2019-06-25 08:49:29 +01:00
Daniel Silverstone
8265b8b66f Duktape: Probably should use ssize_t
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2019-06-15 21:34:47 +01:00
Daniel Silverstone
84b8e7dfa1 Duktape: Hopefully silence issue with %lld
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2019-06-15 21:33:59 +01:00
Daniel Silverstone
659c9161ee llcache: Abort cleanly if called back during shutdown
In order to help us debug shutting down with active fetches, this
will abort the process cleanly if we get a callback to an "active"
llcache handle after the abort process has actually killed them
all.  This can happen with deferred fetcher aborts in the cURL
fetcher.

Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2019-06-15 21:13:09 +01:00
Daniel Silverstone
09fa61eb73 hlcache.c: Clean up LOADING contents during finalise
During the process of finalising the hlcache, there won't be
any more fetching going on.  As such, we can abort, error, and
then destroy any contents still in the process of loading.  This
should reduce our leaks during shutdown.

Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2019-06-15 21:12:58 +01:00
John-Mark Bell
c1dc4e61bd LLCache: validate max-age before use 2019-06-10 21:36:52 +00:00
John-Mark Bell
047c82cfce LLCache: use Cache-Control parser 2019-06-10 21:02:26 +00:00
Vincent Sanders
9893b05b08 use jmb suggested fix to cache-control header parse error 2019-06-10 21:58:46 +01:00
Vincent Sanders
e598dcd139 fix parsing of invalid syntax max-age value Cache-control header 2019-06-10 20:53:12 +01:00
Daniel Silverstone
e82107a296 Window.bnd: Suppress some unnecessary stack frame dumps
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2019-06-09 15:59:05 +01:00
Daniel Silverstone
c5c8a49276 Window.bnd: Expose isNan
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2019-06-09 15:20:01 +01:00
Daniel Silverstone
04cf2fe588 Window.bnd: Do not remove in-train callbacks
Sometimes callbacks may be cancelled from within themselves.  In
that case we need to simply ensure that should the callback be
wanted to repeat, we instead stop that so that once the callback
is completed we do not attempt to reschedule something which had
already been deleted.

Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2019-06-09 11:04:15 +01:00
Vincent Sanders
dddc5eac94 Update schedulers return codes
The GTK and monkey frontends schedulers now return NSERROR_NOT_FOUND
 when a caller is using a negative schedule time to remove a callback.
2019-06-08 13:33:16 +01:00
Daniel Silverstone
64ee8e1b00 html.c: Correct ordering for reformat time
Fix a minor bug where we'd likely never end up reformatting.

Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2019-06-05 22:59:49 +01:00
Daniel Silverstone
3d80e825e1 content/fetchers/curl.c: Defer fetch start if inside cURL
In order to cope better with modern cURL which prevents making
cURL calls when inside a callback from within cURL, defer fetch
start when we are processing in `fetch_curl_data()`.

Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2019-06-05 19:51:47 +01:00
Daniel Silverstone
c07b2edd77 Document.bnd: createDocumentFragment() unref fragment
The pushed fragment node holds the reference, so unref it in
the end of createDocumentFragment()

Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2019-06-01 13:59:36 +01:00
Daniel Silverstone
9c32564085 html_script.c: html_script_exec() reqacquire script ptr
Since executing a script can cause more scripts to be appended
to the script array, and that can cause a reallocation which might
move the script array, reacquire the script pointer after running
the script so that we don't wander off into the reeds.

Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2019-06-01 13:25:14 +01:00
Vincent Sanders
a6de56583c Improve javascript unimplemented bnding documentation generation 2019-05-31 19:40:10 +01:00
Vincent Sanders
13a5b8f74a make curl fetcher log debug using NSLOG
stop curl fetcher logging being special case to standard error and
 use the fetch catagory at DEBUG level instead.

The special suppress_curl_debug option is currently still obeyed
2019-05-28 11:16:49 +01:00
Daniel Silverstone
57094c84ed Expose NaN on Window
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2019-05-25 20:11:52 +01:00
Daniel Silverstone
196c2fc845 Add dodgy window method to clear callbacks
Until we can determine *how* the compartment isn't cleaning
up properly in the duktape context, this will at least mean
we don't get unpleasant callback related issues when compartments
are reset during browsing.

Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2019-05-25 16:23:37 +01:00
Daniel Silverstone
87be4e7a17 Log when we finalise window objects
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2019-05-25 16:13:57 +01:00
Daniel Silverstone
c42039c546 Use generics for makeListProxy properly
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2019-05-25 16:13:57 +01:00
Daniel Silverstone
9ee92823e2 Use generics for makeListProxy properly
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2019-05-25 16:13:57 +01:00
Daniel Silverstone
78385629c3 Remove unnecessary generics magic
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2019-05-25 16:13:57 +01:00
Michael Drake
b330fd9f0e HTML: Update selection media data for new libcss API. 2019-05-07 14:01:51 +01:00
Michael Drake
31655be43b CSS: One inch is 96 css pixels. 2019-05-07 09:53:31 +01:00
Michael Drake
51feeadcf9 HTML: Set up the CSS length measuring context in CSS pixels. 2019-05-06 21:30:05 +01:00
Michael Drake
041e9426c1 CSS: Use helper to convert form css to physical pixels. 2019-05-06 21:25:54 +01:00
Michael Drake
ffc199d778 CSS: Add helpers to convert between css and physical pixels. 2019-05-06 21:22:55 +01:00
Michael Drake
7567f64075 CSS: Extern the nscss_baseline_pixel_density value.
Front ends should be able to set this, or it should
be a config option.
2019-05-06 21:21:44 +01:00
Michael Drake
e02020198d Convert css_len2pt and css_len2px for CSS pixels. 2019-05-06 20:49:48 +01:00
Michael Drake
a43b83de03 HTML: Squash error-path leaks in select box construction. 2019-05-06 17:29:53 +01:00
Michael Drake
65b16f4c54 Curl fetcher: Force HTTP1.1 to fix HTTP2 crash.
On ubuntu 19.4, curl is built with HTTP2 support, and we
segfault.

==18174== Invalid read of size 1
==18174==    at 0x4ACCE7D: ??? (in /usr/lib/x86_64-linux-gnu/libcurl.so.4.5.0)
==18174==    by 0x4B054B1: ??? (in /usr/lib/x86_64-linux-gnu/libcurl.so.4.5.0)
==18174==    by 0x4AD398A: ??? (in /usr/lib/x86_64-linux-gnu/libcurl.so.4.5.0)
==18174==    by 0x4AD7A0B: ??? (in /usr/lib/x86_64-linux-gnu/libcurl.so.4.5.0)
==18174==    by 0x4AE93EE: ??? (in /usr/lib/x86_64-linux-gnu/libcurl.so.4.5.0)
==18174==    by 0x4AEA8A8: curl_multi_perform (in /usr/lib/x86_64-linux-gnu/libcurl.so.4.5.0)
==18174==    by 0x1F2EF7: fetch_curl_poll (curl.c:1209)
==18174==    by 0x1EEC5C: fetcher_poll (fetch.c:271)
==18174==    by 0x2A1ED4: schedule_run (schedule.c:160)
==18174==    by 0x15F941: framebuffer_run (gui.c:596)
==18174==    by 0x15F941: main (gui.c:2206)
==18174==  Address 0x9de95a8 is 3,224 bytes inside a block of size 6,304 free'd
==18174==    at 0x483997B: free (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==18174==    by 0x4AD497B: ??? (in /usr/lib/x86_64-linux-gnu/libcurl.so.4.5.0)
==18174==    by 0x4AE158C: curl_easy_cleanup (in /usr/lib/x86_64-linux-gnu/libcurl.so.4.5.0)
==18174==    by 0x1F30DE: fetch_curl_cache_handle (curl.c:761)
==18174==    by 0x1F30DE: fetch_curl_stop (curl.c:840)
==18174==    by 0x1F30DE: fetch_curl_done (curl.c:1122)
==18174==    by 0x1F30DE: fetch_curl_poll (curl.c:1223)
==18174==    by 0x1EEC5C: fetcher_poll (fetch.c:271)
==18174==    by 0x2A1ED4: schedule_run (schedule.c:160)
==18174==    by 0x15F941: framebuffer_run (gui.c:596)
==18174==    by 0x15F941: main (gui.c:2206)
==18174==  Block was alloc'd at
==18174==    at 0x483AB35: calloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==18174==    by 0x4AE165F: curl_easy_duphandle (in /usr/lib/x86_64-linux-gnu/libcurl.so.4.5.0)
==18174==    by 0x1F15EB: fetch_curl_get_handle (curl.c:738)
==18174==    by 0x1F15EB: fetch_curl_start (curl.c:750)
==18174==    by 0x1EEB22: fetch_dispatch_job (fetch.c:156)
==18174==    by 0x1EEB22: fetch_choose_and_dispatch (fetch.c:187)
==18174==    by 0x1EEB22: fetch_dispatch_jobs (fetch.c:247)
==18174==    by 0x1EF1BB: fetch_start (fetch.c:573)
==18174==    by 0x26C779: llcache_object_refetch (llcache.c:916)
==18174==    by 0x26D5E4: llcache_object_fetch (llcache.c:979)
==18174==    by 0x26D5E4: llcache_object_retrieve_from_cache (llcache.c:1767)
==18174==    by 0x26D5E4: llcache_object_retrieve (llcache.c:1865)
==18174==    by 0x26E42C: llcache_fetch_redirect (llcache.c:2110)
==18174==    by 0x26E42C: llcache_fetch_callback (llcache.c:2810)
==18174==    by 0x1F1295: fetch_curl_process_headers (curl.c:922)
==18174==    by 0x1F13A0: fetch_curl_data (curl.c:1324)
==18174==    by 0x4ACD4C3: ??? (in /usr/lib/x86_64-linux-gnu/libcurl.so.4.5.0)
==18174==    by 0x4AE00DA: ??? (in /usr/lib/x86_64-linux-gnu/libcurl.so.4.5.0)
2019-05-06 17:12:14 +01:00
Michael Drake
0db71994ea HTML: Before building the box tree, get viewport dimensions. 2019-05-06 15:38:33 +01:00
Michael Drake
0f3b279167 HTML content handler: Handle content msg for getdims. 2019-05-06 15:38:33 +01:00
Michael Drake
6ad7b3e608 Content: Add content message to get viewport dimensions. 2019-05-06 15:38:33 +01:00
Daniel Silverstone
d77ed689e6 Quieten dukky a little more in default log levels
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2019-05-06 15:36:49 +01:00
Daniel Silverstone
52ef77ceef Do not prevent reattempting conversion of HTML contents
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2019-05-06 15:10:01 +01:00
Daniel Silverstone
654e1ee12a Use new safe context dump
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2019-05-06 15:09:47 +01:00
Daniel Silverstone
378383ea3b Support context dump safely in duktape
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2019-05-06 15:09:39 +01:00
Daniel Silverstone
cdc7713662 Add some missing unrefs
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2019-05-06 12:20:04 +01:00
Vincent Sanders
dbf02c37f4 complete basic binding documentation
improve the alert() method parameter handling
2019-05-06 12:04:06 +01:00
Daniel Silverstone
10930fcbaf Properly set log levels
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2019-05-06 10:17:00 +01:00