diff --git a/lib/utils/resolve-url.html b/lib/utils/resolve-url.html index 6d061a826e..4892054506 100644 --- a/lib/utils/resolve-url.html +++ b/lib/utils/resolve-url.html @@ -16,6 +16,7 @@ let CSS_URL_RX = /(url\()([^)]*)(\))/g; let ABS_URL = /(^\/)|(^#)|(^[\w-\d]*:)/; + let DATA_URI = /data:/; let workingURL; let resolveDoc; /** @@ -31,6 +32,9 @@ * @return {string} resolved URL */ function resolveUrl(url, baseURI) { + if (baseURI && DATA_URI.test(baseURI)) { + return url; + } if (url && ABS_URL.test(url)) { return url; } diff --git a/test/runner.html b/test/runner.html index 633fed9080..46e5b0de61 100644 --- a/test/runner.html +++ b/test/runner.html @@ -79,7 +79,8 @@ 'unit/dir.html', 'unit/disable-upgrade.html', 'unit/shady-unscoped-style.html', - 'unit/html-tag.html' + 'unit/html-tag.html', + 'unit/data-uri-link.html' // 'unit/multi-style.html' ]; diff --git a/test/unit/data-uri-link.html b/test/unit/data-uri-link.html new file mode 100644 index 0000000000..9ea0f6ba6d --- /dev/null +++ b/test/unit/data-uri-link.html @@ -0,0 +1,46 @@ + + + +
+ + + + + + + + +