Change Log ========== NetSurf 3.10 ------------ ### Core / All platforms * HTML layout fix for {min|max}-width on replaced elements. * Improved keyboard navigation. * Improved local history with keyboard navigation and improved display. * Fixed mouse interaction issue when entire document had visibility:hidden. * Refactoring of the browser window handling. * Refactoring of the HTML content handler. * Refactoring of SSL certificate handling. * Refactoring of HTML, text search and selection code. * Many improvements to JavaScript robustness. * Many new and improved Duktape JavaScript bindings. * Improved core/front end interface for content scaling. * Much improved content caching, both in memory and disc caching. * Added a generic hashmap, used by the disc cache code. * Fetcher improvements for robustness and performance. * Updated JavaScript engine to Duktape 2.4.0. * Improved handling of aborted fetches. * Improved integration testing with framework built around monkey front end. * Improvements to monkey front end to make testing more extensive and reliable. * Improved handling of NetSurf generated queries and errors, including: - Timeouts. - Authentication requests. - Certificate problems. * Minor HTML form improvements. * Minor HTML handler optimisations. * Fixes to HTML handler for robustness. * Refactoring generation of about: pages. * Created consistent visual style for NetSurf Core generated content. * Fixed save complete not to save multiple copies of the same files. * Change how animated GIFs are rate-limited to be in line with other browsers. * Added a page info core window. * Clamping screen DPI to a sensible range. * Initial work towards supporting HTML5 canvas element. * Various treeview fixes. * Hubbub library 0.3.7 (HTML parser): - Minor code quality improvements. - Fixes for some HTML5 element handling. * LibCSS library 0.9.1 (CSS parser and selection engine): - Fixed a problem in the parsing of invalid media blocks. - Minor code quality improvements. * LibDOM library 0.5.0 (Document Object Model): - Improved HTML TextArea element handling. - Fix SubtreeModified event to be fired after updating attribute values. - Support finalising the namespace strings. - Basic support for keypress events. - Improvements to event dispatch event lifetime handling. - Support for InnerHTML. - Added support for HTMLCanvasElement. - Minor code quality improvements. - Fixed HTMLElement property setters. - Fixed HTMLTitleElement text getter/setter. * LibNSBMP library 0.1.6 (BMP support): - Minor code quality improvements. * LibNSLog library 0.1.2 (Filterable logging): - Added support for short log level names. * LibWapcaplet library 0.5.0 (String internment): - Free global context if no strings leak. - Enabled build with toolchains that don't support statement expressions. ### RISC OS-specific * Updated to improved core content scaling interface. * Add support for scrolling core windows in response to core requests. * Removed login window because it's now handled by the core. * Added Page Info url bar icon and window. * Fixed use after free in dialog handling. * Fixed cookie window re-opening bug. ### GTK-specific * Use Curl's default path for the ca-bundle. * Updated to improved core content scaling interface. * Run scheduler before fetching file descriptor set. * Add support for scrolling core windows in response to core requests. * Removed login window because it's now handled by the core. * Moved favicon from URL entry widget to tab. * Huge reworking of the browser interface to be more modern. - Particularly toolbar and menu code. * Improved cursor focus handling. * Default buildsystem target changed from gtk2 to gtk3. * Added Page Info icon. ### AmigaOS-specific * Updated to improved core content scaling interface. * Add support for scrolling core windows in response to core requests. * Allow running JavaScript from ARexx. * Removed login window because it's now handled by the core. * Added Page Info icon and window. ### Windows-specific * Add support for scrolling core windows in response to core requests. * Removed login window because it's now handled by the core. * Improved Unicode handling. * Improved command line handling. * Added Page Info icon. * Improved error reporting. ### Haiku-specific * Run scheduler before fetching file descriptor set. ### Atari-specific * Removed login window because it's now handled by the core. ### Framebuffer-specific * Add support for scrolling core windows in response to core requests. * Added keyboard controls for scaling. * Added some glyphs to the internal font. * Can now enumerate available backend surfaces. * LibNSFB library 0.1.5 (NetSurf Framebuffer): - Optimisation to pixel/colour conversion. - Added backend surface enumerator. - Minor code quality improvements. Also included are many smaller bug fixes, improvements and documentation enhancements. NetSurf 3.9 ----------- ### Core / All platforms * Buildsystem improvements. * Improved URL query string handling. * Improved form submission code. * Improved error handling in HTML box construction. * Much improved testing, with automated test frontend. * Improved treeview rendering. * Improved HTML content handling of viewport dimensions. * Improved debug logging of JavaScript handling. * Added support for Webp image format. * Fixed SVG stroke width plotting. * Lots of new JavaScript bindings. * Support for script insertion after beginning conversion. * Added support for CSS media queries. * Various JavaScript related fixes. * Window is now supported as a JavaScript event target. * Support for nodeList indexing in JavaScript handler. * Allowed front ends to execute JavaScript scripts. * Optimised data URL handling. * Improved support for logging to JavaScript console. * Squashed several leaks. * CSS pixel support: Better rendering on high DPI screens. * Made curl fetcher use the standard NetSurf logging API. * Fixed incremental redraw, while fetching HTML images. * Improved HTTP header Cache-Control parsing. * Cleaned up handling of aborted fetches and loading content. * Improvements to generated JavaScript bindings. * Hubbub library 0.3.6 (HTML parser): - Fix for script insertion during parse. * LibCSS library 0.9.0 (CSS parser and selection engine): - Added support for parsing CSS Media Queries Level 4. - API for adding sheets to a selection context now takes a Media string. - The selection API now allows the client to describe the media that is being selected for. - Selection now honours width/height feature queries. - Removed the uncommon property extension blocks in computed style data. This simplfies the code and fixes a subtle bug in the cascade/composition handling. - Fixed leak where rules had over 256 selectors. * LibDOM library 0.4.0 (Document Object Model): - Removed dom_string implementation details from public header. * LibDOM library 0.3.4 (Document Object Model): - Fixed a few places where public API didn't ref the objects it returned. - Fixes to the test generator. - Initial support for SCRIPT element flags. - Added dom_node_contains() call. - Fixed leaks in DOM node set text context. * LibNSPSL library 0.1.3 (Public suffix list): - Updated public suffix list. ### GTK-specific * Fixed HTTP authentication dialogue NULL dereference. ### AmigaOS-specific * Improved logging. * Better handling of local charset. * Improved the sheduler. * Removed RISC OS ,type extensions from resource files. * Support building against AmiSSL instead of OpenSSL. * Squashed many build warnings. * Tidied up gui_window handling. * Fixed SimpleRefresh mode and made it default. ### Windows-specific * Added clipboard support. * Fixed keyboard input. ### Haiku-specific * Fixed package version. ### Atari-specific * Buildsystem: Fixed binary stripping. ### Framebuffer-specific * Improved buildsystem. * Support for internationalized UI resources. Also included are many smaller bug fixes, improvements and documentation enhancements. NetSurf 3.8 ----------- ### Core / All platforms * Updated to be compatible with latest LibCSS. * Updated Duktape to version 2.3.0. * Added support for new CSS units. * Fixed resource cleanup in the backing store. * Added support for CMYK/YCCK JPEGs. * Replaced tables are now treated as blocks. * Improved percentage max-width handling. * Improved browser history handling to be more robust. * Buildsystem dependency improvements. * Improved handling of messages and bundled resources. * Added support for HTTP Strict Transport Security. * Enabled TLS session tickets. * Restricted the HTTPS ciphersuites allowed. * Reorganised source code for HTML and text handling. * Improved plotter API consistency and completeness. * Enabled front ends to get current URL with fragment IDs. * Fixed rendering glitch in treeviews. * Fixed dragging to current selection in treeviews. * Allowed building with address sanitiser. * Suppressed fetch poll logging. * Suppressed logging of data: URLs. * Refactored HTTP header processing in llcache. * Revised front end API for HTTP authentication. * Display application/json as text, instead of download. * Fixed JavaScript related CSS crash. * Hubbub library 0.3.5 (HTML parser): - Squashed leaks in tests. * LibCSS library 0.8.0 (CSS parser and selection engine): - Added support for CSS flexbox properties. - Added support for new CSS units. - Auto-generated source code for computed style handling. - Squashed some undefined behaviour issues. - Unified some duplicated media handling code. * LibDOM library 0.3.3 (Document Object Model): - Fixed some resource leaks. - Fixed some flawed error handling. - Fixed some tests. * LibNSGIF library 0.2.1 (GIF support): - Tiny optimisation to LZW decoding. - Cleaned up test suite. * LibNSBMP library 0.1.5 (BMP support): - Fixed a few issues caught by address sanitiser and undefined behaviour sanitiser. * LibSVGTiny library 0.1.7 (SVG support): - Fixed a few issues caught by address sanitiser and undefined behaviour sanitiser. * LibNSPSL library 0.1.3 (Public suffix list): - Updated public suffix list to current edition. * LibNSLog library 0.1.2 (Filterable logging): - Tweaks to suppress warnings on openbsd. ### RISC OS-specific * Improved iconsprite selection based on alpha support. * Translate resource paths. * Drag saving the URL bar now includes fragment IDs. ### GTK-specific * Fixed bugs in toolbar configuration. * Improved accelerator (keyboard shortcut) handling. ### AmigaOS-specific * Removed Iconify gadget for OS3. * Fixed radio button labels on OS3. * Fixed switch from public screen to own screen. * Minor optimisations. * Fixed HTTP authentication login window resource ownership. * Improved Unicode handling in HTTP authentication login window. * Close HTTP authentication login window on quit. ### Windows-specific * Fixed image scaling crash. * Added support for HTTP authentication. ### Framebuffer-specific * Added support for HOME and END keys. Also included are many smaller bug fixes, improvements and documentation enhancements. NetSurf 3.7 ----------- ### Core / All platforms * CSS computed styles shared globaly between elements. * Fixed OpenSSL 1.1.0 X509 certificate handling. * Updated for compatibility with upstream libutf8proc. * Updated JS engine to Duktape 2.1.0. * Improved treeview robustness. * Local history uses system colours. * Made local history use corewindow interface. * Simplified local history code. * Added EventListener support to Duktape binding. * Added EventTarget JavaScript binding. * Improved plotter API. * Simplified HTML border plotting. * Make disabled form elements read-only. * Improved URLdb. * Improved tests. * Fixed bug in content state machine for HTML contents. * Fixed issue in parsing of file urls. * Split out ASCII locale-safe handling used in parsers. * Made libcurl build-time optional. * Hotlist saved on change, rather than at exit. * Improved handling of display:table applied to :after. * Added support for CSS3 box-sizing to HTML layout. * Improved handling of margins where constrained by {min|max}-width. * Cleaned up content message broadcasts. * Logging now run-time filterable using LibNSLog. * Added search feature to treeviews. * Browser history now remembers page scroll offsets. * Hubbub library 0.3.4 (HTML parser): - Support falling back to space-separated charset. * LibCSS library 0.7.0 (CSS parser and selection engine): - Computed styles can now be shared between elements. - Computed styles interned, so only unique computed styles reside in memory. This means multiple pages/tabs/windows can share computed style data. - Where possible, we now bypass CSS selection, and simply take a reference to another element in the DOM's style, if we're sure it will be the same. - Added support for the CSS3 box-sizing property. - Fixed invalid read when removing sheet from selection context. - Fixed example / demo app build. * LibDOM library 0.3.2 (Document Object Model): - Add support for checking if an event is in dispatch. - Add is_initialised flag to events. - Add getter/setter for event_target is_trusted. - Simplified API for removing all instances of a listener. * LibNSGIF library 0.2.0 (GIF support): - Complete rewrite of LZW decompression is more optimal and robust. - Stability fixes. * LibSVGTiny library 0.1.6 (SVG support): - Buildsystem improvements. - Fixed bug in parsing of multiple lineto commands. * LibNSPSL library 0.1.2 (Public suffix list): - Updated public suffix list. * LibNSLog library 0.1.0 (Filterable logging): - First release. ### RISC OS-specific * Improved quit/exit behaviour. * Moved treeviews to use the corewindow interface. * Moved local history to use the core window interface. * Updated to new plotter API. ### GTK-specific * Moved treeviews to use the corewindow interface. * Moved local history to use the core window interface. * Fixed Hotlist finalisation on exit. * Updated to new plotter API. * Improved text display and DPI handling. * Optimised tiled bitmap rendering. ### AmigaOS-specific * Improved memory handling. * Reduced frequency of diskfont open/close. * Improved splash screen robustness. * Improved quit/exit behaviour. * Moved treeviews to use the corewindow interface. * Moved local history to use the core window interface. * Improved redrawing. * Improved menus. * Updated to new plotter API. * Reduced use of globals. * Improved use of notifications. * Improved AmigaOS3 compatibility. ### Haiku-specific * View source in user's preferred editor. * Reworked menu accelerator handling. * Fixed popup menu. * Updated to new plotter API. ### Atari-specific * Updated to new plotter API. * Don't package the ca-bundle twice. ### Framebuffer-specific * Fixed font handling return types. * Moved local history to use the core window interface. * Updated to new plotter API. ### Windows-specific * Fixed font handling return types. * Fixed Windows installer generation. * Updated to new plotter API. * Moved local history to use the core window interface. * Fixed text handling. * Fixed redraw bug on resize. Also included are many smaller bug fixes, improvements and documentation enhancements. NetSurf 3.6 ----------- ### Core / All platforms * Build system improvements. * Internal code reorganisation. * Improved time handling. * Removed use of warn_user. * Updated Duktape JavaScript engine to version 1.5.1. * Removed old spidermonkey build options. * Fixed certificate chain handling. * Improved URL (un)escape code. * Added unit tests. * Allowed build without libcurl and openssl (lacks http(s) support). * Added parser for HTTP date time strings. * Simplified treeview initialisation and finalisation. * Added treeview font size user option. * Improved locale handling, by using with ascii-only parsing routines. * Fixed blocking of supercookies, and updated public suffix list. * Improved User Agent default CSS. * LibWapcaplet library 0.4.0 (String internment): - Added function to get caseless hash value. * LibSVGTiny library 0.1.5 (SVG support): - Added tests. - Improved handling of bad SVGs. - Improved linear gradient handling. * LibNSGIF library 0.1.4 (GIF support): - Improved tests. * LibNSBMP library 0.1.4 (BMP support): - Improved tests. - Improved documentation. - Fixed RLE decoding. - Improved handling of bad BMPs. - Improved BMP alpha channel handling. - Fixed row padding handling. * LibDOM library 0.3.1 (Document Object Model): - Fixed DOM tree walking routine. - Fixed Expat parser binding. * LibCSS library 0.6.1 (CSS parser and selection engine): - Minor fixes. - Updated to use libwapcaplet caseless hash value API. * LibNSPSL library 0.1.0 (Public suffix list): - First release. ### GTK-specific * Fixed TLS certificate viewer, with multiple queries. * Switched to corewindow API for treeviews for improved robustness. * Fixed About dialogue licence and credits buttons. * Fixed MIME types of local BMP files. ### AmigaOS-specific * Make use of guigfx library for improved image display. * Fixed websearch crash. * Code cleanup. * Improve character encoding conversion. * Improved search engine list. * Improvements to aid compiler optimisation. * Improved scheduler. * Improved tab handling, when launching URLs with existing NeSurf instance. * Improved AmigaOS3 support. ### Framebuffer-specific * LibNSFB library 0.1.5 (NetSurf Framebuffer): - Minor buildsystem changes. ### Haiku-specific * Support http(s) schemes URI schemes in the .desktop. Also included are many smaller bug fixes, improvements and documentation enhancements. NetSurf 3.5 ----------- ### Core / All platforms * Fixed URL parsing to avoid locale-specific character handling. * Improved documentation of font APIs. ### RISC OS-specific * Improved !Boot and !System distributions. * Updated distributed SharedUnixLibrary. * Improved relocatable module checks. ### GTK-specific * Fixed resource handling. * Removed theme handling code. * Cleaned up 401 login window. ### AmigaOS-specific * Fixed bug that caused NetSurf to fail to exit. Also included are many smaller bug fixes, improvements and documentation enhancements. NetSurf 3.4 ----------- ### Core / All platforms * Simplified web page thumbnailing interface between core and front ends. * Buildsystem improvements. * Added prefix to key codes to avoid namespace conflict with ncurses. * Fixed URL hash not to contain the URL fragment. * Removed outdated RISC OS cross-compilation instructions. * Improved disc cache indexing and element layout. * Improved disc cache performance for small files. * Moved bitmap operations to use new operation table pattern. * Improved bitmap rendering. * Removed support for webp image format. * Fixed freeing of form controls. * Minor code cleanup in handling of relative positioning. * Added scaled content redraw interface. * Updated default user agent CSS to support HTML5 block level elements. * Fixed PNG handling in low memory situations. * Automatically disable the disc cache if the disc is too slow. * Improved LOG macro. * Improved build-time generation of internationalised messages. * Allowed verbose logging to be redirected to a file. * Reduced overhead of logging. * Moved message loading from core out to front ends. * Improved error reporting. * Fixed a URL parsing bug. * Improved URL parsing tests. * Added code coverage reporting for tests. * Improved test coverage. * Updated IDL specs. * Optional UTF-8 rendering of URLs. * Migrated to Duktape JavaScript engine. Using Duktape 1.4.0. * Fixed ALIGN attribute on TABLE elements. * Fixed percentage calculation to avoid arithmetic overflow. * Fixed JavaScript instanceof. * Fixed asynchronous JavaScript scripts. * Much improved JavaScript engine bindings. * Fixed leak of frame scrollbar data. * Fixed leak of frameset DOM documents. * Added initial support for JavaScript events. * Fixed overflow-{x|y} property handling. * Improved option handling. * Fixed mouse handling to consider the root element's box. * Added support for auto-retrying timed-out cURL fetches. * Fixed mime sniffing when fetcher completes with no data. * Don't try to look up mailto URLs in database, as they aren't stored. * Optimised HTML layout of floats. * Fixed HTML layout bug relating to position of floats. * Fixed bug when user toggled javascript_enabled setting during page load. * Slight optimisation of DOM node inserted handling. * Introduced 10s script execution timeout. * Used new LibCSS API to optimise handling of HTML presentational hints. * Removed logging during browser window resize. * Improved cache logging. * Fixed to avoid generating pseudo elements for HTML replaced elements. * Simplified status bar updating while fetching HTML contents. * Fixed bug in accounting of objects being used by HTML contents. * Stopped GIF animations for when GIF has no users. * Hubbub library 0.3.3 (HTML parser): - Fixed paths for Haiku. - Minor buildsystem changes. - Updated name of JSON library used for tests. - Added doxygen code documentation generation support. - Fixed doxygen warnings. * LibCSS library 0.6.0 (CSS parser and selection engine): - Fixed paths for Haiku. - Minor buildsystem changes. - Added doxygen code documentation generation support. - Minor improvements to tests. - Added "96" to useful fixed point values in fpmath header. - Slight simplification of initial computed style setup. - Changed how presentational hints are handled to be more optimal. * LibDOM library 0.3.0 (Document Object Model): - Fixed paths for Haiku. - Minor buildsystem changes. - Added doxygen code documentation generation support. - Improved tests. - Fixed event listener removal. - Removed unused document argument from event layer API. - Improved HTML Element specialisation APIs to better match IDL. - Added a _FINISHED event action callback. - Handle cleanup during event target gathering. - Ensured HTML element attributes are lower cased. - Added asynchronous property to script element. - Fix event handling not to capture and bubble on event target. - Added support for Event.eventPhase. - Fixed event target listener destruction. - Fixed HTMLDocument's vtable, so .textContent will work. - Fixed handling of document base URI. - Improved and optimised handling of HTMLElement specialisations. - Fixed copy constructors for HTMLElement and its specialisations. - Optimised DOM string upper/lower-case conversion. - Optimised event dispatch. - Provided public API for efficient identification of HTML elements. * LibNSBMP library 0.1.3 (NetSurf BMP decoder): - Fixed paths for Haiku. - Minor buildsystem changes. - Added BMP decode test suite. - Added ICO decode test suite. - Fixed calculation in RLE decoding. (CVE-2015-7508) - Improved input data range check for RLE4 absolute mode. - Added range check to colour table accesses. (CVE-2015-7507) * LibNSGIF library 0.1.3 (NetSurf GIF decoder): - Fixed paths for Haiku. - Minor buildsystem changes. - Added basic decode test. - Improved checks for buffer exhaustion. - Ensured LZW decode stack does not overflow. (CVE-2015-7505) - Ensured LZW code is valid before use. (CVE-2015-7506) * LibParserUtils library 0.2.3 (parser building utility functions): - Fixed paths for Haiku. - Minor buildsystem changes. * LibSVGTiny library 0.1.4 (SVG support): - Fixed paths for Haiku. - Minor buildsystem changes. - Fixed path buffer length allocation issue. - Added test files. * LibWapcaplet library 0.3.0 (String internment): - Fixed paths for Haiku. - Minor buildsystem changes. - Added assertions to interface macros. - Updated tests. - Added doxygen code documentation generation support. - Fixed doxygen warnings. - Added function to return lower-cased strings. ### RISC OS-specific * Improved full-save output to retain their creation date on copy. * Fixed closure of menu when asked for clipboard data. * Updated bundled Shared Unix Library support module to 1.12. * Fixed object info crash that occurred with NULL URLs. * Doxygen generated code documentation fixes and improvements. * Many minor cleanups. * Converted to bitmap operations table. * Set the default disc cache size to zero (off). * Squashed a memory leak in path handling. * Improved menu keyboard-shortcuts. * Prevent sprite export when image can't be converted. * Fixed rendering in 4k and 64k colour modes. * Increased size of download window. * Fixed page-search ignoring case sensitivity. * Fixed lingering pointer shape on window close bug. ### GTK-specific * Extended GTK 2/3 compatibility layer for changes in recent GTK 3 releases. * Fixed warnings in about dialogue construction. * Many minor UI changes and improvements. * Cleaned up header usage. * Converted to bitmap operations table. * Improved view source behaviour. * Memory leak fixes. * Use of GResource to improve building of image resources. * Made path to resources more robust. * Removed GTK-specific default CSS file. * Allow resources to be built into the binary, rather than loaded from disc. * Improve URL bar completion to navigate on selection. * Show default favicon on window creation. * Add option to show IDN decoded URLs. * Improved the man page. * Tidied up themes code. * Fixed memory leaking of Pango layouts when rendering text. ### AmigaOS-specific * Fixed screen depth check for friend bitmaps. * Made use of friend bitmaps optional. * Removed asynchronous backing store code. * Allowed URL completion to pick up non-visited URLs. * Converted to bitmap operations table. * Improved rendering. * Improved plotted robustness. * Improved menus. * Improved file extension handling when saving. * Cache pre-scaled versions of favicons. * Added support for UTF-16 surrogates. Enables emoji rendering. * Improved AmigaOS 3 support. * Improved font handling. * Show IDN decoded URLs, subject to local charset restrictions. * Added new keyboard shortcuts. * Improved hotlist toolbar look. * Optimised font lookups. * Allowed specifying of user directory locations on command line. * Further improvements to AmigaOS 3 support. * Improved font engine selection. * Fixed build warnings. ### Mac OS X-specific * Updated for building with SDK 10.10. * Various clean-ups. ### Haiku-specific * Converted to bitmap operations table. * Fixed 64-bit builds. * Improved build instructions. * Use core menu widget for SELECT form entry. * Disabled replicant dragger. * Improved about dialogue box. * Improved menus. * Embedded language resources in executable. * Added cookie management support. * Added web search bar. ### Atari-specific * Converted to bitmap operations table. * Cleaned up inconsistency of source code line endings. * Enabled JavaScript-capable builds. ### Framebuffer-specific * Reduced amount of verbose logging. * Converted to bitmap operations table. * Added glyphs to built-in bitmap font. * LibNSFB library 0.1.4 (NetSurf Framebuffer): - Minor buildsystem changes. - Added checks to ensure non-zero size framebuffer. Also included are many smaller bug fixes, improvements and documentation enhancements. NetSurf 3.3 ----------- ### Core / All platforms * Rewrote html mouse pointer handling to reduce stack usage. * Improved portability of the curl binding. * Fixed relative URLs in inline CSS to resolve with respect to base URL. * Improved debug box tree dump. * Fixed textarea rendering glitches. * Fixed textarea scrollbar behaviour. * Removed support for all SSL versions due to vulnerabilities. * Protect against inappropriate encryption protocol downgrades. * Many changes to sanitise interface between core and front ends. * Front ends can use their own main loop instead of polling core. * Fixed bad background image URLs causing page load to abort. * Improved buildsystem handling of warning flags. * Improved HTML form handling. * Improved the disc cache. * Improved the hotlist/bookmarks loading and saving. * Improved error handling. * Added copy-to-clipboard of selected hotlist & history entries. * All die calls removed; errors now passed to front ends. * Rationalised URL handling functionality. * Added API for front ends to set DPI. * Added simple map access a about:maps. * Improved documentation for cross-compiling. * Many minor improvements and fixes. * Hubbub library 0.3.1 (HTML parser): - Updated buildsystem. - Minor code tidying. * LibCSS library 0.5.0 (CSS parser and selection engine): - Added selection support for CSS3 column-count property. - Added selection support for CSS3 column-fill property. - Added selection support for CSS3 column-gap property. - Added selection support for CSS3 column-rule-color property. - Added selection support for CSS3 column-rule-style property. - Added selection support for CSS3 column-rule-width property. - Added selection support for CSS3 column-span property. - Added selection support for CSS3 column-width property. - Added selection support for CSS3 break-after property. - Added selection support for CSS3 break-before property. - Added selection support for CSS3 break-inside property. - Improved and fixed absolute value conversion of computed styles. - Minor optimisations. - Updated buildsystem. - Improved selection tests. - Code tidying. - Many minor improvements and fixes. * LibDOM library 0.1.2 (Document Object Model): - Updated buildsystem. - Minor fixes and improvements. * LibNSBMP library 0.1.2 (NetSurf BMP decoder): - Minor code tidying. - Updated buildsystem. * LibNSGIF library 0.1.2 (NetSurf GIF decoder): - Updated buildsystem. * LibParserUtils library 0.2.1 (parser building utility functions): - Updated buildsystem. * LibSVGTiny library 0.1.3 (SVG support): - Fix for relative move commands after path close. - Fix parsing of whitespace in transform operators. - Fix for path generation overrunning allocated storage. - Updated buildsystem. * LibWapcaplet library 0.2.2 (String internment): - Updated buildsystem. ### RISC OS-specific * Updated to use new core interface. * Cleaned up the bundled !Cache distribution. * Divorced from core-internal browser window data structure. * Fixed user-launched fetches to be verifiable. * Minor code tidying. ### GTK-specific * Updated to use new core interface. * Updated to use own main loop. * Fixed thumbnailing issue. * Added man page and XDG file.. * Divorced from core-internal browser window data structure. * Various minor fixes and improvements. ### AmigaOS-specific * Updated to use new core interface. * Improved filenames in save requesters. * Improved kiosk window handling. * Improved browser window scrollbar behaviour. * Improved library handling. * Divorced from core-internal browser window data structure. * Many minor fixes and improvements. * Simplified handing of core browser windows and tab management. * Improved initialisation, and main loop. * Rewritten scheduler. * Improved Style Guide compliance. * Added YouTube video helper script. * Removed obsolete GetVideo support. * Write to the disc cache asynchronously. * Added preliminary support for AmigaOS 3. * Code tidying. ### BeOS/Haiku-specific * Updated to use new core interface. * Divorced from core-internal browser window data structure. * Fixed resource fetcher. ### Atari-specific * Updated to use new core interface. * Divorced from core-internal browser window data structure. * Fixed handling of local paths. * Added support for disc cache. * Code tidying. * Many minor fixes and improvements. ### Framebuffer-specific * Updated to use new core interface. * Divorced from core-internal browser window data structure. * Renamed internal font to "ns-sans". * Added man page. * Updated to use own main loop. * Improved command line option handling. * LibNSFB 0.1.2 library (NetSurf Framebuffer): - Fixed build of wayland surface. - Updated buildsystem. Also included are many smaller bug fixes, improvements and documentation enhancements. NetSurf 3.2 ----------- ### Core / All platforms * Improved building on OpenBSD. * Improved interface between front ends and core. * Improved internal URL handling. * Cleaned up many internal interfaces. * Added support for disc caching. * Fixed treeview selection issue. * Fixed line breaking of plain text with multi-byte sequences. * Improved out-of-memory handling. * Added support for overflow-x and overflow-y CSS3 properties. * Improved web search feature. * Improved internal task scheduling. * Improved support for Unicode URLs. * Fixed issue relating to CSS imports. * Improved debug dumping of box trees. * Fixed SSL certificate viewer lifetimes bug. * Fixed HTML ordered list numbering issue. * Fixed DOM tree debug dump. * Fixed handling of malformed URLs. * Fixed text selection. * LibCSS library 0.4.0 (CSS parser and selection engine): - Added support for CSS3 overflow-x and overflow-y properties. - Fix to !important handling with play-during property. - Improved test coverage. * LibDOM library 0.1.1 (Document Object Model): - Implemented many missing specialisations of HTMLElement. ### RISC OS-specific * Fix for toolbar width calculation. * Code clean-ups. * Added option to use disc cache. ### GTK-specific * Improved configuration handling. * Improved command line usage. * Enabled disc caching. * Improved context menu. * Fixed gdkpixbuf usage issue. * Improved view source, and debug features. * Improved main menu. * Improved developer options. * Added options to open view source, etc, in new window, tab, or editor. * Many code clean-ups. * Internationalisation fixes. ### AmigaOS-specific * Removed Cairo. * Improved installer script. * Enabled disc caching. * Improved line splitting behaviour for text wrap. * Improved web search. * Improved hotlist menu. * Improved task scheduler. * Wait for network activity, rather than polling for it. * Improved throbber operation. * Fixed tab bar update failure issue. * Improved favicon handling. ### BeOS/Haiku-specific * Various fixes. ### Atari-specific * Made several little bug fixes. ### Framebuffer-specific * Added Unicode support to internal font. * Added codepoint rendering to internal font, for missing glyphs. * Added scaled glyph rendering to internal font. * Added support for window resizing, were underlying surface supports it. * LibNSFB library 0.1.2 (NetSurf Framebuffer): - Made SDL surface resizeable. - Fixed rendering for 1bpp glyphs with greater than 1 byte width. Also included are many smaller bug fixes, improvements and documentation enhancements. NetSurf 3.1 ----------- ### Core / All platforms * Optimised UTF-8 conversion. * Optimised URL database lookups. * Added support for visited link rendering. * Made better use of DOM events to optimise load times. * Improved handling of user options. * Improved about:config page. * Faster application startup time. * Fixed rendering of animated background images. * Rewritten treeview implementation with improved look and behaviour. * Rewritten hotlist (bookmarks, favourites) with new treeview. * Rewritten global history with new treeview. * Rewritten cookie manager with new treeview. * Added multi-level undo and redo support to textareas. * Hotlist has special directory for new 'unsorted' entries. * Improved file:// directory listings. * Faster CSS selection achieved by updating to new LibCSS version. * Improved support for min-height and max-height CSS properties. * Removed support for MNG and JNG images. * Launch image fetches during HTML parsing. * Improved support for file upload form element. * Enabled TLS 1.2 support again. * Fixed various issues with HTML forms by using the DOM properly. * Make better use of string interning. * Simplified favicon handling. * Fixed fetch handle caching with modern libcurl versions. * Simplified local history programmer interface. * Improved handling of invalid HTML. * Improved handling of browser tabs. * Various fixes and improvements to URL handling. * Fixed textarea selection redraw. * Improved separation of core and platform-specific code. * Improved content caching. * Improved build documentation. * Improved display of single-line form text inputs. * Various fixes to table layout and rendering. * Hubbub library 0.3.0 (HTML parser): - Updated to use latest LibParserUtils. - Removed client allocation function. - Added support for multilib. * LibCSS library 0.3.0 (CSS parser and selection engine): - Added support for the writing-mode property. - Significantly optimised selection performance. - Made many fixes and internal clean-ups. - Added support for multilib. * LibDOM library 0.1.0 (Document Object Model): - Fixed node comparison. - Made many fixes and internal clean-ups. - Updated Hubbub binding for latest Hubbub. - Added support for multilib. - Added HR specialisation of HTMLElement. * LibNSBMP library 0.1.1 (NetSurf BMP decoder): - Added support for multilib. * LibNSGIF library 0.1.1 (NetSurf GIF decoder): - Added support for multilib. * LibParserUtils library 0.2.0 (parser building utility functions): - Removed client allocation function. - Added support for multilib. - Minor fixes and clean-ups. * LibROSprite library 0.1.1 (RISC OS Sprite support for non-RO platforms): - Added support for multilib. * LibSVGTiny library 0.1.1 (SVG support): - Several minor fixes. - Added support for multilib. * LibWapcaplet library 0.2.1 (String internment): - Added support for multilib. ### RISC OS-specific * Improved mouse handling. * Added F8 and F9 key shortcuts for textarea undo and redo. * Optimised rendering of treeview windows. * Added hotlist indicator to URL bar. * Improved handling of long URLs in URL bar. * Improved menu handling. * Reduced dependency on core's implementation details. ### GTK-specific * Fixed scroll wheel step size. * Improved GTK-3 compatibility. * Fixed red/blue swapping with animated gifs. * Added new tab button to tab bar. * Improved window/tab closing. * Added key shortcuts for textarea undo and redo. * Improved save source. * Added support for file upload form element. * Reduced dependency on core's implementation details. * Fixed alpha channel handling * Fixed endian issues in bitmap handling. * Improved support for keyboard input of non-latin letters. * Improvement of text caret rendering. ### AmigaOS-specific * Added key shortcuts for textarea undo and redo. * Use OS mouse pointers. * Improved hotlist menu. * Added favourites/hotlist indicator to URL bar. * Reduced dependency on core's implementation details. * Added support for AmigaGuide help system. * Improved behaviour on quit. * Improved download handling. * Improved URL handling. ### BeOS/Haiku-specific * Improved embedding of resource files. * Improved About dialogue box. * Fixed CSS system colour setting. * Updated to account for change in atomic_add() in Haiku. * Reduced dependency on core's implementation details. ### Windows-specific * Reduced dependency on core's implementation details. ### Atari-specific * Added SSL certificate inspection window. * Added About dialogue box. * Added support for scaling web pages. * Improved rendering. * Reduced dependency on core's implementation details. ### Framebuffer-specific * Added key shortcuts for textarea undo and redo. * Use libnsfb for tiled bitmap rendering. * Reduced dependency on core's implementation details. * LibNSFB library 0.1.1 (NetSurf Framebuffer): - Fixed various memory leaks. - Added tiled bitmap rendering support. - Improved dithering. - Added support for multilib. - Allowed building for Win32. Also included are many smaller bug fixes, improvements and documentation enhancements. NetSurf 3.0 ----------- ### Core / All platforms * Internal restructuring to separate different components. * Improved drag handling. * Added support for User CSS file. * Fixed compressed Messages loading. * Updated translations. * Improved internal options handling. * Improved build documentation. * Moved to using LibDOM for our document object model. * Removed LibXML dependency. * Merged messages files into single resource. * Improved about:imagecache debug feature. * Use system colours for treeview. * Use system colours for scrollbar widget. * Improved content cache. * Added support for DoNotTrack header. * Added early and primitive JavaScript support. (Disabled by default.) * Textarea widget now supports double/triple click selections. * Moved welcome page to local about: URL scheme. * Improved text selection handling. * Simplified interface for dealing with clipboard cut/copy/paste. * Optimised file: fetcher where mmap is available. * Allowed contents to request scrolls. * Improved frames resizing. * Internal restructuring of content communication with window. * New system for obtaining debug dump from core browser window. * Build system uses ccache where available. * Improved handling of CSS white-space property. * Avoid conversion of spaces to hard spaces. * Reduced usage of talloc to box tree. * Improved URL utility functions. * Brought internal URL database into line with other URl handling. * Improved title bar display for standalone image viewing. * Try to downgrade TLS version support if server can't cope. * Fix for layout issue involving floats with negative margins. * Reduced overhead of debug logging. * Don't abort HTML redraw when bad image fails to convert. * Added support for CSS clip property. * Improved error reporting. * Added support for httponly cookies. * Overhauled core textarea widget. * Use textarea widget for HTML form text, password and textarea input. * Improved caret and focus handling. * Removed CPU architecture from user agent string. * Changed text selection highlight colouring. * Remove limitation of HTML line breaking handling that required space. * Allowed CSS to be fetched/parsed in parallel with HTML document. * Added support for readonly attribute on textareas and text inputs. * Fixed text clipping issue. * Hubbub library 0.2.0 (HTML parser): - Added script support. - Fixed handling of encoding change. - Updated to use new core buildsystem. * LibCSS library 0.2.0 (CSS parser and selection engine): - Updated example code. - Added support for CSS widows and orphans properties. - Minor selection optimisations. - Several minor fixes. - Updated to use new core buildsystem. * LibDOM library 0.0.1 (Document Object Model): - First release. * LibNSBMP library 0.1.0 (NetSurf BMP decoder): - Removed suspend/invalidate stuff from API. - Updated to use new core buildsystem. * LibNSGIF library 0.1.0 (NetSurf GIF decoder): - Updated to use new core buildsystem. * LibParserUtils library 0.1.2 (parser building utility functions): - Fixed input insertion. - Updated to use new core buildsystem. * LibROSprite library 0.1.0 (RISC OS Sprite support for non-RO platforms): - Minor improvement. - Updated to use new core buildsystem. * LibSVGTiny library 0.1.0 (SVG support): - Ported from LibXML to LibDOM. - Minor fixes. - Updated to use new core buildsystem. * LibWapcaplet library 0.2.0 (String internment): - Optimised to reduce function call overheads. - Updated to use new core buildsystem. ### RISC OS-specific * Documentation menu options now launch online documentation. * Added option to enable/disable JavaScript. * Added distribution Zip file build target. * Updated buildsystem to squeeze !RunImage. * Now require v0.13 or higher of the CryptRand module. * Added logging switch to !NetSurf.!Run. * Consult internal mimemap table before consulting MimeMap module. * Improve line wrap handling. * Made clipboard use UTF-8 internally. * Now require v0.12 or higher of the Iconv module. * Pass double and triple clicks to the core. * Fixed ctrl+{left|right|up|down} keys. ### GTK-specific * Added URL launcher for NetSurf. * Added support for building with GTK3. * Fixed rendering of tiled background images. * Fixed scrollwheel support. * Fixed OpenBSD compatibility. * Rewritten preferences handling. * Added clipboard keyboard shortcuts for cut/copy/paste. * Enabled support for line breaking on non-space characters. * Improved localisation. ### AmigaOS-specific * Disabled print support. * Tiled redraw improvement. * Fixed fast scrolling. * Updated default favicon. * Improved status bar. * Made DataTypes picture handler use the core image cache. * Improved font width measuring. * Improved position in rendered string handling. * Improved line splitting handling. * Allow another font to be used if current font lacks required glyph. * Fixed download window's handling of aborted/stalled downloads. * Added option to enable/disable JavaScript. * Support for less than 16bpp screen modes. * Optimisation for opaque bitmap plotting. * Removed p96 dependency. * Install target now produces an archive for distribution. * Added hotlist toolbar. * Improved tabbed browsing. * Added basic context sensitive help. * Made various redraw optimisations. ### BeOS/Haiku-specific * Made multiple toolbars share single icon instance. * Optimised text rendering slightly. * Added download window. * Fixed off-by-one in caret placement and text selection. ### Windows-specific * Install target creates an installer. ### Atari-specific * Improved download window behaviour. * Improved plotters. * Optimised redraw areas. * Simplified keyboard shortcut handling. * Added native bitmap buffer for faster rendering. * Improved toolbar. * Improved URL bar. * Enabled paste into URL bar. * Faster rendering of opaque bitmaps. * Faster freetype text rendering. * Improved context menu. * Added global history window. * Improved text selection and caret placement. * Improved font handling. * Removed windom dependency. ### Framebuffer-specific * Removed unnecessary redraw when not scrolling. * Optimised scrolling. * Reduced lag in handling mouse actions and movements. * Improved scrollbar behaviour. * Added text caret for URL bar and HTML forms. * Improved URL bar editing. * Optimised text widget redraw. * Improved text selection and caret placement. * Enable mouse pointers with offset 'hot-spots'. * Improved key handling. * Added support for drags. * Added simple internal clipboard (cut/copy/paste) support. * Added on-screen-keyboard (OSK) icon. * Turned on Quit button by default. * Improved system colours. * Improved window width/height option handling. * LibNSFB library 0.1.0 (NetSurf Framebuffer): - Fixed X surface build. - Fixed 1bpp bitmap rendering. (Fixes internal font clipping.) - Improved 8bpp palette. - Optimised paletted rendering. - Added error diffusion support to bitmap plotter. - Added support for surfaces with BGR component ordering. - Added Wayland surface handler. Also included are many smaller bug fixes, improvements and documentation enhancements. NetSurf 2.9 ----------- ### Core / All platforms * 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. * Hubbub library 0.1.2 (HTML parser): - Fixed xmlns attribute handling. * LibCSS library 0.1.2 (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. ### RISC OS-specific * Removed unused and broken plugin handler. * Removed normalisation of user input URLs. * Added support for external hotlist utilities. * Improved signal handling. * Improved keyboard input handling. * Various fixes. * Fixed Drawfile export not to show interactive features. * Improved scroll event handling. ### GTK-specific * Improved resource handling. * Cleaned up handling of tabs. * Made tab bar position configurable. * Updated plotters to use Cairo surfaces throughout. * Enabled search-as-you-type of page content. * Fixed ~/.netsurf directory permissions. ### AmigaOS-specific * Improved mouse handling. * Improved multi-tasking behaviour. * Increased keyboard scroll speed. * Better MIME type handling. * Improved contextual menu handling. * Enabled context menu for frames. * Enabled context menu for plain text contents. * Improved aspect ratio handling. * Consolidated user file operations. * Fixed scrolling issues. * Improved resource handling. * Improved tab bar handling. * Improved drag handling. * Improved font handling. * Improved clipboard support. ### Mac OS X-specific * Fixed build. ### Atari-specific * Added context menu. * View source support. * Use favicon when iconified. * Removed unneeded frames handling code. * Fixed rectangle plotter. * Simplified status bar. * Improved download window. * Improved URL bar. * Fixed conversion from local encoding to UTF-8. * Improved scheduler. * Added save page support. * Added settings dialogue. * Enabled view source feature. * Added support for 8-bit displays. ### Framebuffer-specific * Reduced excessive logging. * Implemented RAM surfaces, instead of direct blitting. * Fixed VNC surface. * Enabled thumbnailing in local history view. Also included are many smaller bug fixes, improvements and documentation enhancements. NetSurf 2.8 ----------- ### Core / All platforms * 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. * Hubbub library 0.1.1 (HTML parser): - Fixed build with GCC 4.6. * LibCSS library 0.1.1 (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 0.1.1 (parser building utility functions): - Changed build to require iconv by default. - Support Byte Order Marks in UTF16 and UTF32 streams. ### RISC OS-specific * Improved Adjust double-click handling in treeviews. * Consolidated content handlers for ArtWorks, Draw, and Sprite. * Removed redundant code specific to old RISC OS frame implementation. * Removed redundant code specific to old RISC OS iframe implementation. * Updated for new frame and iframe support in core. * Updated to handle new interface to core redraw functionality. ### GTK-specific * Made new window open showing homepage, rather than current page. * Fixed compatibility with latest GTK API. * Updated to handle new interface to core redraw functionality. * Updated for new frame and iframe support in core. ### AmigaOS-specific * Improved font handling. * Improved text charset handling. * Added support for user defined DPI setting. * Improved image handlers. * Improved MIME type handling. * Primitive plugin content support. * Added support for additional mouse buttons. * Updated to handle new interface to core redraw functionality. * Improved handling of tabs. * Improved toolbar button availability. * Improved download window. * Improved context menus. * Updated for new frame and iframe support in core. * Added a splash screen. * Improved support for entering exotic characters. ### Mac OS X-specific * 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. ### BeOS/Haiku-specific * Reduced debug output. * Updated resources. * Updated to handle new interface to core redraw functionality. * Updated for new frame and iframe support in core. ### Atari-specific * Improved rendering. * Implemented treeview support. * Added Hotlist (bookmarks) feature. * Simplified scheduler. * Improved support for local files. * Updated to handle new interface to core redraw functionality. * Improved window resize accuracy. * Ensured window title is converted to local encoding. * Updated for new frame and iframe support in core. ### Framebuffer-specific * Improved portability. * Updated to handle new interface to core redraw functionality. * Fixed to handle no configured Cookies file location. * Updated for new frame and iframe support in core. Also included are many smaller bug fixes, improvements and documentation enhancements. NetSurf 2.7 ----------- ### Core / All platforms * 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. * Hubbub library 0.1.0 (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 0.1.0 (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 0.0.3 (NetSurf BMP decoder): - Added missing include. - Made more robust when handling broken ICO files. - Added clang build support. * LibNSGIF library 0.0.3 (NetSurf GIF decoder): - Added missing include. - Added clang build support. * LibParserUtils library 0.1.0 (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 0.1.1 (String internment): - Added scoping for use from C++ programs. - Removed need for library initialisation and finalisation. - Added clang build support. ### RISC OS-specific * Replaced hotlist with core hotlist. * Replaced global history with core global history. * Replaced cookie manager with core cookie manager. * Replaced SSL cert. inspection with core SSL cert. inspection. * Apply weighted averaging to download rate display. * Examine extension when fetching local file of type 'Data'. * Iconv module version 0.11 required. * Rewritten toolbar code. * Created simplified, self-contained gui widgets. * Obtain download filename from the core. * Set CSS system colours from desktop palette. * Added menu entries to load about:licence and about:credits pages. ### GTK-specific * Replaced global history with core global history. * Added bookmarks support, using core hotlist. * Added cookie manager. * Added SSL certificate inspection window. * Support GTK >= 2.21.6. * Improved full save implementation. * Made drags less jerky. * Made new tabs open to show homepage. * Improved text wrap handling. * Improved menu bar. * Improved context sensitive popup menu. * Made various thumbnailing fixes. * Obtain download filename from the core. * Updated to use resource: scheme for resources. * Fixed makefie's installation target. * Enabled tabbing between form inputs. * Updated About NetSurf dialogue. * Reduced overhead due to Pango when measuring text. ### AmigaOS-specific * Improved bitmap caching. * Fixed menus in kiosk mode. * Improved filetype handling. * Fixed menu shortcuts. * Replaced hotlist with core hotlist. * Replaced global history with core global history. * Replaced cookie manager with core cookie manager. * Replaced SSL cert. inspection with core SSL cert. inspection. * Improved Cairo and non-Cairo plotters. * Added auto-scroll on selection drags beyond window boundaries. * Improved clipboard handling. * Improved icon usage. * Improved stability. * Some incomplete work towards AmigaOS 3 support. * Disabled iframes by default. * Set CSS system colours from the pens in the screen DrawInfo table. * Fixed kiosk mode to always fill screen. * Improved scheduler. * Made new tabs open to show homepage. * Obtain download filename from the core. * Added history content menus to back and forward buttons. * Bitmap rendering optimisations. * Improved download handling. * Runtime selection of graphics plot implementations. * Updated About requester. * Enabled fast scrolling for all content types. ### Mac OS X-specific * New front end. ### BeOS/Haiku-specific * Fixed Replicant instantiation. * Set CSS system colours according to current desktop settings. ### Windows-specific * Improved sub-window creation. * Fixed redraw bugs. * Fixed bitmap plotting. * Fixed thumbnailing. * Fixed local history. * Fixed URL bar. * Cleaned up toolbar creation. * Improved native build. * Fixed CPU thrashing when idle. * Use NetSurf icon on window decoration. * Improved options dialogue. * Made various 'look and feel' enhancements. ### Atari-specific * New front end. ### Framebuffer-specific * Improved toolbar. * Improved font selection. * Added glyph cache size configuration option. * Made click action happen on mouse button release. * Give browser widget input focus on startup. * Fixed cursor leaving root widget. * Dynamic detection of surface libraries. * Updated to use resource: scheme for resources. * Improved DPI handling. * Fixed font size in text widgets. * Added support for scaled rendering. Also included are many smaller bug fixes, improvements and documentation enhancements. NetSurf 2.6 ----------- ### Core / All platforms * 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 0.0.2 (CSS parser and selection engine): - Allow stylesheets to be used in multiple contexts simultaneously. - Fix possible stylesheet reuse crash. ### RISC OS-specific * Increased maximum allowed value for memory cache size option. * Update 'about' page to include licences for linked components. * Fix layout to paper width when printing. * Fix screen redraw after printing. * Enable sideways print option. ### GTK-specific * Avoid potential use of NULL pointer. * Fix for old versions of GTK. * Improve internationalisation support. * Improve handling of bitmap opacity. * Fix redraw issues with non-HTML content. * Cleaned up menu generation and handling. ### BeOS/Haiku-specific * Fix build. * Fix mimetype acquisition for local files. * Improve handling of bitmap opacity. * Enable knockout rendering optimisation. * Improved polygon plotter accuracy. * Fix colours on copy to clipboard. ### AmigaOS-specific * Fixed menus when switching tabs. * Improved font handling. * Text kerning. * Update for OS4.1 Update 2. * Simplify building of Cairo and non-Cairo versions. * Fixed scrollbar handling. * Better NetSurf icon. * Improve installer. * Better support for ARexx commands. * Context sensitive cut/copy/paste. * Fix clipping for non-HTML contents. * Option to show icon under drag saves. * Bitmap plot optimisations. * Now uses core fetcher for file: URLs. ### Framebuffer-specific * Framebuffer toolkit rationalised. * Improved scrollbar support. * Added X surface handler. * Improved scheduling. * Fixed redraw issues. * Improved keypress handling. * On screen keyboard. * History window. * Configurable window furniture size. * Support for scaled bitmap plotting. * Factored out common plot code for rendering at different bpp. * Load and save cookies file on start and quit. * Improve handling of bitmap opacity. Also included are many smaller bug fixes, improvements and documentation enhancements. NetSurf 2.5 ----------- ### Core / All platforms * 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 0.0.2 (HTML parser): - Fixed locale problem. - Various improvements. * LibCSS library 0.0.1 (CSS parser and selection engine): - First release. * LibNSBMP library 0.0.2 (NetSurf BMP decoder): - Fix ICO decoding on big-endian platforms. - Improve inverse height calculation. * LibNSGIF library 0.0.2 (NetSurf GIF decoder): - Improve Palette entry handling. * LibParserUtils library 0.0.2 (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 0.0.2 (String internment): - First release. ### RISC OS-specific * Theme code cleanup. * Fix possible HTTP autentication crash. * Fix potential problem with URL completion. * Better handling of WIMP errors. * Fixed memory leak in path plotting. (Used for SVG display.) * Improve launching of URIs NetSurf doesn't handle. * New guide to building NetSurf on RISC OS. * Simplified native build process for NetSurf and libraries. * Multitasking behaviour changed to be kinder to other apps. * Fixed problem loading content served locally from WebJames. * Improved stability. * Save complete now implemented in the core. * Find text moved to core and crash bug fixed. * RUfl library (RISC OS Unicode support): - Fixed font scan crash. - Faster font scanning with FontManager 3.64 or later. ### GTK-specific * Give drawing area input focus on click. * Added local history toolbar button. * Improve dot and dash line patterns. * Made throbber loading more robust. * Improved tab handling. * Improved status bar control. * Faster plotting of clipped and scaled images for smooth scrolling. * Favicon display. * Added view source code feature. * Added search box on toolbar. * Theme handling. * Toolbar customisation. * Context sensitive menu updated. * Improved menu structure. * Updated for compatibility with latest GTK versions. ### BeOS/Haiku-specific * Complete save support. ### AmigaOS-specific * Faster and more robust page plotting. * Better clipping of plot actions. * Smoother scrolling. * Improved handling of tabs. * Added UI for SSL certificate inspection. * Improved stability. * Better font handling. * Added a preferences GUI. * Better pointer handling. * Better handling of bitmap alpha channels. * Improved status bar. * Added scale support. * Improved mouse click handling. * Keyboard shortcuts added. * Added search bar. * Added HelpHints. * Theme and icon improvements. * Handle more exotic formats dropped on text boxes, using DataTypes. * Favicon display. * Added search box on toolbar. ### Framebuffer-specific * Framebuffer handling abstracted into libnsfb library. * Fixed throbber to show inactivity correctly. * Improved handling of text entry into URL bar. * Fixed redraw issues while scrolled from top and while scrolling. * Fixed redraw issues with animated GIFs and text areas. * Improved mouse handling. * Fixed zero size iframe crash. * Added full range of pointer sprites. * Better keyboard input handling. * Fix continual reload on pages with meta refresh. * Improve look and placement of toolbar, icons and scrollbars. * Internal font changed. Includes more glyphs and bold/italic. * Improved stability. * LibNSFB library (NetSurf Framebuffer): - New library. ### Windows-specific * New front end, considered pre-alpha. Also included are many smaller bug fixes, improvements and documentation enhancements. NetSurf 2.1 ----------- ### Core / All platforms * Fix detection of active link areas (avoids entire page being treated as a link in certain cases). * Support height on TR. * Fix numbering of floated list items. * Make borders/margins/padding on form elements match other browsers. * Updated Italian translation. * German welcome page. * Fix handling of percentage height on HTML and BODY. * Partially handle percentage heights on TABLE ### RISC OS-specific * Set bit 4 of extended window flags byte. ### GTK-specific * Fix buffer overflows in options code. ### BeOS/Haiku-specific * Implement path plotter for SVG rendering. ### AmigaOS-specific * Improved packaging and installation rules. * Speed up scrollwheel scrolling. * Cache scaled bitmaps in memory by default. * Support exporting of images as IFF. Also included are many smaller bug fixes, improvements and documentation enhancements. NetSurf 2.0 ----------- ### Core / All platforms * Completely new HTML parser (Hubbub). * SVG support. (Can be used as normal images and background images.) * PDF export support. * Many improvements to page layout and rendering. * More CSS properties supported. * Improved text selection behaviour. * Charset fixes. * Portability improvements. * Configurable multi-platform build system. * Tabbed browsing awareness. * Corrected behaviour of backgrounds on root element. * Many fixes related to floated content. * More lenient meta refresh delay handling. * Improvements to cut, copy and paste behaviour. * Better cookie handling. * Improved form functionality. * Improved form control display. * Stability fixes for handling nonsense data. * Better handling of HTML attributes. * Fix broken layout on systems which don't use '.' as the decimal separator. * Fix inline height not affecting line height. * Handle whitespace in URL bar. * New throbber animation. * Fixed occasional white flicker of page area during layout. * New default homepage. * Hubbub library 0.0.1 (HTML parser): - First release. * LibParserUtils library 0.0.1 (parser building utility functions): - First release. ### RISC OS-specific * Restructured menu with access to more functionality. * Remembers save / download paths. * Improved style-guide compliance. * Wimpslot size adjusted at build time. * Alt+click on close icon closes all NetSurf windows. * Escape aborts drag save. * New object > link submenu. * SVG to Drawfile conversion. * Zoom/scale with shift+scrollwheel. * Improved drawfile export. ### GTK-specific * Tabbed browsing. * Global history. * Download manager. * Enhanced interface. * Text selection. * Print support. * Improved context menu. * Handle desktop DPI setting. * Can support RISC OS Sprite bitmap format via librosprite. * View source. * Content language selection option. ### BeOS/Haiku-specific * First release. ### AmigaOS-specific * First release. ### Framebuffer-specific * First release. Also included are many smaller bug fixes, improvements and documentation enhancements. NetSurf 1.2 ----------- ### Core / All platforms * Overhaul documentation in line with new website. * Many improvements to cookie handling. * Minimum font size option is now obeyed by form elements. * Add support for periodic reflow during fetching. * Fixes for positioning of floated elements -- NetSurf now passes Acid1. * Bring support for
and align= in line with specification. * Updated SSL root certificate bundle. * Various fixes for form element default styling and interaction with CSS. * Rewritten, more tolerant, HTTP redirect handling. * Fix crash when tabbing into hidden form fields. * Fix background handling on and . * Permit