summaryrefslogtreecommitdiff
path: root/developer-weekend/dec-2019.mdwn
blob: d25542547456315372bdf91e2599f554d6dd18ef (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
230
231
232
233
[[!meta title="Developer Weekend (December 2019)"]]
[[!meta author="NetSurf Developers"]]
[[!meta date="2019-12-01 22:30:00"]]

[[!toc]]

Attendees
=========

* Michael Drake
* Vincent Sanders
* Daniel Silverstone


Outstanding work (from May)
============================

* General
    * Implement any appropriate auto fill auth handlers
    * Low level cache should own certificate data and persist with all other data
      - Shouldn't be pushed down to browser window; browser window should request
        it from the hlcache handle, which should get it from the llcache.
    * Implement Site Information (padlock) and repurpose certificate error core
      windows to be certificate viewing interfaces
    * Continue styling the generated query pages.
    * Review TODOs.
* Framebuffer
    * Language support for resources (Vince)
    * Listing of compiled-in surfaces (Vince)
* Internationalisation
    * Translations of all messages for the SSL/privacy internal query page.
    * Translations of all messages for the authentication internal query page.
* New tests
  * Take the 10,000 sites list, split it up into blocks of 20, and run them as
    independent tests.
  * Four core VM, which gets 4 Jenkins jobs for running these tests.
  * Experiment and see how it breaks down. Needs to be weekly (we can tweak it).
* Text layout
  - Continue implementing. (Michael)

Topics
======

* Goals for the weekend
    * Complete the multi-site parallel test stuff that Vince has started **DONE**
    * Migrate SSL certification ownership to the llcache and at least block out
      the padlock work **DONE**
    * Resolve new Debian packaging and upload **Deferred to after 3.10**

* Bug triage
    * Do general triage **DONE**
    * Specifically address [[!bug 2682]] (NetSurf on RISC OS keeps crashing in
      curl-ares) **We looked, we couldn't work out what it was**
    * Look at [[!bug 2686]] [[!bug 2701]] (WebP in SDK) **DONE** Daniel updated
      toolchains

* Reviews
    * Go over GTK frontend changes **DONE** As a group
    * Fetcher/Cache hacking regarding file/data/resources/etc **DONE** As a group
    * Look over the generic error internal query page work **DONE** Daniel checked it
    * Check over the mouse input handler rework **DONE** As a group

* Consider the pathway to 3.10/4.0 **DONE**

* Consider what the best return-on-effort might be to improve general layout
  support.  We're increasingly falling behind. **DONE**

Discussions
===========


Frontends
=========

Coverity
========


Bug Triage
==========

* [[!bug 2719]] - 3DES and friends -- What do we do about this?
* [[!bug 2705]] - Assigned to Michael - Layout
* [[!bug 2649]] - Assigned to Vince - WIN32
* [[!bug 2709]] - Assigned to Vince - WIN32
* [[!bug 2708]] - Assigned to Vince - WIN32
* [[!bug 2713]] - Closed, sent user to dev ML or IRC
* [[!bug 2652]] - Assigned to Michael - Layout - Likely to be LONG TIME
* [[!bug 2688]] - Assigned to Michael - Layout - Responded; needs CSS opacity support, which needs compositing.
* [[!bug 2694]] - Updated with notes, left acknowledged but unassigned
* [[!bug 2695]] - Resolved/Fixed thanks to Vince's new GTK UX
* [[!bug 2689]] - Assigned to Michael - Layout - Fixed in HTML redraw
* [[!bug 2703]] - Daniel added a note, but we're leaving it unassigned
* [[!bug 2710]] - This appears to be a RISC OS font problem, Michael responded

General Layout Improvement Approach
===================================

* libcss needs support for `calc`
* libcss needs css variable support
* NetSurf could try and use the flexbox properties and grid layout
* Continue to try and get jQuery working

Pathway to 3.10
===============

* Completion of MVP for page info core window (Assigned to Vince, Michael to
  help)
* Completion of integration of that into GTK and RISC OS frontends, with others
  being given at least two weeks to integrate before they cease blocking.
  (Assigned to Vince)
* At least some attention given to GTK focus issues (Assigned to Vince, Daniel
  to assist)
* See if we can exfiltrate better SSL session error information such as a lack
  of cipher list overlap. [[!bug 2719]] (Assigned to Daniel)
* Verify webp on riscos, disable if too buggy  (Assigned to Michael)

Activity
========

Mostly individual activity here

Michael
-------

* Proposed a FOSDEM talk
* [[!bug 2689]] - Fixed us not to render scrollbars when the CSS tells us
  not to.
* Added some extra glyphs to the Framebuffer front end to render the the
  [wttr](https://wttr.in/) page properly.
* [[!bug 2688]] - Looked into the cause of this bug, and found it was due
  to the unimplemented opacity property.  It's tricky to implement right
  now.  It applies to all descendant elements, so compositing is required.
* [[!bug 2705]] - Looked into this, unfortunately we seem to be given different
  content to Firefox - save firefox's content and NS can render it.  ARGH.
* Helped Daniel track down a breakage in libcss when faced with
  an incomplete ruleset inside a media query block.
* Added support for `KeyboardEvent` properly in libdom and semi-properly
  in NetSurf

Daniel
------

* Added support for storing SSL certificates onto the llcache objects
* Added catchup support so that new users get the certs too
* Added support for serialising and deserialising the certificate chains
  so that persistent https data retains its chain for use.
* Did a bunch of toolchain updates
* Did a bunch of `rr` and fixed some leaks in `box_construct.c`
* Did a bunch of `rr` and tracked down a breakage in libcss when faced with
  an incomplete ruleset inside a media query block. (Michael helped)
* Did a bunch of `rr` and tracked down an incorrect throbberstoppage.
* Wrote support for page info status indicators in browser window and
  content, threaded through html content too.
* Wrote a monkey test set to validate the page info status
* Various jenkins frobbling


Vince
-----

* [[!bug 2720]] - Implemented feature request of closing tabs with middle click
* Finished extended internet test badgering including full reorganisation of
  the monkey-tests tree.
* Fixed [[!bug 2709]] - UTF8 caption on Windows (WIN32)
* Implemented icons for page info status work that Daniel did, and made it all
  work in the GTK frontend (GTK2 *and* GTK3)
* Temporarily plumbed the old SSL cert info into being activated from that
  button.  It's not brilliant but it does work.
* Began to look at fixing win32 font-width stuff for wide-chars
* Various jenkins frobbling

Plan for page info
==================

1. We add to browser_window the concept of the currently displayed page info.
2. That info is an enumeration of:
    * UNKNOWN (nothing loaded?)
    * INTERNAL (e.g. `about:` etc)
    * INSECURE (e.g. `http://`)
    * SECURE+PROBLEMS (e.g. `https://` but `http://` images, or badssl)
    * SECURE (all is well)
3. Whenever the currently displayed page changes, `browser_window` will send a
   notification to the GUI, which will then be able to retrieve the current
   state information.
4. More detailed page information will be available through further APIs

Then separately

When the page information button is clicked, the GUI pops up a corewindow for
it.  This window will show information about the page's security, etc.  Most of
the information for this can be directly retrieved from the browser_window and
as such, the corewindow will be initialised with the browser_window pointer.
The GUI will be responsible for destroying the corewindow when the browser
window is going away, and for notifying the corewindow when the browser window
event indicating info-change occurs.

This means that the corewindow is borrowing from the browser window, so we need
to ensure that anything the browser window returns by pointer will remain safe
for use even when navigation events occur.



Statement of work
=================

If at all possible, we'd like to see some of the following addressed before
the next developer weekend…

* General
    * Implement any appropriate auto fill auth handlers
    * Continue styling the generated query pages.
    * Review TODOs.
* Framebuffer
    * Language support for resources (Vince)
    * Listing of compiled-in surfaces (Vince)
* Internationalisation
    * Translations of all messages for the SSL/privacy internal query page.
    * Translations of all messages for the authentication internal query page.
* Text layout
  - Continue implementing. (Michael)
* Release 3.10
    * Which means do the work first needed to complete it
    * And then do Debian package releases, including removing framebuffer
      from Debian.
* Events
    * Michael to do more UI event support in NetSurf

Next time
=========

* February 21st to 24th (Fri through Monday) as a full 4 day event
* Manchester, unless something changes.