aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom
diff options
context:
space:
mode:
authorbors-servo <lbergstrom+bors@mozilla.com>2016-04-28 01:57:52 -0700
committerbors-servo <lbergstrom+bors@mozilla.com>2016-04-28 01:57:52 -0700
commit78e23f4c9b54c51012c672839545682b38455d67 (patch)
treeef018d11af50bea792a5abe06e6b0473a49c292d /components/script/dom
parentfbc575407d68a516a2b15a0d1c74150a9011aa9c (diff)
parent33acb1937cb65643fc23365998d47846c2f46478 (diff)
downloadservo-78e23f4c9b54c51012c672839545682b38455d67.tar.gz
servo-78e23f4c9b54c51012c672839545682b38455d67.zip
Auto merge of #10890 - servo:trusted, r=nox
Remove extraneous script_chan parameter from Trusted::new <!-- Reviewable:start --> This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/10890) <!-- Reviewable:end -->
Diffstat (limited to 'components/script/dom')
-rw-r--r--components/script/dom/bindings/refcounted.rs3
-rw-r--r--components/script/dom/document.rs5
-rw-r--r--components/script/dom/filereader.rs6
-rw-r--r--components/script/dom/htmldetailselement.rs6
-rw-r--r--components/script/dom/htmlformelement.rs5
-rw-r--r--components/script/dom/htmlimageelement.rs2
-rw-r--r--components/script/dom/htmlinputelement.rs6
-rw-r--r--components/script/dom/htmllinkelement.rs5
-rw-r--r--components/script/dom/htmlscriptelement.rs16
-rw-r--r--components/script/dom/servohtmlparser.rs12
-rw-r--r--components/script/dom/storage.rs5
-rw-r--r--components/script/dom/websocket.rs14
-rw-r--r--components/script/dom/worker.rs4
-rw-r--r--components/script/dom/xmlhttprequest.rs6
14 files changed, 36 insertions, 59 deletions
diff --git a/components/script/dom/bindings/refcounted.rs b/components/script/dom/bindings/refcounted.rs
index c01136cc735..c5d5be9bae9 100644
--- a/components/script/dom/bindings/refcounted.rs
+++ b/components/script/dom/bindings/refcounted.rs
@@ -72,7 +72,8 @@ impl<T: Reflectable> Trusted<T> {
/// Create a new `Trusted<T>` instance from an existing DOM pointer. The DOM object will
/// be prevented from being GCed for the duration of the resulting `Trusted<T>` object's
/// lifetime.
- pub fn new(ptr: &T, script_chan: Box<ScriptChan + Send>) -> Trusted<T> {
+ pub fn new(ptr: &T) -> Trusted<T> {
+ let script_chan = ptr.global().r().script_chan();
LIVE_REFERENCES.with(|ref r| {
let r = r.borrow();
let live_references = r.as_ref().unwrap();
diff --git a/components/script/dom/document.rs b/components/script/dom/document.rs
index fffd81fdac6..6e7f69636b5 100644
--- a/components/script/dom/document.rs
+++ b/components/script/dom/document.rs
@@ -100,7 +100,7 @@ use num_traits::ToPrimitive;
use origin::Origin;
use parse::{ParserRoot, ParserRef, MutNullableParserField};
use script_runtime::ScriptChan;
-use script_thread::{MainThreadScriptChan, MainThreadScriptMsg, Runnable};
+use script_thread::{MainThreadScriptMsg, Runnable};
use script_traits::UntrustedNodeAddress;
use script_traits::{AnimationState, MouseButton, MouseEventType, MozBrowserEvent};
use script_traits::{ScriptMsg as ConstellationMsg, ScriptToCompositorMsg};
@@ -1460,8 +1460,7 @@ impl Document {
update_with_current_time_ms(&self.dom_content_loaded_event_start);
- let chan = MainThreadScriptChan(self.window().main_thread_script_chan().clone()).clone();
- let doctarget = Trusted::new(self.upcast::<EventTarget>(), chan);
+ let doctarget = Trusted::new(self.upcast::<EventTarget>());
let task_source = self.window().dom_manipulation_task_source();
let _ = task_source.queue(DOMManipulationTask::FireEvent(
atom!("DOMContentLoaded"), doctarget, EventBubbles::Bubbles, EventCancelable::NotCancelable));
diff --git a/components/script/dom/filereader.rs b/components/script/dom/filereader.rs
index af9fe864246..b31f9c3d5a6 100644
--- a/components/script/dom/filereader.rs
+++ b/components/script/dom/filereader.rs
@@ -333,8 +333,6 @@ impl FileReader {
}
fn read(&self, function: FileReaderFunction, blob: &Blob, label: Option<DOMString>) -> ErrorResult {
- let root = self.global();
- let global = root.r();
// Step 1
if self.ready_state.get() == FileReaderReadyState::Loading {
return Err(Error::InvalidState);
@@ -359,10 +357,10 @@ impl FileReader {
let load_data = ReadMetaData::new(String::from(type_), label.map(String::from), function);
- let fr = Trusted::new(self, global.file_reading_task_source());
+ let fr = Trusted::new(self);
let gen_id = self.generation_id.get();
- let script_chan = global.file_reading_task_source();
+ let script_chan = self.global().r().file_reading_task_source();
spawn_named("file reader async operation".to_owned(), move || {
perform_annotated_read_operation(gen_id, load_data, blob_contents, fr, script_chan)
diff --git a/components/script/dom/htmldetailselement.rs b/components/script/dom/htmldetailselement.rs
index 921a3f7736f..3f00e53220c 100644
--- a/components/script/dom/htmldetailselement.rs
+++ b/components/script/dom/htmldetailselement.rs
@@ -14,8 +14,7 @@ use dom::eventtarget::EventTarget;
use dom::htmlelement::HTMLElement;
use dom::node::{Node, window_from_node};
use dom::virtualmethods::VirtualMethods;
-use script_runtime::ScriptChan;
-use script_thread::{MainThreadScriptChan, Runnable};
+use script_thread::Runnable;
use std::cell::Cell;
use string_cache::Atom;
use task_source::dom_manipulation::DOMManipulationTask;
@@ -74,8 +73,7 @@ impl VirtualMethods for HTMLDetailsElement {
let window = window_from_node(self);
let window = window.r();
let task_source = window.dom_manipulation_task_source();
- let chan = MainThreadScriptChan(window.main_thread_script_chan().clone()).clone();
- let details = Trusted::new(self, chan.clone());
+ let details = Trusted::new(self);
let runnable = box ToggleEventRunnable {
element: details,
toggle_number: counter
diff --git a/components/script/dom/htmlformelement.rs b/components/script/dom/htmlformelement.rs
index 13c7a1200c6..999ccacc8a8 100644
--- a/components/script/dom/htmlformelement.rs
+++ b/components/script/dom/htmlformelement.rs
@@ -38,7 +38,7 @@ use hyper::method::Method;
use hyper::mime;
use msg::constellation_msg::{LoadData, PipelineId};
use script_runtime::ScriptChan;
-use script_thread::{MainThreadScriptChan, MainThreadScriptMsg, Runnable};
+use script_thread::{MainThreadScriptMsg, Runnable};
use std::borrow::ToOwned;
use std::cell::Cell;
use std::sync::mpsc::Sender;
@@ -331,13 +331,12 @@ impl HTMLFormElement {
self.generation_id.set(GenerationId(prev_id + 1));
// Step 2
- let chan = MainThreadScriptChan(window.main_thread_script_chan().clone()).clone();
let nav = box PlannedNavigation {
load_data: load_data,
pipeline_id: window.pipeline(),
script_chan: window.main_thread_script_chan().clone(),
generation_id: self.generation_id.get(),
- form: Trusted::new(self, chan)
+ form: Trusted::new(self)
};
// Step 3
diff --git a/components/script/dom/htmlimageelement.rs b/components/script/dom/htmlimageelement.rs
index a02546afddc..b71e6b845cd 100644
--- a/components/script/dom/htmlimageelement.rs
+++ b/components/script/dom/htmlimageelement.rs
@@ -128,7 +128,7 @@ impl HTMLImageElement {
let img_url = img_url.unwrap();
self.current_request.borrow_mut().url = Some(img_url.clone());
- let trusted_node = Trusted::new(self, window.networking_task_source());
+ let trusted_node = Trusted::new(self);
let (responder_sender, responder_receiver) = ipc::channel().unwrap();
let script_chan = window.networking_task_source();
let wrapper = window.get_runnable_wrapper();
diff --git a/components/script/dom/htmlinputelement.rs b/components/script/dom/htmlinputelement.rs
index ab753053b8f..1b828c10e27 100644
--- a/components/script/dom/htmlinputelement.rs
+++ b/components/script/dom/htmlinputelement.rs
@@ -1122,13 +1122,11 @@ pub struct ChangeEventRunnable {
impl ChangeEventRunnable {
pub fn send(node: &Node) {
- let window = window_from_node(node);
- let window = window.r();
- let chan = window.user_interaction_task_source();
- let handler = Trusted::new(node, chan.clone());
+ let handler = Trusted::new(node);
let dispatcher = ChangeEventRunnable {
element: handler,
};
+ let chan = window_from_node(node).user_interaction_task_source();
let _ = chan.send(CommonScriptMsg::RunnableMsg(InputEvent, box dispatcher));
}
}
diff --git a/components/script/dom/htmllinkelement.rs b/components/script/dom/htmllinkelement.rs
index a971a90ecbf..7b0e4e95eef 100644
--- a/components/script/dom/htmllinkelement.rs
+++ b/components/script/dom/htmllinkelement.rs
@@ -204,8 +204,7 @@ impl HTMLLinkElement {
let media = parse_media_query_list(&mut css_parser);
// TODO: #8085 - Don't load external stylesheets if the node's mq doesn't match.
- let script_chan = document.window().networking_task_source();
- let elem = Trusted::new(self, script_chan.clone());
+ let elem = Trusted::new(self);
let context = Arc::new(Mutex::new(StylesheetContext {
elem: elem,
@@ -218,7 +217,7 @@ impl HTMLLinkElement {
let (action_sender, action_receiver) = ipc::channel().unwrap();
let listener = NetworkListener {
context: context,
- script_chan: script_chan,
+ script_chan: document.window().networking_task_source(),
};
let response_target = AsyncResponseTarget {
sender: action_sender,
diff --git a/components/script/dom/htmlscriptelement.rs b/components/script/dom/htmlscriptelement.rs
index 76402db7a70..67b959dfe77 100644
--- a/components/script/dom/htmlscriptelement.rs
+++ b/components/script/dom/htmlscriptelement.rs
@@ -36,7 +36,6 @@ use js::jsval::UndefinedValue;
use net_traits::{AsyncResponseListener, AsyncResponseTarget, Metadata, NetworkError};
use network_listener::{NetworkListener, PreInvoke};
use script_runtime::ScriptChan;
-use script_thread::MainThreadScriptChan;
use std::ascii::AsciiExt;
use std::cell::Cell;
use std::mem;
@@ -299,8 +298,7 @@ impl HTMLScriptElement {
// Step 16.6.
// TODO(#9186): use the fetch infrastructure.
- let script_chan = doc.window().networking_task_source();
- let elem = Trusted::new(self, script_chan.clone());
+ let elem = Trusted::new(self);
let context = Arc::new(Mutex::new(ScriptContext {
elem: elem,
@@ -313,7 +311,7 @@ impl HTMLScriptElement {
let (action_sender, action_receiver) = ipc::channel().unwrap();
let listener = NetworkListener {
context: context,
- script_chan: script_chan,
+ script_chan: doc.window().networking_task_source(),
};
let response_target = AsyncResponseTarget {
sender: action_sender,
@@ -465,19 +463,15 @@ impl HTMLScriptElement {
if external {
self.dispatch_load_event();
} else {
- let chan = MainThreadScriptChan(window.main_thread_script_chan().clone()).clone();
- let script_element = Trusted::new(self.upcast::<EventTarget>(), chan);
+ let script_element = Trusted::new(self.upcast::<EventTarget>());
let task_source = window.dom_manipulation_task_source();
task_source.queue(DOMManipulationTask::FireSimpleEvent(atom!("load"), script_element)).unwrap();
}
}
pub fn queue_error_event(&self) {
- let window = window_from_node(self);
- let window = window.r();
- let chan = MainThreadScriptChan(window.main_thread_script_chan().clone()).clone();
- let task_source = window.dom_manipulation_task_source();
- let script_element = Trusted::new(self.upcast::<EventTarget>(), chan);
+ let task_source = window_from_node(self).dom_manipulation_task_source();
+ let script_element = Trusted::new(self.upcast::<EventTarget>());
task_source.queue(DOMManipulationTask::FireSimpleEvent(atom!("error"), script_element)).unwrap();
}
diff --git a/components/script/dom/servohtmlparser.rs b/components/script/dom/servohtmlparser.rs
index 95fc19dbb25..4436d286aff 100644
--- a/components/script/dom/servohtmlparser.rs
+++ b/components/script/dom/servohtmlparser.rs
@@ -62,21 +62,17 @@ pub struct ParserContext {
id: PipelineId,
/// The subpage associated with this document.
subpage: Option<SubpageId>,
- /// The target event loop for the response notifications.
- script_chan: Box<ScriptChan + Send>,
/// The URL for this document.
url: Url,
}
impl ParserContext {
- pub fn new(id: PipelineId, subpage: Option<SubpageId>, script_chan: Box<ScriptChan + Send>,
- url: Url) -> ParserContext {
+ pub fn new(id: PipelineId, subpage: Option<SubpageId>, url: Url) -> ParserContext {
ParserContext {
parser: None,
is_synthesized_document: false,
id: id,
subpage: subpage,
- script_chan: script_chan,
url: url,
}
}
@@ -107,11 +103,9 @@ impl AsyncResponseListener for ParserContext {
let parser = parser.r();
self.parser = Some(match parser {
ParserRef::HTML(parser) => TrustedParser::HTML(
- Trusted::new(parser,
- self.script_chan.clone())),
+ Trusted::new(parser)),
ParserRef::XML(parser) => TrustedParser::XML(
- Trusted::new(parser,
- self.script_chan.clone())),
+ Trusted::new(parser)),
});
match content_type {
diff --git a/components/script/dom/storage.rs b/components/script/dom/storage.rs
index 76e7c6a29f6..ff77402ac1e 100644
--- a/components/script/dom/storage.rs
+++ b/components/script/dom/storage.rs
@@ -17,7 +17,7 @@ use ipc_channel::ipc;
use net_traits::storage_thread::{StorageThread, StorageThreadMsg, StorageType};
use page::IterablePage;
use script_runtime::ScriptChan;
-use script_thread::{MainThreadRunnable, MainThreadScriptChan, ScriptThread};
+use script_thread::{MainThreadRunnable, ScriptThread};
use task_source::dom_manipulation::DOMManipulationTask;
use url::Url;
use util::str::DOMString;
@@ -160,8 +160,7 @@ impl Storage {
let global_root = self.global();
let global_ref = global_root.r();
let task_source = global_ref.as_window().dom_manipulation_task_source();
- let chan = MainThreadScriptChan(global_ref.as_window().main_thread_script_chan().clone()).clone();
- let trusted_storage = Trusted::new(self, chan);
+ let trusted_storage = Trusted::new(self);
task_source.queue(DOMManipulationTask::SendStorageNotification(
box StorageEventRunnable::new(trusted_storage, key, old_value, new_value))).unwrap();
}
diff --git a/components/script/dom/websocket.rs b/components/script/dom/websocket.rs
index 08d24e2fbe2..615881e789b 100644
--- a/components/script/dom/websocket.rs
+++ b/components/script/dom/websocket.rs
@@ -245,7 +245,7 @@ impl WebSocket {
// Step 7.
let ws = WebSocket::new(global, resource_url.clone());
- let address = Trusted::new(ws.r(), global.networking_task_source());
+ let address = Trusted::new(ws.r());
let connect_data = WebSocketConnectData {
resource_url: resource_url.clone(),
@@ -314,9 +314,7 @@ impl WebSocket {
WebSocketRequestState::Closing | WebSocketRequestState::Closed => true,
};
- let global = self.global();
- let chan = global.r().networking_task_source();
- let address = Trusted::new(self, chan.clone());
+ let address = Trusted::new(self);
match data_byte_len.checked_add(self.buffered_amount.get()) {
None => panic!(),
@@ -334,7 +332,8 @@ impl WebSocket {
address: address,
};
- chan.send(CommonScriptMsg::RunnableMsg(WebSocketEvent, task)).unwrap();
+ let global = self.global();
+ global.r().script_chan().send(CommonScriptMsg::RunnableMsg(WebSocketEvent, task)).unwrap();
}
Ok(true)
@@ -440,9 +439,8 @@ impl WebSocketMethods for WebSocket {
will abort connecting the websocket*/
self.ready_state.set(WebSocketRequestState::Closing);
- let global = self.global();
- let sender = global.r().networking_task_source();
- let address = Trusted::new(self, sender.clone());
+ let address = Trusted::new(self);
+ let sender = self.global().r().networking_task_source();
fail_the_websocket_connection(address, sender);
}
WebSocketRequestState::Open => {
diff --git a/components/script/dom/worker.rs b/components/script/dom/worker.rs
index 0f0d06d488f..0e31181a222 100644
--- a/components/script/dom/worker.rs
+++ b/components/script/dom/worker.rs
@@ -81,7 +81,7 @@ impl Worker {
let (sender, receiver) = channel();
let closing = Arc::new(AtomicBool::new(false));
let worker = Worker::new(global, sender.clone(), closing.clone());
- let worker_ref = Trusted::new(worker.r(), global.script_chan());
+ let worker_ref = Trusted::new(worker.r());
let worker_id = global.get_next_worker_id();
let (devtools_sender, devtools_receiver) = ipc::channel().unwrap();
@@ -166,7 +166,7 @@ impl WorkerMethods for Worker {
// https://html.spec.whatwg.org/multipage/#dom-worker-postmessage
fn PostMessage(&self, cx: *mut JSContext, message: HandleValue) -> ErrorResult {
let data = try!(StructuredCloneData::write(cx, message));
- let address = Trusted::new(self, self.global().r().script_chan());
+ let address = Trusted::new(self);
self.sender.send((address, WorkerScriptMsg::DOMMessage(data))).unwrap();
Ok(())
}
diff --git a/components/script/dom/xmlhttprequest.rs b/components/script/dom/xmlhttprequest.rs
index 574de7b8e8b..a061230898b 100644
--- a/components/script/dom/xmlhttprequest.rs
+++ b/components/script/dom/xmlhttprequest.rs
@@ -1079,11 +1079,11 @@ impl XMLHttpRequest {
fn set_timeout(&self, duration_ms: u32) {
// Sets up the object to timeout in a given number of milliseconds
// This will cancel all previous timeouts
- let global = self.global();
let callback = OneshotTimerCallback::XhrTimeout(XHRTimeoutCallback {
- xhr: Trusted::new(self, global.r().networking_task_source()),
+ xhr: Trusted::new(self),
generation_id: self.generation_id.get(),
});
+ let global = self.global();
let duration = Length::new(duration_ms as u64);
*self.timeout_cancel.borrow_mut() = Some(global.r().schedule_callback(callback, duration));
}
@@ -1300,7 +1300,7 @@ impl XMLHttpRequest {
Ok(req) => req,
};
- let xhr = Trusted::new(self, global.networking_task_source());
+ let xhr = Trusted::new(self);
let context = Arc::new(Mutex::new(XHRContext {
xhr: xhr,