diff --git a/lib/less/functions.js b/lib/less/functions.js index 4c048f71..025a5f5c 100644 --- a/lib/less/functions.js +++ b/lib/less/functions.js @@ -347,8 +347,9 @@ tree.functions = { return this.mix(this.rgb(0, 0, 0), color, amount); }, "data-uri": function(mimetype, path) { + if (typeof window !== 'undefined') { - throw new Error('data-uri() is not supported in the browser.'); + return new less.tree.URL(path || mimetype, ''); } mimetype = mimetype.value; diff --git a/test/browser/css/urls.css b/test/browser/css/urls.css index a465aed1..55b9c9fe 100644 --- a/test/browser/css/urls.css +++ b/test/browser/css/urls.css @@ -34,3 +34,13 @@ .values { url: url('http://localhost:8081/browser/less/Trebuchet'); } +#data-uri { + uri: url('test/data/image.jpg'); +} +#data-uri-guess { + uri: url('test/data/image.jpg'); +} +#data-uri-ascii { + uri-1: url('test/data/page.html'); + uri-2: url('test/data/page.html'); +} diff --git a/test/browser/less/urls.less b/test/browser/less/urls.less index c2040cf9..81c06fdc 100644 --- a/test/browser/less/urls.less +++ b/test/browser/less/urls.less @@ -31,3 +31,15 @@ @a: 'Trebuchet'; url: url(@a); } +#data-uri { + uri: data-uri('image/jpeg;base64', 'test/data/image.jpg'); +} + +#data-uri-guess { + uri: data-uri('test/data/image.jpg'); +} + +#data-uri-ascii { + uri-1: data-uri('text/html', 'test/data/page.html'); + uri-2: data-uri('test/data/page.html'); +} diff --git a/test/css/functions.css b/test/css/functions.css index 64752fa6..c480a231 100644 --- a/test/css/functions.css +++ b/test/css/functions.css @@ -99,13 +99,3 @@ average: #7b007b; negation: #d73131; } -#data-uri { - uri: url('data:image/jpeg;base64,bm90IGFjdHVhbGx5IGEganBlZyBmaWxlCg=='); -} -#data-uri-guess { - uri: url('data:image/jpeg;base64,bm90IGFjdHVhbGx5IGEganBlZyBmaWxlCg=='); -} -#data-uri-ascii { - uri-1: url('data:text/html,%3Ch1%3EThis%20page%20is%20100%25%20Awesome.%3C%2Fh1%3E%0A'); - uri-2: url('data:text/html,%3Ch1%3EThis%20page%20is%20100%25%20Awesome.%3C%2Fh1%3E%0A'); -} diff --git a/test/css/urls.css b/test/css/urls.css index 6a8a4e98..2e4f2678 100644 --- a/test/css/urls.css +++ b/test/css/urls.css @@ -40,3 +40,13 @@ #secret { font-family: xecret, sans-serif; } +#data-uri { + uri: url('data:image/jpeg;base64,bm90IGFjdHVhbGx5IGEganBlZyBmaWxlCg=='); +} +#data-uri-guess { + uri: url('data:image/jpeg;base64,bm90IGFjdHVhbGx5IGEganBlZyBmaWxlCg=='); +} +#data-uri-ascii { + uri-1: url('data:text/html,%3Ch1%3EThis%20page%20is%20100%25%20Awesome.%3C%2Fh1%3E%0A'); + uri-2: url('data:text/html,%3Ch1%3EThis%20page%20is%20100%25%20Awesome.%3C%2Fh1%3E%0A'); +} diff --git a/test/less/functions.less b/test/less/functions.less index dde12f66..780ef2cb 100644 --- a/test/less/functions.less +++ b/test/less/functions.less @@ -110,16 +110,3 @@ average: average(#f60000, #0000f6); negation: negation(#f60000, #313131); } - -#data-uri { - uri: data-uri('image/jpeg;base64', 'test/data/image.jpg'); -} - -#data-uri-guess { - uri: data-uri('test/data/image.jpg'); -} - -#data-uri-ascii { - uri-1: data-uri('text/html', 'test/data/page.html'); - uri-2: data-uri('test/data/page.html'); -} diff --git a/test/less/urls.less b/test/less/urls.less index 93ec4122..aa51ed3e 100644 --- a/test/less/urls.less +++ b/test/less/urls.less @@ -31,3 +31,16 @@ } @import "import/import-and-relative-paths-test"; + +#data-uri { + uri: data-uri('image/jpeg;base64', 'test/data/image.jpg'); +} + +#data-uri-guess { + uri: data-uri('test/data/image.jpg'); +} + +#data-uri-ascii { + uri-1: data-uri('text/html', 'test/data/page.html'); + uri-2: data-uri('test/data/page.html'); +}