Uploaded image for project: 'XWiki Platform'
  1. XWiki Platform
  2. XWIKI-14645

Upgrade to CSS4J 0.35.1

    XMLWordPrintable

    Details

    • Type: Task
    • Status: Closed
    • Priority: Major
    • Resolution: Duplicate
    • Affects Version/s: 9.7
    • Fix Version/s: 9.8-rc-1
    • Component/s: Dependency Upgrades
    • Labels:
      None
    • Difficulty:
      Unknown
    • Documentation:
      N/A
    • Documentation in Release Notes:
      N/A
    • Similar issues:

      Description

      Currently using version 0.31.

      New:

      Version 0.35.1
      --------------
       * Core:
      - BUG: Fix wrong match of the :link pseudo-class. Reported by V. Massol.
      - Use plain styles for override and inline styles.
      - Better spec conformance for DOMTokenList implementations.
      - Remove OriginPolicy implementation from core, and create new css4j-agent 
        module.
      - Move doc.structure package to staging tree.
      - Improvements to TokenProducer.
      - Move css unescape method to new class ParseHelper.
      - Move parsing error codes to ParseHelper.
      - Selectors: implementations of SAC's AttributeCondition.getSpecified() cannot
        be trusted.
      - Small correction to AbstractUserAgent.java.
      - Try to increase feature coverage in tests.
      
      - A few javadoc comment changes.
      
       * Dom4j module:
      - Use plain styles instead of computed styles for override and inline styles.
      - Try to increase feature coverage in tests.
      
      Version 0.35
      ------------
       * Core:
      - Support for level 4 media queries, backed by CSSCanvas implementations. If
        only plain media types are found, the old DOMMediaList-based infrastructure is
        used instead.
      - Remove method parseMediaQueryList from CSSCanvas and add
        getFeatureValue(String).
      - Add method getTargetMedium() to CSSDocument.
      - Add method CSSDocument.hasStyleIssues().
      - Add method isKnownProperty(String) to PropertyDatabase.
      - Change DOMMediaList.create to DOMMediaList.createMediaList.
      - calc() values: report a DIMENSION primitive type if it has a sized-unit 
        operand, NUMBER otherwise.
      - Support for the font-size-adjust, font-stretch and font-synthesis properties 
        (CSS Fonts Module Level 3).
      - Add meta-information about properties font-min-size and font-max-size.
      - Do not stop parsing if a valid SAC value turns out to be a wrong css value.
      - Avoid bogus "unknown identifier" errors when processing the 'background' and 
        'border-image' shorthands.
      - Fixes for the 'background' shorthand parsing: the specification was misread 
        regarding when to invalidate layers. Additionally, some background-repeat
        values could be lost, and unitless zero-values were not recognized as
        belonging to background-position or background-size.
      - Fix a possible problem setting border-image-outset when it is set to zero with 
        the border-image shorthand.
      - Improved handling of wrong color values (e.g. 'rgb(12, 45)').
      - Give currentColor as the initial value for all properties with a name that 
        ends with "-color".
      - Improvements to error handlers.
      - More efficient implementation of AbstractCSSStyleSheet.hasRuleErrors()
      - PropertyDatabase.isInherited(String) is now backed by a set instead of a list.
      - Remove unused CSSPropertyName infrastructure.
      
       * Dom4j module:
      - Adapt to changes in core.
      
      Version 0.32.1
      --------------
       * Core:
      - DOM implementation: change attribute's getLocalName() behavior to match 
        element's.
      - DOM implementation: document current getLocalName() behavior and other 
        differences with the spec.
      - DOM implementation: small conformance changes to Node.getTextContent() 
        implementation.
      - Fixes for nth-* pseudo-class selectors.
      - More conformant handling of '[att|=val]' attribute selectors.
      - Add support for the disabled, enabled, read-write, read-only, matches, has,
        not, placeholder-shown, default, checked and indeterminate pseudo-classes.
      - Attempt to support namespaces in selectors (untested as not being supported by
        SAC parsers).
      - Support more SAC conditional selectors, essentially unused or unsupported by 
        SAC parsers.
      - SelectorMatcher: replace hasStatePseudoClasses static method with 
        findStatePseudoClasses.
      - Remove several useless 'XXX' task markers.
      
       * Dom4j module:
      - Add a createElement(String) convenience override to XHTMLDocumentFactory.
      - Fixes for nth-* pseudo-class selectors.
      - Support the selector changes in core.
      
       * Java2d module:
      - Java2DXHTMLElementReplacer: use getTagName() instead of getLocalName() to
        replace elements.
      
       * Visual module:
      - LogErrorHandler: use getNodeName() instead of getLocalName() when logging.
      
      Version 0.33
      ------------
       * Core:
      - ContentModel: throw IllegalArgumentException instead of NullPointerException 
        for unknown declarations.
      - Add the getId() method to CSSElement.
      - Now getComputedStyle returns a ComputedCSSStyle instead of a
        CSSComputedProperties, enabling access to methods like 'diff' without a class
        cast.
      - DOM implementation: add methods getClassList and getElementsByClassName to 
        HTMLElement, and the latter to HTMLDocument.
      - DOM implementation: createDocument now returns HTMLDocument instead of 
        CSSDocument.
      - DOM implementation: report the availability of new link or style elements 
        when added to an element.
      - DOM implementation: set an empty user agent style sheet instead of just 
        loading the HTML5 one, if the default has not been loaded explicitly.
      - Avoid an index out of bounds exception when retrieving items from a value 
        list.
      - Fixed an index out of bounds exception when parsing a multiple transition 
        shorthand property.
      - Avoid a charset error when retrieving an URL.
      - Catch Batik's ParseException when parsing sheets, by catching any
        RuntimeException.
      - Support rect() value syntax without commas.
      - Check for the form owner when matching the 'default' pseudo-class.
      - Safer handling of the has() pseudo-class.
      - Slightly more efficient handling of pseudo-classes in SelectorMatcher.
      - Remove unsupported code from SelectorMatcher.
      - More meaningful error logging when parsing remote style sheets.
      - Add methods logSacErrors() and logSacWarnings() to DefaultSheetErrorHandler.
      - Set a default connection timeout of 100 seconds to AbstractUserAgent.
      - DOMCSSStyleSheetFactory's agent now accepts a DocumentBuilder to be used in 
        the readURL(URL) method.
      - Alphabetically reorder the unit tests in AllTests.
      
      
       * Dom4j module:
      - Adapt to core changes.
      - Order tests in AllTestsDOM4J.
      
      
      Version 0.34
      ------------
       * Core:
      - Get rid of ExtendedCSSFontFaceRule interface.
      - Get rid of getOwnerXPath()/getParentXPath() as they were not being used for 
        anything.
      - Remove DocumentCSSStyleSheet.getComputedStyle(CSSElement, String, 
        List<String>), and use instead CSSCanvas.isActivePseudoClass(CSSElement,
        String) to find active state pseudo-classes.
      - DOM implementation: implement ParentNode's attribute getters in HTMLElement, 
        HTMLDocument and DocumentFragment: getChildren(), getFirstElementChild(), 
        getLastElementChild() and getChildElementCount().
      - DOM implementation: add querySelectorAll(String) to ParentNode.
      - Pseudo-element support for both Batik's and Steadystate cssparser SAC 
        implementations.
      - Add matches(String), matches(SelectorList) and getSelectorMatcher() (which 
        returns the now-interface SelectorMatcher) to CSSElement.
      - Provide getCssText() for font-face rules with 'format' hint.
      - Support for subsequent sibling selectors (SS parser only).
      - Initial infrastructure for @supports rules.
      - Temptative support for calc() values.
      - Instantiate SAC parser through a java.security.AccessController, and throw a 
        DOMException.INVALID_ACCESS_ERR instead of a NOT_SUPPORTED_ERR if not possible.
      - String values: process an escaped code point according to 
        https://drafts.csswg.org/css-syntax/#consume-escaped-code-point
      - Add inheritance metadata for text-emphasis-* and other text-related 
        properties.
      - Fix a NPE introduced in 0.33 when parsing the 'transition' shorthand. The fix
        shipped in that version was applied to the wrong if() block.
      - Use steadystate SAC parser to run a number of tests.
      - Give the bad identifier when throwing a DOMException for an invalid 
        identifier.
      - Updated javadoc package overview.
      
       * Dom4j module:
      - Conform to modifications in core.
      - Get rid of ExtendedCSSFontFaceRule interface in dom4j backend.
      - Get rid of getOwnerXPath()/getParentXPath() in dom4j backend.
      - Updated javadoc package overview.
      
       * Java2d module:
      - Get rid of ExtendedCSSFontFaceRule interface in this backend.
      
       * Visual module:
      - Get rid of ExtendedCSSFontFaceRule interface in this backend.
      
      
      Version 0.32
      ------------
       * Core:
      - LENIENT mode was not working.
      - DOM implementation: html-style namespace support.
      - DOM implementation: several spec compliance corrections.
      - DOM implementation: fix for compareDocumentPosition().
      - DOM implementation: allow appending a <link> element to an element that is 
        not <head> nor <noscript>, if an allowed attribute is present.
      - DOM implementation: allow <style> elements in flow content, following W3C's 
        change https://github.com/w3c/html/pull/843
      - DOM implementation: add the getStartTag() convenience method to HTMLElement.
      - More reliable getBaseURL() computation in StylableDocumentWrapper and DOM 
        implementation.
      - DOM wrapper: make <link> element more tolerant to lack of 'type' attribute, 
        and ignore link if alternate stylesheet has no title.
      - Remove an unneeded setOwnerNode() in StylableDocumentWrapper.
      - Remove 1e-4 alpha channel tolerance in RGBColor implementation's equals 
        method.
      - Add the BaseCSSStyleDeclaration.diff(BaseCSSStyleDeclaration) method.
      - Fix a potential NPE in style sheets when css parsing problems are found.
      - Avoid a possible NPE when parsing the 'background' shorthand.
      - Avoid a circular dependency in the equals() method for rect values.
      - CSS functions: support the old argument format without commas.
      - Fix a potential NPE when handling direct adjacent selectors.
      - Avoid a class cast exception when explicitly inheriting up to a system-default
        color value.
      - Fix a few unescape text errors when setting string property values.
      - Catch (unlikely) runtime exceptions produced when unescaping text in a css
        string value.
      - Import rules: behave more as described by the draft spec if the import fails. 
        See https://drafts.csswg.org/cssom/#the-cssimportrule-interface
      - Elements implementing the LinkStyle interface: getSheet() returns null only 
        if there is no associated CSS style sheet.
      - Better implementation for SelectorMatcher.isFirstChild().
      - Remove deprecated method loadXHTMLDefaultSheet() from style sheet factories.
      - StyleSheetList implementation: add a remove(StyleSheet) method needed by the 
        DOM4J backend.
      - Add the reloadStyleState() method to CSSCanvas.
      - Support for these pseudo-classes: last-child, only-child, first-of-type,
        last-of-type, only-of-type, nth-child, nth-last-child, nth-of-type,
        nth-last-of-type, link, visited, target, root, empty and blank. Currently
        only the Steadystate SAC parser supports the functional syntax of the nth-*
        pseudo-classes.
      - Formal support for state pseudo-classes like 'hover' through the new
        getComputedStyle(CSSElement, String, List<String>) method in interface
        DocumentCSSStyleSheet.
      - Reduced the visibility of some SelectorMatcher methods.
      - Code formatting and other minor changes.
      - Add a comment to sample XHTML used for testing.
      
       * Dom4j module:
      - LENIENT mode was not working, and general cleanup.
      - Make <link> element more tolerant to lack of 'type' attribute, and ignore 
        link if alternate stylesheet has no title.
      - Account for <style> elements descending from non-<head> elements, as per 
        W3C's change https://github.com/w3c/html/pull/843
      - Elements implementing the LinkStyle interface: getSheet() returns null only 
        if there is no associated CSS style sheet.
      - DOM4J user agent: do not overwrite base url if set in the document.
      - Fix an index out of bounds exception waiting to happen when handling direct 
        adjacent selectors.
      - Fix a selector NPE caused by getParent() returning null for root element.
      - Fix a style sheet accounting bug triggered by changing the attributes of a 
        <style> element.
      - Compress white spaces in DOM4JCSSStyleDeclaration.getText() and remove a TODO 
        task mark.
      - Reduced the visibility of some DOM4JSelectorMatcher methods.
      - Support new pseudo-classes in core.
      - Adapt to other changes in core.
      - Code formatting.
      
       * Java2d module:
      - Add a prototype for Java2DUserAgent class.
      

        Attachments

          Activity

            People

            Assignee:
            vmassol Vincent Massol
            Reporter:
            vmassol Vincent Massol
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved: