mirror of
https://github.com/servo/servo.git
synced 2025-08-03 04:30:10 +01:00
auto merge of #5360 : snf/servo/main_thread_runnable, r=jdm
This commit is contained in:
commit
7f587f6cb5
1 changed files with 8 additions and 0 deletions
|
@ -155,6 +155,10 @@ pub trait Runnable {
|
|||
fn handler(self: Box<Self>);
|
||||
}
|
||||
|
||||
pub trait MainThreadRunnable {
|
||||
fn handler(self: Box<Self>, script_task: &ScriptTask);
|
||||
}
|
||||
|
||||
/// Messages used to control script event loops, such as ScriptTask and
|
||||
/// DedicatedWorkerGlobalScope.
|
||||
pub enum ScriptMsg {
|
||||
|
@ -176,6 +180,8 @@ pub enum ScriptMsg {
|
|||
DOMMessage(StructuredCloneData),
|
||||
/// Generic message that encapsulates event handling.
|
||||
RunnableMsg(Box<Runnable+Send>),
|
||||
/// Generic message for running tasks in the ScriptTask
|
||||
MainThreadRunnableMsg(Box<MainThreadRunnable+Send>),
|
||||
/// A DOM object's last pinned reference was removed (dispatched to all tasks).
|
||||
RefcountCleanup(TrustedReference),
|
||||
/// The final network response for a page has arrived.
|
||||
|
@ -675,6 +681,8 @@ impl ScriptTask {
|
|||
panic!("unexpected message"),
|
||||
ScriptMsg::RunnableMsg(runnable) =>
|
||||
runnable.handler(),
|
||||
ScriptMsg::MainThreadRunnableMsg(runnable) =>
|
||||
runnable.handler(self),
|
||||
ScriptMsg::RefcountCleanup(addr) =>
|
||||
LiveDOMReferences::cleanup(self.get_cx(), addr),
|
||||
ScriptMsg::PageFetchComplete(id, subpage, response) =>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue