forked from mirrors/gecko-dev
This is a large-ish PR that contains the following: * A new directory is created under `components/script/` called `task_source`, which houses all the stuff for different task sources. Note that the ones that I have now aren't exhaustive - there are more task sources than just the generic ones. * A `DOMManipulationTaskMsg` which eliminates some usage of `Runnable`s to fire events. Instead, they send event information to the `DOMManipulationTaskSource` and lets the `ScriptTask` handle all the event firing. * Re-added `fn script_chan`, since I can't think of any other way to give `Trusted` values an appropriate sender. * Rewrote step 7 of [the end](https://html.spec.whatwg.org/multipage/syntax.html#the-end) to make use of the `DOMManipulationTaskSource` Partial #7959 Source-Repo: https://github.com/servo/servo Source-Revision: 740965e39f4d62e5807d21734ed9a7a881eca392
21 lines
791 B
Rust
21 lines
791 B
Rust
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
use script_thread::{CommonScriptMsg, MainThreadScriptMsg, ScriptChan};
|
|
use std::sync::mpsc::Sender;
|
|
|
|
#[derive(JSTraceable)]
|
|
pub struct FileReadingTaskSource(pub Sender<MainThreadScriptMsg>);
|
|
|
|
impl ScriptChan for FileReadingTaskSource {
|
|
fn send(&self, msg: CommonScriptMsg) -> Result<(), ()> {
|
|
let FileReadingTaskSource(ref chan) = *self;
|
|
chan.send(MainThreadScriptMsg::Common(msg)).map_err(|_| ())
|
|
}
|
|
|
|
fn clone(&self) -> Box<ScriptChan + Send> {
|
|
let FileReadingTaskSource(ref chan) = *self;
|
|
box FileReadingTaskSource((*chan).clone())
|
|
}
|
|
}
|