This is a planning document covering future NetSurf development and releases.
Contents |
The most requested feature is JavaScript. To get JavaScript the following steps are needed:
Each of these steps will require a lot of time.
The focus of this release will be on: the introduction of a proper DOM; big improvements in speed and memory efficiency; improvement of user interaction, e.g. with form widgets and status bar display; and support for treeview based functionality (e.g. global history, bookmarks, cookie manager) in all front ends. No major improvements are planned for the layout engine until NetSurf 4.0.
Once we move to using LibDOM, we should give a big speed improvement over NetSurf 2.x. There will be a lot less string copying and string compares will be much faster due to usage of string interning library LibWapcaplet in NetSurf, LibDOM and LibCSS.
APNGs are already used in the wild (unlike MNG). While we can display the first frame, thanks to PNG backwards compatibility, it would be good to support the animation extension.
We have always put XHTML though an HTML parser, which works well enough currently, but it will be good to handle XHTML properly.
- current sourec of adblock css is long gone (nov 2004) - the original idea source for css based blocking is http://www.floppymoose.com/userContent.css but thats inadequate for our purposes - another source used in our current css was last updated 2008 http://www.gozer.org/mozilla/ad_blocking/css/ad_blocking.css - an adblock plus source which might be worth adding instead of doing it by css https://easylist-downloads.adblockplus.org/easylist.txt where http://adblockplus.org/en/filters is the file format. We might be able to convert from the adblock format to css?
The focus of this release will be a new layout engine. The new layout engine will enable dynamic changes to pages such as :hover, reflowing for scrollbar insertion. It will also add support for features missing from the old layout engine such as z-index and vertical-align.
The focus of this release will be JavaScript support.