mirror of
https://github.com/servo/servo.git
synced 2025-06-08 00:23:30 +00:00
Check invalid values for the shadow attributes.
This commit is contained in:
parent
7355bf1061
commit
cc55e2e426
5 changed files with 15 additions and 22 deletions
|
@ -1136,6 +1136,9 @@ impl<'a> CanvasRenderingContext2DMethods for JSRef<'a, CanvasRenderingContext2D>
|
||||||
|
|
||||||
// https://html.spec.whatwg.org/multipage/#dom-context-2d-shadowoffsetx
|
// https://html.spec.whatwg.org/multipage/#dom-context-2d-shadowoffsetx
|
||||||
fn SetShadowOffsetX(self, value: f64) {
|
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.state.borrow_mut().shadow_offset_x = value;
|
||||||
self.renderer.send(CanvasMsg::Canvas2d(Canvas2dMsg::SetShadowOffsetX(value))).unwrap()
|
self.renderer.send(CanvasMsg::Canvas2d(Canvas2dMsg::SetShadowOffsetX(value))).unwrap()
|
||||||
}
|
}
|
||||||
|
@ -1147,6 +1150,9 @@ impl<'a> CanvasRenderingContext2DMethods for JSRef<'a, CanvasRenderingContext2D>
|
||||||
|
|
||||||
// https://html.spec.whatwg.org/multipage/#dom-context-2d-shadowoffsety
|
// https://html.spec.whatwg.org/multipage/#dom-context-2d-shadowoffsety
|
||||||
fn SetShadowOffsetY(self, value: f64) {
|
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.state.borrow_mut().shadow_offset_y = value;
|
||||||
self.renderer.send(CanvasMsg::Canvas2d(Canvas2dMsg::SetShadowOffsetY(value))).unwrap()
|
self.renderer.send(CanvasMsg::Canvas2d(Canvas2dMsg::SetShadowOffsetY(value))).unwrap()
|
||||||
}
|
}
|
||||||
|
@ -1158,6 +1164,9 @@ impl<'a> CanvasRenderingContext2DMethods for JSRef<'a, CanvasRenderingContext2D>
|
||||||
|
|
||||||
// https://html.spec.whatwg.org/multipage/#dom-context-2d-shadowblur
|
// https://html.spec.whatwg.org/multipage/#dom-context-2d-shadowblur
|
||||||
fn SetShadowBlur(self, value: f64) {
|
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.state.borrow_mut().shadow_blur = value;
|
||||||
self.renderer.send(CanvasMsg::Canvas2d(Canvas2dMsg::SetShadowBlur(value))).unwrap()
|
self.renderer.send(CanvasMsg::Canvas2d(Canvas2dMsg::SetShadowBlur(value))).unwrap()
|
||||||
}
|
}
|
||||||
|
@ -1185,8 +1194,12 @@ impl Drop for CanvasRenderingContext2D {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn parse_color(string: &str) -> Result<RGBA,()> {
|
pub fn parse_color(string: &str) -> Result<RGBA,()> {
|
||||||
match CSSColor::parse(&mut Parser::new(&string)) {
|
let mut parser = Parser::new(&string);
|
||||||
Ok(CSSColor::RGBA(rgba)) => Ok(rgba),
|
match CSSColor::parse(&mut parser) {
|
||||||
|
Ok(CSSColor::RGBA(rgba)) => {
|
||||||
|
if parser.is_exhausted() { Ok(rgba) }
|
||||||
|
else { Err(()) }
|
||||||
|
},
|
||||||
_ => Err(()),
|
_ => Err(()),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
[2d.fillStyle.parse.invalid.name-3.html]
|
|
||||||
type: testharness
|
|
||||||
[Canvas test: 2d.fillStyle.parse.invalid.name-3]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
[2d.shadow.attributes.shadowBlur.invalid.html]
|
|
||||||
type: testharness
|
|
||||||
[Canvas test: 2d.shadow.attributes.shadowBlur.invalid]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
[2d.shadow.attributes.shadowColor.invalid.html]
|
|
||||||
type: testharness
|
|
||||||
[Canvas test: 2d.shadow.attributes.shadowColor.invalid]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
[2d.shadow.attributes.shadowOffset.invalid.html]
|
|
||||||
type: testharness
|
|
||||||
[Canvas test: 2d.shadow.attributes.shadowOffset.invalid]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue