From e7ebd36d1cb6abe366e4f8f40c0978a32c9fcabe Mon Sep 17 00:00:00 2001 From: Carlos Amengual Date: Thu, 10 Oct 2024 19:50:18 +0200 Subject: [PATCH] Follow-up to 3788c120: flag properties that depend on custom properties, make the attr() privacy protection less restrictive --- .../carte/echosvg/css/engine/CSSEngine.java | 40 ++++-- .../sf/carte/echosvg/css/engine/StyleMap.java | 120 ++++++++++++++++++ .../engine/value/AbstractValueManager.java | 9 ++ .../css/engine/value/ValueManager.java | 13 -- .../css/engine/value/css2/CursorManager.java | 17 ++- .../css/engine/value/css2/SrcManager.java | 27 +++- .../css/engine/value/svg/ClipPathManager.java | 5 - .../engine/value/svg/ColorProfileManager.java | 5 - .../css/engine/value/svg/FilterManager.java | 5 - .../css/engine/value/svg/MarkerManager.java | 5 - .../css/engine/value/svg/MaskManager.java | 5 - .../css/engine/value/svg/SVGPaintManager.java | 15 ++- samples/tests/spec2/styling/attrValues.svg | 40 +++--- .../tests/spec2/styling/attrValues.png | Bin 47202 -> 67160 bytes 14 files changed, 216 insertions(+), 90 deletions(-) diff --git a/echosvg-css/src/main/java/io/sf/carte/echosvg/css/engine/CSSEngine.java b/echosvg-css/src/main/java/io/sf/carte/echosvg/css/engine/CSSEngine.java index 41568bcfe..3cf4688eb 100644 --- a/echosvg-css/src/main/java/io/sf/carte/echosvg/css/engine/CSSEngine.java +++ b/echosvg-css/src/main/java/io/sf/carte/echosvg/css/engine/CSSEngine.java @@ -1210,6 +1210,8 @@ private LexicalUnit replaceLexicalProxy(StyleMap sm, LexicalUnit lexval, CSSStyl LexicalUnit lu = lexval; do { if (lu.getLexicalUnitType() == LexicalType.VAR) { + sm.putCustomPtyRelative(propIdx, true); + LexicalUnit newlu; LexicalUnit param = lu.getParameters(); String propertyName = param.getStringValue(); // Property name @@ -1266,19 +1268,8 @@ private LexicalUnit replaceLexicalProxy(StyleMap sm, LexicalUnit lexval, CSSStyl } continue; } else if (lu.getLexicalUnitType() == LexicalType.ATTR) { - if (valueManagers[propIdx].allowsURL()) { - return null; - } boolean isLexval = lu == lexval; LexicalUnit newlu = replacementAttrUnit(sm, lu, elt, parent, counter, ptySet, propIdx); - try { - counter.replaceCounter += lu.countReplaceBy(newlu); - } catch (CSSBudgetException e) { - throw createAttrResourceLimitException(e); - } - if (counter.replaceCounter >= REPLACE_COUNT_LIMIT) { - throw createAttrResourceLimitException(); - } if (newlu == null) { // The current lexical unit can be removed @@ -1290,6 +1281,17 @@ private LexicalUnit replaceLexicalProxy(StyleMap sm, LexicalUnit lexval, CSSStyl continue; } + sm.putAttrTainted(propIdx, true); + + try { + counter.replaceCounter += lu.countReplaceBy(newlu); + } catch (CSSBudgetException e) { + throw createAttrResourceLimitException(e); + } + if (counter.replaceCounter >= REPLACE_COUNT_LIMIT) { + throw createAttrResourceLimitException(); + } + if (newlu.getLexicalUnitType() != LexicalType.EMPTY) { // We do not want to mess with a declared value, so clone it newlu = newlu.clone(); @@ -1611,7 +1613,7 @@ private LexicalUnit replacementAttrUnit(StyleMap sm, LexicalUnit attr, CSSStylab } // Return fallback - return lu == null ? null : replaceLexicalProxy(sm, lu, elt, parent, counter, ptySet, propIdx); + return lu == null ? null : replaceLexicalProxy(sm, lu.clone(), elt, parent, counter, ptySet, propIdx); } private static boolean unitMatchesAttrType(LexicalUnit lunit, String attrtype) { @@ -3070,13 +3072,15 @@ protected void inlineStyleAttributeUpdated(CSSStylableElement elt, StyleMap styl boolean lh = (lineHeightIndex == -1) ? false : updated[lineHeightIndex]; boolean cl = (colorIndex == -1) ? false : updated[colorIndex]; boolean isRoot = elt.getOwnerDocument().getDocumentElement() == elt; + boolean cp = styleDeclarationUpdateHandler.updatedCustomProperties; for (int i = getNumberOfProperties() - 1; i >= 0; --i) { if (updated[i]) { count++; } else if ((fs && style.isFontSizeRelative(i)) || (lh && style.isLineHeightRelative(i)) || (cl && style.isColorRelative(i)) || (fs && isRoot && style.isRootFontSizeRelative(i)) - || (lh && isRoot && style.isRootLineHeightRelative(i))) { + || (lh && isRoot && style.isRootLineHeightRelative(i)) + || (cp && style.isCustomPtyRelative(i))) { updated[i] = true; clearComputedValue(style, i); count++; @@ -3218,13 +3222,15 @@ protected void propagateChanges(Node node, int[] props, boolean recascade) { boolean lh = (lineHeightIndex == -1) ? false : updated[lineHeightIndex]; boolean cl = (colorIndex == -1) ? false : updated[colorIndex]; boolean isRootFs = fs && elt.getOwnerDocument().getDocumentElement() == elt; + boolean cp = styleDeclarationUpdateHandler.updatedCustomProperties; int count = 0; for (int i = getNumberOfProperties() - 1; i >= 0; --i) { if (updated[i]) { count++; } else if ((fs && style.isFontSizeRelative(i)) || (lh && style.isLineHeightRelative(i)) - || (cl && style.isColorRelative(i)) || (isRootFs && style.isRootFontSizeRelative(i))) { + || (cl && style.isColorRelative(i)) || (isRootFs && style.isRootFontSizeRelative(i)) + || (cp && style.isCustomPtyRelative(i))) { updated[i] = true; clearComputedValue(style, i); count++; @@ -3288,6 +3294,7 @@ protected class StyleDeclarationUpdateHandler extends DocumentAdapter implements public StyleMap styleMap; public boolean[] updatedProperties = new boolean[getNumberOfProperties()]; + public boolean updatedCustomProperties; /** * SAC: Implements @@ -3319,6 +3326,11 @@ public void property(String name, LexicalUnit value, boolean important) { } } + @Override + public void lexicalProperty(String name, LexicalUnit value, boolean important) { + updatedCustomProperties = true; + } + @Override public void pendingValue(String name, PendingValue v, boolean important) { int i = getPropertyIndex(name); diff --git a/echosvg-css/src/main/java/io/sf/carte/echosvg/css/engine/StyleMap.java b/echosvg-css/src/main/java/io/sf/carte/echosvg/css/engine/StyleMap.java index d8824ba98..f8c991c67 100644 --- a/echosvg-css/src/main/java/io/sf/carte/echosvg/css/engine/StyleMap.java +++ b/echosvg-css/src/main/java/io/sf/carte/echosvg/css/engine/StyleMap.java @@ -52,6 +52,8 @@ public class StyleMap { public static final int ROOT_LINE_HEIGHT_RELATIVE_MASK = 0x0800; public static final int ROOT_FONT_SIZE_RELATIVE_MASK = 0x1000; public static final int VIEWPORT_RELATIVE_MASK = 0x2000; + public static final int CUSTOM_PTY_RELATIVE_MASK = 0x4000; + public static final int ATTR_TAINTED_MASK = 0x8000; public static final int ORIGIN_MASK = 0xE0000000; // 3 last bits @@ -109,6 +111,8 @@ public void setFixedCascadedStyle(boolean b) { /** * Returns the value at the given index, null if unspecified. + * + * @param i the property index. */ public Value getValue(int i) { return values[i]; @@ -116,6 +120,8 @@ public Value getValue(int i) { /** * Returns the mask of the given property value. + * + * @param i the property index. */ public int getMask(int i) { return masks[i]; @@ -123,6 +129,8 @@ public int getMask(int i) { /** * Tells whether the given property value is important. + * + * @param i the property index. */ public boolean isImportant(int i) { return (masks[i] & IMPORTANT_MASK) != 0; @@ -130,6 +138,8 @@ public boolean isImportant(int i) { /** * Tells whether the given property value is computed. + * + * @param i the property index. */ public boolean isComputed(int i) { return (masks[i] & COMPUTED_MASK) != 0; @@ -137,6 +147,8 @@ public boolean isComputed(int i) { /** * Tells whether the given cascaded property value is null. + * + * @param i the property index. */ public boolean isNullCascaded(int i) { return (masks[i] & NULL_CASCADED_MASK) != 0; @@ -145,6 +157,8 @@ public boolean isNullCascaded(int i) { /** * Tells whether the given cascaded property value was inherited from it's * parent or set locally. + * + * @param i the property index. */ public boolean isInherited(int i) { return (masks[i] & INHERITED_MASK) != 0; @@ -152,6 +166,8 @@ public boolean isInherited(int i) { /** * Returns the origin value. + * + * @param i the property index. */ public int getOrigin(int i) { return (masks[i] & ORIGIN_MASK); @@ -159,6 +175,8 @@ public int getOrigin(int i) { /** * Tells whether the given property value is relative to 'color'. + * + * @param i the property index. */ public boolean isColorRelative(int i) { return (masks[i] & COLOR_RELATIVE_MASK) != 0; @@ -167,6 +185,8 @@ public boolean isColorRelative(int i) { /** * Tells whether the given property value is relative to the parent's property * value. + * + * @param i the property index. */ public boolean isParentRelative(int i) { return (masks[i] & PARENT_RELATIVE_MASK) != 0; @@ -174,6 +194,8 @@ public boolean isParentRelative(int i) { /** * Tells whether the given property value is relative to 'line-height'. + * + * @param i the property index. */ public boolean isLineHeightRelative(int i) { return (masks[i] & LINE_HEIGHT_RELATIVE_MASK) != 0; @@ -181,6 +203,8 @@ public boolean isLineHeightRelative(int i) { /** * Tells whether the given property value is relative to 'font-size'. + * + * @param i the property index. */ public boolean isFontSizeRelative(int i) { return (masks[i] & FONT_SIZE_RELATIVE_MASK) != 0; @@ -189,6 +213,8 @@ public boolean isFontSizeRelative(int i) { /** * Tells whether the given property value is relative to 'line-height' of the * {@code :root} element. + * + * @param i the property index. */ public boolean isRootLineHeightRelative(int i) { return (masks[i] & ROOT_LINE_HEIGHT_RELATIVE_MASK) != 0; @@ -197,6 +223,8 @@ public boolean isRootLineHeightRelative(int i) { /** * Tells whether the given property value is relative to 'font-size' of the * {@code :root} element. + * + * @param i the property index. */ public boolean isRootFontSizeRelative(int i) { return (masks[i] & ROOT_FONT_SIZE_RELATIVE_MASK) != 0; @@ -205,6 +233,8 @@ public boolean isRootFontSizeRelative(int i) { /** * Tells whether the given property value is relative to the width of the * containing block. + * + * @param i the property index. */ public boolean isBlockWidthRelative(int i) { return (masks[i] & BLOCK_WIDTH_RELATIVE_MASK) != 0; @@ -213,6 +243,8 @@ public boolean isBlockWidthRelative(int i) { /** * Tells whether the given property value is relative to the height of the * containing block. + * + * @param i the property index. */ public boolean isBlockHeightRelative(int i) { return (masks[i] & BLOCK_HEIGHT_RELATIVE_MASK) != 0; @@ -220,11 +252,31 @@ public boolean isBlockHeightRelative(int i) { /** * Tells whether the given property value is relative to the viewport. + * + * @param i the property index. */ public boolean isViewportRelative(int i) { return (masks[i] & VIEWPORT_RELATIVE_MASK) != 0; } + /** + * Tells whether the given property value is relative to a custom property. + * + * @param i the property index. + */ + public boolean isCustomPtyRelative(int i) { + return (masks[i] & CUSTOM_PTY_RELATIVE_MASK) != 0; + } + + /** + * Tells whether the given property value is attr()-tainted. + * + * @param i the property index. + */ + public boolean isAttrTainted(int i) { + return (masks[i] & ATTR_TAINTED_MASK) != 0; + } + /** * Puts a property value, given the property index. * @@ -247,6 +299,9 @@ public void putMask(int i, int m) { /** * Sets the priority of a property value. + * + * @param i the property index. + * @param b if {@code true} sets the flag, unsets otherwise. */ public void putImportant(int i, boolean b) { if (b) @@ -257,6 +312,9 @@ public void putImportant(int i, boolean b) { /** * Sets the origin of the given value. + * + * @param i the property index. + * @param val the origin. */ public void putOrigin(int i, int val) { masks[i] &= ~ORIGIN_MASK; @@ -265,6 +323,9 @@ public void putOrigin(int i, int val) { /** * Sets the computed flag of a property value. + * + * @param i the property index. + * @param b if {@code true} sets the flag, unsets otherwise. */ public void putComputed(int i, boolean b) { if (b) @@ -275,6 +336,9 @@ public void putComputed(int i, boolean b) { /** * Sets the null-cascaded flag of a property value. + * + * @param i the property index. + * @param b if {@code true} sets the flag, unsets otherwise. */ public void putNullCascaded(int i, boolean b) { if (b) @@ -286,6 +350,9 @@ public void putNullCascaded(int i, boolean b) { /** * Sets the inherited flag of a property value. If true this computed value was * inherited from it's parent. + * + * @param i the property index. + * @param b if {@code true} sets the flag, unsets otherwise. */ public void putInherited(int i, boolean b) { if (b) @@ -296,6 +363,9 @@ public void putInherited(int i, boolean b) { /** * Sets the color-relative flag of a property value. + * + * @param i the property index. + * @param b if {@code true} sets the flag, unsets otherwise. */ public void putColorRelative(int i, boolean b) { if (b) @@ -306,6 +376,9 @@ public void putColorRelative(int i, boolean b) { /** * Sets the parent-relative flag of a property value. + * + * @param i the property index. + * @param b if {@code true} sets the flag, unsets otherwise. */ public void putParentRelative(int i, boolean b) { if (b) @@ -316,6 +389,9 @@ public void putParentRelative(int i, boolean b) { /** * Sets the line-height-relative flag of a property value. + * + * @param i the property index. + * @param b if {@code true} sets the flag, unsets otherwise. */ public void putLineHeightRelative(int i, boolean b) { if (b) @@ -326,6 +402,9 @@ public void putLineHeightRelative(int i, boolean b) { /** * Sets the font-size-relative flag of a property value. + * + * @param i the property index. + * @param b if {@code true} sets the flag, unsets otherwise. */ public void putFontSizeRelative(int i, boolean b) { if (b) @@ -336,6 +415,9 @@ public void putFontSizeRelative(int i, boolean b) { /** * Sets the root-line-height-relative flag of a property value. + * + * @param i the property index. + * @param b if {@code true} sets the flag, unsets otherwise. */ public void putRootLineHeightRelative(int i, boolean b) { if (b) @@ -346,6 +428,9 @@ public void putRootLineHeightRelative(int i, boolean b) { /** * Sets the root-font-size-relative flag of a property value. + * + * @param i the property index. + * @param b if {@code true} sets the flag, unsets otherwise. */ public void putRootFontSizeRelative(int i, boolean b) { if (b) @@ -356,6 +441,9 @@ public void putRootFontSizeRelative(int i, boolean b) { /** * Sets the block-width-relative flag of a property value. + * + * @param i the property index. + * @param b if {@code true} sets the flag, unsets otherwise. */ public void putBlockWidthRelative(int i, boolean b) { if (b) @@ -366,6 +454,9 @@ public void putBlockWidthRelative(int i, boolean b) { /** * Sets the block-height-relative flag of a property value. + * + * @param i the property index. + * @param b if {@code true} sets the flag, unsets otherwise. */ public void putBlockHeightRelative(int i, boolean b) { if (b) @@ -376,6 +467,9 @@ public void putBlockHeightRelative(int i, boolean b) { /** * Sets the viewport-relative flag of a property value. + * + * @param i the property index. + * @param b if {@code true} sets the flag, unsets otherwise. */ public void putViewportRelative(int i, boolean b) { if (b) @@ -384,6 +478,32 @@ public void putViewportRelative(int i, boolean b) { masks[i] &= ~VIEWPORT_RELATIVE_MASK; } + /** + * Sets the custom-property-relative flag of a property value. + * + * @param i the property index. + * @param b if {@code true} sets the flag, unsets otherwise. + */ + public void putCustomPtyRelative(int i, boolean b) { + if (b) + masks[i] |= CUSTOM_PTY_RELATIVE_MASK; + else + masks[i] &= ~CUSTOM_PTY_RELATIVE_MASK; + } + + /** + * Marks or clears a property as attr()-tainted. + * + * @param i the property index. + * @param b if {@code true} marks the property as attr()-tainted. + */ + public void putAttrTainted(int i, boolean b) { + if (b) + masks[i] |= ATTR_TAINTED_MASK; + else + masks[i] &= ~ATTR_TAINTED_MASK; + } + /** * Set a custom property value. * diff --git a/echosvg-css/src/main/java/io/sf/carte/echosvg/css/engine/value/AbstractValueManager.java b/echosvg-css/src/main/java/io/sf/carte/echosvg/css/engine/value/AbstractValueManager.java index 41831a62e..cdd14300d 100644 --- a/echosvg-css/src/main/java/io/sf/carte/echosvg/css/engine/value/AbstractValueManager.java +++ b/echosvg-css/src/main/java/io/sf/carte/echosvg/css/engine/value/AbstractValueManager.java @@ -27,6 +27,7 @@ import io.sf.carte.doc.style.css.property.StyleValue; import io.sf.carte.doc.style.css.property.ValueFactory; import io.sf.carte.echosvg.css.engine.CSSEngine; +import io.sf.carte.echosvg.css.engine.CSSEngineUserAgent; import io.sf.carte.echosvg.css.engine.CSSStylableElement; import io.sf.carte.echosvg.css.engine.StyleMap; @@ -98,6 +99,14 @@ public Value computeValue(CSSStylableElement elt, String pseudo, CSSEngine engin Value value) { if (value.getPrimitiveType() == Type.URI) { + if (sm.isAttrTainted(idx)) { + CSSEngineUserAgent ua = engine.getCSSEngineUserAgent(); + if (ua != null) { + ua.displayMessage("attr()-tainted value: " + value.getCssText()); + } + return null; + } + // For performance, set the parsed value as the cssText now. String uri = value.getURIValue(); return new URIValue(uri, uri); diff --git a/echosvg-css/src/main/java/io/sf/carte/echosvg/css/engine/value/ValueManager.java b/echosvg-css/src/main/java/io/sf/carte/echosvg/css/engine/value/ValueManager.java index 4eb295fc7..6a421bd6b 100644 --- a/echosvg-css/src/main/java/io/sf/carte/echosvg/css/engine/value/ValueManager.java +++ b/echosvg-css/src/main/java/io/sf/carte/echosvg/css/engine/value/ValueManager.java @@ -59,19 +59,6 @@ public interface ValueManager { */ boolean isAdditiveProperty(); - /** - * Allows URL values. - *

- * If this property accepts URL values, then {@code attr()} values cannot be - * used. - *

- * - * @return {@code true} if URL values are allowed by this property. - */ - default boolean allowsURL() { - return false; - } - /** * Returns the type of value this manager handles. This should be one of the * TYPE_* constants defined in {@link io.sf.carte.echosvg.util.SVGTypes}. diff --git a/echosvg-css/src/main/java/io/sf/carte/echosvg/css/engine/value/css2/CursorManager.java b/echosvg-css/src/main/java/io/sf/carte/echosvg/css/engine/value/css2/CursorManager.java index 7a3698bce..d7846d7c0 100644 --- a/echosvg-css/src/main/java/io/sf/carte/echosvg/css/engine/value/css2/CursorManager.java +++ b/echosvg-css/src/main/java/io/sf/carte/echosvg/css/engine/value/css2/CursorManager.java @@ -25,6 +25,7 @@ import io.sf.carte.doc.style.css.CSSValue.Type; import io.sf.carte.doc.style.css.nsac.LexicalUnit; import io.sf.carte.echosvg.css.engine.CSSEngine; +import io.sf.carte.echosvg.css.engine.CSSEngineUserAgent; import io.sf.carte.echosvg.css.engine.CSSStylableElement; import io.sf.carte.echosvg.css.engine.StyleMap; import io.sf.carte.echosvg.css.engine.value.AbstractValueManager; @@ -97,11 +98,6 @@ public boolean isAdditiveProperty() { return false; } - @Override - public boolean allowsURL() { - return true; - } - /** * Implements {@link ValueManager#getPropertyType()}. */ @@ -202,8 +198,16 @@ public Value computeValue(CSSStylableElement elt, String pseudo, CSSEngine engin int len = value.getLength(); ListValue result = new ListValue(' '); for (int i = 0; i < len; i++) { - Value v = value.item(0); + Value v = value.item(i); if (v.getPrimitiveType() == Type.URI) { + if (sm.isAttrTainted(idx)) { + CSSEngineUserAgent ua = engine.getCSSEngineUserAgent(); + if (ua != null) { + ua.displayMessage("attr()-tainted value: " + value.getCssText()); + } + return null; + } + // For performance, use the absolute value as the cssText now. String uri = v.getURIValue(); result.append(new URIValue(uri, uri)); @@ -213,6 +217,7 @@ public Value computeValue(CSSStylableElement elt, String pseudo, CSSEngine engin } return result; } + return super.computeValue(elt, pseudo, engine, idx, sm, value); } diff --git a/echosvg-css/src/main/java/io/sf/carte/echosvg/css/engine/value/css2/SrcManager.java b/echosvg-css/src/main/java/io/sf/carte/echosvg/css/engine/value/css2/SrcManager.java index 1fb189139..dc60057e3 100644 --- a/echosvg-css/src/main/java/io/sf/carte/echosvg/css/engine/value/css2/SrcManager.java +++ b/echosvg-css/src/main/java/io/sf/carte/echosvg/css/engine/value/css2/SrcManager.java @@ -22,8 +22,13 @@ import org.w3c.dom.DOMException; +import io.sf.carte.doc.style.css.CSSValue; +import io.sf.carte.doc.style.css.CSSValue.Type; import io.sf.carte.doc.style.css.nsac.LexicalUnit; import io.sf.carte.echosvg.css.engine.CSSEngine; +import io.sf.carte.echosvg.css.engine.CSSEngineUserAgent; +import io.sf.carte.echosvg.css.engine.CSSStylableElement; +import io.sf.carte.echosvg.css.engine.StyleMap; import io.sf.carte.echosvg.css.engine.value.IdentifierManager; import io.sf.carte.echosvg.css.engine.value.ListValue; import io.sf.carte.echosvg.css.engine.value.RevertValue; @@ -85,11 +90,6 @@ public boolean isAdditiveProperty() { return false; } - @Override - public boolean allowsURL() { - return true; - } - /** * Implements {@link ValueManager#getPropertyType()}. */ @@ -225,6 +225,23 @@ public Value createValue(final LexicalUnit lunit, CSSEngine engine) throws DOMEx } } + @Override + public Value computeValue(CSSStylableElement elt, String pseudo, CSSEngine engine, int idx, StyleMap sm, + Value value) { + if (sm.isAttrTainted(idx) && value.getCssValueType() == CSSValue.CssType.LIST) { + for (Value v : (ListValue) value) { + if (v.getPrimitiveType() == Type.URI) { + CSSEngineUserAgent ua = engine.getCSSEngineUserAgent(); + if (ua != null) { + ua.displayMessage("attr()-tainted value: " + value.getCssText()); + } + return null; + } + } + } + return super.computeValue(elt, pseudo, engine, idx, sm, value); + } + /** * Implements {@link IdentifierManager#getIdentifiers()}. */ diff --git a/echosvg-css/src/main/java/io/sf/carte/echosvg/css/engine/value/svg/ClipPathManager.java b/echosvg-css/src/main/java/io/sf/carte/echosvg/css/engine/value/svg/ClipPathManager.java index e55913711..7b48381a8 100644 --- a/echosvg-css/src/main/java/io/sf/carte/echosvg/css/engine/value/svg/ClipPathManager.java +++ b/echosvg-css/src/main/java/io/sf/carte/echosvg/css/engine/value/svg/ClipPathManager.java @@ -76,11 +76,6 @@ public boolean isAdditiveProperty() { return false; } - @Override - public boolean allowsURL() { - return true; - } - /** * Implements {@link ValueManager#getPropertyType()}. */ diff --git a/echosvg-css/src/main/java/io/sf/carte/echosvg/css/engine/value/svg/ColorProfileManager.java b/echosvg-css/src/main/java/io/sf/carte/echosvg/css/engine/value/svg/ColorProfileManager.java index 741ee9706..3469998d6 100644 --- a/echosvg-css/src/main/java/io/sf/carte/echosvg/css/engine/value/svg/ColorProfileManager.java +++ b/echosvg-css/src/main/java/io/sf/carte/echosvg/css/engine/value/svg/ColorProfileManager.java @@ -79,11 +79,6 @@ public boolean isAdditiveProperty() { return false; } - @Override - public boolean allowsURL() { - return true; - } - /** * Implements {@link ValueManager#getPropertyType()}. */ diff --git a/echosvg-css/src/main/java/io/sf/carte/echosvg/css/engine/value/svg/FilterManager.java b/echosvg-css/src/main/java/io/sf/carte/echosvg/css/engine/value/svg/FilterManager.java index 3f0184b4a..559f135e3 100644 --- a/echosvg-css/src/main/java/io/sf/carte/echosvg/css/engine/value/svg/FilterManager.java +++ b/echosvg-css/src/main/java/io/sf/carte/echosvg/css/engine/value/svg/FilterManager.java @@ -76,11 +76,6 @@ public boolean isAdditiveProperty() { return false; } - @Override - public boolean allowsURL() { - return true; - } - /** * Implements {@link ValueManager#getPropertyType()}. */ diff --git a/echosvg-css/src/main/java/io/sf/carte/echosvg/css/engine/value/svg/MarkerManager.java b/echosvg-css/src/main/java/io/sf/carte/echosvg/css/engine/value/svg/MarkerManager.java index 8c6ca693b..b057b99ef 100644 --- a/echosvg-css/src/main/java/io/sf/carte/echosvg/css/engine/value/svg/MarkerManager.java +++ b/echosvg-css/src/main/java/io/sf/carte/echosvg/css/engine/value/svg/MarkerManager.java @@ -80,11 +80,6 @@ public boolean isAdditiveProperty() { return false; } - @Override - public boolean allowsURL() { - return true; - } - /** * Implements {@link ValueManager#getPropertyType()}. */ diff --git a/echosvg-css/src/main/java/io/sf/carte/echosvg/css/engine/value/svg/MaskManager.java b/echosvg-css/src/main/java/io/sf/carte/echosvg/css/engine/value/svg/MaskManager.java index 813a76a56..fbd5308c6 100644 --- a/echosvg-css/src/main/java/io/sf/carte/echosvg/css/engine/value/svg/MaskManager.java +++ b/echosvg-css/src/main/java/io/sf/carte/echosvg/css/engine/value/svg/MaskManager.java @@ -68,11 +68,6 @@ public boolean isAdditiveProperty() { return false; } - @Override - public boolean allowsURL() { - return true; - } - /** * Implements {@link ValueManager#getPropertyType()}. */ diff --git a/echosvg-css/src/main/java/io/sf/carte/echosvg/css/engine/value/svg/SVGPaintManager.java b/echosvg-css/src/main/java/io/sf/carte/echosvg/css/engine/value/svg/SVGPaintManager.java index 0f59bd6bd..32b740bc8 100644 --- a/echosvg-css/src/main/java/io/sf/carte/echosvg/css/engine/value/svg/SVGPaintManager.java +++ b/echosvg-css/src/main/java/io/sf/carte/echosvg/css/engine/value/svg/SVGPaintManager.java @@ -22,6 +22,7 @@ import io.sf.carte.doc.style.css.nsac.LexicalUnit; import io.sf.carte.echosvg.css.engine.CSSEngine; +import io.sf.carte.echosvg.css.engine.CSSEngineUserAgent; import io.sf.carte.echosvg.css.engine.CSSStylableElement; import io.sf.carte.echosvg.css.engine.StyleMap; import io.sf.carte.echosvg.css.engine.value.ListValue; @@ -84,11 +85,6 @@ public boolean isAdditiveProperty() { return true; } - @Override - public boolean allowsURL() { - return true; - } - /** * Implements {@link ValueManager#getPropertyType()}. */ @@ -152,8 +148,15 @@ public Value computeValue(CSSStylableElement elt, String pseudo, CSSEngine engin if (value.getCssValueType() == Value.CssType.LIST) { Value v = value.item(0); if (v.getPrimitiveType() == Value.Type.URI) { + if (sm.isAttrTainted(idx)) { + CSSEngineUserAgent ua = engine.getCSSEngineUserAgent(); + if (ua != null) { + ua.displayMessage("attr()-tainted value: " + value.getCssText()); + } + return null; + } v = value.item(1); - if (v.isIdentifier(CSSConstants.CSS_NONE_VALUE)) { + if (v == null || v.isIdentifier(CSSConstants.CSS_NONE_VALUE)) { return value; } Value t = super.computeValue(elt, pseudo, engine, idx, sm, v); diff --git a/samples/tests/spec2/styling/attrValues.svg b/samples/tests/spec2/styling/attrValues.svg index 2d7e30acd..8bb408221 100644 --- a/samples/tests/spec2/styling/attrValues.svg +++ b/samples/tests/spec2/styling/attrValues.svg @@ -40,37 +40,35 @@ circle, ellipse { } @media screen and (100px <= width <= 900px) { - circle { - stroke-width: attr(stroke-width length); - } - g { - fill: attr(data-color color); /* Has no effect, fill can't take attr() */ - stroke: attr(data-color color); /* Has no effect, stroke can't take attr() */ - stroke-width: attr(stroke-width length); + circle, ellipse { + fill: attr(data-color color, #9ad6c2); + stroke: attr(data-stroke color); + stroke-width: attr(data-stroke-width length); } } text.itemdesc { - font: bold attr(data-font-size length) "Open Sans", sans-serif; - fill: var(--textColor); + font: bold attr(data-font-size length,14pt) "Open Sans", sans-serif; + fill: attr(data-color color, var(--textColor)); } /*]]>*/ - - - - - - - - - Media Queries - Conditional rules - Color Level 4 / calc() - Custom Properties + + + + + + + + + Media Queries + Conditional rules + Color Level 4 / calc() + Custom Properties + and the advanced attr() value diff --git a/test-references/samples/tests/spec2/styling/attrValues.png b/test-references/samples/tests/spec2/styling/attrValues.png index 0c55aa154bcb71a951205102d7dd81e09dc19df4..cd8418743663819a78d37d428bb77997c938c825 100644 GIT binary patch literal 67160 zcmcdy^;4Za(?$+(fZ|^4;4a18og&5I;O_2Hq&O6};_mM5?(XjHh2kI25AVP5%{`e+ zlG(kJ>}0dqy*5lyUJ?o6D*^-r1d_Crm=Xj8WXxx|2f}{#V61xieO4eNDJ3}w2v14~ z2){rGi098Pzhejp7iI{EQ+)^so)icO9Q*XvAAFw!05f4ZVF-wtDDRga@tBn$V571{LkM(NQ()pxUZgP!0Brb zWPF$%He85zfE(#oY8{3+2A7kN8ow0=qeG2Q1m3TIFfP51#O~QM#(27Y(7|g10lgFe z5g@q=G{<0&rI9wdtYc!iZd0j`S{g@+s`fw2zxF9 z`J04ik6toF3n#{M?k#lY|&# zfPgpflVX^@*Q&mnfX%ESK*m9xR5AEFNB|0tDCQc63#8Ad;G-fzp5{STpDXE}pFLu| z=TTKjiJD!K6l&{0NDwT#?cKI-_OqvCv8nZ1NCni|9Wp8Y$Am8!2~*$Xf|-egkJN| zLg8C%bQE^!PeX~r2l)+S!lj@h0mM}$;uIv*y2v$pv3o9!uIK{zLqRO$SpC1Wv~qb^Q+gd3fKLd=$9dKt1sOJ?^Lm+;Ur<$(}TJ(Da><4{zMVi1B?p zP`!9|i`LRbiC1b`TAXvFV7V={DJ&2c0xfn7#KRXD>VAgYjuA%BG;K#2;`3vozGA{*4g3|&dGQfNW<@i0mA$t)uQ*A4_c1$W^1MyBlTE~dZ+mz zY+VgB-lRt+O1F- z0lHoclSqcAH~*sPGGK$9NbvU!wz=yK^@PCU*3%(rE%Sbw5|6CMm$mqW5j4L)76#obj6A9EZ7;HBgC47K>Ed`Dn97*uPl*I^wg*7eqU?D zNd$8T4RD}-`nQ(I@1r2OGGNJy0Jt*FUA}-TzFF4|)lA?Gs5QwLH%S;5$t1A-rq1l# zg(|tIf#Z^ydw>k+^+FAD^}XpVsAvbY_@K$VJ9~D=SK%Y44w|iaf;)0o zBe>Rb^j5w(3aOW03+wiOn%H4Q?DGVDyfWipU|+*pH3#rlU2Vg%-gp?U2}d)oaZW#U zF95fH&*#>ebLZOD_@Nr%^=r{HuNq3`m=@t$%f)Ja&6swZ`6}_XW|+{^GIdI7ym?arzGb7R%R5E`~!BgWmf^h zx^F#{61nTS=f(pUe`(Is4WnUa%wi=h49(vfkd0QCt5|^uW7$#s*Sc_BkxAI4_phMh zm6)}flOwN#r||UkB+vj%0tx)k20HY(?S5fH zCx=#%Q0v0PpjV0(6Qm-y#^!tew%oCccNwcq z@bgAdoCE5bk@nPWW;8D!%myfyOrKW&L&>gwFvea)ft#j9hlUC~tMA48?fGt)b@?YG zjGCMe12rdl>p0+gnDf169}@>v{#MiN!cnMu%EA>V?N8=47a%#o(NOsGd5Nk|s#I1^ z@uE7}?YuLWTdOWWPM?h*ot9F^%?(CqAF|r&1~M9X^6n%8pshn2K@PNbhbTdK%t;4bxV`T$y=u2fpUJod>NY9|8x>lM@6TslgN zpZ(xu=~{&l@}|PT9v!`QBCcwXn0R%=qyy8Iz*^loU@AWrZ2>xojL=JsEm%Rv0Ci$< zi44-~cn`ArrQsJ}QQUzIP)``bH}lW|_H0gnho)$|YCORb<#4P>K@MjIH<|J}=GS5e~p& z`-dBwS=YwenLb%rQi0u1i&EsF4r5N+_63LPw~N{b_cx`0Z}{_5fq~(yC;7y_DCa-l zXqc}9qSNpAqbfpU?0%$mK+RIJ;oF}1b%x{JmOMJ`ukvJy;shh1Fh(AhXH({OSHBTBItSgDa*Q&&`uey@TCN&6Xk7kceH1eKh5XqXUKM5Rmf zuhw|Q>)E71kK=`zegGHHYqJDC2$%1k4KihqL|K9Fw=b%kK%j4O>A5#{p<$n`vf`Ql z%Ayf*vm#a2AASUpW!tiFM%^U?WBP%9?WK7Xc#mP1f5S#@d~P8$B%yPP}XxvO1W&8>HRXDS4D52xm4FG;Udz@~Rx0

EZ5iND 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 literal 47202 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