mirror of
https://github.com/servo/servo.git
synced 2025-07-22 23:03:42 +01:00
script: Make the resource task communication use IPC channels.
This commit is contained in:
parent
44d13f7fd4
commit
2aa5174246
35 changed files with 234 additions and 458 deletions
|
@ -40,14 +40,14 @@ use js::jsval::UndefinedValue;
|
|||
use encoding::all::UTF_8;
|
||||
use encoding::label::encoding_from_whatwg_label;
|
||||
use encoding::types::{Encoding, EncodingRef, DecoderTrap};
|
||||
use ipc_channel::ipc;
|
||||
use ipc_channel::router::ROUTER;
|
||||
use net_traits::{Metadata, AsyncResponseListener, AsyncResponseTarget};
|
||||
use util::str::{DOMString, HTML_SPACE_CHARACTERS, StaticStringVec};
|
||||
use html5ever::tree_builder::NextParserState;
|
||||
use std::cell::{RefCell, Cell};
|
||||
use std::mem;
|
||||
use std::sync::mpsc;
|
||||
use std::sync::{Arc, Mutex};
|
||||
use std::thread;
|
||||
use string_cache::Atom;
|
||||
use url::{Url, UrlParser};
|
||||
|
||||
|
@ -332,16 +332,17 @@ impl<'a> HTMLScriptElementHelpers for &'a HTMLScriptElement {
|
|||
url: url.clone(),
|
||||
}));
|
||||
|
||||
let (action_sender, action_receiver) = mpsc::channel();
|
||||
let (action_sender, action_receiver) = ipc::channel().unwrap();
|
||||
let listener = box NetworkListener {
|
||||
context: context,
|
||||
script_chan: script_chan,
|
||||
receiver: action_receiver,
|
||||
};
|
||||
let response_target = AsyncResponseTarget {
|
||||
sender: action_sender,
|
||||
};
|
||||
thread::spawn(move || listener.run());
|
||||
ROUTER.add_route(action_receiver.to_opaque(), box move |message| {
|
||||
listener.notify(message.to().unwrap());
|
||||
});
|
||||
|
||||
doc.r().load_async(LoadType::Script(url), response_target);
|
||||
|
||||
|
@ -400,7 +401,7 @@ impl<'a> HTMLScriptElementHelpers for &'a HTMLScriptElement {
|
|||
// encoding as the fallback encoding.
|
||||
|
||||
(UTF_8.decode(&*bytes, DecoderTrap::Replace).unwrap(), true,
|
||||
metadata.final_url.0)
|
||||
metadata.final_url)
|
||||
},
|
||||
|
||||
// Step 2.b.1.c.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue