mirror of
https://github.com/servo/servo.git
synced 2025-08-02 20:20:14 +01:00
script: Remove note_rendering_opportunity
and rendering_opportunity
(#34575)
A rendering opportunity is now unconditionally triggered by handling IPC messages in the `ScriptThread`, unless animations are running in which case it's driven by the compositor. We can now remove calls to `note_rendering_opportunity` and `rendering_opportunity`. There is one tricky case, which is when a promise completion during a microtask checkpoint dirties the page again. In this case we need to trigger a new rendering opportunity, unless animations are running. In a followup change, when not driven by the compositor, rendering opportunities will be driven by a timed task, meaning we can remove this workaround. Signed-off-by: Martin Robinson <mrobinson@igalia.com>
This commit is contained in:
parent
7fcde1f7a3
commit
2bcee38e52
6 changed files with 63 additions and 66 deletions
|
@ -43,3 +43,19 @@ impl TaskSource for RenderingTaskSource {
|
|||
self.0.send(msg_task).map_err(|_| ())
|
||||
}
|
||||
}
|
||||
|
||||
impl RenderingTaskSource {
|
||||
/// This queues a task that will not be cancelled when its associated
|
||||
/// global scope gets destroyed.
|
||||
pub fn queue_unconditionally<T>(&self, task: T) -> Result<(), ()>
|
||||
where
|
||||
T: TaskOnce + 'static,
|
||||
{
|
||||
self.0.send(CommonScriptMsg::Task(
|
||||
ScriptThreadEventCategory::NetworkEvent,
|
||||
Box::new(task),
|
||||
Some(self.1),
|
||||
RenderingTaskSource::NAME,
|
||||
))
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue