Delphi Inspiration

Components and Applications

User Tools

Site Tools


products:netsurf:history

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

products:netsurf:history [2020/04/02 11:21]
products:netsurf:history [2020/06/05 22:14] (current)
Line 1: Line 1:
 +====== YuNetSurf: Version History ======
 +{{page>​header}}
 +=====YuNetsurf 4.1.0 – 5 Jun 2020=====
 +
 +  * Support Delphi 10.4 Sydney Win32 and Win64.
 +
 +=====YuNetsurf 4.0.1 – 2 Apr 2020=====
 +
 +  * Fix the CSS parser to cope with situations where a block ends with a selector which has no ruleset.
 +  * Improve error checks for the CSS ''​flex-flow'',​ ''​list-style'',​ and ''​outline''​ property shorthands.
 +  * Fix handling invalid types when calculating CSS border width.
 +
 +=====YuNetsurf 4.0.0 – 7 Nov 2019=====
 +
 +**Support for CSS media queries**. This is an incompatibility change.
 +
 +  * **TYuCss:**
 +    * ''​DefaultMedia''​ property is a ''​RawByteString''​.
 +    * ''​Media''​ is a ''​css_media''​ record.
 +    * ''​OnImportNotification''​ and ''​DoImportNotification'':​ The ''​Media''​ parameter is removed.
 +  * **TYuCssBaseSheet:​**
 +    * ''​NextPendingImport'':​ The ''​Media''​ parameter is removed.
 +  * **Native API:**
 +    * ''​css_stylesheet_next_pending_import''​ and ''​css_import_notification_fn'':​ The ''​Media''​ parameter is removed.
 +    * ''​css_select_ctx_append_sheet''​ and ''​css_select_ctx_insert_sheet'':​ The ''​Media''​ parameter is a #0 terminated string.
 +    * ''​css_select_style''​ and ''​css_select_font_faces'':​ The ''​Media''​ parameter is ''​css_media_ptr'',​ a pointer to a ''​css_media''​ record.
 +    * ''​css_rule''​ has the following new fields. They replace the old bit fields. The respective bit field getter and setter functions are removed.
 +      * ''​index''​
 +      * ''​items''​
 +      * ''​type_''​
 +      * ''​ptype''​
 +    * New unit types:
 +      * ''​UNIT_TURN''​
 +      * ''​UNIT_RESOLUTION''​
 +      * ''​UNIT_DPI''​
 +      * ''​UNIT_DPCM''​
 +      * ''​UNIT_DPPX''​
 +
 +=====YuNetsurf 3.4.0 – 16 Apr 2019=====
 +
 +  * HTML parsing: Add detection of space only separated charsets to ''​TYuHtmlParser''​ descendents. Declarations like ''​%%<​%%meta content="​text/​html charset=utf-8">''​ are generated by some programs like Apple Mail and recognized by Chrome.
 +  * ''​TYuCss''​ improvements:​
 +    * Add ''​box-sizing''​ property support.
 +    * Add support for flexbox properties:
 +      * ''​align-content''​
 +      * ''​align-items''​
 +      * ''​align-self''​
 +      * ''​flex''​
 +      * ''​flex-basis''​
 +      * ''​flex-direction''​
 +      * ''​flex-flow''​
 +      * ''​flex-grow''​
 +      * ''​flex-shrink''​
 +      * ''​flex-wrap''​
 +      * ''​justify-content''​
 +      * ''​order''​
 +    * Add support for new length units: ''​cap'',​ ''​ch'',​ ''​ic'',​ ''​rem'',​ ''​lh'',​ ''​rlh'',​ ''​vh'',​ ''​vw'',​ ''​vi'',​ ''​vb'',​ ''​vmin'',​ ''​vmax'',​ ''​q''​.
 +    * Computed styles can now be shared between elements, so only unique computed styles reside in memory.
 +    * Where possible, bypass CSS selection and simply take a reference to another element in the DOM's style, if certain that it will be the same.
 +    * Fix reading beyond allocated memory when removing a sheet from selection context.
 +  * Improve performance of case insensitive string comparisons.
 +
 +=====YuNetsurf 3.3.0 – 24 Dec 2018=====
 +
 +  * Support Delphi 10.3 Rio Win32 and Win64.
 +
 +=====YuNetsurf 3.2.0 – 3 Apr 2017=====
 +
 +  * Support Delphi 10.2 Tokyo Win32 and Win64.
 +
 +=====YuNetsurf 3.1.0 – 7 May 2016=====
 +
 +  * Support Delphi 10.1 Berlin Win32 and Win64.
 +
 +=====YuNetsurf 3.0.0 – 25 Mar 2016=====
 +
 +** Incompatibility Change: **
 +
 +Optimize the way to handle CSS presentational hints: Previously, the CSS selection engine iterated over all properties not either in a UA stylesheet or a user stylesheet with !important set. It asked the client if there were any presentational hints for that node, once for each property. This triggered up to N_PROPERTIES * N_NODES calls to the client.
 +
 +The new API asks the client to supply a list of all the presentational hints that apply to node, which is 0 for most nodes. This triggers at most N_NODES calls to the client. ''​css_hint''​ has been changed to include the property which the hint applies to.
 +
 +Wrapper classes have been adjusted as well:
 +
 +  * ''​TYuSimpleCss.OnNodePresentationalHint''​
 +  * ''​TYuLibXml2Css.OnNodePresentationalHint''​
 +
 +Because of this incompatible API change, the YuNetSurf major version incremented to 3.
 +
 +** New Functions: **
 +
 +  * Add ''​lwc_string_tolower''​ API.
 +
 +=====YuNetsurf 2.0.2 – 15 Sep 2015=====
 +
 +  * Support Delphi 10 Seattle Win32 and Win64.
 +
 +  * Minor fixes.
 +
 +=====YuNetsurf 2.0.1 – 25 Apr 2015=====
 +
 +  * Add support for Delphi XE8 Win32 and Win64.
 +
 +=====YuNetsurf 2.0.0 – 26 Feb 2015=====
 +
 +  * Enhance the ''​TYuCss''​ and ''​TYuCssSheet''​ classes:
 +    * @import rules can be loaded recursively via ''​AddImport''​.
 +    * ''​TYuCss''​ and descendands have all events of all their Sheets. Assign once, use everywhere.
 +    * ''​TYuCss''​ has sheet propertiy defaults. Sheets are initialized with these values and can be modified: ''​DefaultCharSet'',​ ''​DefaultLanguageLevel'',​ ''​DefaultMedia'',​ ''​DefaultOrigin'',​ ''​DefaultQuirksAllowed''​.
 +    * ''​TYuCss''​ owns all ''​Sheets'',​ including imported sheets to other sheets.
 +    * New ''​TYuCss.Sheets''​ collection to organize sheets. The old TYuCss.AppendSheet() is no longer needed and removed.
 +  * New ''​TYuCss.DoComputeFontSize''​ virtual method as common CSS ''​compute_font_size''​ callback for all descendants. This fixes a bug where ''​TYuCSS''​ was not calculating the font size when composing computed styles.
 +  * Add absolutification for column-rule-width,​ column-width,​ and column-gap.
 +  * New named color "​rebeccapurple"​. http:​%%//​%%dev.w3.org/​csswg/​css-color/#​valdef-color-rebeccapurple
 +  * New native API functions: ''​css_font_face_count_srcs'',​ ''​css_font_face_get_font_family'',​ ''​css_font_face_src_get_location'',​ ''​css_font_face_get_src''​.
 +  * Fix memory leak if ''​DataDone''​ / ''​css_stylesheet_data_done''​ is omitted.
 +
 +Unfortunately,​ the above changes were possible only by breaking backwards compatibility. Adjustments to existing code might be necessary, hence the major version increase. The demo projects have been adjusted for reference.
 +
 +=====YuNetsurf 1.3.0 – 18 Dec 2014=====
 +
 +  * Add CSS3 column layout properties:
 +    * column-count
 +    * column-fill
 +    * column-gap
 +    * column-rule-color
 +    * column-rule-style
 +    * column-rule-width
 +    * column-span
 +    * column-width
 +  * Minor bug fixes.
 +
 +=====YuNetsurf 1.2.0 – 3 Oct 2014=====
 +
 +  * Support Delphi XE7 Win32 and Win64.
 +
 +=====YuNetsurf 1.1.0 – 31 Jul 2014=====
 +
 +  * New demo project YuNetSurf_Extract_Content.dpr.
 +  * New ''​TYuSimpleTreeWalker''​ class, with support for ''​WhatToShow''​ and ''​Filter''​.
 +  * ''​TYuSimpleNodeIterator''​ supports ''​WhatToShow'',​ ''​Filter'',​ and PreviousNode.
 +  * New ''​TYuSimpleNode.Contains''​ function.
 +  * New ''​TYuSimpleDocument.DocumentElement''​ property and ''​TYuSimpleDocument.GetElementById''​ method.
 +  * New ''​TYuCss.Options''​ property:
 +    * ''​coComposeStyles''​ replaces the ''​Compose''​ argument of ''​SelectStyle''​ methods.
 +    * ''​coInlineStyles''​ controls weather to apply inline styles.
 +  * Add and improve documentation.
 +  * CSS parser: Fix advancing when play-during rule has !important set.
 +  * Correct some exotic type definitions and function names.
 +
 +=====YuNetsurf 1.0.0 – 17 Jul 2014=====
 +
 +  * Initial public release.
 +