From 5844ebcd93c8f40761b6307bc24fc7865e9cd396 Mon Sep 17 00:00:00 2001 From: Ori Livneh Date: Sun, 16 Aug 2015 10:32:13 -0700 Subject: [PATCH] CSSMin: remove dot segments in relative local URLs Call wfRemoveDotSegments() (if available) on relative local URLs, so that relative dot segments are collapsed. Change-Id: Icc1c23a2a7d96c869412965bd8c3730d3c3b3a53 --- includes/libs/CSSMin.php | 7 +++++-- tests/phpunit/includes/libs/CSSMinTest.php | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/includes/libs/CSSMin.php b/includes/libs/CSSMin.php index f415c9b6e7..118463a0fc 100644 --- a/includes/libs/CSSMin.php +++ b/includes/libs/CSSMin.php @@ -399,7 +399,7 @@ class CSSMin { if ( $local === false ) { // Assume that all paths are relative to $remote, and make them absolute - return $remote . '/' . $url; + $url = $remote . '/' . $url; } else { // We drop the query part here and instead make the path relative to $remote $url = "{$remote}/{$file}"; @@ -418,8 +418,11 @@ class CSSMin { } // If any of these conditions failed (file missing, we don't want to embed it // or it's not embeddable), return the URL (possibly with ?timestamp part) - return $url; } + if ( function_exists( 'wfRemoveDotSegments' ) ) { + $url = wfRemoveDotSegments( $url ); + } + return $url; } /** diff --git a/tests/phpunit/includes/libs/CSSMinTest.php b/tests/phpunit/includes/libs/CSSMinTest.php index 6142f9675b..dc3809f6e0 100644 --- a/tests/phpunit/includes/libs/CSSMinTest.php +++ b/tests/phpunit/includes/libs/CSSMinTest.php @@ -102,12 +102,12 @@ class CSSMinTest extends MediaWikiTestCase { array( 'Without trailing slash', array( 'foo { prop: url(../bar.png); }', false, 'http://example.org/quux', false ), - 'foo { prop: url(http://example.org/quux/../bar.png); }', + 'foo { prop: url(http://example.org/bar.png); }', ), array( 'With trailing slash on remote (bug 27052)', array( 'foo { prop: url(../bar.png); }', false, 'http://example.org/quux/', false ), - 'foo { prop: url(http://example.org/quux/../bar.png); }', + 'foo { prop: url(http://example.org/bar.png); }', ), array( 'Guard against stripping double slashes from query', -- 2.20.1