mirror of
https://github.com/servo/servo.git
synced 2025-08-06 06:00:15 +01:00
Auto merge of #16224 - servo:valid-fontface, r=upsuper
Make the parser accept @font-face rules without font-family or src. Fix #16165. Also, it turns out that the CSSFontFaceRule IDL specified in the css-fonts spec is not web-compatible. Instead browsers implement a .style attribute like in CSSStyleRule: https://github.com/w3c/csswg-drafts/issues/825 This in turn requires preserving data about which descriptors were set or not (distinguishing unset from set to a value that happens to be the initial value), so this commit also makes every field `Option<_>`. <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/16224) <!-- Reviewable:end -->
This commit is contained in:
commit
fac0d17fd6
9 changed files with 240 additions and 197 deletions
|
@ -6,7 +6,7 @@
|
|||
|
||||
mod ns_com_ptr;
|
||||
mod ns_css_shadow_array;
|
||||
mod ns_css_value;
|
||||
pub mod ns_css_value;
|
||||
mod ns_style_auto_array;
|
||||
pub mod ns_style_coord;
|
||||
mod ns_t_array;
|
||||
|
|
|
@ -163,6 +163,11 @@ impl nsCSSValue {
|
|||
unsafe { bindings::Gecko_CSSValue_SetArray(self, len) }
|
||||
unsafe { self.mValue.mArray.as_mut().as_mut() }.unwrap()
|
||||
}
|
||||
|
||||
/// Generic set from any value that implements the ToNsCssValue trait.
|
||||
pub fn set_from<T: ToNsCssValue>(&mut self, value: &T) {
|
||||
value.convert(self)
|
||||
}
|
||||
}
|
||||
|
||||
impl Drop for nsCSSValue {
|
||||
|
@ -210,3 +215,9 @@ impl IndexMut<usize> for nsCSSValue_Array {
|
|||
&mut self.as_mut_slice()[i]
|
||||
}
|
||||
}
|
||||
|
||||
/// Generic conversion to nsCSSValue
|
||||
pub trait ToNsCssValue {
|
||||
/// Convert
|
||||
fn convert(&self, nscssvalue: &mut nsCSSValue);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue