diff options
Diffstat (limited to 'components/script/dom/cssrule.rs')
-rw-r--r-- | components/script/dom/cssrule.rs | 82 |
1 files changed, 55 insertions, 27 deletions
diff --git a/components/script/dom/cssrule.rs b/components/script/dom/cssrule.rs index 52d10e75b1f..1030ab39ae5 100644 --- a/components/script/dom/cssrule.rs +++ b/components/script/dom/cssrule.rs @@ -25,6 +25,7 @@ use crate::dom::cssstylerule::CSSStyleRule; use crate::dom::cssstylesheet::CSSStyleSheet; use crate::dom::csssupportsrule::CSSSupportsRule; use crate::dom::window::Window; +use crate::script_runtime::CanGc; #[dom_struct] pub(crate) struct CSSRule { @@ -82,38 +83,65 @@ impl CSSRule { ) -> DomRoot<CSSRule> { // be sure to update the match in as_specific when this is updated match rule { - StyleCssRule::Import(s) => { - DomRoot::upcast(CSSImportRule::new(window, parent_stylesheet, s)) - }, - StyleCssRule::Style(s) => { - DomRoot::upcast(CSSStyleRule::new(window, parent_stylesheet, s)) - }, - StyleCssRule::FontFace(s) => { - DomRoot::upcast(CSSFontFaceRule::new(window, parent_stylesheet, s)) - }, + StyleCssRule::Import(s) => DomRoot::upcast(CSSImportRule::new( + window, + parent_stylesheet, + s, + CanGc::note(), + )), + StyleCssRule::Style(s) => DomRoot::upcast(CSSStyleRule::new( + window, + parent_stylesheet, + s, + CanGc::note(), + )), + StyleCssRule::FontFace(s) => DomRoot::upcast(CSSFontFaceRule::new( + window, + parent_stylesheet, + s, + CanGc::note(), + )), StyleCssRule::FontFeatureValues(_) => unimplemented!(), StyleCssRule::CounterStyle(_) => unimplemented!(), - StyleCssRule::Keyframes(s) => { - DomRoot::upcast(CSSKeyframesRule::new(window, parent_stylesheet, s)) - }, - StyleCssRule::Media(s) => { - DomRoot::upcast(CSSMediaRule::new(window, parent_stylesheet, s)) - }, - StyleCssRule::Namespace(s) => { - DomRoot::upcast(CSSNamespaceRule::new(window, parent_stylesheet, s)) - }, - StyleCssRule::Supports(s) => { - DomRoot::upcast(CSSSupportsRule::new(window, parent_stylesheet, s)) - }, + StyleCssRule::Keyframes(s) => DomRoot::upcast(CSSKeyframesRule::new( + window, + parent_stylesheet, + s, + CanGc::note(), + )), + StyleCssRule::Media(s) => DomRoot::upcast(CSSMediaRule::new( + window, + parent_stylesheet, + s, + CanGc::note(), + )), + StyleCssRule::Namespace(s) => DomRoot::upcast(CSSNamespaceRule::new( + window, + parent_stylesheet, + s, + CanGc::note(), + )), + StyleCssRule::Supports(s) => DomRoot::upcast(CSSSupportsRule::new( + window, + parent_stylesheet, + s, + CanGc::note(), + )), StyleCssRule::Page(_) => unreachable!(), StyleCssRule::Container(_) => unimplemented!(), // TODO StyleCssRule::Document(_) => unimplemented!(), // TODO - StyleCssRule::LayerBlock(s) => { - DomRoot::upcast(CSSLayerBlockRule::new(window, parent_stylesheet, s)) - }, - StyleCssRule::LayerStatement(s) => { - DomRoot::upcast(CSSLayerStatementRule::new(window, parent_stylesheet, s)) - }, + StyleCssRule::LayerBlock(s) => DomRoot::upcast(CSSLayerBlockRule::new( + window, + parent_stylesheet, + s, + CanGc::note(), + )), + StyleCssRule::LayerStatement(s) => DomRoot::upcast(CSSLayerStatementRule::new( + window, + parent_stylesheet, + s, + CanGc::note(), + )), StyleCssRule::FontPaletteValues(_) => unimplemented!(), // TODO StyleCssRule::Property(_) => unimplemented!(), // TODO StyleCssRule::Margin(_) => unimplemented!(), // TODO |