From a98fd5e2b63d9dbb6beb815343c3a0550e603f59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emilio=20Cobos=20=C3=81lvarez?= Date: Tue, 22 Aug 2017 14:41:48 +0200 Subject: [PATCH] style: Make the StyleSheetSet::flush API slightly nicer. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit MozReview-Commit-ID: LfJxZA9zhaE Signed-off-by: Emilio Cobos Álvarez --- components/style/stylesheet_set.rs | 11 +++++------ components/style/stylist.rs | 12 ++++++++---- 2 files changed, 13 insertions(+), 10 deletions(-) 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);