This is an automated email from the ASF dual-hosted git repository. benw pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tapestry-5.git
The following commit(s) were added to refs/heads/master by this push: new 47a6e746f TAP5-2791: Fixing CssCompressor SVG data url handling 47a6e746f is described below commit 47a6e746fd3a344fa088dbf676aaa8e75c467174 Author: Ben Weidig <b...@netzgut.net> AuthorDate: Sun Nov 10 17:26:42 2024 +0100 TAP5-2791: Fixing CssCompressor SVG data url handling --- .../apache/tapestry5/internal/webresources/CssCompressor.java | 10 ++++++++-- .../test/groovy/t5/webresources/tests/CssCompressorSpec.groovy | 1 + .../src/test/resources/t5/webresources/css/TAP5-2791.css | 4 ++++ .../src/test/resources/t5/webresources/css/TAP5-2791.css.min | 1 + 4 files changed, 14 insertions(+), 2 deletions(-) diff --git a/tapestry-webresources/src/main/java/org/apache/tapestry5/internal/webresources/CssCompressor.java b/tapestry-webresources/src/main/java/org/apache/tapestry5/internal/webresources/CssCompressor.java index c50760958..ce803f202 100644 --- a/tapestry-webresources/src/main/java/org/apache/tapestry5/internal/webresources/CssCompressor.java +++ b/tapestry-webresources/src/main/java/org/apache/tapestry5/internal/webresources/CssCompressor.java @@ -134,8 +134,14 @@ public class CssCompressor { if (foundTerminator) { String token = css.substring(startIndex, endIndex); - if (removeWhiteSpace) - token = WHITESPACE.matcher(token).replaceAll(""); + if (removeWhiteSpace) { + if (token.indexOf("data:image/svg+xml") != -1) { + token = token.trim(); + } + else { + token = WHITESPACE.matcher(token).replaceAll(""); + } + } preservedTokens.add(token); String preserver = preservedToken + "(___YUICSSMIN_PRESERVED_" + preserverIdentifier + "_" diff --git a/tapestry-webresources/src/test/groovy/t5/webresources/tests/CssCompressorSpec.groovy b/tapestry-webresources/src/test/groovy/t5/webresources/tests/CssCompressorSpec.groovy index 85d7e655f..6c29de79f 100644 --- a/tapestry-webresources/src/test/groovy/t5/webresources/tests/CssCompressorSpec.groovy +++ b/tapestry-webresources/src/test/groovy/t5/webresources/tests/CssCompressorSpec.groovy @@ -32,6 +32,7 @@ class CssCompressorSpec extends Specification { 'TAP5-2524' | 'minify CSS with keyframes' 'TAP5-2600' | 'preserve 0s in transition' 'TAP5-2753' | 'preserve space for calc operators' + 'TAP5-2791' | 'data url svg whitespace' } /** diff --git a/tapestry-webresources/src/test/resources/t5/webresources/css/TAP5-2791.css b/tapestry-webresources/src/test/resources/t5/webresources/css/TAP5-2791.css new file mode 100644 index 000000000..11ae2074c --- /dev/null +++ b/tapestry-webresources/src/test/resources/t5/webresources/css/TAP5-2791.css @@ -0,0 +1,4 @@ +.some-class +{ + background-image: url('data:image/svg+xml;utf-8,<svg width="16" height="16" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M6 5C5.73478 5 5.48043 5.10536 5.29289 5.29289C5.10536 5.48043 5 5.73478 5 6V20C5 20.2652 5.10536 20.5196 5.29289 20.7071C5.48043 20.8946 5.73478 21 6 21H18C18.2652 21 18.5196 20.8946 18.7071 20.7071C18.8946 20.5196 19 20.2652 19 20V6C19 5.73478 18.8946 5.48043 18.7071 5.29289C18.5196 5.10536 18 [...] +} \ No newline at end of file diff --git a/tapestry-webresources/src/test/resources/t5/webresources/css/TAP5-2791.css.min b/tapestry-webresources/src/test/resources/t5/webresources/css/TAP5-2791.css.min new file mode 100644 index 000000000..dfad87c03 --- /dev/null +++ b/tapestry-webresources/src/test/resources/t5/webresources/css/TAP5-2791.css.min @@ -0,0 +1 @@ +.some-class{background-image:url('data:image/svg+xml;utf-8,<svg width="16" height="16" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M6 5C5.73478 5 5.48043 5.10536 5.29289 5.29289C5.10536 5.48043 5 5.73478 5 6V20C5 20.2652 5.10536 20.5196 5.29289 20.7071C5.48043 20.8946 5.73478 21 6 21H18C18.2652 21 18.5196 20.8946 18.7071 20.7071C18.8946 20.5196 19 20.2652 19 20V6C19 5.73478 18.8946 5.48043 18.7071 5.29289C18.5196 5.1 [...] \ No newline at end of file