Don't panic when body element don't have style data. r?heycam
draft
Don't panic when body element don't have style data. r?heycam
MozReview-Commit-ID: 4GuGK0i76eU
--- a/servo/components/style/values/specified/color.rs
+++ b/servo/components/style/values/specified/color.rs
@@ -264,24 +264,20 @@ impl ToComputedValue for Color {
})
}
#[cfg(feature = "gecko")]
Color::InheritFromBodyQuirk => {
use dom::TElement;
use gecko::wrapper::GeckoElement;
use gecko_bindings::bindings::Gecko_GetBody;
let pres_context = _context.device.pres_context();
- let body = unsafe {
- Gecko_GetBody(pres_context)
- };
- if let Some(body) = body {
- let wrap = GeckoElement(body);
- let borrow = wrap.borrow_data();
- ComputedColor::rgba(borrow.as_ref().unwrap()
- .styles.primary()
+ let body = unsafe { Gecko_GetBody(pres_context) }.map(|body| GeckoElement(body));
+ let borrow = body.as_ref().and_then(|wrap| wrap.borrow_data());
+ if let Some(borrow) = borrow {
+ ComputedColor::rgba(borrow.styles.primary()
.get_color()
.clone_color())
} else {
convert_nscolor_to_computedcolor(pres_context.mDefaultColor)
}
},
}
}