Fixes #667 - rebasing remote URLs.
authorJakub Pawlowicz <contact@jakubpawlowicz.com>
Sun, 13 Sep 2015 17:02:27 +0000 (18:02 +0100)
committerJakub Pawlowicz <contact@jakubpawlowicz.com>
Mon, 14 Sep 2015 12:12:55 +0000 (13:12 +0100)
If a URL is remote but rebase root is not there is no point in
rebasing at all.

History.md
lib/urls/rewrite.js
test/integration-test.js

index 78c9541..2aed3a6 100644 (file)
@@ -5,6 +5,7 @@
 * Fixed issue [#655](https://github.com/jakubpawlowicz/clean-css/issues/655) - shorthands override merging.
 * Fixed issue [#660](https://github.com/jakubpawlowicz/clean-css/issues/660) - !important token overriding.
 * Fixed issue [#662](https://github.com/jakubpawlowicz/clean-css/issues/662) - !important selector reducing.
+* Fixed issue [#667](https://github.com/jakubpawlowicz/clean-css/issues/667) - rebasing remote URLs.
 
 [3.4.1 / 2015-08-27](https://github.com/jakubpawlowicz/clean-css/compare/v3.4.0...v3.4.1)
 ==================
index bf49f19..4d7b2c1 100644 (file)
@@ -60,7 +60,10 @@ function rebase(uri, options) {
   if (isData(uri))
     return '\'' + uri + '\'';
 
-  if (isRemote(uri) || isRemote(options.toBase))
+  if (isRemote(uri) && !isRemote(options.toBase))
+    return uri;
+
+  if (!isRemote(uri) && isRemote(options.toBase))
     return url.resolve(options.toBase, uri);
 
   return options.absolute ?
index 598c921..c7dbddd 100644 (file)
@@ -1390,6 +1390,10 @@ vows.describe('integration tests')
       'document-local reference': [
         'svg{marker-end:url(#arrow)}',
         'svg{marker-end:url(#arrow)}'
+      ],
+      'chrome extension': [
+        'a{background-image:url("chrome-extension://__MSG_@@extension_id__/someFile.png")}',
+        'a{background-image:url(chrome-extension://__MSG_@@extension_id__/someFile.png)}'
       ]
     })
   )
@@ -1418,6 +1422,10 @@ vows.describe('integration tests')
       'internal page': [
         'a{background:url(about:blank)}',
         'a{background:url(about:blank)}'
+      ],
+      'chrome extension': [
+        'a{background-image:url("chrome-extension://__MSG_@@extension_id__/someFile.png")}',
+        'a{background-image:url(chrome-extension://__MSG_@@extension_id__/someFile.png)}'
       ]
     }, {
       root: process.cwd(),