NetSurf Changelog

What's new in NetSurf 2.9

Oct 21, 2015
  • Improved internal management of simultaneously occurring operations.
  • Rewritten and streamlined URL handling.
  • Improved handling of frames and iframes.
  • Improved handling of min/max-width on replaced elements.
  • Simplified layout object dimension calculations.
  • Reduced memory usage in the fetch layer.
  • Disabled extraneous fetch debug code when built without debugging.
  • Optimised fetchers.
  • Updated MIME sniff handling in accordance with evolution of spec.
  • Optimised cache layer.
  • Enabled yield and resumption of box tree construction.
  • Improved resource handling.
  • Added new support for favicons.
  • Increased default memory cache size.
  • Added about:imagecache status page.
  • Optimised URL fragment handling.
  • Made meta refresh handling more robust.
  • Various minor table layout fixes.
  • Cleaned up fetch callback API.
  • New hotlist entries can be inserted into defined or selected folder.
  • Enabled resizing of textarea widget.
  • Fixed cookie expiration.
  • Improved handling of CSS overflow scrollbars.
  • Fixed caret position after deleting selection in textarea widget.
  • Enabled mouse wheel scrolling of frames and other scrollable content.
  • Improved handling of file drops, e.g. for HTML form file submission.
  • Added the beginnings of a gstreamer binding.
  • Fixed some content cache layer issues.
  • Improved handling of deletion of nodes from treeviews.
  • Added options to disable fetching of images.
  • Simplified redraw API rendering options.
  • Improved support for drag operations.
  • Fixed build.
  • Hubbub library (HTML parser):
  • Fixed xmlns attribute handling.
  • LibCSS library (CSS parser and selection engine):
  • Avoid interning standard strings for every stylesheet, style tag and style attribute.
  • Made significant optimisations to style selection.
  • Fixed case where font-family is unspecified in input CSS.
  • Added some support for @font-face.
  • Fixed !important on opacity property.
  • Added support for parsing CSS3 Multi-column layout properties.

New in NetSurf 2.8 (Oct 21, 2015)

  • Added rudimentary support for CSS :before pseudo element.
  • Improved vertical layout of boxes and margin handling.
  • Optimised layout engine not to calculate word widths it doesn't need.
  • Optimised layout and redraw of pages as their images fetch.
  • Simplified internal character in string location.
  • Improved internal content management.
  • Fixes to build system.
  • Cleaned up image content handlers.
  • Simplified internal content redraw interface.
  • Simplified status bar text.
  • Improved content handler initialisation.
  • Improved scrollbar widget.
  • Fixed direct dragging of scrollable boxes in HTML.
  • Improved fetch option handling.
  • Optimised treeview layout.
  • Improved default cookie manager view.
  • Added support for iframes.
  • Added support for frames.
  • Improved drag handling.
  • Fixed text selection, search, and widget rendering in HTML redraw.
  • Made page text search support more robust.
  • Improved HTTP authentication header parsing.
  • Removed plotter table global.
  • Removed current browser global for redraw.
  • Updated PNG handler for recent libPNGs.
  • Refactored HTTP handling utilities.
  • Improved handling of mouse input for text selection.
  • Fixed stopping of active HTML content fetches.
  • Fixed GCC 4.6 build warnings.
  • Disallowed self-importing of CSS contents.
  • Made download handling more robust.
  • Simplified bitmap management.
  • Improved handling of HTML font tag's size attribute.
  • Added support for content type sniffing.
  • Added an image cache, for managing decoded image reuse.
  • Fixed handling of zero-length documents.
  • Improved handling of memory cache sizes.
  • Removed dependency on Xcode installation for MIME mappings.
  • Accept URLs as arguments to binary.
  • Fixed build.
  • Fixed local directory listing display.
  • Improved Apple image handler.
  • Added view source functionality.
  • Fixed crash due to broken certificate bundle path.
  • Added quarantine attributes to downloaded files.
  • Added NetSurf to 'Open with' menu for HTML files.
  • Updated to handle new interface to core redraw functionality.
  • Updated for new frame and iframe support in core.
  • Hubbub library (HTML parser):
  • Fixed build with GCC 4.6.
  • LibCSS library (CSS parser and selection engine):
  • Improved build tree cleaning.
  • Fixed build with GCC 4.6.
  • Added support for selection of page-break properties.
  • Optimised style selection.
  • LibParserUtils library (parser building utility functions):
  • Changed build to require iconv by default.
  • Support Byte Order Marks in UTF16 and UTF32 streams.

New in NetSurf 2.7 (Oct 21, 2015)

  • Added WebP image support as build-time option.
  • Made logging include timing information.
  • Added treeview support.
  • Added global history manager.
  • Added hotlist manager.
  • Added cookie manager.
  • Added SSL certificate chain inspection display.
  • Improved stability.
  • Optimised plain text handling.
  • Cleaned up build infrastructure.
  • Fixed HTTP authentication issues.
  • Improved cache cleanup.
  • Improved detection of IP addresses in URLs.
  • Fixed handling of IPv6 addresses.
  • Updated rendering of local history.
  • Made the cache more robust.
  • Fixed building on OpenBSD.
  • Optimised count of current fetches for given host.
  • Added options for treeview rendering colours.
  • Added partial support for CSS :after pseudo element.
  • Fixed 'auto' top/bottom margins for tables.
  • Improved font API documentation.
  • Fixed float clearing bug.
  • Fixed browser_window destruction issue.
  • Added support for CSS system colours.
  • Fixed colour treatment in rsvg binding.
  • Improved portability.
  • Fixed copying from plain text to clipboard.
  • Improved core/front end interface for rendering into browser windows.
  • Improved core/front end interface for rendering thumbnails.
  • Optimised thumbnail rendering.
  • Made rendering calls pass clipping rectangle around as pointer.
  • Reduced floating point maths in the layout engine.
  • Added support for about: URL scheme.
  • Made cache more robust to strange server responses.
  • Added about:config and about:Choices displays.
  • Added about:licence and about:credits pages.
  • Made knockout rendering optimisation independent of content types.
  • Fixed clipping issue for HTML contents.
  • Fixed overflow:auto and overflow:scroll behaviour.
  • Set download filename according to Content-Disposition header.
  • Added resource: URL scheme.
  • Fixed poll loops for file: and data: URL scheme fetchers.
  • Fixed cache control invalidation.
  • Fixed text-indent layout issue.
  • Fixed layout issue where clear wrongly interacted with margins.
  • Improved cache performance.
  • Fixed handling of objects which fail to load.
  • Fixed various form submission issues.
  • Parallelised fetch and conversion of imported stylesheets.
  • Made content states more robust.
  • Optimised layout code to reduce calls to measure strings.
  • Improved layout code not to duplicate strings for text wrapping.
  • Improved box structure for HTML contents.
  • Optimised content message redraw requests.
  • Made various cache enhancements.
  • Text plot scaling handled in core.
  • Handle API diversity of iconv() implementations.
  • Optimise handling of child objects of an HTML content.
  • Avoided stalling during early stages of fetch caused by cURL.
  • Improved example of build configuration.
  • Added generation of build testament for about:testament.
  • Sanitised task scheduling.
  • Improved debugging infrastructure.
  • Fixed text/plain renderer to cope with scroll offsets.
  • Added generated list of about: content at about:about.
  • Allowed config. options to be set from the command line.
  • New front end.
  • Hubbub library (HTML parser):
  • Added scoping for use from C++ programs.
  • Fixed example program.
  • Removed need for library initialisation and finalisation.
  • Generate entities tree at build time, rather than run time.
  • Added clang build support.
  • LibCSS library (CSS parser and selection engine):
  • Fixed destruction of bytecode for clip property.
  • Added scoping for use from C++ programs.
  • Removed need for library initialisation and finalisation.
  • Added support for CSS2 system colours.
  • Added support for CSS2 system fonts.
  • Altered external representation of colours to aarrggbb.
  • Added support for CSS3 rgba() colour specifier.
  • Added support for CSS3 'transparent' colour keyword.
  • Added support for CSS3 hsl() and hsla() colour specifiers.
  • Added support for CSS3 'currentColor' colour keyword.
  • Added support for CSS3 'opacity' property.
  • Added support for CSS3 selectors.
  • Added support for CSS3 namespaces.
  • Enabled clients to fetch imported stylesheets in parallel.
  • Made internal bytecode 64-bit safe.
  • Fixed leaking of strings.
  • Rewritten property parsers.
  • Certain property parsers auto-generated at build time.
  • Added clang build support.
  • Various portability enhancements.
  • Fixed selection for pseudo elements.
  • Added simultaneous selection for base and pseudo elements.
  • Namespaced all global symbols.
  • Updated test suite.
  • Future-proofed ABI.
  • Ensured fixed point maths saturates instead of overflowing.
  • Fixed clip property handling.
  • Fixed selection and cascade of "uncommon" CSS properties.
  • Added structure versioning for client input.
  • LibNSBMP library (NetSurf BMP decoder):
  • Added missing include.
  • Made more robust when handling broken ICO files.
  • Added clang build support.
  • LibNSGIF library (NetSurf GIF decoder):
  • Added missing include.
  • Added clang build support.
  • LibParserUtils library (parser building utility functions):
  • Fixed input stream encoding issue.
  • Added scoping for use from C++ programs.
  • Removed need for library initialisation and finalisation.
  • Removed need for run time provision of external Aliases file.
  • Added clang build support.
  • Namespaced all global symbols.
  • Handle API diversity of iconv() implementations.
  • LibROSprite library (RISC OS Sprite support for non-RO platforms):
  • C89 compatibility.
  • LibSVGTiny library (SVG support):
  • Improved parsing of stroke-width.
  • Added clang build support.
  • Various portability enhancements.
  • LibWapcaplet library (String internment):
  • Added scoping for use from C++ programs.
  • Removed need for library initialisation and finalisation.
  • Added clang build support.

