diff options
Diffstat (limited to 'components/script')
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 } |