aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbors-servo <metajack+bors@gmail.com>2015-09-19 13:34:51 -0600
committerbors-servo <metajack+bors@gmail.com>2015-09-19 13:34:51 -0600
commita0d3c9223f09757124b1520c4f17e94fa8bbe249 (patch)
tree1dd3e40e5a554466dfb4575758ad15967927d44d
parent7f2d81933a6158926ff6d03acbc05f191cd5adb3 (diff)
parentde3547e401a0ace8b6bfb4b488ed0be9d5b3d79c (diff)
downloadservo-a0d3c9223f09757124b1520c4f17e94fa8bbe249.tar.gz
servo-a0d3c9223f09757124b1520c4f17e94fa8bbe249.zip
Auto merge of #7662 - nerith:import, r=frewsxcv
Check for multiple import blocks separated by whitespace Fixes #7381. <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7662) <!-- Reviewable:end -->
-rw-r--r--components/canvas/canvas_paint_task.rs7
-rw-r--r--components/canvas/webgl_paint_task.rs4
-rw-r--r--components/compositing/compositor.rs11
-rw-r--r--components/compositing/compositor_layer.rs5
-rw-r--r--components/compositing/compositor_task.rs5
-rw-r--r--components/compositing/constellation.rs3
-rw-r--r--components/compositing/headless.rs3
-rw-r--r--components/compositing/pipeline.rs7
-rw-r--r--components/compositing/scrolling.rs1
-rw-r--r--components/compositing/windowing.rs1
-rw-r--r--components/devtools/actors/console.rs6
-rw-r--r--components/devtools/actors/framerate.rs9
-rw-r--r--components/devtools/actors/inspector.rs6
-rw-r--r--components/devtools/actors/memory.rs3
-rw-r--r--components/devtools/actors/performance.rs1
-rw-r--r--components/devtools/actors/profiler.rs1
-rw-r--r--components/devtools/actors/root.rs1
-rw-r--r--components/devtools/actors/tab.rs1
-rw-r--r--components/devtools/actors/timeline.rs15
-rw-r--r--components/devtools/lib.rs8
-rw-r--r--components/devtools_traits/lib.rs12
-rw-r--r--components/gfx/display_list/mod.rs13
-rw-r--r--components/gfx/display_list/optimizer.rs1
-rw-r--r--components/gfx/filters.rs1
-rw-r--r--components/gfx/font.rs11
-rw-r--r--components/gfx/font_context.rs28
-rw-r--r--components/gfx/font_template.rs3
-rw-r--r--components/gfx/paint_context.rs17
-rw-r--r--components/gfx/paint_task.rs9
-rw-r--r--components/gfx/platform/freetype/font.rs16
-rw-r--r--components/gfx/platform/freetype/font_context.rs4
-rw-r--r--components/gfx/platform/freetype/font_list.rs4
-rw-r--r--components/gfx/platform/macos/font.rs18
-rw-r--r--components/gfx/platform/macos/font_list.rs1
-rw-r--r--components/gfx/platform/macos/font_template.rs1
-rw-r--r--components/gfx/text/glyph.rs2
-rw-r--r--components/gfx/text/shaping/harfbuzz.rs11
-rw-r--r--components/gfx/text/text_run.rs8
-rw-r--r--components/layout/animation.rs5
-rw-r--r--components/layout/block.rs7
-rw-r--r--components/layout/construct.rs23
-rw-r--r--components/layout/context.rs3
-rw-r--r--components/layout/css/matching.rs5
-rw-r--r--components/layout/display_list_builder.rs15
-rw-r--r--components/layout/flex.rs13
-rw-r--r--components/layout/flow.rs25
-rw-r--r--components/layout/flow_list.rs1
-rw-r--r--components/layout/fragment.rs17
-rw-r--r--components/layout/generated_content.rs7
-rw-r--r--components/layout/incremental.rs1
-rw-r--r--components/layout/inline.rs13
-rw-r--r--components/layout/layout_debug.rs1
-rw-r--r--components/layout/layout_task.rs29
-rw-r--r--components/layout/list_item.rs7
-rw-r--r--components/layout/model.rs3
-rw-r--r--components/layout/multicol.rs3
-rw-r--r--components/layout/parallel.rs11
-rw-r--r--components/layout/query.rs4
-rw-r--r--components/layout/sequential.rs5
-rw-r--r--components/layout/table.rs11
-rw-r--r--components/layout/table_caption.rs3
-rw-r--r--components/layout/table_cell.rs13
-rw-r--r--components/layout/table_colgroup.rs3
-rw-r--r--components/layout/table_row.rs11
-rw-r--r--components/layout/table_rowgroup.rs9
-rw-r--r--components/layout/table_wrapper.rs7
-rw-r--r--components/layout/text.rs3
-rw-r--r--components/layout/traversal.rs10
-rw-r--r--components/layout/wrapper.rs5
-rw-r--r--components/msg/compositor_msg.rs3
-rw-r--r--components/msg/webdriver_msg.rs1
-rw-r--r--components/net/about_loader.rs12
-rw-r--r--components/net/cookie.rs3
-rw-r--r--components/net/data_loader.rs4
-rw-r--r--components/net/file_loader.rs1
-rw-r--r--components/net/hsts.rs4
-rw-r--r--components/net/storage_task.rs3
-rw-r--r--components/net_traits/hosts.rs1
-rw-r--r--components/net_traits/lib.rs3
-rw-r--r--components/net_traits/storage_task.rs1
-rw-r--r--components/plugins/lib.rs1
-rw-r--r--components/plugins/lints/inheritance_integrity.rs1
-rw-r--r--components/plugins/utils.rs1
-rw-r--r--components/profile_traits/mem.rs1
-rw-r--r--components/script/clipboard_provider.rs3
-rw-r--r--components/script/cors.rs21
-rw-r--r--components/script/dom/activation.rs1
-rw-r--r--components/script/dom/attr.rs9
-rw-r--r--components/script/dom/bindings/callback.rs1
-rw-r--r--components/script/dom/bindings/cell.rs4
-rw-r--r--components/script/dom/bindings/conversions.rs6
-rw-r--r--components/script/dom/bindings/error.rs7
-rw-r--r--components/script/dom/bindings/global.rs11
-rw-r--r--components/script/dom/bindings/js.rs5
-rw-r--r--components/script/dom/bindings/proxyhandler.rs1
-rw-r--r--components/script/dom/bindings/refcounted.rs6
-rw-r--r--components/script/dom/bindings/str.rs1
-rw-r--r--components/script/dom/bindings/structuredclone.rs2
-rw-r--r--components/script/dom/bindings/trace.rs9
-rw-r--r--components/script/dom/bindings/utils.rs5
-rw-r--r--components/script/dom/browsercontext.rs2
-rw-r--r--components/script/dom/canvasrenderingcontext2d.rs23
-rw-r--r--components/script/dom/characterdata.rs4
-rw-r--r--components/script/dom/closeevent.rs1
-rw-r--r--components/script/dom/create.rs4
-rw-r--r--components/script/dom/crypto.rs5
-rw-r--r--components/script/dom/css.rs3
-rw-r--r--components/script/dom/cssstyledeclaration.rs9
-rw-r--r--components/script/dom/dedicatedworkerglobalscope.rs21
-rw-r--r--components/script/dom/document.rs21
-rw-r--r--components/script/dom/documenttype.rs3
-rw-r--r--components/script/dom/domexception.rs3
-rw-r--r--components/script/dom/domimplementation.rs3
-rw-r--r--components/script/dom/domparser.rs3
-rw-r--r--components/script/dom/domtokenlist.rs4
-rw-r--r--components/script/dom/element.rs29
-rw-r--r--components/script/dom/errorevent.rs8
-rw-r--r--components/script/dom/event.rs4
-rw-r--r--components/script/dom/eventdispatcher.rs3
-rw-r--r--components/script/dom/eventtarget.rs10
-rw-r--r--components/script/dom/formdata.rs3
-rw-r--r--components/script/dom/htmlanchorelement.rs7
-rw-r--r--components/script/dom/htmlappletelement.rs4
-rw-r--r--components/script/dom/htmlareaelement.rs1
-rw-r--r--components/script/dom/htmlbaseelement.rs3
-rw-r--r--components/script/dom/htmlbodyelement.rs8
-rw-r--r--components/script/dom/htmlbuttonelement.rs1
-rw-r--r--components/script/dom/htmlcanvaselement.rs9
-rw-r--r--components/script/dom/htmlcollection.rs3
-rw-r--r--components/script/dom/htmldialogelement.rs4
-rw-r--r--components/script/dom/htmlelement.rs7
-rw-r--r--components/script/dom/htmlfieldsetelement.rs1
-rw-r--r--components/script/dom/htmlfontelement.rs5
-rw-r--r--components/script/dom/htmlformelement.rs5
-rw-r--r--components/script/dom/htmliframeelement.rs14
-rw-r--r--components/script/dom/htmlimageelement.rs12
-rw-r--r--components/script/dom/htmlinputelement.rs8
-rw-r--r--components/script/dom/htmllinkelement.rs5
-rw-r--r--components/script/dom/htmlobjectelement.rs1
-rw-r--r--components/script/dom/htmloptgroupelement.rs1
-rw-r--r--components/script/dom/htmloptionelement.rs1
-rw-r--r--components/script/dom/htmlscriptelement.rs14
-rw-r--r--components/script/dom/htmlselectelement.rs4
-rw-r--r--components/script/dom/htmltablecellelement.rs9
-rw-r--r--components/script/dom/htmltableelement.rs9
-rw-r--r--components/script/dom/htmltablerowelement.rs3
-rw-r--r--components/script/dom/htmltablesectionelement.rs3
-rw-r--r--components/script/dom/htmltextareaelement.rs8
-rw-r--r--components/script/dom/keyboardevent.rs3
-rw-r--r--components/script/dom/location.rs1
-rw-r--r--components/script/dom/messageevent.rs5
-rw-r--r--components/script/dom/namednodemap.rs3
-rw-r--r--components/script/dom/navigatorinfo.rs3
-rw-r--r--components/script/dom/node.rs17
-rw-r--r--components/script/dom/nodeiterator.rs1
-rw-r--r--components/script/dom/nodelist.rs1
-rw-r--r--components/script/dom/range.rs1
-rw-r--r--components/script/dom/servohtmlparser.rs12
-rw-r--r--components/script/dom/storageevent.rs1
-rw-r--r--components/script/dom/testbinding.rs4
-rw-r--r--components/script/dom/textdecoder.rs5
-rw-r--r--components/script/dom/textencoder.rs10
-rw-r--r--components/script/dom/uievent.rs4
-rw-r--r--components/script/dom/url.rs6
-rw-r--r--components/script/dom/urlhelper.rs7
-rw-r--r--components/script/dom/urlsearchparams.rs1
-rw-r--r--components/script/dom/virtualmethods.rs3
-rw-r--r--components/script/dom/webglbuffer.rs3
-rw-r--r--components/script/dom/webglframebuffer.rs3
-rw-r--r--components/script/dom/webglprogram.rs6
-rw-r--r--components/script/dom/webglrenderbuffer.rs3
-rw-r--r--components/script/dom/webglrenderingcontext.rs6
-rw-r--r--components/script/dom/webglshader.rs8
-rw-r--r--components/script/dom/webgltexture.rs3
-rw-r--r--components/script/dom/websocket.rs21
-rw-r--r--components/script/dom/window.rs47
-rw-r--r--components/script/dom/worker.rs11
-rw-r--r--components/script/dom/workerglobalscope.rs20
-rw-r--r--components/script/dom/workerlocation.rs1
-rw-r--r--components/script/dom/xmlhttprequest.rs30
-rw-r--r--components/script/layout_interface.rs1
-rw-r--r--components/script/page.rs1
-rw-r--r--components/script/parse/html.rs4
-rw-r--r--components/script/script_task.rs64
-rw-r--r--components/script/textinput.rs5
-rw-r--r--components/script/timers.rs13
-rw-r--r--components/script/webdriver_handlers.rs3
-rw-r--r--components/script_traits/lib.rs5
-rw-r--r--components/servo/lib.rs11
-rw-r--r--components/servo/main.rs3
-rw-r--r--components/style/animation.rs9
-rw-r--r--components/style/legacy.rs3
-rw-r--r--components/style/media_queries.rs3
-rw-r--r--components/style/node.rs3
-rw-r--r--components/style/parser.rs3
-rw-r--r--components/style/selector_matching.rs16
-rw-r--r--components/style/stylesheets.rs14
-rw-r--r--components/style/values.rs6
-rw-r--r--components/style/viewport.rs8
-rw-r--r--components/util/geometry.rs5
-rw-r--r--components/util/ipc.rs3
-rw-r--r--components/util/mem.rs17
-rw-r--r--components/util/opts.rs3
-rw-r--r--components/util/str.rs4
-rw-r--r--components/util/vec.rs3
-rw-r--r--components/util/workqueue.rs5
-rw-r--r--components/webdriver_traits/lib.rs1
-rw-r--r--ports/glutin/window.rs25
-rw-r--r--ports/gonk/src/input.rs12
-rw-r--r--ports/gonk/src/main.rs3
-rw-r--r--ports/gonk/src/window.rs22
-rw-r--r--python/tidy.py37
-rw-r--r--tests/unit/script/size_of.rs1
-rw-r--r--tests/unit/script/textinput.rs8
214 files changed, 620 insertions, 933 deletions
diff --git a/components/canvas/canvas_paint_task.rs b/components/canvas/canvas_paint_task.rs
index bd15ab492f5..cf179fc9600 100644
--- a/components/canvas/canvas_paint_task.rs
+++ b/components/canvas/canvas_paint_task.rs
@@ -17,13 +17,12 @@ use ipc_channel::ipc::{self, IpcSender};
use ipc_channel::router::ROUTER;
use layers::platform::surface::NativeSurface;
use num::ToPrimitive;
-use util::opts;
-use util::task::spawn_named;
-use util::vec::byte_swap;
-
use std::borrow::ToOwned;
use std::mem;
use std::sync::mpsc::{channel, Sender};
+use util::opts;
+use util::task::spawn_named;
+use util::vec::byte_swap;
impl<'a> CanvasPaintTask<'a> {
/// It reads image data from the canvas
diff --git a/components/canvas/webgl_paint_task.rs b/components/canvas/webgl_paint_task.rs
index 3204c3cd08b..b10e31a01e0 100644
--- a/components/canvas/webgl_paint_task.rs
+++ b/components/canvas/webgl_paint_task.rs
@@ -8,9 +8,6 @@ use core::nonzero::NonZero;
use euclid::size::Size2D;
use gleam::gl;
use gleam::gl::types::{GLsizei};
-
-use util::task::spawn_named;
-
use ipc_channel::ipc::{self, IpcSender, IpcSharedMemory};
use ipc_channel::router::ROUTER;
use layers::platform::surface::NativeSurface;
@@ -18,6 +15,7 @@ use offscreen_gl_context::{GLContext, GLContextAttributes, ColorAttachmentType};
use std::borrow::ToOwned;
use std::slice::bytes::copy_memory;
use std::sync::mpsc::{channel, Sender};
+use util::task::spawn_named;
use util::vec::byte_swap;
pub struct WebGLPaintTask {
diff --git a/components/compositing/compositor.rs b/components/compositing/compositor.rs
index a35ffe80e35..40ea8f7fb33 100644
--- a/components/compositing/compositor.rs
+++ b/components/compositing/compositor.rs
@@ -6,12 +6,6 @@ use compositor_layer::{CompositorData, CompositorLayer, WantsScrollEventsFlag};
use compositor_task::{CompositorEventListener, CompositorProxy};
use compositor_task::{CompositorReceiver, InitialCompositorState, Msg};
use constellation::SendableFrameTree;
-use pipeline::CompositionPipeline;
-use scrolling::ScrollingTimerProxy;
-use surface_map::SurfaceMap;
-use windowing;
-use windowing::{MouseWindowEvent, WindowEvent, WindowMethods, WindowNavigateMsg};
-
use euclid::point::TypedPoint2D;
use euclid::rect::TypedRect;
use euclid::scale_factor::ScaleFactor;
@@ -37,10 +31,12 @@ use msg::constellation_msg::Msg as ConstellationMsg;
use msg::constellation_msg::{ConstellationChan, NavigationDirection};
use msg::constellation_msg::{Key, KeyModifiers, KeyState, LoadData};
use msg::constellation_msg::{PipelineId, WindowSizeData};
+use pipeline::CompositionPipeline;
use png;
use profile_traits::mem::{self, Reporter, ReporterRequest, ReportKind};
use profile_traits::time::{self, ProfilerCategory, profile};
use script_traits::{ConstellationControlMsg, LayoutControlMsg};
+use scrolling::ScrollingTimerProxy;
use std::collections::HashMap;
use std::collections::hash_map::Entry::{Occupied, Vacant};
use std::mem as std_mem;
@@ -48,10 +44,13 @@ use std::rc::Rc;
use std::slice::bytes::copy_memory;
use std::sync::mpsc::Sender;
use style_traits::viewport::ViewportConstraints;
+use surface_map::SurfaceMap;
use time::{precise_time_ns, precise_time_s};
use url::Url;
use util::geometry::{Au, PagePx, ScreenPx, ViewportPx};
use util::opts;
+use windowing;
+use windowing::{MouseWindowEvent, WindowEvent, WindowMethods, WindowNavigateMsg};
const BUFFER_MAP_SIZE: usize = 10000000;
diff --git a/components/compositing/compositor_layer.rs b/components/compositing/compositor_layer.rs
index 5f61cbc3544..7132ee7bb29 100644
--- a/components/compositing/compositor_layer.rs
+++ b/components/compositing/compositor_layer.rs
@@ -2,10 +2,8 @@
* 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 compositor::IOCompositor;
-use windowing::{MouseWindowEvent, WindowMethods};
-
use azure::azure_hl;
+use compositor::IOCompositor;
use euclid::length::Length;
use euclid::point::{Point2D, TypedPoint2D};
use euclid::rect::Rect;
@@ -18,6 +16,7 @@ use msg::constellation_msg::PipelineId;
use script_traits::CompositorEvent::{ClickEvent, MouseDownEvent, MouseMoveEvent, MouseUpEvent};
use script_traits::ConstellationControlMsg;
use std::rc::Rc;
+use windowing::{MouseWindowEvent, WindowMethods};
#[derive(Debug)]
pub struct CompositorData {
diff --git a/components/compositing/compositor_task.rs b/components/compositing/compositor_task.rs
index eaf0645d2df..b32f403c971 100644
--- a/components/compositing/compositor_task.rs
+++ b/components/compositing/compositor_task.rs
@@ -8,10 +8,8 @@ pub use windowing;
pub use constellation::SendableFrameTree;
use compositor;
-use headless;
-use windowing::{WindowEvent, WindowMethods};
-
use euclid::{Size2D, Point2D, Rect};
+use headless;
use ipc_channel::ipc::{IpcReceiver, IpcSender};
use layers::layers::{BufferRequest, LayerBufferSet};
use layers::platform::surface::{NativeDisplay, NativeSurface};
@@ -28,6 +26,7 @@ use std::sync::mpsc::{channel, Sender, Receiver};
use style_traits::viewport::ViewportConstraints;
use url::Url;
use util::cursor::Cursor;
+use windowing::{WindowEvent, WindowMethods};
/// Sends messages to the compositor. This is a trait supplied by the port because the method used
/// to communicate with the compositor may have to kick OS event loops awake, communicate cross-
diff --git a/components/compositing/constellation.rs b/components/compositing/constellation.rs
index 46088f4dc09..0fbf07d5527 100644
--- a/components/compositing/constellation.rs
+++ b/components/compositing/constellation.rs
@@ -9,8 +9,6 @@
//! navigation context, each `Pipeline` encompassing a `ScriptTask`,
//! `LayoutTask`, and `PaintTask`.
-use pipeline::{Pipeline, CompositionPipeline, InitialPipelineState};
-
use canvas::canvas_paint_task::CanvasPaintTask;
use canvas::webgl_paint_task::WebGLPaintTask;
use canvas_traits::CanvasMsg;
@@ -39,6 +37,7 @@ use net_traits::image_cache_task::ImageCacheTask;
use net_traits::storage_task::{StorageTask, StorageTaskMsg};
use net_traits::{self, ResourceTask};
use offscreen_gl_context::GLContextAttributes;
+use pipeline::{Pipeline, CompositionPipeline, InitialPipelineState};
use profile_traits::mem;
use profile_traits::time;
use script_traits::{CompositorEvent, ConstellationControlMsg, LayoutControlMsg};
diff --git a/components/compositing/headless.rs b/components/compositing/headless.rs
index c5216152095..17bc07698da 100644
--- a/components/compositing/headless.rs
+++ b/components/compositing/headless.rs
@@ -4,8 +4,6 @@
use compositor_task::{CompositorEventListener, CompositorReceiver};
use compositor_task::{InitialCompositorState, Msg};
-use windowing::WindowEvent;
-
use euclid::scale_factor::ScaleFactor;
use euclid::{Size2D, Point2D};
use msg::constellation_msg::AnimationState;
@@ -13,6 +11,7 @@ use msg::constellation_msg::Msg as ConstellationMsg;
use msg::constellation_msg::{ConstellationChan, WindowSizeData};
use profile_traits::mem;
use profile_traits::time;
+use windowing::WindowEvent;
/// Starts the compositor, which listens for messages on the specified port.
///
diff --git a/components/compositing/pipeline.rs b/components/compositing/pipeline.rs
index c30eab7e9b0..557c8725138 100644
--- a/components/compositing/pipeline.rs
+++ b/components/compositing/pipeline.rs
@@ -3,10 +3,6 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use CompositorProxy;
-use layout_traits::{LayoutTaskFactory, LayoutControlChan};
-use script_traits::{ConstellationControlMsg, InitialScriptState};
-use script_traits::{LayoutControlMsg, NewLayoutInfo, ScriptTaskFactory};
-
use compositor_task;
use devtools_traits::{DevtoolsControlMsg, ScriptToDevtoolsControlMsg};
use euclid::rect::{TypedRect};
@@ -16,6 +12,7 @@ use gfx::paint_task::{ChromeToPaintMsg, LayoutToPaintMsg, PaintTask};
use ipc_channel::ipc::{self, IpcReceiver, IpcSender};
use ipc_channel::router::ROUTER;
use layers::geometry::DevicePixel;
+use layout_traits::{LayoutTaskFactory, LayoutControlChan};
use msg::constellation_msg::{ConstellationChan, Failure, FrameId, PipelineId, SubpageId};
use msg::constellation_msg::{LoadData, WindowSizeData, PipelineExitType, MozBrowserEvent};
use net_traits::ResourceTask;
@@ -23,6 +20,8 @@ use net_traits::image_cache_task::ImageCacheTask;
use net_traits::storage_task::StorageTask;
use profile_traits::mem as profile_mem;
use profile_traits::time;
+use script_traits::{ConstellationControlMsg, InitialScriptState};
+use script_traits::{LayoutControlMsg, NewLayoutInfo, ScriptTaskFactory};
use std::any::Any;
use std::mem;
use std::sync::mpsc::{Receiver, Sender, channel};
diff --git a/components/compositing/scrolling.rs b/components/compositing/scrolling.rs
index f19a8b9b9da..df266f1741e 100644
--- a/components/compositing/scrolling.rs
+++ b/components/compositing/scrolling.rs
@@ -5,7 +5,6 @@
//! A timer thread that gives the painting task a little time to catch up when the user scrolls.
use compositor_task::{CompositorProxy, Msg};
-
use std::sync::mpsc::{Receiver, Sender, channel};
use std::thread::{Builder, sleep_ms};
use time;
diff --git a/components/compositing/windowing.rs b/components/compositing/windowing.rs
index 99cd0615c25..a5afcb999ca 100644
--- a/components/compositing/windowing.rs
+++ b/components/compositing/windowing.rs
@@ -5,7 +5,6 @@
//! Abstract windowing methods. The concrete implementations of these can be found in `platform/`.
use compositor_task::{CompositorProxy, CompositorReceiver};
-
use euclid::point::TypedPoint2D;
use euclid::scale_factor::ScaleFactor;
use euclid::size::TypedSize2D;
diff --git a/components/devtools/actors/console.rs b/components/devtools/actors/console.rs
index 5e2a3cfd526..ae054ebf52c 100644
--- a/components/devtools/actors/console.rs
+++ b/components/devtools/actors/console.rs
@@ -9,15 +9,13 @@
use actor::{Actor, ActorRegistry, ActorMessageStatus};
use actors::object::ObjectActor;
-use protocol::JsonPacketStream;
-
use devtools_traits::CachedConsoleMessage;
use devtools_traits::EvaluateJSReply::{NullValue, VoidValue, NumberValue};
use devtools_traits::EvaluateJSReply::{StringValue, BooleanValue, ActorValue};
use devtools_traits::{CachedConsoleMessageTypes, DevtoolScriptControlMsg, PAGE_ERROR, CONSOLE_API};
-use msg::constellation_msg::PipelineId;
-
use ipc_channel::ipc::{self, IpcSender};
+use msg::constellation_msg::PipelineId;
+use protocol::JsonPacketStream;
use rustc_serialize::json::{self, Json, ToJson};
use std::cell::RefCell;
use std::collections::BTreeMap;
diff --git a/components/devtools/actors/framerate.rs b/components/devtools/actors/framerate.rs
index bc3937e9ce8..325572d1d91 100644
--- a/components/devtools/actors/framerate.rs
+++ b/components/devtools/actors/framerate.rs
@@ -2,17 +2,16 @@
* 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 actor::{Actor, ActorRegistry, ActorMessageStatus};
+use actors::timeline::HighResolutionStamp;
+use devtools_traits::DevtoolScriptControlMsg;
use ipc_channel::ipc::IpcSender;
+use msg::constellation_msg::PipelineId;
use rustc_serialize::json;
use std::mem;
use std::net::TcpStream;
use time::precise_time_ns;
-use actor::{Actor, ActorRegistry, ActorMessageStatus};
-use actors::timeline::HighResolutionStamp;
-use devtools_traits::DevtoolScriptControlMsg;
-use msg::constellation_msg::PipelineId;
-
pub struct FramerateActor {
name: String,
pipeline: PipelineId,
diff --git a/components/devtools/actors/inspector.rs b/components/devtools/actors/inspector.rs
index 7dd132a2eb0..b319e4ac703 100644
--- a/components/devtools/actors/inspector.rs
+++ b/components/devtools/actors/inspector.rs
@@ -5,15 +5,13 @@
//! Liberally derived from the [Firefox JS implementation]
//! (http://mxr.mozilla.org/mozilla-central/source/toolkit/devtools/server/actors/inspector.js).
+use actor::{Actor, ActorRegistry, ActorMessageStatus};
use devtools_traits::DevtoolScriptControlMsg::{GetLayout, ModifyAttribute};
use devtools_traits::DevtoolScriptControlMsg::{GetRootNode, GetDocumentElement, GetChildren};
use devtools_traits::{DevtoolScriptControlMsg, NodeInfo, ComputedNodeLayout};
-
-use actor::{Actor, ActorRegistry, ActorMessageStatus};
-use protocol::JsonPacketStream;
-
use ipc_channel::ipc::{self, IpcSender};
use msg::constellation_msg::PipelineId;
+use protocol::JsonPacketStream;
use rustc_serialize::json::{self, Json, ToJson};
use std::cell::RefCell;
use std::collections::BTreeMap;
diff --git a/components/devtools/actors/memory.rs b/components/devtools/actors/memory.rs
index 1011cfd9dab..daf5b4908f1 100644
--- a/components/devtools/actors/memory.rs
+++ b/components/devtools/actors/memory.rs
@@ -2,11 +2,10 @@
* 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 actor::{Actor, ActorRegistry, ActorMessageStatus};
use rustc_serialize::json;
use std::net::TcpStream;
-use actor::{Actor, ActorRegistry, ActorMessageStatus};
-
#[derive(RustcEncodable)]
pub struct TimelineMemoryReply {
jsObjectSize: u64,
diff --git a/components/devtools/actors/performance.rs b/components/devtools/actors/performance.rs
index 4c6d276783b..e2c2d26ed78 100644
--- a/components/devtools/actors/performance.rs
+++ b/components/devtools/actors/performance.rs
@@ -4,7 +4,6 @@
use actor::{Actor, ActorRegistry, ActorMessageStatus};
use protocol::JsonPacketStream;
-
use rustc_serialize::json;
use std::net::TcpStream;
diff --git a/components/devtools/actors/profiler.rs b/components/devtools/actors/profiler.rs
index fab3cc18249..938b98b28be 100644
--- a/components/devtools/actors/profiler.rs
+++ b/components/devtools/actors/profiler.rs
@@ -3,7 +3,6 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use actor::{Actor, ActorRegistry, ActorMessageStatus};
-
use rustc_serialize::json;
use std::net::TcpStream;
diff --git a/components/devtools/actors/root.rs b/components/devtools/actors/root.rs
index 5a7c29ae951..b5334daa313 100644
--- a/components/devtools/actors/root.rs
+++ b/components/devtools/actors/root.rs
@@ -10,7 +10,6 @@
use actor::{Actor, ActorRegistry, ActorMessageStatus};
use actors::tab::{TabActor, TabActorMsg};
use protocol::JsonPacketStream;
-
use rustc_serialize::json;
use std::net::TcpStream;
diff --git a/components/devtools/actors/tab.rs b/components/devtools/actors/tab.rs
index 36083a6aafd..3567127c05d 100644
--- a/components/devtools/actors/tab.rs
+++ b/components/devtools/actors/tab.rs
@@ -11,7 +11,6 @@ use actor::{Actor, ActorRegistry, ActorMessageStatus};
use actors::console::ConsoleActor;
use devtools_traits::DevtoolScriptControlMsg::WantsLiveNotifications;
use protocol::JsonPacketStream;
-
use rustc_serialize::json;
use std::net::TcpStream;
diff --git a/components/devtools/actors/timeline.rs b/components/devtools/actors/timeline.rs
index 138aab3eabc..17bf03807f1 100644
--- a/components/devtools/actors/timeline.rs
+++ b/components/devtools/actors/timeline.rs
@@ -2,22 +2,21 @@
* 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 actor::{Actor, ActorRegistry, ActorMessageStatus};
+use actors::framerate::FramerateActor;
+use actors::memory::{MemoryActor, TimelineMemoryReply};
+use devtools_traits::DevtoolScriptControlMsg;
+use devtools_traits::DevtoolScriptControlMsg::{SetTimelineMarkers, DropTimelineMarkers};
+use devtools_traits::{PreciseTime, TimelineMarker, TimelineMarkerType};
use ipc_channel::ipc::{self, IpcReceiver, IpcSender};
use msg::constellation_msg::PipelineId;
+use protocol::JsonPacketStream;
use rustc_serialize::{json, Encoder, Encodable};
use std::cell::RefCell;
use std::net::TcpStream;
use std::sync::mpsc::channel;
use std::sync::{Arc, Mutex};
use std::thread::sleep_ms;
-
-use actor::{Actor, ActorRegistry, ActorMessageStatus};
-use actors::framerate::FramerateActor;
-use actors::memory::{MemoryActor, TimelineMemoryReply};
-use devtools_traits::DevtoolScriptControlMsg;
-use devtools_traits::DevtoolScriptControlMsg::{SetTimelineMarkers, DropTimelineMarkers};
-use devtools_traits::{PreciseTime, TimelineMarker, TimelineMarkerType};
-use protocol::JsonPacketStream;
use util::task;
pub struct TimelineActor {
diff --git a/components/devtools/lib.rs b/components/devtools/lib.rs
index e552f5ed0ff..d33a82638cb 100644
--- a/components/devtools/lib.rs
+++ b/components/devtools/lib.rs
@@ -43,15 +43,12 @@ use actors::root::RootActor;
use actors::tab::TabActor;
use actors::timeline::TimelineActor;
use actors::worker::WorkerActor;
-use protocol::JsonPacketStream;
-
use devtools_traits::{ChromeToDevtoolsControlMsg, ConsoleMessage, DevtoolsControlMsg};
use devtools_traits::{DevtoolsPageInfo, DevtoolScriptControlMsg, LogLevel, NetworkEvent};
use devtools_traits::{ScriptToDevtoolsControlMsg};
-use msg::constellation_msg::{PipelineId, WorkerId};
-use util::task::spawn_named;
-
use ipc_channel::ipc::IpcSender;
+use msg::constellation_msg::{PipelineId, WorkerId};
+use protocol::JsonPacketStream;
use std::borrow::ToOwned;
use std::cell::RefCell;
use std::collections::HashMap;
@@ -61,6 +58,7 @@ use std::net::{TcpListener, TcpStream, Shutdown};
use std::sync::mpsc::{channel, Receiver, Sender, RecvError};
use std::sync::{Arc, Mutex};
use time::precise_time_ns;
+use util::task::spawn_named;
mod actor;
/// Corresponds to http://mxr.mozilla.org/mozilla-central/source/toolkit/devtools/server/actors/
diff --git a/components/devtools_traits/lib.rs b/components/devtools_traits/lib.rs
index c8889fcd5fb..61ab9148144 100644
--- a/components/devtools_traits/lib.rs
+++ b/components/devtools_traits/lib.rs
@@ -27,18 +27,16 @@ extern crate hyper;
extern crate util;
extern crate time;
-use msg::constellation_msg::{PipelineId, WorkerId};
-use rustc_serialize::{Decodable, Decoder};
-use url::Url;
-use util::str::DOMString;
-
use hyper::header::Headers;
use hyper::http::RawStatus;
use hyper::method::Method;
use ipc_channel::ipc::IpcSender;
-use time::Duration;
-
+use msg::constellation_msg::{PipelineId, WorkerId};
+use rustc_serialize::{Decodable, Decoder};
use std::net::TcpStream;
+use time::Duration;
+use url::Url;
+use util::str::DOMString;
// Information would be attached to NewGlobal to be received and show in devtools.
// Extend these fields if we need more information.
diff --git a/components/gfx/display_list/mod.rs b/components/gfx/display_list/mod.rs
index d6192cbc285..dc62e8a1fa2 100644
--- a/components/gfx/display_list/mod.rs
+++ b/components/gfx/display_list/mod.rs
@@ -16,15 +16,9 @@
#![deny(unsafe_code)]
-use display_list::optimizer::DisplayListOptimizer;
-use paint_context::PaintContext;
-use self::DisplayItem::*;
-use self::DisplayItemIterator::*;
-use text::TextRun;
-use text::glyph::CharIndex;
-
use azure::azure::AzFloat;
use azure::azure_hl::Color;
+use display_list::optimizer::DisplayListOptimizer;
use euclid::approxeq::ApproxEq;
use euclid::num::Zero;
use euclid::{Point2D, Rect, SideOffsets2D, Size2D, Matrix2D, Matrix4};
@@ -32,7 +26,10 @@ use gfx_traits::color;
use libc::uintptr_t;
use msg::compositor_msg::{LayerId, LayerKind, ScrollPolicy};
use net_traits::image::base::Image;
+use paint_context::PaintContext;
use paint_task::PaintLayer;
+use self::DisplayItem::*;
+use self::DisplayItemIterator::*;
use smallvec::SmallVec;
use std::collections::linked_list::{self, LinkedList};
use std::fmt;
@@ -42,6 +39,8 @@ use std::sync::Arc;
use style::computed_values::{border_style, cursor, filter, image_rendering, mix_blend_mode};
use style::computed_values::{pointer_events};
use style::properties::ComputedValues;
+use text::TextRun;
+use text::glyph::CharIndex;
use util::cursor::Cursor;
use util::geometry::{self, Au, MAX_RECT, ZERO_RECT};
use util::linked_list::prepend_from;
diff --git a/components/gfx/display_list/optimizer.rs b/components/gfx/display_list/optimizer.rs
index ecfb0c668ff..686007b8788 100644
--- a/components/gfx/display_list/optimizer.rs
+++ b/components/gfx/display_list/optimizer.rs
@@ -5,7 +5,6 @@
//! Transforms a display list to produce a visually-equivalent, but cheaper-to-paint, one.
use display_list::{DisplayItem, DisplayList, StackingContext};
-
use euclid::rect::Rect;
use euclid::{Matrix2D, Matrix4};
use std::collections::linked_list::LinkedList;
diff --git a/components/gfx/filters.rs b/components/gfx/filters.rs
index 832cc437c74..e0c6e5ca3ea 100644
--- a/components/gfx/filters.rs
+++ b/components/gfx/filters.rs
@@ -9,7 +9,6 @@ use azure::azure_hl::{ColorMatrixAttribute, ColorMatrixInput, CompositeInput, Dr
use azure::azure_hl::{FilterNode, FilterType, LinearTransferAttribute, LinearTransferInput};
use azure::azure_hl::{GaussianBlurAttribute, GaussianBlurInput};
use azure::azure_hl::{Matrix5x4, TableTransferAttribute, TableTransferInput};
-
use style::computed_values::filter;
use util::geometry::Au;
diff --git a/components/gfx/font.rs b/components/gfx/font.rs
index e8636aa802f..8716533d77c 100644
--- a/components/gfx/font.rs
+++ b/components/gfx/font.rs
@@ -3,6 +3,10 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use euclid::{Point2D, Rect, Size2D};
+use font_template::FontTemplateDescriptor;
+use platform::font::{FontHandle, FontTable};
+use platform::font_context::FontContextHandle;
+use platform::font_template::FontTemplateData;
use smallvec::SmallVec;
use std::borrow::ToOwned;
use std::cell::RefCell;
@@ -11,15 +15,10 @@ use std::str;
use std::sync::Arc;
use style::computed_values::{font_stretch, font_variant, font_weight};
use style::properties::style_structs::Font as FontStyle;
-use util::cache::HashCache;
-
-use font_template::FontTemplateDescriptor;
-use platform::font::{FontHandle, FontTable};
-use platform::font_context::FontContextHandle;
-use platform::font_template::FontTemplateData;
use text::Shaper;
use text::glyph::{GlyphStore, GlyphId};
use text::shaping::ShaperMethods;
+use util::cache::HashCache;
use util::geometry::Au;
// FontHandle encapsulates access to the platform's font API,
diff --git a/components/gfx/font_context.rs b/components/gfx/font_context.rs
index c4aa6212591..e0fa69800e1 100644
--- a/components/gfx/font_context.rs
+++ b/components/gfx/font_context.rs
@@ -2,23 +2,20 @@
* 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 font::SpecifiedFontStyle;
-use font::{Font, FontGroup};
-use platform::font_context::FontContextHandle;
-use style::computed_values::{font_style, font_variant};
-
+use azure::azure_hl::BackendType;
+#[cfg(any(target_os = "linux", target_os = "android"))]
+use azure::scaled_font::FontInfo;
+use azure::scaled_font::ScaledFont;
use fnv::FnvHasher;
use font::FontHandleMethods;
+use font::SpecifiedFontStyle;
+use font::{Font, FontGroup};
use font_cache_task::FontCacheTask;
use font_template::FontTemplateDescriptor;
use platform::font::FontHandle;
+use platform::font_context::FontContextHandle;
use platform::font_template::FontTemplateData;
use smallvec::SmallVec;
-use string_cache::Atom;
-use util::cache::HashCache;
-use util::geometry::Au;
-use util::mem::HeapSizeOf;
-
use std::borrow::{self, ToOwned};
use std::cell::RefCell;
use std::collections::HashMap;
@@ -27,12 +24,11 @@ use std::default::Default;
use std::hash::{Hash, Hasher};
use std::rc::Rc;
use std::sync::Arc;
-
-use azure::azure_hl::BackendType;
-use azure::scaled_font::ScaledFont;
-
-#[cfg(any(target_os = "linux", target_os = "android"))]
-use azure::scaled_font::FontInfo;
+use string_cache::Atom;
+use style::computed_values::{font_style, font_variant};
+use util::cache::HashCache;
+use util::geometry::Au;
+use util::mem::HeapSizeOf;
#[cfg(any(target_os = "linux", target_os = "android"))]
fn create_scaled_font(template: &Arc<FontTemplateData>, pt_size: Au) -> ScaledFont {
diff --git a/components/gfx/font_template.rs b/components/gfx/font_template.rs
index 62c4d087ee1..843216a81bb 100644
--- a/components/gfx/font_template.rs
+++ b/components/gfx/font_template.rs
@@ -6,9 +6,8 @@ use font::FontHandleMethods;
use platform::font::FontHandle;
use platform::font_context::FontContextHandle;
use platform::font_template::FontTemplateData;
-use string_cache::Atom;
-
use std::sync::{Arc, Weak};
+use string_cache::Atom;
use style::computed_values::{font_stretch, font_weight};
/// Describes how to select a font from a given family. This is very basic at the moment and needs
diff --git a/components/gfx/paint_context.rs b/components/gfx/paint_context.rs
index ab258e2ef6e..ff60e90a1af 100644
--- a/components/gfx/paint_context.rs
+++ b/components/gfx/paint_context.rs
@@ -4,15 +4,6 @@
//! Painting of display lists using Moz2D/Azure.
-use display_list::TextOrientation::{SidewaysLeft, SidewaysRight, Upright};
-use display_list::{BLUR_INFLATION_FACTOR, BorderRadii, BoxShadowClipMode, ClippingRegion};
-use display_list::{TextDisplayItem};
-use filters;
-use font_context::FontContext;
-use gfx_traits::color;
-use text::TextRun;
-use text::glyph::CharIndex;
-
use azure::azure::AzIntSize;
use azure::azure_hl::{AntialiasMode, Color, ColorPattern, CompositionOp};
use azure::azure_hl::{DrawOptions, DrawSurfaceOptions, DrawTarget, ExtendMode, FilterType};
@@ -23,11 +14,17 @@ use azure::azure_hl::{Pattern, PatternRef, Path, PathBuilder, SurfacePattern};
use azure::scaled_font::ScaledFont;
use azure::{AzFloat, struct__AzDrawOptions, struct__AzGlyph};
use azure::{struct__AzGlyphBuffer, struct__AzPoint, AzDrawTargetFillGlyphs};
+use display_list::TextOrientation::{SidewaysLeft, SidewaysRight, Upright};
+use display_list::{BLUR_INFLATION_FACTOR, BorderRadii, BoxShadowClipMode, ClippingRegion};
+use display_list::{TextDisplayItem};
use euclid::matrix2d::Matrix2D;
use euclid::point::Point2D;
use euclid::rect::Rect;
use euclid::side_offsets::SideOffsets2D;
use euclid::size::Size2D;
+use filters;
+use font_context::FontContext;
+use gfx_traits::color;
use libc::types::common::c99::uint32_t;
use msg::compositor_msg::LayerKind;
use net_traits::image::base::{Image, PixelFormat};
@@ -37,6 +34,8 @@ use std::mem;
use std::ptr;
use std::sync::Arc;
use style::computed_values::{border_style, filter, image_rendering, mix_blend_mode};
+use text::TextRun;
+use text::glyph::CharIndex;
use util::geometry::{self, Au, MAX_RECT, ZERO_RECT};
use util::opts;
use util::range::Range;
diff --git a/components/gfx/paint_task.rs b/components/gfx/paint_task.rs
index 914a41ec9e0..563bbe04a0e 100644
--- a/components/gfx/paint_task.rs
+++ b/components/gfx/paint_task.rs
@@ -4,18 +4,16 @@
//! The task that handles all painting.
-use display_list::{self, StackingContext};
-use font_cache_task::FontCacheTask;
-use font_context::FontContext;
-use paint_context::PaintContext;
-
use azure::AzFloat;
use azure::azure_hl::{SurfaceFormat, Color, DrawTarget, BackendType};
use canvas_traits::CanvasMsg;
+use display_list::{self, StackingContext};
use euclid::Matrix4;
use euclid::point::Point2D;
use euclid::rect::Rect;
use euclid::size::Size2D;
+use font_cache_task::FontCacheTask;
+use font_context::FontContext;
use ipc_channel::ipc::IpcSender;
use layers::layers::{BufferRequest, LayerBuffer, LayerBufferSet};
use layers::platform::surface::{NativeDisplay, NativeSurface};
@@ -24,6 +22,7 @@ use msg::compositor_msg::{LayerProperties, PaintListener};
use msg::constellation_msg::Msg as ConstellationMsg;
use msg::constellation_msg::PipelineExitType;
use msg::constellation_msg::{ConstellationChan, Failure, PipelineId};
+use paint_context::PaintContext;
use profile_traits::mem::{self, ReportsChan};
use profile_traits::time::{self, profile};
use rand::{self, Rng};
diff --git a/components/gfx/platform/freetype/font.rs b/components/gfx/platform/freetype/font.rs
index 1e4937acc91..e08a93afce5 100644
--- a/components/gfx/platform/freetype/font.rs
+++ b/components/gfx/platform/freetype/font.rs
@@ -6,14 +6,6 @@ extern crate freetype;
use font::{FontHandleMethods, FontMetrics, FontTableMethods};
use font::{FontTableTag, FractionalPixel};
-use platform::font_context::FontContextHandle;
-use platform::font_template::FontTemplateData;
-use style::computed_values::{font_stretch, font_weight};
-use text::glyph::GlyphId;
-use text::util::{float_to_fixed, fixed_to_float};
-use util::geometry::Au;
-use util::str::c_str_to_string;
-
use freetype::freetype::{FTErrorMethods, FT_F26Dot6, FT_Face, FT_FaceRec};
use freetype::freetype::{FT_Get_Char_Index, FT_Get_Postscript_Name};
use freetype::freetype::{FT_Get_Kerning, FT_Get_Sfnt_Table, FT_Load_Sfnt_Table};
@@ -24,11 +16,17 @@ use freetype::freetype::{FT_New_Memory_Face, FT_Done_Face};
use freetype::freetype::{FT_SizeRec, FT_UInt, FT_Size_Metrics, struct_FT_Vector_};
use freetype::freetype::{ft_sfnt_os2};
use freetype::tt_os2::TT_OS2;
-
use libc::c_char;
+use platform::font_context::FontContextHandle;
+use platform::font_template::FontTemplateData;
use std::mem;
use std::ptr;
use std::sync::Arc;
+use style::computed_values::{font_stretch, font_weight};
+use text::glyph::GlyphId;
+use text::util::{float_to_fixed, fixed_to_float};
+use util::geometry::Au;
+use util::str::c_str_to_string;
fn float_to_fixed_ft(f: f64) -> i32 {
float_to_fixed(6, f)
diff --git a/components/gfx/platform/freetype/font_context.rs b/components/gfx/platform/freetype/font_context.rs
index 887c321781d..4f616cfba45 100644
--- a/components/gfx/platform/freetype/font_context.rs
+++ b/components/gfx/platform/freetype/font_context.rs
@@ -9,14 +9,12 @@ use freetype::freetype::FT_Library;
use freetype::freetype::FT_Memory;
use freetype::freetype::FT_New_Library;
use freetype::freetype::struct_FT_MemoryRec_;
-
+use libc::{c_void, c_long};
use std::ptr;
use std::rc::Rc;
use std::rt::heap;
use util::mem::{HeapSizeOf, heap_size_of};
-use libc::{c_void, c_long};
-
// We pass a |User| struct -- via an opaque |void*| -- to FreeType each time a new instance is
// created. FreeType passes it back to the ft_alloc/ft_realloc/ft_free callbacks. We use it to
// record the memory usage of each FreeType instance.
diff --git a/components/gfx/platform/freetype/font_list.rs b/components/gfx/platform/freetype/font_list.rs
index 0b1a05aa8dd..5e3b76b9271 100644
--- a/components/gfx/platform/freetype/font_list.rs
+++ b/components/gfx/platform/freetype/font_list.rs
@@ -13,14 +13,12 @@ use fontconfig::fontconfig::{FcDefaultSubstitute, FcFontMatch, FcNameParse, FcPa
use fontconfig::fontconfig::{FcObjectSetAdd, FcPatternGetInteger};
use fontconfig::fontconfig::{FcPatternAddString, FcFontSetList, FcObjectSetCreate, FcObjectSetDestroy};
use fontconfig::fontconfig::{FcPatternDestroy, FcFontSetDestroy, FcMatchPattern, FcPatternCreate};
-
-use util::str::c_str_to_string;
-
use libc;
use libc::{c_int, c_char};
use std::borrow::ToOwned;
use std::ffi::CString;
use std::ptr;
+use util::str::c_str_to_string;
static FC_FAMILY: &'static [u8] = b"family\0";
static FC_FILE: &'static [u8] = b"file\0";
diff --git a/components/gfx/platform/macos/font.rs b/components/gfx/platform/macos/font.rs
index dd045dff3e1..fa29592d184 100644
--- a/components/gfx/platform/macos/font.rs
+++ b/components/gfx/platform/macos/font.rs
@@ -8,15 +8,6 @@ extern crate core_foundation;
extern crate core_graphics;
extern crate core_text;
-use font::FontTableTag;
-use font::FractionalPixel;
-use font::{FontHandleMethods, FontMetrics, FontTableMethods};
-use platform::font_template::FontTemplateData;
-use platform::macos::font_context::FontContextHandle;
-use style::computed_values::{font_stretch, font_weight};
-use text::glyph::GlyphId;
-use util::geometry::{Au, px_to_pt};
-
use core_foundation::base::CFIndex;
use core_foundation::data::CFData;
use core_foundation::string::UniChar;
@@ -25,9 +16,16 @@ use core_graphics::geometry::CGRect;
use core_text::font::CTFont;
use core_text::font_descriptor::{SymbolicTraitAccessors, TraitAccessors};
use core_text::font_descriptor::{kCTFontDefaultOrientation};
-
+use font::FontTableTag;
+use font::FractionalPixel;
+use font::{FontHandleMethods, FontMetrics, FontTableMethods};
+use platform::font_template::FontTemplateData;
+use platform::macos::font_context::FontContextHandle;
use std::ptr;
use std::sync::Arc;
+use style::computed_values::{font_stretch, font_weight};
+use text::glyph::GlyphId;
+use util::geometry::{Au, px_to_pt};
pub struct FontTable {
data: CFData,
diff --git a/components/gfx/platform/macos/font_list.rs b/components/gfx/platform/macos/font_list.rs
index 0fe81ef6185..f0b629944ed 100644
--- a/components/gfx/platform/macos/font_list.rs
+++ b/components/gfx/platform/macos/font_list.rs
@@ -6,7 +6,6 @@ use core_foundation::base::TCFType;
use core_foundation::string::{CFString, CFStringRef};
use core_text;
use core_text::font_descriptor::{CTFontDescriptor, CTFontDescriptorRef};
-
use std::borrow::ToOwned;
use std::mem;
diff --git a/components/gfx/platform/macos/font_template.rs b/components/gfx/platform/macos/font_template.rs
index bff979519aa..cc1e9c5e68c 100644
--- a/components/gfx/platform/macos/font_template.rs
+++ b/components/gfx/platform/macos/font_template.rs
@@ -6,7 +6,6 @@ use core_graphics::data_provider::CGDataProvider;
use core_graphics::font::CGFont;
use core_text;
use core_text::font::CTFont;
-
use serde::de::{Error, Visitor};
use serde::{Deserialize, Deserializer, Serialize, Serializer};
use std::borrow::ToOwned;
diff --git a/components/gfx/text/glyph.rs b/components/gfx/text/glyph.rs
index 9ce46b79045..f293ff4f3d3 100644
--- a/components/gfx/text/glyph.rs
+++ b/components/gfx/text/glyph.rs
@@ -3,10 +3,8 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use euclid::point::Point2D;
-
#[cfg(any(target_arch = "x86_64", target_arch = "aarch64"))]
use simd::u32x4;
-
use std::cmp::{Ordering, PartialOrd};
use std::fmt;
use std::mem;
diff --git a/components/gfx/text/shaping/harfbuzz.rs b/components/gfx/text/shaping/harfbuzz.rs
index a2580ac1c43..4334530664c 100644
--- a/components/gfx/text/shaping/harfbuzz.rs
+++ b/components/gfx/text/shaping/harfbuzz.rs
@@ -4,14 +4,9 @@
extern crate harfbuzz;
+use euclid::Point2D;
use font::{DISABLE_KERNING_SHAPING_FLAG, Font, FontHandleMethods, FontTableMethods, FontTableTag};
use font::{IGNORE_LIGATURES_SHAPING_FLAG, RTL_FLAG, ShapingOptions};
-use platform::font::FontTable;
-use text::glyph::{CharIndex, GlyphStore, GlyphId, GlyphData};
-use text::shaping::ShaperMethods;
-use text::util::{float_to_fixed, fixed_to_float, is_bidi_control};
-
-use euclid::Point2D;
use harfbuzz::{HB_MEMORY_MODE_READONLY, HB_DIRECTION_LTR, HB_DIRECTION_RTL};
use harfbuzz::{RUST_hb_blob_create, RUST_hb_face_create_for_tables};
use harfbuzz::{RUST_hb_buffer_add_utf8};
@@ -39,9 +34,13 @@ use harfbuzz::{hb_glyph_info_t};
use harfbuzz::{hb_glyph_position_t};
use harfbuzz::{hb_position_t, hb_tag_t};
use libc::{c_uint, c_int, c_void, c_char};
+use platform::font::FontTable;
use std::char;
use std::cmp;
use std::ptr;
+use text::glyph::{CharIndex, GlyphStore, GlyphId, GlyphData};
+use text::shaping::ShaperMethods;
+use text::util::{float_to_fixed, fixed_to_float, is_bidi_control};
use util::geometry::Au;
use util::range::Range;
diff --git a/components/gfx/text/text_run.rs b/components/gfx/text/text_run.rs
index ec1fc7e2744..77ee7a25fa3 100644
--- a/components/gfx/text/text_run.rs
+++ b/components/gfx/text/text_run.rs
@@ -5,16 +5,14 @@
use font::{Font, FontHandleMethods, FontMetrics, IS_WHITESPACE_SHAPING_FLAG, RunMetrics};
use font::{ShapingOptions};
use platform::font_template::FontTemplateData;
+use std::cmp::{Ordering, max};
+use std::slice::Iter;
+use std::sync::Arc;
use text::glyph::{CharIndex, GlyphStore};
-
use util::geometry::Au;
use util::range::Range;
use util::vec::{Comparator, FullBinarySearchMethods};
-use std::cmp::{Ordering, max};
-use std::slice::Iter;
-use std::sync::Arc;
-
/// A single "paragraph" of text in one font size and style.
#[derive(Clone, Deserialize, Serialize)]
pub struct TextRun {
diff --git a/components/layout/animation.rs b/components/layout/animation.rs
index 26c40bade35..dcb860308ef 100644
--- a/components/layout/animation.rs
+++ b/components/layout/animation.rs
@@ -4,11 +4,10 @@
//! CSS transitions and animations.
-use flow::{self, Flow};
-use incremental::{self, RestyleDamage};
-
use clock_ticks;
+use flow::{self, Flow};
use gfx::display_list::OpaqueNode;
+use incremental::{self, RestyleDamage};
use layout_task::{LayoutTask, LayoutTaskData};
use msg::constellation_msg::{AnimationState, Msg, PipelineId};
use script::layout_interface::Animation;
diff --git a/components/layout/block.rs b/components/layout/block.rs
index af37b5d0938..19bd4fcac3d 100644
--- a/components/layout/block.rs
+++ b/components/layout/block.rs
@@ -30,6 +30,7 @@
use context::LayoutContext;
use display_list_builder::{BlockFlowDisplayListBuilding, BorderPaintingMode};
use display_list_builder::{FragmentDisplayListBuilding};
+use euclid::{Point2D, Rect, Size2D};
use floats::{ClearType, FloatKind, Floats, PlacementInfo};
use flow::{BLOCK_POSITION_IS_STATIC};
use flow::{CLEARS_LEFT, CLEARS_RIGHT};
@@ -43,15 +44,12 @@ use flow::{self, BaseFlow, EarlyAbsolutePositionInfo, ForceNonfloatedFlag, FlowC
use flow_ref;
use fragment::{CoordinateSystem, Fragment, FragmentBorderBoxIterator, HAS_LAYER};
use fragment::{SpecificFragmentInfo};
+use gfx::display_list::{ClippingRegion, DisplayList};
use incremental::{REFLOW, REFLOW_OUT_OF_FLOW};
use layout_debug;
use layout_task::DISPLAY_PORT_SIZE_FACTOR;
use model::{IntrinsicISizes, MarginCollapseInfo};
use model::{MaybeAuto, CollapsibleMargins, specified, specified_or_none};
-use wrapper::PseudoElementType;
-
-use euclid::{Point2D, Rect, Size2D};
-use gfx::display_list::{ClippingRegion, DisplayList};
use msg::compositor_msg::{LayerId, LayerType};
use rustc_serialize::{Encoder, Encodable};
use std::cmp::{max, min};
@@ -65,6 +63,7 @@ use style::values::computed::{LengthOrPercentage, LengthOrPercentageOrAuto};
use util::geometry::{Au, MAX_AU, MAX_RECT};
use util::logical_geometry::{LogicalPoint, LogicalRect, LogicalSize, WritingMode};
use util::opts;
+use wrapper::PseudoElementType;
/// Information specific to floated blocks.
#[derive(Clone, RustcEncodable)]
diff --git a/components/layout/construct.rs b/components/layout/construct.rs
index d13fd01bb02..28a7ec7c2e1 100644
--- a/components/layout/construct.rs
+++ b/components/layout/construct.rs
@@ -26,24 +26,13 @@ use fragment::{Fragment, GeneratedContentInfo, IframeFragmentInfo};
use fragment::{InlineAbsoluteHypotheticalFragmentInfo, TableColumnFragmentInfo};
use fragment::{InlineBlockFragmentInfo, SpecificFragmentInfo, UnscannedTextFragmentInfo};
use fragment::{WhitespaceStrippingResult};
+use gfx::display_list::OpaqueNode;
use incremental::{RECONSTRUCT_FLOW, RestyleDamage};
use inline::{FIRST_FRAGMENT_OF_ELEMENT, InlineFlow, InlineFragmentNodeFlags};
use inline::{InlineFragmentNodeInfo, LAST_FRAGMENT_OF_ELEMENT};
use list_item::{ListItemFlow, ListStyleTypeContent};
use multicol::MulticolFlow;
use parallel;
-use table::TableFlow;
-use table_caption::TableCaptionFlow;
-use table_cell::TableCellFlow;
-use table_colgroup::TableColGroupFlow;
-use table_row::TableRowFlow;
-use table_rowgroup::TableRowGroupFlow;
-use table_wrapper::TableWrapperFlow;
-use text::TextRunScanner;
-use traversal::PostorderNodeMutTraversal;
-use wrapper::{PseudoElementType, TextContent, ThreadSafeLayoutNode};
-
-use gfx::display_list::OpaqueNode;
use script::dom::characterdata::CharacterDataTypeId;
use script::dom::element::ElementTypeId;
use script::dom::htmlelement::HTMLElementTypeId;
@@ -58,9 +47,19 @@ use style::computed_values::content::ContentItem;
use style::computed_values::{caption_side, display, empty_cells, float, list_style_position};
use style::computed_values::{position};
use style::properties::{self, ComputedValues};
+use table::TableFlow;
+use table_caption::TableCaptionFlow;
+use table_cell::TableCellFlow;
+use table_colgroup::TableColGroupFlow;
+use table_row::TableRowFlow;
+use table_rowgroup::TableRowGroupFlow;
+use table_wrapper::TableWrapperFlow;
+use text::TextRunScanner;
+use traversal::PostorderNodeMutTraversal;
use url::Url;
use util::linked_list;
use util::opts;
+use wrapper::{PseudoElementType, TextContent, ThreadSafeLayoutNode};
/// The results of flow construction for a DOM node.
#[derive(Clone)]
diff --git a/components/layout/context.rs b/components/layout/context.rs
index 3003c6cf56a..5497fab803c 100644
--- a/components/layout/context.rs
+++ b/components/layout/context.rs
@@ -6,9 +6,8 @@
#![deny(unsafe_code)]
-use css::matching::{ApplicableDeclarationsCache, StyleSharingCandidateCache};
-
use canvas_traits::CanvasMsg;
+use css::matching::{ApplicableDeclarationsCache, StyleSharingCandidateCache};
use euclid::{Rect, Size2D};
use fnv::FnvHasher;
use gfx::display_list::OpaqueNode;
diff --git a/components/layout/css/matching.rs b/components/layout/css/matching.rs
index ded2d27842b..388a64ea645 100644
--- a/components/layout/css/matching.rs
+++ b/components/layout/css/matching.rs
@@ -10,9 +10,6 @@ use animation;
use context::SharedLayoutContext;
use data::LayoutDataWrapper;
use incremental::{self, RestyleDamage};
-use smallvec::SmallVec;
-use wrapper::{LayoutElement, LayoutNode};
-
use script::dom::characterdata::CharacterDataTypeId;
use script::dom::node::NodeTypeId;
use script::layout_interface::Animation;
@@ -21,6 +18,7 @@ use selectors::matching::{CommonStyleAffectingAttributeMode, CommonStyleAffectin
use selectors::matching::{common_style_affecting_attributes, rare_style_affecting_attributes};
use selectors::parser::PseudoElement;
use selectors::{Element};
+use smallvec::SmallVec;
use std::borrow::ToOwned;
use std::hash::{Hash, Hasher};
use std::slice::Iter;
@@ -34,6 +32,7 @@ use util::arc_ptr_eq;
use util::cache::{LRUCache, SimpleHashCache};
use util::opts;
use util::vec::ForgetfulSink;
+use wrapper::{LayoutElement, LayoutNode};
pub struct ApplicableDeclarations {
pub normal: SmallVec<[DeclarationBlock; 16]>,
diff --git a/components/layout/display_list_builder.rs b/components/layout/display_list_builder.rs
index 31cf9d5d231..4b5f0e8052b 100644
--- a/components/layout/display_list_builder.rs
+++ b/components/layout/display_list_builder.rs
@@ -12,20 +12,15 @@
use azure::azure_hl::Color;
use block::BlockFlow;
+use canvas_traits::{CanvasMsg, FromLayoutMsg};
use context::LayoutContext;
+use euclid::Matrix4;
+use euclid::{Point2D, Point3D, Rect, Size2D, SideOffsets2D};
use flex::FlexFlow;
use flow::{self, BaseFlow, Flow, IS_ABSOLUTELY_POSITIONED};
use flow_ref;
use fragment::{CoordinateSystem, Fragment, HAS_LAYER, IframeFragmentInfo, ImageFragmentInfo};
use fragment::{ScannedTextFragmentInfo, SpecificFragmentInfo};
-use inline::{FIRST_FRAGMENT_OF_ELEMENT, InlineFlow, LAST_FRAGMENT_OF_ELEMENT};
-use list_item::ListItemFlow;
-use model::{self, MaybeAuto, ToGfxMatrix};
-use table_cell::CollapsedBordersForCell;
-
-use canvas_traits::{CanvasMsg, FromLayoutMsg};
-use euclid::Matrix4;
-use euclid::{Point2D, Point3D, Rect, Size2D, SideOffsets2D};
use gfx::display_list::{BLUR_INFLATION_FACTOR, BaseDisplayItem, BorderDisplayItem};
use gfx::display_list::{BorderRadii, BoxShadowClipMode, BoxShadowDisplayItem, ClippingRegion};
use gfx::display_list::{DisplayItem, DisplayList, DisplayItemMetadata};
@@ -36,7 +31,10 @@ use gfx::display_list::{StackingContext, TextDisplayItem, TextOrientation};
use gfx::paint_task::THREAD_TINT_COLORS;
use gfx::text::glyph::CharIndex;
use gfx_traits::color;
+use inline::{FIRST_FRAGMENT_OF_ELEMENT, InlineFlow, LAST_FRAGMENT_OF_ELEMENT};
use ipc_channel::ipc::{self, IpcSharedMemory};
+use list_item::ListItemFlow;
+use model::{self, MaybeAuto, ToGfxMatrix};
use msg::compositor_msg::{ScrollPolicy, LayerId};
use msg::constellation_msg::ConstellationChan;
use msg::constellation_msg::Msg as ConstellationMsg;
@@ -59,6 +57,7 @@ use style::values::computed;
use style::values::computed::LinearGradient;
use style::values::computed::{LengthOrNone, LengthOrPercentage, LengthOrPercentageOrAuto};
use style::values::specified::{AngleOrCorner, HorizontalDirection, VerticalDirection};
+use table_cell::CollapsedBordersForCell;
use url::Url;
use util::cursor::Cursor;
use util::geometry::{AU_PER_PX, Au, ZERO_POINT};
diff --git a/components/layout/flex.rs b/components/layout/flex.rs
index d9a9b5d9ff9..a5b55e37833 100644
--- a/components/layout/flex.rs
+++ b/components/layout/flex.rs
@@ -9,6 +9,7 @@
use block::BlockFlow;
use context::LayoutContext;
use display_list_builder::FlexFlowDisplayListBuilding;
+use euclid::{Point2D, Rect};
use floats::FloatKind;
use flow;
use flow::INLINE_POSITION_IS_STATIC;
@@ -18,19 +19,17 @@ use flow::mut_base;
use flow::{Flow, FlowClass, OpaqueFlow};
use flow::{HAS_LEFT_FLOATED_DESCENDANTS, HAS_RIGHT_FLOATED_DESCENDANTS};
use fragment::{Fragment, FragmentBorderBoxIterator};
+use gfx::display_list::DisplayList;
use incremental::{REFLOW, REFLOW_OUT_OF_FLOW};
use layout_debug;
-use model::{IntrinsicISizes};
-use style::computed_values::{flex_direction, float};
-use style::properties::style_structs;
-use style::values::computed::LengthOrPercentageOrAuto;
-
-use euclid::{Point2D, Rect};
-use gfx::display_list::DisplayList;
use model::MaybeAuto;
+use model::{IntrinsicISizes};
use std::cmp::max;
use std::sync::Arc;
+use style::computed_values::{flex_direction, float};
use style::properties::ComputedValues;
+use style::properties::style_structs;
+use style::values::computed::LengthOrPercentageOrAuto;
use util::geometry::Au;
use util::logical_geometry::LogicalSize;
use util::opts;
diff --git a/components/layout/flow.rs b/components/layout/flow.rs
index 578a95fb05c..3c14fab304c 100644
--- a/components/layout/flow.rs
+++ b/components/layout/flow.rs
@@ -28,28 +28,19 @@
use block::BlockFlow;
use context::LayoutContext;
use display_list_builder::DisplayListBuildingResult;
+use euclid::{Point2D, Rect, Size2D};
use floats::Floats;
use flow_list::{FlowList, FlowListIterator, MutFlowListIterator};
use flow_ref::{self, FlowRef, WeakFlowRef};
use fragment::{Fragment, FragmentBorderBoxIterator, SpecificFragmentInfo};
+use gfx::display_list::ClippingRegion;
use incremental::{self, RECONSTRUCT_FLOW, REFLOW, REFLOW_OUT_OF_FLOW, RestyleDamage};
use inline::InlineFlow;
use model::{CollapsibleMargins, IntrinsicISizes, MarginCollapseInfo};
-use multicol::MulticolFlow;
-use parallel::FlowParallelInfo;
-use table::{ColumnComputedInlineSize, ColumnIntrinsicInlineSize, TableFlow};
-use table_caption::TableCaptionFlow;
-use table_cell::TableCellFlow;
-use table_colgroup::TableColGroupFlow;
-use table_row::TableRowFlow;
-use table_rowgroup::TableRowGroupFlow;
-use table_wrapper::TableWrapperFlow;
-use wrapper::{PseudoElementType, ThreadSafeLayoutNode};
-
-use euclid::{Point2D, Rect, Size2D};
-use gfx::display_list::ClippingRegion;
use msg::compositor_msg::{LayerId, LayerType};
use msg::constellation_msg::ConstellationChan;
+use multicol::MulticolFlow;
+use parallel::FlowParallelInfo;
use rustc_serialize::{Encoder, Encodable};
use std::fmt;
use std::iter::Zip;
@@ -61,8 +52,16 @@ use std::sync::atomic::Ordering;
use style::computed_values::{clear, display, empty_cells, float, position, text_align};
use style::properties::{self, ComputedValues};
use style::values::computed::LengthOrPercentageOrAuto;
+use table::{ColumnComputedInlineSize, ColumnIntrinsicInlineSize, TableFlow};
+use table_caption::TableCaptionFlow;
+use table_cell::TableCellFlow;
+use table_colgroup::TableColGroupFlow;
+use table_row::TableRowFlow;
+use table_rowgroup::TableRowGroupFlow;
+use table_wrapper::TableWrapperFlow;
use util::geometry::{Au, ZERO_RECT};
use util::logical_geometry::{LogicalRect, LogicalSize, WritingMode};
+use wrapper::{PseudoElementType, ThreadSafeLayoutNode};
/// Virtual methods that make up a float context.
///
diff --git a/components/layout/flow_list.rs b/components/layout/flow_list.rs
index af54dddee9d..8f16fc0fa3d 100644
--- a/components/layout/flow_list.rs
+++ b/components/layout/flow_list.rs
@@ -4,7 +4,6 @@
use flow::Flow;
use flow_ref::{self, FlowRef};
-
use std::collections::{linked_list, LinkedList};
// This needs to be reworked now that we have dynamically-sized types in Rust.
diff --git a/components/layout/fragment.rs b/components/layout/fragment.rs
index f73e6013c57..f4a95e64108 100644
--- a/components/layout/fragment.rs
+++ b/components/layout/fragment.rs
@@ -8,24 +8,21 @@
use canvas_traits::CanvasMsg;
use context::LayoutContext;
+use euclid::{Point2D, Rect, Size2D};
use floats::ClearType;
use flow;
use flow::Flow;
use flow_ref::{self, FlowRef};
-use incremental::{self, RestyleDamage};
-use inline::{FIRST_FRAGMENT_OF_ELEMENT, InlineFragmentContext, InlineFragmentNodeInfo};
-use inline::{InlineMetrics, LAST_FRAGMENT_OF_ELEMENT};
-use layout_debug;
-use model::{self, IntrinsicISizes, IntrinsicISizesContribution, MaybeAuto, specified};
-use text;
-use wrapper::{PseudoElementType, ThreadSafeLayoutNode};
-
-use euclid::{Point2D, Rect, Size2D};
use gfx;
use gfx::display_list::{BLUR_INFLATION_FACTOR, OpaqueNode};
use gfx::text::glyph::CharIndex;
use gfx::text::text_run::{TextRun, TextRunSlice};
+use incremental::{self, RestyleDamage};
+use inline::{FIRST_FRAGMENT_OF_ELEMENT, InlineFragmentContext, InlineFragmentNodeInfo};
+use inline::{InlineMetrics, LAST_FRAGMENT_OF_ELEMENT};
use ipc_channel::ipc::IpcSender;
+use layout_debug;
+use model::{self, IntrinsicISizes, IntrinsicISizesContribution, MaybeAuto, specified};
use msg::constellation_msg::{ConstellationChan, Msg, PipelineId, SubpageId};
use net_traits::image::base::Image;
use net_traits::image_cache_task::UsePlaceholder;
@@ -43,6 +40,7 @@ use style::computed_values::{word_break, z_index};
use style::properties::ComputedValues;
use style::values::computed::{LengthOrPercentage, LengthOrPercentageOrAuto};
use style::values::computed::{LengthOrPercentageOrNone};
+use text;
use text::TextRunScanner;
use url::Url;
use util;
@@ -50,6 +48,7 @@ use util::geometry::{Au, ZERO_POINT};
use util::logical_geometry::{LogicalRect, LogicalSize, LogicalMargin, WritingMode};
use util::range::*;
use util::str::{is_whitespace, slice_chars};
+use wrapper::{PseudoElementType, ThreadSafeLayoutNode};
/// Fragments (`struct Fragment`) are the leaves of the layout tree. They cannot position
/// themselves. In general, fragments do not have a simple correspondence with CSS fragments in the
diff --git a/components/layout/generated_content.rs b/components/layout/generated_content.rs
index 2e823d3bc1d..5a907bb6ac7 100644
--- a/components/layout/generated_content.rs
+++ b/components/layout/generated_content.rs
@@ -12,17 +12,16 @@ use context::LayoutContext;
use flow::{InorderFlowTraversal};
use flow::{self, AFFECTS_COUNTERS, Flow, HAS_COUNTER_AFFECTING_CHILDREN, ImmutableFlowUtils};
use fragment::{Fragment, GeneratedContentInfo, SpecificFragmentInfo, UnscannedTextFragmentInfo};
+use gfx::display_list::OpaqueNode;
use incremental::{self, RESOLVE_GENERATED_CONTENT};
use smallvec::SmallVec;
-use text::TextRunScanner;
-use wrapper::PseudoElementType;
-
-use gfx::display_list::OpaqueNode;
use std::collections::{LinkedList, HashMap};
use std::sync::Arc;
use style::computed_values::content::ContentItem;
use style::computed_values::{display, list_style_type};
use style::properties::ComputedValues;
+use text::TextRunScanner;
+use wrapper::PseudoElementType;
// Decimal styles per CSS-COUNTER-STYLES § 6.1:
static DECIMAL: [char; 10] = [ '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' ];
diff --git a/components/layout/incremental.rs b/components/layout/incremental.rs
index adabc4bb471..6f60e9a2ab8 100644
--- a/components/layout/incremental.rs
+++ b/components/layout/incremental.rs
@@ -3,7 +3,6 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use flow::{self, AFFECTS_COUNTERS, Flow, HAS_COUNTER_AFFECTING_CHILDREN, IS_ABSOLUTELY_POSITIONED};
-
use std::fmt;
use std::sync::Arc;
use style::computed_values::float;
diff --git a/components/layout/inline.rs b/components/layout/inline.rs
index 00043037f9d..b91cfd790bc 100644
--- a/components/layout/inline.rs
+++ b/components/layout/inline.rs
@@ -7,21 +7,18 @@
use block::{AbsoluteAssignBSizesTraversal, AbsoluteStoreOverflowTraversal};
use context::LayoutContext;
use display_list_builder::{FragmentDisplayListBuilding, InlineFlowDisplayListBuilding};
+use euclid::{Point2D, Rect, Size2D};
use floats::{FloatKind, Floats, PlacementInfo};
use flow::{MutableFlowUtils, EarlyAbsolutePositionInfo, OpaqueFlow};
use flow::{self, BaseFlow, FlowClass, Flow, ForceNonfloatedFlag, IS_ABSOLUTELY_POSITIONED};
use flow_ref;
use fragment::{CoordinateSystem, Fragment, FragmentBorderBoxIterator, SpecificFragmentInfo};
-use incremental::{REFLOW, REFLOW_OUT_OF_FLOW, RESOLVE_GENERATED_CONTENT};
-use layout_debug;
-use model::IntrinsicISizesContribution;
-use text;
-use wrapper::PseudoElementType;
-
-use euclid::{Point2D, Rect, Size2D};
use gfx::display_list::OpaqueNode;
use gfx::font::FontMetrics;
use gfx::font_context::FontContext;
+use incremental::{REFLOW, REFLOW_OUT_OF_FLOW, RESOLVE_GENERATED_CONTENT};
+use layout_debug;
+use model::IntrinsicISizesContribution;
use std::cmp::max;
use std::collections::VecDeque;
use std::fmt;
@@ -31,11 +28,13 @@ use std::sync::Arc;
use style::computed_values::{display, overflow_x, position, text_align, text_justify};
use style::computed_values::{text_overflow, vertical_align, white_space};
use style::properties::ComputedValues;
+use text;
use unicode_bidi;
use util;
use util::geometry::{Au, MAX_AU, ZERO_RECT};
use util::logical_geometry::{LogicalRect, LogicalSize, WritingMode};
use util::range::{Range, RangeIndex};
+use wrapper::PseudoElementType;
// From gfxFontConstants.h in Firefox
static FONT_SUBSCRIPT_OFFSET_RATIO: f32 = 0.20;
diff --git a/components/layout/layout_debug.rs b/components/layout/layout_debug.rs
index 93e68f7fbe0..24d20442457 100644
--- a/components/layout/layout_debug.rs
+++ b/components/layout/layout_debug.rs
@@ -10,7 +10,6 @@
use flow;
use flow_ref::FlowRef;
use rustc_serialize::json;
-
use std::borrow::ToOwned;
use std::cell::RefCell;
use std::fs::File;
diff --git a/components/layout/layout_task.rs b/components/layout/layout_task.rs
index 25bbb4bf487..2bf311647c0 100644
--- a/components/layout/layout_task.rs
+++ b/components/layout/layout_task.rs
@@ -8,26 +8,13 @@
#![allow(unsafe_code)]
use animation;
+use azure::azure::AzColor;
+use canvas_traits::CanvasMsg;
use construct::ConstructionResult;
use context::{SharedLayoutContext, heap_size_of_local_context};
use cssparser::ToCss;
use data::LayoutDataWrapper;
use display_list_builder::ToGfxColor;
-use flow::{self, Flow, ImmutableFlowUtils, MutableFlowUtils, MutableOwnedFlowUtils};
-use flow_ref::{self, FlowRef};
-use fragment::{Fragment, FragmentBorderBoxIterator, SpecificFragmentInfo};
-use incremental::{LayoutDamageComputation, REFLOW, REFLOW_ENTIRE_DOCUMENT, REPAINT};
-use layout_debug;
-use opaque_node::OpaqueNodeMethods;
-use parallel::{self, WorkQueueData};
-use query::{LayoutRPCImpl, process_content_box_request, process_content_boxes_request};
-use query::{MarginPadding, MarginRetrievingFragmentBorderBoxIterator, PositionProperty};
-use query::{PositionRetrievingFragmentBorderBoxIterator, Side};
-use sequential;
-use wrapper::LayoutNode;
-
-use azure::azure::AzColor;
-use canvas_traits::CanvasMsg;
use encoding::EncodingRef;
use encoding::all::UTF_8;
use euclid::Matrix4;
@@ -35,14 +22,19 @@ use euclid::point::Point2D;
use euclid::rect::Rect;
use euclid::scale_factor::ScaleFactor;
use euclid::size::Size2D;
+use flow::{self, Flow, ImmutableFlowUtils, MutableFlowUtils, MutableOwnedFlowUtils};
+use flow_ref::{self, FlowRef};
use fnv::FnvHasher;
+use fragment::{Fragment, FragmentBorderBoxIterator, SpecificFragmentInfo};
use gfx::display_list::StackingContext;
use gfx::display_list::{ClippingRegion, DisplayList, OpaqueNode};
use gfx::font_cache_task::FontCacheTask;
use gfx::paint_task::{LayoutToPaintMsg, PaintLayer};
use gfx_traits::color;
+use incremental::{LayoutDamageComputation, REFLOW, REFLOW_ENTIRE_DOCUMENT, REPAINT};
use ipc_channel::ipc::{self, IpcReceiver, IpcSender};
use ipc_channel::router::ROUTER;
+use layout_debug;
use layout_traits::LayoutTaskFactory;
use log;
use msg::compositor_msg::{Epoch, ScrollPolicy, LayerId};
@@ -50,9 +42,14 @@ use msg::constellation_msg::Msg as ConstellationMsg;
use msg::constellation_msg::{ConstellationChan, Failure, PipelineExitType, PipelineId};
use net_traits::image_cache_task::{ImageCacheTask, ImageCacheResult, ImageCacheChan};
use net_traits::{load_bytes_iter, PendingAsyncLoad};
+use opaque_node::OpaqueNodeMethods;
+use parallel::{self, WorkQueueData};
use profile_traits::mem::{self, Report, ReportKind, ReportsChan};
use profile_traits::time::{TimerMetadataFrameType, TimerMetadataReflowType};
use profile_traits::time::{self, ProfilerMetadata, profile};
+use query::{LayoutRPCImpl, process_content_box_request, process_content_boxes_request};
+use query::{MarginPadding, MarginRetrievingFragmentBorderBoxIterator, PositionProperty};
+use query::{PositionRetrievingFragmentBorderBoxIterator, Side};
use script::dom::bindings::js::LayoutJS;
use script::dom::node::{LayoutData, Node};
use script::layout_interface::Animation;
@@ -62,6 +59,7 @@ use script::layout_interface::{ScriptLayoutChan, ScriptReflow, TrustedNodeAddres
use script_traits::StylesheetLoadResponder;
use script_traits::{ConstellationControlMsg, LayoutControlMsg, OpaqueScriptLayoutChannel};
use selectors::parser::PseudoElement;
+use sequential;
use serde_json;
use std::borrow::ToOwned;
use std::cell::Cell;
@@ -87,6 +85,7 @@ use util::opts;
use util::task::spawn_named_with_send_on_failure;
use util::task_state;
use util::workqueue::WorkQueue;
+use wrapper::LayoutNode;
use wrapper::ThreadSafeLayoutNode;
/// The number of screens of data we're allowed to generate display lists for in each direction.
diff --git a/components/layout/list_item.rs b/components/layout/list_item.rs
index d120016dce7..630453e0b09 100644
--- a/components/layout/list_item.rs
+++ b/components/layout/list_item.rs
@@ -10,19 +10,18 @@
use block::BlockFlow;
use context::LayoutContext;
use display_list_builder::ListItemFlowDisplayListBuilding;
+use euclid::{Point2D, Rect};
use floats::FloatKind;
use flow::{Flow, FlowClass, OpaqueFlow};
use fragment::{CoordinateSystem, Fragment, FragmentBorderBoxIterator, GeneratedContentInfo};
use generated_content;
+use gfx::display_list::DisplayList;
use incremental::RESOLVE_GENERATED_CONTENT;
use inline::InlineMetrics;
-use text;
-
-use euclid::{Point2D, Rect};
-use gfx::display_list::DisplayList;
use std::sync::Arc;
use style::computed_values::{list_style_type, position};
use style::properties::ComputedValues;
+use text;
use util::geometry::Au;
use util::logical_geometry::LogicalSize;
use util::opts;
diff --git a/components/layout/model.rs b/components/layout/model.rs
index ebdc32aa497..3be66aec4fc 100644
--- a/components/layout/model.rs
+++ b/components/layout/model.rs
@@ -6,9 +6,8 @@
#![deny(unsafe_code)]
-use fragment::Fragment;
-
use euclid::{Matrix4, SideOffsets2D, Size2D};
+use fragment::Fragment;
use std::cmp::{max, min};
use std::fmt;
use style::computed_values::transform::ComputedMatrix;
diff --git a/components/layout/multicol.rs b/components/layout/multicol.rs
index 6de9e051b44..5198dbdf0fe 100644
--- a/components/layout/multicol.rs
+++ b/components/layout/multicol.rs
@@ -8,11 +8,10 @@
use block::BlockFlow;
use context::LayoutContext;
+use euclid::{Point2D, Rect};
use floats::FloatKind;
use flow::{FlowClass, Flow, OpaqueFlow};
use fragment::{Fragment, FragmentBorderBoxIterator};
-
-use euclid::{Point2D, Rect};
use std::fmt;
use std::sync::Arc;
use style::properties::ComputedValues;
diff --git a/components/layout/parallel.rs b/components/layout/parallel.rs
index 576e9ae9f21..8b63159bec8 100644
--- a/components/layout/parallel.rs
+++ b/components/layout/parallel.rs
@@ -12,19 +12,18 @@ use context::{LayoutContext, SharedLayoutContext};
use flow;
use flow::{Flow, MutableFlowUtils, PreorderFlowTraversal, PostorderFlowTraversal};
use flow_ref::{self, FlowRef};
+use profile_traits::time::{self, ProfilerMetadata, profile};
+use std::mem;
+use std::sync::atomic::{AtomicIsize, Ordering};
use traversal::PostorderNodeMutTraversal;
use traversal::{BubbleISizes, AssignISizes, AssignBSizesAndStoreOverflow};
use traversal::{ComputeAbsolutePositions, BuildDisplayList};
use traversal::{PreorderDomTraversal, PostorderDomTraversal};
use traversal::{RecalcStyleForNode, ConstructFlows};
-use wrapper::UnsafeLayoutNode;
-use wrapper::{layout_node_to_unsafe_layout_node, layout_node_from_unsafe_layout_node, LayoutNode};
-
-use profile_traits::time::{self, ProfilerMetadata, profile};
-use std::mem;
-use std::sync::atomic::{AtomicIsize, Ordering};
use util::opts;
use util::workqueue::{WorkQueue, WorkUnit, WorkerProxy};
+use wrapper::UnsafeLayoutNode;
+use wrapper::{layout_node_to_unsafe_layout_node, layout_node_from_unsafe_layout_node, LayoutNode};
const CHUNK_SIZE: usize = 64;
diff --git a/components/layout/query.rs b/components/layout/query.rs
index 80ea4c534ca..1f1eb3e6a3b 100644
--- a/components/layout/query.rs
+++ b/components/layout/query.rs
@@ -4,13 +4,12 @@
//! Utilities for querying the layout, as needed by the layout task.
-use layout_task::{LayoutTaskData, RWGuard};
-
use euclid::point::Point2D;
use euclid::rect::Rect;
use flow_ref::FlowRef;
use fragment::{Fragment, FragmentBorderBoxIterator};
use gfx::display_list::{DisplayItemMetadata, OpaqueNode};
+use layout_task::{LayoutTaskData, RWGuard};
use msg::constellation_msg::ConstellationChan;
use msg::constellation_msg::Msg as ConstellationMsg;
use opaque_node::OpaqueNodeMethods;
@@ -18,7 +17,6 @@ use script::layout_interface::{ContentBoxResponse, ContentBoxesResponse, NodeGeo
use script::layout_interface::{HitTestResponse, LayoutRPC, MouseOverResponse, OffsetParentResponse};
use script::layout_interface::{ResolvedStyleResponse, ScriptLayoutChan, TrustedNodeAddress};
use sequential;
-
use std::sync::{Arc, Mutex};
use util::cursor::Cursor;
use util::geometry::Au;
diff --git a/components/layout/sequential.rs b/components/layout/sequential.rs
index e1ceeb2714e..7cb3f28a89d 100644
--- a/components/layout/sequential.rs
+++ b/components/layout/sequential.rs
@@ -5,6 +5,7 @@
//! Implements sequential traversals over the DOM and flow trees.
use context::{LayoutContext, SharedLayoutContext};
+use euclid::point::Point2D;
use flow::{PostorderFlowTraversal, PreorderFlowTraversal};
use flow::{self, Flow, ImmutableFlowUtils, InorderFlowTraversal, MutableFlowUtils};
use flow_ref::{self, FlowRef};
@@ -15,11 +16,9 @@ use traversal::{AssignBSizesAndStoreOverflow, AssignISizes};
use traversal::{BubbleISizes, RecalcStyleForNode, ConstructFlows};
use traversal::{ComputeAbsolutePositions, BuildDisplayList};
use traversal::{PreorderDomTraversal, PostorderDomTraversal};
-use wrapper::LayoutNode;
-
-use euclid::point::Point2D;
use util::geometry::{Au, ZERO_POINT};
use util::opts;
+use wrapper::LayoutNode;
pub fn traverse_dom_preorder(root: LayoutNode,
shared_layout_context: &SharedLayoutContext) {
diff --git a/components/layout/table.rs b/components/layout/table.rs
index b214e6d3ddc..eabe20f335f 100644
--- a/components/layout/table.rs
+++ b/components/layout/table.rs
@@ -10,18 +10,14 @@ use block::{ISizeConstraintInput, ISizeConstraintSolution};
use block::{self, BlockFlow, CandidateBSizeIterator, ISizeAndMarginsComputer};
use context::LayoutContext;
use display_list_builder::{BlockFlowDisplayListBuilding, BorderPaintingMode};
+use euclid::{Point2D, Rect};
use flow::{IMPACTED_BY_RIGHT_FLOATS, ImmutableFlowUtils, MutableFlowUtils, OpaqueFlow};
use flow::{self, EarlyAbsolutePositionInfo, Flow, FlowClass, IMPACTED_BY_LEFT_FLOATS};
use fragment::{Fragment, FragmentBorderBoxIterator};
+use gfx::display_list::DisplayList;
use incremental::{REFLOW, REFLOW_OUT_OF_FLOW};
use layout_debug;
use model::{IntrinsicISizes, IntrinsicISizesContribution, MaybeAuto};
-use table_row::{TableRowFlow};
-use table_row::{self, CellIntrinsicInlineSize, CollapsedBorder, CollapsedBorderProvenance};
-use table_wrapper::TableLayout;
-
-use euclid::{Point2D, Rect};
-use gfx::display_list::DisplayList;
use std::cmp;
use std::fmt;
use std::sync::Arc;
@@ -29,6 +25,9 @@ use style::computed_values::{border_collapse, border_spacing, table_layout};
use style::properties::ComputedValues;
use style::values::CSSFloat;
use style::values::computed::LengthOrPercentageOrAuto;
+use table_row::{TableRowFlow};
+use table_row::{self, CellIntrinsicInlineSize, CollapsedBorder, CollapsedBorderProvenance};
+use table_wrapper::TableLayout;
use util::geometry::Au;
use util::logical_geometry::LogicalSize;
diff --git a/components/layout/table_caption.rs b/components/layout/table_caption.rs
index afce73b44c5..646a4498568 100644
--- a/components/layout/table_caption.rs
+++ b/components/layout/table_caption.rs
@@ -8,10 +8,9 @@
use block::BlockFlow;
use context::LayoutContext;
+use euclid::{Point2D, Rect};
use flow::{FlowClass, Flow, OpaqueFlow};
use fragment::{Fragment, FragmentBorderBoxIterator};
-
-use euclid::{Point2D, Rect};
use std::fmt;
use std::sync::Arc;
use style::properties::ComputedValues;
diff --git a/components/layout/table_cell.rs b/components/layout/table_cell.rs
index f0f1495d8bb..1cdd22bada1 100644
--- a/components/layout/table_cell.rs
+++ b/components/layout/table_cell.rs
@@ -8,25 +8,24 @@
use block::{BlockFlow, ISizeAndMarginsComputer, MarginsMayCollapseFlag};
use context::LayoutContext;
+use cssparser::Color;
use display_list_builder::{BlockFlowDisplayListBuilding, BorderPaintingMode};
+use euclid::{Point2D, Rect, SideOffsets2D, Size2D};
use flow::{Flow, FlowClass, OpaqueFlow};
use fragment::{Fragment, FragmentBorderBoxIterator};
+use gfx::display_list::DisplayList;
use layout_debug;
use model::MaybeAuto;
-use table::InternalTable;
-use table_row::{CollapsedBorder, CollapsedBorderProvenance};
-use wrapper::ThreadSafeLayoutNode;
-
-use cssparser::Color;
-use euclid::{Point2D, Rect, SideOffsets2D, Size2D};
-use gfx::display_list::DisplayList;
use std::fmt;
use std::sync::Arc;
use style::computed_values::{border_collapse, border_top_style};
use style::legacy::UnsignedIntegerAttribute;
use style::properties::ComputedValues;
+use table::InternalTable;
+use table_row::{CollapsedBorder, CollapsedBorderProvenance};
use util::geometry::Au;
use util::logical_geometry::{LogicalMargin, LogicalRect, LogicalSize, WritingMode};
+use wrapper::ThreadSafeLayoutNode;
/// A table formatting context.
#[derive(RustcEncodable)]
diff --git a/components/layout/table_colgroup.rs b/components/layout/table_colgroup.rs
index f62083cc649..987ee717417 100644
--- a/components/layout/table_colgroup.rs
+++ b/components/layout/table_colgroup.rs
@@ -7,11 +7,10 @@
#![deny(unsafe_code)]
use context::LayoutContext;
+use euclid::{Point2D, Rect};
use flow::{BaseFlow, FlowClass, Flow, ForceNonfloatedFlag, OpaqueFlow};
use fragment::{Fragment, FragmentBorderBoxIterator, SpecificFragmentInfo};
use layout_debug;
-
-use euclid::{Point2D, Rect};
use std::cmp::max;
use std::fmt;
use std::sync::Arc;
diff --git a/components/layout/table_row.rs b/components/layout/table_row.rs
index 5a4d10b47d7..4824d89aea6 100644
--- a/components/layout/table_row.rs
+++ b/components/layout/table_row.rs
@@ -8,18 +8,15 @@
use block::{BlockFlow, ISizeAndMarginsComputer};
use context::LayoutContext;
+use cssparser::{Color, RGBA};
use display_list_builder::{BlockFlowDisplayListBuilding, BorderPaintingMode};
+use euclid::{Point2D, Rect};
use flow::{self, EarlyAbsolutePositionInfo, FlowClass, Flow, ImmutableFlowUtils, OpaqueFlow};
use flow_list::MutFlowListIterator;
use fragment::{Fragment, FragmentBorderBoxIterator};
+use gfx::display_list::DisplayList;
use layout_debug;
use model::MaybeAuto;
-use table::{ColumnComputedInlineSize, ColumnIntrinsicInlineSize, InternalTable, VecExt};
-use table_cell::{CollapsedBordersForCell, TableCellFlow};
-
-use cssparser::{Color, RGBA};
-use euclid::{Point2D, Rect};
-use gfx::display_list::DisplayList;
use rustc_serialize::{Encoder, Encodable};
use std::cmp::max;
use std::fmt;
@@ -28,6 +25,8 @@ use std::sync::Arc;
use style::computed_values::{border_collapse, border_spacing, border_top_style};
use style::properties::ComputedValues;
use style::values::computed::LengthOrPercentageOrAuto;
+use table::{ColumnComputedInlineSize, ColumnIntrinsicInlineSize, InternalTable, VecExt};
+use table_cell::{CollapsedBordersForCell, TableCellFlow};
use util::geometry::Au;
use util::logical_geometry::{LogicalSize, PhysicalSide, WritingMode};
diff --git a/components/layout/table_rowgroup.rs b/components/layout/table_rowgroup.rs
index 9c91ea1f3bb..29497e28ad6 100644
--- a/components/layout/table_rowgroup.rs
+++ b/components/layout/table_rowgroup.rs
@@ -8,19 +8,18 @@
use block::{BlockFlow, ISizeAndMarginsComputer};
use context::LayoutContext;
+use euclid::{Point2D, Rect};
use flow::{FlowClass, Flow, OpaqueFlow};
use fragment::{Fragment, FragmentBorderBoxIterator};
use layout_debug;
-use style::computed_values::{border_collapse, border_spacing};
-use table::{ColumnComputedInlineSize, ColumnIntrinsicInlineSize, InternalTable, TableLikeFlow};
-use table_row::{self, CollapsedBordersForRow};
-
-use euclid::{Point2D, Rect};
use rustc_serialize::{Encoder, Encodable};
use std::fmt;
use std::iter::{IntoIterator, Iterator, Peekable};
use std::sync::Arc;
+use style::computed_values::{border_collapse, border_spacing};
use style::properties::ComputedValues;
+use table::{ColumnComputedInlineSize, ColumnIntrinsicInlineSize, InternalTable, TableLikeFlow};
+use table_row::{self, CollapsedBordersForRow};
use util::geometry::Au;
use util::logical_geometry::{LogicalSize, WritingMode};
diff --git a/components/layout/table_wrapper.rs b/components/layout/table_wrapper.rs
index 9ed64e8ec6a..a3c08a07e1a 100644
--- a/components/layout/table_wrapper.rs
+++ b/components/layout/table_wrapper.rs
@@ -16,15 +16,12 @@
use block::{BlockFlow, FloatNonReplaced, AbsoluteNonReplaced, ISizeAndMarginsComputer, ISizeConstraintInput};
use block::{ISizeConstraintSolution, MarginsMayCollapseFlag};
use context::LayoutContext;
+use euclid::{Point2D, Rect};
use floats::FloatKind;
use flow::{FlowClass, Flow, ImmutableFlowUtils};
use flow::{IMPACTED_BY_LEFT_FLOATS, IMPACTED_BY_RIGHT_FLOATS, INLINE_POSITION_IS_STATIC, OpaqueFlow};
use fragment::{Fragment, FragmentBorderBoxIterator};
use model::MaybeAuto;
-use table::{ColumnComputedInlineSize, ColumnIntrinsicInlineSize};
-use table_row;
-
-use euclid::{Point2D, Rect};
use std::cmp::{max, min};
use std::fmt;
use std::ops::Add;
@@ -33,6 +30,8 @@ use style::computed_values::{border_collapse, table_layout};
use style::properties::ComputedValues;
use style::values::CSSFloat;
use style::values::computed::LengthOrPercentageOrAuto;
+use table::{ColumnComputedInlineSize, ColumnIntrinsicInlineSize};
+use table_row;
use util::geometry::Au;
use util::logical_geometry::LogicalSize;
diff --git a/components/layout/text.rs b/components/layout/text.rs
index 4657dc86e23..e90a1d639df 100644
--- a/components/layout/text.rs
+++ b/components/layout/text.rs
@@ -7,14 +7,13 @@
#![deny(unsafe_code)]
use fragment::{Fragment, SpecificFragmentInfo, ScannedTextFragmentInfo, UnscannedTextFragmentInfo};
-use inline::InlineFragments;
-
use gfx::font::{DISABLE_KERNING_SHAPING_FLAG, FontMetrics, IGNORE_LIGATURES_SHAPING_FLAG};
use gfx::font::{RTL_FLAG, RunMetrics, ShapingFlags, ShapingOptions};
use gfx::font_context::FontContext;
use gfx::text::glyph::CharIndex;
use gfx::text::text_run::TextRun;
use gfx::text::util::{self, CompressionMode};
+use inline::InlineFragments;
use std::borrow::ToOwned;
use std::collections::LinkedList;
use std::mem;
diff --git a/components/layout/traversal.rs b/components/layout/traversal.rs
index ed8ae6ab76a..33cd978ae37 100644
--- a/components/layout/traversal.rs
+++ b/components/layout/traversal.rs
@@ -11,15 +11,13 @@ use flow::{MutableFlowUtils, PreorderFlowTraversal, PostorderFlowTraversal};
use flow::{self, Flow};
use incremental::{self, BUBBLE_ISIZES, REFLOW, REFLOW_OUT_OF_FLOW, RestyleDamage};
use script::layout_interface::ReflowGoal;
-use wrapper::{ThreadSafeLayoutNode, UnsafeLayoutNode};
-use wrapper::{layout_node_to_unsafe_layout_node, LayoutNode};
-
use selectors::bloom::BloomFilter;
-use util::opts;
-use util::tid::tid;
-
use std::cell::RefCell;
use std::mem;
+use util::opts;
+use util::tid::tid;
+use wrapper::{ThreadSafeLayoutNode, UnsafeLayoutNode};
+use wrapper::{layout_node_to_unsafe_layout_node, LayoutNode};
/// Every time we do another layout, the old bloom filters are invalid. This is
/// detected by ticking a generation number every layout.
diff --git a/components/layout/wrapper.rs b/components/layout/wrapper.rs
index 8dfa9907770..0cfe3dd9399 100644
--- a/components/layout/wrapper.rs
+++ b/components/layout/wrapper.rs
@@ -33,13 +33,12 @@
use canvas_traits::CanvasMsg;
use context::SharedLayoutContext;
use data::{LayoutDataFlags, LayoutDataWrapper, PrivateLayoutData};
-use incremental::RestyleDamage;
-use opaque_node::OpaqueNodeMethods;
-
use gfx::display_list::OpaqueNode;
use gfx::text::glyph::CharIndex;
+use incremental::RestyleDamage;
use ipc_channel::ipc::IpcSender;
use msg::constellation_msg::{PipelineId, SubpageId};
+use opaque_node::OpaqueNodeMethods;
use script::dom::attr::AttrValue;
use script::dom::bindings::codegen::InheritTypes::{CharacterDataCast, ElementCast};
use script::dom::bindings::codegen::InheritTypes::{HTMLIFrameElementCast, HTMLCanvasElementCast};
diff --git a/components/msg/compositor_msg.rs b/components/msg/compositor_msg.rs
index d71291eae7c..3ac57165c34 100644
--- a/components/msg/compositor_msg.rs
+++ b/components/msg/compositor_msg.rs
@@ -3,6 +3,7 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use azure::azure_hl::Color;
+use constellation_msg::PipelineId;
use constellation_msg::{Key, KeyState, KeyModifiers};
use euclid::Matrix4;
use euclid::{Size2D, Point2D, Rect};
@@ -12,8 +13,6 @@ use layers::platform::surface::NativeDisplay;
use std::fmt;
use std::fmt::{Formatter, Debug};
-use constellation_msg::PipelineId;
-
/// A newtype struct for denoting the age of messages; prevents race conditions.
#[derive(PartialEq, Eq, Debug, Copy, Clone, PartialOrd, Ord, Deserialize, Serialize)]
pub struct Epoch(pub u32);
diff --git a/components/msg/webdriver_msg.rs b/components/msg/webdriver_msg.rs
index dd90a3492d9..db0fccac228 100644
--- a/components/msg/webdriver_msg.rs
+++ b/components/msg/webdriver_msg.rs
@@ -3,7 +3,6 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use constellation_msg::{PipelineId, SubpageId};
-
use ipc_channel::ipc::IpcSender;
use rustc_serialize::json::{Json, ToJson};
use url::Url;
diff --git a/components/net/about_loader.rs b/components/net/about_loader.rs
index 105162f29d0..a27950f97b0 100644
--- a/components/net/about_loader.rs
+++ b/components/net/about_loader.rs
@@ -3,19 +3,17 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use file_loader;
+use hyper::header::ContentType;
+use hyper::http::RawStatus;
+use hyper::mime::{Mime, TopLevel, SubLevel};
use mime_classifier::MIMEClassifier;
use net_traits::ProgressMsg::Done;
use net_traits::{LoadData, Metadata, LoadConsumer};
use resource_task::start_sending;
-
-use hyper::header::ContentType;
-use hyper::http::RawStatus;
-use hyper::mime::{Mime, TopLevel, SubLevel};
-use url::Url;
-use util::resource_files::resources_dir_path;
-
use std::fs::PathExt;
use std::sync::Arc;
+use url::Url;
+use util::resource_files::resources_dir_path;
pub fn factory(mut load_data: LoadData, start_chan: LoadConsumer, classifier: Arc<MIMEClassifier>) {
match load_data.url.non_relative_scheme_data().unwrap() {
diff --git a/components/net/cookie.rs b/components/net/cookie.rs
index acf2edf28d0..7351e14e5c8 100644
--- a/components/net/cookie.rs
+++ b/components/net/cookie.rs
@@ -5,10 +5,9 @@
//! Implementation of cookie creation and matching as specified by
//! http://tools.ietf.org/html/rfc6265
+use cookie_rs;
use net_traits::CookieSource;
use pub_domains::PUB_DOMAINS;
-
-use cookie_rs;
use std::borrow::ToOwned;
use std::net::{Ipv4Addr, Ipv6Addr};
use time::{Tm, now, at, Duration};
diff --git a/components/net/data_loader.rs b/components/net/data_loader.rs
index 28134d43d97..ee556b0d645 100644
--- a/components/net/data_loader.rs
+++ b/components/net/data_loader.rs
@@ -2,14 +2,12 @@
* 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 hyper::mime::Mime;
use mime_classifier::MIMEClassifier;
use net_traits::ProgressMsg::{Payload, Done};
use net_traits::{LoadData, Metadata, LoadConsumer};
use resource_task::start_sending;
-
use rustc_serialize::base64::FromBase64;
-
-use hyper::mime::Mime;
use std::sync::Arc;
use url::SchemeData;
use url::percent_encoding::percent_decode;
diff --git a/components/net/file_loader.rs b/components/net/file_loader.rs
index 28b3786809f..9d01311b532 100644
--- a/components/net/file_loader.rs
+++ b/components/net/file_loader.rs
@@ -6,7 +6,6 @@ use mime_classifier::MIMEClassifier;
use net_traits::ProgressMsg::{Payload, Done};
use net_traits::{LoadData, Metadata, LoadConsumer};
use resource_task::{start_sending, start_sending_sniffed, ProgressSender};
-
use std::borrow::ToOwned;
use std::error::Error;
use std::fs::File;
diff --git a/components/net/hsts.rs b/components/net/hsts.rs
index 1b8559243ee..ea8a04e16f6 100644
--- a/components/net/hsts.rs
+++ b/components/net/hsts.rs
@@ -4,11 +4,9 @@
use net_traits::{IncludeSubdomains, IPV4_REGEX, IPV6_REGEX};
use rustc_serialize::json::{decode};
+use std::str::{from_utf8};
use time;
use url::Url;
-
-use std::str::{from_utf8};
-
use util::resource_files::read_resource_file;
#[derive(RustcDecodable, RustcEncodable, Clone)]
diff --git a/components/net/storage_task.rs b/components/net/storage_task.rs
index 9a69a815df9..9c4934a07ee 100644
--- a/components/net/storage_task.rs
+++ b/components/net/storage_task.rs
@@ -3,13 +3,12 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use ipc_channel::ipc::{self, IpcReceiver, IpcSender};
+use net_traits::storage_task::{StorageTask, StorageTaskMsg, StorageType};
use std::borrow::ToOwned;
use std::collections::BTreeMap;
use std::collections::HashMap;
use std::sync::mpsc::channel;
use url::Url;
-
-use net_traits::storage_task::{StorageTask, StorageTaskMsg, StorageType};
use util::str::DOMString;
use util::task::spawn_named;
diff --git a/components/net_traits/hosts.rs b/components/net_traits/hosts.rs
index 862223b4b34..67001324dcf 100644
--- a/components/net_traits/hosts.rs
+++ b/components/net_traits/hosts.rs
@@ -7,7 +7,6 @@ use std::env;
use std::fs::File;
use std::io::{BufReader, Read};
use url::Url;
-
use {IPV4_REGEX, IPV6_REGEX};
static mut HOST_TABLE: Option<*mut HashMap<String, String>> = None;
diff --git a/components/net_traits/lib.rs b/components/net_traits/lib.rs
index 6b68a005c7a..7f97c143de7 100644
--- a/components/net_traits/lib.rs
+++ b/components/net_traits/lib.rs
@@ -35,11 +35,10 @@ use ipc_channel::ipc::{self, IpcReceiver, IpcSender};
use msg::constellation_msg::{PipelineId};
use regex::Regex;
use serde::{Deserializer, Serializer};
+use std::thread;
use url::Url;
use util::mem::HeapSizeOf;
-use std::thread;
-
pub mod hosts;
pub mod image_cache_task;
pub mod net_error_list;
diff --git a/components/net_traits/storage_task.rs b/components/net_traits/storage_task.rs
index 261e6cb1f7b..129be8e79d2 100644
--- a/components/net_traits/storage_task.rs
+++ b/components/net_traits/storage_task.rs
@@ -4,7 +4,6 @@
use ipc_channel::ipc::IpcSender;
use url::Url;
-
use util::str::DOMString;
#[derive(Copy, Clone, Deserialize, Serialize, HeapSizeOf)]
diff --git a/components/plugins/lib.rs b/components/plugins/lib.rs
index 4124d552988..250fa500a5e 100644
--- a/components/plugins/lib.rs
+++ b/components/plugins/lib.rs
@@ -27,7 +27,6 @@ extern crate clippy;
use rustc::lint::LintPassObject;
use rustc::plugin::Registry;
use syntax::ext::base::*;
-
use syntax::feature_gate::AttributeType::Whitelisted;
use syntax::parse::token::intern;
diff --git a/components/plugins/lints/inheritance_integrity.rs b/components/plugins/lints/inheritance_integrity.rs
index 70fbed0c016..ac9c965e7b2 100644
--- a/components/plugins/lints/inheritance_integrity.rs
+++ b/components/plugins/lints/inheritance_integrity.rs
@@ -6,7 +6,6 @@ use rustc::lint::{Context, LintPass, LintArray, Level};
use rustc::middle::def;
use rustc::middle::def_id::DefId;
use syntax::ast;
-
use utils::match_lang_ty;
declare_lint!(INHERITANCE_INTEGRITY, Deny,
diff --git a/components/plugins/utils.rs b/components/plugins/utils.rs
index 580cfe9efc5..3780f1932a2 100644
--- a/components/plugins/utils.rs
+++ b/components/plugins/utils.rs
@@ -6,7 +6,6 @@ use rustc::ast_map;
use rustc::lint::Context;
use rustc::middle::def;
use rustc::middle::def_id::DefId;
-
use syntax::ast;
use syntax::ast::{TyPath, Path, AngleBracketedParameters, PathSegment, Ty};
use syntax::attr::mark_used;
diff --git a/components/profile_traits/mem.rs b/components/profile_traits/mem.rs
index 25b4b8d2252..caf7ba8a793 100644
--- a/components/profile_traits/mem.rs
+++ b/components/profile_traits/mem.rs
@@ -8,7 +8,6 @@
use ipc_channel::ipc::{self, IpcSender};
use ipc_channel::router::ROUTER;
-
use std::marker::Send;
use std::sync::mpsc::Sender;
diff --git a/components/script/clipboard_provider.rs b/components/script/clipboard_provider.rs
index ce57a82857d..81860f59eef 100644
--- a/components/script/clipboard_provider.rs
+++ b/components/script/clipboard_provider.rs
@@ -2,10 +2,9 @@
* 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 ipc_channel::ipc;
use msg::constellation_msg::ConstellationChan;
use msg::constellation_msg::Msg as ConstellationMsg;
-
-use ipc_channel::ipc;
use std::borrow::ToOwned;
use std::sync::mpsc::channel;
diff --git a/components/script/cors.rs b/components/script/cors.rs
index 587cdaacf87..4de0a5ad396 100644
--- a/components/script/cors.rs
+++ b/components/script/cors.rs
@@ -9,17 +9,6 @@
//! This library will eventually become the core of the Fetch crate
//! with CORSRequest being expanded into FetchRequest (etc)
-use net_traits::{AsyncResponseListener, ResponseAction, Metadata};
-use network_listener::{NetworkListener, PreInvoke};
-use script_task::ScriptChan;
-
-use std::ascii::AsciiExt;
-use std::borrow::ToOwned;
-use std::cell::RefCell;
-use std::sync::{Arc, Mutex};
-use time;
-use time::{now, Timespec};
-
use hyper::client::Request;
use hyper::header::{AccessControlMaxAge, AccessControlAllowOrigin};
use hyper::header::{AccessControlRequestHeaders, AccessControlAllowHeaders};
@@ -29,7 +18,15 @@ use hyper::header::{Headers, HeaderView};
use hyper::method::Method;
use hyper::mime::{Mime, TopLevel, SubLevel};
use hyper::status::StatusClass::Success;
-
+use net_traits::{AsyncResponseListener, ResponseAction, Metadata};
+use network_listener::{NetworkListener, PreInvoke};
+use script_task::ScriptChan;
+use std::ascii::AsciiExt;
+use std::borrow::ToOwned;
+use std::cell::RefCell;
+use std::sync::{Arc, Mutex};
+use time;
+use time::{now, Timespec};
use unicase::UniCase;
use url::{SchemeData, Url};
use util::mem::HeapSizeOf;
diff --git a/components/script/dom/activation.rs b/components/script/dom/activation.rs
index d14861ed686..10c2020dd31 100644
--- a/components/script/dom/activation.rs
+++ b/components/script/dom/activation.rs
@@ -9,7 +9,6 @@ use dom::event::{Event, EventBubbles, EventCancelable};
use dom::eventtarget::EventTarget;
use dom::mouseevent::MouseEvent;
use dom::node::window_from_node;
-
use std::borrow::ToOwned;
/// Trait for elements with defined activation behavior
diff --git a/components/script/dom/attr.rs b/components/script/dom/attr.rs
index 32178148ccf..a96f3a72e09 100644
--- a/components/script/dom/attr.rs
+++ b/components/script/dom/attr.rs
@@ -2,6 +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 devtools_traits::AttrInfo;
use dom::bindings::cell::DOMRefCell;
use dom::bindings::codegen::Bindings::AttrBinding::{self, AttrMethods};
use dom::bindings::codegen::InheritTypes::NodeCast;
@@ -12,16 +13,12 @@ use dom::bindings::utils::{Reflector, reflect_dom_object};
use dom::element::{AttributeMutation, Element};
use dom::virtualmethods::vtable_for;
use dom::window::Window;
-
-use devtools_traits::AttrInfo;
-use util::str::{DOMString, parse_unsigned_integer, split_html_space_chars, str_join};
-
-use string_cache::{Atom, Namespace};
-
use std::borrow::ToOwned;
use std::cell::Ref;
use std::mem;
use std::ops::Deref;
+use string_cache::{Atom, Namespace};
+use util::str::{DOMString, parse_unsigned_integer, split_html_space_chars, str_join};
#[derive(JSTraceable, PartialEq, Clone, HeapSizeOf)]
pub enum AttrValue {
diff --git a/components/script/dom/bindings/callback.rs b/components/script/dom/bindings/callback.rs
index e5a887a88b0..4a54db01875 100644
--- a/components/script/dom/bindings/callback.rs
+++ b/components/script/dom/bindings/callback.rs
@@ -16,7 +16,6 @@ use js::jsapi::{JS_GetProperty, JS_IsExceptionPending, JS_ReportPendingException
use js::jsapi::{JS_SaveFrameChain, JS_RestoreFrameChain};
use js::jsapi::{RootedObject, RootedValue, MutableHandleObject, Heap};
use js::jsval::{JSVal, UndefinedValue};
-
use std::default::Default;
use std::ffi::CString;
use std::intrinsics::return_address;
diff --git a/components/script/dom/bindings/cell.rs b/components/script/dom/bindings/cell.rs
index e2cbe4bfef5..18fffa56b33 100644
--- a/components/script/dom/bindings/cell.rs
+++ b/components/script/dom/bindings/cell.rs
@@ -6,12 +6,10 @@
use dom::bindings::trace::JSTraceable;
use js::jsapi::{JSTracer};
-
+use std::cell::{BorrowState, RefCell, Ref, RefMut};
use util::task_state;
use util::task_state::SCRIPT;
-use std::cell::{BorrowState, RefCell, Ref, RefMut};
-
/// A mutable field in the DOM.
///
/// This extends the API of `core::cell::RefCell` to allow unsafe access in
diff --git a/components/script/dom/bindings/conversions.rs b/components/script/dom/bindings/conversions.rs
index 7118bef0e68..2922e2250ae 100644
--- a/components/script/dom/bindings/conversions.rs
+++ b/components/script/dom/bindings/conversions.rs
@@ -32,14 +32,13 @@
//! | sequences | `Vec<T>` |
//! | union types | `T` |
+use core::nonzero::NonZero;
use dom::bindings::codegen::PrototypeList;
use dom::bindings::error::throw_type_error;
use dom::bindings::js::Root;
use dom::bindings::num::Finite;
use dom::bindings::str::{ByteString, USVString};
use dom::bindings::utils::{Reflectable, Reflector, DOMClass};
-use util::str::DOMString;
-
use js;
use js::glue::{GetProxyPrivate, IsWrapper, RUST_JS_NumberValue};
use js::glue::{RUST_JSID_IS_STRING, RUST_JSID_TO_STRING, UnwrapObject};
@@ -54,8 +53,6 @@ use js::jsval::{UndefinedValue, NullValue, BooleanValue, Int32Value, UInt32Value
use js::rust::{ToUint16, ToNumber, ToBoolean, ToString};
use js::rust::{ToUint32, ToInt32};
use js::rust::{ToUint64, ToInt64};
-
-use core::nonzero::NonZero;
use libc;
use num::Float;
use num::traits::{Bounded, Zero};
@@ -64,6 +61,7 @@ use std::char;
use std::ptr;
use std::rc::Rc;
use std::slice;
+use util::str::DOMString;
trait As<O>: Copy {
fn cast(self) -> O;
diff --git a/components/script/dom/bindings/error.rs b/components/script/dom/bindings/error.rs
index a5fb6d90e51..6fb338fd31d 100644
--- a/components/script/dom/bindings/error.rs
+++ b/components/script/dom/bindings/error.rs
@@ -8,21 +8,18 @@ use dom::bindings::codegen::PrototypeList::proto_id_to_name;
use dom::bindings::conversions::ToJSValConvertible;
use dom::bindings::global::GlobalRef;
use dom::domexception::{DOMException, DOMErrorName};
-
-use util::mem::HeapSizeOf;
-use util::str::DOMString;
-
use js::jsapi::JSAutoCompartment;
use js::jsapi::{JSContext, JSObject, RootedValue};
use js::jsapi::{JS_IsExceptionPending, JS_SetPendingException, JS_ReportPendingException};
use js::jsapi::{JS_ReportErrorNumber1, JSErrorFormatString, JSExnType};
use js::jsapi::{JS_SaveFrameChain, JS_RestoreFrameChain};
use js::jsval::UndefinedValue;
-
use libc;
use std::ffi::CString;
use std::mem;
use std::ptr;
+use util::mem::HeapSizeOf;
+use util::str::DOMString;
/// DOM exceptions that can be thrown by a native DOM method.
#[derive(Debug, Clone, HeapSizeOf)]
diff --git a/components/script/dom/bindings/global.rs b/components/script/dom/bindings/global.rs
index 3ff081521cc..a2602a2ed2e 100644
--- a/components/script/dom/bindings/global.rs
+++ b/components/script/dom/bindings/global.rs
@@ -14,18 +14,15 @@ use dom::bindings::js::{JS, Root};
use dom::bindings::utils::{Reflectable, Reflector};
use dom::window::{self, ScriptHelpers};
use dom::workerglobalscope::WorkerGlobalScope;
-use script_task::{ScriptChan, ScriptPort, CommonScriptMsg, ScriptTask};
-
-use msg::constellation_msg::{ConstellationChan, PipelineId, WorkerId};
-use net_traits::ResourceTask;
-use profile_traits::mem;
-
use ipc_channel::ipc::IpcSender;
use js::jsapi::{GetGlobalForObjectCrossCompartment};
use js::jsapi::{JSContext, JSObject, JS_GetClass, MutableHandleValue};
use js::{JSCLASS_IS_GLOBAL, JSCLASS_IS_DOMJSCLASS};
+use msg::constellation_msg::{ConstellationChan, PipelineId, WorkerId};
+use net_traits::ResourceTask;
+use profile_traits::mem;
+use script_task::{ScriptChan, ScriptPort, CommonScriptMsg, ScriptTask};
use url::Url;
-
use util::mem::HeapSizeOf;
/// A freely-copyable reference to a rooted global object.
diff --git a/components/script/dom/bindings/js.rs b/components/script/dom/bindings/js.rs
index e50bf68e478..065604d6976 100644
--- a/components/script/dom/bindings/js.rs
+++ b/components/script/dom/bindings/js.rs
@@ -23,6 +23,7 @@
//! originating `Root<T>`.
//!
+use core::nonzero::NonZero;
use dom::bindings::trace::JSTraceable;
use dom::bindings::trace::trace_reflector;
use dom::bindings::utils::{Reflector, Reflectable};
@@ -31,12 +32,10 @@ use js::jsapi::{JSObject, Heap, JSTracer};
use js::jsval::JSVal;
use layout_interface::TrustedNodeAddress;
use script_task::STACK_ROOTS;
-use util::mem::HeapSizeOf;
-
-use core::nonzero::NonZero;
use std::cell::{Cell, UnsafeCell};
use std::default::Default;
use std::ops::Deref;
+use util::mem::HeapSizeOf;
/// A traced reference to a DOM object. Must only be used as a field in other
/// DOM objects.
diff --git a/components/script/dom/bindings/proxyhandler.rs b/components/script/dom/bindings/proxyhandler.rs
index 66240df0d2c..8ad7a819206 100644
--- a/components/script/dom/bindings/proxyhandler.rs
+++ b/components/script/dom/bindings/proxyhandler.rs
@@ -20,7 +20,6 @@ use js::jsapi::{JS_StrictPropertyStub, JSErrNum};
use js::jsval::ObjectValue;
use js::{JSPROP_GETTER, JSPROP_ENUMERATE, JSPROP_READONLY};
use js::{JSTrue, JSFalse};
-
use libc;
use std::mem;
use std::ptr;
diff --git a/components/script/dom/bindings/refcounted.rs b/components/script/dom/bindings/refcounted.rs
index a1adf059dba..755f8ec6076 100644
--- a/components/script/dom/bindings/refcounted.rs
+++ b/components/script/dom/bindings/refcounted.rs
@@ -22,15 +22,13 @@
//! is rooted when a hashmap entry is first created, and unrooted when the hashmap entry
//! is removed.
+use core::nonzero::NonZero;
use dom::bindings::js::Root;
use dom::bindings::trace::trace_reflector;
use dom::bindings::utils::{Reflector, Reflectable};
-use script_task::{ScriptChan, CommonScriptMsg};
-
use js::jsapi::{JSContext, JSTracer};
-
-use core::nonzero::NonZero;
use libc;
+use script_task::{ScriptChan, CommonScriptMsg};
use std::cell::RefCell;
use std::collections::hash_map::Entry::{Vacant, Occupied};
use std::collections::hash_map::HashMap;
diff --git a/components/script/dom/bindings/str.rs b/components/script/dom/bindings/str.rs
index ee6514bffbd..dd4295f2c0b 100644
--- a/components/script/dom/bindings/str.rs
+++ b/components/script/dom/bindings/str.rs
@@ -10,7 +10,6 @@ use std::hash::{Hash, Hasher};
use std::ops;
use std::str;
use std::str::FromStr;
-
use util::mem::HeapSizeOf;
/// Encapsulates the IDL `ByteString` type.
diff --git a/components/script/dom/bindings/structuredclone.rs b/components/script/dom/bindings/structuredclone.rs
index 60dc10d0ced..90a0ca25df6 100644
--- a/components/script/dom/bindings/structuredclone.rs
+++ b/components/script/dom/bindings/structuredclone.rs
@@ -8,13 +8,11 @@
use dom::bindings::error::Error::DataClone;
use dom::bindings::error::Fallible;
use dom::bindings::global::GlobalRef;
-
use js::glue::JS_STRUCTURED_CLONE_VERSION;
use js::jsapi::JSContext;
use js::jsapi::JS_ReadStructuredClone;
use js::jsapi::{HandleValue, MutableHandleValue};
use js::jsapi::{JS_WriteStructuredClone, JS_ClearPendingException};
-
use libc::size_t;
use std::ptr;
diff --git a/components/script/dom/bindings/trace.rs b/components/script/dom/bindings/trace.rs
index 5a9aa5b2abb..de9d788c849 100644
--- a/components/script/dom/bindings/trace.rs
+++ b/components/script/dom/bindings/trace.rs
@@ -29,15 +29,13 @@
//! The `no_jsmanaged_fields!()` macro adds an empty implementation of `JSTraceable` to
//! a datatype.
-use dom::bindings::js::{JS, Root};
-use dom::bindings::refcounted::Trusted;
-use dom::bindings::utils::{Reflectable, Reflector, WindowProxyHandler};
-use script_task::ScriptChan;
-
use canvas_traits::WebGLError;
use canvas_traits::{CanvasGradientStop, LinearGradientStyle, RadialGradientStyle};
use canvas_traits::{LineCapStyle, LineJoinStyle, CompositionOrBlending, RepetitionStyle};
use cssparser::RGBA;
+use dom::bindings::js::{JS, Root};
+use dom::bindings::refcounted::Trusted;
+use dom::bindings::utils::{Reflectable, Reflector, WindowProxyHandler};
use encoding::types::EncodingRef;
use euclid::matrix2d::Matrix2D;
use euclid::rect::Rect;
@@ -59,6 +57,7 @@ use net_traits::image_cache_task::{ImageCacheChan, ImageCacheTask};
use net_traits::storage_task::StorageType;
use profile_traits::mem::ProfilerChan as MemProfilerChan;
use profile_traits::time::ProfilerChan as TimeProfilerChan;
+use script_task::ScriptChan;
use script_traits::UntrustedNodeAddress;
use selectors::parser::PseudoElement;
use serde::{Serialize, Deserialize};
diff --git a/components/script/dom/bindings/utils.rs b/components/script/dom/bindings/utils.rs
index be600d807d3..6d61b6013b1 100644
--- a/components/script/dom/bindings/utils.rs
+++ b/components/script/dom/bindings/utils.rs
@@ -17,9 +17,6 @@ use dom::bindings::trace::trace_object;
use dom::browsercontext;
use dom::eventtarget::EventTargetTypeId;
use dom::window;
-use util::mem::HeapSizeOf;
-use util::str::DOMString;
-
use js;
use js::glue::{CallJitMethodOp, CallJitGetterOp, CallJitSetterOp, IsWrapper};
use js::glue::{RUST_FUNCTION_VALUE_TO_JITINFO, RUST_JSID_IS_INT};
@@ -61,6 +58,8 @@ use std::default::Default;
use std::ffi::CString;
use std::ptr;
use string_cache::{Atom, Namespace};
+use util::mem::HeapSizeOf;
+use util::str::DOMString;
/// Proxy handler for a WindowProxy.
#[allow(raw_pointer_derive)]
diff --git a/components/script/dom/browsercontext.rs b/components/script/dom/browsercontext.rs
index a0249d37202..668dd8cd961 100644
--- a/components/script/dom/browsercontext.rs
+++ b/components/script/dom/browsercontext.rs
@@ -11,7 +11,6 @@ use dom::bindings::utils::{Reflectable, WindowProxyHandler};
use dom::document::Document;
use dom::element::Element;
use dom::window::Window;
-
use js::glue::{GetProxyPrivate};
use js::glue::{WrapperNew, CreateWrapperProxyHandler, ProxyTraps};
use js::jsapi::{HandleObject, HandleId, MutableHandle, MutableHandleValue};
@@ -22,7 +21,6 @@ use js::jsapi::{JS_ForwardSetPropertyTo, ObjectOpResult, RootedObject, RootedVal
use js::jsapi::{JS_GetPropertyDescriptorById, JS_DefinePropertyById6};
use js::jsval::{ObjectValue, UndefinedValue};
use js::{JSTrue, JSFalse};
-
use std::default::Default;
use std::ptr;
diff --git a/components/script/dom/canvasrenderingcontext2d.rs b/components/script/dom/canvasrenderingcontext2d.rs
index 57feaf5e9d7..337dd3a619e 100644
--- a/components/script/dom/canvasrenderingcontext2d.rs
+++ b/components/script/dom/canvasrenderingcontext2d.rs
@@ -2,6 +2,12 @@
* 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 canvas::canvas_paint_task::RectToi32;
+use canvas_traits::{CanvasMsg, Canvas2dMsg, CanvasCommonMsg};
+use canvas_traits::{FillOrStrokeStyle, LinearGradientStyle, RadialGradientStyle, RepetitionStyle};
+use canvas_traits::{LineCapStyle, LineJoinStyle, CompositionOrBlending};
+use cssparser::Color as CSSColor;
+use cssparser::{Parser, RGBA};
use dom::bindings::codegen::Bindings::CanvasRenderingContext2DBinding;
use dom::bindings::codegen::Bindings::CanvasRenderingContext2DBinding::CanvasRenderingContext2DMethods;
use dom::bindings::codegen::Bindings::CanvasRenderingContext2DBinding::CanvasWindingRule;
@@ -22,24 +28,14 @@ use dom::htmlcanvaselement::utils as canvas_utils;
use dom::htmlimageelement::HTMLImageElement;
use dom::imagedata::ImageData;
use dom::node::{window_from_node, NodeDamage};
-
-use msg::constellation_msg::Msg as ConstellationMsg;
-use net_traits::image::base::PixelFormat;
-use net_traits::image_cache_task::ImageResponse;
-
-use cssparser::Color as CSSColor;
-use cssparser::{Parser, RGBA};
use euclid::matrix2d::Matrix2D;
use euclid::point::Point2D;
use euclid::rect::Rect;
use euclid::size::Size2D;
-
-use canvas::canvas_paint_task::RectToi32;
-use canvas_traits::{CanvasMsg, Canvas2dMsg, CanvasCommonMsg};
-use canvas_traits::{FillOrStrokeStyle, LinearGradientStyle, RadialGradientStyle, RepetitionStyle};
-use canvas_traits::{LineCapStyle, LineJoinStyle, CompositionOrBlending};
-
use ipc_channel::ipc::{self, IpcSender};
+use msg::constellation_msg::Msg as ConstellationMsg;
+use net_traits::image::base::PixelFormat;
+use net_traits::image_cache_task::ImageResponse;
use num::{Float, ToPrimitive};
use std::borrow::ToOwned;
use std::cell::RefCell;
@@ -47,7 +43,6 @@ use std::cmp;
use std::fmt;
use std::str::FromStr;
use std::sync::mpsc::channel;
-
use url::Url;
use util::str::DOMString;
use util::vec::byte_swap;
diff --git a/components/script/dom/characterdata.rs b/components/script/dom/characterdata.rs
index 36503f8c041..db2d576dcd9 100644
--- a/components/script/dom/characterdata.rs
+++ b/components/script/dom/characterdata.rs
@@ -16,11 +16,9 @@ use dom::document::Document;
use dom::element::Element;
use dom::eventtarget::{EventTarget, EventTargetTypeId};
use dom::node::{Node, NodeTypeId};
-
-use util::str::DOMString;
-
use std::borrow::ToOwned;
use std::cell::Ref;
+use util::str::DOMString;
// https://dom.spec.whatwg.org/#characterdata
#[dom_struct]
diff --git a/components/script/dom/closeevent.rs b/components/script/dom/closeevent.rs
index 5dfbaf5aecd..b4e077b0494 100644
--- a/components/script/dom/closeevent.rs
+++ b/components/script/dom/closeevent.rs
@@ -12,7 +12,6 @@ use dom::bindings::js::Root;
use dom::bindings::utils::reflect_dom_object;
use dom::event::{Event, EventTypeId, EventBubbles, EventCancelable};
use script_task::ScriptChan;
-
use util::str::DOMString;
#[dom_struct]
diff --git a/components/script/dom/create.rs b/components/script/dom/create.rs
index 55bef524640..e7fb121f758 100644
--- a/components/script/dom/create.rs
+++ b/components/script/dom/create.rs
@@ -75,10 +75,8 @@ use dom::htmltrackelement::HTMLTrackElement;
use dom::htmlulistelement::HTMLUListElement;
use dom::htmlunknownelement::HTMLUnknownElement;
use dom::htmlvideoelement::HTMLVideoElement;
-
-use string_cache::{Atom, QualName};
-
use std::borrow::ToOwned;
+use string_cache::{Atom, QualName};
pub fn create_element(name: QualName, prefix: Option<Atom>,
document: &Document, creator: ElementCreator)
diff --git a/components/script/dom/crypto.rs b/components/script/dom/crypto.rs
index 49ca25ff376..52d2141b3be 100644
--- a/components/script/dom/crypto.rs
+++ b/components/script/dom/crypto.rs
@@ -9,15 +9,12 @@ use dom::bindings::error::{Error, Fallible};
use dom::bindings::global::GlobalRef;
use dom::bindings::js::Root;
use dom::bindings::utils::{Reflector, reflect_dom_object};
-
use js::jsapi::{JSContext, JSObject};
use js::jsapi::{JS_GetObjectAsArrayBufferView, JS_GetArrayBufferViewType, Type};
-
+use rand::{Rng, OsRng};
use std::ptr;
use std::slice;
-use rand::{Rng, OsRng};
-
no_jsmanaged_fields!(OsRng);
// https://developer.mozilla.org/en-US/docs/Web/API/Crypto
diff --git a/components/script/dom/css.rs b/components/script/dom/css.rs
index 5f4bce94d28..527b08315e9 100644
--- a/components/script/dom/css.rs
+++ b/components/script/dom/css.rs
@@ -2,13 +2,12 @@
* 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 cssparser::serialize_identifier;
use dom::bindings::error::{Error, Fallible};
use dom::bindings::global::GlobalRef;
use dom::bindings::utils::Reflector;
use util::str::DOMString;
-use cssparser::serialize_identifier;
-
#[dom_struct]
pub struct CSS {
reflector_: Reflector,
diff --git a/components/script/dom/cssstyledeclaration.rs b/components/script/dom/cssstyledeclaration.rs
index e882330b18b..ef44d298269 100644
--- a/components/script/dom/cssstyledeclaration.rs
+++ b/components/script/dom/cssstyledeclaration.rs
@@ -12,15 +12,14 @@ use dom::element::{StylePriority, Element};
use dom::node::{window_from_node, document_from_node, NodeDamage};
use dom::window::Window;
use selectors::parser::PseudoElement;
-use string_cache::Atom;
-use style::properties::PropertyDeclaration;
-use style::properties::{is_supported_property, longhands_from_shorthand, parse_one_declaration};
-use util::str::DOMString;
-
use std::ascii::AsciiExt;
use std::borrow::ToOwned;
use std::cell::Ref;
use std::slice::SliceConcatExt;
+use string_cache::Atom;
+use style::properties::PropertyDeclaration;
+use style::properties::{is_supported_property, longhands_from_shorthand, parse_one_declaration};
+use util::str::DOMString;
// http://dev.w3.org/csswg/cssom/#the-cssstyledeclaration-interface
#[dom_struct]
diff --git a/components/script/dom/dedicatedworkerglobalscope.rs b/components/script/dom/dedicatedworkerglobalscope.rs
index 9ced7221078..ba0bb767408 100644
--- a/components/script/dom/dedicatedworkerglobalscope.rs
+++ b/components/script/dom/dedicatedworkerglobalscope.rs
@@ -3,6 +3,7 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use devtools;
+use devtools_traits::DevtoolScriptControlMsg;
use dom::bindings::cell::DOMRefCell;
use dom::bindings::codegen::Bindings::DedicatedWorkerGlobalScopeBinding;
use dom::bindings::codegen::Bindings::DedicatedWorkerGlobalScopeBinding::DedicatedWorkerGlobalScopeMethods;
@@ -20,28 +21,24 @@ use dom::messageevent::MessageEvent;
use dom::worker::{TrustedWorkerAddress, WorkerMessageHandler, SimpleWorkerErrorHandler};
use dom::workerglobalscope::WorkerGlobalScope;
use dom::workerglobalscope::{WorkerGlobalScopeTypeId, WorkerGlobalScopeInit};
-use script_task::ScriptTaskEventCategory::WorkerEvent;
-use script_task::{ScriptTask, ScriptChan, TimerSource, ScriptPort, StackRootTLS, CommonScriptMsg};
-
-use devtools_traits::DevtoolScriptControlMsg;
-use msg::constellation_msg::PipelineId;
-use net_traits::load_whole_resource;
-use util::task::spawn_named;
-use util::task_state;
-use util::task_state::{SCRIPT, IN_WORKER};
-
use ipc_channel::ipc::IpcReceiver;
use ipc_channel::router::ROUTER;
use js::jsapi::{JSAutoRequest, JSAutoCompartment};
use js::jsapi::{JSContext, RootedValue, HandleValue};
use js::jsval::UndefinedValue;
use js::rust::Runtime;
-use url::Url;
-
+use msg::constellation_msg::PipelineId;
+use net_traits::load_whole_resource;
use rand::random;
+use script_task::ScriptTaskEventCategory::WorkerEvent;
+use script_task::{ScriptTask, ScriptChan, TimerSource, ScriptPort, StackRootTLS, CommonScriptMsg};
use std::mem::replace;
use std::rc::Rc;
use std::sync::mpsc::{Sender, Receiver, channel, Select, RecvError};
+use url::Url;
+use util::task::spawn_named;
+use util::task_state;
+use util::task_state::{SCRIPT, IN_WORKER};
/// Messages used to control the worker event loops
pub enum WorkerScriptMsg {
diff --git a/components/script/dom/document.rs b/components/script/dom/document.rs
index de4f6a8423e..fb67d8f84fd 100644
--- a/components/script/dom/document.rs
+++ b/components/script/dom/document.rs
@@ -66,8 +66,12 @@ use dom::text::Text;
use dom::treewalker::TreeWalker;
use dom::uievent::UIEvent;
use dom::window::{Window, ReflowReason};
-
+use euclid::point::Point2D;
+use html5ever::tree_builder::{QuirksMode, NoQuirks, LimitedQuirks, Quirks};
+use ipc_channel::ipc::{self, IpcSender};
+use js::jsapi::{JSContext, JSObject, JSRuntime};
use layout_interface::{HitTestResponse, MouseOverResponse};
+use layout_interface::{LayoutChan, Msg};
use layout_interface::{ReflowGoal, ReflowQueryType};
use msg::compositor_msg::ScriptToCompositorMsg;
use msg::constellation_msg::AnimationState;
@@ -77,19 +81,9 @@ use msg::constellation_msg::{SUPER, ALT, SHIFT, CONTROL};
use net_traits::ControlMsg::{SetCookiesForUrl, GetCookiesForUrl};
use net_traits::CookieSource::NonHTTP;
use net_traits::{Metadata, PendingAsyncLoad, AsyncResponseTarget};
+use num::ToPrimitive;
use script_task::Runnable;
use script_traits::{MouseButton, UntrustedNodeAddress};
-use util::str::{DOMString, split_html_space_chars};
-
-use euclid::point::Point2D;
-use html5ever::tree_builder::{QuirksMode, NoQuirks, LimitedQuirks, Quirks};
-use ipc_channel::ipc::{self, IpcSender};
-use js::jsapi::{JSContext, JSObject, JSRuntime};
-use layout_interface::{LayoutChan, Msg};
-use string_cache::{Atom, QualName};
-use url::Url;
-
-use num::ToPrimitive;
use std::ascii::AsciiExt;
use std::borrow::ToOwned;
use std::boxed::FnBox;
@@ -101,7 +95,10 @@ use std::iter::FromIterator;
use std::ptr;
use std::rc::Rc;
use std::sync::mpsc::channel;
+use string_cache::{Atom, QualName};
use time;
+use url::Url;
+use util::str::{DOMString, split_html_space_chars};
#[derive(JSTraceable, PartialEq, HeapSizeOf)]
pub enum IsHTMLDocument {
diff --git a/components/script/dom/documenttype.rs b/components/script/dom/documenttype.rs
index 0d91cdedb1a..a9f540592e9 100644
--- a/components/script/dom/documenttype.rs
+++ b/components/script/dom/documenttype.rs
@@ -11,9 +11,8 @@ use dom::bindings::js::Root;
use dom::document::Document;
use dom::eventtarget::{EventTarget, EventTargetTypeId};
use dom::node::{Node, NodeTypeId};
-use util::str::DOMString;
-
use std::borrow::ToOwned;
+use util::str::DOMString;
// https://dom.spec.whatwg.org/#documenttype
/// The `DOCTYPE` tag.
diff --git a/components/script/dom/domexception.rs b/components/script/dom/domexception.rs
index fdc4257a40d..19751284bcf 100644
--- a/components/script/dom/domexception.rs
+++ b/components/script/dom/domexception.rs
@@ -8,9 +8,8 @@ use dom::bindings::codegen::Bindings::DOMExceptionBinding::DOMExceptionMethods;
use dom::bindings::global::GlobalRef;
use dom::bindings::js::Root;
use dom::bindings::utils::{Reflector, reflect_dom_object};
-use util::str::DOMString;
-
use std::borrow::ToOwned;
+use util::str::DOMString;
#[repr(u16)]
#[derive(JSTraceable, Copy, Clone, Debug, HeapSizeOf)]
diff --git a/components/script/dom/domimplementation.rs b/components/script/dom/domimplementation.rs
index 91b97487b4f..d66cba67bc0 100644
--- a/components/script/dom/domimplementation.rs
+++ b/components/script/dom/domimplementation.rs
@@ -21,9 +21,8 @@ use dom::htmlheadelement::HTMLHeadElement;
use dom::htmlhtmlelement::HTMLHtmlElement;
use dom::htmltitleelement::HTMLTitleElement;
use dom::text::Text;
-use util::str::DOMString;
-
use std::borrow::ToOwned;
+use util::str::DOMString;
// https://dom.spec.whatwg.org/#domimplementation
#[dom_struct]
diff --git a/components/script/dom/domparser.rs b/components/script/dom/domparser.rs
index 00172fc398d..679e5b53a07 100644
--- a/components/script/dom/domparser.rs
+++ b/components/script/dom/domparser.rs
@@ -16,9 +16,8 @@ use dom::document::DocumentSource;
use dom::document::{Document, IsHTMLDocument};
use dom::window::Window;
use parse::html::{ParseContext, parse_html};
-use util::str::DOMString;
-
use std::borrow::ToOwned;
+use util::str::DOMString;
#[dom_struct]
pub struct DOMParser {
diff --git a/components/script/dom/domtokenlist.rs b/components/script/dom/domtokenlist.rs
index 5c8af75f298..95c743664f9 100644
--- a/components/script/dom/domtokenlist.rs
+++ b/components/script/dom/domtokenlist.rs
@@ -12,12 +12,10 @@ use dom::bindings::js::{JS, Root};
use dom::bindings::utils::{Reflector, reflect_dom_object};
use dom::element::Element;
use dom::node::window_from_node;
-
+use std::borrow::ToOwned;
use string_cache::Atom;
use util::str::{DOMString, HTML_SPACE_CHARACTERS, str_join};
-use std::borrow::ToOwned;
-
#[dom_struct]
pub struct DOMTokenList {
reflector_: Reflector,
diff --git a/components/script/dom/element.rs b/components/script/dom/element.rs
index 2cd65557bee..8132011a0fe 100644
--- a/components/script/dom/element.rs
+++ b/components/script/dom/element.rs
@@ -4,6 +4,8 @@
//! Element nodes.
+use cssparser::Color;
+use devtools_traits::AttrInfo;
use dom::activation::Activatable;
use dom::attr::AttrValue;
use dom::attr::{Attr, AttrHelpersForLayout};
@@ -57,19 +59,6 @@ use dom::node::{document_from_node, NodeDamage};
use dom::node::{window_from_node};
use dom::nodelist::NodeList;
use dom::virtualmethods::{VirtualMethods, vtable_for};
-
-use devtools_traits::AttrInfo;
-use smallvec::VecLike;
-use style::legacy::{UnsignedIntegerAttribute, from_declaration};
-use style::properties::DeclaredValue;
-use style::properties::longhands::{self, background_image, border_spacing, font_family};
-use style::properties::{PropertyDeclarationBlock, PropertyDeclaration, parse_style_attribute};
-use style::values::CSSFloat;
-use style::values::specified::{self, CSSColor, CSSRGBA};
-use util::geometry::Au;
-use util::str::{DOMString, LengthOrPercentageOrAuto};
-
-use cssparser::Color;
use html5ever::serialize;
use html5ever::serialize::SerializeOpts;
use html5ever::serialize::TraversalScope;
@@ -78,15 +67,23 @@ use html5ever::tree_builder::{NoQuirks, LimitedQuirks, Quirks};
use selectors::matching::{matches, DeclarationBlock};
use selectors::parser::parse_author_origin_selector_list_from_str;
use selectors::parser::{AttrSelector, NamespaceConstraint};
-use string_cache::{Atom, Namespace, QualName};
-use url::UrlParser;
-
+use smallvec::VecLike;
use std::ascii::AsciiExt;
use std::borrow::{Cow, ToOwned};
use std::cell::{Ref, RefMut};
use std::default::Default;
use std::mem;
use std::sync::Arc;
+use string_cache::{Atom, Namespace, QualName};
+use style::legacy::{UnsignedIntegerAttribute, from_declaration};
+use style::properties::DeclaredValue;
+use style::properties::longhands::{self, background_image, border_spacing, font_family};
+use style::properties::{PropertyDeclarationBlock, PropertyDeclaration, parse_style_attribute};
+use style::values::CSSFloat;
+use style::values::specified::{self, CSSColor, CSSRGBA};
+use url::UrlParser;
+use util::geometry::Au;
+use util::str::{DOMString, LengthOrPercentageOrAuto};
#[dom_struct]
pub struct Element {
diff --git a/components/script/dom/errorevent.rs b/components/script/dom/errorevent.rs
index af28a44d0dc..4ba68e3e334 100644
--- a/components/script/dom/errorevent.rs
+++ b/components/script/dom/errorevent.rs
@@ -2,6 +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::cell::DOMRefCell;
use dom::bindings::codegen::Bindings::ErrorEventBinding;
use dom::bindings::codegen::Bindings::ErrorEventBinding::ErrorEventMethods;
use dom::bindings::codegen::Bindings::EventBinding::EventMethods;
@@ -10,16 +11,13 @@ use dom::bindings::error::Fallible;
use dom::bindings::global::GlobalRef;
use dom::bindings::js::{Root, MutHeapJSVal};
use dom::bindings::trace::JSTraceable;
-use js::jsapi::{JSContext, HandleValue};
-
use dom::bindings::utils::reflect_dom_object;
use dom::event::{Event, EventTypeId, EventBubbles, EventCancelable};
-use util::str::DOMString;
-
-use dom::bindings::cell::DOMRefCell;
+use js::jsapi::{JSContext, HandleValue};
use js::jsval::JSVal;
use std::borrow::ToOwned;
use std::cell::Cell;
+use util::str::DOMString;
#[dom_struct]
pub struct ErrorEvent {
diff --git a/components/script/dom/event.rs b/components/script/dom/event.rs
index 2cec78b48cc..c03324adb07 100644
--- a/components/script/dom/event.rs
+++ b/components/script/dom/event.rs
@@ -11,13 +11,11 @@ use dom::bindings::js::{JS, MutNullableHeap, Root};
use dom::bindings::utils::{Reflector, reflect_dom_object};
use dom::eventtarget::EventTarget;
use dom::uievent::{UIEventTypeId};
-use util::str::DOMString;
-
use std::borrow::ToOwned;
use std::cell::Cell;
use std::default::Default;
-
use time;
+use util::str::DOMString;
#[derive(JSTraceable, Copy, Clone, Debug, PartialEq, Eq)]
#[repr(u16)]
diff --git a/components/script/dom/eventdispatcher.rs b/components/script/dom/eventdispatcher.rs
index f8cb7652529..254b4edb9de 100644
--- a/components/script/dom/eventdispatcher.rs
+++ b/components/script/dom/eventdispatcher.rs
@@ -2,6 +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 devtools_traits::{StartedTimelineMarker, TimelineMarker, TimelineMarkerType};
use dom::bindings::callback::ExceptionHandling::Report;
use dom::bindings::codegen::Bindings::EventBinding::EventMethods;
use dom::bindings::codegen::InheritTypes::{EventTargetCast, NodeCast};
@@ -14,8 +15,6 @@ use dom::node::Node;
use dom::virtualmethods::vtable_for;
use dom::window::Window;
-use devtools_traits::{StartedTimelineMarker, TimelineMarker, TimelineMarkerType};
-
struct AutoDOMEventMarker {
window: Root<Window>,
marker: Option<StartedTimelineMarker>,
diff --git a/components/script/dom/eventtarget.rs b/components/script/dom/eventtarget.rs
index c6f3db73d8c..145ff83abbf 100644
--- a/components/script/dom/eventtarget.rs
+++ b/components/script/dom/eventtarget.rs
@@ -17,16 +17,14 @@ use dom::node::NodeTypeId;
use dom::virtualmethods::VirtualMethods;
use dom::workerglobalscope::WorkerGlobalScopeTypeId;
use dom::xmlhttprequesteventtarget::XMLHttpRequestEventTargetTypeId;
+use fnv::FnvHasher;
use js::jsapi::{CompileFunction, JS_GetFunctionObject};
use js::jsapi::{JSAutoCompartment, JSAutoRequest};
use js::jsapi::{JSContext, RootedFunction, HandleObject};
use js::rust::{AutoObjectVectorWrapper, CompileOptionsWrapper};
-use util::mem::HeapSizeOf;
-use util::str::DOMString;
-
-use fnv::FnvHasher;
use libc::{c_char, size_t};
use std::borrow::ToOwned;
+use std::collections::HashMap;
use std::collections::hash_map::Entry::{Occupied, Vacant};
use std::collections::hash_state::DefaultState;
use std::default::Default;
@@ -35,8 +33,8 @@ use std::intrinsics;
use std::ptr;
use std::rc::Rc;
use url::Url;
-
-use std::collections::HashMap;
+use util::mem::HeapSizeOf;
+use util::str::DOMString;
pub type EventHandler = EventHandlerNonNull;
diff --git a/components/script/dom/formdata.rs b/components/script/dom/formdata.rs
index 8631cefbd4a..d5dca833e17 100644
--- a/components/script/dom/formdata.rs
+++ b/components/script/dom/formdata.rs
@@ -15,11 +15,10 @@ use dom::bindings::utils::{Reflector, reflect_dom_object};
use dom::blob::Blob;
use dom::file::File;
use dom::htmlformelement::HTMLFormElement;
-use util::str::DOMString;
-
use std::borrow::ToOwned;
use std::collections::HashMap;
use std::collections::hash_map::Entry::{Occupied, Vacant};
+use util::str::DOMString;
#[derive(JSTraceable, Clone)]
#[must_root]
diff --git a/components/script/dom/htmlanchorelement.rs b/components/script/dom/htmlanchorelement.rs
index ebfd1c4deb0..20e40be62b9 100644
--- a/components/script/dom/htmlanchorelement.rs
+++ b/components/script/dom/htmlanchorelement.rs
@@ -22,14 +22,11 @@ use dom::eventtarget::{EventTarget, EventTargetTypeId};
use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
use dom::node::{Node, NodeTypeId, document_from_node, window_from_node};
use dom::virtualmethods::VirtualMethods;
-
-use util::str::DOMString;
-
use num::ToPrimitive;
+use std::default::Default;
use string_cache::Atom;
use url::UrlParser;
-
-use std::default::Default;
+use util::str::DOMString;
#[dom_struct]
pub struct HTMLAnchorElement {
diff --git a/components/script/dom/htmlappletelement.rs b/components/script/dom/htmlappletelement.rs
index 988aa36e9ee..e865300fcc6 100644
--- a/components/script/dom/htmlappletelement.rs
+++ b/components/script/dom/htmlappletelement.rs
@@ -2,10 +2,9 @@
* 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::attr::AttrValue;
use dom::bindings::codegen::Bindings::HTMLAppletElementBinding;
use dom::bindings::codegen::Bindings::HTMLAppletElementBinding::HTMLAppletElementMethods;
-
-use dom::attr::AttrValue;
use dom::bindings::codegen::InheritTypes::HTMLAppletElementDerived;
use dom::bindings::codegen::InheritTypes::HTMLElementCast;
use dom::bindings::js::Root;
@@ -15,7 +14,6 @@ use dom::eventtarget::{EventTarget, EventTargetTypeId};
use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
use dom::node::{Node, NodeTypeId};
use dom::virtualmethods::VirtualMethods;
-
use string_cache::Atom;
use util::str::DOMString;
diff --git a/components/script/dom/htmlareaelement.rs b/components/script/dom/htmlareaelement.rs
index 02bd899c86c..caea7badf52 100644
--- a/components/script/dom/htmlareaelement.rs
+++ b/components/script/dom/htmlareaelement.rs
@@ -16,7 +16,6 @@ use dom::eventtarget::{EventTarget, EventTargetTypeId};
use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
use dom::node::{Node, NodeTypeId};
use dom::virtualmethods::VirtualMethods;
-
use std::default::Default;
use string_cache::Atom;
use util::str::DOMString;
diff --git a/components/script/dom/htmlbaseelement.rs b/components/script/dom/htmlbaseelement.rs
index 62db191aa05..b67ec9a9381 100644
--- a/components/script/dom/htmlbaseelement.rs
+++ b/components/script/dom/htmlbaseelement.rs
@@ -14,9 +14,8 @@ use dom::eventtarget::{EventTarget, EventTargetTypeId};
use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
use dom::node::{Node, NodeTypeId, document_from_node};
use dom::virtualmethods::VirtualMethods;
-use util::str::DOMString;
-
use url::{Url, UrlParser};
+use util::str::DOMString;
#[dom_struct]
pub struct HTMLBaseElement {
diff --git a/components/script/dom/htmlbodyelement.rs b/components/script/dom/htmlbodyelement.rs
index a09825574a4..7b069f93f5a 100644
--- a/components/script/dom/htmlbodyelement.rs
+++ b/components/script/dom/htmlbodyelement.rs
@@ -2,6 +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 cssparser::RGBA;
use dom::attr::Attr;
use dom::bindings::cell::DOMRefCell;
use dom::bindings::codegen::Bindings::EventHandlerBinding::EventHandlerNonNull;
@@ -19,15 +20,12 @@ use dom::node::{Node, NodeTypeId, window_from_node, document_from_node};
use dom::virtualmethods::VirtualMethods;
use msg::constellation_msg::ConstellationChan;
use msg::constellation_msg::Msg as ConstellationMsg;
-
-use cssparser::RGBA;
-use url::{Url, UrlParser};
-use util::str::{self, DOMString};
-
use std::borrow::ToOwned;
use std::cell::Cell;
use std::rc::Rc;
use time;
+use url::{Url, UrlParser};
+use util::str::{self, DOMString};
/// How long we should wait before performing the initial reflow after `<body>` is parsed, in
/// nanoseconds.
diff --git a/components/script/dom/htmlbuttonelement.rs b/components/script/dom/htmlbuttonelement.rs
index 58d65c13ab5..ccbc409666b 100644
--- a/components/script/dom/htmlbuttonelement.rs
+++ b/components/script/dom/htmlbuttonelement.rs
@@ -19,7 +19,6 @@ use dom::htmlformelement::{SubmittedFrom};
use dom::node::{Node, NodeTypeId, document_from_node, window_from_node};
use dom::validitystate::ValidityState;
use dom::virtualmethods::VirtualMethods;
-
use std::ascii::AsciiExt;
use std::borrow::ToOwned;
use std::cell::Cell;
diff --git a/components/script/dom/htmlcanvaselement.rs b/components/script/dom/htmlcanvaselement.rs
index 123cf6b5e32..908baa2e5aa 100644
--- a/components/script/dom/htmlcanvaselement.rs
+++ b/components/script/dom/htmlcanvaselement.rs
@@ -2,6 +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 canvas_traits::CanvasMsg;
use dom::attr::Attr;
use dom::bindings::codegen::Bindings::HTMLCanvasElementBinding;
use dom::bindings::codegen::Bindings::HTMLCanvasElementBinding::HTMLCanvasElementMethods;
@@ -20,17 +21,13 @@ use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
use dom::node::{Node, NodeTypeId, window_from_node};
use dom::virtualmethods::VirtualMethods;
use dom::webglrenderingcontext::{WebGLRenderingContext, LayoutCanvasWebGLRenderingContextHelpers};
-
-use canvas_traits::CanvasMsg;
+use euclid::size::Size2D;
use ipc_channel::ipc::IpcSender;
use js::jsapi::{JSContext, HandleValue};
use offscreen_gl_context::GLContextAttributes;
-use util::str::{DOMString, parse_unsigned_integer};
-
-use euclid::size::Size2D;
-
use std::cell::Cell;
use std::default::Default;
+use util::str::{DOMString, parse_unsigned_integer};
const DEFAULT_WIDTH: u32 = 300;
const DEFAULT_HEIGHT: u32 = 150;
diff --git a/components/script/dom/htmlcollection.rs b/components/script/dom/htmlcollection.rs
index b217151331a..40bc1f5c97a 100644
--- a/components/script/dom/htmlcollection.rs
+++ b/components/script/dom/htmlcollection.rs
@@ -12,10 +12,9 @@ use dom::bindings::utils::{namespace_from_domstring, Reflector, reflect_dom_obje
use dom::element::Element;
use dom::node::{Node, TreeIterator};
use dom::window::Window;
-use util::str::{DOMString, split_html_space_chars};
-
use std::ascii::AsciiExt;
use string_cache::{Atom, Namespace};
+use util::str::{DOMString, split_html_space_chars};
pub trait CollectionFilter : JSTraceable {
fn filter<'a>(&self, elem: &'a Element, root: &'a Node) -> bool;
diff --git a/components/script/dom/htmldialogelement.rs b/components/script/dom/htmldialogelement.rs
index 5754f5af114..9b47a51e359 100644
--- a/components/script/dom/htmldialogelement.rs
+++ b/components/script/dom/htmldialogelement.rs
@@ -12,10 +12,8 @@ use dom::element::ElementTypeId;
use dom::eventtarget::{EventTarget, EventTargetTypeId};
use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
use dom::node::{Node, NodeTypeId};
-
-use util::str::DOMString;
-
use std::borrow::ToOwned;
+use util::str::DOMString;
#[dom_struct]
pub struct HTMLDialogElement {
diff --git a/components/script/dom/htmlelement.rs b/components/script/dom/htmlelement.rs
index 9a02a47dd0f..7256c201af5 100644
--- a/components/script/dom/htmlelement.rs
+++ b/components/script/dom/htmlelement.rs
@@ -26,16 +26,13 @@ use dom::htmlmediaelement::HTMLMediaElementTypeId;
use dom::htmltablecellelement::HTMLTableCellElementTypeId;
use dom::node::{Node, NodeTypeId, document_from_node, window_from_node, SEQUENTIALLY_FOCUSABLE};
use dom::virtualmethods::VirtualMethods;
-
use msg::constellation_msg::FocusType;
-use util::str::DOMString;
-
-use string_cache::Atom;
-
use std::borrow::ToOwned;
use std::default::Default;
use std::intrinsics;
use std::rc::Rc;
+use string_cache::Atom;
+use util::str::DOMString;
#[dom_struct]
pub struct HTMLElement {
diff --git a/components/script/dom/htmlfieldsetelement.rs b/components/script/dom/htmlfieldsetelement.rs
index d3f438b5862..f4a54f253d7 100644
--- a/components/script/dom/htmlfieldsetelement.rs
+++ b/components/script/dom/htmlfieldsetelement.rs
@@ -16,7 +16,6 @@ use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
use dom::node::{Node, NodeTypeId, window_from_node};
use dom::validitystate::ValidityState;
use dom::virtualmethods::VirtualMethods;
-
use util::str::{DOMString, StaticStringVec};
#[dom_struct]
diff --git a/components/script/dom/htmlfontelement.rs b/components/script/dom/htmlfontelement.rs
index bee1711916e..030d1638c7e 100644
--- a/components/script/dom/htmlfontelement.rs
+++ b/components/script/dom/htmlfontelement.rs
@@ -2,6 +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 cssparser::RGBA;
use dom::attr::{Attr, AttrValue};
use dom::bindings::cell::DOMRefCell;
use dom::bindings::codegen::Bindings::HTMLFontElementBinding;
@@ -14,12 +15,10 @@ use dom::eventtarget::{EventTarget, EventTargetTypeId};
use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
use dom::node::{Node, NodeTypeId};
use dom::virtualmethods::VirtualMethods;
+use std::cell::Cell;
use string_cache::Atom;
use util::str::{self, DOMString};
-use cssparser::RGBA;
-use std::cell::Cell;
-
#[dom_struct]
pub struct HTMLFontElement {
htmlelement: HTMLElement,
diff --git a/components/script/dom/htmlformelement.rs b/components/script/dom/htmlformelement.rs
index 22c2cad779c..5cdc1ce1be7 100644
--- a/components/script/dom/htmlformelement.rs
+++ b/components/script/dom/htmlformelement.rs
@@ -32,14 +32,13 @@ use hyper::method::Method;
use hyper::mime;
use msg::constellation_msg::LoadData;
use script_task::{ScriptChan, MainThreadScriptMsg};
+use std::borrow::ToOwned;
+use std::cell::Cell;
use string_cache::Atom;
use url::UrlParser;
use url::form_urlencoded::serialize;
use util::str::DOMString;
-use std::borrow::ToOwned;
-use std::cell::Cell;
-
#[dom_struct]
pub struct HTMLFormElement {
htmlelement: HTMLElement,
diff --git a/components/script/dom/htmliframeelement.rs b/components/script/dom/htmliframeelement.rs
index b925e1ffee4..546fb79b47f 100644
--- a/components/script/dom/htmliframeelement.rs
+++ b/components/script/dom/htmliframeelement.rs
@@ -24,21 +24,19 @@ use dom::node::{Node, NodeTypeId, window_from_node};
use dom::urlhelper::UrlHelper;
use dom::virtualmethods::VirtualMethods;
use dom::window::Window;
-use page::IterablePage;
-
+use js::jsapi::{RootedValue, JSAutoRequest, JSAutoCompartment};
+use js::jsval::UndefinedValue;
use msg::constellation_msg::IFrameSandboxState::{IFrameSandboxed, IFrameUnsandboxed};
use msg::constellation_msg::Msg as ConstellationMsg;
use msg::constellation_msg::{PipelineId, SubpageId, ConstellationChan, MozBrowserEvent, NavigationDirection};
-use string_cache::Atom;
-use util::prefs;
-use util::str::DOMString;
-
-use js::jsapi::{RootedValue, JSAutoRequest, JSAutoCompartment};
-use js::jsval::UndefinedValue;
+use page::IterablePage;
use std::ascii::AsciiExt;
use std::borrow::ToOwned;
use std::cell::Cell;
+use string_cache::Atom;
use url::{Url, UrlParser};
+use util::prefs;
+use util::str::DOMString;
use util::str::{self, LengthOrPercentageOrAuto};
pub fn mozbrowser_enabled() -> bool {
diff --git a/components/script/dom/htmlimageelement.rs b/components/script/dom/htmlimageelement.rs
index 146043d211f..a305b9ee91a 100644
--- a/components/script/dom/htmlimageelement.rs
+++ b/components/script/dom/htmlimageelement.rs
@@ -21,19 +21,17 @@ use dom::eventtarget::{EventTarget, EventTargetTypeId};
use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
use dom::node::{document_from_node, Node, NodeTypeId, NodeDamage, window_from_node};
use dom::virtualmethods::VirtualMethods;
-use script_task::ScriptTaskEventCategory::UpdateReplacedElement;
-use script_task::{Runnable, ScriptChan, CommonScriptMsg};
-use string_cache::Atom;
-use util::str::DOMString;
-
use ipc_channel::ipc;
use ipc_channel::router::ROUTER;
use net_traits::image::base::Image;
use net_traits::image_cache_task::{ImageResponder, ImageResponse};
-use url::{Url, UrlParser};
-
+use script_task::ScriptTaskEventCategory::UpdateReplacedElement;
+use script_task::{Runnable, ScriptChan, CommonScriptMsg};
use std::borrow::ToOwned;
use std::sync::Arc;
+use string_cache::Atom;
+use url::{Url, UrlParser};
+use util::str::DOMString;
#[dom_struct]
pub struct HTMLImageElement {
diff --git a/components/script/dom/htmlinputelement.rs b/components/script/dom/htmlinputelement.rs
index 51b9a3c54f0..766e3e7e0d5 100644
--- a/components/script/dom/htmlinputelement.rs
+++ b/components/script/dom/htmlinputelement.rs
@@ -27,16 +27,14 @@ use dom::node::{Node, NodeDamage, NodeTypeId};
use dom::node::{document_from_node, window_from_node};
use dom::virtualmethods::VirtualMethods;
use msg::constellation_msg::ConstellationChan;
+use std::borrow::ToOwned;
+use std::cell::Cell;
+use string_cache::Atom;
use textinput::KeyReaction::{TriggerDefaultAction, DispatchInput, Nothing, RedrawSelection};
use textinput::Lines::Single;
use textinput::{TextInput, TextPoint};
-
-use string_cache::Atom;
use util::str::DOMString;
-use std::borrow::ToOwned;
-use std::cell::Cell;
-
const DEFAULT_SUBMIT_VALUE: &'static str = "Submit";
const DEFAULT_RESET_VALUE: &'static str = "Reset";
diff --git a/components/script/dom/htmllinkelement.rs b/components/script/dom/htmllinkelement.rs
index 87303ae8131..907b70af3e3 100644
--- a/components/script/dom/htmllinkelement.rs
+++ b/components/script/dom/htmllinkelement.rs
@@ -26,14 +26,13 @@ use layout_interface::{LayoutChan, Msg};
use msg::constellation_msg::ConstellationChan;
use msg::constellation_msg::Msg as ConstellationMsg;
use script_traits::StylesheetLoadResponder;
-use style::media_queries::parse_media_query_list;
-use util::str::{DOMString, HTML_SPACE_CHARACTERS};
-
use std::ascii::AsciiExt;
use std::borrow::ToOwned;
use std::default::Default;
use string_cache::Atom;
+use style::media_queries::parse_media_query_list;
use url::UrlParser;
+use util::str::{DOMString, HTML_SPACE_CHARACTERS};
#[dom_struct]
pub struct HTMLLinkElement {
diff --git a/components/script/dom/htmlobjectelement.rs b/components/script/dom/htmlobjectelement.rs
index 04c5228072b..ac063d12f00 100644
--- a/components/script/dom/htmlobjectelement.rs
+++ b/components/script/dom/htmlobjectelement.rs
@@ -16,7 +16,6 @@ use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
use dom::node::{Node, NodeTypeId, window_from_node};
use dom::validitystate::ValidityState;
use dom::virtualmethods::VirtualMethods;
-
use net_traits::image::base::Image;
use std::sync::Arc;
use util::str::DOMString;
diff --git a/components/script/dom/htmloptgroupelement.rs b/components/script/dom/htmloptgroupelement.rs
index 3765c8fcb43..6a139a03c34 100644
--- a/components/script/dom/htmloptgroupelement.rs
+++ b/components/script/dom/htmloptgroupelement.rs
@@ -14,7 +14,6 @@ use dom::eventtarget::{EventTarget, EventTargetTypeId};
use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
use dom::node::{Node, NodeTypeId};
use dom::virtualmethods::VirtualMethods;
-
use util::str::DOMString;
#[dom_struct]
diff --git a/components/script/dom/htmloptionelement.rs b/components/script/dom/htmloptionelement.rs
index b9855f84eb7..132de2335b2 100644
--- a/components/script/dom/htmloptionelement.rs
+++ b/components/script/dom/htmloptionelement.rs
@@ -17,7 +17,6 @@ use dom::eventtarget::{EventTarget, EventTargetTypeId};
use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
use dom::node::{Node, NodeTypeId};
use dom::virtualmethods::VirtualMethods;
-
use util::str::{DOMString, split_html_space_chars};
#[dom_struct]
diff --git a/components/script/dom/htmlscriptelement.rs b/components/script/dom/htmlscriptelement.rs
index 815ef46ea64..5dae52c2b47 100644
--- a/components/script/dom/htmlscriptelement.rs
+++ b/components/script/dom/htmlscriptelement.rs
@@ -2,8 +2,6 @@
* 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 std::ascii::AsciiExt;
-
use document_loader::LoadType;
use dom::attr::Attr;
use dom::bindings::cell::DOMRefCell;
@@ -29,19 +27,19 @@ use dom::node::{ChildrenMutation, CloneChildrenFlag, Node};
use dom::node::{NodeTypeId, document_from_node, window_from_node};
use dom::virtualmethods::VirtualMethods;
use dom::window::ScriptHelpers;
-use js::jsapi::RootedValue;
-use js::jsval::UndefinedValue;
-use network_listener::{NetworkListener, PreInvoke};
-use script_task::ScriptTaskEventCategory::ScriptEvent;
-use script_task::{ScriptChan, Runnable, CommonScriptMsg};
-
use encoding::all::UTF_8;
use encoding::label::encoding_from_whatwg_label;
use encoding::types::{Encoding, EncodingRef, DecoderTrap};
use html5ever::tree_builder::NextParserState;
use ipc_channel::ipc;
use ipc_channel::router::ROUTER;
+use js::jsapi::RootedValue;
+use js::jsval::UndefinedValue;
use net_traits::{Metadata, AsyncResponseListener, AsyncResponseTarget};
+use network_listener::{NetworkListener, PreInvoke};
+use script_task::ScriptTaskEventCategory::ScriptEvent;
+use script_task::{ScriptChan, Runnable, CommonScriptMsg};
+use std::ascii::AsciiExt;
use std::cell::{RefCell, Cell};
use std::mem;
use std::sync::{Arc, Mutex};
diff --git a/components/script/dom/htmlselectelement.rs b/components/script/dom/htmlselectelement.rs
index b71760fdc09..c4a503cc404 100644
--- a/components/script/dom/htmlselectelement.rs
+++ b/components/script/dom/htmlselectelement.rs
@@ -17,12 +17,10 @@ use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
use dom::node::{Node, NodeTypeId, window_from_node};
use dom::validitystate::ValidityState;
use dom::virtualmethods::VirtualMethods;
-
+use std::borrow::ToOwned;
use string_cache::Atom;
use util::str::DOMString;
-use std::borrow::ToOwned;
-
#[dom_struct]
pub struct HTMLSelectElement {
htmlelement: HTMLElement
diff --git a/components/script/dom/htmltablecellelement.rs b/components/script/dom/htmltablecellelement.rs
index 15c1acf3737..2705240edbb 100644
--- a/components/script/dom/htmltablecellelement.rs
+++ b/components/script/dom/htmltablecellelement.rs
@@ -2,6 +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 cssparser::RGBA;
use dom::attr::{Attr, AttrValue};
use dom::bindings::codegen::Bindings::HTMLTableCellElementBinding::HTMLTableCellElementMethods;
use dom::bindings::codegen::InheritTypes::{HTMLElementCast, HTMLTableCellElementDerived};
@@ -11,14 +12,10 @@ use dom::eventtarget::{EventTarget, EventTargetTypeId};
use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
use dom::node::NodeTypeId;
use dom::virtualmethods::VirtualMethods;
-
-use util::str::{self, DOMString, LengthOrPercentageOrAuto};
-
-use cssparser::RGBA;
-use string_cache::Atom;
-
use std::cell::Cell;
use std::cmp::max;
+use string_cache::Atom;
+use util::str::{self, DOMString, LengthOrPercentageOrAuto};
const DEFAULT_COLSPAN: u32 = 1;
diff --git a/components/script/dom/htmltableelement.rs b/components/script/dom/htmltableelement.rs
index e5788bd0e56..6a63223d09d 100644
--- a/components/script/dom/htmltableelement.rs
+++ b/components/script/dom/htmltableelement.rs
@@ -2,6 +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 cssparser::RGBA;
use dom::attr::{Attr, AttrValue};
use dom::bindings::codegen::Bindings::HTMLTableElementBinding;
use dom::bindings::codegen::Bindings::HTMLTableElementBinding::HTMLTableElementMethods;
@@ -18,13 +19,9 @@ use dom::htmltablecaptionelement::HTMLTableCaptionElement;
use dom::htmltablesectionelement::HTMLTableSectionElement;
use dom::node::{Node, NodeTypeId, document_from_node};
use dom::virtualmethods::VirtualMethods;
-
-use util::str::{self, DOMString, LengthOrPercentageOrAuto};
-
-use cssparser::RGBA;
-use string_cache::Atom;
-
use std::cell::Cell;
+use string_cache::Atom;
+use util::str::{self, DOMString, LengthOrPercentageOrAuto};
#[dom_struct]
pub struct HTMLTableElement {
diff --git a/components/script/dom/htmltablerowelement.rs b/components/script/dom/htmltablerowelement.rs
index 93a4fddc094..5c03a8e045b 100644
--- a/components/script/dom/htmltablerowelement.rs
+++ b/components/script/dom/htmltablerowelement.rs
@@ -2,6 +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 cssparser::RGBA;
use dom::attr::Attr;
use dom::bindings::codegen::Bindings::HTMLTableRowElementBinding;
use dom::bindings::codegen::InheritTypes::{HTMLElementCast, HTMLTableRowElementDerived};
@@ -12,8 +13,6 @@ use dom::eventtarget::{EventTarget, EventTargetTypeId};
use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
use dom::node::{Node, NodeTypeId};
use dom::virtualmethods::VirtualMethods;
-
-use cssparser::RGBA;
use std::cell::Cell;
use util::str::{self, DOMString};
diff --git a/components/script/dom/htmltablesectionelement.rs b/components/script/dom/htmltablesectionelement.rs
index 137d25541fa..8c1eddaa389 100644
--- a/components/script/dom/htmltablesectionelement.rs
+++ b/components/script/dom/htmltablesectionelement.rs
@@ -2,6 +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 cssparser::RGBA;
use dom::attr::Attr;
use dom::bindings::codegen::Bindings::HTMLTableSectionElementBinding;
use dom::bindings::codegen::InheritTypes::{HTMLElementCast, HTMLTableSectionElementDerived};
@@ -12,8 +13,6 @@ use dom::eventtarget::{EventTarget, EventTargetTypeId};
use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
use dom::node::{Node, NodeTypeId};
use dom::virtualmethods::VirtualMethods;
-
-use cssparser::RGBA;
use std::cell::Cell;
use util::str::{self, DOMString};
diff --git a/components/script/dom/htmltextareaelement.rs b/components/script/dom/htmltextareaelement.rs
index fd1713057ee..4234d71b86f 100644
--- a/components/script/dom/htmltextareaelement.rs
+++ b/components/script/dom/htmltextareaelement.rs
@@ -27,13 +27,11 @@ use dom::virtualmethods::VirtualMethods;
use msg::constellation_msg::ConstellationChan;
use script_task::ScriptTaskEventCategory::InputEvent;
use script_task::{Runnable, CommonScriptMsg};
-use textinput::{TextInput, Lines, KeyReaction};
-
-use string_cache::Atom;
-use util::str::DOMString;
-
use std::borrow::ToOwned;
use std::cell::Cell;
+use string_cache::Atom;
+use textinput::{TextInput, Lines, KeyReaction};
+use util::str::DOMString;
#[dom_struct]
pub struct HTMLTextAreaElement {
diff --git a/components/script/dom/keyboardevent.rs b/components/script/dom/keyboardevent.rs
index 1c8b6255aaa..8aca9b33ae8 100644
--- a/components/script/dom/keyboardevent.rs
+++ b/components/script/dom/keyboardevent.rs
@@ -16,10 +16,9 @@ use dom::window::Window;
use msg::constellation_msg;
use msg::constellation_msg::{Key, KeyModifiers};
use msg::constellation_msg::{SHIFT, CONTROL, ALT, SUPER};
-use util::str::DOMString;
-
use std::borrow::ToOwned;
use std::cell::{RefCell, Cell};
+use util::str::DOMString;
no_jsmanaged_fields!(Key);
diff --git a/components/script/dom/location.rs b/components/script/dom/location.rs
index 8b5cf37965e..488fbc973a3 100644
--- a/components/script/dom/location.rs
+++ b/components/script/dom/location.rs
@@ -11,7 +11,6 @@ use dom::bindings::str::USVString;
use dom::bindings::utils::{Reflector, reflect_dom_object};
use dom::urlhelper::UrlHelper;
use dom::window::Window;
-
use url::{Url, UrlParser};
use util::str::DOMString;
diff --git a/components/script/dom/messageevent.rs b/components/script/dom/messageevent.rs
index 57b185464bb..895ebfcf1a9 100644
--- a/components/script/dom/messageevent.rs
+++ b/components/script/dom/messageevent.rs
@@ -12,14 +12,11 @@ use dom::bindings::js::Root;
use dom::bindings::utils::reflect_dom_object;
use dom::event::{Event, EventTypeId};
use dom::eventtarget::EventTarget;
-
-use util::str::DOMString;
-
use js::jsapi::{JSContext, Heap, HandleValue};
use js::jsval::JSVal;
-
use std::borrow::ToOwned;
use std::default::Default;
+use util::str::DOMString;
#[dom_struct]
pub struct MessageEvent {
diff --git a/components/script/dom/namednodemap.rs b/components/script/dom/namednodemap.rs
index 6989706f64f..485cccf6ab5 100644
--- a/components/script/dom/namednodemap.rs
+++ b/components/script/dom/namednodemap.rs
@@ -11,9 +11,8 @@ use dom::bindings::js::{JS, Root};
use dom::bindings::utils::{namespace_from_domstring, Reflector, reflect_dom_object};
use dom::element::Element;
use dom::window::Window;
-use util::str::DOMString;
-
use string_cache::Atom;
+use util::str::DOMString;
#[dom_struct]
pub struct NamedNodeMap {
diff --git a/components/script/dom/navigatorinfo.rs b/components/script/dom/navigatorinfo.rs
index d47b02f21dd..a3857f29844 100644
--- a/components/script/dom/navigatorinfo.rs
+++ b/components/script/dom/navigatorinfo.rs
@@ -2,11 +2,10 @@
* 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 std::borrow::ToOwned;
use util::opts;
use util::str::DOMString;
-use std::borrow::ToOwned;
-
pub fn Product() -> DOMString {
"Gecko".to_owned()
}
diff --git a/components/script/dom/node.rs b/components/script/dom/node.rs
index ae725d3d856..c93c5bbe65b 100644
--- a/components/script/dom/node.rs
+++ b/components/script/dom/node.rs
@@ -4,6 +4,7 @@
//! The core DOM types. Defines the basic DOM hierarchy as well as all the HTML elements.
+use core::nonzero::NonZero;
use devtools_traits::NodeInfo;
use document_loader::DocumentLoader;
use dom::attr::Attr;
@@ -46,21 +47,15 @@ use dom::text::Text;
use dom::virtualmethods::{VirtualMethods, vtable_for};
use dom::window::Window;
use euclid::rect::Rect;
+use js::jsapi::{JSContext, JSObject, JSRuntime};
use layout_interface::{LayoutChan, Msg};
+use libc;
+use libc::{uintptr_t, c_void};
use parse::html::parse_html_fragment;
use script_traits::UntrustedNodeAddress;
use selectors::matching::matches;
use selectors::parser::Selector;
use selectors::parser::parse_author_origin_selector_list_from_str;
-use style::properties::ComputedValues;
-use util::geometry::Au;
-use util::str::DOMString;
-use util::task_state;
-
-use core::nonzero::NonZero;
-use js::jsapi::{JSContext, JSObject, JSRuntime};
-use libc;
-use libc::{uintptr_t, c_void};
use std::borrow::ToOwned;
use std::cell::{Cell, RefCell, Ref, RefMut};
use std::default::Default;
@@ -69,6 +64,10 @@ use std::mem;
use std::slice::ref_slice;
use std::sync::Arc;
use string_cache::{Atom, Namespace, QualName};
+use style::properties::ComputedValues;
+use util::geometry::Au;
+use util::str::DOMString;
+use util::task_state;
use uuid;
//
diff --git a/components/script/dom/nodeiterator.rs b/components/script/dom/nodeiterator.rs
index e81262de32f..34ec3f6c658 100644
--- a/components/script/dom/nodeiterator.rs
+++ b/components/script/dom/nodeiterator.rs
@@ -14,7 +14,6 @@ use dom::bindings::js::{JS, MutHeap, Root};
use dom::bindings::utils::{Reflector, reflect_dom_object};
use dom::document::Document;
use dom::node::Node;
-
use std::cell::Cell;
use std::rc::Rc;
diff --git a/components/script/dom/nodelist.rs b/components/script/dom/nodelist.rs
index 3e2bc5145c6..d997cad2558 100644
--- a/components/script/dom/nodelist.rs
+++ b/components/script/dom/nodelist.rs
@@ -10,7 +10,6 @@ use dom::bindings::js::{JS, MutNullableHeap, Root};
use dom::bindings::utils::{Reflector, reflect_dom_object};
use dom::node::{ChildrenMutation, Node};
use dom::window::Window;
-
use std::cell::Cell;
#[derive(JSTraceable, HeapSizeOf)]
diff --git a/components/script/dom/range.rs b/components/script/dom/range.rs
index 1b29c7333da..3373d129169 100644
--- a/components/script/dom/range.rs
+++ b/components/script/dom/range.rs
@@ -20,7 +20,6 @@ use dom::characterdata::CharacterDataTypeId;
use dom::document::Document;
use dom::documentfragment::DocumentFragment;
use dom::node::{Node, NodeTypeId};
-
use std::cell::RefCell;
use std::cmp::{Ord, Ordering, PartialEq, PartialOrd};
use std::rc::Rc;
diff --git a/components/script/dom/servohtmlparser.rs b/components/script/dom/servohtmlparser.rs
index 75d060ddf29..b5eaa321473 100644
--- a/components/script/dom/servohtmlparser.rs
+++ b/components/script/dom/servohtmlparser.rs
@@ -18,13 +18,6 @@ use dom::document::Document;
use dom::node::{window_from_node, Node};
use dom::text::Text;
use dom::window::Window;
-use network_listener::PreInvoke;
-use parse::Parser;
-use script_task::{ScriptTask, ScriptChan};
-
-use msg::constellation_msg::{PipelineId, SubpageId};
-use net_traits::{Metadata, AsyncResponseListener};
-
use encoding::all::UTF_8;
use encoding::types::{Encoding, DecoderTrap};
use html5ever::tokenizer;
@@ -33,6 +26,11 @@ use html5ever::tree_builder::{NodeOrText, TreeBuilder, TreeBuilderOpts};
use hyper::header::ContentType;
use hyper::mime::{Mime, TopLevel, SubLevel};
use js::jsapi::JSTracer;
+use msg::constellation_msg::{PipelineId, SubpageId};
+use net_traits::{Metadata, AsyncResponseListener};
+use network_listener::PreInvoke;
+use parse::Parser;
+use script_task::{ScriptTask, ScriptChan};
use std::cell::{Cell, RefCell};
use std::default::Default;
use url::Url;
diff --git a/components/script/dom/storageevent.rs b/components/script/dom/storageevent.rs
index 3b623390e46..db5b8a0f608 100644
--- a/components/script/dom/storageevent.rs
+++ b/components/script/dom/storageevent.rs
@@ -5,7 +5,6 @@
use dom::bindings::codegen::Bindings::EventBinding::{EventMethods};
use dom::bindings::codegen::Bindings::StorageEventBinding;
use dom::bindings::codegen::Bindings::StorageEventBinding::{StorageEventMethods};
-
use dom::bindings::codegen::InheritTypes::{EventCast};
use dom::bindings::error::Fallible;
use dom::bindings::global::GlobalRef;
diff --git a/components/script/dom/testbinding.rs b/components/script/dom/testbinding.rs
index e050f799c8f..93285b1ea35 100644
--- a/components/script/dom/testbinding.rs
+++ b/components/script/dom/testbinding.rs
@@ -20,14 +20,12 @@ use dom::bindings::num::Finite;
use dom::bindings::str::{ByteString, USVString};
use dom::bindings::utils::Reflector;
use dom::blob::Blob;
-use util::str::DOMString;
-
use js::jsapi::{JSContext, JSObject, HandleValue};
use js::jsval::{JSVal, NullValue};
-
use std::borrow::ToOwned;
use std::ptr;
use std::rc::Rc;
+use util::str::DOMString;
#[dom_struct]
pub struct TestBinding {
diff --git a/components/script/dom/textdecoder.rs b/components/script/dom/textdecoder.rs
index e058562bebb..cecb84a73ac 100644
--- a/components/script/dom/textdecoder.rs
+++ b/components/script/dom/textdecoder.rs
@@ -10,18 +10,15 @@ use dom::bindings::js::Root;
use dom::bindings::str::USVString;
use dom::bindings::trace::JSTraceable;
use dom::bindings::utils::{Reflector, reflect_dom_object};
-
-use util::str::DOMString;
-
use encoding::Encoding;
use encoding::label::encoding_from_whatwg_label;
use encoding::types::{EncodingRef, DecoderTrap};
use js::jsapi::JS_GetObjectAsArrayBufferView;
use js::jsapi::{JSContext, JSObject};
-
use std::borrow::ToOwned;
use std::ptr;
use std::slice;
+use util::str::DOMString;
#[dom_struct]
pub struct TextDecoder {
diff --git a/components/script/dom/textencoder.rs b/components/script/dom/textencoder.rs
index 7144ad77330..8e0e5daa55e 100644
--- a/components/script/dom/textencoder.rs
+++ b/components/script/dom/textencoder.rs
@@ -10,19 +10,15 @@ use dom::bindings::global::GlobalRef;
use dom::bindings::js::Root;
use dom::bindings::str::USVString;
use dom::bindings::utils::{Reflector, reflect_dom_object};
-
-use util::str::DOMString;
-
-use std::borrow::ToOwned;
-use std::ptr;
-
use encoding::label::encoding_from_whatwg_label;
use encoding::types::EncodingRef;
use encoding::{Encoding, EncoderTrap};
-
use js::jsapi::{JSContext, JSObject};
use js::jsapi::{JS_NewUint8Array, JS_GetUint8ArrayData};
use libc::uint8_t;
+use std::borrow::ToOwned;
+use std::ptr;
+use util::str::DOMString;
#[dom_struct]
pub struct TextEncoder {
diff --git a/components/script/dom/uievent.rs b/components/script/dom/uievent.rs
index ff9c2beab6b..28434e0a9f8 100644
--- a/components/script/dom/uievent.rs
+++ b/components/script/dom/uievent.rs
@@ -10,14 +10,12 @@ use dom::bindings::error::Fallible;
use dom::bindings::global::GlobalRef;
use dom::bindings::js::Root;
use dom::bindings::js::{JS, MutNullableHeap, RootedReference};
-
use dom::bindings::utils::reflect_dom_object;
use dom::event::{Event, EventTypeId, EventBubbles, EventCancelable};
use dom::window::Window;
-use util::str::DOMString;
-
use std::cell::Cell;
use std::default::Default;
+use util::str::DOMString;
#[derive(JSTraceable, PartialEq, HeapSizeOf)]
pub enum UIEventTypeId {
diff --git a/components/script/dom/url.rs b/components/script/dom/url.rs
index f34428d4bbb..4a3bb19a776 100644
--- a/components/script/dom/url.rs
+++ b/components/script/dom/url.rs
@@ -9,12 +9,10 @@ use dom::bindings::js::Root;
use dom::bindings::str::USVString;
use dom::bindings::utils::{Reflector, reflect_dom_object};
use dom::urlhelper::UrlHelper;
-
-use url::{Host, ParseResult, Url, UrlParser};
-use util::str::DOMString;
-
use std::borrow::ToOwned;
use std::cell::RefCell;
+use url::{Host, ParseResult, Url, UrlParser};
+use util::str::DOMString;
// https://url.spec.whatwg.org/#url
#[dom_struct]
diff --git a/components/script/dom/urlhelper.rs b/components/script/dom/urlhelper.rs
index 684d6666e0c..61d81890fdf 100644
--- a/components/script/dom/urlhelper.rs
+++ b/components/script/dom/urlhelper.rs
@@ -3,13 +3,10 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use dom::bindings::str::USVString;
-
-use url::{Url, UrlParser, SchemeData};
-
-use url::urlutils::{UrlUtils, UrlUtilsWrapper};
-
use std::borrow::ToOwned;
use std::fmt::Write;
+use url::urlutils::{UrlUtils, UrlUtilsWrapper};
+use url::{Url, UrlParser, SchemeData};
#[derive(HeapSizeOf)]
pub struct UrlHelper;
diff --git a/components/script/dom/urlsearchparams.rs b/components/script/dom/urlsearchparams.rs
index 3c5b7800434..37fa56da04b 100644
--- a/components/script/dom/urlsearchparams.rs
+++ b/components/script/dom/urlsearchparams.rs
@@ -11,7 +11,6 @@ use dom::bindings::error::Fallible;
use dom::bindings::global::GlobalRef;
use dom::bindings::js::Root;
use dom::bindings::utils::{Reflector, reflect_dom_object};
-
use encoding::types::EncodingRef;
use url::form_urlencoded::{parse, serialize_with_encoding};
use util::str::DOMString;
diff --git a/components/script/dom/virtualmethods.rs b/components/script/dom/virtualmethods.rs
index 135670cbbc3..137843fb5ff 100644
--- a/components/script/dom/virtualmethods.rs
+++ b/components/script/dom/virtualmethods.rs
@@ -39,10 +39,9 @@ use dom::event::Event;
use dom::htmlelement::HTMLElementTypeId;
use dom::node::NodeTypeId;
use dom::node::{ChildrenMutation, CloneChildrenFlag, Node};
-
+use string_cache::Atom;
use util::str::DOMString;
-use string_cache::Atom;
/// Trait to allow DOM nodes to opt-in to overriding (or adding to) common
/// behaviours. Replicates the effect of C++ virtual methods.
diff --git a/components/script/dom/webglbuffer.rs b/components/script/dom/webglbuffer.rs
index e5fc0295a90..05f8d7263bb 100644
--- a/components/script/dom/webglbuffer.rs
+++ b/components/script/dom/webglbuffer.rs
@@ -3,13 +3,12 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
// https://www.khronos.org/registry/webgl/specs/latest/1.0/webgl.idl
+use canvas_traits::{CanvasMsg, CanvasWebGLMsg, WebGLError, WebGLResult};
use dom::bindings::codegen::Bindings::WebGLBufferBinding;
use dom::bindings::global::GlobalRef;
use dom::bindings::js::Root;
use dom::bindings::utils::reflect_dom_object;
use dom::webglobject::WebGLObject;
-
-use canvas_traits::{CanvasMsg, CanvasWebGLMsg, WebGLError, WebGLResult};
use ipc_channel::ipc::{self, IpcSender};
use std::cell::Cell;
diff --git a/components/script/dom/webglframebuffer.rs b/components/script/dom/webglframebuffer.rs
index c387fc2d711..a3a9781fbfb 100644
--- a/components/script/dom/webglframebuffer.rs
+++ b/components/script/dom/webglframebuffer.rs
@@ -3,13 +3,12 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
// https://www.khronos.org/registry/webgl/specs/latest/1.0/webgl.idl
+use canvas_traits::{CanvasMsg, CanvasWebGLMsg, WebGLFramebufferBindingRequest};
use dom::bindings::codegen::Bindings::WebGLFramebufferBinding;
use dom::bindings::global::GlobalRef;
use dom::bindings::js::Root;
use dom::bindings::utils::reflect_dom_object;
use dom::webglobject::WebGLObject;
-
-use canvas_traits::{CanvasMsg, CanvasWebGLMsg, WebGLFramebufferBindingRequest};
use ipc_channel::ipc::{self, IpcSender};
use std::cell::Cell;
diff --git a/components/script/dom/webglprogram.rs b/components/script/dom/webglprogram.rs
index 2a1a0cfc6a5..231a16017c0 100644
--- a/components/script/dom/webglprogram.rs
+++ b/components/script/dom/webglprogram.rs
@@ -3,17 +3,15 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
// https://www.khronos.org/registry/webgl/specs/latest/1.0/webgl.idl
+use canvas_traits::{CanvasMsg, CanvasWebGLMsg, WebGLResult, WebGLError};
use dom::bindings::codegen::Bindings::WebGLProgramBinding;
+use dom::bindings::codegen::Bindings::WebGLRenderingContextBinding::WebGLRenderingContextConstants as constants;
use dom::bindings::global::GlobalRef;
use dom::bindings::js::{JS, MutNullableHeap, Root};
use dom::bindings::utils::reflect_dom_object;
use dom::webglobject::WebGLObject;
use dom::webglrenderingcontext::MAX_UNIFORM_AND_ATTRIBUTE_LEN;
use dom::webglshader::WebGLShader;
-
-use dom::bindings::codegen::Bindings::WebGLRenderingContextBinding::WebGLRenderingContextConstants as constants;
-
-use canvas_traits::{CanvasMsg, CanvasWebGLMsg, WebGLResult, WebGLError};
use ipc_channel::ipc::{self, IpcSender};
use std::cell::Cell;
diff --git a/components/script/dom/webglrenderbuffer.rs b/components/script/dom/webglrenderbuffer.rs
index a8d963894b6..b01bcce896a 100644
--- a/components/script/dom/webglrenderbuffer.rs
+++ b/components/script/dom/webglrenderbuffer.rs
@@ -3,13 +3,12 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
// https://www.khronos.org/registry/webgl/specs/latest/1.0/webgl.idl
+use canvas_traits::{CanvasMsg, CanvasWebGLMsg};
use dom::bindings::codegen::Bindings::WebGLRenderbufferBinding;
use dom::bindings::global::GlobalRef;
use dom::bindings::js::Root;
use dom::bindings::utils::reflect_dom_object;
use dom::webglobject::WebGLObject;
-
-use canvas_traits::{CanvasMsg, CanvasWebGLMsg};
use ipc_channel::ipc::{self, IpcSender};
use std::cell::Cell;
diff --git a/components/script/dom/webglrenderingcontext.rs b/components/script/dom/webglrenderingcontext.rs
index 64e59cd4ee7..da77c58a565 100644
--- a/components/script/dom/webglrenderingcontext.rs
+++ b/components/script/dom/webglrenderingcontext.rs
@@ -10,7 +10,6 @@ use dom::bindings::codegen::Bindings::WebGLRenderingContextBinding::{WebGLRender
use dom::bindings::codegen::Bindings::WebGLRenderingContextBinding::{self, WebGLContextAttributes};
use dom::bindings::codegen::InheritTypes::NodeCast;
use dom::bindings::codegen::UnionTypes::ImageDataOrHTMLImageElementOrHTMLCanvasElementOrHTMLVideoElement;
-
use dom::bindings::conversions::ToJSValConvertible;
use dom::bindings::global::{GlobalRef, GlobalField};
use dom::bindings::js::{JS, LayoutJS, Root};
@@ -30,11 +29,10 @@ use ipc_channel::ipc::{self, IpcSender};
use js::jsapi::{JSContext, JSObject, RootedValue};
use js::jsapi::{JS_GetFloat32ArrayData, JS_GetObjectAsArrayBufferView};
use js::jsval::{JSVal, UndefinedValue, NullValue, Int32Value, BooleanValue};
-
use msg::constellation_msg::Msg as ConstellationMsg;
use net_traits::image::base::PixelFormat;
use net_traits::image_cache_task::ImageResponse;
-
+use offscreen_gl_context::GLContextAttributes;
use std::cell::Cell;
use std::mem;
use std::ptr;
@@ -43,8 +41,6 @@ use std::sync::mpsc::channel;
use util::str::DOMString;
use util::vec::byte_swap;
-use offscreen_gl_context::GLContextAttributes;
-
pub const MAX_UNIFORM_AND_ATTRIBUTE_LEN: usize = 256;
macro_rules! handle_potential_webgl_error {
diff --git a/components/script/dom/webglshader.rs b/components/script/dom/webglshader.rs
index bcad061853f..fcaf3578b02 100644
--- a/components/script/dom/webglshader.rs
+++ b/components/script/dom/webglshader.rs
@@ -3,16 +3,14 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
// https://www.khronos.org/registry/webgl/specs/latest/1.0/webgl.idl
+use angle::hl::{BuiltInResources, Output, ShaderValidator};
+use canvas_traits::{CanvasMsg, CanvasWebGLMsg, WebGLResult, WebGLError, WebGLShaderParameter};
+use dom::bindings::codegen::Bindings::WebGLRenderingContextBinding::WebGLRenderingContextConstants as constants;
use dom::bindings::codegen::Bindings::WebGLShaderBinding;
use dom::bindings::global::GlobalRef;
use dom::bindings::js::Root;
use dom::bindings::utils::reflect_dom_object;
use dom::webglobject::WebGLObject;
-
-use dom::bindings::codegen::Bindings::WebGLRenderingContextBinding::WebGLRenderingContextConstants as constants;
-
-use angle::hl::{BuiltInResources, Output, ShaderValidator};
-use canvas_traits::{CanvasMsg, CanvasWebGLMsg, WebGLResult, WebGLError, WebGLShaderParameter};
use ipc_channel::ipc::{self, IpcSender};
use std::cell::Cell;
use std::cell::RefCell;
diff --git a/components/script/dom/webgltexture.rs b/components/script/dom/webgltexture.rs
index 6bb91217bbd..fb8ee4033fd 100644
--- a/components/script/dom/webgltexture.rs
+++ b/components/script/dom/webgltexture.rs
@@ -3,14 +3,13 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
// https://www.khronos.org/registry/webgl/specs/latest/1.0/webgl.idl
+use canvas_traits::{CanvasMsg, CanvasWebGLMsg, WebGLError, WebGLResult};
use dom::bindings::codegen::Bindings::WebGLRenderingContextBinding::WebGLRenderingContextConstants as constants;
use dom::bindings::codegen::Bindings::WebGLTextureBinding;
use dom::bindings::global::GlobalRef;
use dom::bindings::js::Root;
use dom::bindings::utils::reflect_dom_object;
use dom::webglobject::WebGLObject;
-
-use canvas_traits::{CanvasMsg, CanvasWebGLMsg, WebGLError, WebGLResult};
use ipc_channel::ipc::{self, IpcSender};
use std::cell::Cell;
diff --git a/components/script/dom/websocket.rs b/components/script/dom/websocket.rs
index 2bf84d609e7..4dc3d84c536 100644
--- a/components/script/dom/websocket.rs
+++ b/components/script/dom/websocket.rs
@@ -22,18 +22,20 @@ use dom::closeevent::CloseEvent;
use dom::event::{Event, EventBubbles, EventCancelable};
use dom::eventtarget::EventTarget;
use dom::messageevent::MessageEvent;
-use script_task::ScriptTaskEventCategory::WebSocketEvent;
-use script_task::{Runnable, CommonScriptMsg};
-
-use net_traits::hosts::replace_hosts;
-use util::str::DOMString;
-use util::task::spawn_named;
-
use hyper::header::Host;
use js::jsapi::{JS_NewArrayBuffer, JS_GetArrayBufferData};
use js::jsapi::{RootedValue, JSAutoRequest, JSAutoCompartment};
use js::jsval::UndefinedValue;
use libc::{uint8_t, uint32_t};
+use net_traits::hosts::replace_hosts;
+use script_task::ScriptTaskEventCategory::WebSocketEvent;
+use script_task::{Runnable, CommonScriptMsg};
+use std::borrow::ToOwned;
+use std::cell::{Cell, RefCell};
+use std::ptr;
+use std::sync::{Arc, Mutex};
+use util::str::DOMString;
+use util::task::spawn_named;
use websocket::Client;
use websocket::Message;
use websocket::client::receiver::Receiver;
@@ -46,11 +48,6 @@ use websocket::ws::receiver::Receiver as WSReceiver;
use websocket::ws::sender::Sender as Sender_Object;
use websocket::ws::util::url::parse_url;
-use std::borrow::ToOwned;
-use std::cell::{Cell, RefCell};
-use std::ptr;
-use std::sync::{Arc, Mutex};
-
#[derive(JSTraceable, PartialEq, Copy, Clone, Debug, HeapSizeOf)]
enum WebSocketRequestState {
Connecting = 0,
diff --git a/components/script/dom/window.rs b/components/script/dom/window.rs
index 16c146f91fe..583f3b68780 100644
--- a/components/script/dom/window.rs
+++ b/components/script/dom/window.rs
@@ -2,6 +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 devtools_traits::{ScriptToDevtoolsControlMsg, TimelineMarker, TimelineMarkerType};
use dom::bindings::callback::ExceptionHandling;
use dom::bindings::cell::DOMRefCell;
use dom::bindings::codegen::Bindings::DocumentBinding::DocumentMethods;
@@ -31,28 +32,6 @@ use dom::node::{window_from_node, TrustedNodeAddress, from_untrusted_node_addres
use dom::performance::Performance;
use dom::screen::Screen;
use dom::storage::Storage;
-use layout_interface::{ContentBoxResponse, ContentBoxesResponse, ResolvedStyleResponse, ScriptReflow};
-use layout_interface::{ReflowGoal, ReflowQueryType, LayoutRPC, LayoutChan, Reflow, Msg};
-use page::Page;
-use script_task::{SendableMainThreadScriptChan, MainThreadScriptChan};
-use script_task::{TimerSource, ScriptChan, ScriptPort, MainThreadScriptMsg};
-use script_traits::ConstellationControlMsg;
-use timers::{IsInterval, TimerId, TimerManager, TimerCallback};
-use webdriver_handlers::jsval_to_webdriver;
-
-use devtools_traits::{ScriptToDevtoolsControlMsg, TimelineMarker, TimelineMarkerType};
-use msg::compositor_msg::{ScriptToCompositorMsg, LayerId};
-use msg::constellation_msg::{LoadData, PipelineId, SubpageId, ConstellationChan, WindowSizeData, WorkerId};
-use msg::webdriver_msg::{WebDriverJSError, WebDriverJSResult};
-use net_traits::ResourceTask;
-use net_traits::image_cache_task::{ImageCacheChan, ImageCacheTask};
-use net_traits::storage_task::{StorageTask, StorageType};
-use profile_traits::mem;
-use string_cache::Atom;
-use util::geometry::{self, Au, MAX_RECT};
-use util::str::{DOMString, HTML_SPACE_CHARACTERS};
-use util::{breakpoint, opts};
-
use euclid::{Point2D, Rect, Size2D};
use ipc_channel::ipc::{self, IpcSender};
use js::jsapi::{Evaluate2, MutableHandleValue};
@@ -60,12 +39,23 @@ use js::jsapi::{JSContext, HandleValue};
use js::jsapi::{JS_GC, JS_GetRuntime, JSAutoCompartment, JSAutoRequest};
use js::rust::CompileOptionsWrapper;
use js::rust::Runtime;
-use selectors::parser::PseudoElement;
-use url::Url;
-
+use layout_interface::{ContentBoxResponse, ContentBoxesResponse, ResolvedStyleResponse, ScriptReflow};
+use layout_interface::{ReflowGoal, ReflowQueryType, LayoutRPC, LayoutChan, Reflow, Msg};
use libc;
+use msg::compositor_msg::{ScriptToCompositorMsg, LayerId};
+use msg::constellation_msg::{LoadData, PipelineId, SubpageId, ConstellationChan, WindowSizeData, WorkerId};
+use msg::webdriver_msg::{WebDriverJSError, WebDriverJSResult};
+use net_traits::ResourceTask;
+use net_traits::image_cache_task::{ImageCacheChan, ImageCacheTask};
+use net_traits::storage_task::{StorageTask, StorageType};
use num::traits::ToPrimitive;
+use page::Page;
+use profile_traits::mem;
use rustc_serialize::base64::{FromBase64, ToBase64, STANDARD};
+use script_task::{SendableMainThreadScriptChan, MainThreadScriptChan};
+use script_task::{TimerSource, ScriptChan, ScriptPort, MainThreadScriptMsg};
+use script_traits::ConstellationControlMsg;
+use selectors::parser::PseudoElement;
use std::ascii::AsciiExt;
use std::borrow::ToOwned;
use std::cell::{Cell, Ref, RefCell};
@@ -78,7 +68,14 @@ use std::rc::Rc;
use std::sync::Arc;
use std::sync::mpsc::TryRecvError::{Empty, Disconnected};
use std::sync::mpsc::{channel, Receiver, Sender};
+use string_cache::Atom;
use time;
+use timers::{IsInterval, TimerId, TimerManager, TimerCallback};
+use url::Url;
+use util::geometry::{self, Au, MAX_RECT};
+use util::str::{DOMString, HTML_SPACE_CHARACTERS};
+use util::{breakpoint, opts};
+use webdriver_handlers::jsval_to_webdriver;
/// Current state of the window object
#[derive(JSTraceable, Copy, Clone, Debug, PartialEq, HeapSizeOf)]
diff --git a/components/script/dom/worker.rs b/components/script/dom/worker.rs
index 92053392db7..efbde8eee1a 100644
--- a/components/script/dom/worker.rs
+++ b/components/script/dom/worker.rs
@@ -2,6 +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 devtools_traits::{DevtoolsPageInfo, ScriptToDevtoolsControlMsg};
use dom::bindings::codegen::Bindings::EventHandlerBinding::EventHandlerNonNull;
use dom::bindings::codegen::Bindings::WorkerBinding;
use dom::bindings::codegen::Bindings::WorkerBinding::WorkerMethods;
@@ -20,19 +21,15 @@ use dom::event::{Event, EventBubbles, EventCancelable};
use dom::eventtarget::EventTarget;
use dom::messageevent::MessageEvent;
use dom::workerglobalscope::WorkerGlobalScopeInit;
-
-use devtools_traits::{DevtoolsPageInfo, ScriptToDevtoolsControlMsg};
-use script_task::{ScriptChan, Runnable};
-
use ipc_channel::ipc;
use js::jsapi::{JSAutoRequest, JSAutoCompartment};
use js::jsapi::{JSContext, HandleValue, RootedValue};
use js::jsval::UndefinedValue;
-use url::UrlParser;
-use util::str::DOMString;
-
+use script_task::{ScriptChan, Runnable};
use std::borrow::ToOwned;
use std::sync::mpsc::{channel, Sender};
+use url::UrlParser;
+use util::str::DOMString;
pub type TrustedWorkerAddress = Trusted<Worker>;
diff --git a/components/script/dom/workerglobalscope.rs b/components/script/dom/workerglobalscope.rs
index 4fbd17a7413..3d5d459d4e2 100644
--- a/components/script/dom/workerglobalscope.rs
+++ b/components/script/dom/workerglobalscope.rs
@@ -2,6 +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 devtools_traits::{ScriptToDevtoolsControlMsg, DevtoolScriptControlMsg};
use dom::bindings::codegen::Bindings::FunctionBinding::Function;
use dom::bindings::codegen::Bindings::WorkerGlobalScopeBinding::WorkerGlobalScopeMethods;
use dom::bindings::codegen::InheritTypes::DedicatedWorkerGlobalScopeCast;
@@ -16,25 +17,20 @@ use dom::eventtarget::EventTarget;
use dom::window::{base64_atob, base64_btoa};
use dom::workerlocation::WorkerLocation;
use dom::workernavigator::WorkerNavigator;
-use script_task::{CommonScriptMsg, ScriptChan, TimerSource, ScriptPort};
-use timers::{IsInterval, TimerId, TimerManager, TimerCallback};
-
-use devtools_traits::{ScriptToDevtoolsControlMsg, DevtoolScriptControlMsg};
-
-use msg::constellation_msg::{ConstellationChan, PipelineId, WorkerId};
-use net_traits::{load_whole_resource, ResourceTask};
-use profile_traits::mem;
-use util::str::DOMString;
-
use ipc_channel::ipc::IpcSender;
use js::jsapi::{JSContext, HandleValue, JSAutoRequest};
use js::rust::Runtime;
-use url::{Url, UrlParser};
-
+use msg::constellation_msg::{ConstellationChan, PipelineId, WorkerId};
+use net_traits::{load_whole_resource, ResourceTask};
+use profile_traits::mem;
+use script_task::{CommonScriptMsg, ScriptChan, TimerSource, ScriptPort};
use std::cell::Cell;
use std::default::Default;
use std::rc::Rc;
use std::sync::mpsc::Receiver;
+use timers::{IsInterval, TimerId, TimerManager, TimerCallback};
+use url::{Url, UrlParser};
+use util::str::DOMString;
#[derive(Copy, Clone, PartialEq)]
pub enum WorkerGlobalScopeTypeId {
diff --git a/components/script/dom/workerlocation.rs b/components/script/dom/workerlocation.rs
index bd62cc57043..467d2fef7ee 100644
--- a/components/script/dom/workerlocation.rs
+++ b/components/script/dom/workerlocation.rs
@@ -10,7 +10,6 @@ use dom::bindings::str::USVString;
use dom::bindings::utils::{Reflector, reflect_dom_object};
use dom::urlhelper::UrlHelper;
use dom::workerglobalscope::WorkerGlobalScope;
-
use url::Url;
use util::str::DOMString;
diff --git a/components/script/dom/xmlhttprequest.rs b/components/script/dom/xmlhttprequest.rs
index 743c0e2f6dd..7fa69f701a5 100644
--- a/components/script/dom/xmlhttprequest.rs
+++ b/components/script/dom/xmlhttprequest.rs
@@ -2,6 +2,8 @@
* 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 cors::CORSResponse;
+use cors::{allow_cross_origin_request, CORSRequest, RequestMode, AsyncCORSResponseListener};
use dom::bindings::cell::DOMRefCell;
use dom::bindings::codegen::Bindings::EventHandlerBinding::EventHandlerNonNull;
use dom::bindings::codegen::Bindings::XMLHttpRequestBinding;
@@ -9,6 +11,8 @@ use dom::bindings::codegen::Bindings::XMLHttpRequestBinding::XMLHttpRequestMetho
use dom::bindings::codegen::Bindings::XMLHttpRequestBinding::XMLHttpRequestResponseType;
use dom::bindings::codegen::Bindings::XMLHttpRequestBinding::XMLHttpRequestResponseType::{_empty, Json, Text};
use dom::bindings::codegen::InheritTypes::{EventCast, EventTargetCast, XMLHttpRequestDerived};
+use dom::bindings::codegen::UnionTypes::StringOrURLSearchParams;
+use dom::bindings::codegen::UnionTypes::StringOrURLSearchParams::{eString, eURLSearchParams};
use dom::bindings::conversions::ToJSValConvertible;
use dom::bindings::error::Error::{InvalidState, InvalidAccess};
use dom::bindings::error::Error::{Network, Syntax, Security, Abort, Timeout};
@@ -26,35 +30,25 @@ use dom::progressevent::ProgressEvent;
use dom::xmlhttprequesteventtarget::XMLHttpRequestEventTarget;
use dom::xmlhttprequesteventtarget::XMLHttpRequestEventTargetTypeId;
use dom::xmlhttprequestupload::XMLHttpRequestUpload;
-use network_listener::{NetworkListener, PreInvoke};
-use script_task::ScriptTaskEventCategory::XhrEvent;
-use script_task::{ScriptChan, Runnable, ScriptPort, CommonScriptMsg};
-
use encoding::all::UTF_8;
use encoding::label::encoding_from_whatwg_label;
use encoding::types::{DecoderTrap, Encoding, EncodingRef, EncoderTrap};
-
use hyper::header::Headers;
use hyper::header::{Accept, ContentLength, ContentType, qitem};
use hyper::http::RawStatus;
use hyper::method::Method;
use hyper::mime::{self, Mime};
-
+use ipc_channel::ipc;
+use ipc_channel::router::ROUTER;
use js::jsapi::JS_ClearPendingException;
use js::jsapi::{JS_ParseJSON, JSContext, RootedValue};
use js::jsval::{JSVal, NullValue, UndefinedValue};
-
-use cors::CORSResponse;
-use cors::{allow_cross_origin_request, CORSRequest, RequestMode, AsyncCORSResponseListener};
use net_traits::ControlMsg::Load;
use net_traits::{AsyncResponseListener, AsyncResponseTarget, Metadata};
use net_traits::{ResourceTask, ResourceCORSData, LoadData, LoadConsumer};
-use util::mem::HeapSizeOf;
-use util::str::DOMString;
-use util::task::spawn_named;
-
-use ipc_channel::ipc;
-use ipc_channel::router::ROUTER;
+use network_listener::{NetworkListener, PreInvoke};
+use script_task::ScriptTaskEventCategory::XhrEvent;
+use script_task::{ScriptChan, Runnable, ScriptPort, CommonScriptMsg};
use std::ascii::AsciiExt;
use std::borrow::ToOwned;
use std::cell::{RefCell, Cell};
@@ -64,9 +58,9 @@ use std::sync::{Mutex, Arc};
use std::thread::sleep_ms;
use time;
use url::{Url, UrlParser};
-
-use dom::bindings::codegen::UnionTypes::StringOrURLSearchParams;
-use dom::bindings::codegen::UnionTypes::StringOrURLSearchParams::{eString, eURLSearchParams};
+use util::mem::HeapSizeOf;
+use util::str::DOMString;
+use util::task::spawn_named;
pub type SendParam = StringOrURLSearchParams;
diff --git a/components/script/layout_interface.rs b/components/script/layout_interface.rs
index 053c58dc387..22f2f808f04 100644
--- a/components/script/layout_interface.rs
+++ b/components/script/layout_interface.rs
@@ -7,7 +7,6 @@
//! the DOM to be placed in a separate crate from layout.
use dom::node::LayoutData;
-
use euclid::point::Point2D;
use euclid::rect::Rect;
use ipc_channel::ipc::{IpcReceiver, IpcSender};
diff --git a/components/script/page.rs b/components/script/page.rs
index 25dd39cad6e..ce778d8bca9 100644
--- a/components/script/page.rs
+++ b/components/script/page.rs
@@ -6,7 +6,6 @@ use dom::bindings::cell::DOMRefCell;
use dom::bindings::js::{JS, Root};
use dom::document::Document;
use dom::window::Window;
-
use msg::constellation_msg::PipelineId;
use std::cell::Cell;
use std::rc::Rc;
diff --git a/components/script/parse/html.rs b/components/script/parse/html.rs
index 8aec2e816e4..6bdd6d5bde0 100644
--- a/components/script/parse/html.rs
+++ b/components/script/parse/html.rs
@@ -25,16 +25,14 @@ use dom::node::{Node, NodeTypeId};
use dom::node::{document_from_node, window_from_node};
use dom::servohtmlparser;
use dom::servohtmlparser::{ServoHTMLParser, FragmentContext};
-use parse::Parser;
-
use encoding::types::Encoding;
-
use html5ever::Attribute;
use html5ever::serialize::TraversalScope;
use html5ever::serialize::TraversalScope::{IncludeNode, ChildrenOnly};
use html5ever::serialize::{Serializable, Serializer, AttrRef};
use html5ever::tree_builder::{NextParserState, NodeOrText, QuirksMode, TreeSink};
use msg::constellation_msg::PipelineId;
+use parse::Parser;
use std::borrow::Cow;
use std::io::{self, Write};
use string_cache::QualName;
diff --git a/components/script/script_task.rs b/components/script/script_task.rs
index 3914e5ff9d2..7c7292c2abc 100644
--- a/components/script/script_task.rs
+++ b/components/script/script_task.rs
@@ -20,6 +20,8 @@
#![allow(unsafe_code)]
use devtools;
+use devtools_traits::ScriptToDevtoolsControlMsg;
+use devtools_traits::{DevtoolsPageInfo, DevtoolScriptControlMsg};
use document_loader::{LoadType, DocumentLoader, NotifierData};
use dom::bindings::cell::DOMRefCell;
use dom::bindings::codegen::Bindings::DocumentBinding::{DocumentMethods, DocumentReadyState};
@@ -41,17 +43,26 @@ use dom::servohtmlparser::{ServoHTMLParser, ParserContext};
use dom::uievent::UIEvent;
use dom::window::{Window, ScriptHelpers, ReflowReason};
use dom::worker::TrustedWorkerAddress;
+use euclid::Rect;
+use euclid::point::Point2D;
+use hyper::header::{ContentType, HttpDate};
+use hyper::header::{LastModified, Headers};
+use hyper::method::Method;
+use hyper::mime::{Mime, TopLevel, SubLevel};
+use ipc_channel::ipc::{self, IpcSender};
+use ipc_channel::router::ROUTER;
+use js::glue::CollectServoSizes;
+use js::jsapi::{JSContext, JSRuntime, JSTracer};
+use js::jsapi::{JSGCInvocationKind, GCDescription, SetGCSliceCallback, GCProgress};
+use js::jsapi::{JS_GetRuntime, JS_SetGCCallback, JSGCStatus, JSAutoRequest, SetDOMCallbacks};
+use js::jsapi::{JS_SetWrapObjectCallbacks, JS_AddExtraGCRootsTracer, DisableIncrementalGC};
+use js::jsapi::{SetDOMProxyInformation, DOMProxyShadowsResult, HandleObject, HandleId, RootedValue};
+use js::jsval::UndefinedValue;
+use js::rust::Runtime;
use layout_interface::{ReflowQueryType};
use layout_interface::{self, NewLayoutTaskInfo, ScriptLayoutChan, LayoutChan, ReflowGoal};
+use libc;
use mem::heap_size_of_eventtarget;
-use network_listener::NetworkListener;
-use page::{Page, IterablePage, Frame};
-use parse::html::{ParseContext, parse_html};
-use timers::TimerId;
-use webdriver_handlers;
-
-use devtools_traits::ScriptToDevtoolsControlMsg;
-use devtools_traits::{DevtoolsPageInfo, DevtoolScriptControlMsg};
use msg::compositor_msg::{LayerId, ScriptToCompositorMsg};
use msg::constellation_msg::Msg as ConstellationMsg;
use msg::constellation_msg::{ConstellationChan, FocusType, LoadData};
@@ -62,6 +73,9 @@ use net_traits::LoadData as NetLoadData;
use net_traits::image_cache_task::{ImageCacheChan, ImageCacheTask, ImageCacheResult};
use net_traits::storage_task::StorageTask;
use net_traits::{AsyncResponseTarget, ResourceTask, LoadConsumer, ControlMsg, Metadata};
+use network_listener::NetworkListener;
+use page::{Page, IterablePage, Frame};
+use parse::html::{ParseContext, parse_html};
use profile_traits::mem::{self, Report, ReportKind, ReportsChan, OpaqueSender};
use profile_traits::time::{self, ProfilerCategory, profile};
use script_traits::CompositorEvent::{MouseDownEvent, MouseUpEvent};
@@ -70,29 +84,6 @@ use script_traits::CompositorEvent::{ResizeEvent, ClickEvent};
use script_traits::{CompositorEvent, ConstellationControlMsg};
use script_traits::{InitialScriptState, MouseButton, NewLayoutInfo};
use script_traits::{OpaqueScriptLayoutChannel, ScriptState, ScriptTaskFactory};
-use string_cache::Atom;
-use util::opts;
-use util::str::DOMString;
-use util::task::spawn_named_with_send_on_failure;
-use util::task_state;
-
-use euclid::Rect;
-use euclid::point::Point2D;
-use hyper::header::{LastModified, Headers};
-use hyper::method::Method;
-use ipc_channel::ipc::{self, IpcSender};
-use ipc_channel::router::ROUTER;
-use js::glue::CollectServoSizes;
-use js::jsapi::{JSContext, JSRuntime, JSTracer};
-use js::jsapi::{JSGCInvocationKind, GCDescription, SetGCSliceCallback, GCProgress};
-use js::jsapi::{JS_GetRuntime, JS_SetGCCallback, JSGCStatus, JSAutoRequest, SetDOMCallbacks};
-use js::jsapi::{JS_SetWrapObjectCallbacks, JS_AddExtraGCRootsTracer, DisableIncrementalGC};
-use js::jsapi::{SetDOMProxyInformation, DOMProxyShadowsResult, HandleObject, HandleId, RootedValue};
-use js::jsval::UndefinedValue;
-use js::rust::Runtime;
-use url::{Url, UrlParser};
-
-use libc;
use std::any::Any;
use std::borrow::ToOwned;
use std::cell::{Cell, RefCell};
@@ -105,10 +96,15 @@ use std::rc::Rc;
use std::result::Result;
use std::sync::mpsc::{channel, Sender, Receiver, Select};
use std::sync::{Arc, Mutex};
+use string_cache::Atom;
use time::{now, Tm};
-
-use hyper::header::{ContentType, HttpDate};
-use hyper::mime::{Mime, TopLevel, SubLevel};
+use timers::TimerId;
+use url::{Url, UrlParser};
+use util::opts;
+use util::str::DOMString;
+use util::task::spawn_named_with_send_on_failure;
+use util::task_state;
+use webdriver_handlers;
thread_local!(pub static STACK_ROOTS: Cell<Option<RootCollectionPtr>> = Cell::new(None));
thread_local!(static SCRIPT_TASK_ROOT: RefCell<Option<*const ScriptTask>> = RefCell::new(None));
diff --git a/components/script/textinput.rs b/components/script/textinput.rs
index 0adffc77d34..39fce074558 100644
--- a/components/script/textinput.rs
+++ b/components/script/textinput.rs
@@ -8,12 +8,11 @@ use clipboard_provider::ClipboardProvider;
use dom::keyboardevent::{KeyboardEvent, key_value};
use msg::constellation_msg::{Key, KeyModifiers};
use msg::constellation_msg::{SHIFT, CONTROL, ALT, SUPER};
-use util::mem::HeapSizeOf;
-use util::str::DOMString;
-
use std::borrow::ToOwned;
use std::cmp::{min, max};
use std::default::Default;
+use util::mem::HeapSizeOf;
+use util::str::DOMString;
#[derive(Copy, Clone, PartialEq)]
diff --git a/components/script/timers.rs b/components/script/timers.rs
index 8fd712e7ac6..979f03396ee 100644
--- a/components/script/timers.rs
+++ b/components/script/timers.rs
@@ -8,17 +8,10 @@ use dom::bindings::codegen::Bindings::FunctionBinding::Function;
use dom::bindings::global::global_object_for_js_object;
use dom::bindings::utils::Reflectable;
use dom::window::ScriptHelpers;
-
use horribly_inefficient_timers;
-use script_task::{ScriptChan, TimerSource, CommonScriptMsg};
-
-use util::mem::HeapSizeOf;
-use util::str::DOMString;
-use util::task::spawn_named;
-
use js::jsapi::{RootedValue, HandleValue, Heap};
use js::jsval::{JSVal, UndefinedValue};
-
+use script_task::{ScriptChan, TimerSource, CommonScriptMsg};
use std::borrow::ToOwned;
use std::cell::Cell;
use std::cmp;
@@ -28,6 +21,10 @@ use std::hash::{Hash, Hasher};
use std::rc::Rc;
use std::sync::mpsc::Select;
use std::sync::mpsc::{channel, Sender};
+use util::mem::HeapSizeOf;
+use util::str::DOMString;
+use util::task::spawn_named;
+
#[derive(JSTraceable, PartialEq, Eq, Copy, Clone, HeapSizeOf)]
pub struct TimerId(i32);
diff --git a/components/script/webdriver_handlers.rs b/components/script/webdriver_handlers.rs
index 5c97eca42cb..c7a834bade7 100644
--- a/components/script/webdriver_handlers.rs
+++ b/components/script/webdriver_handlers.rs
@@ -13,6 +13,7 @@ use dom::bindings::conversions::StringificationBehavior;
use dom::bindings::js::Root;
use dom::node::Node;
use dom::window::ScriptHelpers;
+use ipc_channel::ipc::IpcSender;
use js::jsapi::JSContext;
use js::jsapi::{RootedValue, HandleValue};
use js::jsval::UndefinedValue;
@@ -20,8 +21,6 @@ use msg::constellation_msg::{PipelineId, SubpageId};
use msg::webdriver_msg::{WebDriverJSValue, WebDriverJSError, WebDriverJSResult, WebDriverFrameId};
use page::Page;
use script_task::get_page;
-
-use ipc_channel::ipc::IpcSender;
use std::rc::Rc;
use url::Url;
diff --git a/components/script_traits/lib.rs b/components/script_traits/lib.rs
index 87f336265a8..ae5e9b22bb6 100644
--- a/components/script_traits/lib.rs
+++ b/components/script_traits/lib.rs
@@ -22,6 +22,8 @@ extern crate util;
extern crate url;
use devtools_traits::ScriptToDevtoolsControlMsg;
+use euclid::point::Point2D;
+use euclid::rect::Rect;
use ipc_channel::ipc::{IpcReceiver, IpcSender};
use libc::c_void;
use msg::compositor_msg::{Epoch, LayerId, ScriptToCompositorMsg};
@@ -38,9 +40,6 @@ use std::sync::mpsc::{Receiver, Sender};
use url::Url;
use util::geometry::Au;
-use euclid::point::Point2D;
-use euclid::rect::Rect;
-
/// The address of a node. Layout sends these back. They must be validated via
/// `from_untrusted_node_address` before they can be used, because we do not trust layout.
#[allow(raw_pointer_derive)]
diff --git a/components/servo/lib.rs b/components/servo/lib.rs
index 4dcf43c6a10..91ef9939a90 100644
--- a/components/servo/lib.rs
+++ b/components/servo/lib.rs
@@ -79,31 +79,26 @@ pub use export::layers;
pub use export::gleam::gl;
use compositing::CompositorEventListener;
-use compositing::windowing::WindowEvent;
-
use compositing::compositor_task::InitialCompositorState;
use compositing::constellation::InitialConstellationState;
+use compositing::windowing::WindowEvent;
use compositing::windowing::WindowMethods;
use compositing::{CompositorProxy, CompositorTask, Constellation};
-
+use gfx::font_cache_task::FontCacheTask;
use msg::constellation_msg::ConstellationChan;
use msg::constellation_msg::Msg as ConstellationMsg;
-
use net::image_cache_task::new_image_cache_task;
use net::resource_task::new_resource_task;
use net::storage_task::StorageTaskFactory;
use net_traits::storage_task::StorageTask;
-
-use gfx::font_cache_task::FontCacheTask;
use profile::mem as profile_mem;
use profile::time as profile_time;
use profile_traits::mem;
use profile_traits::time;
-use util::opts;
-
use std::borrow::Borrow;
use std::rc::Rc;
use std::sync::mpsc::Sender;
+use util::opts;
pub struct Browser {
compositor: Box<CompositorEventListener + 'static>,
diff --git a/components/servo/main.rs b/components/servo/main.rs
index d4bf94e33b2..66b5b670547 100644
--- a/components/servo/main.rs
+++ b/components/servo/main.rs
@@ -33,10 +33,9 @@ use servo::Browser;
use servo::compositing::windowing::WindowEvent;
use servo::net_traits::hosts;
use servo::util::opts;
-use std::rc::Rc;
-
#[cfg(target_os = "android")]
use std::borrow::ToOwned;
+use std::rc::Rc;
fn main() {
env_logger::init().unwrap();
diff --git a/components/style/animation.rs b/components/style/animation.rs
index 247ceb6b2a5..b7104da5683 100644
--- a/components/style/animation.rs
+++ b/components/style/animation.rs
@@ -3,6 +3,7 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use cssparser::{RGBA, Color};
+use euclid::point::Point2D;
use properties::ComputedValues;
use properties::longhands::background_position::computed_value::T as BackgroundPosition;
use properties::longhands::border_spacing::computed_value::T as BorderSpacing;
@@ -21,15 +22,13 @@ use properties::longhands::transition_timing_function::computed_value::{Transiti
use properties::longhands::vertical_align::computed_value::T as VerticalAlign;
use properties::longhands::visibility::computed_value::T as Visibility;
use properties::longhands::z_index::computed_value::T as ZIndex;
-use values::CSSFloat;
-use values::computed::{Angle, LengthOrPercentageOrAuto, LengthOrPercentageOrNone};
-use values::computed::{LengthOrPercentage, Length, Time};
-
-use euclid::point::Point2D;
use std::cmp::Ordering;
use std::iter::repeat;
use util::bezier::Bezier;
use util::geometry::Au;
+use values::CSSFloat;
+use values::computed::{Angle, LengthOrPercentageOrAuto, LengthOrPercentageOrNone};
+use values::computed::{LengthOrPercentage, Length, Time};
#[derive(Clone, Debug)]
pub struct PropertyAnimation {
diff --git a/components/style/legacy.rs b/components/style/legacy.rs
index 127d9f8c526..ffaaaadcab6 100644
--- a/components/style/legacy.rs
+++ b/components/style/legacy.rs
@@ -5,14 +5,13 @@
//! Legacy presentational attributes defined in the HTML5 specification: `<td width>`,
//! `<input size>`, and so forth.
-use std::sync::Arc;
-
use node::TElementAttributes;
use properties::PropertyDeclaration;
use selector_matching::Stylist;
use selectors::Element;
use selectors::matching::DeclarationBlock;
use smallvec::VecLike;
+use std::sync::Arc;
/// Legacy presentational attributes that take a nonnegative integer as defined in HTML5 § 2.4.4.2.
diff --git a/components/style/media_queries.rs b/components/style/media_queries.rs
index 5c84c28ffed..2f4d85a9627 100644
--- a/components/style/media_queries.rs
+++ b/components/style/media_queries.rs
@@ -3,10 +3,9 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use cssparser::{Token, Parser, Delimiter};
-use std::ascii::AsciiExt;
-
use euclid::size::{Size2D, TypedSize2D};
use properties::longhands;
+use std::ascii::AsciiExt;
use util::geometry::{Au, ViewportPx};
use values::specified;
diff --git a/components/style/node.rs b/components/style/node.rs
index fa422e2b5db..aa764f5f662 100644
--- a/components/style/node.rs
+++ b/components/style/node.rs
@@ -7,9 +7,8 @@
use legacy::UnsignedIntegerAttribute;
use properties::PropertyDeclaration;
-use smallvec::VecLike;
-
use selectors::matching::DeclarationBlock;
+use smallvec::VecLike;
use string_cache::{Atom, Namespace};
pub trait TElementAttributes {
diff --git a/components/style/parser.rs b/components/style/parser.rs
index ac9afe43cf6..f189c7c5d93 100644
--- a/components/style/parser.rs
+++ b/components/style/parser.rs
@@ -6,9 +6,8 @@
use cssparser::{Parser, SourcePosition};
use log;
use selectors::parser::ParserContext as SelectorParserContext;
-use url::{Url, UrlParser};
-
use stylesheets::Origin;
+use url::{Url, UrlParser};
pub struct ParserContext<'a> {
pub stylesheet_origin: Origin,
diff --git a/components/style/selector_matching.rs b/components/style/selector_matching.rs
index ce4a3658a1a..41d0f6f6141 100644
--- a/components/style/selector_matching.rs
+++ b/components/style/selector_matching.rs
@@ -2,8 +2,10 @@
* 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 url::Url;
-
+use legacy::PresentationalHintSynthesis;
+use media_queries::Device;
+use node::TElementAttributes;
+use properties::{PropertyDeclaration, PropertyDeclarationBlock};
use selectors::Element;
use selectors::bloom::BloomFilter;
use selectors::matching::DeclarationBlock as GenericDeclarationBlock;
@@ -11,15 +13,11 @@ use selectors::matching::{SelectorMap, Rule};
use selectors::parser::PseudoElement;
use smallvec::VecLike;
use std::process;
-use util::opts;
-use util::resource_files::read_resource_file;
-
-use legacy::PresentationalHintSynthesis;
-use media_queries::Device;
-use node::TElementAttributes;
-use properties::{PropertyDeclaration, PropertyDeclarationBlock};
use style_traits::viewport::ViewportConstraints;
use stylesheets::{Stylesheet, CSSRuleIteratorExt, Origin};
+use url::Url;
+use util::opts;
+use util::resource_files::read_resource_file;
use viewport::{MaybeNew, ViewportRuleCascade};
diff --git a/components/style/stylesheets.rs b/components/style/stylesheets.rs
index 1eff44ef9ed..8f6f5db7b64 100644
--- a/components/style/stylesheets.rs
+++ b/components/style/stylesheets.rs
@@ -2,23 +2,21 @@
* 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 std::ascii::AsciiExt;
-use std::cell::Cell;
-use std::iter::Iterator;
-use std::slice;
-use url::Url;
-
-use encoding::EncodingRef;
-
use cssparser::{Parser, decode_stylesheet_bytes, QualifiedRuleParser, AtRuleParser};
use cssparser::{RuleListParser, AtRuleType};
+use encoding::EncodingRef;
use font_face::{FontFaceRule, parse_font_face_block};
use media_queries::{Device, MediaQueryList, parse_media_query_list};
use parser::{ParserContext, log_css_error};
use properties::{PropertyDeclarationBlock, parse_property_declaration_list};
use selectors::parser::{Selector, parse_selector_list};
use smallvec::SmallVec;
+use std::ascii::AsciiExt;
+use std::cell::Cell;
+use std::iter::Iterator;
+use std::slice;
use string_cache::{Atom, Namespace};
+use url::Url;
use viewport::ViewportRule;
diff --git a/components/style/values.rs b/components/style/values.rs
index 7627528c3c6..15aa5682ca5 100644
--- a/components/style/values.rs
+++ b/components/style/values.rs
@@ -1218,12 +1218,12 @@ pub mod specified {
pub mod computed {
pub use super::specified::{Angle, BorderStyle, Time};
- use super::specified::AngleOrCorner;
- use super::{specified, CSSFloat};
- pub use cssparser::Color as CSSColor;
use euclid::size::Size2D;
+ pub use cssparser::Color as CSSColor;
use properties::longhands;
use std::fmt;
+ use super::specified::AngleOrCorner;
+ use super::{specified, CSSFloat};
use url::Url;
use util::geometry::Au;
diff --git a/components/style/viewport.rs b/components/style/viewport.rs
index 2f5e5e3c21b..72da1098a74 100644
--- a/components/style/viewport.rs
+++ b/components/style/viewport.rs
@@ -7,17 +7,15 @@ use euclid::scale_factor::ScaleFactor;
use euclid::size::{Size2D, TypedSize2D};
use parser::{ParserContext, log_css_error};
use properties::longhands;
+use std::ascii::AsciiExt;
+use std::collections::hash_map::{Entry, HashMap};
+use std::intrinsics;
use style_traits::viewport::{UserZoom, Zoom, Orientation, ViewportConstraints};
use stylesheets::Origin;
use util::geometry::{Au, ViewportPx};
use values::computed::{Context, ToComputedValue};
use values::specified::LengthOrPercentageOrAuto;
-
-use std::ascii::AsciiExt;
-use std::collections::hash_map::{Entry, HashMap};
-use std::intrinsics;
-
#[derive(Copy, Clone, Debug, PartialEq)]
pub enum ViewportDescriptor {
MinWidth(LengthOrPercentageOrAuto),
diff --git a/components/util/geometry.rs b/components/util/geometry.rs
index 5b6d8a0852a..abdcf100531 100644
--- a/components/util/geometry.rs
+++ b/components/util/geometry.rs
@@ -3,20 +3,17 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use cssparser::ToCss;
-
use euclid::length::Length;
use euclid::num::Zero;
use euclid::point::Point2D;
use euclid::rect::Rect;
use euclid::size::Size2D;
-
+use rustc_serialize::{Encoder, Encodable};
use std::default::Default;
use std::fmt;
use std::i32;
use std::ops::{Add, Sub, Neg, Mul, Div, Rem};
-use rustc_serialize::{Encoder, Encodable};
-
// Units for use with euclid::length and euclid::scale_factor.
/// A normalized "pixel" at the default resolution for the display.
diff --git a/components/util/ipc.rs b/components/util/ipc.rs
index 32bbb8c14b7..20c80cf042b 100644
--- a/components/util/ipc.rs
+++ b/components/util/ipc.rs
@@ -2,10 +2,9 @@
* 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 opts;
-
use ipc_channel::ipc::{self, IpcSender};
use ipc_channel::router::ROUTER;
+use opts;
use serde::{Deserialize, Deserializer, Serialize, Serializer};
use std::any::Any;
use std::collections::HashMap;
diff --git a/components/util/mem.rs b/components/util/mem.rs
index 7f83099b06e..ff28a8e230c 100644
--- a/components/util/mem.rs
+++ b/components/util/mem.rs
@@ -4,15 +4,6 @@
//! Data structure measurement.
-use libc::{c_void, size_t};
-use std::cell::{Cell, RefCell};
-use std::collections::{HashMap, LinkedList, hash_state};
-use std::hash::Hash;
-use std::mem::{size_of, transmute};
-use std::rc::Rc;
-use std::result::Result;
-use std::sync::Arc;
-
use azure::azure_hl::Color;
use cssparser::Color as CSSParserColor;
use cssparser::{RGBA, TokenSerializationType};
@@ -30,10 +21,18 @@ use js::jsapi::Heap;
use js::jsval::JSVal;
use js::rust::GCMethods;
use layers::geometry::DevicePixel;
+use libc::{c_void, size_t};
use logical_geometry::WritingMode;
use rand::OsRng;
use range::Range;
use selectors::parser::{PseudoElement, Selector, CompoundSelector, SimpleSelector, Combinator};
+use std::cell::{Cell, RefCell};
+use std::collections::{HashMap, LinkedList, hash_state};
+use std::hash::Hash;
+use std::mem::{size_of, transmute};
+use std::rc::Rc;
+use std::result::Result;
+use std::sync::Arc;
use str::LengthOrPercentageOrAuto;
use string_cache::atom::Atom;
use string_cache::namespace::Namespace;
diff --git a/components/util/opts.rs b/components/util/opts.rs
index 28a5908e477..1a310dd543c 100644
--- a/components/util/opts.rs
+++ b/components/util/opts.rs
@@ -5,9 +5,8 @@
//! Configuration options for a single run of the servo application. Created
//! from command line arguments.
-use geometry::ScreenPx;
-
use euclid::size::{Size2D, TypedSize2D};
+use geometry::ScreenPx;
use getopts::Options;
use num_cpus;
use prefs;
diff --git a/components/util/str.rs b/components/util/str.rs
index c7e68d5549d..466d2d644eb 100644
--- a/components/util/str.rs
+++ b/components/util/str.rs
@@ -2,10 +2,8 @@
* 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 geometry::Au;
-
use cssparser::{self, RGBA, Color};
-
+use geometry::Au;
use libc::c_char;
use num_lib::ToPrimitive;
use std::ascii::AsciiExt;
diff --git a/components/util/vec.rs b/components/util/vec.rs
index 638164971e4..ff9dcc0292d 100644
--- a/components/util/vec.rs
+++ b/components/util/vec.rs
@@ -2,11 +2,10 @@
* 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 super::smallvec::VecLike;
-
use std::cmp::{PartialOrd, PartialEq, Ordering};
use std::marker::PhantomData;
use std::ops;
+use super::smallvec::VecLike;
/// FIXME(pcwalton): Workaround for lack of unboxed closures. This is called in
/// performance-critical code, so a closure is insufficient.
diff --git a/components/util/workqueue.rs b/components/util/workqueue.rs
index d0899df1e61..0ffd50163e3 100644
--- a/components/util/workqueue.rs
+++ b/components/util/workqueue.rs
@@ -8,13 +8,12 @@
//! higher-level API on top of this could allow safe fork-join parallelism.
use deque::{Abort, BufferPool, Data, Empty, Stealer, Worker};
-use task::spawn_named;
-use task_state;
-
use libc::funcs::posix88::unistd::usleep;
use rand::{Rng, weak_rng, XorShiftRng};
use std::sync::atomic::{AtomicUsize, Ordering};
use std::sync::mpsc::{channel, Sender, Receiver};
+use task::spawn_named;
+use task_state;
/// A unit of work.
///
diff --git a/components/webdriver_traits/lib.rs b/components/webdriver_traits/lib.rs
index 9279e8e2dd9..d2654b5c4e2 100644
--- a/components/webdriver_traits/lib.rs
+++ b/components/webdriver_traits/lib.rs
@@ -7,7 +7,6 @@
extern crate rustc_serialize;
use rustc_serialize::json::{Json, ToJson};
-
use std::sync::mpsc::Sender;
pub enum WebDriverScriptCommand {
diff --git a/ports/glutin/window.rs b/ports/glutin/window.rs
index 31bc358c488..2718fc6be1a 100644
--- a/ports/glutin/window.rs
+++ b/ports/glutin/window.rs
@@ -4,39 +4,36 @@
//! A windowing implementation using glutin.
+use NestedEventLoopListener;
use compositing::compositor_task::{self, CompositorProxy, CompositorReceiver};
+#[cfg(feature = "window")]
+use compositing::windowing::{MouseWindowEvent, WindowNavigateMsg};
use compositing::windowing::{WindowEvent, WindowMethods};
use euclid::scale_factor::ScaleFactor;
use euclid::size::TypedSize2D;
use euclid::{Size2D, Point2D};
use gleam::gl;
use glutin;
+#[cfg(feature = "window")]
+use glutin::{Api, ElementState, Event, GlRequest, MouseButton, VirtualKeyCode, MouseScrollDelta};
use layers::geometry::DevicePixel;
use layers::platform::surface::NativeDisplay;
+#[cfg(feature = "window")]
+use msg::constellation_msg::{KeyState, NONE, CONTROL, SHIFT, ALT, SUPER};
use msg::constellation_msg::{self, Key};
use net_traits::net_error_list::NetError;
+#[cfg(feature = "window")]
+use std::cell::{Cell, RefCell};
+#[cfg(all(feature = "headless", target_os = "linux"))]
+use std::ptr;
use std::rc::Rc;
use std::sync::mpsc::{channel, Sender};
use url::Url;
use util::cursor::Cursor;
use util::geometry::ScreenPx;
-
-use NestedEventLoopListener;
-
-#[cfg(feature = "window")]
-use compositing::windowing::{MouseWindowEvent, WindowNavigateMsg};
-#[cfg(feature = "window")]
-use glutin::{Api, ElementState, Event, GlRequest, MouseButton, VirtualKeyCode, MouseScrollDelta};
-#[cfg(feature = "window")]
-use msg::constellation_msg::{KeyState, NONE, CONTROL, SHIFT, ALT, SUPER};
-#[cfg(feature = "window")]
-use std::cell::{Cell, RefCell};
#[cfg(feature = "window")]
use util::opts;
-#[cfg(all(feature = "headless", target_os = "linux"))]
-use std::ptr;
-
#[cfg(feature = "window")]
static mut g_nested_event_loop_listener: Option<*mut (NestedEventLoopListener + 'static)> = None;
diff --git a/ports/gonk/src/input.rs b/ports/gonk/src/input.rs
index 81c6a70c3ed..e40900f7acf 100644
--- a/ports/gonk/src/input.rs
+++ b/ports/gonk/src/input.rs
@@ -2,8 +2,11 @@
* 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 compositing::windowing::{WindowEvent, MouseWindowEvent};
+use errno::errno;
+use euclid::point::Point2D;
+use libc::{c_int, c_long, time_t};
use script_traits::MouseButton;
-
use std::fs::File;
use std::io::Read;
use std::mem::{size_of, transmute, zeroed};
@@ -12,13 +15,6 @@ use std::path::Path;
use std::sync::mpsc::Sender;
use std::thread;
-use euclid::point::Point2D;
-
-use errno::errno;
-use libc::{c_int, c_long, time_t};
-
-use compositing::windowing::{WindowEvent, MouseWindowEvent};
-
extern {
// XXX: no variadic form in std libs?
diff --git a/ports/gonk/src/main.rs b/ports/gonk/src/main.rs
index 2ef85dcf833..777cf999f6f 100644
--- a/ports/gonk/src/main.rs
+++ b/ports/gonk/src/main.rs
@@ -47,9 +47,8 @@ extern {}
use compositing::windowing::WindowEvent;
use net_traits::hosts;
use servo::Browser;
-use util::opts;
-
use std::env;
+use util::opts;
mod input;
mod window;
diff --git a/ports/gonk/src/window.rs b/ports/gonk/src/window.rs
index 9c239a4081a..0ad093a684c 100644
--- a/ports/gonk/src/window.rs
+++ b/ports/gonk/src/window.rs
@@ -6,13 +6,23 @@
use compositing::compositor_task::{self, CompositorProxy, CompositorReceiver};
use compositing::windowing::{WindowEvent, WindowMethods};
+use egl::egl;
+use egl::egl::EGLConfig;
+use egl::egl::EGLContext;
+use egl::egl::EGLDisplay;
+use egl::egl::EGLSurface;
+use egl::egl::EGLint;
use euclid::point::Point2D;
use euclid::scale_factor::ScaleFactor;
use euclid::size::{Size2D, TypedSize2D};
use gleam::gl;
use layers::geometry::DevicePixel;
use layers::platform::surface::NativeDisplay;
+use libc::c_char;
use libc::c_int;
+use libc::c_void;
+use libc::close;
+use libc::size_t;
use msg::constellation_msg::{Key, KeyModifiers};
use net_traits::net_error_list::NetError;
use std::ffi::CString;
@@ -24,18 +34,6 @@ use url::Url;
use util::cursor::Cursor;
use util::geometry::ScreenPx;
-use egl::egl;
-use egl::egl::EGLConfig;
-use egl::egl::EGLContext;
-use egl::egl::EGLDisplay;
-use egl::egl::EGLSurface;
-use egl::egl::EGLint;
-
-use libc::c_char;
-use libc::c_void;
-use libc::close;
-use libc::size_t;
-
const GRALLOC_USAGE_HW_TEXTURE: c_int = 0x00000100;
const GRALLOC_USAGE_HW_RENDER: c_int = 0x00000200;
const GRALLOC_USAGE_HW_2D: c_int = 0x00000400;
diff --git a/python/tidy.py b/python/tidy.py
index 12057d665d8..87e1cf142a7 100644
--- a/python/tidy.py
+++ b/python/tidy.py
@@ -201,6 +201,9 @@ def check_rust(file_name, contents):
comment_depth = 0
merged_lines = ''
+ import_block = False
+ whitespace = False
+
uses = []
mods = []
@@ -224,6 +227,16 @@ def check_rust(file_name, contents):
line = merged_lines + line
merged_lines = ''
+ # Keep track of whitespace to enable checking for a merged import block
+ #
+ # Ignore attributes, comments, and imports
+ if import_block:
+ if not (line_is_comment(line) or line_is_attribute(line) or line.startswith("use ")):
+ whitespace = line == ""
+
+ if not whitespace:
+ import_block = False
+
# get rid of strings and chars because cases like regex expression, keep attributes
if not line_is_attribute(line):
line = re.sub('".*?"|\'.*?\'', '', line)
@@ -291,22 +304,28 @@ def check_rust(file_name, contents):
if match and not (line.startswith("use") or line.startswith("pub use")):
yield (idx + 1, "missing space after {")
- # imports must be in the same line and alphabetically sorted
+ # imports must be in the same line, alphabetically sorted, and merged
+ # into a single import block
if line.startswith("use "):
+ import_block = True
use = line[4:]
if not use.endswith(";"):
yield (idx + 1, "use statement spans multiple lines")
- uses.append(use[:len(use) - 1])
- elif len(uses) > 0:
+ uses.append((use[:len(use) - 1], idx + 1))
+ elif len(uses) > 0 and whitespace or not import_block:
sorted_uses = sorted(uses)
for i in range(len(uses)):
- if sorted_uses[i] != uses[i]:
+ if sorted_uses[i][0] != uses[i][0]:
message = "use statement is not in alphabetical order"
- expected = "\n\t\033[93mexpected: {}\033[0m".format(sorted_uses[i])
- found = "\n\t\033[91mfound: {}\033[0m".format(uses[i])
- yield (idx + 1 - len(uses) + i, message + expected + found)
+ expected = "\n\t\033[93mexpected: {}\033[0m".format(sorted_uses[i][0])
+ found = "\n\t\033[91mfound: {}\033[0m".format(uses[i][0])
+ yield(uses[i][1], message + expected + found)
uses = []
+ if import_block and whitespace and line.startswith("use "):
+ whitespace = False
+ yield(idx, "encountered whitespace following a use statement")
+
# modules must be in the same line and alphabetically sorted
if line.startswith("mod ") or line.startswith("pub mod "):
mod = ""
@@ -345,6 +364,10 @@ def line_is_attribute(line):
return re.search(r"#\[.*\]", line)
+def line_is_comment(line):
+ return re.search(r"^//|^/\*|^\*", line)
+
+
def check_webidl_spec(file_name, contents):
# Sorted by this function (in pseudo-Rust). The idea is to group the same
# organization together.
diff --git a/tests/unit/script/size_of.rs b/tests/unit/script/size_of.rs
index 1b34e462470..c67c80dfc44 100644
--- a/tests/unit/script/size_of.rs
+++ b/tests/unit/script/size_of.rs
@@ -10,7 +10,6 @@ use script::dom::htmlelement::HTMLElement;
use script::dom::htmlspanelement::HTMLSpanElement;
use script::dom::node::Node;
use script::dom::text::Text;
-
use std::mem::size_of;
// Macro so that we can stringify type names
diff --git a/tests/unit/script/textinput.rs b/tests/unit/script/textinput.rs
index 74891b52cae..18588fbde0a 100644
--- a/tests/unit/script/textinput.rs
+++ b/tests/unit/script/textinput.rs
@@ -7,13 +7,11 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
-use msg::constellation_msg::{Key, KeyModifiers};
-
-#[cfg(target_os = "macos")]
-use msg::constellation_msg::SUPER;
#[cfg(not(target_os = "macos"))]
use msg::constellation_msg::CONTROL;
-
+#[cfg(target_os = "macos")]
+use msg::constellation_msg::SUPER;
+use msg::constellation_msg::{Key, KeyModifiers};
use script::clipboard_provider::DummyClipboardContext;
use script::textinput::{TextInput, Selection, Lines, Direction};
use std::borrow::ToOwned;