Kill DOMManipulationTask

Just use a bare Runnable value.
This commit is contained in:
Anthony Ramine 2017-09-08 10:03:35 +02:00
parent dfc38fabdc
commit 9252f2b8a2
2 changed files with 8 additions and 22 deletions

View file

@ -114,7 +114,7 @@ use std::sync::mpsc::{Receiver, Select, Sender, channel};
use std::thread; use std::thread;
use style::context::ReflowGoal; use style::context::ReflowGoal;
use style::thread_state; use style::thread_state;
use task_source::dom_manipulation::{DOMManipulationTask, DOMManipulationTaskSource}; use task_source::dom_manipulation::DOMManipulationTaskSource;
use task_source::file_reading::FileReadingTaskSource; use task_source::file_reading::FileReadingTaskSource;
use task_source::history_traversal::HistoryTraversalTaskSource; use task_source::history_traversal::HistoryTraversalTaskSource;
use task_source::networking::NetworkingTaskSource; use task_source::networking::NetworkingTaskSource;
@ -276,8 +276,6 @@ pub enum MainThreadScriptMsg {
/// dispatched to ScriptThread). Allows for a replace bool to be passed. If true, /// dispatched to ScriptThread). Allows for a replace bool to be passed. If true,
/// the current entry will be replaced instead of a new entry being added. /// the current entry will be replaced instead of a new entry being added.
Navigate(PipelineId, LoadData, bool), Navigate(PipelineId, LoadData, bool),
/// Tasks that originate from the DOM manipulation task source
DOMManipulation(DOMManipulationTask),
/// Tasks that originate from the user interaction task source /// Tasks that originate from the user interaction task source
UserInteraction(UserInteractionTask), UserInteraction(UserInteractionTask),
/// Notifies the script thread that a new worklet has been loaded, and thus the page should be /// Notifies the script thread that a new worklet has been loaded, and thus the page should be
@ -1298,8 +1296,6 @@ impl ScriptThread {
self.collect_reports(reports_chan), self.collect_reports(reports_chan),
MainThreadScriptMsg::WorkletLoaded(pipeline_id) => MainThreadScriptMsg::WorkletLoaded(pipeline_id) =>
self.handle_worklet_loaded(pipeline_id), self.handle_worklet_loaded(pipeline_id),
MainThreadScriptMsg::DOMManipulation(task) =>
task.handle_task(self),
MainThreadScriptMsg::UserInteraction(task) => MainThreadScriptMsg::UserInteraction(task) =>
task.handle_task(self), task.handle_task(self),
} }

View file

@ -7,7 +7,8 @@ use dom::bindings::refcounted::Trusted;
use dom::event::{EventBubbles, EventCancelable, EventRunnable, SimpleEventRunnable}; use dom::event::{EventBubbles, EventCancelable, EventRunnable, SimpleEventRunnable};
use dom::eventtarget::EventTarget; use dom::eventtarget::EventTarget;
use dom::window::Window; use dom::window::Window;
use script_thread::{MainThreadScriptMsg, Runnable, RunnableWrapper, ScriptThread}; use script_runtime::{CommonScriptMsg, ScriptThreadEventCategory};
use script_thread::{MainThreadScriptMsg, Runnable, RunnableWrapper};
use servo_atoms::Atom; use servo_atoms::Atom;
use std::fmt; use std::fmt;
use std::result::Result; use std::result::Result;
@ -29,8 +30,11 @@ impl TaskSource for DOMManipulationTaskSource {
wrapper: &RunnableWrapper) wrapper: &RunnableWrapper)
-> Result<(), ()> -> Result<(), ()>
where T: Runnable + Send + 'static { where T: Runnable + Send + 'static {
let msg = DOMManipulationTask(wrapper.wrap_runnable(msg)); let msg = MainThreadScriptMsg::Common(CommonScriptMsg::RunnableMsg(
self.0.send(MainThreadScriptMsg::DOMManipulation(msg)).map_err(|_| ()) ScriptThreadEventCategory::ScriptEvent,
wrapper.wrap_runnable(msg),
));
self.0.send(msg).map_err(|_| ())
} }
} }
@ -60,17 +64,3 @@ impl DOMManipulationTaskSource {
let _ = self.queue(runnable, window.upcast()); let _ = self.queue(runnable, window.upcast());
} }
} }
pub struct DOMManipulationTask(pub Box<Runnable + Send>);
impl fmt::Debug for DOMManipulationTask {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "DOMManipulationTask(...)")
}
}
impl DOMManipulationTask {
pub fn handle_task(self, script_thread: &ScriptThread) {
self.0.main_thread_handler(script_thread);
}
}