Skip to content

css4j v3.2.0

Compare
Choose a tag to compare
@carlosame carlosame released this 20 Dec 14:53
· 133 commits to master since this release
css4j-3.2.0

Notable changes:

  • New additions to the API, notably SelectorList.replace(int, Selector), the new geom package, and Visitor<T> added to carte-util.
  • DOM has quite a few traversal methods, but CSSOM just has the rule lists. New (non-standard) style sheet traversal methods have been added, based on the Visitor pattern. The parent Carte project uses them to perform SVG-related processing.
  • A specialized AttributeConditionVisitor allows modification of attribute selectors upon traversal, very useful to integrate SVG inline images in HTML.
  • :any-link was overlooked but is now supported. :link and :visited now only apply to the link-related HTML elements and anything with a xlink:href, while previously any element with an href attribute was matching.
  • Loads of improvements and fixes to the native DOM implementation. The new element-name iterator is a time saver. If you use native DOM, you are invited to upgrade.
  • In the native DOM and DOM4J, embedded style sheets are no longer used if they belong to a different namespace than the document element, preventing -for example- potential clashes with SVG styles and providing less overhead for the style computations when many SVG elements are present. Web browsers do not make this distinction about STYLE elements though, but IMHO is the right behaviour to have.
  • A security loophole was fixed in the DOM wrapper, which could allow setting an unsafe base href.
  • DOM4J module now depends on xmlpull-xpp3 1.2 artifact from https://github.com/xmlpull-xpp3/xmlpull-xpp3 instead of the old xpp3. The new artifact is not available from Maven Central -which is unlikely to make downstream users happy- but it is an optional dependency after all.
  • In the DOM4J module, Element.setAttributeNode() and setAttributeNodeNS() were not working correctly due to an upstream bug. Now css4j overrides the relevant methods.