aboutsummaryrefslogtreecommitdiffstats
path: root/components/script
diff options
context:
space:
mode:
Diffstat (limited to 'components/script')
-rw-r--r--components/script/cors.rs8
-rw-r--r--components/script/dom/bindings/codegen/CodegenRust.py1
-rw-r--r--components/script/dom/bindings/global.rs4
-rw-r--r--components/script/dom/bindings/js.rs10
-rw-r--r--components/script/dom/bindings/trace.rs14
-rw-r--r--components/script/dom/bindings/utils.rs4
-rw-r--r--components/script/dom/blob.rs4
-rw-r--r--components/script/dom/browsercontext.rs2
-rw-r--r--components/script/dom/canvasrenderingcontext2d.rs8
-rw-r--r--components/script/dom/console.rs2
-rw-r--r--components/script/dom/cssstyledeclaration.rs4
-rw-r--r--components/script/dom/dedicatedworkerglobalscope.rs16
-rw-r--r--components/script/dom/document.rs2
-rw-r--r--components/script/dom/element.rs2
-rw-r--r--components/script/dom/eventdispatcher.rs10
-rw-r--r--components/script/dom/eventtarget.rs49
-rw-r--r--components/script/dom/filereader.rs2
-rw-r--r--components/script/dom/formdata.rs2
-rw-r--r--components/script/dom/htmlcollection.rs69
-rw-r--r--components/script/dom/htmliframeelement.rs4
-rw-r--r--components/script/dom/htmlimageelement.rs4
-rw-r--r--components/script/dom/navigatorinfo.rs5
-rw-r--r--components/script/dom/node.rs39
-rw-r--r--components/script/dom/nodeiterator.rs4
-rw-r--r--components/script/dom/progressevent.rs2
-rw-r--r--components/script/dom/range.rs20
-rw-r--r--components/script/dom/servohtmlparser.rs6
-rw-r--r--components/script/dom/storage.rs2
-rw-r--r--components/script/dom/textencoder.rs4
-rw-r--r--components/script/dom/treewalker.rs56
-rw-r--r--components/script/dom/url.rs2
-rw-r--r--components/script/dom/urlhelper.rs2
-rw-r--r--components/script/dom/virtualmethods.rs2
-rw-r--r--components/script/dom/webglactiveinfo.rs2
-rw-r--r--components/script/dom/webglrenderingcontext.rs14
-rw-r--r--components/script/dom/webglshaderprecisionformat.rs2
-rw-r--r--components/script/dom/webgluniformlocation.rs2
-rw-r--r--components/script/dom/websocket.rs4
-rw-r--r--components/script/dom/window.rs26
-rw-r--r--components/script/dom/workerglobalscope.rs16
-rw-r--r--components/script/dom/xmlhttprequest.rs30
-rw-r--r--components/script/dom/xmlhttprequesteventtarget.rs4
-rw-r--r--components/script/layout_interface.rs4
-rw-r--r--components/script/network_listener.rs2
-rw-r--r--components/script/page.rs4
-rw-r--r--components/script/parse/html.rs4
-rw-r--r--components/script/script_task.rs73
-rw-r--r--components/script/textinput.rs7
-rw-r--r--components/script/timers.rs12
49 files changed, 264 insertions, 307 deletions
diff --git a/components/script/cors.rs b/components/script/cors.rs
index 35111966fde..108f37790a3 100644
--- a/components/script/cors.rs
+++ b/components/script/cors.rs
@@ -106,10 +106,10 @@ impl CORSRequest {
}
pub fn http_fetch_async(&self,
- listener: Box<AsyncCORSResponseListener+Send>,
- script_chan: Box<ScriptChan+Send>) {
+ listener: Box<AsyncCORSResponseListener + Send>,
+ script_chan: Box<ScriptChan + Send>) {
struct CORSContext {
- listener: Box<AsyncCORSResponseListener+Send>,
+ listener: Box<AsyncCORSResponseListener + Send>,
response: RefCell<Option<CORSResponse>>,
}
@@ -341,7 +341,7 @@ pub struct CORSCacheEntry {
}
impl CORSCacheEntry {
- fn new(origin:Url,
+ fn new(origin: Url,
url: Url,
max_age: u32,
credentials: bool,
diff --git a/components/script/dom/bindings/codegen/CodegenRust.py b/components/script/dom/bindings/codegen/CodegenRust.py
index 0aad0a2547b..4e8b3d40101 100644
--- a/components/script/dom/bindings/codegen/CodegenRust.py
+++ b/components/script/dom/bindings/codegen/CodegenRust.py
@@ -4697,7 +4697,6 @@ class CGDictionary(CGThing):
descriptorProvider,
isMember="Dictionary",
defaultValue=member.defaultValue,
- failureCode="return Err(());",
exceptionCode="return Err(());"))
for member in dictionary.members]
diff --git a/components/script/dom/bindings/global.rs b/components/script/dom/bindings/global.rs
index 6c2b36c40e9..75664ae3be9 100644
--- a/components/script/dom/bindings/global.rs
+++ b/components/script/dom/bindings/global.rs
@@ -149,7 +149,7 @@ impl<'a> GlobalRef<'a> {
/// `ScriptChan` used to send messages to the event loop of this global's
/// thread.
- pub fn script_chan(&self) -> Box<ScriptChan+Send> {
+ pub fn script_chan(&self) -> Box<ScriptChan + Send> {
match *self {
GlobalRef::Window(ref window) => window.script_chan(),
GlobalRef::Worker(ref worker) => worker.script_chan(),
@@ -159,7 +159,7 @@ impl<'a> GlobalRef<'a> {
/// Create a new sender/receiver pair that can be used to implement an on-demand
/// event loop. Used for implementing web APIs that require blocking semantics
/// without resorting to nested event loops.
- pub fn new_script_pair(&self) -> (Box<ScriptChan+Send>, Box<ScriptPort+Send>) {
+ pub fn new_script_pair(&self) -> (Box<ScriptChan + Send>, Box<ScriptPort + Send>) {
match *self {
GlobalRef::Window(ref window) => window.new_script_pair(),
GlobalRef::Worker(ref worker) => worker.new_script_pair(),
diff --git a/components/script/dom/bindings/js.rs b/components/script/dom/bindings/js.rs
index b622485f602..5b05d3ea99f 100644
--- a/components/script/dom/bindings/js.rs
+++ b/components/script/dom/bindings/js.rs
@@ -207,11 +207,11 @@ impl MutHeapJSVal {
/// `JS<T>`.
#[must_root]
#[derive(JSTraceable)]
-pub struct MutHeap<T: HeapGCValue+Copy> {
+pub struct MutHeap<T: HeapGCValue + Copy> {
val: Cell<T>,
}
-impl<T: HeapGCValue+Copy> MutHeap<T> {
+impl<T: HeapGCValue + Copy> MutHeap<T> {
/// Create a new `MutHeap`.
pub fn new(initial: T) -> MutHeap<T> {
MutHeap {
@@ -236,11 +236,11 @@ impl<T: HeapGCValue+Copy> MutHeap<T> {
/// barriers are enforced.
#[must_root]
#[derive(JSTraceable, HeapSizeOf)]
-pub struct MutNullableHeap<T: HeapGCValue+Copy> {
+pub struct MutNullableHeap<T: HeapGCValue + Copy> {
ptr: Cell<Option<T>>
}
-impl<T: HeapGCValue+Copy> MutNullableHeap<T> {
+impl<T: HeapGCValue + Copy> MutNullableHeap<T> {
/// Create a new `MutNullableHeap`.
pub fn new(initial: Option<T>) -> MutNullableHeap<T> {
MutNullableHeap {
@@ -288,7 +288,7 @@ impl<T: Reflectable> MutNullableHeap<JS<T>> {
}
}
-impl<T: HeapGCValue+Copy> Default for MutNullableHeap<T> {
+impl<T: HeapGCValue + Copy> Default for MutNullableHeap<T> {
fn default() -> MutNullableHeap<T> {
MutNullableHeap {
ptr: Cell::new(None)
diff --git a/components/script/dom/bindings/trace.rs b/components/script/dom/bindings/trace.rs
index b0e082583f8..d05e099613f 100644
--- a/components/script/dom/bindings/trace.rs
+++ b/components/script/dom/bindings/trace.rs
@@ -178,7 +178,7 @@ impl<T: JSTraceable> JSTraceable for *mut T {
}
}
-impl<T: JSTraceable+Copy> JSTraceable for Cell<T> {
+impl<T: JSTraceable + Copy> JSTraceable for Cell<T> {
fn trace(&self, trc: *mut JSTracer) {
self.get().trace(trc)
}
@@ -212,7 +212,7 @@ impl JSTraceable for Heap<JSVal> {
impl<T: JSTraceable> JSTraceable for Vec<T> {
#[inline]
fn trace(&self, trc: *mut JSTracer) {
- for e in self.iter() {
+ for e in &*self {
e.trace(trc);
}
}
@@ -246,7 +246,7 @@ impl<T: JSTraceable, U: JSTraceable> JSTraceable for Result<T, U> {
}
}
-impl<K,V,S> JSTraceable for HashMap<K, V, S>
+impl<K, V, S> JSTraceable for HashMap<K, V, S>
where K: Hash + Eq + JSTraceable,
V: JSTraceable,
S: HashState,
@@ -254,7 +254,7 @@ impl<K,V,S> JSTraceable for HashMap<K, V, S>
{
#[inline]
fn trace(&self, trc: *mut JSTracer) {
- for (k, v) in self.iter() {
+ for (k, v) in &*self {
k.trace(trc);
v.trace(trc);
}
@@ -306,7 +306,7 @@ no_jsmanaged_fields!(WebGLError);
no_jsmanaged_fields!(ProfilerChan);
no_jsmanaged_fields!(PseudoElement);
-impl JSTraceable for Box<ScriptChan+Send> {
+impl JSTraceable for Box<ScriptChan + Send> {
#[inline]
fn trace(&self, _trc: *mut JSTracer) {
// Do nothing
@@ -327,7 +327,7 @@ impl<'a> JSTraceable for &'a str {
}
}
-impl<A,B> JSTraceable for fn(A) -> B {
+impl<A, B> JSTraceable for fn(A) -> B {
#[inline]
fn trace(&self, _: *mut JSTracer) {
// Do nothing
@@ -341,7 +341,7 @@ impl<T> JSTraceable for IpcSender<T> where T: Deserialize + Serialize {
}
}
-impl JSTraceable for Box<LayoutRPC+'static> {
+impl JSTraceable for Box<LayoutRPC + 'static> {
#[inline]
fn trace(&self, _: *mut JSTracer) {
// Do nothing
diff --git a/components/script/dom/bindings/utils.rs b/components/script/dom/bindings/utils.rs
index d5c7d589ed4..9f458f83c2e 100644
--- a/components/script/dom/bindings/utils.rs
+++ b/components/script/dom/bindings/utils.rs
@@ -677,7 +677,7 @@ pub unsafe fn finalize_global(obj: *mut JSObject) {
/// Trace the resources held by reserved slots of a global object
pub unsafe fn trace_global(tracer: *mut JSTracer, obj: *mut JSObject) {
let array = get_proto_or_iface_array(obj);
- for proto in (&*array).iter() {
+ for proto in (*array).iter() {
if !proto.is_null() {
trace_object(tracer, "prototype", &*(proto as *const *mut JSObject as *const Heap<*mut JSObject>));
}
@@ -690,7 +690,7 @@ unsafe extern fn wrap(cx: *mut JSContext,
-> *mut JSObject {
// FIXME terrible idea. need security wrappers
// https://github.com/servo/servo/issues/2382
- WrapperNew(cx, obj, GetCrossCompartmentWrapper())
+ WrapperNew(cx, obj, GetCrossCompartmentWrapper(), ptr::null(), false)
}
unsafe extern fn pre_wrap(cx: *mut JSContext, _existing: HandleObject,
diff --git a/components/script/dom/blob.rs b/components/script/dom/blob.rs
index 51a5ac0ab8c..04f7e782d0e 100644
--- a/components/script/dom/blob.rs
+++ b/components/script/dom/blob.rs
@@ -35,7 +35,7 @@ pub struct Blob {
isClosed_: Cell<bool>
}
-fn is_ascii_printable(string: &DOMString) -> bool{
+fn is_ascii_printable(string: &DOMString) -> bool {
// Step 5.1 in Sec 5.1 of File API spec
// http://dev.w3.org/2006/webapi/FileAPI/#constructorBlob
return string.chars().all(|c| { c >= '\x20' && c <= '\x7E' })
@@ -92,7 +92,7 @@ impl<'a> BlobHelpers for &'a Blob {
impl<'a> BlobMethods for &'a Blob {
// https://dev.w3.org/2006/webapi/FileAPI/#dfn-size
- fn Size(self) -> u64{
+ fn Size(self) -> u64 {
match self.bytes {
None => 0,
Some(ref bytes) => bytes.len() as u64
diff --git a/components/script/dom/browsercontext.rs b/components/script/dom/browsercontext.rs
index 8fe518844ba..bab6ca7a5f2 100644
--- a/components/script/dom/browsercontext.rs
+++ b/components/script/dom/browsercontext.rs
@@ -78,7 +78,7 @@ impl BrowsingContext {
let _ar = JSAutoRequest::new(cx);
let parent = win.reflector().get_jsobject();
let _ac = JSAutoCompartment::new(cx, parent.get());
- let wrapper = unsafe { WrapperNew(cx, parent, handler) };
+ let wrapper = unsafe { WrapperNew(cx, parent, handler, ptr::null(), false) };
assert!(!wrapper.is_null());
self.window_proxy.set(wrapper);
}
diff --git a/components/script/dom/canvasrenderingcontext2d.rs b/components/script/dom/canvasrenderingcontext2d.rs
index 6d3c6edddda..14863009b95 100644
--- a/components/script/dom/canvasrenderingcontext2d.rs
+++ b/components/script/dom/canvasrenderingcontext2d.rs
@@ -173,7 +173,7 @@ impl CanvasRenderingContext2D {
// The source rectangle is the rectangle whose corners are the four points (sx, sy),
// (sx+sw, sy), (sx+sw, sy+sh), (sx, sy+sh).
- let source_rect = Rect::new(Point2D::new(sx.min(sx+sw), sy.min(sy+sh)),
+ let source_rect = Rect::new(Point2D::new(sx.min(sx + sw), sy.min(sy + sh)),
Size2D::new(sw.abs(), sh.abs()));
// When the source rectangle is outside the source image,
@@ -191,8 +191,10 @@ impl CanvasRenderingContext2D {
// The destination rectangle is the rectangle whose corners are the four points (dx, dy),
// (dx+dw, dy), (dx+dw, dy+dh), (dx, dy+dh).
- let dest_rect = Rect::new(Point2D::new(dx.min(dx+dest_rect_width_scaled), dy.min(dy+dest_rect_height_scaled)),
- Size2D::new(dest_rect_width_scaled.abs(), dest_rect_height_scaled.abs()));
+ let dest_rect = Rect::new(Point2D::new(dx.min(dx + dest_rect_width_scaled),
+ dy.min(dy + dest_rect_height_scaled)),
+ Size2D::new(dest_rect_width_scaled.abs(),
+ dest_rect_height_scaled.abs()));
let source_rect = Rect::new(Point2D::new(source_rect_clipped.origin.x,
source_rect_clipped.origin.y),
diff --git a/components/script/dom/console.rs b/components/script/dom/console.rs
index 0d7d3c9d8f3..0fca952d492 100644
--- a/components/script/dom/console.rs
+++ b/components/script/dom/console.rs
@@ -88,7 +88,7 @@ impl<'a> ConsoleMethods for &'a Console {
fn prepare_message(logLevel: LogLevel, message: String) -> ConsoleMessage {
//TODO: Sending fake values for filename, lineNumber and columnNumber in LogMessage; adjust later
- ConsoleMessage{
+ ConsoleMessage {
message: message,
logLevel: logLevel,
filename: "test".to_owned(),
diff --git a/components/script/dom/cssstyledeclaration.rs b/components/script/dom/cssstyledeclaration.rs
index bbfdbc8231e..4c5fc207674 100644
--- a/components/script/dom/cssstyledeclaration.rs
+++ b/components/script/dom/cssstyledeclaration.rs
@@ -162,7 +162,7 @@ impl<'a> CSSStyleDeclarationMethods for &'a CSSStyleDeclaration {
let mut list = vec!();
// Step 2.2
- for longhand in longhand_properties.iter() {
+ for longhand in &*longhand_properties {
// Step 2.2.1
let declaration = owner.get_declaration(&Atom::from_slice(&longhand));
@@ -327,7 +327,7 @@ impl<'a> CSSStyleDeclarationMethods for &'a CSSStyleDeclaration {
match longhands_from_shorthand(&property) {
// Step 4
Some(longhands) => {
- for longhand in longhands.iter() {
+ for longhand in &*longhands {
elem.remove_inline_style_property(longhand)
}
}
diff --git a/components/script/dom/dedicatedworkerglobalscope.rs b/components/script/dom/dedicatedworkerglobalscope.rs
index 3ef4104c11c..d72e9243b95 100644
--- a/components/script/dom/dedicatedworkerglobalscope.rs
+++ b/components/script/dom/dedicatedworkerglobalscope.rs
@@ -150,7 +150,7 @@ pub struct DedicatedWorkerGlobalScope {
worker: DOMRefCell<Option<TrustedWorkerAddress>>,
#[ignore_heap_size_of = "Can't measure trait objects"]
/// Sender to the parent thread.
- parent_sender: Box<ScriptChan+Send>,
+ parent_sender: Box<ScriptChan + Send>,
}
impl DedicatedWorkerGlobalScope {
@@ -159,7 +159,7 @@ impl DedicatedWorkerGlobalScope {
id: PipelineId,
devtools_port: Receiver<DevtoolScriptControlMsg>,
runtime: Rc<Runtime>,
- parent_sender: Box<ScriptChan+Send>,
+ parent_sender: Box<ScriptChan + Send>,
own_sender: Sender<(TrustedWorkerAddress, WorkerScriptMsg)>,
receiver: Receiver<(TrustedWorkerAddress, WorkerScriptMsg)>)
-> DedicatedWorkerGlobalScope {
@@ -180,7 +180,7 @@ impl DedicatedWorkerGlobalScope {
id: PipelineId,
devtools_port: Receiver<DevtoolScriptControlMsg>,
runtime: Rc<Runtime>,
- parent_sender: Box<ScriptChan+Send>,
+ parent_sender: Box<ScriptChan + Send>,
own_sender: Sender<(TrustedWorkerAddress, WorkerScriptMsg)>,
receiver: Receiver<(TrustedWorkerAddress, WorkerScriptMsg)>)
-> Root<DedicatedWorkerGlobalScope> {
@@ -197,7 +197,7 @@ impl DedicatedWorkerGlobalScope {
id: PipelineId,
devtools_ipc_port: IpcReceiver<DevtoolScriptControlMsg>,
worker: TrustedWorkerAddress,
- parent_sender: Box<ScriptChan+Send>,
+ parent_sender: Box<ScriptChan + Send>,
own_sender: Sender<(TrustedWorkerAddress, WorkerScriptMsg)>,
receiver: Receiver<(TrustedWorkerAddress, WorkerScriptMsg)>) {
let serialized_worker_url = worker_url.serialize();
@@ -247,14 +247,14 @@ impl DedicatedWorkerGlobalScope {
}
pub trait DedicatedWorkerGlobalScopeHelpers {
- fn script_chan(self) -> Box<ScriptChan+Send>;
+ fn script_chan(self) -> Box<ScriptChan + Send>;
fn pipeline(self) -> PipelineId;
- fn new_script_pair(self) -> (Box<ScriptChan+Send>, Box<ScriptPort+Send>);
+ fn new_script_pair(self) -> (Box<ScriptChan + Send>, Box<ScriptPort + Send>);
fn process_event(self, msg: CommonScriptMsg);
}
impl<'a> DedicatedWorkerGlobalScopeHelpers for &'a DedicatedWorkerGlobalScope {
- fn script_chan(self) -> Box<ScriptChan+Send> {
+ fn script_chan(self) -> Box<ScriptChan + Send> {
box WorkerThreadWorkerChan {
sender: self.own_sender.clone(),
worker: self.worker.borrow().as_ref().unwrap().clone(),
@@ -265,7 +265,7 @@ impl<'a> DedicatedWorkerGlobalScopeHelpers for &'a DedicatedWorkerGlobalScope {
self.id
}
- fn new_script_pair(self) -> (Box<ScriptChan+Send>, Box<ScriptPort+Send>) {
+ fn new_script_pair(self) -> (Box<ScriptChan + Send>, Box<ScriptPort + Send>) {
let (tx, rx) = channel();
let chan = box SendableWorkerScriptChan {
sender: tx,
diff --git a/components/script/dom/document.rs b/components/script/dom/document.rs
index c3d81e20ba5..c538893506b 100644
--- a/components/script/dom/document.rs
+++ b/components/script/dom/document.rs
@@ -899,7 +899,7 @@ impl<'a> DocumentHelpers<'a> for &'a Document {
}
} else {
let fragment = NodeCast::from_root(self.CreateDocumentFragment());
- for node in nodes.into_iter() {
+ for node in nodes {
match node {
NodeOrString::eNode(node) => {
try!(fragment.r().AppendChild(node.r()));
diff --git a/components/script/dom/element.rs b/components/script/dom/element.rs
index 8da1c8c9373..6c8bdf028ba 100644
--- a/components/script/dom/element.rs
+++ b/components/script/dom/element.rs
@@ -685,7 +685,7 @@ impl<'a> ElementHelpers<'a> for &'a Element {
// Usually, the reference count will be 1 here. But transitions could make it greater
// than that.
let existing_declarations = Arc::make_unique(existing_declarations);
- for declaration in existing_declarations.iter_mut() {
+ for declaration in &mut *existing_declarations {
if declaration.name() == property_decl.name() {
*declaration = property_decl;
return;
diff --git a/components/script/dom/eventdispatcher.rs b/components/script/dom/eventdispatcher.rs
index a99acb7b911..3451b22d108 100644
--- a/components/script/dom/eventdispatcher.rs
+++ b/components/script/dom/eventdispatcher.rs
@@ -47,7 +47,7 @@ pub fn dispatch_event<'a, 'b>(target: &'a EventTarget,
event.set_current_target(cur_target);
for listener in &listeners {
// Explicitly drop any exception on the floor.
- let _ = listener.HandleEvent_(*cur_target, event, Report);
+ listener.call_or_handle_event(*cur_target, event, Report);
if event.stop_immediate() {
break;
@@ -70,10 +70,10 @@ pub fn dispatch_event<'a, 'b>(target: &'a EventTarget,
event.set_current_target(target.clone());
let opt_listeners = target.get_listeners(&type_);
- for listeners in opt_listeners.iter() {
- for listener in listeners.iter() {
+ for listeners in opt_listeners {
+ for listener in listeners {
// Explicitly drop any exception on the floor.
- let _ = listener.HandleEvent_(target, event, Report);
+ listener.call_or_handle_event(target, event, Report);
if event.stop_immediate() {
break;
@@ -92,7 +92,7 @@ pub fn dispatch_event<'a, 'b>(target: &'a EventTarget,
event.set_current_target(cur_target);
for listener in &listeners {
// Explicitly drop any exception on the floor.
- let _ = listener.HandleEvent_(*cur_target, event, Report);
+ listener.call_or_handle_event(*cur_target, event, Report);
if event.stop_immediate() {
break;
diff --git a/components/script/dom/eventtarget.rs b/components/script/dom/eventtarget.rs
index 79679ff14d2..31c8e366daa 100644
--- a/components/script/dom/eventtarget.rs
+++ b/components/script/dom/eventtarget.rs
@@ -2,7 +2,7 @@
* 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 dom::bindings::callback::CallbackContainer;
+use dom::bindings::callback::{CallbackContainer, ExceptionHandling};
use dom::bindings::cell::DOMRefCell;
use dom::bindings::codegen::Bindings::EventHandlerBinding::EventHandlerNonNull;
use dom::bindings::codegen::Bindings::EventListenerBinding::EventListener;
@@ -37,6 +37,8 @@ use url::Url;
use std::collections::HashMap;
+pub type EventHandler = EventHandlerNonNull;
+
#[derive(JSTraceable, Copy, Clone, PartialEq, HeapSizeOf)]
pub enum ListenerPhase {
Capturing,
@@ -94,7 +96,7 @@ impl EventTargetTypeId {
#[derive(JSTraceable, Clone, PartialEq)]
pub enum EventListenerType {
Additive(Rc<EventListener>),
- Inline(Rc<EventListener>),
+ Inline(Rc<EventHandler>),
}
impl HeapSizeOf for EventListenerType {
@@ -105,10 +107,17 @@ impl HeapSizeOf for EventListenerType {
}
impl EventListenerType {
- fn get_listener(&self) -> Rc<EventListener> {
+ pub fn call_or_handle_event<T: Reflectable>(&self,
+ object: &T,
+ event: &Event,
+ exception_handle: ExceptionHandling) {
match *self {
- EventListenerType::Additive(ref listener) |
- EventListenerType::Inline(ref listener) => listener.clone(),
+ EventListenerType::Additive(ref listener) => {
+ let _ = listener.HandleEvent_(object, event, exception_handle);
+ },
+ EventListenerType::Inline(ref handler) => {
+ let _ = handler.Call_(object, event, exception_handle);
+ },
}
}
}
@@ -137,17 +146,17 @@ impl EventTarget {
}
}
- pub fn get_listeners(&self, type_: &str) -> Option<Vec<Rc<EventListener>>> {
+ pub fn get_listeners(&self, type_: &str) -> Option<Vec<EventListenerType>> {
self.handlers.borrow().get(type_).map(|listeners| {
- listeners.iter().map(|entry| entry.listener.get_listener()).collect()
+ listeners.iter().map(|entry| entry.listener.clone()).collect()
})
}
pub fn get_listeners_for(&self, type_: &str, desired_phase: ListenerPhase)
- -> Option<Vec<Rc<EventListener>>> {
+ -> Option<Vec<EventListenerType>> {
self.handlers.borrow().get(type_).map(|listeners| {
let filtered = listeners.iter().filter(|entry| entry.phase == desired_phase);
- filtered.map(|entry| entry.listener.get_listener()).collect()
+ filtered.map(|entry| entry.listener.clone()).collect()
})
}
@@ -164,8 +173,8 @@ pub trait EventTargetHelpers {
fn dispatch_event(self, event: &Event) -> bool;
fn set_inline_event_listener(self,
ty: DOMString,
- listener: Option<Rc<EventListener>>);
- fn get_inline_event_listener(self, ty: DOMString) -> Option<Rc<EventListener>>;
+ listener: Option<Rc<EventHandler>>);
+ fn get_inline_event_listener(self, ty: DOMString) -> Option<Rc<EventHandler>>;
fn set_event_handler_uncompiled(self,
cx: *mut JSContext,
url: Url,
@@ -192,7 +201,7 @@ impl<'a> EventTargetHelpers for &'a EventTarget {
fn set_inline_event_listener(self,
ty: DOMString,
- listener: Option<Rc<EventListener>>) {
+ listener: Option<Rc<EventHandler>>) {
let mut handlers = self.handlers.borrow_mut();
let entries = match handlers.entry(ty) {
Occupied(entry) => entry.into_mut(),
@@ -226,15 +235,15 @@ impl<'a> EventTargetHelpers for &'a EventTarget {
}
}
- fn get_inline_event_listener(self, ty: DOMString) -> Option<Rc<EventListener>> {
+ fn get_inline_event_listener(self, ty: DOMString) -> Option<Rc<EventHandler>> {
let handlers = self.handlers.borrow();
let entries = handlers.get(&ty);
- entries.and_then(|entries| entries.iter().find(|entry| {
+ entries.and_then(|entries| entries.iter().filter_map(|entry| {
match entry.listener {
- EventListenerType::Inline(_) => true,
- _ => false,
+ EventListenerType::Inline(ref handler) => Some(handler.clone()),
+ _ => None,
}
- }).map(|entry| entry.listener.get_listener()))
+ }).next())
}
#[allow(unsafe_code)]
@@ -283,7 +292,7 @@ impl<'a> EventTargetHelpers for &'a EventTarget {
self, ty: &str, listener: Option<Rc<T>>)
{
let event_listener = listener.map(|listener|
- EventListener::new(listener.callback()));
+ EventHandlerNonNull::new(listener.callback()));
self.set_inline_event_listener(ty.to_owned(), event_listener);
}
@@ -332,8 +341,8 @@ impl<'a> EventTargetMethods for &'a EventTarget {
match listener {
Some(ref listener) => {
let mut handlers = self.handlers.borrow_mut();
- let mut entry = handlers.get_mut(&ty);
- for entry in entry.iter_mut() {
+ let entry = handlers.get_mut(&ty);
+ for entry in entry {
let phase = if capture { ListenerPhase::Capturing } else { ListenerPhase::Bubbling };
let old_entry = EventListenerEntry {
phase: phase,
diff --git a/components/script/dom/filereader.rs b/components/script/dom/filereader.rs
index 4b8721a21e6..f819a2b395c 100644
--- a/components/script/dom/filereader.rs
+++ b/components/script/dom/filereader.rs
@@ -267,7 +267,7 @@ impl<'a> FileReaderMethods for &'a FileReader {
}
// https://w3c.github.io/FileAPI/#dfn-readAsText
- fn ReadAsText(self, blob: &Blob, label:Option<DOMString>) -> ErrorResult {
+ fn ReadAsText(self, blob: &Blob, label: Option<DOMString>) -> ErrorResult {
self.read(FileReaderFunction::ReadAsText, blob, label)
}
diff --git a/components/script/dom/formdata.rs b/components/script/dom/formdata.rs
index ff2b6d78fdc..cd26613cb74 100644
--- a/components/script/dom/formdata.rs
+++ b/components/script/dom/formdata.rs
@@ -121,7 +121,7 @@ impl<'a> FormDataMethods for &'a FormData {
}
}
-trait PrivateFormDataHelpers{
+trait PrivateFormDataHelpers {
fn get_file_from_blob(self, value: &Blob, filename: Option<DOMString>) -> Root<File>;
}
diff --git a/components/script/dom/htmlcollection.rs b/components/script/dom/htmlcollection.rs
index 88414aa6a84..bbac05d5b97 100644
--- a/components/script/dom/htmlcollection.rs
+++ b/components/script/dom/htmlcollection.rs
@@ -24,28 +24,25 @@ pub trait CollectionFilter : JSTraceable {
#[derive(JSTraceable)]
#[must_root]
-pub enum CollectionTypeId {
- Static(Vec<JS<Element>>),
- Live(JS<Node>, Box<CollectionFilter+'static>)
-}
+pub struct Collection(JS<Node>, Box<CollectionFilter + 'static>);
#[dom_struct]
#[derive(HeapSizeOf)]
pub struct HTMLCollection {
reflector_: Reflector,
#[ignore_heap_size_of = "Contains a trait object; can't measure due to #6870"]
- collection: CollectionTypeId,
+ collection: Collection,
}
impl HTMLCollection {
- fn new_inherited(collection: CollectionTypeId) -> HTMLCollection {
+ fn new_inherited(collection: Collection) -> HTMLCollection {
HTMLCollection {
reflector_: Reflector::new(),
collection: collection,
}
}
- pub fn new(window: &Window, collection: CollectionTypeId) -> Root<HTMLCollection> {
+ pub fn new(window: &Window, collection: Collection) -> Root<HTMLCollection> {
reflect_dom_object(box HTMLCollection::new_inherited(collection),
GlobalRef::Window(window), HTMLCollectionBinding::Wrap)
}
@@ -53,8 +50,8 @@ impl HTMLCollection {
impl HTMLCollection {
pub fn create(window: &Window, root: &Node,
- filter: Box<CollectionFilter+'static>) -> Root<HTMLCollection> {
- HTMLCollection::new(window, CollectionTypeId::Live(JS::from_ref(root), filter))
+ filter: Box<CollectionFilter + 'static>) -> Root<HTMLCollection> {
+ HTMLCollection::new(window, Collection(JS::from_ref(root), filter))
}
fn all_elements(window: &Window, root: &Node,
@@ -179,34 +176,28 @@ impl HTMLCollection {
impl<'a> HTMLCollectionMethods for &'a HTMLCollection {
// https://dom.spec.whatwg.org/#dom-htmlcollection-length
+ #[allow(unrooted_must_root)]
fn Length(self) -> u32 {
- match self.collection {
- CollectionTypeId::Static(ref elems) => elems.len() as u32,
- CollectionTypeId::Live(ref root, ref filter) => {
- let root = root.root();
- HTMLCollection::traverse(root.r())
- .filter(|element| filter.filter(element.r(), root.r()))
- .count() as u32
- }
- }
+ let Collection(ref root, ref filter) = self.collection;
+ let root = root.root();
+ HTMLCollection::traverse(root.r())
+ .filter(|element| filter.filter(element.r(), root.r()))
+ .count() as u32
}
// https://dom.spec.whatwg.org/#dom-htmlcollection-item
+ #[allow(unrooted_must_root)]
fn Item(self, index: u32) -> Option<Root<Element>> {
let index = index as usize;
- match self.collection {
- CollectionTypeId::Static(ref elems) => elems
- .get(index).map(|t| t.root()),
- CollectionTypeId::Live(ref root, ref filter) => {
- let root = root.root();
- HTMLCollection::traverse(root.r())
- .filter(|element| filter.filter(element.r(), root.r()))
- .nth(index)
- }
- }
+ let Collection(ref root, ref filter) = self.collection;
+ let root = root.root();
+ HTMLCollection::traverse(root.r())
+ .filter(|element| filter.filter(element.r(), root.r()))
+ .nth(index)
}
// https://dom.spec.whatwg.org/#dom-htmlcollection-nameditem
+ #[allow(unrooted_must_root)]
fn NamedItem(self, key: DOMString) -> Option<Root<Element>> {
// Step 1.
if key.is_empty() {
@@ -214,21 +205,13 @@ impl<'a> HTMLCollectionMethods for &'a HTMLCollection {
}
// Step 2.
- match self.collection {
- CollectionTypeId::Static(ref elems) => elems.iter()
- .map(|elem| elem.root())
- .find(|elem| {
- elem.r().get_string_attribute(&atom!("name")) == key ||
- elem.r().get_string_attribute(&atom!("id")) == key }),
- CollectionTypeId::Live(ref root, ref filter) => {
- let root = root.root();
- HTMLCollection::traverse(root.r())
- .filter(|element| filter.filter(element.r(), root.r()))
- .find(|elem| {
- elem.r().get_string_attribute(&atom!("name")) == key ||
- elem.r().get_string_attribute(&atom!("id")) == key })
- }
- }
+ let Collection(ref root, ref filter) = self.collection;
+ let root = root.root();
+ HTMLCollection::traverse(root.r())
+ .filter(|element| filter.filter(element.r(), root.r()))
+ .find(|elem| {
+ elem.r().get_string_attribute(&atom!("name")) == key ||
+ elem.r().get_string_attribute(&atom!("id")) == key})
}
// https://dom.spec.whatwg.org/#dom-htmlcollection-item
diff --git a/components/script/dom/htmliframeelement.rs b/components/script/dom/htmliframeelement.rs
index 978489f3f3b..eed9a99aac0 100644
--- a/components/script/dom/htmliframeelement.rs
+++ b/components/script/dom/htmliframeelement.rs
@@ -7,8 +7,8 @@ use dom::bindings::codegen::Bindings::HTMLIFrameElementBinding;
use dom::bindings::codegen::Bindings::HTMLIFrameElementBinding::HTMLIFrameElementMethods;
use dom::bindings::codegen::Bindings::WindowBinding::WindowMethods;
use dom::bindings::codegen::InheritTypes::{NodeCast, ElementCast, EventCast};
-use dom::bindings::codegen::InheritTypes::{EventTargetCast, HTMLElementCast,
- HTMLIFrameElementDerived};
+use dom::bindings::codegen::InheritTypes::{EventTargetCast, HTMLElementCast};
+use dom::bindings::codegen::InheritTypes::HTMLIFrameElementDerived;
use dom::bindings::conversions::ToJSValConvertible;
use dom::bindings::error::{ErrorResult, Fallible};
use dom::bindings::error::Error::NotSupported;
diff --git a/components/script/dom/htmlimageelement.rs b/components/script/dom/htmlimageelement.rs
index ce08c2b7a89..53b2cf7fc22 100644
--- a/components/script/dom/htmlimageelement.rs
+++ b/components/script/dom/htmlimageelement.rs
@@ -8,8 +8,8 @@ use dom::bindings::cell::DOMRefCell;
use dom::bindings::codegen::Bindings::HTMLImageElementBinding;
use dom::bindings::codegen::Bindings::HTMLImageElementBinding::HTMLImageElementMethods;
use dom::bindings::codegen::Bindings::WindowBinding::WindowMethods;
-use dom::bindings::codegen::InheritTypes::{NodeCast, ElementCast, EventTargetCast, HTMLElementCast,
- HTMLImageElementDerived};
+use dom::bindings::codegen::InheritTypes::{NodeCast, ElementCast, EventTargetCast};
+use dom::bindings::codegen::InheritTypes::{HTMLElementCast, HTMLImageElementDerived};
use dom::bindings::error::Fallible;
use dom::bindings::global::GlobalRef;
use dom::bindings::js::{LayoutJS, Root};
diff --git a/components/script/dom/navigatorinfo.rs b/components/script/dom/navigatorinfo.rs
index d4aec6999ab..4982908969b 100644
--- a/components/script/dom/navigatorinfo.rs
+++ b/components/script/dom/navigatorinfo.rs
@@ -28,10 +28,7 @@ pub fn Platform() -> DOMString {
}
pub fn UserAgent() -> DOMString {
- match opts::get().user_agent {
- Some(ref user_agent) => user_agent.clone(),
- None => "".to_owned(),
- }
+ opts::get().user_agent.clone()
}
pub fn AppVersion() -> DOMString {
diff --git a/components/script/dom/node.rs b/components/script/dom/node.rs
index ac5b6ac3401..6ca62f181e3 100644
--- a/components/script/dom/node.rs
+++ b/components/script/dom/node.rs
@@ -264,7 +264,7 @@ impl LayoutDataRef {
/// Borrows the layout data immutably. This function is *not* thread-safe.
#[inline]
- pub fn borrow<'a>(&'a self) -> Ref<'a,Option<LayoutData>> {
+ pub fn borrow(&self) -> Ref<Option<LayoutData>> {
debug_assert!(task_state::get().is_layout());
self.data_cell.borrow()
}
@@ -275,7 +275,7 @@ impl LayoutDataRef {
/// prevent CSS selector matching from mutably accessing nodes it's not supposed to and racing
/// on it. This has already resulted in one bug!
#[inline]
- pub fn borrow_mut<'a>(&'a self) -> RefMut<'a,Option<LayoutData>> {
+ pub fn borrow_mut(&self) -> RefMut<Option<LayoutData>> {
debug_assert!(task_state::get().is_layout());
self.data_cell.borrow_mut()
}
@@ -908,7 +908,7 @@ impl<'a> NodeHelpers for &'a Node {
// Step 1.
match parse_author_origin_selector_list_from_str(&selectors) {
// Step 2.
- Err(()) => return Err(Syntax),
+ Err(()) => Err(Syntax),
// Step 3.
Ok(ref selectors) => {
let root = self.ancestors().last();
@@ -1326,7 +1326,7 @@ impl Iterator for FollowingNodeIterator {
}
}
self.current = None;
- return None
+ None
}
}
@@ -1372,7 +1372,7 @@ impl Iterator for PrecedingNodeIterator {
}
self.current = None;
- return None
+ None
}
}
@@ -1464,7 +1464,7 @@ pub enum CloneChildrenFlag {
fn as_uintptr<T>(t: &T) -> uintptr_t { t as *const T as uintptr_t }
impl Node {
- pub fn reflect_node<N: Reflectable+NodeBase>
+ pub fn reflect_node<N: Reflectable + NodeBase>
(node: Box<N>,
document: &Document,
wrap_fn: extern "Rust" fn(*mut JSContext, GlobalRef, Box<N>) -> Root<N>)
@@ -1663,7 +1663,7 @@ impl Node {
Node::insert(node, parent, reference_child, SuppressObserver::Unsuppressed);
// Step 6.
- return Ok(Root::from_ref(node))
+ Ok(Root::from_ref(node))
}
// https://dom.spec.whatwg.org/#concept-node-insert
@@ -1867,7 +1867,7 @@ impl Node {
let copy_elem = ElementCast::to_ref(copy.r()).unwrap();
let window = document.r().window();
- for ref attr in node_elem.attrs().iter() {
+ for ref attr in &*node_elem.attrs() {
let attr = attr.root();
let newattr =
Attr::new(window.r(),
@@ -2088,24 +2088,13 @@ impl<'a> NodeMethods for &'a Node {
// https://dom.spec.whatwg.org/#dom-node-nodevalue
fn GetNodeValue(self) -> Option<DOMString> {
- match self.type_id {
- NodeTypeId::CharacterData(..) => {
- let chardata: &CharacterData = CharacterDataCast::to_ref(self).unwrap();
- Some(chardata.Data())
- }
- _ => {
- None
- }
- }
+ CharacterDataCast::to_ref(self).map(|c| c.Data())
}
// https://dom.spec.whatwg.org/#dom-node-nodevalue
fn SetNodeValue(self, val: Option<DOMString>) {
- match self.type_id {
- NodeTypeId::CharacterData(..) => {
- self.SetTextContent(val)
- }
- _ => {}
+ if let NodeTypeId::CharacterData(..) = self.type_id {
+ self.SetTextContent(val)
}
}
@@ -2554,18 +2543,18 @@ pub struct TrustedNodeAddress(pub *const c_void);
#[allow(unsafe_code)]
unsafe impl Send for TrustedNodeAddress {}
-pub fn document_from_node<T: NodeBase+Reflectable>(derived: &T) -> Root<Document> {
+pub fn document_from_node<T: NodeBase + Reflectable>(derived: &T) -> Root<Document> {
let node: &Node = NodeCast::from_ref(derived);
node.owner_doc()
}
-pub fn window_from_node<T: NodeBase+Reflectable>(derived: &T) -> Root<Window> {
+pub fn window_from_node<T: NodeBase + Reflectable>(derived: &T) -> Root<Window> {
let document = document_from_node(derived);
document.r().window()
}
impl<'a> VirtualMethods for &'a Node {
- fn super_type<'b>(&'b self) -> Option<&'b VirtualMethods> {
+ fn super_type(&self) -> Option<&VirtualMethods> {
let eventtarget: &&EventTarget = EventTargetCast::from_borrowed_ref(self);
Some(eventtarget as &VirtualMethods)
}
diff --git a/components/script/dom/nodeiterator.rs b/components/script/dom/nodeiterator.rs
index 7e641c83cfd..0958bfca992 100644
--- a/components/script/dom/nodeiterator.rs
+++ b/components/script/dom/nodeiterator.rs
@@ -138,7 +138,7 @@ impl<'a> NodeIteratorMethods for &'a NodeIterator {
}
}
- return Ok(None);
+ Ok(None)
}
// https://dom.spec.whatwg.org/#dom-nodeiterator-previousnode
@@ -183,7 +183,7 @@ impl<'a> NodeIteratorMethods for &'a NodeIterator {
}
}
- return Ok(None);
+ Ok(None)
}
// https://dom.spec.whatwg.org/#dom-nodeiterator-detach
diff --git a/components/script/dom/progressevent.rs b/components/script/dom/progressevent.rs
index 1dc1f2b9917..20af2b68d1c 100644
--- a/components/script/dom/progressevent.rs
+++ b/components/script/dom/progressevent.rs
@@ -69,7 +69,7 @@ impl<'a> ProgressEventMethods for &'a ProgressEvent {
}
// https://xhr.spec.whatwg.org/#dom-progressevent-loaded
- fn Loaded(self) -> u64{
+ fn Loaded(self) -> u64 {
self.loaded
}
diff --git a/components/script/dom/range.rs b/components/script/dom/range.rs
index bf810546be8..78af618eff5 100644
--- a/components/script/dom/range.rs
+++ b/components/script/dom/range.rs
@@ -114,7 +114,7 @@ impl Range {
};
// Step 11.
- let contained_children : Vec<Root<Node>> =
+ let contained_children: Vec<Root<Node>> =
common_ancestor.children().filter(|n| Range::contains(self, n)).collect();
// Step 12.
@@ -122,7 +122,7 @@ impl Range {
return Err(HierarchyRequest);
}
- return Ok((first_contained_child, last_contained_child, contained_children));
+ Ok((first_contained_child, last_contained_child, contained_children))
}
}
@@ -338,17 +338,11 @@ impl<'a> RangeMethods for &'a Range {
let end = &inner.end;
let end_node = end.node();
let end_offset = end.offset;
- match (bp_position(parent.r(), offset + 1, start_node.r(), start_offset).unwrap(),
- bp_position(parent.r(), offset, end_node.r(), end_offset).unwrap()) {
- (Ordering::Greater, Ordering::Less) => {
- // Step 5.
- true
- },
- _ => {
- // Step 6.
- false
- }
- }
+ // Step 5.
+ Ordering::Greater == bp_position(parent.r(), offset + 1,
+ start_node.r(), start_offset).unwrap() &&
+ Ordering::Less == bp_position(parent.r(), offset,
+ end_node.r(), end_offset).unwrap()
}
// https://dom.spec.whatwg.org/#dom-range-clonecontents
diff --git a/components/script/dom/servohtmlparser.rs b/components/script/dom/servohtmlparser.rs
index c14603df876..b9ccd50632f 100644
--- a/components/script/dom/servohtmlparser.rs
+++ b/components/script/dom/servohtmlparser.rs
@@ -63,13 +63,13 @@ pub struct ParserContext {
/// The subpage associated with this document.
subpage: Option<SubpageId>,
/// The target event loop for the response notifications.
- script_chan: Box<ScriptChan+Send>,
+ 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>,
+ pub fn new(id: PipelineId, subpage: Option<SubpageId>, script_chan: Box<ScriptChan + Send>,
url: Url) -> ParserContext {
ParserContext {
parser: RefCell::new(None),
@@ -268,7 +268,7 @@ impl ServoHTMLParser {
}
#[inline]
- pub fn tokenizer<'a>(&'a self) -> &'a DOMRefCell<Tokenizer> {
+ pub fn tokenizer(&self) -> &DOMRefCell<Tokenizer> {
&self.tokenizer
}
}
diff --git a/components/script/dom/storage.rs b/components/script/dom/storage.rs
index 4aced1a1029..7231d10247d 100644
--- a/components/script/dom/storage.rs
+++ b/components/script/dom/storage.rs
@@ -144,7 +144,7 @@ trait PrivateStorageHelpers {
impl<'a> PrivateStorageHelpers for &'a Storage {
/// https://html.spec.whatwg.org/multipage/#send-a-storage-notification
fn broadcast_change_notification(self, key: Option<DOMString>, old_value: Option<DOMString>,
- new_value: Option<DOMString>){
+ new_value: Option<DOMString>) {
let global_root = self.global.root();
let global_ref = global_root.r();
let main_script_chan = global_ref.as_window().main_thread_script_chan();
diff --git a/components/script/dom/textencoder.rs b/components/script/dom/textencoder.rs
index 29a715a8ed1..1b76de05d0d 100644
--- a/components/script/dom/textencoder.rs
+++ b/components/script/dom/textencoder.rs
@@ -65,7 +65,7 @@ impl TextEncoder {
}
_ => {
debug!("Encoding Not UTF");
- return Err(Range("The encoding must be utf-8, utf-16le, or utf-16be.".to_owned()))
+ Err(Range("The encoding must be utf-8, utf-16le, or utf-16be.".to_owned()))
}
}
}
@@ -87,7 +87,7 @@ impl<'a> TextEncoderMethods for &'a TextEncoder {
let js_object_data: *mut uint8_t = JS_GetUint8ArrayData(js_object, ptr::null());
ptr::copy_nonoverlapping(encoded.as_ptr(), js_object_data, length as usize);
- return js_object;
+ js_object
}
}
}
diff --git a/components/script/dom/treewalker.rs b/components/script/dom/treewalker.rs
index b859a2f0277..b8271909505 100644
--- a/components/script/dom/treewalker.rs
+++ b/components/script/dom/treewalker.rs
@@ -104,12 +104,9 @@ impl<'a> TreeWalkerMethods for &'a TreeWalker {
node = n;
// "2. If node is not null and filtering node returns FILTER_ACCEPT,
// then set the currentNode attribute to node, return node."
- match try!(self.accept_node(node.r())) {
- NodeFilterConstants::FILTER_ACCEPT => {
- self.current_node.set(JS::from_rooted(&node));
- return Ok(Some(node))
- },
- _ => {}
+ if NodeFilterConstants::FILTER_ACCEPT == try!(self.accept_node(node.r())) {
+ self.current_node.set(JS::from_rooted(&node));
+ return Ok(Some(node))
}
},
None => break,
@@ -195,12 +192,9 @@ impl<'a> TreeWalkerMethods for &'a TreeWalker {
}
// "5. Filter node and if the return value is FILTER_ACCEPT, then
// set the currentNode attribute to node and return node."
- match try!(self.accept_node(node.r())) {
- NodeFilterConstants::FILTER_ACCEPT => {
- self.current_node.set(JS::from_rooted(&node));
- return Ok(Some(node))
- },
- _ => {}
+ if NodeFilterConstants::FILTER_ACCEPT == try!(self.accept_node(node.r())) {
+ self.current_node.set(JS::from_rooted(&node));
+ return Ok(Some(node))
}
}
// "6. Return null."
@@ -217,9 +211,8 @@ impl<'a> TreeWalkerMethods for &'a TreeWalker {
loop {
// "1. While result is not FILTER_REJECT and node has a child, run these subsubsteps:"
loop {
- match result {
- NodeFilterConstants::FILTER_REJECT => break,
- _ => {}
+ if NodeFilterConstants::FILTER_REJECT == result {
+ break;
}
match node.r().GetFirstChild() {
None => break,
@@ -230,12 +223,9 @@ impl<'a> TreeWalkerMethods for &'a TreeWalker {
result = try!(self.accept_node(node.r()));
// "3. If result is FILTER_ACCEPT, then
// set the currentNode attribute to node and return node."
- match result {
- NodeFilterConstants::FILTER_ACCEPT => {
- self.current_node.set(JS::from_rooted(&node));
- return Ok(Some(node))
- },
- _ => {}
+ if NodeFilterConstants::FILTER_ACCEPT == result {
+ self.current_node.set(JS::from_rooted(&node));
+ return Ok(Some(node))
}
}
}
@@ -251,12 +241,9 @@ impl<'a> TreeWalkerMethods for &'a TreeWalker {
result = try!(self.accept_node(node.r()));
// "4. If result is FILTER_ACCEPT, then
// set the currentNode attribute to node and return node."
- match result {
- NodeFilterConstants::FILTER_ACCEPT => {
- self.current_node.set(JS::from_rooted(&node));
- return Ok(Some(node))
- },
- _ => {}
+ if NodeFilterConstants::FILTER_ACCEPT == result {
+ self.current_node.set(JS::from_rooted(&node));
+ return Ok(Some(node))
}
}
}
@@ -391,13 +378,11 @@ impl<'a> PrivateTreeWalkerHelpers for &'a TreeWalker {
let result = try!(self.accept_node(node.r()));
// "3. If result is FILTER_ACCEPT, then set the currentNode
// attribute to node and return node."
- match result {
- NodeFilterConstants::FILTER_ACCEPT => {
- self.current_node.set(JS::from_rooted(&node));
- return Ok(Some(node))
- },
- _ => {}
+ if NodeFilterConstants::FILTER_ACCEPT == result {
+ self.current_node.set(JS::from_rooted(&node));
+ return Ok(Some(node))
}
+
// "4. Set sibling to node's first child if type is next,
// and node's last child if type is previous."
sibling_op = next_child(node.r());
@@ -418,9 +403,8 @@ impl<'a> PrivateTreeWalkerHelpers for &'a TreeWalker {
// "5. Filter node and if the return value is FILTER_ACCEPT, then return null."
Some(n) => {
node = n;
- match try!(self.accept_node(node.r())) {
- NodeFilterConstants::FILTER_ACCEPT => return Ok(None),
- _ => {}
+ if NodeFilterConstants::FILTER_ACCEPT == try!(self.accept_node(node.r())) {
+ return Ok(None)
}
}
}
diff --git a/components/script/dom/url.rs b/components/script/dom/url.rs
index 9bbd0f1b5fc..d4a8b5a23ff 100644
--- a/components/script/dom/url.rs
+++ b/components/script/dom/url.rs
@@ -142,7 +142,7 @@ impl<'a> URLMethods for &'a URL {
}
}
-fn parser_with_base<'a>(base: Option<&'a Url>) -> UrlParser<'a> {
+fn parser_with_base(base: Option<&Url>) -> UrlParser {
let mut parser = UrlParser::new();
if let Some(base) = base {
parser.base_url(base);
diff --git a/components/script/dom/urlhelper.rs b/components/script/dom/urlhelper.rs
index cff468574b2..4376a85e390 100644
--- a/components/script/dom/urlhelper.rs
+++ b/components/script/dom/urlhelper.rs
@@ -84,7 +84,7 @@ impl UrlHelper {
if urlA.port() != urlB.port() {
return false
}
- return true
+ true
}
// https://url.spec.whatwg.org/#dom-urlutils-search
diff --git a/components/script/dom/virtualmethods.rs b/components/script/dom/virtualmethods.rs
index b67cbb69d4f..437f39422c6 100644
--- a/components/script/dom/virtualmethods.rs
+++ b/components/script/dom/virtualmethods.rs
@@ -48,7 +48,7 @@ use string_cache::Atom;
pub trait VirtualMethods {
/// Returns self as the superclass of the implementation for this trait,
/// if any.
- fn super_type<'b>(&'b self) -> Option<&'b VirtualMethods>;
+ fn super_type(&self) -> Option<&VirtualMethods>;
/// Called when changing or adding attributes, after the attribute's value
/// has been updated.
diff --git a/components/script/dom/webglactiveinfo.rs b/components/script/dom/webglactiveinfo.rs
index 671c50c5d36..3bbcfd7dee2 100644
--- a/components/script/dom/webglactiveinfo.rs
+++ b/components/script/dom/webglactiveinfo.rs
@@ -7,7 +7,7 @@ use dom::bindings::codegen::Bindings::WebGLActiveInfoBinding;
use dom::bindings::codegen::Bindings::WebGLActiveInfoBinding::WebGLActiveInfoMethods;
use dom::bindings::global::GlobalRef;
use dom::bindings::js::Root;
-use dom::bindings::utils::{Reflector,reflect_dom_object};
+use dom::bindings::utils::{Reflector, reflect_dom_object};
use util::str::DOMString;
#[dom_struct]
diff --git a/components/script/dom/webglrenderingcontext.rs b/components/script/dom/webglrenderingcontext.rs
index 0b6fa7b3869..4acf36256c8 100644
--- a/components/script/dom/webglrenderingcontext.rs
+++ b/components/script/dom/webglrenderingcontext.rs
@@ -514,15 +514,13 @@ impl<'a> WebGLRenderingContextMethods for &'a WebGLRenderingContext {
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.10
fn VertexAttribPointer(self, attrib_id: u32, size: i32, data_type: u32,
normalized: bool, stride: i32, offset: i64) {
- match data_type {
- constants::FLOAT => {
- let msg = CanvasMsg::WebGL(
- CanvasWebGLMsg::VertexAttribPointer2f(attrib_id, size, normalized, stride, offset));
- self.ipc_renderer.send(msg).unwrap()
- }
- _ => panic!("VertexAttribPointer: Data Type not supported")
+ if let constants::FLOAT = data_type {
+ let msg = CanvasMsg::WebGL(
+ CanvasWebGLMsg::VertexAttribPointer2f(attrib_id, size, normalized, stride, offset));
+ self.ipc_renderer.send(msg).unwrap()
+ } else {
+ panic!("VertexAttribPointer: Data Type not supported")
}
-
}
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.4
diff --git a/components/script/dom/webglshaderprecisionformat.rs b/components/script/dom/webglshaderprecisionformat.rs
index 17c3ce97a8c..5c7d4232b88 100644
--- a/components/script/dom/webglshaderprecisionformat.rs
+++ b/components/script/dom/webglshaderprecisionformat.rs
@@ -7,7 +7,7 @@ use dom::bindings::codegen::Bindings::WebGLShaderPrecisionFormatBinding;
use dom::bindings::codegen::Bindings::WebGLShaderPrecisionFormatBinding::WebGLShaderPrecisionFormatMethods;
use dom::bindings::global::GlobalRef;
use dom::bindings::js::Root;
-use dom::bindings::utils::{Reflector,reflect_dom_object};
+use dom::bindings::utils::{Reflector, reflect_dom_object};
#[dom_struct]
#[derive(HeapSizeOf)]
diff --git a/components/script/dom/webgluniformlocation.rs b/components/script/dom/webgluniformlocation.rs
index d7f7c836706..add5da9f928 100644
--- a/components/script/dom/webgluniformlocation.rs
+++ b/components/script/dom/webgluniformlocation.rs
@@ -6,7 +6,7 @@
use dom::bindings::codegen::Bindings::WebGLUniformLocationBinding;
use dom::bindings::global::GlobalRef;
use dom::bindings::js::Root;
-use dom::bindings::utils::{Reflector,reflect_dom_object};
+use dom::bindings::utils::{Reflector, reflect_dom_object};
#[dom_struct]
#[derive(HeapSizeOf)]
diff --git a/components/script/dom/websocket.rs b/components/script/dom/websocket.rs
index 61e8b09474d..1e00a9e507a 100644
--- a/components/script/dom/websocket.rs
+++ b/components/script/dom/websocket.rs
@@ -153,7 +153,7 @@ impl WebSocket {
return Err(Syntax);
}
- if protocols[i+1..].iter().any(|p| p == protocol) {
+ if protocols[i + 1..].iter().any(|p| p == protocol) {
return Err(Syntax);
}
@@ -277,7 +277,7 @@ impl<'a> WebSocketMethods for &'a WebSocket {
let mut other_sender = self.sender.borrow_mut();
let my_sender = other_sender.as_mut().unwrap();
let _ = my_sender.lock().unwrap().send_message(Message::Text(data.unwrap().0));
- return Ok(())
+ Ok(())
}
// https://html.spec.whatwg.org/multipage/#dom-websocket-close
diff --git a/components/script/dom/window.rs b/components/script/dom/window.rs
index 6f7b23adf13..82e3247dc8e 100644
--- a/components/script/dom/window.rs
+++ b/components/script/dom/window.rs
@@ -52,7 +52,7 @@ use profile_traits::mem;
use string_cache::Atom;
use util::geometry::{self, Au, MAX_RECT};
use util::{breakpoint, opts};
-use util::str::{DOMString,HTML_SPACE_CHARACTERS};
+use util::str::{DOMString, HTML_SPACE_CHARACTERS};
use euclid::{Point2D, Rect, Size2D};
use ipc_channel::ipc::IpcSender;
@@ -68,7 +68,7 @@ use libc;
use rustc_serialize::base64::{FromBase64, ToBase64, STANDARD};
use std::ascii::AsciiExt;
use std::borrow::ToOwned;
-use std::cell::{Cell, Ref, RefMut, RefCell};
+use std::cell::{Cell, Ref, RefCell};
use std::collections::HashSet;
use std::default::Default;
use std::ffi::CString;
@@ -121,7 +121,7 @@ pub struct Window {
#[ignore_heap_size_of = "channels are hard"]
image_cache_chan: ImageCacheChan,
#[ignore_heap_size_of = "TODO(#6911) newtypes containing unmeasurable types are hard"]
- compositor: DOMRefCell<IpcSender<ScriptToCompositorMsg>>,
+ compositor: IpcSender<ScriptToCompositorMsg>,
browsing_context: DOMRefCell<Option<BrowsingContext>>,
page: Rc<Page>,
performance: MutNullableHeap<JS<Performance>>,
@@ -179,7 +179,7 @@ pub struct Window {
/// A handle to perform RPC calls into the layout, quickly.
#[ignore_heap_size_of = "trait objects are hard"]
- layout_rpc: Box<LayoutRPC+'static>,
+ layout_rpc: Box<LayoutRPC + 'static>,
/// The port that we will use to join layout. If this is `None`, then layout is not running.
#[ignore_heap_size_of = "channels are hard"]
@@ -232,7 +232,7 @@ impl Window {
self.js_runtime.borrow().as_ref().unwrap().cx()
}
- pub fn script_chan(&self) -> Box<ScriptChan+Send> {
+ pub fn script_chan(&self) -> Box<ScriptChan + Send> {
self.script_chan.clone()
}
@@ -264,24 +264,24 @@ impl Window {
self.parent_info
}
- pub fn new_script_pair(&self) -> (Box<ScriptChan+Send>, Box<ScriptPort+Send>) {
+ pub fn new_script_pair(&self) -> (Box<ScriptChan + Send>, Box<ScriptPort + Send>) {
let (tx, rx) = channel();
(box SendableMainThreadScriptChan(tx), box rx)
}
- pub fn image_cache_task<'a>(&'a self) -> &'a ImageCacheTask {
+ pub fn image_cache_task(&self) -> &ImageCacheTask {
&self.image_cache_task
}
- pub fn compositor<'a>(&'a self) -> RefMut<'a, IpcSender<ScriptToCompositorMsg>> {
- self.compositor.borrow_mut()
+ pub fn compositor(&self) -> &IpcSender<ScriptToCompositorMsg> {
+ &self.compositor
}
- pub fn browsing_context<'a>(&'a self) -> Ref<'a, Option<BrowsingContext>> {
+ pub fn browsing_context(&self) -> Ref<Option<BrowsingContext>> {
self.browsing_context.borrow()
}
- pub fn page<'a>(&'a self) -> &'a Page {
+ pub fn page(&self) -> &Page {
&*self.page
}
@@ -1099,7 +1099,7 @@ impl Window {
control_chan: control_chan,
console: Default::default(),
crypto: Default::default(),
- compositor: DOMRefCell::new(compositor),
+ compositor: compositor,
page: page,
navigator: Default::default(),
image_cache_task: image_cache_task,
@@ -1143,7 +1143,7 @@ impl Window {
}
}
-fn should_move_clip_rect(clip_rect: Rect<Au>, new_viewport: Rect<f32>) -> bool{
+fn should_move_clip_rect(clip_rect: Rect<Au>, new_viewport: Rect<f32>) -> bool {
let clip_rect = Rect::new(Point2D::new(clip_rect.origin.x.to_f32_px(),
clip_rect.origin.y.to_f32_px()),
Size2D::new(clip_rect.size.width.to_f32_px(),
diff --git a/components/script/dom/workerglobalscope.rs b/components/script/dom/workerglobalscope.rs
index 80eee7bd3ad..468de091271 100644
--- a/components/script/dom/workerglobalscope.rs
+++ b/components/script/dom/workerglobalscope.rs
@@ -143,11 +143,11 @@ impl WorkerGlobalScope {
self.runtime.cx()
}
- pub fn resource_task<'a>(&'a self) -> &'a ResourceTask {
+ pub fn resource_task(&self) -> &ResourceTask {
&self.resource_task
}
- pub fn get_url<'a>(&'a self) -> &'a Url {
+ pub fn get_url(&self) -> &Url {
&self.worker_url
}
@@ -179,7 +179,7 @@ impl<'a> WorkerGlobalScopeMethods for &'a WorkerGlobalScope {
// https://html.spec.whatwg.org/multipage/#dom-workerglobalscope-importscripts
fn ImportScripts(self, url_strings: Vec<DOMString>) -> ErrorResult {
let mut urls = Vec::with_capacity(url_strings.len());
- for url in url_strings.into_iter() {
+ for url in url_strings {
let url = UrlParser::new().base_url(&self.worker_url)
.parse(&url);
match url {
@@ -188,7 +188,7 @@ impl<'a> WorkerGlobalScopeMethods for &'a WorkerGlobalScope {
};
}
- for url in urls.into_iter() {
+ for url in urls {
let (url, source) = match load_whole_resource(&self.resource_task, url) {
Err(_) => return Err(Network),
Ok((metadata, bytes)) => {
@@ -288,9 +288,9 @@ impl<'a> WorkerGlobalScopeMethods for &'a WorkerGlobalScope {
pub trait WorkerGlobalScopeHelpers {
fn execute_script(self, source: DOMString);
fn handle_fire_timer(self, timer_id: TimerId);
- fn script_chan(self) -> Box<ScriptChan+Send>;
+ fn script_chan(self) -> Box<ScriptChan + Send>;
fn pipeline(self) -> PipelineId;
- fn new_script_pair(self) -> (Box<ScriptChan+Send>, Box<ScriptPort+Send>);
+ fn new_script_pair(self) -> (Box<ScriptChan + Send>, Box<ScriptPort + Send>);
fn process_event(self, msg: CommonScriptMsg);
fn get_cx(self) -> *mut JSContext;
fn set_devtools_wants_updates(self, value: bool);
@@ -311,7 +311,7 @@ impl<'a> WorkerGlobalScopeHelpers for &'a WorkerGlobalScope {
}
}
- fn script_chan(self) -> Box<ScriptChan+Send> {
+ fn script_chan(self) -> Box<ScriptChan + Send> {
let dedicated =
DedicatedWorkerGlobalScopeCast::to_ref(self);
match dedicated {
@@ -329,7 +329,7 @@ impl<'a> WorkerGlobalScopeHelpers for &'a WorkerGlobalScope {
}
}
- fn new_script_pair(self) -> (Box<ScriptChan+Send>, Box<ScriptPort+Send>) {
+ fn new_script_pair(self) -> (Box<ScriptChan + Send>, Box<ScriptPort + Send>) {
let dedicated =
DedicatedWorkerGlobalScopeCast::to_ref(self);
match dedicated {
diff --git a/components/script/dom/xmlhttprequest.rs b/components/script/dom/xmlhttprequest.rs
index efb42f3c1a0..577416fe700 100644
--- a/components/script/dom/xmlhttprequest.rs
+++ b/components/script/dom/xmlhttprequest.rs
@@ -148,7 +148,7 @@ pub struct XMLHttpRequest {
timeout_cancel: DOMRefCell<Option<Sender<()>>>,
fetch_time: Cell<i64>,
#[ignore_heap_size_of = "Cannot calculate Heap size"]
- timeout_target: DOMRefCell<Option<Box<ScriptChan+Send>>>,
+ timeout_target: DOMRefCell<Option<Box<ScriptChan + Send>>>,
generation_id: Cell<GenerationId>,
response_status: Cell<Result<(), ()>>,
}
@@ -201,13 +201,13 @@ impl XMLHttpRequest {
fn check_cors(context: Arc<Mutex<XHRContext>>,
load_data: LoadData,
req: CORSRequest,
- script_chan: Box<ScriptChan+Send>,
+ script_chan: Box<ScriptChan + Send>,
resource_task: ResourceTask) {
struct CORSContext {
xhr: Arc<Mutex<XHRContext>>,
load_data: RefCell<Option<LoadData>>,
req: CORSRequest,
- script_chan: Box<ScriptChan+Send>,
+ script_chan: Box<ScriptChan + Send>,
resource_task: ResourceTask,
}
@@ -244,7 +244,7 @@ impl XMLHttpRequest {
}
fn initiate_async_xhr(context: Arc<Mutex<XHRContext>>,
- script_chan: Box<ScriptChan+Send>,
+ script_chan: Box<ScriptChan + Send>,
resource_task: ResourceTask,
load_data: LoadData) {
impl AsyncResponseListener for XHRContext {
@@ -761,7 +761,7 @@ trait PrivateXMLHttpRequestHelpers {
fn dispatch_upload_progress_event(self, type_: DOMString, partial_load: Option<u64>);
fn dispatch_response_progress_event(self, type_: DOMString);
fn text_response(self) -> DOMString;
- fn set_timeout(self, timeout:u32);
+ fn set_timeout(self, timeout: u32);
fn cancel_timeout(self);
fn filter_response_headers(self) -> Headers;
fn discard_subsequent_responses(self);
@@ -784,19 +784,17 @@ impl<'a> PrivateXMLHttpRequestHelpers for &'a XMLHttpRequest {
fn process_headers_available(self, cors_request: Option<CORSRequest>,
gen_id: GenerationId, metadata: Metadata) -> Result<(), Error> {
- match cors_request {
- Some(ref req) => {
- match metadata.headers {
- Some(ref h) if allow_cross_origin_request(req, h) => {},
- _ => {
- self.process_partial_response(XHRProgress::Errored(gen_id, Network));
- return Err(Network);
- }
+
+ if let Some(ref req) = cors_request {
+ match metadata.headers {
+ Some(ref h) if allow_cross_origin_request(req, h) => {},
+ _ => {
+ self.process_partial_response(XHRProgress::Errored(gen_id, Network));
+ return Err(Network);
}
- },
+ }
+ }
- _ => {}
- };
// XXXManishearth Clear cache entries in case of a network error
self.process_partial_response(XHRProgress::HeadersReceived(gen_id,
metadata.headers,
diff --git a/components/script/dom/xmlhttprequesteventtarget.rs b/components/script/dom/xmlhttprequesteventtarget.rs
index af4b8b8bc50..3bf1aa408b0 100644
--- a/components/script/dom/xmlhttprequesteventtarget.rs
+++ b/components/script/dom/xmlhttprequesteventtarget.rs
@@ -28,7 +28,7 @@ impl XMLHttpRequestEventTarget {
}
#[inline]
- pub fn eventtarget<'a>(&'a self) -> &'a EventTarget {
+ pub fn eventtarget(&self) -> &EventTarget {
&self.eventtarget
}
}
@@ -43,7 +43,7 @@ impl XMLHttpRequestEventTargetDerived for EventTarget {
}
impl<'a> XMLHttpRequestEventTargetMethods for &'a XMLHttpRequestEventTarget {
- event_handler!(loadstart,GetOnloadstart, SetOnloadstart);
+ event_handler!(loadstart, GetOnloadstart, SetOnloadstart);
event_handler!(progress, GetOnprogress, SetOnprogress);
event_handler!(abort, GetOnabort, SetOnabort);
event_handler!(error, GetOnerror, SetOnerror);
diff --git a/components/script/layout_interface.rs b/components/script/layout_interface.rs
index 53ab48a7769..8a93faa8fe2 100644
--- a/components/script/layout_interface.rs
+++ b/components/script/layout_interface.rs
@@ -39,7 +39,7 @@ pub enum Msg {
AddStylesheet(Stylesheet, MediaQueryList),
/// Adds the given stylesheet to the document.
- LoadStylesheet(Url, MediaQueryList, PendingAsyncLoad, Box<StylesheetLoadResponder+Send>),
+ LoadStylesheet(Url, MediaQueryList, PendingAsyncLoad, Box<StylesheetLoadResponder + Send>),
/// Puts a document into quirks mode, causing the quirks mode stylesheet to be loaded.
SetQuirksMode,
@@ -199,7 +199,7 @@ pub trait ScriptLayoutChan {
impl ScriptLayoutChan for OpaqueScriptLayoutChannel {
fn new(sender: Sender<Msg>, receiver: Receiver<Msg>) -> OpaqueScriptLayoutChannel {
- let inner = (box sender as Box<Any+Send>, box receiver as Box<Any+Send>);
+ let inner = (box sender as Box<Any + Send>, box receiver as Box<Any + Send>);
OpaqueScriptLayoutChannel(inner)
}
diff --git a/components/script/network_listener.rs b/components/script/network_listener.rs
index 2f8bc522347..e8b2e9f59ba 100644
--- a/components/script/network_listener.rs
+++ b/components/script/network_listener.rs
@@ -10,7 +10,7 @@ use std::sync::{Arc, Mutex};
/// a target thread, where they are invoked on the provided context object.
pub struct NetworkListener<T: AsyncResponseListener + PreInvoke + Send + 'static> {
pub context: Arc<Mutex<T>>,
- pub script_chan: Box<ScriptChan+Send>,
+ pub script_chan: Box<ScriptChan + Send>,
}
impl<T: AsyncResponseListener + PreInvoke + Send + 'static> NetworkListener<T> {
diff --git a/components/script/page.rs b/components/script/page.rs
index f4b3fd6cd18..cea63c08a38 100644
--- a/components/script/page.rs
+++ b/components/script/page.rs
@@ -46,7 +46,7 @@ impl IterablePage for Rc<Page> {
}
fn find(&self, id: PipelineId) -> Option<Rc<Page>> {
if self.id == id { return Some(self.clone()); }
- for page in self.children.borrow().iter() {
+ for page in &*self.children.borrow() {
let found = page.find(id);
if found.is_some() { return found; }
}
@@ -104,7 +104,7 @@ impl Iterator for PageIterator {
fn next(&mut self) -> Option<Rc<Page>> {
match self.stack.pop() {
Some(next) => {
- for child in next.children.borrow().iter() {
+ for child in &*next.children.borrow() {
self.stack.push(child.clone());
}
Some(next)
diff --git a/components/script/parse/html.rs b/components/script/parse/html.rs
index 6ea2dc443f8..cd4e6dd1d47 100644
--- a/components/script/parse/html.rs
+++ b/components/script/parse/html.rs
@@ -90,7 +90,7 @@ impl<'a> TreeSink for servohtmlparser::Sink {
let elem = Element::create(name, None, doc.r(),
ElementCreator::ParserCreated);
- for attr in attrs.into_iter() {
+ for attr in attrs {
elem.r().set_attribute_from_parser(attr.name, attr.value.into(), None);
}
@@ -152,7 +152,7 @@ impl<'a> TreeSink for servohtmlparser::Sink {
let node: Root<Node> = target.root();
let elem = ElementCast::to_ref(node.r())
.expect("tried to set attrs on non-Element in HTML parsing");
- for attr in attrs.into_iter() {
+ for attr in attrs {
elem.set_attribute_from_parser(attr.name, attr.value.into(), None);
}
}
diff --git a/components/script/script_task.rs b/components/script/script_task.rs
index 0d9e935483a..8d342a9eaf5 100644
--- a/components/script/script_task.rs
+++ b/components/script/script_task.rs
@@ -32,8 +32,8 @@ use dom::bindings::js::{RootCollectionPtr, Root, RootedReference};
use dom::bindings::refcounted::{LiveDOMReferences, Trusted, TrustedReference, trace_refcounted_objects};
use dom::bindings::trace::{JSTraceable, trace_traceables, RootedVec};
use dom::bindings::utils::{WRAP_CALLBACKS, DOM_CALLBACKS};
-use dom::document::{Document, IsHTMLDocument, DocumentHelpers, DocumentProgressHandler,
- DocumentProgressTask, DocumentSource, MouseEventType};
+use dom::document::{Document, IsHTMLDocument, DocumentHelpers, DocumentProgressHandler};
+use dom::document::{DocumentProgressTask, DocumentSource, MouseEventType};
use dom::element::{Element, AttributeHandlers};
use dom::event::{EventHelpers, EventBubbles, EventCancelable};
use dom::htmliframeelement::HTMLIFrameElementHelpers;
@@ -190,7 +190,7 @@ pub enum CommonScriptMsg {
/// A DOM object's last pinned reference was removed (dispatched to all tasks).
RefcountCleanup(TrustedReference),
/// Generic message that encapsulates event handling.
- RunnableMsg(Box<Runnable+Send>),
+ RunnableMsg(Box<Runnable + Send>),
}
/// Messages used to control the script event loop
@@ -203,7 +203,7 @@ pub enum MainThreadScriptMsg {
/// should be closed (only dispatched to ScriptTask).
ExitWindow(PipelineId),
/// Generic message for running tasks in the ScriptTask
- MainThreadRunnableMsg(Box<MainThreadRunnable+Send>),
+ MainThreadRunnableMsg(Box<MainThreadRunnable + Send>),
/// Begins a content-initiated load on the specified pipeline (only
/// dispatched to ScriptTask).
Navigate(PipelineId, LoadData),
@@ -214,10 +214,10 @@ pub trait ScriptChan {
/// Send a message to the associated event loop.
fn send(&self, msg: CommonScriptMsg) -> Result<(), ()>;
/// Clone this handle.
- fn clone(&self) -> Box<ScriptChan+Send>;
+ fn clone(&self) -> Box<ScriptChan + Send>;
}
-impl OpaqueSender<CommonScriptMsg> for Box<ScriptChan+Send> {
+impl OpaqueSender<CommonScriptMsg> for Box<ScriptChan + Send> {
fn send(&self, msg: CommonScriptMsg) {
ScriptChan::send(&**self, msg).unwrap();
}
@@ -267,10 +267,10 @@ pub struct SendableMainThreadScriptChan(pub Sender<CommonScriptMsg>);
impl ScriptChan for SendableMainThreadScriptChan {
fn send(&self, msg: CommonScriptMsg) -> Result<(), ()> {
let SendableMainThreadScriptChan(ref chan) = *self;
- return chan.send(msg).map_err(|_| ());
+ chan.send(msg).map_err(|_| ())
}
- fn clone(&self) -> Box<ScriptChan+Send> {
+ fn clone(&self) -> Box<ScriptChan + Send> {
let SendableMainThreadScriptChan(ref chan) = *self;
box SendableMainThreadScriptChan((*chan).clone())
}
@@ -294,7 +294,7 @@ impl ScriptChan for MainThreadScriptChan {
return chan.send(MainThreadScriptMsg::Common(msg)).map_err(|_| ());
}
- fn clone(&self) -> Box<ScriptChan+Send> {
+ fn clone(&self) -> Box<ScriptChan + Send> {
let MainThreadScriptChan(ref chan) = *self;
box MainThreadScriptChan((*chan).clone())
}
@@ -436,8 +436,8 @@ impl ScriptTaskFactory for ScriptTask {
ScriptLayoutChan::new(chan, port)
}
- fn clone_layout_channel(_phantom: Option<&mut ScriptTask>, pair: &OpaqueScriptLayoutChannel) -> Box<Any+Send> {
- box pair.sender() as Box<Any+Send>
+ fn clone_layout_channel(_phantom: Option<&mut ScriptTask>, pair: &OpaqueScriptLayoutChannel) -> Box<Any + Send> {
+ box pair.sender() as Box<Any + Send>
}
fn create(_phantom: Option<&mut ScriptTask>,
@@ -550,7 +550,7 @@ unsafe extern "C" fn debug_gc_callback(_rt: *mut JSRuntime, status: JSGCStatus,
unsafe extern "C" fn shadow_check_callback(_cx: *mut JSContext,
_object: HandleObject, _id: HandleId) -> DOMProxyShadowsResult {
// XXX implement me
- return DOMProxyShadowsResult::ShadowCheckFailed;
+ DOMProxyShadowsResult::ShadowCheckFailed
}
impl ScriptTask {
@@ -709,7 +709,7 @@ impl ScriptTask {
}
}
- for (id, size) in resizes.into_iter() {
+ for (id, size) in resizes {
self.handle_event(id, ResizeEvent(size));
}
@@ -814,7 +814,7 @@ impl ScriptTask {
}
// Process the gathered events.
- for msg in sequential.into_iter() {
+ for msg in sequential {
match msg {
MixedMessage::FromConstellation(ConstellationControlMsg::ExitPipeline(id, exit_type)) => {
if self.handle_exit_pipeline_msg(id, exit_type) {
@@ -1062,7 +1062,7 @@ impl ScriptTask {
return ScriptState::DocumentLoading;
}
- return ScriptState::DocumentLoaded;
+ ScriptState::DocumentLoaded
}
fn handle_new_layout(&self, new_layout_info: NewLayoutInfo) {
@@ -1188,23 +1188,26 @@ impl ScriptTask {
let mut urls = vec![];
let mut dom_tree_size = 0;
let mut reports = vec![];
- for it_page in self.root_page().iter() {
- let current_url = it_page.document().url().serialize();
- urls.push(current_url.clone());
- for child in NodeCast::from_ref(&*it_page.document()).traverse_preorder() {
- let target = EventTargetCast::from_ref(&*child);
+ if let Some(root_page) = self.page.borrow().as_ref() {
+ for it_page in root_page.iter() {
+ let current_url = it_page.document().url().serialize();
+ urls.push(current_url.clone());
+
+ for child in NodeCast::from_ref(&*it_page.document()).traverse_preorder() {
+ let target = EventTargetCast::from_ref(&*child);
+ dom_tree_size += heap_size_of_eventtarget(target);
+ }
+ let window = it_page.window();
+ let target = EventTargetCast::from_ref(&*window);
dom_tree_size += heap_size_of_eventtarget(target);
+
+ reports.push(Report {
+ path: path![format!("url({})", current_url), "dom-tree"],
+ kind: ReportKind::ExplicitJemallocHeapSize,
+ size: dom_tree_size,
+ })
}
- let window = it_page.window();
- let target = EventTargetCast::from_ref(&*window);
- dom_tree_size += heap_size_of_eventtarget(target);
-
- reports.push(Report {
- path: path![format!("url({})", current_url), "dom-tree"],
- kind: ReportKind::ExplicitJemallocHeapSize,
- size: dom_tree_size,
- })
}
let path_seg = format!("url({})", urls.join(", "));
reports.extend(ScriptTask::get_reports(self.get_cx(), path_seg));
@@ -1403,7 +1406,7 @@ impl ScriptTask {
if let Some(ref mut child_page) = page.remove(id) {
shut_down_layout(&*child_page, exit_type);
}
- return false;
+ false
}
/// Handles when layout task finishes all animation in one tick
@@ -1547,7 +1550,7 @@ impl ScriptTask {
DocumentSource::FromParser,
loader);
- let frame_element = frame_element.r().map(|elem| ElementCast::from_ref(elem));
+ let frame_element = frame_element.r().map(ElementCast::from_ref);
window.r().init_browsing_context(document.r(), frame_element);
// Create the root frame
@@ -1649,7 +1652,7 @@ impl ScriptTask {
let document = page.document();
let mut prev_mouse_over_targets: RootedVec<JS<Node>> = RootedVec::new();
- for target in self.mouse_over_targets.borrow_mut().iter() {
+ for target in &*self.mouse_over_targets.borrow_mut() {
prev_mouse_over_targets.push(target.clone());
}
@@ -1660,7 +1663,7 @@ impl ScriptTask {
document.r().handle_mouse_move_event(self.js_runtime.rt(), point, &mut mouse_over_targets);
// Notify Constellation about anchors that are no longer mouse over targets.
- for target in prev_mouse_over_targets.iter() {
+ for target in &*prev_mouse_over_targets {
if !mouse_over_targets.contains(target) {
if target.root().r().is_anchor_element() {
let event = ConstellationMsg::NodeStatus(None);
@@ -1672,7 +1675,7 @@ impl ScriptTask {
}
// Notify Constellation about the topmost anchor mouse over target.
- for target in mouse_over_targets.iter() {
+ for target in &*mouse_over_targets {
let target = target.root();
if target.r().is_anchor_element() {
let element = ElementCast::to_ref(target.r()).unwrap();
@@ -1933,7 +1936,7 @@ fn shut_down_layout(page_tree: &Rc<Page>, exit_type: PipelineExitType) {
}
// Destroy the layout task. If there were node leaks, layout will now crash safely.
- for chan in channels.into_iter() {
+ for chan in channels {
chan.send(layout_interface::Msg::ExitNow(exit_type)).ok();
}
}
diff --git a/components/script/textinput.rs b/components/script/textinput.rs
index 31fc7dc2e25..5ecf6a4f312 100644
--- a/components/script/textinput.rs
+++ b/components/script/textinput.rs
@@ -292,10 +292,11 @@ impl<T: ClipboardProvider> TextInput<T> {
/// Deal with a newline input.
pub fn handle_return(&mut self) -> KeyReaction {
if !self.multiline {
- return KeyReaction::TriggerDefaultAction;
+ KeyReaction::TriggerDefaultAction
+ } else {
+ self.insert_char('\n');
+ KeyReaction::DispatchInput
}
- self.insert_char('\n');
- return KeyReaction::DispatchInput;
}
/// Select all text in the input control.
diff --git a/components/script/timers.rs b/components/script/timers.rs
index 8ed64c32d83..8cc317f83ac 100644
--- a/components/script/timers.rs
+++ b/components/script/timers.rs
@@ -83,7 +83,7 @@ pub struct TimerManager {
impl Drop for TimerManager {
fn drop(&mut self) {
- for (_, timer_handle) in self.active_timers.borrow_mut().iter_mut() {
+ for (_, timer_handle) in &mut *self.active_timers.borrow_mut() {
timer_handle.cancel();
}
}
@@ -125,12 +125,12 @@ impl TimerManager {
}
pub fn suspend(&self) {
- for (_, timer_handle) in self.active_timers.borrow_mut().iter_mut() {
+ for (_, timer_handle) in &mut *self.active_timers.borrow_mut() {
timer_handle.suspend();
}
}
pub fn resume(&self) {
- for (_, timer_handle) in self.active_timers.borrow_mut().iter_mut() {
+ for (_, timer_handle) in &mut *self.active_timers.borrow_mut() {
timer_handle.resume();
}
}
@@ -142,7 +142,7 @@ impl TimerManager {
timeout: i32,
is_interval: IsInterval,
source: TimerSource,
- script_chan: Box<ScriptChan+Send>)
+ script_chan: Box<ScriptChan + Send>)
-> i32 {
let duration_ms = cmp::max(0, timeout) as u32;
let handle = self.next_timer_handle.get();
@@ -222,8 +222,8 @@ impl TimerManager {
for _ in 0..arguments.len() {
timer.data.args.push(Heap::default());
}
- for i in 0..arguments.len() {
- timer.data.args.get_mut(i).unwrap().set(arguments[i].get());
+ for (i, item) in arguments.iter().enumerate() {
+ timer.data.args.get_mut(i).unwrap().set(item.get());
}
handle
}