зеркало из https://github.com/mozilla/gecko-dev.git
servo: Merge #14622 - stylo: Track the last restyle generation properly (from emilio:last-restyle); r=bholley
I couldn't reproduce locally, but I believe this fixes: https://bugzilla.mozilla.org/show_bug.cgi?id=1323890 r? @heycam Source-Repo: https://github.com/servo/servo Source-Revision: f6163c77b9ac979f8406ef6ffe90e8c8e4a054cc
This commit is contained in:
Родитель
7b2299345c
Коммит
950451a844
|
@ -25,6 +25,9 @@ pub struct PerDocumentStyleDataImpl {
|
|||
/// Rule processor.
|
||||
pub stylist: Arc<Stylist>,
|
||||
|
||||
/// Last restyle generation.
|
||||
pub last_restyle_generation: u32,
|
||||
|
||||
/// List of stylesheets, mirrored from Gecko.
|
||||
pub stylesheets: Vec<Arc<Stylesheet>>,
|
||||
|
||||
|
@ -64,6 +67,7 @@ impl PerDocumentStyleData {
|
|||
|
||||
PerDocumentStyleData(AtomicRefCell::new(PerDocumentStyleDataImpl {
|
||||
stylist: Arc::new(Stylist::new(device)),
|
||||
last_restyle_generation: 0,
|
||||
stylesheets: vec![],
|
||||
stylesheets_changed: true,
|
||||
new_animations_sender: new_anims_sender,
|
||||
|
@ -101,6 +105,12 @@ impl PerDocumentStyleDataImpl {
|
|||
self.stylesheets_changed = false;
|
||||
}
|
||||
}
|
||||
|
||||
pub fn next_generation(&mut self) -> u32 {
|
||||
self.last_restyle_generation =
|
||||
self.last_restyle_generation.wrapping_add(1);
|
||||
self.last_restyle_generation
|
||||
}
|
||||
}
|
||||
|
||||
unsafe impl HasFFI for PerDocumentStyleData {
|
||||
|
|
|
@ -106,7 +106,7 @@ fn create_shared_context(mut per_doc_data: &mut AtomicRefMut<PerDocumentStyleDat
|
|||
// FIXME (bug 1303229): Use the actual viewport size here
|
||||
viewport_size: Size2D::new(Au(0), Au(0)),
|
||||
screen_size_changed: false,
|
||||
generation: 0,
|
||||
generation: per_doc_data.next_generation(),
|
||||
goal: ReflowGoal::ForScriptQuery,
|
||||
stylist: per_doc_data.stylist.clone(),
|
||||
running_animations: per_doc_data.running_animations.clone(),
|
||||
|
|
Загрузка…
Ссылка в новой задаче