NetSurf 3.11 Released

Date 29-Dec-2023 16:56:09
Topic: software OS4

NetSurf 3.11 is now available to download from

The biggest change to the core is improved CSS support, including
support for the “display: flex” property value, which improves the
layout of some web pages. There is also a new option in the Choices
to disable CSS.

A huge number of other changes have also been made including
new features, significant performance optimisations, stability
improvements, and other fixes.

Read more for Changelog

Change Log

NetSurf 3.11

### Core / All platforms

* HTML: Fixed failure to reflow SVGs if fetched and ready before layout.
* HTML: Support for `display: flex` layout.
* HTML: Improved minimum/maximum sizes in box layout.
* HTML: Improved handling of percentages.
* HTML: Minor cleaning up of layout code.
* HTML: Use new LibCSS API for unit conversion.
* HTML: Improved ordered list handling.
* CSS: Updated selection callbacks to latest LibDOM API.
* Options: Added core option to disable CSS.
* Options: Added core option to prefer dark mode.
* Options: Improved user choices file processing.
* Bitmap: Opaque testing now implemented in core.
* Bitmap: Added core support for premultiplied-alpha.
* Bitmap: Format logged on startup.
* Bitmap: Added support for pixel colour component order configuration.
* Bitmap: Added colour component order conversion functions.
* Bitmap: Generally more optimal on all platforms for all image formats.
* Image: JPEGXL image handler.
* Image: Compatibility with latest rSVG version.
* Image: Improved handling for broken GIF images.
* Image: Updated to new LibNSGIF API.
* Image: Updated all image format handlers to use new core bitmap capabilities.
* Fetch: Updated to new libcurl API.
* Fetch: Disabled TLS1.0 and TLS1.1.
* Fetch: Improved handling of bad SSL connections.
* Fetch: Change to libcurl to optimise HTTPS connections (upstreamed).
* Local history: More robust rendering.
* Resources: Updated certificate bundle.
* java script: Minor updates to DOM bindings.
* java script: Updated to Duktape 2.7.0 release.
* java script: Console: Don't log through closed window.
* Utility: Cleaned up UTF8 handling.
* Utility: Improved recursive directory removal.
* Utility: Add support for xx_YY format language codes.
* CI: Various improvements to build automation and testing.
* General: Various warning fixes.
* General: Aligned UserAgent with compatibility spec.
* Documentation: Updated URLs to https.
* Documentation: Added front-end development guide.
* Text areas: Clear selection on word left/right.
* Buildsystem: Fixed handling of removed header files.
* Disc cache: Minor fixes.
* Debug: Added generated charts to image cache stats page.
* Debug: Added descendant bounding boxes to HTML box tree dumps.
* Built in: Cleaned up generated `about :` pages.

* LibParserUtils library 0.2.5 (parser building utility functions):
  - Optimised consuming from buffer.
  - Optimised endian detection.
  - Added new API to append vector to buffer.

* Hubbub library 0.3.8 (HTML parser):
  - Massively optimised element type detection using perfect hash.
  - Optimised and updated performance tester.
  - Fixed bitrot in tests.
  - Improved example client code.
  - Buildsystem improvements.

* LibCSS library 0.9.2 (CSS parser and selection engine):
  - Added support for SVG `fill-opacity` property.
  - Added support for SVG `stroke-opacity` property.
  - Added support for CSS property wide `revert` value.
  - Added support for CSS property wide `unset` value.
  - Added support for CSS property wide `initial` value.
  - Added support for CSS `position` property `sticky` value.
  - Added support for CSS `display` property "grid" values.
  - Added support for `prefers-color-scheme` media query.
  - Added new public API for CSS unit conversion.
  - Added support for predefined counter styles.
  - Optimised media query handling.
  - Made selection code generator deterministic.
  - Various selection code generator improvements.
  - Squashed leak of system font names.
  - Improved internal handling of property units.
  - Improved internal string map.
  - Minor buildsystem improvements.
  - Improved example code.
  - Added new tests.

* LibDOM library 0.4.2 (Document Object Model):
  - Fixed XML parser error handling.
  - Fixed XML parser empty document handling.
  - Added DOMTokenList implementation.
  - Added DOM tree walking function.
  - Improved example code.
  - Fixed HTML Element int32 attribute getter to handle signed values.
  - Various stability improvements.
  - Buildsystem improvements.

* LibNSGIF library 1.0.0 (GIF support):
  - Complete rewrite.
  - New API that doesn't expose internal state.
  - Much better handling of bad or broken GIFs.
  - Support for decoding to client's choice of pixel colour component order.
  - Many fixes.
  - Faster decoding.
  - Updated documentation.

* LibSVGTiny library 0.1.8 (SVG support):
  - Fixed X11 example utility build.
  - Implemented path arc correctly.
  - Updated documentation.

### RISC OS-Specific

* Removed last vestiges of plugin support.
* Added Choices option to disable CSS.
* Updated licence information.
* Updated links to use https in documentation.
* Fixed broken links in documentation.
* Support for building with `arm-riscos-gnueabi` toolchain.
* Updated bundled resources.
* Improved bitmap rendering.
* Fixed EX0 EY0 "high DPI" rendering.
* Text selection support in URL bar (RO5.28 onwards).
* Dragging favicon saves whole URL.
* Updated to new RUfl API.
* Fixed font scanning on startup behaviour.
* Unified redraw code for browser windows and other core-rendered windows.
* Fixed auto-scroll crash when pointer leaves core window.
* Allow drag and drop loading of WEBP image format.

* RUfl library 0.1.0 (RISC OS Unicode support):
  - Added astral character support.
  - RUfl_cache version now in filename.
  - Support for multiple versions of RUfl_cache coexisting.
  - Substitution table reworked for astral characters and heavily optimised.
  - Render 6-digit replacements for codepoints outside Basic Multilingual Plane.
  - Refactoring and many code improvements.
  - Support for UCS-aware Encoding files.
  - Various API changes.
  - Detect overlong and invalid UTF-8 sequences.
  - Improved compatibility with different Font Manager versions.
  - Fixed menu building to cope with system with no fonts.
  - Ignore UCS fonts if using a non-UCS Font Manager.
  - Remove assumption that pointers are 32-bit.
  - Added test infrastructure and many tests.
  - Buildsystem improvements.

### GTK-Specific

* Cleaned up initialisation.
* Various build warning fixes.
* Fixed crash when destroying scaffolding.
* Don't create zero-sized bitmaps.
* Configure core to use Cairo's bitmap format.
* Added support for cursor word left/right key bindings.
* Added support for delete word left/right key bindings.
* Added back/forward mouse button processing.
* Fixed path plotter.
* Made UI resources more consistent.

### Amiga-Specific

* Added page theme option.
* Improved bitmap handling.
* Improved and optimised Unicode handling.
* Stability improvements.

### Windows-Specific

* Buildsystem: Use pkg-config.
* Support Ctrl+A in address bar.

### Framebuffer-Specific

* Minor internal font fixes.
* Improved documentation.

Also included are many smaller bug fixes, improvements and
documentation enhancements.

This article comes from AmigaWorld - Amiga Community Portal

The URL for this story is: