Skip to content

Commit

Permalink
Check invalid values for the shadow attributes.
Browse files Browse the repository at this point in the history
  • Loading branch information
hyowon committed Jun 18, 2015
1 parent 7355bf1 commit cc55e2e
Show file tree
Hide file tree
Showing 5 changed files with 15 additions and 22 deletions.
17 changes: 15 additions & 2 deletions components/script/dom/canvasrenderingcontext2d.rs
Expand Up @@ -1136,6 +1136,9 @@ impl<'a> CanvasRenderingContext2DMethods for JSRef<'a, CanvasRenderingContext2D>

// https://html.spec.whatwg.org/multipage/#dom-context-2d-shadowoffsetx
fn SetShadowOffsetX(self, value: f64) {
if !value.is_finite() || value == self.state.borrow().shadow_offset_x {
return;
}
self.state.borrow_mut().shadow_offset_x = value;
self.renderer.send(CanvasMsg::Canvas2d(Canvas2dMsg::SetShadowOffsetX(value))).unwrap()
}
Expand All @@ -1147,6 +1150,9 @@ impl<'a> CanvasRenderingContext2DMethods for JSRef<'a, CanvasRenderingContext2D>

// https://html.spec.whatwg.org/multipage/#dom-context-2d-shadowoffsety
fn SetShadowOffsetY(self, value: f64) {
if !value.is_finite() || value == self.state.borrow().shadow_offset_y {
return;
}
self.state.borrow_mut().shadow_offset_y = value;
self.renderer.send(CanvasMsg::Canvas2d(Canvas2dMsg::SetShadowOffsetY(value))).unwrap()
}
Expand All @@ -1158,6 +1164,9 @@ impl<'a> CanvasRenderingContext2DMethods for JSRef<'a, CanvasRenderingContext2D>

// https://html.spec.whatwg.org/multipage/#dom-context-2d-shadowblur
fn SetShadowBlur(self, value: f64) {
if !value.is_finite() || value < 0f64 || value == self.state.borrow().shadow_blur {
return;
}
self.state.borrow_mut().shadow_blur = value;
self.renderer.send(CanvasMsg::Canvas2d(Canvas2dMsg::SetShadowBlur(value))).unwrap()
}
Expand Down Expand Up @@ -1185,8 +1194,12 @@ impl Drop for CanvasRenderingContext2D {
}

pub fn parse_color(string: &str) -> Result<RGBA,()> {
match CSSColor::parse(&mut Parser::new(&string)) {
Ok(CSSColor::RGBA(rgba)) => Ok(rgba),
let mut parser = Parser::new(&string);
match CSSColor::parse(&mut parser) {
Ok(CSSColor::RGBA(rgba)) => {
if parser.is_exhausted() { Ok(rgba) }
else { Err(()) }
},
_ => Err(()),
}
}
Expand Down

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

0 comments on commit cc55e2e

Please sign in to comment.