[[!meta title="Developer Weekend (February 2020)"]] [[!meta author="NetSurf Developers"]] [[!meta date="2020-02-24 09:00:00"]] [[!toc]] Attendees ========= * Michael Drake * Vincent Sanders * Daniel Silverstone Outstanding work (from December) ============================ * General * Implement any appropriate auto fill auth handlers **IGNORING** * Continue styling the generated query pages. (Michael) * Review TODOs. * Framebuffer * Language support for resources (Vince) **SHITCANNED** * 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. * Short of finding a native speaker there's not a lot we can do. **Nothing** * 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 **SHITCANNED** Pathway to 3.10 =============== * Completion of MVP for page info core window (Michael to work on this) * DER exfiltration and SSL Certificate viewer `about:certificate` (Vince) * 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 (Daniel to complete this) * Review styling for internal pages. (Assigned to Michael) * Listing compiled-in surfaces for nsfb (Assigned to Daniel) * [[!bug 2650]] Inappropriate error message (Assigned to Vincent) * [[!bug 2722]] GTK3 UI vertical scrollbar wrong (Assigned to Vincent) * [[!bug 2721]] Bizarre corners on download box in highdpi (Assigned to Michael) Bug Triage ========== * [[!bug 2704]] - Closed, can't reproduce. * [[!bug 2702]] - Definitely still happening, Daniel will look. (NOT ASSIGNING) * [[!bug 2716]] - Acknowledged (CURL ARES) * [[!bug 2717]] - Acknowledged (CURL ARES) * [[!bug 2703]] - Closed, notabug * [[!bug 2722]] - Selected for this weekend. * [[!bug 2719]] - Closed, no resolution required * [[!bug 2727]] - Acknowledged (Our scaling sucks) * [[!bug 2729]] - Closed, macOS sucks * [[!bug 2730]] - Misguided attempt at typo fix, closed. * [[!bug 2726]] - Closed, can't reproduce * [[!bug 2708]] - Fixed in 3.10 * [[!bug 2731]] - Acknowledged * [[!bug 2732]] - Resolved in 3.10 * [[!bug 2733]] - Acknowledged feature request * [[!bug 2734]] - Acknowledged feature request * [[!bug 2735]] - Acknowledged feature request * [[!bug 2737]] - Assigned to Daniel * [[!bug 2739]] - Assigned to Vincent * [[!bug 2738]] - Michael to explain user stylesheet * [[!bug 2736]] - Assigned to Daniel * [[!bug 2620]] - Assigned to Vincent Topics ====== * We need a discussion about framebuffer, but won't block 3.10 mostly * See if we can exfiltrate better SSL session error information such as a lack of cipher list overlap. [[!bug 2719]] (Assigned to Daniel) Activity ======== Mostly individual activity here Michael ------- * Converted NetSurf's README to Markdown. * Removed unused minimum GIF delay setting from: - All the front ends that had settings code for the option: (RISC OS, Amiga, GTK, Atari, Windows). - Core options handling and tests. - Settings documnetation. * Various constifications of parameters though APIs: - The `bw` in browser window URL access function. - The core window in the core window callback table's getters. - The treeview clip rectangle through redraw. - The `bw` though the browser_window page_info getter. * Check for success/failure on HTML script mimetype interning. * Split out a helper to get colour lightness in plot_style. * Added function to engorge a particular component channel in a colour. * Added stubs for new browser window interfaces for page-info functionality. * Added new page info core window. - Handles correct scaling of everything (text, paddings, etc) for different DPIs. - Handles light on dark, or dark on light colour configurations. - Implemented content layout, redraw and mouse action. * Initialise/finalise the page-info module in NetSurf startup/quit handling. * Renamed "crtvrfy" to "pi" (for page-info) in the GTK front end. * Found a bug in the Amiga m86k toolchain where the compiler generates assembly that the assembler says is invalid. - For now, since we can't build the Amiga m86k toolchain, we have just disabled that entry in the CI build matrix. * Added `-ldl` link flag for unit test build of `libmalloc_fig.so`. * Addressed missing malloc check in hashmap from Rob's code review. * Added treeview API for setting a search string in searchable treeviews. * Added cookie manager API for setting search string. * Made the browser window cookie opener set the search term to the current URL's host. * Fixed six scan-build issues in libcss. Daniel ------ * Went through [[!bug 2702]] worked out that we weren't completing the content state machine when async scripts completed after `dom_to_box` had finished. Fixed that. * Went through [[!bug 2736]] and fixed the tests to use `__func__` instead. * Updated the SDK for iconv and curl versions * GTK3 - local history focussing and other core windows * Fixed async scripts not completing the content state machine properly * Don't progress the content state machine if scripts dont' run anything * Ignore content loading status in html_proceed_to_done * Added `DOMImplementation::createHtmlDocument()` * Added `Element::innerHTML` support * Added `Element::attributes` and thus a rudimentary `NamedNodeMap` and proxies * Fixed `infinity` to `Infinity` in exports in `Window` * Added `FOREGROUND` browser window creation flag to be honoured in frontends which use tabs and can open things in the background at user choice * Added support for that in GTK frontend * Added `FOCUS_LOCATION` browser window creation flag which frontends can use to indicate that they want the location bar focussed when the window opens * Added support to GTK frontend to use that * Added a state machine for the focussing logic in GTK * Corrected `browser_window` to inform the GUI when redirects occur and to ensure that the final URL reported to the GUI is the final fetched URL not the fetch parameters URL * Removed hack in GTK for url bar refresh on throbber stop as a result * Various GTK3 type updates (e.g. `GtkVBox` and `GtkHBox` to `GtkBox`) * Increased information available from `monkeyfarmer.py` when a window is alive after being asked to destroy itself * Also increased timeout in `monkey_driver` for that so that tests pass once more * In the GTK frontend, drain GTK events before polling the scheduler to allow windows a chance to realise before we render. This improves the local history thumbnails and scrollbar size * To complete the scrollbar fix, also send a resize event to the grid when we complete a fetch so that the scrollbar will rerender its thumb properly * Correct `Node::nodeValue` setter to return the value set into it * made llcache persist anything useful during finalise * Added generic hashmap type * Reworked the `fs_backing_store` to use this hashmap to reduce memory impact at startup and simplify the code a bit. * Added an SSL certificate chain cache to the curl fetcher using the hashmap * Corrected ring handling in about, resource, file, and data fetchers * Made fetch core send a `FETCH_ERROR` of `FetchFailedToFinish` if a fetch is freed without actually passing through one of the finish states * Added surface enumeration to libnsfb * Added support to use that to nsfb * Fixed [[!bug 2650]] by making windows port not use `NoMemory` where inappropriate. * Added disc cache path as a core option and made monkey able to use it Vince ----- * Various code cleanups * Reworked our entire certificate handling framework to use DER rather than our cert_info structures Browsing Cache ============== Running the long-internet test with disk cache on and javascript off, the disc cache ended up with: * 1 dblk 82 ish entries in there * 1 mblk * 227 m files ranging in size from just over 8k to just under 10k * 913 d files Daniel put a copy in his homedir on `ci`. Statement of work ================= If at all possible, we'd like to see some of the following addressed before the next developer weekend… Next time ========= * May 22nd to 26th (Fri through Tuesday) * Remote / video conf / IRC.