mirror of
https://github.com/servo/servo.git
synced 2025-08-03 04:30:10 +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
|
@ -11,13 +11,11 @@
|
|||
|
||||
use network_listener::{NetworkListener, PreInvoke};
|
||||
use script_task::ScriptChan;
|
||||
use net_traits::{AsyncResponseTarget, AsyncResponseListener, ResponseAction, Metadata};
|
||||
use net_traits::{SerializableStringResult};
|
||||
use net_traits::{AsyncResponseListener, ResponseAction, Metadata};
|
||||
|
||||
use std::ascii::AsciiExt;
|
||||
use std::borrow::ToOwned;
|
||||
use std::cell::RefCell;
|
||||
use std::sync::mpsc;
|
||||
use std::sync::{Arc, Mutex};
|
||||
use time;
|
||||
use time::{now, Timespec};
|
||||
|
@ -133,14 +131,9 @@ impl CORSRequest {
|
|||
listener: listener,
|
||||
response: RefCell::new(None),
|
||||
};
|
||||
let (action_sender, action_receiver) = mpsc::channel();
|
||||
let listener = NetworkListener {
|
||||
context: Arc::new(Mutex::new(context)),
|
||||
script_chan: script_chan,
|
||||
receiver: action_receiver,
|
||||
};
|
||||
let response_target = AsyncResponseTarget {
|
||||
sender: action_sender,
|
||||
};
|
||||
|
||||
// TODO: this exists only to make preflight check non-blocking
|
||||
|
@ -151,8 +144,7 @@ impl CORSRequest {
|
|||
let mut context = listener.context.lock();
|
||||
let context = context.as_mut().unwrap();
|
||||
*context.response.borrow_mut() = Some(response);
|
||||
response_target.invoke_with_listener(ResponseAction::ResponseComplete(
|
||||
SerializableStringResult(Ok(()))));
|
||||
listener.notify(ResponseAction::ResponseComplete(Ok(())));
|
||||
});
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue