|
|
|
@ -188,10 +188,13 @@ pub fn embed_srcset(
|
|
|
|
|
options,
|
|
|
|
|
depth + 1,
|
|
|
|
|
) {
|
|
|
|
|
Ok((image_data, image_final_url, image_media_type, _image_charset)) => {
|
|
|
|
|
// TODO: use image_charset
|
|
|
|
|
let mut image_data_url =
|
|
|
|
|
create_data_url(&image_media_type, &image_data, &image_final_url);
|
|
|
|
|
Ok((image_data, image_final_url, image_media_type, image_charset)) => {
|
|
|
|
|
let mut image_data_url = create_data_url(
|
|
|
|
|
&image_media_type,
|
|
|
|
|
&image_charset,
|
|
|
|
|
&image_data,
|
|
|
|
|
&image_final_url,
|
|
|
|
|
);
|
|
|
|
|
// Append retreved asset as a data URL
|
|
|
|
|
image_data_url.set_fragment(image_full_url.fragment());
|
|
|
|
|
result.push_str(image_data_url.as_ref());
|
|
|
|
@ -637,12 +640,12 @@ pub fn retrieve_and_embed_asset(
|
|
|
|
|
let css: String = embed_css(cache, client, &final_url, &s, options, depth + 1);
|
|
|
|
|
|
|
|
|
|
// Create and embed data URL
|
|
|
|
|
// TODO: use charset
|
|
|
|
|
let css_data_url = create_data_url(&media_type, css.as_bytes(), &final_url);
|
|
|
|
|
let css_data_url =
|
|
|
|
|
create_data_url(&media_type, &charset, css.as_bytes(), &final_url);
|
|
|
|
|
set_node_attr(&node, attr_name, Some(css_data_url.to_string()));
|
|
|
|
|
} else if node_name == "frame" || node_name == "iframe" {
|
|
|
|
|
// (I)FRAMEs are also quite different from conventional resources
|
|
|
|
|
let frame_dom = html_to_dom(&data, charset);
|
|
|
|
|
let frame_dom = html_to_dom(&data, charset.clone());
|
|
|
|
|
walk_and_embed_assets(
|
|
|
|
|
cache,
|
|
|
|
|
client,
|
|
|
|
@ -661,8 +664,8 @@ pub fn retrieve_and_embed_asset(
|
|
|
|
|
.unwrap();
|
|
|
|
|
|
|
|
|
|
// Create and embed data URL
|
|
|
|
|
// TODO: use charset
|
|
|
|
|
let mut frame_data_url = create_data_url(&media_type, &frame_data, &final_url);
|
|
|
|
|
let mut frame_data_url =
|
|
|
|
|
create_data_url(&media_type, &charset, &frame_data, &final_url);
|
|
|
|
|
frame_data_url.set_fragment(resolved_url.fragment());
|
|
|
|
|
set_node_attr(node, attr_name, Some(frame_data_url.to_string()));
|
|
|
|
|
} else {
|
|
|
|
@ -681,8 +684,7 @@ pub fn retrieve_and_embed_asset(
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Create and embed data URL
|
|
|
|
|
// TODO: use charset
|
|
|
|
|
let mut data_url = create_data_url(&media_type, &data, &final_url);
|
|
|
|
|
let mut data_url = create_data_url(&media_type, &charset, &data, &final_url);
|
|
|
|
|
data_url.set_fragment(resolved_url.fragment());
|
|
|
|
|
set_node_attr(node, attr_name, Some(data_url.to_string()));
|
|
|
|
|
}
|
|
|
|
|