From a2bf7e334568f92f4e203d01eb79f000068f4581 Mon Sep 17 00:00:00 2001 From: Emi Simpson Date: Thu, 5 Dec 2019 17:42:07 -0500 Subject: [PATCH] Fixed some errors detecting, parsing, and transforming urls in `resolve_css_imports` --- src/utils.rs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/utils.rs b/src/utils.rs index 069e095..58de125 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -91,16 +91,16 @@ pub fn resolve_css_imports( opt_insecure: bool, ) -> Result { let mut resolved_css = String::from(css_string); - let re = - Regex::new(r###"url\((?:(?:https?|ftp)://)?"?[\w/\-?=%.]+\.[\w/\-?=%.]+"?\)"###).unwrap(); + let re = Regex::new(r###"url\("?([^"]+)"?\)"###).unwrap(); for link in re.captures_iter(&css_string) { - let target_link = if link[0].chars().nth(4) == Some('"') { - &link[0][5..link[0].len() - 2] - } else { - &link[0][4..link[0].len() - 1] + let target_link = dbg!(link.get(1).unwrap().as_str()); + + // Generate absolute URL for content + let embedded_url = match resolve_url(href, target_link) { + Ok(url) => url, + Err(_) => continue, // Malformed URL }; - let embedded_url = String::from([href, "/../", &target_link.to_string()].concat()); let (css_dataurl, _) = retrieve_asset( &embedded_url,