aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/htmlcanvaselement.rs
diff options
context:
space:
mode:
authorAnthony Ramine <n.oxyde@gmail.com>2018-10-03 10:43:41 +0200
committerAnthony Ramine <n.oxyde@gmail.com>2018-10-03 10:43:41 +0200
commitcfd446218b9d84e9c6f1b078f8d73fb6df7a8277 (patch)
tree93fe5478a3cf0a8ef2b1ef25fc885d437505004b /components/script/dom/htmlcanvaselement.rs
parenta3392610c3414a86a2294073bdc59c78c237bfda (diff)
downloadservo-cfd446218b9d84e9c6f1b078f8d73fb6df7a8277.tar.gz
servo-cfd446218b9d84e9c6f1b078f8d73fb6df7a8277.zip
Slightly clean up the final URL creation in canvas.toDataURL
Diffstat (limited to 'components/script/dom/htmlcanvaselement.rs')
-rw-r--r--components/script/dom/htmlcanvaselement.rs23
1 files changed, 10 insertions, 13 deletions
diff --git a/components/script/dom/htmlcanvaselement.rs b/components/script/dom/htmlcanvaselement.rs
index 2d50830fba1..2a84accf37c 100644
--- a/components/script/dom/htmlcanvaselement.rs
+++ b/components/script/dom/htmlcanvaselement.rs
@@ -396,19 +396,16 @@ impl HTMLCanvasElementMethods for HTMLCanvasElement {
},
};
- // Only handle image/png for now.
- let mime_type = "image/png";
-
- let mut encoded = Vec::new();
- {
- let encoder: PNGEncoder<&mut Vec<u8>> = PNGEncoder::new(&mut encoded);
- encoder
- .encode(&raw_data, self.Width(), self.Height(), ColorType::RGBA(8))
- .unwrap();
- }
-
- let encoded = base64::encode(&encoded);
- Ok(USVString(format!("data:{};base64,{}", mime_type, encoded)))
+ // FIXME: Only handle image/png for now.
+ let mut png = Vec::new();
+ PNGEncoder::new(&mut png)
+ .encode(&raw_data, self.Width(), self.Height(), ColorType::RGBA(8))
+ .unwrap();
+ let mut url = "data:image/png;base64,".to_owned();
+ // FIXME(nox): Should this use base64::URL_SAFE?
+ // FIXME(nox): https://github.com/alicemaz/rust-base64/pull/56
+ base64::encode_config_buf(&png, base64::STANDARD, &mut url);
+ Ok(USVString(url))
}
}