diff --git a/components/style/stylesheet_set.rs b/components/style/stylesheet_set.rs index 8548ac53f01..0d8d032402f 100644 --- a/components/style/stylesheet_set.rs +++ b/components/style/stylesheet_set.rs @@ -180,14 +180,12 @@ where .any(|(d, _)| d.dirty) } - /// Flush the current set, unmarking it as dirty, and returns an iterator - /// over the new stylesheet list. - /// - /// Returns true if any elements were invalidated. + /// Flush the current set, unmarking it as dirty, and returns the damaged + /// origins, and whether any elements were invalidated. pub fn flush( &mut self, document_element: Option, - ) -> (StylesheetIterator, OriginSet, bool) + ) -> (OriginSet, bool) where E: TElement, { @@ -195,6 +193,7 @@ where let mut origins = OriginSet::empty(); let mut have_invalidations = false; + for (data, origin) in self.invalidation_data.iter_mut_origins() { if data.dirty { have_invalidations |= data.invalidations.flush(document_element); @@ -203,7 +202,7 @@ where } } - (self.iter(), origins, have_invalidations) + (origins, have_invalidations) } /// Flush stylesheets, but without running any of the invalidation passes. diff --git a/components/style/stylist.rs b/components/style/stylist.rs index 2ea8d5313ac..38b0861c047 100644 --- a/components/style/stylist.rs +++ b/components/style/stylist.rs @@ -490,13 +490,15 @@ impl Stylist { } let author_style_disabled = self.stylesheets.author_style_disabled(); - let (doc_stylesheets, origins_to_rebuild, have_invalidations) = + let (origins_to_rebuild, have_invalidations) = self.stylesheets.flush(document_element); if origins_to_rebuild.is_empty() { return have_invalidations; } + let doc_stylesheets = self.stylesheets.iter(); + self.num_rebuilds += 1; // Update viewport_constraints regardless of which origins' @@ -520,9 +522,11 @@ impl Stylist { }; self.viewport_constraints = - ViewportConstraints::maybe_new(&self.device, - &cascaded_rule, - self.quirks_mode); + ViewportConstraints::maybe_new( + &self.device, + &cascaded_rule, + self.quirks_mode, + ); if let Some(ref constraints) = self.viewport_constraints { self.device.account_for_viewport_rule(constraints);