Table of Contents
YuNetSurf: Version History
YuNetsurf v4.4.0 – 18 Sep 2025
- Support Delphi 13 Florence Win32 and Win64.
YuNetsurf v4.3.0 – 22 Nov 2023
- Support Delphi 12 Athens Win32 and Win64.
- Addd CSS support for
CSS_DISPLAY_GRID,CSS_DISPLAY_INLINE_GRID, andCSS_POSITION_STICKY.
YuNetsurf 4.2.0 – 16 Sept 2021
- Support Delphi 11 Alexandria Win32 and Win64.
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, andoutlineproperty 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:
DefaultMediaproperty is aRawByteString.Mediais acss_mediarecord.OnImportNotificationandDoImportNotification: TheMediaparameter is removed.
- TYuCssBaseSheet:
NextPendingImport: TheMediaparameter is removed.
- Native API:
css_stylesheet_next_pending_importandcss_import_notification_fn: TheMediaparameter is removed.css_select_ctx_append_sheetandcss_select_ctx_insert_sheet: TheMediaparameter is a #0 terminated string.css_select_styleandcss_select_font_faces: TheMediaparameter iscss_media_ptr, a pointer to acss_mediarecord.css_rulehas the following new fields. They replace the old bit fields. The respective bit field getter and setter functions are removed.indexitemstype_ptype
- New unit types:
UNIT_TURNUNIT_RESOLUTIONUNIT_DPIUNIT_DPCMUNIT_DPPX
YuNetsurf 3.4.0 – 16 Apr 2019
- HTML parsing: Add detection of space only separated charsets to
TYuHtmlParserdescendents. Declarations like<meta content=“text/html charset=utf-8”>are generated by some programs like Apple Mail and recognized by Chrome. TYuCssimprovements:- Add
box-sizingproperty support. - Add support for flexbox properties:
align-contentalign-itemsalign-selfflexflex-basisflex-directionflex-flowflex-growflex-shrinkflex-wrapjustify-contentorder
- 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.OnNodePresentationalHintTYuLibXml2Css.OnNodePresentationalHint
Because of this incompatible API change, the YuNetSurf major version incremented to 3.
New Functions:
- Add
lwc_string_tolowerAPI.
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
TYuCssandTYuCssSheetclasses:- @import rules can be loaded recursively via
AddImport. TYuCssand descendands have all events of all their Sheets. Assign once, use everywhere.TYuCsshas sheet propertiy defaults. Sheets are initialized with these values and can be modified:DefaultCharSet,DefaultLanguageLevel,DefaultMedia,DefaultOrigin,DefaultQuirksAllowed.TYuCssowns allSheets, including imported sheets to other sheets.- New
TYuCss.Sheetscollection to organize sheets. The old TYuCss.AppendSheet() is no longer needed and removed.
- New
TYuCss.DoComputeFontSizevirtual method as common CSScompute_font_sizecallback for all descendants. This fixes a bug whereTYuCSSwas not calculating the font size when composing computed styles. - Add absolutification for column-rule-width, column-width, and column-gap.
- New named color “rebeccapurple”. https://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_doneis 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
TYuSimpleTreeWalkerclass, with support forWhatToShowandFilter. TYuSimpleNodeIteratorsupportsWhatToShow,Filter, and PreviousNode.- New
TYuSimpleNode.Containsfunction. - New
TYuSimpleDocument.DocumentElementproperty andTYuSimpleDocument.GetElementByIdmethod. - New
TYuCss.Optionsproperty:coComposeStylesreplaces theComposeargument ofSelectStylemethods.coInlineStylescontrols 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.

