NetSurf Society Report 2010-2011

Michael Drake tlsa at
Tue Apr 12 18:43:12 BST 2011

Thanks to the Secretary and Treasurer for their continued work in these
roles this past year.

Year in review

Approximately this time last year we released NetSurf 2.5.  In the last 12
months we have developed and released NetSurf 2.6 and we are on the verge
of releasing NetSurf 2.7.  Both of these releases have done much to
advance the state of the project.  The changes introduced in them have had
quite a wide scope, improving many aspects of the browser and our

NetSurf core

Improvements made to NetSurf's core have affected many areas including
page layout, fetching, content caching, rendering, memory usage and
performance.  Perhaps the most obvious new feature has been the addition
of core-controlled windows for global history, hotlist (bookmarks), and
cookie management.  These are available for use by all front ends, and
have increased the user-facing functionality on several platforms.

There has been an increasing practice of profiling the browser to direct
development attention to specific aspects of performance.

Some work has been done this year as part of an on-going effort to
simplify and improve the core/front end interface.  This work has helped
remove some of the complexity that was previously required in front ends.

NetSurf front ends

The year has seen the implementation of two new front ends.  The Mac OS X
front end in particular was written very swiftly, and is already
considered release-ready.  The new Atari front end is also showing great
promise, extending the potential userbase for NetSurf further.  These
developments further demonstrate the portability of NetSurf.

The Windows port has continued to mature over the last 12 months, however
it lacks an actual maintainer at the moment.  This has reduced the
potential for its advancement.  By contrast, the RISC OS front end, which
was without a maintainer last year, now has a maintainer and much work has
been done to make the RISC OS code easier to work with.

Some work has been put into creating an environment for automated
cross-compilations of NetSurf for various platforms.  This work is still
in progress.

Project libraries

Much effort has been put into our core libraries.  LibCSS in particular
has been improved substantially.  These advances have included the
addition of support for certain features of CSS3.

Part of the work carried out on our core libraries has focused on
rationalising their APIs.  As yet, none of the core libraries' APIs are
considered fully stable.  This means they have not reached "release"
versioning (i.e. 1.x) in this period.

We have seen third party projects making use of some of our core libraries.

Little work has been done on LibDOM in the last 12 months.  However, some
recent decisions have established what work is required for LibDOM to
reach the state were NetSurf can start using it.

Going forward

The main story of NetSurf's development plan since NetSurf 1.x has been
shared widely before.  Here it is again:

  |  1. New HTML parser (hubbub)
  |  2. New CSS engine (libcss)
  |  3. New DOM implementation (libdom)          < We are here now
  |  4. New layout engine
  |  5. Add JavaScript support
  |  [1] was introduced with NetSurf 2.0
  |  [2] was introduced with NetSurf 2.5
  |  [3] is  intended   for  NetSurf 3.0
  |  [4] is  intended   for  NetSurf 4.0
  |  [5] is  intended   for  NetSurf 5.0

The practice of profiling NetSurf has identified CSS selection as a
significant performance issue.  The reason for this is understood, and
performance is expected to be vastly improved once NetSurf uses LibDOM
instead of LibXML.  Since this coincides with the general plan, the
development focus after NetSurf 2.7 is expected to centre around LibDOM.

The next 12 months

It will be ideal if we are in a position to release NetSurf 3.0 with
LibDOM in the next year.  We should certainly aim to make progress on this
during the period.

In addition to working toward milestone 3, as outlined above in the main
story of NetSurf's development, we can also complete some side quests this
year.  Some good candidates for attention that have been mentioned before

 + Moving frames handling to the core.
   (Requested by several front end maintainers.)

 + Rewriting URL handling.
   (Frequently comes up amongst core developers.)

 + Making the core a library.
   (Routinely sought-after by front end and core developers alike.)

There are many others on the Development Plan wiki page:

Continued work on automated cross-compilation and also automated testing
will be of great value to the project.

Finally we should produce a roadmap for LibSVGTiny.  Currently it is not
released alongside our other libraries.  Could it use LibCSS?  Maybe Expat
and LibDOM instead of LibXML?  Support for more SVG features?  Output
shape as polygon, rather than path, when shape has only straight lines?

NetSurf project steering will be discussed at the forthcoming AGM.

Thanks to everyone involved in the project for their contributions over
the last 12 months!


Michael Drake (tlsa)        

More information about the netsurf-dev mailing list