New in NetSurf 2.6 (Oct 21, 2015)

  • Improvements to float positioning.
  • Fix absolute positioned inlines.
  • Improve handling of percentage margins and paddings on floats.
  • Fix several memory leaks.
  • Rationalised memory allocation functions.
  • Updated SSL root certificates.
  • Fix handling of PNGs with zero data.
  • Moved input handling into content handlers.
  • Simplified browser window module.
  • Fix table borders specified in em/ex units.
  • Improved CSS content handling.
  • Don't try to draw zero size images.
  • Simplified and fixed save complete feature.
  • Reduce frequency of cache clean attempts.
  • Improve and optimise rendering of borders in HTML.
  • Fix URL comparison issue.
  • Improve object handling in HTML.
  • Fix absolute positioned root element.
  • Rewritten file: fetch handler for local URLs.
  • Much improved directory listings for local file: paths.
  • Improve handling of binary data in plain text renderer.
  • Fixed cache expiry problems.
  • LibCSS library (CSS parser and selection engine):
  • Allow stylesheets to be used in multiple contexts simultaneously.
  • Fix possible stylesheet reuse crash.

New in NetSurf 2.5 (Oct 21, 2015)

  • Fetch improvements.
  • Fix fetching from https sites with http authentication.
  • Handle http authentication with no realm.
  • Cookie handling improvements.
  • Improved support for {min|max}-{width|height} CSS properties.
  • HTML redraw optimisations.
  • Improved mouse tracking over browser windows.
  • Browser window status bar update rationalisation.
  • Better handling of memory exhaustion.
  • Made text export more robust.
  • Fix relative positioning of floats.
  • Align baselines of text on a line.
  • HTML layout optimisations.
  • Fixed HTML based box alignment behaviour.
  • Sorted out default table borders.
  • Updated Italian translation.
  • Updated German translation.
  • Allow any name for frame targets.
  • Allow sending of referer when moving from http hosts to https.
  • Improved stability.
  • Simplified plotter API.
  • Fixed memory leak in imagemap handler.
  • Optimised debug rendering of box model outlines.
  • Activity is indicated by 'progress' pointer.
  • Ensure debug rendering outlines are plotted on top of other content.
  • Now using LibCSS for CSS parsing and selection.
  • Many CSS related bugs fixed.
  • Rewritten cache and internal content handling.
  • Fixes for file: URL handling.
  • Don't try to access file: URLs through the configured proxy.
  • Core widget for handling SELECT element menus.
  • Core scrollbar widget used for CSS overflow and SELECT menu widget.
  • Very basic quirks mode support.
  • Cleaned up how the initial rendering of a content occurs.
  • Command line argument handling and initialisation cleanup.
  • Clearer build configuration messages.
  • Favicon retrieval.
  • Full page saves, including CSS and image files.
  • PDF export disabled.
  • Search-as-you-type page search support.
  • Hubbub library (HTML parser):
  • Fixed locale problem.
  • Various improvements.
  • LibCSS library (CSS parser and selection engine):
  • First release.
  • LibNSBMP library (NetSurf BMP decoder):
  • Fix ICO decoding on big-endian platforms.
  • Improve inverse height calculation.
  • LibNSGIF library (NetSurf GIF decoder):
  • Improve Palette entry handling.
  • LibParserUtils library (parser building utility functions):
  • Fixed charset problem.
  • Various improvements.
  • LibSVGTiny library (SVG support):
  • Colour component ordering fix.
  • Support arcs in paths.
  • Improve circle element handling.
  • Add ellipse element support.
  • Improve stroke width rounding.
  • LibWapcaplet library (String internment):
  • First release.