summaryrefslogtreecommitdiff
path: root/developer-weekend/sep-2017.mdwn
blob: 88d833a2637423c910015c0739168c91fb00b66d (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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
[[!meta title="Developer Weekend (September 2017)"]]
[[!meta author="Daniel Silverstone"]]
[[!meta date="2017-09-00 17:30:00"]]

[[!toc]]

Attendees
=========

* Michael Drake
* Vincent Sanders
* Daniel Silverstone

Apologies
=========

* John-Mark Bell
* Chris Young

Topics
======

* Logging merge for main NetSurf
    * Daniel added verbose and normal logging options
    * Vince added documentation for nslog in netsurf
    * Vince fixed a whole pile of horrible compile problems with nslog on atari etc.
    * Daniel fixed the test suite to work with the new logging options
* Triage of bug tracker to generate further topics for Saturday
    * Michael found a couple of 10+ year old feature requests assigned to him, and decided
      it was time to implement them, so he got started on:
        * [`#1949` Search option for hotlist](http://bugs.netsurf-browser.org/mantis/view.php?id=1949)
        * [`#1954` No way to search global history](http://bugs.netsurf-browser.org/mantis/view.php?id=1954)
    * Daniel fixed [`#2549`](http://bugs.netsurf-browser.org/mantis/view.php?id=2549)
    * Daniel reviewed [`#2537`](http://bugs.netsurf-browser.org/mantis/view.php?id=2537)
      and decided that it wasn't worth trying to fix now.  It's reported against
      3.6, the reported issue is fixed, but the underlying inability to interact
      with buttons is not.
    * Daniel and vince reviewed [`#2555`](http://bugs.netsurf-browser.org/mantis/view.php?id=2555)
      and decided François had already fixed it.
    * Daniel reviewed [`#2544`](http://bugs.netsurf-browser.org/mantis/view.php?id=2544)
      and decided it had always worked, closed it can't reproduce.
    * Daniel tried to reproduce [`#2532`](http://bugs.netsurf-browser.org/mantis/view.php?id=2532)
      but failed, so asked the submitter to try again.
    * Daniel looked at:
        * [`#2464`](http://bugs.netsurf-browser.org/mantis/view.php?id=2464)
        * [`#2482`](http://bugs.netsurf-browser.org/mantis/view.php?id=2482)
        * [`#2417`](http://bugs.netsurf-browser.org/mantis/view.php?id=2417)
      and closed them unable-to-reproduce.
    * Daniel reviewed [`#526`](http://bugs.netsurf-browser.org/mantis/view.php?id=526)
      and assigned it to Michael
    * Vince reviewed [`#2550`](http://bugs.netsurf-browser.org/mantis/view.php?id=2550)
      and closed it unable-to-reproduce.
    * Daniel and Vince worked through the following, closing most of them...
        * [`#1885`](http://bugs.netsurf-browser.org/mantis/view.php?id=1885)
		* [`#1886`](http://bugs.netsurf-browser.org/mantis/view.php?id=1886)
		* [`#1889`](http://bugs.netsurf-browser.org/mantis/view.php?id=1889)
		* [`#420`](http://bugs.netsurf-browser.org/mantis/view.php?id=420)
		* [`#434`](http://bugs.netsurf-browser.org/mantis/view.php?id=434)
	    * [`#518`](http://bugs.netsurf-browser.org/mantis/view.php?id=518) (Actually we resolved this one)
		* [`#469`](http://bugs.netsurf-browser.org/mantis/view.php?id=469) (Actually we resolved this one)
		* [`#520`](http://bugs.netsurf-browser.org/mantis/view.php?id=520) (Actually we resolved this one)
		* [`#522`](http://bugs.netsurf-browser.org/mantis/view.php?id=522)
		* [`#505`](http://bugs.netsurf-browser.org/mantis/view.php?id=505)
	    * [`#1916`](http://bugs.netsurf-browser.org/mantis/view.php?id=1916) (We won'tfix'd this)
        * [`#1907`](http://bugs.netsurf-browser.org/mantis/view.php?id=1907) (We trolled jmb)
		* [`#1879`](http://bugs.netsurf-browser.org/mantis/view.php?id=1879) (Resolved)
        * [`#485`](http://bugs.netsurf-browser.org/mantis/view.php?id=485)

* What frontends do we demote?
    * See below

* Administrivia - Phoenix's disks are tired (even SMART said so)
    * We'd like to know where the society bank account stands, for general
      resources.
    * We'd like to buy a pair of WD Gold 1TB drives (rough cost 140 UKP total)
      so that Phoenix isn't running on pre-fail age drives.
    * Decision was: Michael, Vince, and Daniel will share the cost if the
      society lacks the funds.  Vince will buy drives and begin the replacement
      process.  Ideally ASAP.

* Discussion around forms, removing gadgets, etc.
    * See below

* Auto-scroll to last position during history navigation
    * See below

* The "What's Next?" of Javascript
* URLdb/Cookies
* Breaking changes and 4.x

Frontends
=========

Amiga
-----

Chris Young still maintaining it.  Do we want to add OS3 to the CI?

> Keep '1st class'

Atari
-----

No maintainer, toolchain is awkward, blobby, unpleasant for CI.  Needs a
scrub and refactor.  We're not sure our builds are valid for Coldfire.

> Demote '2nd class' (no CI builds) after 3.7

BeOS
----

Intermittent maintenance.  Haiku builder is a pain in the arse, is the only
blocker for Java 8.

> Keep `1st class` for now, consult with Pulkomandy and mmu_man about JDK-8

Cocoa
-----

Currently 2nd class, Libraries only.  Sven came back, but made a messy branch
which was too hard to review/merge.  Then he vanished once more.  Is also a JDK
8 limiting blocker, as it is 2nd class, we'd just drop from CI entirely if it
was the only blocker.

> Keep `2nd class` for now.

Framebuffer
-----------

Currently 1st class, boring, needs keyboard shortcuts etc.  Hotlist support,
blahblahblah but frankly "just works™" for the most part (Raw linux framebuffer
doesn't work, but that's `libnsfb` really)

> Keep `1st class` for now.

GTK
---

Currently 1st class, basically works, lacks keyboard shortcuts and polish in
general.

> Keep `1st class` for now.

Monkey
------

Currently 1st class, doesn't tend to cause problems, needs further work for
a test driver etc.  No proper maintainer right now.

> Keep `1st class` for now.

RISC OS
-------

No maintainer, none of the core devs actually understand it any more, it's a
pain in the arse.  Sadly most of our feedback comes from RISC OS users.  For
now we do a best-effort on keeping it first class.

> Keep `1st class` for now.

Windows
-------

Minimally usable, but there are problems with XP (though do we care?) some
issues around certificate bundles, storing of userdata, etc.  Needs better
configuration, translations, etc.

> Keep `1st class` for now.

Forms and gadgets
=================

The issues as we see them are that basically it's impossible to make small
fixes because whenever something is changed, it goes horribly wrong somewhere
else.  Usually manifesting in double-frees or similar given the particularly
baroque ownership semantics (or lack thereof).

Rather than hacking it all out and starting from scratch, we propose:

1. Making sure the gadgets update the DOM
    * Gadget types: `HIDDEN`, `TEXTBOX`, `RADIO`, `CHECKBOX`, `SELECT`,
      `TEXTAREA`, `IMAGE`, `PASSWORD`, `SUBMIT`, `RESET`, `FILE`, `BUTTON`
    * It's likely `HIDDEN` can go away as soon as 2 is done.
    * Validate that all these input kinds are supported in the libdom binding
        * **TODO** Need to work out how to handle the reset event
2. Making the form submission read from the DOM
    * Turns out Daniel wrote that in 2014. Oops. Nothing to do here.
3. Make the DOM trigger the submission (may need onclick or other event stuff)
    * **TODO** First up read
      <https://www.w3.org/TR/html5/forms.html#concept-fs-action> and implement
      the form action, method, etc attributes onto the input element etc.
      This may need libdom tweaks for the attributes and the novalidate stuff.
    * **TODO** Rework the libdom submit stuff to use an internal event name
      because the `submit` event is for non-`form.submit()` stuff:
      <https://www.w3.org/TR/html5/forms.html#concept-form-submit>
    * **TODO** Now determine how to implement the above bits neatly so that
      we trigger submission properly.
4. Make any reader of the gadgets use the DOM
5. Work out how to remove more of this...

History navigation scroll
=========================

Daniel suggests:

1. Update `struct history_entry` to contain a `last_offset` as a float
   which is the proportion of the page scrolled (initialised to zero during
   `browser_window_history_add`
2. On navigation, if current is not NULL, store the `last_offset` into it
   (note in `browser_window_navigate`)
3. On page completion, if the current history entry's `last_offset` is non-zero
   then jump to that scroll location.

Since we have fragment handling already (and navigating to a fragment will mean
that the `last_offset` is zero) we will continue to function with fragments.

Bug fixes
=========

* Michael found and fixed a GTK core window issue where modifier keys were not
  getting passed with mouse clicks (release), only with press.  This prevented
  Hotlist/Bookmarks entry editing.


Next time
=========

We have chosen the next developer weekend to be .
It shall be at