Details
-
Task
-
Resolution: Fixed
-
Major
-
11.5
-
None
Description
We're currently using CSS4J 0.43.1.
Version 0.43.2 -------------- * Core: - NSAC: add SAC_ELEMENT_REFERENCE to LexicalUni2. - NSAC: LexicalUnit implementations must implement LexicalUnit2's getCssText(). For identifiers and colors, the serialization should be close to how the value was specified. - NSAC impl.: bug: the parser was rejecting legitimate escaped characters [regression introduced in 0.42.4]. - NSAC impl.: more efficient handling of quoted strings and character escapes. - NSAC impl.: implement SAC_ELEMENT_REFERENCE. - NSAC impl.: be less permissive about accepting at-rules after an unexpected character. - NSAC impl.: not all the required whitespaces were being inserted into rules processed through 'ignorableAtRule' (bug). - NSAC impl.: if IEVALUES flag is set, try to identify escaped value hacks that have a valid CSS syntax, like in font-family declarations targeting IE. - NSAC impl.: improve the parsing of @font-feature-values and @keyframes rules when escaped identifiers or strings are used. - NSAC impl.: for identifiers and hex colors, LexicalUnit.toString() attempts to give a representation closer to what was parsed. - TokenProducer: fix a bug when the last character was a possible word character. - TokenProducer: fix bug when the last character was part of the beginning of a comment. - TokenProducer: cleanup/optimization in a hot code path. - DefaultEntityResolver: allow subclasses to override the opening of the URLConnection to the DTD source. Create a TestEntityResolver. - Add a second constructor to DefaultEntityResolver. Default constructor now only allows connections to W3C. - DefaultEntityResolver: load XHTML 1.1 modules and other DTDs from classpath. - DefaultEntityResolver: if the resource is not known to the resolver and the protocol is not http/https, or the whitelist is enabled and the host is not whitelisted, throw an exception instead of silently returning null. - DOM impl.: fix a toString() bug in DocumentTypeImpl when only a system ID is present. - DOM impl.: use safer XML parser defaults in XMLDocumentBuilder. - DOM wrapper: avoid unnecessary argument in internal constructor. - CSSOM: do not use CSSStringValue as the base class for identifiers and attributes. - CSSOM: use the new LexicalUnit2.getCssText() method to set identifier cssText if the parser is NSAC. - CSSOM: add a shorthand serialization method to StyleFormattingContext. - CSSOM: pass IE hacks in MediaQueryFactory, preserving the serialization. - CSSOM: use the new escape() methods in ParseHelper. - CSSOM: introduce new configuration flags for sheet factories, with three possible behaviours for CSS string values: preserve -if it is efficient- the quote character used (default), or use -if efficient- a specific character (double or single quotes). - CSSOM: add CSS_ELEMENT_REFERENCE to CSSPrimitiveValue2, and implement it. - CSSOM: calc expressions inside functions were omitting the 'calc' name (bug). - CSSOM: support setCssText() in custom property ('var()') and 'env()' values. - CSSOM: support custom properties ('variables') in border-radius shorthands. - CSSOM: do a sanity check for values before serializing the generic (outline, etc) shorthands in computed styles. - CSSOM: more accurate processing of color values in the shorthands serialized for minified computed styles (avoid building broken shorthands from bad values). - CSSOM: add IE hack detection logic to minified serialization of computed values. - CSSOM: add a couple of serialization methods to the default StyleDeclarationErrorHandler. - Assorted new tests and small test cleanup (like a couple of tests that weren't testing what was intended, broken DTDs or the inefficient use of a factory constructor). - Changes to CSSOMBridge to enable testing from other modules (required for JPMS). - Add automatic module name to Maven POM, and upgrade to latest Maven plugins. * Dom4j module: - Prepare project for Java modularization. - Add automatic module name to Maven POM. - Adapt unit tests to string value behaviour changes in core. - Reduce the visibility of implementation inner class XHTMLDocumentFactory.DOM4JCSSStyleSheetFactory to package. - Entity tests: workaround for dom4j 2.1.1 - Maven POM: depend on Jaxen 1.2.0. * Agent module: - Move the entire module to the new agent.net subpackage, to make it compatible with Java modularization. - Add automatic module name to Maven POM. * AWT module: - Add automatic module name to Maven POM.
Version 0.43.3 -------------- * Core: - NSAC: add hasArgument() and hasKeyword() to PositionalCondition2. - NSAC impl.: implement new equals() and serializations using the new hasKeyword() and hasArgument() NSAC methods. - NSAC impl.: fix a bug parsing escaped values in attribute selectors - NSAC impl.: fix a bug parsing escaped CSS reserved characters in argument selectors. - NSAC impl.: fix a bug setting flags in attribute selectors that are part of combinator selectors. - NSAC impl.: improve error detection in functional pseudo-classes like ':lang'. - NSAC impl.: raise an error when the universal selector bears an unknown namespace prefix. - DOM impl.: introduce an ExtendedNodeList interface, featuring a 'contains(Node)' method. - DOM impl.: unify ElementList and DOMElementList, removing the latter. - DOM impl.: migrate to a faster implementation of node trees that does not rely on Java collections. - DOM impl.: add several iterators to ParentNode (available in elements etc.). - DOM impl.: Add NodeIterator and TreeWalker creation to DOMDocument. - DOM impl.: getElementsBy(Tag|Class)Name live collections were not always updated when they should (bug). - DOM impl.: DOMDocument: set the parent node for DocumentType in document's constructor instead of XMLDocumentBuilder (bug). - DOM impl.: Document.insertBefore was not properly checking for duplicate document elements (bug). - DOM impl.: Document.getFirstElementChild() and getLastElementChild() were returning the document element's element child instead (bug). - DOM impl.: Document.getChildren() was also giving the children of the document element (bug). - DOM impl.: fix bugs when adding and inserting a document fragment, or replacing a node with it. - DOM impl.: fix a bug cloning DocumentFragment nodes. - DOM impl.: fix a bug cloning elements. - DOM impl.: the substringData and replaceData methods of Text, character data and comment nodes were not behaving as per the specification when the sum of the 'offset' and 'count' arguments was larger than the data (bug). - DOM impl.: correction to a few DOMExceptions that are thrown when creating Elements and Processing Instructions with wrong names in DOMDocument. - DOM impl.: getLastStyleSheetSet() was probably not returning the expected values. - DOM impl.: fix a potential XML injection in createProcessingInstruction. - DOM impl.: xmlns attributes now always return the http://www.w3.org/2000/xmlns/ namespace uri, but can be created with a null namespace without throwing an exception. - DOM impl.: implement NonDocumentTypeChildNode. - DOM impl.: small internal refactor to querySelectorAll. - DOM impl.: HTMLDocument: for consistency with the other setIdAttribute methods, ignore attributes from non-HTML namespaces in setIdAttributeNode. - DOM impl.: fix a bug where a Text node could not be added to a DocumentFragment. - DOM impl.: in isEqualNode(), normalize the nodes before comparing lengths, not after (bug). - DOM impl.: when a node has no defined value, setting it should have no effect. - DOM impl.: not all the required characters were being expanded as entities when serializing attributes (bug). - DOM impl.: ID attributes now have an 'ID' typeName as returned by getSchemaTypeInfo(). - DOM impl.: recognize 'xml' as a reserved namespace prefix. - DOM impl.: reject attempts to insert unsafe values into CDATA-sections and processing instructions. - DOM impl.: NonDocumentTypeChildNode was being implemented by some nodes that should not. - DOM impl.: do lazy instantiation of user data objects. - DOM impl.: method reordering in AbstractDOMNode. - DOM impl.: XMLDocumentBuilder: do not enforce a no-DTD configuration when there is no EntityResolver set. With the default configuration for the parser factory, this means that parsing would fail instead of silently proceeding. - DOM impl.: XMLDocumentBuilder: in the default constructor, set 'http://xml.org/sax/features/namespace-prefixes' and 'http://xml.org/sax/features/xmlns-uris' to true. - DOM impl.: add setIgnoreElementContentWhitespace(boolean) to XMLDocumentBuilder. - DOM impl.: clean up verification checks on adding/inserting/replacing a child node. - DOM impl.: DocumentType: do not support collections of Entities nor Notations. - DOM impl.: implement CSSNode in all nodes including DocumentType. - DOM wrapper: allow setting the document's URI. - DOM wrapper: throw NO_MODIFICATION_ALLOWED_ERR exception instead of NOT_SUPPORTED_ERR when setting node values and related methods. - DOM wrapper: getLastStyleSheetSet() was probably not returning the expected values. - DOM wrapper: ignore the original document's baseURI unless we cannot do better. - CSSOM: implement serializations of positional selectors using the new NSAC PositionalCondition2's hasKeyword() and hasArgument() methods. - CSSOM: serialize the ':lang()' pseudo-class according to the string-quote factory flags. - CSSOM: serialize attribute value selectors using single or double quotes according to the flag specified to the factory. - CSSOM: fix a bug when restoring a previous shorthand-specified value after removing a property. - CSSOM: fix bugs building a referrer to use with loadStyleSheet(). - Tests: remote test for DefaultEntityResolver was outdated. - Tests: add Daniel Eden's animate.css and Sergey Pimenov's Metro UI CSS to the contrib tests (noticeable increase in download size!). - Tests: clean-up of 'throws' declarations. * Dom4j module: - Element.setIdAttributeNode(): if an ID attribute which is not "id" (case insensitive) is being set, fall back to default upstream behaviour (which currently throws an exception). - getLastStyleSheetSet() was probably not returning the expected values. - More appropriate names for two private methods. - Tests: clean-up 'throws' declarations. - Tests: adapt to changes in core. * Agent module: - DefaultUserAgent: ignore element content whitespace. * Distribution: - Small formatting correction in the output of 'changes.sh' (which generates an initial draft for CHANGES.txt).
Version 0.43.4 -------------- * Core: - [JPMS] produce multi-release jar targeting JDK1.7 but module-info compiled for JDK11. - API CHANGE: modify SimpleWriter to serialize CharSequences instead of Strings. - NSAC impl.: fix a bug when parsing negative floating point numbers inside functions, if the decimal point immediately followed the minus sign ("-."). - NSAC impl.: support InputStreams in InputSources. - NSAC impl.: use CharSequence references in 'quoted' events and a few more places. - NSAC impl.: use a BufferedInputStream when reading a style sheet from URL. - NSAC impl.: more efficient use of the IEVALUES flag. - Use AgentUtil.findCharset() to find charset in Content-Type header, in CSSParser and AbstractUserAgent. - Make ParseHelper.parseIdent stricter, and introduce a DOMCharacterException. - TokenProducer: fix a comment processing bug with potential high impact on non-CSS use cases. - TokenProducer: small optimization (change the 'word' event to CharSequence). - Move TokenProducer to its own package. - Introduce an utility method to transform InputStreams into Readers. - DOM: remove usage of deprecated W3C interfaces: DOMStringList and DOMConfiguration. - DOM: make DOMTokenList iterable, and add containsAll(DOMTokenList). - DOM impl.: simplify and deprecate DOM methods that were deprecated by WHATWG/W3C. - DOM impl.: DOMTokenListImpl fix: reset the contents before parsing on setValue(String). - DOM impl.: add prependChild(Node) to ParentNode. The standard method is 'prepend', but 'prependChild' is preferred for consistency with 'appendChild'. - DOM impl.: add contains(Node) to AbstractDOMNode. - DOM impl.: make node lists iterable. - DOM impl.: introduce interface DOMNode, and use it instead of CSSNode. - DOM impl.: add the NodeListIterator convenience interface. - DOM impl.: in DOMTokenList implementations, to add() an item that they already have should have no effect (compliance bug). - DOM impl.: CSSDOMImplementation now throws an exception if a DocumentType already in use is supplied to createDocument(). - DOM impl.: attributes weren't always being converted to lower case when they should. - DOM impl.: XMLDocumentBuilder: set the 'specified' bit from SAX Attributes2 interface. - DOM impl.: internal refactor to allow iterators, getElementsByTagName, etc. in ParentNode. - DOM impl.: clean up the inheritance from NonDocumentTypeChildNode. - DOM impl.: Document.cloneNode(boolean) was not functional. - DOM impl.: if a STYLE element text content is set to the empty string, behave as documented and return an empty sheet with getSheet() instead of null. - Dom impl.: getElementsByClassName() wasn't updating lists owned by non-element nodes (bug). - DOM impl.: Attr.getValue() could return null, now it would be the empty string. - DOM impl.: update embedded style sheets instantaneously after DOM changes, no need to manually call getSheet(). - DOM impl.: before setting the title of a style sheet from an attribute value, trim() it. - DOM impl.: do not do a node normalization in isEqualNode(). That should be done by caller. - DOM impl.: do not print newlines after printing nodes in toString(), and print element content whitespace instead. - DOM impl.: introduce class DOMWriter to pretty-print HTML and XML. - DOM impl.: handle Node.insertBefore and replaceChild when the new node and the ref/old node are the same. - DOM impl.: return a DocumentType instead of Node when calling cloneNode() on a DocumentType. - DOM impl.: part of package-info was outdated and inaccurate. - DOM wrapper: if the contents of a text node with STYLE parent are modified, reparse the sheet. - CSSOM: introduce new interface ExtendedCSSStyleRule. - CSSOM: add getRulesForProperty() to ExtendedCSSStyleSheet. - CSSOM: make AbstractStyleSheet and AbstractCSSValue cloneable. - CSSOM: support fallback values in custom properties. - CSSOM: safer quoting of URLs when serializing URI values. - CSSOM: change the visibility of EmptyDeviceFactory from public to private. - CSSOM: move DummyDeviceFactory to the test tree. - CSSOM: prevent a corner-case bug when restoring a property value from a shorthand, after a property removal (adjustment to the fix in 0.43.3). - CSSOM: use the StyleFormattingContext infrastructure for BaseCSSStyleSheet.toStyleString(). - CSSOM: omit the 0 when minifying floating point numbers with absolute value less than one but greater than zero. - CSSOM: avoid reporting errors for IE compatibility values (if the relevant flags are set) found in margin, padding and border-radius shorthands. - CSSOM: recognize custom properties as colors when serializing minified 'background' shorthands. - CSSOM: use ServiceLoader in SACParserFactory.createSACParser() [experimental]. - CSSOM: remove support to match/serialize several selectors that nobody implements. - CSSOM: RGBAColor.getAlpha() now returns an ExtendedCSSPrimitiveValue. - Test for unassigned code point in CSSIdentifierValueTest was failing with JDK 11. - DTD: add the EntityFinder class, which allows to fill a map of characters (codepoints) to entities. - DTD: refactor ContentModel, including the use of a new parser. - DTD: handle the case of 'no PublicId but has SystemId' in DocumentTypeDeclaration.toString(). - DefaultEntityResolver: make a last-resort call to getExternalSubset in the four-argument resolveEntity. - Agent: DefaultCookie implements Cloneable. - Miscellaneous javadoc improvements. * Dom4j module: - [JPMS] produce multi-release jar targeting JDK1.7 but module-info compiled for JDK11. - If the text child of a STYLE element is removed, reset the style sheet immediately (no need to call getSheet() again). - Avoid NPE when calling sheet.getHref() if no base URL is set. - If attributeValue("title") of a STYLE or LINK element is the empty string, set it as null in the associated sheet. - DOM4J user agent: obtain Reader through AgentUtil.inputStreamToReader(). * Agent module: - [JPMS] produce multi-release jar targeting JDK1.7 but module-info compiled for JDK11. - DefaultUserAgent: obtain Reader through AgentUtil.inputStreamToReader(). * AWT module: - [JPMS] produce multi-release jar targeting JDK1.7 but module-info compiled for JDK11.
Version 1.0.0-rc1 ----------------- * Core: - CSSOM: general type cleanup, and introduce the ExtendedCSSRuleList interface. - CSSOM: rename several implementation classes to better names. * Dom4j module: - Changes to conform to the renaming in core module.