John-Mark Bell
a8ff4ab228
fetchers/curl: tolerate lack of TLS1.3
...
If we are building against a modern version of libcurl, but it was
built against a version of OpenSSL that does not support TLS1.3,
then attempting to configure TLS1.3 ciphersuites will fail with
CURLE_NOT_BUILT_IN. Tolerate this scenario by treating such a
return code as non-fatal in this case.
2023-03-05 21:37:22 +00:00
Michael Drake
f7a0135300
html: layout: flex: Don't freeze already-frozen items
...
This fixes an error in the used main size tracking.
2022-12-16 14:18:46 +00:00
Michael Drake
73dab84ef8
html: layout: flex: shrink: Avoid rounding error accumulation
2022-12-16 14:18:46 +00:00
Michael Drake
dbd7f5bcd8
html: layout: flex: grow: Avoid rounding error accumulation
2022-12-16 14:18:46 +00:00
Michael Drake
71765dd1e8
html: layout: flex: Handle auto margins in main direction
2022-12-15 21:57:15 +00:00
Michael Drake
88e6fc918a
html: layout: flex: Track used size and count auto margins for main
2022-12-15 21:57:15 +00:00
Michael Drake
cab66fb1ac
html: layout: flex: Helper to get main margin end size
2022-12-15 21:57:15 +00:00
Daniel Silverstone
651deffcf7
(curl): Add extra logging to fetcher initialisation
...
Signed-off-by: Daniel Silverstone <daniel.silverstone@codethink.co.uk>
2022-12-15 10:40:22 +00:00
Michael Drake
e754f31cb7
html: layout: flex: Support reversed main direction
2022-12-14 22:53:35 +00:00
Michael Drake
fbc4f141f7
html: layout: Helpers to get cross/main box size
2022-12-14 22:53:35 +00:00
Michael Drake
25acf1a5dd
html: layout: flex: Rename indirected box w/h functions
2022-12-14 22:53:35 +00:00
Michael Drake
73ce30325f
html: layout: flex: Scope reduce variables
2022-12-14 22:53:35 +00:00
Michael Drake
3760bbcd2a
html: layout: flex: Only distribute positive remaining cross space
2022-12-14 22:53:35 +00:00
Michael Drake
b07bda787c
html: layout: flex: Minor code style change
2022-12-14 22:53:35 +00:00
Michael Drake
43d5ce44ac
html: layout: flex: Add code documentation
2022-12-14 22:53:35 +00:00
Michael Drake
8d4176e4d4
html: layout: flex: Hoist item placement out of line resolver
2022-12-14 22:53:35 +00:00
Michael Drake
6da16e5648
html: layout: flex: Return NULL for pointer
2022-12-14 22:53:35 +00:00
Michael Drake
fbb39f0d49
html: layout: Helper for whether flex direction is reversed
2022-12-14 22:53:35 +00:00
Michael Drake
f30f869ea4
rsvg246: Fix build against librsvg 2.48
...
The version of librsvg is used on Ubuntu 20.04TLS.
2022-12-13 13:02:44 +00:00
Michael Drake
68a4cd39cd
rsvg246: Split out width/height acquisition
2022-12-13 13:02:44 +00:00
Vincent Sanders
9b57f64c55
add rsvg image decoder that uses the new API
2022-11-27 17:34:41 +00:00
Daniel Silverstone
550900b1cb
(Element): Honour [SameObject] for ::classList getter
...
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2022-11-27 14:52:48 +00:00
Daniel Silverstone
7bcd4fd246
DOMTokenList: Add support and testing for this
...
We add both DOMTokenList and DOMSettableTokenList and introduce
polyfills for stringifying it until nsgenbind can do that.
We also bring in a test to demonstrate all that we have.
Note: This does not implement the extra methods that exist according
to MDN, we may need a polyfill to bring that up to snuff.
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2022-11-27 09:40:47 +00:00
Daniel Silverstone
3d739479ea
(duktape): Clear some warnings by adding base data to css rule and stylesheet
...
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2022-11-26 14:55:20 +00:00
John-Mark Bell
20f5599514
fetchers/curl: drop non-PFS fallback ciphersuite
2022-11-05 12:49:01 +00:00
John-Mark Bell
85da9873f7
fetchers/curl: disable TLS1.0 and TLS1.1 support
2022-11-05 12:42:15 +00:00
John-Mark Bell
53e92ed57b
fetchers/curl: explicitly configure TLS1.3 ciphersuites
...
These currently match the defaults, so no functional change.
2022-11-05 12:42:15 +00:00
Michael Drake
877bc2ce13
gif: Ensure we never pass NSERROR_OK to error broadcast
2022-11-04 13:52:17 +00:00
Michael Drake
afbd9cd5e8
gif: Mark gifs as complete after scanning source data
...
This allows libnsgif to distinguish between awaiting more
data, and a broken truncated GIF. In the latter case we
can display what we have.
2022-11-04 11:36:02 +00:00
Michael Drake
217f71357e
html: layout: flex: Disable verbose logging
2022-11-02 20:16:41 +00:00
Michael Drake
45b68a3b50
html: layout: flex: Implement align-items and align-self
2022-11-02 20:16:41 +00:00
Michael Drake
47482bd539
html: layout: flex: Implement wrap-reverse
2022-11-02 20:16:41 +00:00
Michael Drake
e9147bdeea
html: layout: flex: Don't pass content around unnecessarily
2022-11-02 20:16:41 +00:00
Michael Drake
b91d61b89f
html: layout: flex: Compare line main size with available main
...
When deciding whether to use the grow or shrink flex factor we
we using the available width, rather than the space available in
the main direction.
2022-11-02 20:16:41 +00:00
Michael Drake
d0b1bcb01a
html: layout: flex: Unify line item placement
2022-11-02 20:16:41 +00:00
Michael Drake
6c2f9f3285
html: layout helpers: Add helpers for width/height indirection
2022-11-02 20:16:41 +00:00
Michael Drake
991f657ecd
html: layout: Remove duplicate typedefs
2022-10-29 22:28:49 +01:00
Michael Drake
094eb9ae48
layout: flex: Squash main is usually a function warning
2022-10-29 22:15:58 +01:00
Michael Drake
8615964c3f
html: layout: Initial implementation of display: flex
2022-10-29 20:30:48 +01:00
Michael Drake
06eee4636f
html: box_dump: Indicate descendant bounding box values
2022-10-29 20:30:48 +01:00
Michael Drake
6da0bf5b84
layout: minmax pass: Improve handling of {min|max}_width properties
2022-10-29 20:30:48 +01:00
Michael Drake
145d6dfc6c
layout: minmax table: Change logging level to error
2022-10-29 20:30:48 +01:00
Michael Drake
63412372b2
layout: calculate_mbp_width: Preserve percentage values
2022-10-29 20:30:48 +01:00
Michael Drake
ab877e680b
html: layout: Improve block container assertions
2022-10-29 20:30:48 +01:00
Michael Drake
399f0063ba
html: layout: Split out common helpers
2022-10-29 20:30:48 +01:00
Michael Drake
16252bb9f5
css: Fix dump of display: inline-flex
2022-10-29 20:30:48 +01:00
Michael Drake
84d3d1bf7a
layout: Constify box through layout_find_dimensions()
2022-10-29 20:30:48 +01:00
Michael Drake
ae57029f83
layout: Constify box through layout_handle_box_sizing()
2022-10-29 20:30:48 +01:00
Michael Drake
86afb06496
layout: Add helpers for various box type checks
2022-10-29 20:30:48 +01:00
Michael Drake
2f98e96c95
layout: Add helper for checking if a style has a border on a side
2022-10-29 20:30:48 +01:00
Michael Drake
f1dbd523b4
layout: Drop redundant else block
2022-10-29 20:30:48 +01:00
Michael Drake
7d833537aa
css: Update display property helper for grid
2022-10-29 18:24:38 +01:00
Michael Drake
ce6a2c87da
content: image cache: Avoid int overflow before size_t conversion
2022-10-23 17:22:56 +01:00
Michael Drake
5fed462e88
urldb: Handle snprintf error
2022-10-23 17:22:56 +01:00
Michael Drake
743817c205
js: console: Fix argument type for formatting function
2022-10-23 17:22:56 +01:00
Michael Drake
cb5d63768c
js: image data: Avoid int overflow before size_t conversion
2022-10-23 17:22:56 +01:00
Vincent Sanders
40acd620b5
Ensure image cache logging does not cause division by zero at exit
2022-09-11 13:50:55 +01:00
Michael Drake
d082717ea6
HTML: CSS media spec: Pass in dark mode preference.
2022-07-30 21:32:37 +01:00
John-Mark Bell
69adc31d07
inttypes: custom format for UnixLib ssize_t
...
UnixLib defines ssize_t to be a long int, which forces the
corresponding format string to need to be %ld to avoid compiler
warnings. Making this change uncovered a number of places where
we were using the wrong format specifier entirely (namely
PRIssizet where we meant PRIsizet). Fix these, too.
2022-06-03 02:34:22 +01:00
Michael Drake
c90fb03e58
Duktape: Prevent clang static analysis.
2022-05-29 13:41:14 +01:00
Michael Drake
4e3d9127bf
Duktape: Update to 2.7.0 release.
2022-05-29 13:40:24 +01:00
John-Mark Bell
a9eecb30a7
About/Cert: get EC key details using OpenSSL 3 APIs
...
Replace the fetching and poking around inside the low-level EC
object with appropriate calls to EVP_PKEY_get_(octet|utf8)_string_param()
and add a compatibility layer for old versions of OpenSSL.
2022-05-28 16:00:10 +01:00
John-Mark Bell
09b39f2dc7
About/Cert: get RSA n/e using OpenSSL 3 APIs
...
Replace the fetching and poking around inside the low-level RSA
object with appropriate calls to EVP_PKEY_get_bn_param() and
add a compatibility layer for old versions of OpenSSL.
2022-05-28 15:04:25 +01:00
John-Mark Bell
cd7ed847d4
About/Cert: use EVP_PKEY_bits to get key size
2022-05-28 14:30:28 +01:00
John-Mark Bell
2c42b1898c
About/Cert: contain pkey inspection in type methods
...
Use of the low-level key types is deprecated in OpenSSL 3. Prepare
to stop using them by removing them from function calls.
2022-05-28 14:19:00 +01:00
John-Mark Bell
7d32feecc0
about(chart): include config.h to silence warning
...
This file uses strndup, so needs config.h including to define it.
2022-05-27 15:09:48 +01:00
Michael Drake
8e56cc3b1a
Bitmap: Implement test_opaque in core instead of in every frontend.
2022-03-29 15:25:33 +01:00
Michael Drake
feeda29c27
WebP: Optimisation: If it's opaque avoid any PMA conversions.
2022-03-28 16:06:02 +01:00
Michael Drake
4307230331
PNG: Allow support for premultiplied alpha.
...
LibPNG doesn't support premultiplied alpha, so now that the core
supports it, we can't just say that the decoded PNG is in the
core bitmap format.
So we now say it's in the core pixel layout, and if it's opaque
we say it has the same premultipled alpha setting as core bitmaps
because the conversion is costly and makes no difference.
On the other hand if it is not opaque we now admit that it is
not premultipled alpha so it gets converted if needed.
2022-03-28 16:05:47 +01:00
Michael Drake
8ad21395be
About: Chart: Squash implicit declaration of strndup.
2022-03-28 11:06:16 +01:00
Michael Drake
d0da09a7ca
Image: JPEG: Decode to client bitmap format where possible.
2022-03-27 13:25:37 +01:00
Michael Drake
bbfc0ca353
Image: JPEG: Warn if not using libjpeg-turbo.
...
Replaces RISC OS warning with a more general and relevant one.
2022-03-27 11:03:43 +01:00
Michael Drake
d33af42911
Image: WebP: Decode to client bitmap format where possible.
2022-03-27 10:50:29 +01:00
Michael Drake
41995c3999
Image: WebP: Correct output buffer size for rowstride.
2022-03-27 10:41:27 +01:00
Michael Drake
fba7a349c0
Image: Sprite: Avoid multiple bitmap format conversions.
2022-03-27 10:17:48 +01:00
Michael Drake
694a3b4c98
Image: RSVG: Just use bitmap to client for conversion.
2022-03-27 09:58:21 +01:00
Michael Drake
b0e7de8bff
Image: PNG: Decode to client bitmap format.
2022-03-27 09:58:21 +01:00
Michael Drake
cde6a10ef4
Image: GIF: Decode directly to client bitmap format.
2022-03-27 09:58:21 +01:00
Michael Drake
d00c049d02
Bitmap: Move bitmap pixel to colour macro to bitmap header.
2022-03-27 09:58:21 +01:00
Michael Drake
1bbb499f88
Image: WebP: Call bitmap format conversion after decode.
...
Currently a no-op, because we decode to the default format
and no front end requests anything but the default format.
2022-03-27 09:58:21 +01:00
Michael Drake
df6ff85305
Image: RSVG: Call bitmap format conversion after decode.
...
Currently a no-op, because we decode to the default format
and no front end requests anything but the default format.
2022-03-27 09:58:21 +01:00
Michael Drake
052acc752c
Image: PNG: Call bitmap format conversion after decode.
...
Currently a no-op, because we decode to the default format
and no front end requests anything but the default format.
2022-03-26 15:45:00 +00:00
Michael Drake
7bf6a88c9c
Image: Sprite: Call bitmap format conversion after decode.
...
Currently a no-op, because we decode to the default format
and no front end requests anything but the default format.
2022-03-26 15:45:00 +00:00
Michael Drake
2f0fbbcaa0
Image: JPEG: Call bitmap format conversion after decode.
...
Currently a no-op, because we decode to the default format
and no front end requests anything but the default format.
2022-03-26 15:45:00 +00:00
Michael Drake
c7dce05437
Image: ICO: Abstract image decode into helper.
2022-03-26 15:45:00 +00:00
Michael Drake
60b12cd9fe
Image: ICO: Call bitmap format conversion after decode.
...
Currently a no-op, because we decode to the default format
and no front end requests anything but the default format.
2022-03-26 15:45:00 +00:00
Michael Drake
e7a355bf8d
Image: GIF: Call bitmap format conversion before/after decode.
...
Currently a no-op, because we decode to the default format
and no front end requests anything but the default format.
2022-03-26 15:45:00 +00:00
Michael Drake
27a89439a2
Image: BMP: Call bitmap format conversion after decode.
...
Currently a no-op, because we decode to the default format
and no front end requests anything but the default format.
2022-03-26 15:45:00 +00:00
Michael Drake
002c3c1a7c
Bitmap API: Clean up creation flags.
2022-03-24 18:09:28 +00:00
Michael Drake
a4cb24ed46
Image: ICO: Update for new libnsbmp API.
2022-03-24 12:01:53 +00:00
Michael Drake
b6238c6c5c
Image: BMP: Update for new libnsbmp API.
2022-03-24 12:01:36 +00:00
Michael Drake
1dd3c80d9b
PNG: Bytes per pixel is always 4.
2022-03-24 11:12:57 +00:00
Michael Drake
7c3382834e
GIF: Update to new libnsgif API.
...
Set required colour component order.
2022-03-23 17:52:20 +00:00
Michael Drake
ae9047b1ed
GIF: Tolerate errors during scan if at least one frame.
2022-03-03 19:03:29 +00:00
Michael Drake
2e9ef8feae
GIF: Update to latest libnsgif API.
2022-02-26 14:55:13 +00:00
Michael Drake
251cce29b7
CSS: Selection callbacks: Update to latest LibDOM API.
2021-07-05 14:59:10 +01:00
Michael Drake
fa64d91d12
Switch to new libcss API for unit conversion.
2021-05-30 11:52:33 +01:00
Michael Drake
638a408dde
CSS: Update to latest libcss: Remove weird units.
...
The 'rlh', 'ic' and 'cap' units were never implemented by anyone.
2021-05-30 11:52:33 +01:00
Vincent Sanders
5a2f69388c
hoist the Referer header generation logic up to the low level cache
...
This removes the need for the fetchers to have any interaction with
the Referer header. It has not been completely removed from the
fetch interface as fetch.c:fetch_set_cookie() still uses it for
unverifiable cookie decision logic. (There is an anchient todo here)
2021-03-25 23:36:41 +00:00
Michael Drake
9e3ef18255
html: layout: Cleanup dom node tag name getting with helper.
2021-02-20 17:03:49 +00:00