[[!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.