Issue #2014851 by hlieberman, Wim Leers: Fixed Drupal CSS preprocessing breaks protocol-relative paths.
parent
8cfc089e26
commit
4431c7e13a
|
@ -205,7 +205,7 @@ class CssOptimizer implements AssetOptimizerInterface {
|
||||||
|
|
||||||
// Replaces @import commands with the actual stylesheet content.
|
// Replaces @import commands with the actual stylesheet content.
|
||||||
// This happens recursively but omits external files.
|
// This happens recursively but omits external files.
|
||||||
$contents = preg_replace_callback('/@import\s*(?:url\(\s*)?[\'"]?(?![a-z]+:)([^\'"\()]+)[\'"]?\s*\)?\s*;/', array($this, 'loadNestedFile'), $contents);
|
$contents = preg_replace_callback('/@import\s*(?:url\(\s*)?[\'"]?(?![a-z]+:)(?!\/\/)([^\'"\()]+)[\'"]?\s*\)?\s*;/', array($this, 'loadNestedFile'), $contents);
|
||||||
|
|
||||||
return $contents;
|
return $contents;
|
||||||
}
|
}
|
||||||
|
|
|
@ -112,6 +112,8 @@ class CssOptimizerUnitTest extends UnitTestCase {
|
||||||
// - A background image with relative paths, which must be rewritten.
|
// - A background image with relative paths, which must be rewritten.
|
||||||
// - The rewritten background image path must also be passed through
|
// - The rewritten background image path must also be passed through
|
||||||
// file_create_url(). (https://drupal.org/node/1961340)
|
// file_create_url(). (https://drupal.org/node/1961340)
|
||||||
|
// - Imported files that are external (protocol-relative URL or not)
|
||||||
|
// should not be expanded. (https://drupal.org/node/2014851)
|
||||||
1 => array(
|
1 => array(
|
||||||
array(
|
array(
|
||||||
'group' => -100,
|
'group' => -100,
|
||||||
|
|
|
@ -2,6 +2,8 @@
|
||||||
|
|
||||||
@import "import1.css";
|
@import "import1.css";
|
||||||
@import "import2.css";
|
@import "import2.css";
|
||||||
|
@import url("http://example.com/style.css");
|
||||||
|
@import url("//example.com/style.css");
|
||||||
|
|
||||||
body {
|
body {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
ul,select{font:1em/160% Verdana,sans-serif;color:#494949;}.ui-icon{background-image:url(images/icon.png);}
|
ul,select{font:1em/160% Verdana,sans-serif;color:#494949;}.ui-icon{background-image:url(images/icon.png);}
|
||||||
p,select{font:1em/160% Verdana,sans-serif;color:#494949;}
|
p,select{font:1em/160% Verdana,sans-serif;color:#494949;}
|
||||||
body{margin:0;padding:0;background:#edf5fa;font:76%/170% Verdana,sans-serif;color:#494949;}.this .is .a .test{font:1em/100% Verdana,sans-serif;color:#494949;}.this
|
@import url("http://example.com/style.css");@import url("//example.com/style.css");body{margin:0;padding:0;background:#edf5fa;font:76%/170% Verdana,sans-serif;color:#494949;}.this .is .a .test{font:1em/100% Verdana,sans-serif;color:#494949;}.this
|
||||||
.is
|
.is
|
||||||
.a
|
.a
|
||||||
.test{font:1em/100% Verdana,sans-serif;color:#494949;}textarea,select{font:1em/160% Verdana,sans-serif;color:#494949;}
|
.test{font:1em/100% Verdana,sans-serif;color:#494949;}textarea,select{font:1em/160% Verdana,sans-serif;color:#494949;}
|
||||||
|
|
Loading…
Reference in New Issue