summaryrefslogtreecommitdiff
path: root/development_plan.mdwn
blob: c9e8f551473919eda9e4979fdc41336fdbac1312 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
[[!meta title="Development Plan"]]
[[!meta author="Chris"]]
[[!meta date="2014-05-11T18:53:19Z"]]


[[!toc]] This is a planning
document covering NetSurf development and release goals.

General
-------

Historical NetSurf 2 and before
-------------------------------

These editions are now completely obsolete and upgrading is recommended.

The SVN revision control system and RISC OS only autobuilder were used
to provide rudimentary CI.

Releases were principally manual in nature and were oriented around
stability and incremental improvements.

Development concentrated on expanding functionality in a progression
towards important core functionality.

Major completed milestones in the 2.x series were:

-   The Hubbub parse library and integrating into NetSurf
-   The LibCSS CSS library and integation into NetSurf

NetSurf 3
---------

This is the current release series where development is concentrated.

We use git for our [control
system](http://git.netsurf-browser.org|source) and have a full multi
platform [Integration](http://ci.netsurf-browser.org/|Continuous)
system.

### Improvements in 3.0

The first release in the 3 series had several important technical
improvements the main ones were:

-   LibDOM Document Object Model library completed and integrated with
    NetSurf
-   Libraries using the core buildsystem
-   Script support including Spidermonkey javascript interpreter and
    basic DOM bindings
-   Integrated frame support
-   Integrated core treeview allowing for all frontends to benefit from
    global history, bookmarks, cookie management

### The 3 series development overview

The focus of this series will be on:

-   improving speed and memory efficiency
-   improvement of user interaction, e.g. with form widgets
-   treeview improvements.
-   Improve url database handling
-   Improve coockie handling
-   Improving DOM integration
-   No major improvements are planned for the layout engine until
    NetSurf 4.0.
-   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.

### Active 3 release

We maintain a page for the forthcoming release listing specific issues
for that release.

Next release will be [[NetSurf_3.2|netsurf_3.2]]

Netsurf 4
---------

The focus of this release will be a
[[new layout engine|layout]]. 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`.

Javascript DOM integration should be completed and use the dynamic
layout capabilities.

### Core features

-   [[New layout engine|layout]], capable of dynamic
    changes