From: VolkerE Date: Fri, 29 Sep 2017 11:53:02 +0000 (+0000) Subject: Revert "CSSMin: Improve encoding of quotes in embedded SVGs" X-Git-Tag: 1.31.0-rc.0~1921^2 X-Git-Url: http://git.cyclocoop.org/%22%20.%20generer_url_aide%28?a=commitdiff_plain;h=bd370e658f87c9e3b574b44252ce7d13f1ea3633;p=lhc%2Fweb%2Fwiklou.git Revert "CSSMin: Improve encoding of quotes in embedded SVGs" This reverts commit 5e3165f0080961e637e9ed600b696786aee7eda4. Bug: T176884 Change-Id: I8bd9af67aeb11cb478ba402205ce834b1bec17a7 --- diff --git a/includes/libs/CSSMin.php b/includes/libs/CSSMin.php index adaae178f5..ee88d0d2b5 100644 --- a/includes/libs/CSSMin.php +++ b/includes/libs/CSSMin.php @@ -149,7 +149,6 @@ class CSSMin { '%2F' => '/', // Unencode slashes '%3A' => ':', // Unencode colons '%3D' => '=', // Unencode equals signs - '%22' => '"', // Unencode double quotes ] ); $uri = 'data:' . $type . ',' . $encoded; if ( !$ie8Compat || strlen( $uri ) < self::DATA_URI_SIZE_LIMIT ) { @@ -216,7 +215,7 @@ class CSSMin { if ( preg_match( '!^[\w\d:@/~.%+;,?&=-]+$!', $url ) ) { return "url($url)"; } else { - return "url('" . strtr( $url, [ '\\' => '\\\\', "'" => "\\'" ] ) . "')"; + return 'url("' . strtr( $url, [ '\\' => '\\\\', '"' => '\\"' ] ) . '")'; } } diff --git a/tests/phpunit/includes/libs/CSSMinTest.php b/tests/phpunit/includes/libs/CSSMinTest.php index 62f990b911..b06df97666 100644 --- a/tests/phpunit/includes/libs/CSSMinTest.php +++ b/tests/phpunit/includes/libs/CSSMinTest.php @@ -242,7 +242,7 @@ class CSSMinTest extends MediaWikiTestCase { [ "Don't barf at behavior: url(#default#behaviorName) - T162973", [ 'foo { behavior: url(#default#bar); }', false, '/w/', false ], - 'foo { behavior: url(\'#default#bar\'); }', + 'foo { behavior: url("#default#bar"); }', ], ]; } @@ -271,9 +271,9 @@ class CSSMinTest extends MediaWikiTestCase { // data: URIs for red.gif, green.gif, circle.svg $red = 'data:image/gif;base64,R0lGODlhAQABAIAAAP8AADAAACwAAAAAAQABAAACAkQBADs='; $green = 'data:image/gif;base64,R0lGODlhAQABAIAAAACAADAAACwAAAAAAQABAAACAkQBADs='; - $svg = 'data:image/svg+xml,%3C%3Fxml version="1.0" encoding="UTF-8"%3F%3E%0A' - . '%3Csvg xmlns="http://www.w3.org/2000/svg" width="8" height=' - . '"8"%3E%0A%09%3Ccircle cx="4" cy="4" r="2"/%3E%0A%3C/svg%3E%0A'; + $svg = 'data:image/svg+xml,%3C%3Fxml version=%221.0%22 encoding=%22UTF-8%22%3F%3E%0A' + . '%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%228%22 height=' + . '%228%22%3E%0A%09%3Ccircle cx=%224%22 cy=%224%22 r=%222%22/%3E%0A%3C/svg%3E%0A'; // @codingStandardsIgnoreStart Generic.Files.LineLength return [ @@ -361,7 +361,7 @@ class CSSMinTest extends MediaWikiTestCase { [ 'SVG files are embedded without base64 encoding and unnecessary IE 6 and 7 fallback', 'foo { /* @embed */ background: url(circle.svg); }', - "foo { background: url('$svg'); }", + "foo { background: url(\"$svg\"); }", ], [ 'Two regular files in one rule', @@ -444,17 +444,17 @@ class CSSMinTest extends MediaWikiTestCase { [ 'Background URL (containing parentheses; T60473)', 'foo { background: url("//localhost/styles.css?query=(parens)") }', - 'foo { background: url(\'//localhost/styles.css?query=(parens)\') }', + 'foo { background: url("//localhost/styles.css?query=(parens)") }', ], [ 'Background URL (double quoted, containing single quotes; T60473)', 'foo { background: url("//localhost/styles.css?quote=\'") }', - 'foo { background: url(\'//localhost/styles.css?quote=\\\'\') }', + 'foo { background: url("//localhost/styles.css?quote=\'") }', ], [ 'Background URL (single quoted, containing double quotes; T60473)', 'foo { background: url(\'//localhost/styles.css?quote="\') }', - 'foo { background: url(\'//localhost/styles.css?quote="\') }', + 'foo { background: url("//localhost/styles.css?quote=\"") }', ], [ 'Simple case with comments before url', @@ -522,25 +522,15 @@ class CSSMinTest extends MediaWikiTestCase { 'url(data:image/png;base64,R0lGODlh/+==)', ], [ - 'URL with single quotes', + 'URL with quotes', "https://en.wikipedia.org/wiki/Wendy's", - "url('https://en.wikipedia.org/wiki/Wendy\\'s')", - ], - [ - 'URL with double quotes', - 'https://en.wikipedia.org/wiki/""', - "url('https://en.wikipedia.org/wiki/\"\"')", + "url(\"https://en.wikipedia.org/wiki/Wendy's\")", ], [ 'URL with parentheses', 'https://en.wikipedia.org/wiki/Boston_(band)', - "url('https://en.wikipedia.org/wiki/Boston_(band)')", + 'url("https://en.wikipedia.org/wiki/Boston_(band)")', ], - [ - 'URL with spaces', - 'https://en.wikipedia.org/wiki/Foo bar', - "url('https://en.wikipedia.org/wiki/Foo bar')" - ] ]; }