diff --git a/servo/components/style/gecko/snapshot.rs b/servo/components/style/gecko/snapshot.rs index d294939baeb8..cffb78d3e9e0 100644 --- a/servo/components/style/gecko/snapshot.rs +++ b/servo/components/style/gecko/snapshot.rs @@ -211,7 +211,7 @@ impl ElementSnapshot for GeckoElementSnapshot { return; } - snapshot_helpers::each_class(&self.mClass, callback) + snapshot_helpers::each_class_or_part(&self.mClass, callback) } #[inline] diff --git a/servo/components/style/gecko/snapshot_helpers.rs b/servo/components/style/gecko/snapshot_helpers.rs index aaa2254dbd76..b8b31bc87dd3 100644 --- a/servo/components/style/gecko/snapshot_helpers.rs +++ b/servo/components/style/gecko/snapshot_helpers.rs @@ -107,9 +107,9 @@ pub fn has_class_or_part( } /// Given an item, a callback, and a getter, execute `callback` for each class -/// this `item` has. +/// or part name this `item` has. #[inline(always)] -pub fn each_class(attr: &structs::nsAttrValue, mut callback: F) +pub fn each_class_or_part(attr: &structs::nsAttrValue, mut callback: F) where F: FnMut(&Atom), { diff --git a/servo/components/style/gecko/wrapper.rs b/servo/components/style/gecko/wrapper.rs index 17c1cfaf35db..ba2951f6f25b 100644 --- a/servo/components/style/gecko/wrapper.rs +++ b/servo/components/style/gecko/wrapper.rs @@ -1372,7 +1372,19 @@ impl<'le> TElement for GeckoElement<'le> { None => return, }; - snapshot_helpers::each_class(attr, callback) + snapshot_helpers::each_class_or_part(attr, callback) + } + + fn each_part(&self, callback: F) + where + F: FnMut(&Atom), + { + let attr = match self.get_part_attr() { + Some(c) => c, + None => return, + }; + + snapshot_helpers::each_class_or_part(attr, callback) } #[inline]