From d0179902bb7ce8950bf542dd8515e404d95d92bd Mon Sep 17 00:00:00 2001 From: Xidorn Quan Date: Thu, 10 Aug 2017 16:38:22 +1000 Subject: [PATCH] Use namespace id instead of atom in synthesize_presentational_hints_for_legacy_attributes. Using namespace id fixes this issue because in Gecko, the pref of MathML (as well as SVG) works in the way that we choose a different namespace id (the disabled id) for the elements. Those ids are mapped to the same namespace atom as normal ids, which means if we use the atom, we would treat the elements like normal mathml elements. --- components/style/gecko/wrapper.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/components/style/gecko/wrapper.rs b/components/style/gecko/wrapper.rs index b3cd83ea3df..0ecbf8abe7b 100644 --- a/components/style/gecko/wrapper.rs +++ b/components/style/gecko/wrapper.rs @@ -1534,9 +1534,9 @@ impl<'le> PresentationalHintsSynthesizer for GeckoElement<'le> { }; }; - let ns = self.get_namespace(); + let ns = self.namespace_id(); // elements get a default MozCenterOrInherit which may get overridden - if ns == &*Namespace(atom!("http://www.w3.org/1999/xhtml")) { + if ns == structs::kNameSpaceID_XHTML as i32 { if self.get_local_name().as_ptr() == atom!("th").as_ptr() { hints.push(TH_RULE.clone()); } else if self.get_local_name().as_ptr() == atom!("table").as_ptr() && @@ -1544,7 +1544,7 @@ impl<'le> PresentationalHintsSynthesizer for GeckoElement<'le> { hints.push(TABLE_COLOR_RULE.clone()); } } - if ns == &*Namespace(atom!("http://www.w3.org/2000/svg")) { + if ns == structs::kNameSpaceID_SVG as i32 { if self.get_local_name().as_ptr() == atom!("text").as_ptr() { hints.push(SVG_TEXT_DISABLE_ZOOM_RULE.clone()); } @@ -1621,7 +1621,7 @@ impl<'le> PresentationalHintsSynthesizer for GeckoElement<'le> { hints.push(ApplicableDeclarationBlock::from_declarations(arc, ServoCascadeLevel::PresHints)) } // MathML's default lang has precedence over both `lang` and `xml:lang` - if ns == &*Namespace(atom!("http://www.w3.org/1998/Math/MathML")) { + if ns == structs::kNameSpaceID_MathML as i32 { if self.get_local_name().as_ptr() == atom!("math").as_ptr() { hints.push(MATHML_LANG_RULE.clone()); }